@kodax-ai/kodax 0.7.97-beta.1 → 0.7.97-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +61 -0
- package/README.md +28 -2
- package/README_CN.md +18 -1
- package/dist/chunks/agent-DS7M57WD.js +2 -0
- package/dist/chunks/agent-adapter-TLWGGK3V.js +2 -0
- package/dist/chunks/argument-completer-OGCXKTRQ.js +2 -0
- package/dist/chunks/{cell-ABNYMGXV.js → cell-LV7MNPNQ.js} +1 -1
- package/dist/chunks/{chunk-KQ3XVHKK.js → chunk-2HH5AS7E.js} +55 -55
- package/dist/chunks/{chunk-6VHO36HK.js → chunk-3CP7AUWY.js} +1 -1
- package/dist/chunks/{chunk-ADIWJDFS.js → chunk-53CJDQS2.js} +1 -1
- package/dist/chunks/{chunk-3ZEJRVNA.js → chunk-5MUVRFMU.js} +1 -1
- package/dist/chunks/{chunk-KJBS6L7Q.js → chunk-6TITQQAI.js} +155 -155
- package/dist/chunks/{chunk-HA4IKFUK.js → chunk-BBZWF2EA.js} +1 -1
- package/dist/chunks/{chunk-W6MHQ7ED.js → chunk-C6JGLEYD.js} +1 -1
- package/dist/chunks/{chunk-NM3AINLH.js → chunk-D36OIMV7.js} +29 -29
- package/dist/chunks/{chunk-LWOGHKTL.js → chunk-D425EZGC.js} +1 -1
- package/dist/chunks/{chunk-7SX7CHYP.js → chunk-DCE7XQUG.js} +1 -1
- package/dist/chunks/{chunk-N2B6A3CX.js → chunk-DV5YPYLW.js} +1 -1
- package/dist/chunks/{chunk-5MDNQCAV.js → chunk-EISRVOBJ.js} +2 -2
- package/dist/chunks/chunk-EPK6EWRI.js +12 -0
- package/dist/chunks/{chunk-G2IMBA3R.js → chunk-F6GJXQNA.js} +5 -5
- package/dist/chunks/chunk-GJXOTOZB.js +465 -0
- package/dist/chunks/{chunk-F7H6CDJN.js → chunk-I325ER7D.js} +1 -1
- package/dist/chunks/{chunk-E2Z754K5.js → chunk-J2L2NK6E.js} +57 -57
- package/dist/chunks/chunk-JAF2YLZO.js +14 -0
- package/dist/chunks/{chunk-A3SLNYBB.js → chunk-KDSO7V4O.js} +1 -1
- package/dist/chunks/{chunk-654JOM24.js → chunk-MCDZNQWD.js} +4 -4
- package/dist/chunks/{chunk-KDRYQKT7.js → chunk-NSR4RW2F.js} +1 -1
- package/dist/chunks/chunk-OGTRDK4Q.js +359 -0
- package/dist/chunks/{chunk-GYNAAIZP.js → chunk-P55RJIOG.js} +1 -1
- package/dist/chunks/chunk-QSZCR5GC.js +190 -0
- package/dist/chunks/chunk-R2HTPDI7.js +2 -0
- package/dist/chunks/chunk-R42S4BLA.js +2 -0
- package/dist/chunks/chunk-RYBUYHDL.js +5 -0
- package/dist/chunks/{chunk-XGUGEVCK.js → chunk-SDPZFH6M.js} +1 -1
- package/dist/chunks/chunk-SK3RRGHJ.js +142 -0
- package/dist/chunks/chunk-TQ475LOI.js +2 -0
- package/dist/chunks/{chunk-ZT2LR3KD.js → chunk-UL6YIT4M.js} +1 -1
- package/dist/chunks/{chunk-7U2BL7CM.js → chunk-V2XJSFFE.js} +1 -1
- package/dist/chunks/{chunk-TXI6SHDO.js → chunk-W2CWO4PQ.js} +1 -1
- package/dist/chunks/{chunk-SCGXZ2QT.js → chunk-WWPVEK6B.js} +1 -1
- package/dist/chunks/{chunk-FMZN5F3Q.js → chunk-X5M7TLJV.js} +1 -1
- package/dist/chunks/{chunk-FZZMHNDB.js → chunk-XDMNJW6J.js} +5 -5
- package/dist/chunks/{chunk-VT35IZEZ.js → chunk-XZSFUGPN.js} +1 -1
- package/dist/chunks/{client-3JEK33QQ.js → client-LTIFNED5.js} +1 -1
- package/dist/chunks/compaction-config-ECMOFP5H.js +2 -0
- package/dist/chunks/{construction-bootstrap-HCRLORKG.js → construction-bootstrap-OAZKGI5Y.js} +1 -1
- package/dist/chunks/dist-5J53DGAO.js +2 -0
- package/dist/chunks/{google-native-45I4S26I.js → google-native-WLL27OV7.js} +1 -1
- package/dist/chunks/host-65E5NM5P.js +2 -0
- package/dist/chunks/model-DZF6URW3.js +2 -0
- package/dist/chunks/{permission-MTSFSB74.js → permission-YVVMLQ5I.js} +1 -1
- package/dist/chunks/readline-helpers-UZXWBRXQ.js +2 -0
- package/dist/chunks/run-manager-ZFACIZM2.js +2 -0
- package/dist/chunks/running-session-Q5Y6A2QV.js +2 -0
- package/dist/chunks/{skills-V7T55I4F.js → skills-TJP6BLZJ.js} +1 -1
- package/dist/chunks/{tool-dispatch-ZVIDGKB4.js → tool-dispatch-MLM3QTSU.js} +1 -1
- package/dist/chunks/{utils-WGRFGT7S.js → utils-2QNMYRGA.js} +1 -1
- package/dist/index.d.ts +18 -18
- package/dist/index.js +2 -2
- package/dist/kodax_bootstrap.js +1 -1
- package/dist/kodax_cli.js +1534 -1532
- package/dist/kodax_doctor.js +1 -1
- package/dist/manual-topics.json +17 -2
- package/dist/native/win32-x64/kodax-windows-sandbox.exe +0 -0
- package/dist/native/win32-x64/kodax-windows-text-transaction.node +0 -0
- package/dist/native/win32-x64/manifest.json +2 -2
- package/dist/one-shot-task.js +1 -1
- package/dist/provider-auth-cli.js +1 -1
- package/dist/runtime-daemon-schema.json +1 -1
- package/dist/sandbox-network-broker.js +77 -77
- package/dist/script-cell.js +1 -1
- package/dist/script-worker.cjs +30 -7
- package/dist/sdk-a2a.d.ts +11 -11
- package/dist/sdk-a2a.js +1 -1
- package/dist/sdk-agent.d.ts +13 -9
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-client.d.ts +5 -5
- package/dist/sdk-client.js +1 -1
- package/dist/sdk-coding.d.ts +57 -16
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-experimental-memory.js +1 -1
- package/dist/sdk-llm.js +1 -1
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-media.d.ts +11 -11
- package/dist/sdk-media.js +1 -1
- package/dist/sdk-repl.d.ts +15 -15
- package/dist/sdk-repl.js +1 -1
- package/dist/sdk-runtime.d.ts +14 -14
- package/dist/sdk-runtime.js +1 -1
- package/dist/sdk-sandbox.js +1 -1
- package/dist/sdk-session.d.ts +6 -6
- package/dist/sdk-session.js +1 -1
- package/dist/sdk-skills.js +1 -1
- package/dist/semantic-worker.js +70 -70
- package/dist/static-text.json +50 -2
- package/dist/storage-repair-cli.js +1 -1
- package/dist/types-chunks/{bash-prefix-extractor.d-RblzA9kO.d.ts → bash-prefix-extractor.d-CJliu5-D.d.ts} +43 -2
- package/dist/types-chunks/{capsule.d-C-saon3X.d.ts → capsule.d-EMwSALqK.d.ts} +3 -3
- package/dist/types-chunks/{client-contract-D8HXN_iu.d.ts → client-contract-B7q69yMA.d.ts} +19 -3
- package/dist/types-chunks/{controller.d-pXik2EIy.d.ts → controller.d-D-hPLKaA.d.ts} +1 -1
- package/dist/types-chunks/{manifest.d-r74es7yq.d.ts → manifest.d-YE3-AIeO.d.ts} +1 -1
- package/dist/types-chunks/{public-api.d-CvDSMmN2.d.ts → public-api.d-BhDU643p.d.ts} +3 -3
- package/dist/types-chunks/{review-packet.d-C0NYHPdq.d.ts → review-packet.d-ChOfJaNI.d.ts} +1 -1
- package/dist/types-chunks/{run-manager.d-COrEJ-hn.d.ts → run-manager.d-ChzguipG.d.ts} +12 -6
- package/dist/types-chunks/{runtime-client-info-DJ9srk4O.d.ts → runtime-client-info-P_mRDG7j.d.ts} +6 -1
- package/dist/types-chunks/{runtime-event-B24TGIxk.d.ts → runtime-event-BW5Pla7a.d.ts} +1 -1
- package/dist/types-chunks/{sdk-runtime-CBPScTNR.d.ts → sdk-runtime-cDe7qmN3.d.ts} +18 -10
- package/dist/types-chunks/{sdk-session-D_bf_sN2.d.ts → sdk-session-D3pcSbnA.d.ts} +1 -1
- package/dist/types-chunks/{skill-invocation-error.d-FJ6ZujRz.d.ts → skill-invocation-error.d-gsNNDnnt.d.ts} +2 -2
- package/dist/types-chunks/{trusted-repl-entry-9i4hUuj-.d.ts → trusted-repl-entry-Bbkd2HlO.d.ts} +6 -6
- package/dist/types-chunks/{types.d-CTo0NiAM.d.ts → types.d-BlXTogOo.d.ts} +2 -0
- package/dist/types-chunks/{utils.d-BhoGV3yv.d.ts → utils.d-CxHyBvO6.d.ts} +5 -5
- package/docs/SDK_MIGRATION.md +264 -1
- package/docs/SPACE_SDK_SEAMS.md +1 -1
- package/package.json +1 -1
- package/public_docs/README.md +8 -3
- package/public_docs/sdk/embedder-guide.md +1 -1
- package/dist/chunks/agent-OY4U4WOU.js +0 -2
- package/dist/chunks/agent-adapter-NDH3DMPG.js +0 -2
- package/dist/chunks/argument-completer-Q6GMPJ74.js +0 -2
- package/dist/chunks/chunk-4KR4VUZK.js +0 -142
- package/dist/chunks/chunk-5WZ5FUUD.js +0 -14
- package/dist/chunks/chunk-7OTOH4PT.js +0 -465
- package/dist/chunks/chunk-BZF7WPRK.js +0 -357
- package/dist/chunks/chunk-ED7D73C3.js +0 -2
- package/dist/chunks/chunk-LPHKXPF7.js +0 -190
- package/dist/chunks/chunk-MJ4IGUD4.js +0 -5
- package/dist/chunks/chunk-NQ4XK3B2.js +0 -2
- package/dist/chunks/chunk-PRH5G5J7.js +0 -12
- package/dist/chunks/chunk-YB24NTBC.js +0 -2
- package/dist/chunks/compaction-config-NKDAUZNH.js +0 -2
- package/dist/chunks/dist-NTS7CJG3.js +0 -2
- package/dist/chunks/host-RHJ3VGYE.js +0 -2
- package/dist/chunks/model-WCSO7VEC.js +0 -2
- package/dist/chunks/readline-helpers-KZQCE3NH.js +0 -2
- package/dist/chunks/run-manager-MWEV42C5.js +0 -2
- package/dist/chunks/running-session-3BYAXGLK.js +0 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
-
import{a as cS,b as RR,c as kd,d as kR,l as Ia,m as Gm,n as ER,o as MR,p as AR,q as _R}from"./chunk-ADIWJDFS.js";import{$ as Id,$a as sS,A as dd,Aa as vd,Ba as Wm,C as fd,Ha as jm,Ia as Um,Ja as mR,Ka as hR,L as Yc,La as gR,Ma as bd,N as eR,Na as yR,Oa as wR,Pa as SR,Qa as xR,R as Sd,S as tR,T as xd,V as nR,W as ms,Wa as IR,X as Jc,Xa as CR,Y as Qc,Ya as Rd,Z as rR,Za as hs,_a as el,a as Gc,ab as TR,b as cd,ba as Cd,c as Bi,ca as iR,cb as aS,d as K,da as Dm,db as Vm,ea as Td,eb as vR,f as hr,fa as oR,fb as bR,g as zw,ga as sR,h as qw,ha as aR,i as Gb,ia as cR,j as Xw,ja as Hi,k as ya,ka as rS,l as Yw,la as Bm,m as ld,ma as Xn,n as Jw,na as Dr,o as ud,oa as iS,p as Kb,pa as Br,q as zb,qa as ti,r as Kc,ra as Zc,s as qb,sa as lR,t as wa,ta as uR,ua as dR,va as oS,wa as fR,x as wo,xa as pR,y as So,ya as Hm,z as Qw,za as Fm}from"./chunk-654JOM24.js";import{D as qc,E as Sa,J as Jb,O as Qb,P as Xc,Q as xa,a as Re,ca as nS,da as hd,e as pd,ea as $m,f as Zw,fa as gd,ga as yd,h as eS,ha as wd,i as Xb,ia as Zb,j as Yb,ja as ps,k as Lm,m as md,p as zc,t as Om,v as tS,w as fs}from"./chunk-5MDNQCAV.js";import{a as Nm}from"./chunk-7SX7CHYP.js";import{B as ad,Ka as Vb,Na as Pm,S as Db,T as Bb,V as Gw,W as Hb,X as Fb,a as Nc,b as Ow,c as lm,d as $w,g as jw,h as Mm,ka as Kw,la as Wb,na as jb,q as Am,qa as Ub,r as _m,x as Nb}from"./chunk-LPHKXPF7.js";import{D as ds,a as ma,n as km,p as ha,r as sd,u as Uw,v as ga}from"./chunk-FMZN5F3Q.js";import{Fa as Pb,aa as _b,nb as Lb,ob as Ob,pb as $b,r as od,s as kb}from"./chunk-NM3AINLH.js";import{l as Ab}from"./chunk-FZZMHNDB.js";import{$b as Mb,Sd as Vc,Vd as Vw,c as Rb,lb as Em,q as mr,yb as Eb}from"./chunk-BZF7WPRK.js";import{$d as vm,Bd as Sb,Fb as pb,Id as xb,Jd as Ib,Kb as hm,Ld as it,Mb as mb,Md as Dc,Nd as Yt,Pd as Bc,Qd as Hc,Rd as xm,Td as Im,Ua as Nw,Ud as Fc,Vd as Wc,Wd as yo,Xd as Cm,Yd as us,Zd as Cb,_d as Tm,ad as wm,ae as Fw,b as db,be as bm,ce as Tb,de as jc,ed as Sm,fd as pa,jf as vb,kf as Ww,lf as bb,ob as ls,pb as fa,qb as pr,qd as wb,r as da,rd as Hw,re as Uc,se as Rm,tb as Dw,vc as Bw,z as fb}from"./chunk-KQ3XVHKK.js";import{O as hb,P as gb,b as go,c as cs,h as Ge,ia as gm,ka as yb,qb as id,rb as ym}from"./chunk-E2Z754K5.js";import{b as Nr,d as um,m as dm,u as fm,v as pm,z as mm}from"./chunk-A3SLNYBB.js";import{D as cm,Q as Pw,S as Lw,ga as ua}from"./chunk-4KR4VUZK.js";import{a as o}from"./chunk-V4WSBIXB.js";function Ed(e,t,n){let r=e.trim();return{type:"info",icon:"\u23F3",text:/\bretry\s+\d+\/\d+\b/i.test(r)||/\b\d+\/\d+\b/.test(r)?r:`${r} \xB7 retry ${t}/${n}`}}o(Ed,"createRetryHistoryItem");function NN(e,t,n,r){e(Ed(t,n,r))}o(NN,"emitRetryHistoryItem");function Md(e){let{recoveryAction:t,attempt:n,maxAttempts:r,delayMs:i,stage:s,fallbackUsed:a}=e,c=Math.round(i/1e3);if(t==="manual_continue")return{type:"info",icon:"\u26A0",text:'Recovery exhausted. Type "continue" to retry or "stop" to cancel.'};if(t==="non_streaming_fallback"||a)return{type:"info",icon:"\u23F3",text:"Stream unstable, switching to non-streaming mode"};if(t==="sanitize_thinking_and_retry")return{type:"info",icon:"\u23F3",text:"Provider rejected replay thinking, sanitizing history and retrying"};let l;switch(s){case"before_first_delta":case"before_request_accepted":l="Provider request timed out";break;case"mid_stream_text":case"mid_stream_thinking":l="Stream interrupted after partial output";break;case"mid_stream_tool_input":l="Stream interrupted during tool input";break;case"post_tool_execution_pre_assistant_close":l="Stream interrupted after tool execution";break;default:l="Stream interrupted";break}let u=t==="stable_boundary_retry"?"recovering":"retrying";return{type:"info",icon:"\u23F3",text:c>0?`${l} \xB7 ${u} ${n}/${r} in ${c}s`:`${l} \xB7 ${u} ${n}/${r}`}}o(Md,"createRecoveryHistoryItem");function DN(e,t){e(Md(t))}o(DN,"emitRecoveryHistoryItem");import BN from"string-width";var lS=9,uS=3,PR=160,HN={shouldRender:!1,activeCount:0,rows:[]};function LR(e,t=lS){let n=BN(e);return n>=t?e:`${e}${" ".repeat(t-n)}`}o(LR,"padChildActivitySymbol");function Km(e){let t=e.replace(/\s+/gu," ").trim();return t.length<=PR?t:`${t.slice(0,PR-3)}...`}o(Km,"truncateChildActivityDetail");function Ad(e){return!!(e?.liveOnly===!0&&(e.workflowCorrelation||e.childAgentId))}o(Ad,"shouldRouteToChildActivity");function OR(e,t){return!!(e?.liveOnly===!0&&e.workflowCorrelation?.workflowRunId&&t&&e.workflowCorrelation.workflowRunId===t)}o(OR,"shouldRouteWorkflowLiveOnlyNotice");function $R(e){return!e.isTranscriptMode&&e.childActivityVisible&&(e.isLoading||e.hasWorkflowLiveSurface)}o($R,"shouldShowChildActivitySurface");function zm(e){let t=e.childAgentId??e.workflowCorrelation?.childAgentId??"child",n=e.workflowCorrelation?.workflowRunId;return n?`${n}:${t}`:t}o(zm,"childActivityId");function dS(e){return e.childAgentName??e.childAgentId??e.workflowCorrelation?.childAgentId??"child"}o(dS,"childActivityLabel");function fS(e){return e.workflowCorrelation?"workflow":"normal"}o(fS,"childActivitySource");function pS(e,t){let n=t?.path??t?.pattern??t?.command??t?.preview,r=typeof n=="string"&&n.trim().length>0?` ${n}`:"";return Km(`${e}${r}`)}o(pS,"toolActivityDetail");function mS(e,t){return e==="tool"&&["thinking","assistant","stream"].includes(t)}o(mS,"suppressesChurnOverToolAction");function FN(e){let t=Math.max(0,Math.floor(e/1e3)),n=t%60,r=Math.floor(t/60)%60,i=Math.floor(t/3600);return i>0?`${i}h${String(r).padStart(2,"0")}m`:r>0?`${r}m${String(n).padStart(2,"0")}s`:`${n}s`}o(FN,"formatChildActivityElapsed");function WN(e){switch(e){case"assistant":return"Assistant";case"thinking":return"Thinking";case"tool":return"Tool";case"progress":return"Progress";case"prompt":return"Prompt";default:return"Status"}}o(WN,"kindLabel");function jN(e,t){let n=e.label.trim()||"child",r=e.startedAt!==void 0?` \xB7 ${FN(t-e.startedAt)}`:"",i=e.detail.trim(),s=i.length>0?`: ${i}`:"";return`${n}${r} - ${WN(e.kind)}${s}`}o(jN,"rowText");function NR(e,t=uS,n=Date.now()){let r=e.filter(u=>u.status==="running");if(r.length===0)return HN;let i=Math.max(1,Math.floor(t)),s=[],a=r.length>i&&i>1?i-1:i,c=r.slice(0,a);for(let u of c)s.push({kind:"activity",id:u.id,symbol:u.source==="workflow"?"agent":"child",symbolColor:"cyan",text:jN(u,n),isActive:!0});let l=r.length-c.length;return l>0&&s.length<i&&s.push({kind:"summary",id:"children-more",symbol:"more",symbolColor:"dim",text:`${l} more active`,isActive:!1}),{shouldRender:!0,activeCount:r.length,rows:s.slice(0,i)}}o(NR,"buildChildActivityViewModel");function DR(e,t){let n=e.trim();return t.trim()?n?e===t?e:t.startsWith(e)?t:e.startsWith(t)?e:t:t:e}o(DR,"mergeLiveThinkingContent");function Ca(e,t){let n=t?.expanded?e.detailNote??e.note:e.note,r=e.activeWorkerTitle?`${e.agentMode.toUpperCase()} ${e.activeWorkerTitle}`:e.agentMode.toUpperCase(),i=e.activeWorkerTitle??"Scout",s=`${e.agentMode.toUpperCase()} ${i}`,a=`${e.agentMode.toUpperCase()} Routing`,c=e.currentRound&&e.maxRounds&&e.currentRound>1?` - Round ${e.currentRound}/${e.maxRounds}`:"";switch(e.phase){case"routing":return`${a} - Routing ready`;case"starting":return n?`${r} - ${n}`:`${r} - Managed task starting`;case"preflight":return n?`${s} - ${n}`:`${s} - ${i} preflight starting`;case"round":return n?`${r} - ${n}`:`${r} - Managed task round update${c}`;case"worker":return n?`${r} - ${n}${c}`:`${r} - ${e.activeWorkerTitle??"Worker"} starting${c}`;case"upgrade":return n?`${r} - ${n}`:`${r} - Harness transition${c}`;case"verifying":return n?`${e.agentMode.toUpperCase()} Verifying - ${n}`:`${e.agentMode.toUpperCase()} Verifying`;case"completed":return n?`${r} - ${n}`:`${r} - Managed task completed`;default:return}}o(Ca,"formatManagedTaskBreadcrumb");import*as Pd from"node:path";function or(e){return e<=0?0:Math.round(e/4)}o(or,"estimateOutputTokens");function yn(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}o(yn,"formatTokenCount");function _d(e){if(hb(e)){let t=gb(e);return t?`[memory:${t}]`:"[memory]"}if(UN(e))return"[memory]"}o(_d,"memoryBadgeFor");function UN(e){let t=Pd.resolve(e),n=cs("projects");if(!t.startsWith(n+Pd.sep)&&t!==n)return!1;let i=t.slice(n.length+1).split(Pd.sep);return i.length>=2&&i[1]==="memory"}o(UN,"isInsideAnyMemoryDir");function Ct(e,t=120){return e.length>t?`${e.slice(0,t-3)}...`:e}o(Ct,"truncateValue");function BR(e){if(e)return e.split(/\r?\n/).map(t=>t.trim()).find(Boolean)}o(BR,"extractFirstMeaningfulLine");function WR(e){let t=e.match(/^\[([^\]]+)\]\s+(.*)$/);if(!t)return{toolLabel:e};let n=t[1]?.trim(),r=t[2]?.trim()??e,i=new RegExp(`^${n?.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}:`,"i"),s=r.replace(i,"").trim();return{rolePrefix:n?`[${n}]`:void 0,toolLabel:s||r}}o(WR,"splitDisplayToolName");function qm(e){let{rolePrefix:t,toolLabel:n}=WR(e);return t?`${t} ${n}`:n}o(qm,"normalizeDisplayToolName");function Ld(e){return WR(e).toolLabel}o(Ld,"stripRolePrefix");function Xm(e){if(!(!e||Array.isArray(e)||typeof e!="object"))return e}o(Xm,"asRecord");function jR(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}o(jR,"readString");function un(e,...t){for(let n of t){let r=jR(e?.[n]);if(r)return r}}o(un,"readFirstString");function Fi(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim().length>0){let t=Number(e.trim());return Number.isFinite(t)?t:void 0}}o(Fi,"readNumber");function UR(e){if(!Array.isArray(e))return;let t=e.map(n=>typeof n=="string"?n.trim():"").filter(Boolean);return t.length>0?t:void 0}o(UR,"readStringArray");function VN(e){if(typeof e=="string")return e.trim()||void 0;let t=Xm(e);if(t)return jR(t.preview)??void 0}o(VN,"extractPreview");function HR(e){if(e)try{return Xm(JSON.parse(e))}catch{return}}o(HR,"parsePreviewRecord");function nt(e,t){return e&&e.match(new RegExp(`"${t}"\\s*:\\s*"([^"]+)`))?.[1]?.trim()||void 0}o(nt,"extractFieldFromPreview");function Wi(e,t){if(!e)return;let n=e.match(new RegExp(`"${t}"\\s*:\\s*(\\d+)`));return n?.[1]?Number(n[1]):void 0}o(Wi,"extractNumberFromPreview");function VR(e){if(!e)return;let t=e.match(/"paths"\s*:\s*\[([^\]]*)/);if(!t?.[1])return;let n=Array.from(t[1].matchAll(/"([^"]+)"/g)).map(r=>r[1]?.trim()??"").filter(Boolean);return n.length>0?n:void 0}o(VR,"extractPathsFromPreview");function GN(e){let t=VN(e);if(typeof e=="string")return{record:HR(t),preview:t};let n=Xm(e),r=HR(t);return n?r?{record:{...n,...r},preview:t}:{record:n,preview:t}:{record:r,preview:t}}o(GN,"resolveInputRecord");function tl(e,t,n,r=!1){let i=un(t,"path","target_path","targetPath")??nt(n,"path")??nt(n,"target_path")??nt(n,"targetPath"),s=UR(t?.paths)??VR(n);if(r&&s?.length){if(s.length===1){let a=_d(s[0]);a&&e.push(a),e.push(Ct(s[0]))}else e.push(`${s.length} files`);return}if(i){let a=_d(i);a&&e.push(a),e.push(Ct(i));return}if(s?.length)if(s.length===1){let a=_d(s[0]);a&&e.push(a),e.push(Ct(s[0]))}else e.push(`${s.length} files`)}o(tl,"pushPathSummary");function nl(e,t,n){n!==void 0&&e.push(`${t}=${n}`)}o(nl,"pushNumericSummary");function hS(e,t,n){let r=un(t,"baseRef","base_ref")??nt(n,"baseRef")??nt(n,"base_ref"),i=un(t,"targetRef","target_ref")??nt(n,"targetRef")??nt(n,"target_ref");r&&i&&e.push(Ct(`${r}...${i}`,88))}o(hS,"pushRangeSummary");function KN(e,t){let{record:n,preview:r}=GN(t),i=Ld(e).toLowerCase(),s=[];if(i.includes("changed_diff_bundle")){let a=UR(n?.paths)??VR(r);a?.length?(s.push(a.length===1?Ct(a[0]):`${a.length} files`),a.length>1&&s.push(Ct(a[0]))):tl(s,n,r,!0);let c=Fi(n?.limit_per_path)??Fi(n?.limitPerPath)??Wi(r,"limit_per_path")??Wi(r,"limitPerPath");return c!==void 0&&s.push(`limit=${c}`),hS(s,n,r),s}if(i.includes("changed_diff"))return tl(s,n,r),nl(s,"offset",Fi(n?.offset)??Wi(r,"offset")),nl(s,"limit",Fi(n?.limit)??Wi(r,"limit")),hS(s,n,r),s;if(i==="read"||i.includes("read_"))return tl(s,n,r),nl(s,"offset",Fi(n?.offset)??Wi(r,"offset")),nl(s,"limit",Fi(n?.limit)??Wi(r,"limit")),s;if(i.includes("changed_scope"))return tl(s,n,r,!0),hS(s,n,r),s;if(i.includes("repo_overview"))return tl(s,n,r),s;if(i.includes("bash")||i.includes("shell_command")){let a=un(n,"command")??nt(r,"command");return a&&s.push(`cmd=${Ct(a,140)}`),s}if(i==="glob"||i.includes("glob_")){let a=un(n,"pattern")??nt(r,"pattern"),c=un(n,"path","root","directory","cwd")??nt(r,"path")??nt(r,"root")??nt(r,"directory")??nt(r,"cwd");if(a&&s.push(`pattern=${Ct(a,96)}`),c){let l=_d(c);l&&s.push(l),s.push(Ct(c))}return s}if(i==="grep"||i.includes("grep_")){let a=un(n,"pattern","query")??nt(r,"pattern")??nt(r,"query"),c=un(n,"path","root","directory","cwd")??nt(r,"path")??nt(r,"root")??nt(r,"directory")??nt(r,"cwd");if(a&&s.push(`pattern=${Ct(a,96)}`),c){let l=_d(c);l&&s.push(l),s.push(Ct(c))}return s}if(i==="web_fetch"){let a=un(n,"url")??nt(r,"url"),c=un(n,"provider_id","providerId")??nt(r,"provider_id")??nt(r,"providerId"),l=un(n,"capability_id","capabilityId")??nt(r,"capability_id")??nt(r,"capabilityId");return a&&s.push(Ct(a,120)),c&&s.push(`provider=${Ct(c,48)}`),l&&s.push(`cap=${Ct(l,48)}`),s}if(i==="mcp_describe"||i==="mcp_read_resource"){let a=un(n,"id")??nt(r,"id");return a&&s.push(Ct(a,120)),s}if(i==="mcp_call"){let a=un(n,"id")??nt(r,"id"),c=Xm(n?.args),l=c?Object.keys(c).length:void 0;return a&&s.push(Ct(a,120)),l!==void 0&&s.push(`args=${l}`),s}if(i==="skill"){let a=un(n,"skill","name")??nt(r,"skill");return a&&s.push(Ct(a,64)),s}if(i==="mcp_search"){let a=un(n,"query")??nt(r,"query"),c=un(n,"server")??nt(r,"server"),l=un(n,"kind")??nt(r,"kind"),u=Fi(n?.limit)??Wi(r,"limit");return a&&s.push(`query=${Ct(a,96)}`),c&&s.push(`server=${Ct(c,48)}`),l&&s.push(`kind=${l}`),u!==void 0&&s.push(`limit=${u}`),s}if(i==="web_search"||i==="code_search"||i==="semantic_lookup"){let a=un(n,"query","pattern")??nt(r,"query")??nt(r,"pattern"),c=un(n,"path","target_path","targetPath")??nt(r,"path")??nt(r,"target_path")??nt(r,"targetPath"),l=un(n,"provider_id","providerId")??nt(r,"provider_id")??nt(r,"providerId"),u=Fi(n?.limit)??Wi(r,"limit");return a&&s.push(`query=${Ct(a,96)}`),c&&s.push(Ct(c,72)),l&&s.push(`provider=${Ct(l,48)}`),u!==void 0&&s.push(`limit=${u}`),s}return tl(s,n,r,!0),nl(s,"offset",Fi(n?.offset)??Wi(r,"offset")),nl(s,"limit",Fi(n?.limit)??Wi(r,"limit")),s}o(KN,"summarizeToolDetails");function GR(e){let t=e.match(/Showing diff lines\s+(\d+)-(\d+)\s+of\s+(\d+)/i);if(t)return`${t[1]}-${t[2]}/${t[3]}`}o(GR,"extractChangedDiffRange");function zN(e){return e.split(/\r?\n/).map(t=>t.trim()).find(t=>t.startsWith("+")||t.startsWith("-")||t.startsWith("@@"))}o(zN,"extractDiffPreviewLine");function qN(e){let t=[],n=GR(e);if(n){let[i,s]=n.split("/");t.push(s?`Diff range: ${i} of ${s}`:`Diff range: ${n}`)}let r=zN(e);return r&&t.push(`Preview: ${Ct(r,220)}`),t}o(qN,"formatChangedDiffExplanation");function XN(e){let t=[],n=e.match(/^Changed diff bundle for\s+(\d+)\s+file\(s\)/im);if(n?.[1]){let i=Number(n[1]);Number.isFinite(i)&&i>0&&t.push(`Bundle: ${i===1?"1 file":`${i} files`}`)}let r=e.match(/^===\s+(.+?)\s+===/m);return r?.[1]&&t.push(`First file: ${Ct(r[1].trim(),220)}`),t}o(XN,"formatChangedDiffBundleExplanation");function KR(e,t){if(!t)return[];let n=Ld(e).toLowerCase(),r=[];if(n.includes("changed_diff_bundle")){let i=t.match(/^Changed diff bundle for\s+(\d+)\s+file\(s\)/im);if(i?.[1]){let a=Number(i[1]);Number.isFinite(a)&&a>0&&r.push(a===1?"1 file":`${a} files`)}let s=t.match(/^===\s+(.+?)\s+===/m);return s?.[1]&&r.push(Ct(s[1].trim())),r}if(n.includes("changed_diff")){let i=t.match(/^Changed diff for\s+(.+)$/im);i?.[1]&&r.push(Ct(i[1].trim()));let s=GR(t);return s&&r.push(s),r}if(n==="read"||n.includes("read_")){let i=t.match(/^Reading\s+(.+)$/im);return i?.[1]&&r.push(Ct(i[1].trim())),r}if(n==="edit"||n==="write"||n==="multi_edit"||n==="insert_after_anchor"){let i=/^(?:File (?:edited|created|updated|written)|Content inserted after anchor in):\s+(.+)$/im.exec(t);if(i?.[1]){let s=i[1].trim().replace(/\s*\([^)]*\)$/,"");if(s){r.push(Ct(s));let a=/\(\+(\d+) lines?, -(\d+) lines?\)/.exec(t);if(a?.[1]&&a[2])r.push(`+${a[1]} -${a[2]}`);else{let c=/\((\d+) lines? written\)/.exec(t);c?.[1]?r.push(`new, ${c[1]} lines`):/no changes/.test(t)&&r.push("no changes")}}}return r}return[]}o(KR,"summarizeToolOutputDetails");function gS(e,t){let n=qm(e);return t.length>0?`${n} - ${t.join(" - ")}`:n}o(gS,"formatToolDetailSummary");function YN(e,t){if(!t)return;let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}o(YN,"formatDuration");function JN(e){switch(e.status){case K.Scheduled:return"scheduled";case K.Validating:return"validating";case K.AwaitingApproval:return"awaiting approval";case K.Executing:return"running";case K.Error:return"failed";case K.Cancelled:return"cancelled";default:return}}o(JN,"formatToolStatusDetail");function FR(e){switch(e.status){case K.Scheduled:return["Queued: waiting to start"];case K.Validating:return["Validating: checking inputs and policy"];case K.AwaitingApproval:return["Waiting: approval required before execution"];case K.Executing:return e.progress!==void 0?[`Progress: ${e.progress}% complete`]:e.progressLines&&e.progressLines.length>0?e.progressLines.slice(-5):e.preview?[`Running: ${e.preview}`]:["Running: waiting for tool output"];case K.Cancelled:return["Cancelled before completion"];default:return[]}}o(FR,"formatToolProgressExplanation");function yS(e){return e.startsWith("Error:")?"error":e.startsWith("Waiting:")?"accent":e.startsWith("Progress:")||e.startsWith("Running:")?"primary":"dim"}o(yS,"resolveToolExplanationTone");function QN(e){let t=BR(e.error),n=typeof e.output=="string"?BR(e.output):void 0,r=[];return t&&r.push(`Error: ${Ct(t,220)}`),e.status===K.Error&&n&&(!t||n.toLowerCase()!==t.toLowerCase())&&r.push(`Last output: ${Ct(n,220)}`),r}o(QN,"formatToolFailureExplanation");function wS(e){if(typeof e.output!="string"||!e.output.trim())return FR(e);let t=Ld(e.name).toLowerCase();return e.status===K.Error?QN(e):e.status!==K.Success?FR(e):t.includes("changed_diff_bundle")?XN(e.output):t.includes("changed_diff")?qN(e.output):[]}o(wS,"formatToolResultExplanation");function SS(e,t){return gS(e,KN(e,t))}o(SS,"formatToolSummary");function Ym(e){let t=typeof e.output=="string"?KR(e.name,e.output):[],n=t.length>0?gS(e.name,t):SS(e.name,e.input),r=JN(e),i=YN(e.startTime,e.endTime),s=e.status===K.Executing&&e.progress!==void 0?`${e.progress}%`:e.status===K.Executing&&e.preview?e.preview:void 0,a=[r,s,i].filter(Boolean);return a.length>0?`${n} (${a.join(" - ")})`:n}o(Ym,"formatToolCallInlineText");function Jm(e){let t=new Map;for(let n of e){let r=typeof n.output=="string"?KR(n.name,n.output):[],i=r.length>0?gS(n.name,r):SS(n.name,n.input),a=n.progressLines&&n.progressLines.length>0?`${i}|${n.id}`:`${i}|${n.error??""}`,c=t.get(a);c?(c.tool=n,c.count+=1,c.members.push(n)):t.set(a,{tool:n,count:1,members:[n]})}return[...t.values()]}o(Jm,"collapseToolCalls");function Od(e){let t=Ym(e.tool);return e.count>1?`${t} x${e.count}`:t}o(Od,"formatCollapsedToolInlineText");function Qm(e,t,n){let r=SS(e,t);return r!==qm(e)?`[Tools] ${r}`:n>0?`[Tools] ${qm(e)} (~${yn(or(n))} tokens)`:`[Tools] ${qm(e)}`}o(Qm,"formatLiveToolLabel");function Zm(e,t){if(!e||!t)return e;let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`^\\[Tools\\]\\s+\\[${n}\\]\\s+`,"i"),"[Tools] ").replace(new RegExp(`^\\[Thinking\\]\\s+\\[${n}\\]\\s*`,"i"),"[Thinking] ").replace(new RegExp(`^\\[${n}\\]\\s+thinking\\b`,"i"),"[Thinking]").trim()}o(Zm,"formatManagedLiveActivityLabel");function xo(e,t){return Zm(`[Tools] ${Ym(e)}`,t)??`[Tools] ${Ym(e)}`}o(xo,"formatManagedLiveToolLabel");function eh(e,t){if(e.type!==t.type)return!1;switch(e.type){case"assistant":{let n=t;return e.text===n.text&&e.compactText===n.compactText}case"thinking":{let n=t;return e.text===n.text&&e.compactText===n.compactText}case"event":{let n=t;return e.text===n.text&&e.compactText===n.compactText&&e.icon===n.icon}case"info":{let n=t;return e.text===n.text&&e.compactText===n.compactText&&e.icon===n.icon}case"error":case"hint":case"system":case"user":{let n=t;return e.text===n.text}case"tool_group":{let n=t;return JSON.stringify(e.tools)===JSON.stringify(n.tools)}default:return!1}}o(eh,"areManagedLiveItemsEquivalent");function zR(e){return e==="Task completed"?Re("managed.completed"):e==="Task needs continuation"?Re("managed.completed.continuation"):e==="Task ended: blocked"?Re("managed.completed.blocked"):e==="Task ended: needs_continuation"?Re("managed.completed.continuation"):e.startsWith("Task ended:")?Re("managed.completed.blocked"):e}o(zR,"localizeManagedCompletionSummary");var qR=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1";function xS(e){if(e.events&&e.events.length>0)return e.events.reduce((r,i)=>{let s=i.summary.trim(),a=(i.detail??i.summary).trim();if(!s||!a)return r;let c=`managed-live-${i.key}`,l=Date.now(),u=i.persistToHistory??e.persistToHistory??!1;if(i.presentation==="thinking")return r.push({item:{id:c,type:"thinking",timestamp:l,text:a,...s!==a?{compactText:s}:{}},persistToHistory:u}),r;if(i.presentation==="assistant")return r.push({item:{id:c,type:"assistant",timestamp:l,text:a,...s!==a?{compactText:s}:{}},persistToHistory:u}),r;let d=i.kind==="completed";if(d&&!qR)return r;let p=d?`[${zR(s)}]`:void 0,m=p??s,h=p??a;return r.push({item:{id:c,type:"event",timestamp:l,text:h,icon:i.kind==="warning"?"!":d?"\u2713":">",...m!==h?{compactText:m}:{}},persistToHistory:u}),r},[]);if(e.phase==="completed"&&!qR)return[];let t=Ca(e),n=Ca(e,{expanded:!0})??t;return!t||!n?[]:[{item:{id:`managed-live-fallback-${e.phase??"worker"}-${t.toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48)}`,type:"event",timestamp:Date.now(),text:n,icon:">",...t!==n?{compactText:t}:{}},persistToHistory:e.persistToHistory??!1}]}o(xS,"buildManagedLiveEventDrafts");var XR=150,YR=50;function QR(e){if(e.length===0)return[];let t=[];for(let s=0;s<e.length;s+=1)e[s]?.type==="user"&&t.push(s);let n=[...e];if(t.length>YR){let s=t[t.length-YR]??0;n=e.slice(s)}if(n.length<=XR)return[...n];let r=n.slice(-XR),i=r.findIndex(s=>s.type==="user");return i>0?r.slice(i):r}o(QR,"trimHistoryWindow");function ji(e){return QR(e)}o(ji,"trimPersistedUiHistorySnapshot");function Io(e){if(e)return ji(e)}o(Io,"normalizePersistedUiHistory");function ZN(e){let t={...e.outputId?{outputId:e.outputId}:{},...e.textRevision!==void 0?{textRevision:e.textRevision}:{},...e.timestamp===void 0?{}:{timestamp:e.timestamp},...e.inputId?{inputId:e.inputId}:{},...e.afterInputId?{afterInputId:e.afterInputId}:{}},n=e.presentationOnly===!0?{isSessionUiOnly:!0}:{};switch(e.type){case"assistant":return{type:"assistant",text:e.text,...t,...n,...e.compactText?{compactText:e.compactText}:{}};case"thinking":return{type:"thinking",text:e.text,...t,...n,...e.compactText?{compactText:e.compactText}:{}};case"event":return{type:"event",text:e.text,...t,...n,...e.icon?{icon:e.icon}:{},...e.compactText?{compactText:e.compactText}:{}};case"info":return{type:"info",text:e.text,...t,...n,...e.icon?{icon:e.icon}:{},...e.compactText?{compactText:e.compactText}:{}};case"user":return{type:"user",text:e.text,...t,...n};case"system":return{type:"system",text:e.text,...t,...n};case"error":return{type:"error",text:e.text,...t,...n};case"hint":return{type:"hint",text:e.text,...t,...n};case"sidecar":{let r=e.icon,i=e.sidecarVerdict??(r==="blocked"||r==="revise"?r:void 0),s=e.sidecarDelivery??(r==="budget-exhausted"?r:void 0);return{type:"sidecar",text:e.text,verdict:i,delivery:s,...t,...n}}}}o(ZN,"toCreatableTextHistoryItem");function e1(e){if(e.type!=="tool_group")return ZN(e);let t=e.tools.map(Yw);return t.length>0?{type:"tool_group",...e.afterInputId?{afterInputId:e.afterInputId}:{},tools:t,...e.timestamp===void 0?{}:{timestamp:e.timestamp}}:void 0}o(e1,"persistedUiHistoryItemToCreatableHistoryItem");function IS(e){let t=new Set,n=[];for(let r of e){if(r.type!=="tool_group"){n.push(r);continue}let i=r.tools.filter(s=>{let a=ni(s);return t.has(a)?!1:(t.add(a),!0)});i.length>0&&n.push({...r,tools:i})}return n}o(IS,"dedupeToolGroups");function t1(e,t){if(e.type!==t.type||e.taskResult!==void 0||t.taskResult!==void 0||e.outputId!==void 0||t.outputId!==void 0)return!1;if(e.inputId!==void 0||t.inputId!==void 0)return e.inputId===t.inputId;if(e.type==="tool_group"&&t.type==="tool_group")return e.tools.map(ni).join(`
|
|
2
|
+
import{a as lS,b as RR,c as Ed,d as kR,l as Ca,m as Gm,n as ER,o as MR,p as AR,q as _R}from"./chunk-53CJDQS2.js";import{$ as Cd,$a as aS,A as fd,Aa as bd,Ba as Wm,C as pd,Ha as jm,Ia as Um,Ja as mR,Ka as hR,L as Jc,La as gR,Ma as Rd,N as eR,Na as yR,Oa as wR,Pa as SR,Qa as xR,R as xd,S as tR,T as Id,V as nR,W as ms,Wa as IR,X as Qc,Xa as CR,Y as Zc,Ya as kd,Z as rR,Za as hs,_a as tl,a as Kc,ab as TR,b as ld,ba as Td,c as Bi,ca as iR,cb as cS,d as K,da as Dm,db as Vm,ea as vd,eb as vR,f as hr,fa as oR,fb as bR,g as qw,ga as sR,h as Xw,ha as aR,i as Gb,ia as cR,j as Yw,ja as Hi,k as wa,ka as iS,l as Jw,la as Bm,m as ud,ma as Xn,n as Qw,na as Dr,o as dd,oa as oS,p as Kb,pa as Br,q as zb,qa as ti,r as zc,ra as el,s as qb,sa as lR,t as Sa,ta as uR,ua as dR,va as sS,wa as fR,x as So,xa as pR,y as xo,ya as Hm,z as Zw,za as Fm}from"./chunk-MCDZNQWD.js";import{D as Xc,E as xa,J as Jb,O as Qb,P as Yc,Q as Ia,a as Re,ca as rS,da as gd,e as md,ea as $m,f as eS,fa as yd,ga as wd,h as tS,ha as Sd,i as Xb,ia as Zb,j as Yb,ja as ps,k as Lm,m as hd,p as qc,t as Om,v as nS,w as fs}from"./chunk-EISRVOBJ.js";import{a as Nm}from"./chunk-DCE7XQUG.js";import{B as cd,Ka as Vb,Na as Pm,S as Db,T as Bb,V as Kw,W as Hb,X as Fb,a as Dc,b as Ww,c as Rm,d as jw,g as Uw,h as Mm,ka as zw,la as Wb,na as jb,q as Am,qa as Ub,r as _m,x as Nb}from"./chunk-QSZCR5GC.js";import{D as ds,a as ha,n as km,p as ga,r as ad,u as Vw,v as ya}from"./chunk-X5M7TLJV.js";import{Fa as Pb,aa as _b,nb as Lb,ob as Ob,pb as $b,r as sd,s as kb}from"./chunk-D36OIMV7.js";import{l as Ab}from"./chunk-XDMNJW6J.js";import{Ab as Eb,Ud as Gc,Xd as Gw,bc as Mb,c as Rb,lb as Em,q as mr}from"./chunk-OGTRDK4Q.js";import{$d as Tm,Bd as Sb,Fb as mb,Id as xb,Jd as Ib,Kb as mm,Ld as it,Mb as hb,Md as Bc,Nd as Yt,Pd as Hc,Qd as Fc,Rd as Sm,Td as xm,Ua as Ow,Ud as Wc,Vd as jc,Wd as wo,Xd as Im,Yd as us,Zd as Cb,_d as Cm,ad as ym,ae as Hw,b as fb,be as vm,ce as Tb,de as Uc,ed as wm,fd as ma,jf as vb,kf as Fw,lf as bb,ob as ls,pb as pa,qb as pr,qd as wb,r as da,rd as Bw,re as Vc,se as bm,tb as $w,vc as Dw,z as pb}from"./chunk-2HH5AS7E.js";import{O as gb,P as yb,b as yo,c as cs,h as Ge,ia as hm,ka as Nw,qb as od,rb as gm}from"./chunk-J2L2NK6E.js";import{b as Nr,d as lm,m as um,u as dm,v as fm,z as pm}from"./chunk-KDSO7V4O.js";import{D as cm,Q as Pw,S as Lw,ga as fa}from"./chunk-SK3RRGHJ.js";import{a as o}from"./chunk-V4WSBIXB.js";function Md(e,t,n){let r=e.trim();return{type:"info",icon:"\u23F3",text:/\bretry\s+\d+\/\d+\b/i.test(r)||/\b\d+\/\d+\b/.test(r)?r:`${r} \xB7 retry ${t}/${n}`}}o(Md,"createRetryHistoryItem");function NN(e,t,n,r){e(Md(t,n,r))}o(NN,"emitRetryHistoryItem");function Ad(e){let{recoveryAction:t,attempt:n,maxAttempts:r,delayMs:i,stage:s,fallbackUsed:a}=e,c=Math.round(i/1e3);if(t==="manual_continue")return{type:"info",icon:"\u26A0",text:'Recovery exhausted. Type "continue" to retry or "stop" to cancel.'};if(t==="non_streaming_fallback"||a)return{type:"info",icon:"\u23F3",text:"Stream unstable, switching to non-streaming mode"};if(t==="sanitize_thinking_and_retry")return{type:"info",icon:"\u23F3",text:"Provider rejected replay thinking, sanitizing history and retrying"};let l;switch(s){case"before_first_delta":case"before_request_accepted":l="Provider request timed out";break;case"mid_stream_text":case"mid_stream_thinking":l="Stream interrupted after partial output";break;case"mid_stream_tool_input":l="Stream interrupted during tool input";break;case"post_tool_execution_pre_assistant_close":l="Stream interrupted after tool execution";break;default:l="Stream interrupted";break}let u=t==="stable_boundary_retry"?"recovering":"retrying";return{type:"info",icon:"\u23F3",text:c>0?`${l} \xB7 ${u} ${n}/${r} in ${c}s`:`${l} \xB7 ${u} ${n}/${r}`}}o(Ad,"createRecoveryHistoryItem");function DN(e,t){e(Ad(t))}o(DN,"emitRecoveryHistoryItem");import BN from"string-width";var uS=9,dS=3,PR=160,HN={shouldRender:!1,activeCount:0,rows:[]};function LR(e,t=uS){let n=BN(e);return n>=t?e:`${e}${" ".repeat(t-n)}`}o(LR,"padChildActivitySymbol");function Km(e){let t=e.replace(/\s+/gu," ").trim();return t.length<=PR?t:`${t.slice(0,PR-3)}...`}o(Km,"truncateChildActivityDetail");function _d(e){return!!(e?.liveOnly===!0&&(e.workflowCorrelation||e.childAgentId))}o(_d,"shouldRouteToChildActivity");function OR(e,t){return!!(e?.liveOnly===!0&&e.workflowCorrelation?.workflowRunId&&t&&e.workflowCorrelation.workflowRunId===t)}o(OR,"shouldRouteWorkflowLiveOnlyNotice");function $R(e){return!e.isTranscriptMode&&e.childActivityVisible&&(e.isLoading||e.hasWorkflowLiveSurface)}o($R,"shouldShowChildActivitySurface");function zm(e){let t=e.childAgentId??e.workflowCorrelation?.childAgentId??"child",n=e.workflowCorrelation?.workflowRunId;return n?`${n}:${t}`:t}o(zm,"childActivityId");function fS(e){return e.childAgentName??e.childAgentId??e.workflowCorrelation?.childAgentId??"child"}o(fS,"childActivityLabel");function pS(e){return e.workflowCorrelation?"workflow":"normal"}o(pS,"childActivitySource");function mS(e,t){let n=t?.path??t?.pattern??t?.command??t?.preview,r=typeof n=="string"&&n.trim().length>0?` ${n}`:"";return Km(`${e}${r}`)}o(mS,"toolActivityDetail");function hS(e,t){return e==="tool"&&["thinking","assistant","stream"].includes(t)}o(hS,"suppressesChurnOverToolAction");function FN(e){let t=Math.max(0,Math.floor(e/1e3)),n=t%60,r=Math.floor(t/60)%60,i=Math.floor(t/3600);return i>0?`${i}h${String(r).padStart(2,"0")}m`:r>0?`${r}m${String(n).padStart(2,"0")}s`:`${n}s`}o(FN,"formatChildActivityElapsed");function WN(e){switch(e){case"assistant":return"Assistant";case"thinking":return"Thinking";case"tool":return"Tool";case"progress":return"Progress";case"prompt":return"Prompt";default:return"Status"}}o(WN,"kindLabel");function jN(e,t){let n=e.label.trim()||"child",r=e.startedAt!==void 0?` \xB7 ${FN(t-e.startedAt)}`:"",i=e.detail.trim(),s=i.length>0?`: ${i}`:"";return`${n}${r} - ${WN(e.kind)}${s}`}o(jN,"rowText");function NR(e,t=dS,n=Date.now()){let r=e.filter(u=>u.status==="running");if(r.length===0)return HN;let i=Math.max(1,Math.floor(t)),s=[],a=r.length>i&&i>1?i-1:i,c=r.slice(0,a);for(let u of c)s.push({kind:"activity",id:u.id,symbol:u.source==="workflow"?"agent":"child",symbolColor:"cyan",text:jN(u,n),isActive:!0});let l=r.length-c.length;return l>0&&s.length<i&&s.push({kind:"summary",id:"children-more",symbol:"more",symbolColor:"dim",text:`${l} more active`,isActive:!1}),{shouldRender:!0,activeCount:r.length,rows:s.slice(0,i)}}o(NR,"buildChildActivityViewModel");function DR(e,t){let n=e.trim();return t.trim()?n?e===t?e:t.startsWith(e)?t:e.startsWith(t)?e:t:t:e}o(DR,"mergeLiveThinkingContent");function Ta(e,t){let n=t?.expanded?e.detailNote??e.note:e.note,r=e.activeWorkerTitle?`${e.agentMode.toUpperCase()} ${e.activeWorkerTitle}`:e.agentMode.toUpperCase(),i=e.activeWorkerTitle??"Scout",s=`${e.agentMode.toUpperCase()} ${i}`,a=`${e.agentMode.toUpperCase()} Routing`,c=e.currentRound&&e.maxRounds&&e.currentRound>1?` - Round ${e.currentRound}/${e.maxRounds}`:"";switch(e.phase){case"routing":return`${a} - Routing ready`;case"starting":return n?`${r} - ${n}`:`${r} - Managed task starting`;case"preflight":return n?`${s} - ${n}`:`${s} - ${i} preflight starting`;case"round":return n?`${r} - ${n}`:`${r} - Managed task round update${c}`;case"worker":return n?`${r} - ${n}${c}`:`${r} - ${e.activeWorkerTitle??"Worker"} starting${c}`;case"upgrade":return n?`${r} - ${n}`:`${r} - Harness transition${c}`;case"verifying":return n?`${e.agentMode.toUpperCase()} Verifying - ${n}`:`${e.agentMode.toUpperCase()} Verifying`;case"completed":return n?`${r} - ${n}`:`${r} - Managed task completed`;default:return}}o(Ta,"formatManagedTaskBreadcrumb");import*as Ld from"node:path";function or(e){return e<=0?0:Math.round(e/4)}o(or,"estimateOutputTokens");function yn(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}o(yn,"formatTokenCount");function Pd(e){if(gb(e)){let t=yb(e);return t?`[memory:${t}]`:"[memory]"}if(UN(e))return"[memory]"}o(Pd,"memoryBadgeFor");function UN(e){let t=Ld.resolve(e),n=cs("projects");if(!t.startsWith(n+Ld.sep)&&t!==n)return!1;let i=t.slice(n.length+1).split(Ld.sep);return i.length>=2&&i[1]==="memory"}o(UN,"isInsideAnyMemoryDir");function Ct(e,t=120){return e.length>t?`${e.slice(0,t-3)}...`:e}o(Ct,"truncateValue");function BR(e){if(e)return e.split(/\r?\n/).map(t=>t.trim()).find(Boolean)}o(BR,"extractFirstMeaningfulLine");function WR(e){let t=e.match(/^\[([^\]]+)\]\s+(.*)$/);if(!t)return{toolLabel:e};let n=t[1]?.trim(),r=t[2]?.trim()??e,i=new RegExp(`^${n?.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}:`,"i"),s=r.replace(i,"").trim();return{rolePrefix:n?`[${n}]`:void 0,toolLabel:s||r}}o(WR,"splitDisplayToolName");function qm(e){let{rolePrefix:t,toolLabel:n}=WR(e);return t?`${t} ${n}`:n}o(qm,"normalizeDisplayToolName");function Od(e){return WR(e).toolLabel}o(Od,"stripRolePrefix");function Xm(e){if(!(!e||Array.isArray(e)||typeof e!="object"))return e}o(Xm,"asRecord");function jR(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}o(jR,"readString");function un(e,...t){for(let n of t){let r=jR(e?.[n]);if(r)return r}}o(un,"readFirstString");function Fi(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim().length>0){let t=Number(e.trim());return Number.isFinite(t)?t:void 0}}o(Fi,"readNumber");function UR(e){if(!Array.isArray(e))return;let t=e.map(n=>typeof n=="string"?n.trim():"").filter(Boolean);return t.length>0?t:void 0}o(UR,"readStringArray");function VN(e){if(typeof e=="string")return e.trim()||void 0;let t=Xm(e);if(t)return jR(t.preview)??void 0}o(VN,"extractPreview");function HR(e){if(e)try{return Xm(JSON.parse(e))}catch{return}}o(HR,"parsePreviewRecord");function nt(e,t){return e&&e.match(new RegExp(`"${t}"\\s*:\\s*"([^"]+)`))?.[1]?.trim()||void 0}o(nt,"extractFieldFromPreview");function Wi(e,t){if(!e)return;let n=e.match(new RegExp(`"${t}"\\s*:\\s*(\\d+)`));return n?.[1]?Number(n[1]):void 0}o(Wi,"extractNumberFromPreview");function VR(e){if(!e)return;let t=e.match(/"paths"\s*:\s*\[([^\]]*)/);if(!t?.[1])return;let n=Array.from(t[1].matchAll(/"([^"]+)"/g)).map(r=>r[1]?.trim()??"").filter(Boolean);return n.length>0?n:void 0}o(VR,"extractPathsFromPreview");function GN(e){let t=VN(e);if(typeof e=="string")return{record:HR(t),preview:t};let n=Xm(e),r=HR(t);return n?r?{record:{...n,...r},preview:t}:{record:n,preview:t}:{record:r,preview:t}}o(GN,"resolveInputRecord");function nl(e,t,n,r=!1){let i=un(t,"path","target_path","targetPath")??nt(n,"path")??nt(n,"target_path")??nt(n,"targetPath"),s=UR(t?.paths)??VR(n);if(r&&s?.length){if(s.length===1){let a=Pd(s[0]);a&&e.push(a),e.push(Ct(s[0]))}else e.push(`${s.length} files`);return}if(i){let a=Pd(i);a&&e.push(a),e.push(Ct(i));return}if(s?.length)if(s.length===1){let a=Pd(s[0]);a&&e.push(a),e.push(Ct(s[0]))}else e.push(`${s.length} files`)}o(nl,"pushPathSummary");function rl(e,t,n){n!==void 0&&e.push(`${t}=${n}`)}o(rl,"pushNumericSummary");function gS(e,t,n){let r=un(t,"baseRef","base_ref")??nt(n,"baseRef")??nt(n,"base_ref"),i=un(t,"targetRef","target_ref")??nt(n,"targetRef")??nt(n,"target_ref");r&&i&&e.push(Ct(`${r}...${i}`,88))}o(gS,"pushRangeSummary");function KN(e,t){let{record:n,preview:r}=GN(t),i=Od(e).toLowerCase(),s=[];if(i.includes("changed_diff_bundle")){let a=UR(n?.paths)??VR(r);a?.length?(s.push(a.length===1?Ct(a[0]):`${a.length} files`),a.length>1&&s.push(Ct(a[0]))):nl(s,n,r,!0);let c=Fi(n?.limit_per_path)??Fi(n?.limitPerPath)??Wi(r,"limit_per_path")??Wi(r,"limitPerPath");return c!==void 0&&s.push(`limit=${c}`),gS(s,n,r),s}if(i.includes("changed_diff"))return nl(s,n,r),rl(s,"offset",Fi(n?.offset)??Wi(r,"offset")),rl(s,"limit",Fi(n?.limit)??Wi(r,"limit")),gS(s,n,r),s;if(i==="read"||i.includes("read_"))return nl(s,n,r),rl(s,"offset",Fi(n?.offset)??Wi(r,"offset")),rl(s,"limit",Fi(n?.limit)??Wi(r,"limit")),s;if(i.includes("changed_scope"))return nl(s,n,r,!0),gS(s,n,r),s;if(i.includes("repo_overview"))return nl(s,n,r),s;if(i.includes("bash")||i.includes("shell_command")){let a=un(n,"command")??nt(r,"command");return a&&s.push(`cmd=${Ct(a,140)}`),s}if(i==="glob"||i.includes("glob_")){let a=un(n,"pattern")??nt(r,"pattern"),c=un(n,"path","root","directory","cwd")??nt(r,"path")??nt(r,"root")??nt(r,"directory")??nt(r,"cwd");if(a&&s.push(`pattern=${Ct(a,96)}`),c){let l=Pd(c);l&&s.push(l),s.push(Ct(c))}return s}if(i==="grep"||i.includes("grep_")){let a=un(n,"pattern","query")??nt(r,"pattern")??nt(r,"query"),c=un(n,"path","root","directory","cwd")??nt(r,"path")??nt(r,"root")??nt(r,"directory")??nt(r,"cwd");if(a&&s.push(`pattern=${Ct(a,96)}`),c){let l=Pd(c);l&&s.push(l),s.push(Ct(c))}return s}if(i==="web_fetch"){let a=un(n,"url")??nt(r,"url"),c=un(n,"provider_id","providerId")??nt(r,"provider_id")??nt(r,"providerId"),l=un(n,"capability_id","capabilityId")??nt(r,"capability_id")??nt(r,"capabilityId");return a&&s.push(Ct(a,120)),c&&s.push(`provider=${Ct(c,48)}`),l&&s.push(`cap=${Ct(l,48)}`),s}if(i==="mcp_describe"||i==="mcp_read_resource"){let a=un(n,"id")??nt(r,"id");return a&&s.push(Ct(a,120)),s}if(i==="mcp_call"){let a=un(n,"id")??nt(r,"id"),c=Xm(n?.args),l=c?Object.keys(c).length:void 0;return a&&s.push(Ct(a,120)),l!==void 0&&s.push(`args=${l}`),s}if(i==="skill"){let a=un(n,"skill","name")??nt(r,"skill");return a&&s.push(Ct(a,64)),s}if(i==="mcp_search"){let a=un(n,"query")??nt(r,"query"),c=un(n,"server")??nt(r,"server"),l=un(n,"kind")??nt(r,"kind"),u=Fi(n?.limit)??Wi(r,"limit");return a&&s.push(`query=${Ct(a,96)}`),c&&s.push(`server=${Ct(c,48)}`),l&&s.push(`kind=${l}`),u!==void 0&&s.push(`limit=${u}`),s}if(i==="web_search"||i==="code_search"||i==="semantic_lookup"){let a=un(n,"query","pattern")??nt(r,"query")??nt(r,"pattern"),c=un(n,"path","target_path","targetPath")??nt(r,"path")??nt(r,"target_path")??nt(r,"targetPath"),l=un(n,"provider_id","providerId")??nt(r,"provider_id")??nt(r,"providerId"),u=Fi(n?.limit)??Wi(r,"limit");return a&&s.push(`query=${Ct(a,96)}`),c&&s.push(Ct(c,72)),l&&s.push(`provider=${Ct(l,48)}`),u!==void 0&&s.push(`limit=${u}`),s}return nl(s,n,r,!0),rl(s,"offset",Fi(n?.offset)??Wi(r,"offset")),rl(s,"limit",Fi(n?.limit)??Wi(r,"limit")),s}o(KN,"summarizeToolDetails");function GR(e){let t=e.match(/Showing diff lines\s+(\d+)-(\d+)\s+of\s+(\d+)/i);if(t)return`${t[1]}-${t[2]}/${t[3]}`}o(GR,"extractChangedDiffRange");function zN(e){return e.split(/\r?\n/).map(t=>t.trim()).find(t=>t.startsWith("+")||t.startsWith("-")||t.startsWith("@@"))}o(zN,"extractDiffPreviewLine");function qN(e){let t=[],n=GR(e);if(n){let[i,s]=n.split("/");t.push(s?`Diff range: ${i} of ${s}`:`Diff range: ${n}`)}let r=zN(e);return r&&t.push(`Preview: ${Ct(r,220)}`),t}o(qN,"formatChangedDiffExplanation");function XN(e){let t=[],n=e.match(/^Changed diff bundle for\s+(\d+)\s+file\(s\)/im);if(n?.[1]){let i=Number(n[1]);Number.isFinite(i)&&i>0&&t.push(`Bundle: ${i===1?"1 file":`${i} files`}`)}let r=e.match(/^===\s+(.+?)\s+===/m);return r?.[1]&&t.push(`First file: ${Ct(r[1].trim(),220)}`),t}o(XN,"formatChangedDiffBundleExplanation");function KR(e,t){if(!t)return[];let n=Od(e).toLowerCase(),r=[];if(n.includes("changed_diff_bundle")){let i=t.match(/^Changed diff bundle for\s+(\d+)\s+file\(s\)/im);if(i?.[1]){let a=Number(i[1]);Number.isFinite(a)&&a>0&&r.push(a===1?"1 file":`${a} files`)}let s=t.match(/^===\s+(.+?)\s+===/m);return s?.[1]&&r.push(Ct(s[1].trim())),r}if(n.includes("changed_diff")){let i=t.match(/^Changed diff for\s+(.+)$/im);i?.[1]&&r.push(Ct(i[1].trim()));let s=GR(t);return s&&r.push(s),r}if(n==="read"||n.includes("read_")){let i=t.match(/^Reading\s+(.+)$/im);return i?.[1]&&r.push(Ct(i[1].trim())),r}if(n==="edit"||n==="write"||n==="multi_edit"||n==="insert_after_anchor"){let i=/^(?:File (?:edited|created|updated|written)|Content inserted after anchor in):\s+(.+)$/im.exec(t);if(i?.[1]){let s=i[1].trim().replace(/\s*\([^)]*\)$/,"");if(s){r.push(Ct(s));let a=/\(\+(\d+) lines?, -(\d+) lines?\)/.exec(t);if(a?.[1]&&a[2])r.push(`+${a[1]} -${a[2]}`);else{let c=/\((\d+) lines? written\)/.exec(t);c?.[1]?r.push(`new, ${c[1]} lines`):/no changes/.test(t)&&r.push("no changes")}}}return r}return[]}o(KR,"summarizeToolOutputDetails");function yS(e,t){let n=qm(e);return t.length>0?`${n} - ${t.join(" - ")}`:n}o(yS,"formatToolDetailSummary");function YN(e,t){if(!t)return;let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}o(YN,"formatDuration");function JN(e){switch(e.status){case K.Scheduled:return"scheduled";case K.Validating:return"validating";case K.AwaitingApproval:return"awaiting approval";case K.Executing:return"running";case K.Error:return"failed";case K.Cancelled:return"cancelled";default:return}}o(JN,"formatToolStatusDetail");function FR(e){switch(e.status){case K.Scheduled:return["Queued: waiting to start"];case K.Validating:return["Validating: checking inputs and policy"];case K.AwaitingApproval:return["Waiting: approval required before execution"];case K.Executing:return e.progress!==void 0?[`Progress: ${e.progress}% complete`]:e.progressLines&&e.progressLines.length>0?e.progressLines.slice(-5):e.preview?[`Running: ${e.preview}`]:["Running: waiting for tool output"];case K.Cancelled:return["Cancelled before completion"];default:return[]}}o(FR,"formatToolProgressExplanation");function wS(e){return e.startsWith("Error:")?"error":e.startsWith("Waiting:")?"accent":e.startsWith("Progress:")||e.startsWith("Running:")?"primary":"dim"}o(wS,"resolveToolExplanationTone");function QN(e){let t=BR(e.error),n=typeof e.output=="string"?BR(e.output):void 0,r=[];return t&&r.push(`Error: ${Ct(t,220)}`),e.status===K.Error&&n&&(!t||n.toLowerCase()!==t.toLowerCase())&&r.push(`Last output: ${Ct(n,220)}`),r}o(QN,"formatToolFailureExplanation");function SS(e){if(typeof e.output!="string"||!e.output.trim())return FR(e);let t=Od(e.name).toLowerCase();return e.status===K.Error?QN(e):e.status!==K.Success?FR(e):t.includes("changed_diff_bundle")?XN(e.output):t.includes("changed_diff")?qN(e.output):[]}o(SS,"formatToolResultExplanation");function xS(e,t){return yS(e,KN(e,t))}o(xS,"formatToolSummary");function Ym(e){let t=typeof e.output=="string"?KR(e.name,e.output):[],n=t.length>0?yS(e.name,t):xS(e.name,e.input),r=JN(e),i=YN(e.startTime,e.endTime),s=e.status===K.Executing&&e.progress!==void 0?`${e.progress}%`:e.status===K.Executing&&e.preview?e.preview:void 0,a=[r,s,i].filter(Boolean);return a.length>0?`${n} (${a.join(" - ")})`:n}o(Ym,"formatToolCallInlineText");function Jm(e){let t=new Map;for(let n of e){let r=typeof n.output=="string"?KR(n.name,n.output):[],i=r.length>0?yS(n.name,r):xS(n.name,n.input),a=n.progressLines&&n.progressLines.length>0?`${i}|${n.id}`:`${i}|${n.error??""}`,c=t.get(a);c?(c.tool=n,c.count+=1,c.members.push(n)):t.set(a,{tool:n,count:1,members:[n]})}return[...t.values()]}o(Jm,"collapseToolCalls");function $d(e){let t=Ym(e.tool);return e.count>1?`${t} x${e.count}`:t}o($d,"formatCollapsedToolInlineText");function Qm(e,t,n){let r=xS(e,t);return r!==qm(e)?`[Tools] ${r}`:n>0?`[Tools] ${qm(e)} (~${yn(or(n))} tokens)`:`[Tools] ${qm(e)}`}o(Qm,"formatLiveToolLabel");function Zm(e,t){if(!e||!t)return e;let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`^\\[Tools\\]\\s+\\[${n}\\]\\s+`,"i"),"[Tools] ").replace(new RegExp(`^\\[Thinking\\]\\s+\\[${n}\\]\\s*`,"i"),"[Thinking] ").replace(new RegExp(`^\\[${n}\\]\\s+thinking\\b`,"i"),"[Thinking]").trim()}o(Zm,"formatManagedLiveActivityLabel");function Io(e,t){return Zm(`[Tools] ${Ym(e)}`,t)??`[Tools] ${Ym(e)}`}o(Io,"formatManagedLiveToolLabel");function eh(e,t){if(e.type!==t.type)return!1;switch(e.type){case"assistant":{let n=t;return e.text===n.text&&e.compactText===n.compactText}case"thinking":{let n=t;return e.text===n.text&&e.compactText===n.compactText}case"event":{let n=t;return e.text===n.text&&e.compactText===n.compactText&&e.icon===n.icon}case"info":{let n=t;return e.text===n.text&&e.compactText===n.compactText&&e.icon===n.icon}case"error":case"hint":case"system":case"user":{let n=t;return e.text===n.text}case"tool_group":{let n=t;return JSON.stringify(e.tools)===JSON.stringify(n.tools)}default:return!1}}o(eh,"areManagedLiveItemsEquivalent");function zR(e){return e==="Task completed"?Re("managed.completed"):e==="Task needs continuation"?Re("managed.completed.continuation"):e==="Task ended: blocked"?Re("managed.completed.blocked"):e==="Task ended: needs_continuation"?Re("managed.completed.continuation"):e.startsWith("Task ended:")?Re("managed.completed.blocked"):e}o(zR,"localizeManagedCompletionSummary");var qR=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1";function IS(e){if(e.events&&e.events.length>0)return e.events.reduce((r,i)=>{let s=i.summary.trim(),a=(i.detail??i.summary).trim();if(!s||!a)return r;let c=`managed-live-${i.key}`,l=Date.now(),u=i.persistToHistory??e.persistToHistory??!1;if(i.presentation==="thinking")return r.push({item:{id:c,type:"thinking",timestamp:l,text:a,...s!==a?{compactText:s}:{}},persistToHistory:u}),r;if(i.presentation==="assistant")return r.push({item:{id:c,type:"assistant",timestamp:l,text:a,...s!==a?{compactText:s}:{}},persistToHistory:u}),r;let d=i.kind==="completed";if(d&&!qR)return r;let p=d?`[${zR(s)}]`:void 0,m=p??s,h=p??a;return r.push({item:{id:c,type:"event",timestamp:l,text:h,icon:i.kind==="warning"?"!":d?"\u2713":">",...m!==h?{compactText:m}:{}},persistToHistory:u}),r},[]);if(e.phase==="completed"&&!qR)return[];let t=Ta(e),n=Ta(e,{expanded:!0})??t;return!t||!n?[]:[{item:{id:`managed-live-fallback-${e.phase??"worker"}-${t.toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48)}`,type:"event",timestamp:Date.now(),text:n,icon:">",...t!==n?{compactText:t}:{}},persistToHistory:e.persistToHistory??!1}]}o(IS,"buildManagedLiveEventDrafts");var XR=150,YR=50;function QR(e){if(e.length===0)return[];let t=[];for(let s=0;s<e.length;s+=1)e[s]?.type==="user"&&t.push(s);let n=[...e];if(t.length>YR){let s=t[t.length-YR]??0;n=e.slice(s)}if(n.length<=XR)return[...n];let r=n.slice(-XR),i=r.findIndex(s=>s.type==="user");return i>0?r.slice(i):r}o(QR,"trimHistoryWindow");function ji(e){return QR(e)}o(ji,"trimPersistedUiHistorySnapshot");function Co(e){if(e)return ji(e)}o(Co,"normalizePersistedUiHistory");function ZN(e){let t={...e.outputId?{outputId:e.outputId}:{},...e.textRevision!==void 0?{textRevision:e.textRevision}:{},...e.timestamp===void 0?{}:{timestamp:e.timestamp},...e.inputId?{inputId:e.inputId}:{},...e.afterInputId?{afterInputId:e.afterInputId}:{}},n=e.presentationOnly===!0?{isSessionUiOnly:!0}:{};switch(e.type){case"assistant":return{type:"assistant",text:e.text,...t,...n,...e.compactText?{compactText:e.compactText}:{}};case"thinking":return{type:"thinking",text:e.text,...t,...n,...e.compactText?{compactText:e.compactText}:{}};case"event":return{type:"event",text:e.text,...t,...n,...e.icon?{icon:e.icon}:{},...e.compactText?{compactText:e.compactText}:{}};case"info":return{type:"info",text:e.text,...t,...n,...e.icon?{icon:e.icon}:{},...e.compactText?{compactText:e.compactText}:{}};case"user":return{type:"user",text:e.text,...t,...n};case"system":return{type:"system",text:e.text,...t,...n};case"error":return{type:"error",text:e.text,...t,...n};case"hint":return{type:"hint",text:e.text,...t,...n};case"sidecar":{let r=e.icon,i=e.sidecarVerdict??(r==="blocked"||r==="revise"?r:void 0),s=e.sidecarDelivery??(r==="budget-exhausted"?r:void 0);return{type:"sidecar",text:e.text,verdict:i,delivery:s,...t,...n}}}}o(ZN,"toCreatableTextHistoryItem");function e1(e){if(e.type!=="tool_group")return ZN(e);let t=e.tools.map(Jw);return t.length>0?{type:"tool_group",...e.afterInputId?{afterInputId:e.afterInputId}:{},tools:t,...e.timestamp===void 0?{}:{timestamp:e.timestamp}}:void 0}o(e1,"persistedUiHistoryItemToCreatableHistoryItem");function CS(e){let t=new Set,n=[];for(let r of e){if(r.type!=="tool_group"){n.push(r);continue}let i=r.tools.filter(s=>{let a=ni(s);return t.has(a)?!1:(t.add(a),!0)});i.length>0&&n.push({...r,tools:i})}return n}o(CS,"dedupeToolGroups");function t1(e,t){if(e.type!==t.type||e.taskResult!==void 0||t.taskResult!==void 0||e.outputId!==void 0||t.outputId!==void 0)return!1;if(e.inputId!==void 0||t.inputId!==void 0)return e.inputId===t.inputId;if(e.type==="tool_group"&&t.type==="tool_group")return e.tools.map(ni).join(`
|
|
3
3
|
`)===t.tools.map(ni).join(`
|
|
4
|
-
`);if(e.type==="tool_group"||t.type==="tool_group")return!1;let n=e.text.trim(),r=t.text.trim();return n===r||JR(n,r)||JR(r,n)}o(t1,"matchesTimestampSource");function JR(e,t){if(!e.endsWith(t))return!1;let n=e.slice(0,-t.length);return/^\[[^\]\r\n]+\]\s+$/.test(n)}o(JR,"hasDisplayPrefix");function n1(e,t){let n=new Map,r=e.length-1;for(let i=t.length-1;i>=0;i-=1){let s=t[i];if(s)for(let a=r;a>=0;a-=1){let c=e[a];if(!(!c||!(s.type==="tool_group"?c.type==="tool_group"&&s.tools.some(u=>c.tools.some(d=>ni(d)===ni(u))):c.type!=="tool_group"&&t1(c,s)))){n.set(i,a),r=a-1;break}}}return n}o(n1,"alignCanonicalItems");function r1(e,t){if(e.type==="tool_group"||t.type==="tool_group")return e;let n=t.timestamp??e.timestamp,r=n===void 0?{}:{timestamp:n};switch(e.type){case"assistant":case"thinking":return{...e,...r,...t.type===e.type&&t.compactText?{compactText:t.compactText}:{}};case"event":case"info":return{...e,...r,...t.type===e.type&&t.icon?{icon:t.icon}:{},...t.type===e.type&&t.compactText?{compactText:t.compactText}:{}};case"sidecar":return t.type==="sidecar"?{...e,...r,verdict:t.verdict,delivery:t.delivery}:e;default:return{...e,...r}}}o(r1,"overlayCanonicalTextItem");function i1(e,t,n,r){if(e.type!=="event"||e.icon!=="tool")return!1;let i=e.text.trimStart();if(!i.startsWith("\u2699")||n===void 0&&r===void 0)return!1;let s=i.slice(1).trimStart(),a=n===void 0?0:n+1,c=r??t.length;return t.slice(a,c).some(l=>l.type==="tool_group"&&l.tools.some(u=>s===u.name||s.startsWith(`${u.name}(`)||s.startsWith(`${u.name} `)))}o(i1,"isLegacyToolSummary");function ni(e){return JSON.stringify([e.assistantOutputId??null,e.id])}o(ni,"toolIdentity");function o1(e){let t=new Map;for(let n of e)if(n.type==="tool_group")for(let r of n.tools){let i=ni(r);t.has(i)||t.set(i,{tool:r,timestamp:n.timestamp})}return t}o(o1,"collectPersistedTools");function ZR(e){let t=new Set;for(let n of e)if(n.type==="tool_group")for(let r of n.tools)t.add(ni(r));return t}o(ZR,"collectCanonicalToolIds");function s1(e,t,n){let r=new Map,i=new Set,s=n1(e,t);for(let[a,c]of s)a<n?i.add(c):r.set(a-n,c);return{anchors:r,outOfWindowPersistedIndices:i}}o(s1,"alignCanonicalWindow");function a1(e,t,n,r){return t.map((i,s)=>{if(i.type!=="tool_group"){let l=n.get(s),u=l===void 0?void 0:e[l];return u?r1(i,u):i}let a=i.tools.map(l=>r.get(ni(l))?.tool??l),c=a.map(l=>r.get(ni(l))?.timestamp).find(l=>l!==void 0)??i.timestamp;return{...i,tools:a,...c===void 0?{}:{timestamp:c}}})}o(a1,"buildCanonicalItems");function c1(e){let t=new Map;for(let[n,r]of e)t.set(r,n);return t}o(c1,"invertAnchors");function l1(e,t){let n=new Array(e),r;for(let i=e-1;i>=0;i-=1){let s=t.get(i);s===void 0?n[i]=r:r=s}return n}o(l1,"nextDerivedAnchors");function u1(e,t,n){if(e.type==="tool_group"){let i=e.tools.filter(s=>!t.has(ni(s)));return i.length>0?{...e,tools:i,isSessionUiOnly:!0}:void 0}return(e.type==="assistant"||e.type==="thinking"||e.type==="user"&&!e.text.trimStart().startsWith("/"))&&!n&&e.isSessionUiOnly!==!0&&e.outputId===void 0?void 0:{...e,isSessionUiOnly:!0}}o(u1,"markUiOnlyItem");function d1(e,t,n,r,i,s){let a=c1(t),c=l1(e.length,a),l=Math.max(-1,...a.keys()),u=new Map,d;for(let p=0;p<e.length;p+=1){let m=a.get(p);if(m!==void 0){d=m;continue}let h=e[p];if(!h||n.has(p))continue;let g=c[p];if(i1(h,r,d,g))continue;let S=u1(h,i,s);if(!S)continue;let T=t.size===0||p>l?r.length:d===void 0?g??0:d+1,x=h.afterInputId===void 0?-1:r.findIndex(v=>v.type==="user"&&v.inputId===h.afterInputId);if(x>=0){let v=r.findIndex((k,_)=>_>x&&k.type==="user");T=Math.min(Math.max(T,x+1),v<0?r.length:v)}let I=u.get(T)??[];I.push(S),u.set(T,I)}return u}o(d1,"collectUiOnlyInsertions");function f1(e,t){let n=[];for(let r=0;r<=e.length;r+=1){n.push(...t.get(r)??[]);let i=e[r];i&&n.push(i)}return n}o(f1,"mergeAtCanonicalBoundaries");function p1(e,t,n,r,i){let s=s1(e,n,r),a=a1(e,t,s.anchors,o1(e)),c=d1(e,s.anchors,s.outOfWindowPersistedIndices,a,ZR(n),i);return f1(a,c)}o(p1,"enrichCanonicalUiHistory");function $d(e){let t=new Set(e.messages.flatMap(m=>m.outputId?[m.outputId]:[])),n=e.structuredTaskResults?e.messages.filter(m=>m.inputId!==void 0).map(m=>({message:m,reports:wm(m)})).filter(({reports:m})=>m.length>0):[],r=Io(e.uiHistory?.filter(m=>(m.type==="tool_group"||!m.outputId||!t.has(m.outputId))&&(m.type!=="event"&&m.type!=="info"||!n.some(({message:h,reports:g})=>m.inputId!==void 0&&(h.inputId===m.inputId||h.inputIds?.includes(m.inputId))&&(m.sourceTurnId===void 0||h.turnId===m.sourceTurnId)&&(m.text===ud(h.content)||g.some(S=>m.text===S.summary)))))),i=!!r?.length,s=Jw(e.messages,e.structuredTaskResults).filter(m=>!i||m.type!=="task_completed").map(ya),a=e.historyScope==="all"?s:QR(s);if(!r||r.length===0)return IS(a);let c=new Map(e.messages.flatMap(m=>m.inputId?(m.inputIds??[]).map(h=>[h,m.inputId]):[])),l=ZR(s),u=IS(r.map(e1).filter(m=>!!m).flatMap(m=>m.type==="tool_group"&&m.tools.some(h=>l.has(ni(h)))&&m.tools.some(h=>!l.has(ni(h)))?m.tools.map(h=>({...m,tools:[h]})):[m]).map(m=>m.afterInputId&&c.has(m.afterInputId)?{...m,afterInputId:c.get(m.afterInputId)}:m)),d=a[0],p=d===void 0?s.length:s.indexOf(d);return IS(p1(u,a,s,p,e.messages.length===0))}o($d,"restoreHistoryItemsFromSession");import{spawnSync as m1}from"node:child_process";function th(e){return e==="1"||e?.toLowerCase()==="true"}o(th,"isTruthyEnv");function e0(e){return e==="0"||e?.toLowerCase()==="false"}o(e0,"isFalseyEnv");function rl(e=process.env){return e.TERM_PROGRAM?.toLowerCase()==="vscode"||!!e.VSCODE_GIT_IPC_HANDLE||!!e.VSCODE_INJECTION}o(rl,"isVsCodeTerminalHostEnv");function il(e={}){let t=e.env??process.env;return(e.platform??process.platform)==="win32"||!!t.WT_SESSION}o(il,"hasCursorUpViewportYankRisk");function h1(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}o(h1,"isSshSession");function Nd(e={}){let t=e.env??process.env;return th(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&h1(t)}o(Nd,"isRemoteConptyHost");function nh(e={}){let t=e.env??process.env;return il(e)||rl(t)}o(nh,"hasMainScreenRenderScrollRisk");function g1(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}o(g1,"isTmuxControlModeEnvHeuristic");var Co;function Dd(e={}){if(typeof e.tmuxControlMode=="boolean")return e.tmuxControlMode;let t=e.env??process.env,n=e.platform??process.platform;if(n==="win32")return!1;if(g1(t))return!0;if(!(t===process.env&&n===process.platform))return!1;if(Co!==void 0||(Co=!1,!t.TMUX)||t.TERM_PROGRAM&&t.TERM_PROGRAM!=="iTerm.app")return Co;try{let i=m1("tmux",["display-message","-p","#{client_control_mode}"],{encoding:"utf8",timeout:2e3});i.status===0&&(Co=i.stdout.trim()==="1")}catch{Co=!1}return Co}o(Dd,"isTmuxControlMode");function CS(){Co=void 0}o(CS,"resetTmuxControlModeProbeForTesting");function Ta(e={}){let t=e.env??process.env,n=e.isTTY??process.stdout.isTTY===!0,r=e.rawModeSupported??(process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function");return!n||!r||t.TERM==="dumb"||t.CI==="true"?"unsupported_control_host":Dd(e)?"tmux_control_mode":rl(t)?"xtermjs_host":Nd(e)?"remote_conpty_host":il(e)?"degraded_vt":"native_vt"}o(Ta,"detectTerminalRenderHost");var va=Ta;function ol(e={}){let t=e.env??process.env;if(th(t.KODAX_FORCE_INK))return"legacy";let n=t.KODAX_TUI_RENDERER?.trim().toLowerCase();return n==="legacy"||n==="owned"||n==="auto"?n:"auto"}o(ol,"resolveConfiguredTuiRendererMode");function ba(e={}){let t=ol(e);if(t==="legacy"||t==="owned")return t;let n=Ta(e);return n==="unsupported_control_host"||n==="tmux_control_mode"?"legacy":"owned"}o(ba,"resolveEffectiveTuiRendererMode");function sl(e={}){let t=e.env??process.env;if(th(t.KODAX_FORCE_CLASSIC_REPL))return"classic";let n=ol({env:t});if(n==="legacy"||n==="owned")return"ink";let r=Ta(e);return r==="unsupported_control_host"||r==="tmux_control_mode"?"classic":"ink"}o(sl,"resolveInteractiveSurfacePreference");var y1={enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!0},t0={enabled:!0,promptShell:"main-screen",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!1,transcriptSpinnerAnimation:!0};function Ra(e,t="owned",n={}){let r=n.env??process.env;return e0(r.KODAX_FULLSCREEN)?t==="owned"&&e!=="tmux_control_mode"&&e!=="unsupported_control_host"?t0:y1:w1(e,t)}o(Ra,"resolveFullscreenPolicy");function w1(e,t){if(t==="legacy")switch(e){case"native_vt":return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!0,transcriptSpinnerAnimation:!0};case"xtermjs_host":case"degraded_vt":case"remote_conpty_host":return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1};default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}switch(e){case"native_vt":return{enabled:!0,promptShell:"virtual",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!0,transcriptSpinnerAnimation:!0};case"xtermjs_host":return{enabled:!0,promptShell:"virtual",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!0,transcriptSpinnerAnimation:!0};case"degraded_vt":return{enabled:!0,promptShell:"virtual",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!0,transcriptSpinnerAnimation:!0};case"remote_conpty_host":return t0;default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}}o(w1,"buildFullscreenPolicy");function al(e,t={}){let n=t.rendererMode??"owned",r=Ra(e,n,{env:t.env}),i=e!=="unsupported_control_host"&&e!=="tmux_control_mode";return{profile:e,ownsViewportByDefault:r.enabled&&r.promptShell==="virtual",supportsMouseTracking:r.mouseWheel||r.mouseClicks,bufferingMode:r.streamingPreview?"live":"buffered-fallback",supportsFullscreenLayout:r.enabled,supportsOverlaySurface:r.enabled,supportsSelection:i,supportsCopyOnSelect:!1,supportsWheelHistory:r.mouseWheel,supportsViewportChrome:r.enabled,supportsSearchViewport:r.enabled,supportsStickyPrompt:r.enabled}}o(al,"getTerminalHostCapabilities");function rh(e={}){return ba(e)==="owned"}o(rh,"isOwnedRendererPreferred");function ih(e={}){let t=e.env??process.env;return th(t.KODAX_FORCE_CLASSIC_REPL)&&!e0(t.KODAX_FORCE_CLASSIC_REPL)}o(ih,"isClassicReplForced");var cl=class{static{o(this,"LRUCache")}capacity;cache;constructor(t){this.capacity=t,this.cache=new Map}get(t){if(!this.cache.has(t))return;let n=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,n),n}set(t,n){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.capacity){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(t,n)}has(t){return this.cache.has(t)}delete(t){return this.cache.delete(t)}clear(){this.cache.clear()}get size(){return this.cache.size}},r0=1,i0=2,S1=1e3,x1=2048,n0;function I1(){if(!(typeof Intl>"u"||typeof Intl.Segmenter!="function"))return n0??=new Intl.Segmenter("en",{granularity:"grapheme"}),n0}o(I1,"getGraphemeSegmenter");function*oh(e){let t=I1();if(!t){yield*e;return}let n="";for(let r=0;r<e.length;){let i=Math.min(r+x1,e.length);i<e.length&&e.codePointAt(i-1)>65535&&i--;let s=n+e.slice(r,i);n="";for(let{segment:a}of t.segment(s))n&&(yield n),n=a;r=i}n&&(yield n)}o(oh,"graphemes");function Hr(e){let t=0;for(let n of oh(e))t++;return t}o(Hr,"getCodePointLength");function To(e){if(!e)return!1;let t=e.codePointAt(0);return t===void 0?!1:t>=19968&&t<=40959||t>=13312&&t<=19903||t>=63744&&t<=64255||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=44032&&t<=55215||t>=12288&&t<=12351||t>=65280&&t<=65519||t>=128512&&t<=128591||t>=127744&&t<=128511||t>=128640&&t<=128767||t>=127456&&t<=127487||t>=9728&&t<=9983||t>=9984&&t<=10175||t>=129280&&t<=129535||t>=129536&&t<=129647||t>=129648&&t<=129791}o(To,"isWideChar");function Ui(e){let t=0;for(let n of oh(e))t+=To(n)?i0:r0;return t}o(Ui,"getVisualWidth");function C1(e,t){if(!e||t<0)return"";let n=0;for(let r of oh(e))if(n++===t)return r;return""}o(C1,"getCharAtCodePoint");function gr(e){return[...oh(e)]}o(gr,"splitByCodePoints");function T1(e,t,n){return gr(e).slice(t,n).join("")}o(T1,"sliceByCodePoints");function o0(e,t){let n=Math.max(0,t),r=gr(e),i=0,s=0;for(;i<r.length;){let a=To(r[i])?i0:r0;if(s+a>n)break;s+=a,i++}return{before:r.slice(0,i).join(""),current:r[i]??"",after:r.slice(i+1).join("")}}o(o0,"splitAtVisualColumn");function Bd(e,t,n=!1){if(!e||t<=0)return"";let r="\u2026",s=n?t-1:t,a="",c=0,l=gr(e);for(let u of l){let d=To(u)?2:1;if(c+d>s)break;a+=u,c+=d}return n&&a.length<e.length&&(a+=r),a}o(Bd,"truncateByVisualWidth");var TS=new cl(S1);function vS(e){let t=TS.get(e);if(t!==void 0)return t;let n=Ui(e);return TS.set(e,n),n}o(vS,"getVisualWidthCached");function sr(e,t,n,r){let i=[],s=[],a=[];for(let c=0;c<e.length;c++){let l=e[c]||"";if(s[c]=[],l.length===0){i.push("");let p=i.length-1;s[c].push([p,0]),a.push([c,0]);continue}let u=0,d=gr(l);for(;u<d.length;){let p="",m=0,h=u,g=-1;for(let S=u;S<d.length;S++){let T=d[S],x=To(T)?2:1;if(m+x>t){g>=0&&S-u>0?(p=d.slice(u,g).join(""),m=d.slice(u,g).reduce((I,v)=>I+(To(v)?2:1),0),h=g):p.length===0&&x>t&&(p=T,m=x,h=S+1);break}p+=T,m+=x,h=S+1,T===" "&&(g=S+1)}if(p.length>0||i.length===0){let S=u,T=i.length;i.push(p),s[c].push([T,S]),a.push([c,S])}u=h}}return{visualLines:i,logicalToVisualMap:s,visualToLogicalMap:a}}o(sr,"calculateVisualLayout");function bS(e,t){let{logicalToVisualMap:n,visualLines:r}=e;if(r.length===0)return[0,0];let[i,s]=t,a=n[i];if(!a||a.length===0)return[0,0];let c;for(let[h,g]of a)if(g<=s)c=[h,g];else break;let[l,u]=c??a[0],d=r[l]??"",p=Math.max(0,s-u),m=Ui(T1(d,0,p));return[l,m]}o(bS,"calculateVisualCursorFromLayout");var RS={name:"dark",colors:{primary:"#01A4FF",secondary:"#8B5CF6",accent:"#F59E0B",text:"#CCCCCC",dim:"#666666",thinking:"#A3ADC2",success:"#19C37D",warning:"#FF9F43",error:"#FF5F56",info:"#01A4FF",hint:"#8B5CF6",background:"#0D0D0D",inputBackground:"#1A1A1A",diffAddBackground:"#213A2B",diffRemoveBackground:"#4A221D"},symbols:{prompt:">",success:"\u2713",error:"\u2717",warning:"!",spinner:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]}},s0={name:"minimal",colors:{primary:"#01A4FF",secondary:"#8B5CF6",accent:"#F59E0B",text:"#CCCCCC",dim:"#666666",thinking:"#A3ADC2",success:"#19C37D",warning:"#FF9F43",error:"#FF5F56",info:"#01A4FF",hint:"#8B5CF6",background:"#0D0D0D",inputBackground:"#1A1A1A",diffAddBackground:"#213A2B",diffRemoveBackground:"#4A221D"},symbols:{prompt:"$",success:"+",error:"-",warning:"?",spinner:["-","\\","|","/"]}};var a0={dark:RS,minimal:s0};function ye(e="dark"){return a0[e]??RS}o(ye,"getTheme");function l6(){return Object.keys(a0)}o(l6,"getThemeNames");import{jsx as Sr,jsxs as ii,Fragment as $H}from"react/jsx-runtime";import{useMemo as Lh}from"react";import{jsx as Uk}from"react/jsx-runtime";import{createContext as fH,useContext as Oa,useEffect as wl,useMemo as Wk,useState as pH,useCallback as Vk,useRef as kh}from"react";import{Stream as jB}from"node:stream";import{openSync as UB,writeSync as Mk}from"node:fs";import{performance as VB}from"node:perf_hooks";import{tmpdir as GB}from"node:os";import{join as KB}from"node:path";import kS,{forwardRef as R1,useContext as k1}from"react";import{createContext as v1}from"react";var ll=v1({isScreenReaderEnabled:!1});import{createContext as b1}from"react";var sh=b1(void 0);var c0=R1(({children:e,backgroundColor:t,"aria-label":n,"aria-hidden":r,"aria-role":i,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:l}=k1(ll),u=n?kS.createElement("ink-text",null,n):void 0;if(l&&r)return null;let d=kS.createElement("ink-box",{ref:c,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:0,flexShrink:1,...a,backgroundColor:t,overflowX:a.overflowX??a.overflow??"visible",overflowY:a.overflowY??a.overflow??"visible"},internal_accessibility:{role:i,state:s}},l&&u?u:e);return t?kS.createElement(sh.Provider,{value:t},d):d});c0.displayName="Box";var ri=c0;import _1,{useContext as l0}from"react";import ul from"chalk";import gs from"chalk";var E1=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,M1=/^ansi256\(\s?(\d+)\s?\)$/;function A1(e){return e in gs}o(A1,"isNamedColor");function xi(e,t,n){if(!t)return e;if(A1(t)){let r=gs;if(n==="foreground")return r[t]?.(e)??e;let i=`bg${t[0].toUpperCase()+t.slice(1)}`;return r[i]?.(e)??e}if(t.startsWith("#"))return n==="foreground"?gs.hex(t)(e):gs.bgHex(t)(e);if(t.startsWith("ansi256")){let r=M1.exec(t);if(!r)return e;let i=Number(r[1]);return n==="foreground"?gs.ansi256(i)(e):gs.bgAnsi256(i)(e)}if(t.startsWith("rgb")){let r=E1.exec(t);if(!r)return e;let i=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?gs.rgb(i,s,a)(e):gs.bgRgb(i,s,a)(e)}return e}o(xi,"colorize");function yr({color:e,backgroundColor:t,dimColor:n=!1,bold:r=!1,italic:i=!1,underline:s=!1,strikethrough:a=!1,inverse:c=!1,wrap:l="wrap",children:u,"aria-label":d,"aria-hidden":p=!1,internal_cursorAnchor:m=!1}){let{isScreenReaderEnabled:h}=l0(ll),g=l0(sh),S=h&&d?d:u;if(S==null)return null;let T=o(x=>{let I=x;n&&(I=ul.dim(I)),e&&(I=xi(I,e,"foreground"));let v=t??g;return v&&(I=xi(I,v,"background")),r&&(I=ul.bold(I)),i&&(I=ul.italic(I)),s&&(I=ul.underline(I)),a&&(I=ul.strikethrough(I)),c&&(I=ul.inverse(I)),I},"transform");return h&&p?null:_1.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:l},internal_transform:T,...m?{internal_cursorAnchor:!0}:{}},h&&d?d:u)}o(yr,"Text");import P1,{useLayoutEffect as L1,useMemo as u0,useState as O1}from"react";function ES({items:e,children:t,style:n}){let[r,i]=O1(0),s=u0(()=>e.slice(r),[e,r]);L1(()=>{i(e.length)},[e.length]);let a=s.map((l,u)=>t(l,r+u)),c=u0(()=>({position:"absolute",flexDirection:"column",...n}),[n]);return P1.createElement("ink-box",{internal_static:!0,style:c},a)}o(ES,"Static");import{writeSync as CB}from"node:fs";import Pa from"node:process";import Rk from"react";import TB from"es-toolkit/compat/throttle";import wr from"ansi-escapes";import Ao from"is-in-ci";import vB from"auto-bind";import{onExit as bB}from"signal-exit";import RB from"patch-console";import{LegacyRoot as kB,ConcurrentRoot as EB}from"react-reconciler/constants.js";import MB from"yoga-layout";import AB from"wrap-ansi";import _B from"terminal-size";import $1 from"node:process";var ah=o(()=>$1.env.DEV==="true","isDev");import cD from"react-reconciler";import{DefaultEventPriority as lD,NoEventPriority as R0}from"react-reconciler/constants.js";import*as ys from"scheduler";import C0 from"yoga-layout";import{createContext as uD}from"react";import Y1 from"yoga-layout";import N1 from"widest-line";var d0=new Map,D1=o(e=>{if(e.length===0)return{width:0,height:0};let t=d0.get(e);if(t)return t;let n=N1(e),r=e.split(`
|
|
5
|
-
`).length,i={width:n,height:r};return d0.set(e,i),i},"measureText"),MS=D1;import B1 from"wrap-ansi";import H1 from"cli-truncate";var f0={},F1=o((e,t,n)=>{let r=e+String(t)+String(n),i=f0[r];if(i)return i;let s=e;if(n==="wrap"&&(s=B1(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=H1(e,t,{position:a})}return f0[r]=s,s},"wrapText"),ch=F1;var W1=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),j1=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),U1=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),h0=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),V1=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),g0=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),p0=o((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!W1(c))break;n++}let r=e.slice(t,n),i=n;for(;n<e.length;){let c=e[n];if(!j1(c))break;n++}let s=e.slice(i,n),a=e[n];if(!(a===void 0||!U1(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),m0=o((e,t,n)=>{for(let r=t;r<e.length;r++){let i=e[r];if(n&&i==="\x07"||i==="\x9C")return r+1;if(i==="\x1B"){let s=e[r+1];if(s==="\x1B"){r++;continue}if(s==="\\")return r+2}}},"findControlStringTerminatorIndex"),G1=o((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!h0(s))break;n++}let r=e.slice(t,n),i=e[n];if(!(i===void 0||!V1(i)))return{endIndex:n+1,intermediateString:r,finalCharacter:i}},"readEscapeSequence"),K1=o(e=>{switch(e){case"]":return{type:"osc",allowBellTerminator:!0};case"P":return{type:"dcs",allowBellTerminator:!1};case"^":return{type:"pm",allowBellTerminator:!1};case"_":return{type:"apc",allowBellTerminator:!1};case"X":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromEscapeIntroducer"),z1=o(e=>{switch(e){case"\x9D":return{type:"osc",allowBellTerminator:!0};case"\x90":return{type:"dcs",allowBellTerminator:!1};case"\x9E":return{type:"pm",allowBellTerminator:!1};case"\x9F":return{type:"apc",allowBellTerminator:!1};case"\x98":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromC1Introducer"),AS=o(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(g0(t))return!0;return!1},"hasAnsiControlCharacters"),dl=o((e,t,n,r)=>(r>n&&e.push({type:"text",value:t.slice(n,r)}),e.push({type:"invalid",value:t.slice(r)}),e),"malformedFromIndex"),y0=o(e=>{if(!AS(e))return[{type:"text",value:e}];let t=[],n=0;for(let r=0;r<e.length;){let i=e[r];if(i===void 0)break;if(i==="\x1B"){let a=e[r+1];if(a===void 0)return dl(t,e,n,r);if(a==="["){let u=p0(e,r+2);if(u===void 0)return dl(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,u.endIndex),parameterString:u.parameterString,intermediateString:u.intermediateString,finalCharacter:u.finalCharacter}),r=u.endIndex,n=r;continue}let c=K1(a);if(c!==void 0){let u=m0(e,r+2,c.allowBellTerminator);if(u===void 0)return dl(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:c.type,value:e.slice(r,u)}),r=u,n=r;continue}let l=G1(e,r+1);if(l===void 0){if(h0(a))return dl(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),r++,n=r;continue}r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"esc",value:e.slice(r,l.endIndex),intermediateString:l.intermediateString,finalCharacter:l.finalCharacter}),r=l.endIndex,n=r;continue}if(i==="\x9B"){let a=p0(e,r+1);if(a===void 0)return dl(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,a.endIndex),parameterString:a.parameterString,intermediateString:a.intermediateString,finalCharacter:a.finalCharacter}),r=a.endIndex,n=r;continue}let s=z1(i);if(s!==void 0){let a=m0(e,r+1,s.allowBellTerminator);if(a===void 0)return dl(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:s.type,value:e.slice(r,a)}),r=a,n=r;continue}if(i==="\x9C"){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"st",value:i}),r++,n=r;continue}if(g0(i)){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"c1",value:i}),r++,n=r;continue}r++}return n<e.length&&t.push({type:"text",value:e.slice(n)}),t},"tokenizeAnsi");var q1=/^[\d:;]*$/,X1=o(e=>{if(!AS(e))return e;let t="";for(let n of y0(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&q1.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),w0=X1;var S0=o(e=>{let t="";for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r===void 0)continue;let i="";r.nodeName==="#text"?i=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(i=S0(r)),i.length>0&&typeof r.internal_transform=="function"&&(i=r.internal_transform(i,n))),t+=i}return w0(t)},"squashTextNodes"),Hd=S0;var lh=o(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:Y1.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(J1.bind(null,t)),t},"createNode"),uh=o((e,t)=>{t.parentNode&&Fd(t.parentNode,t),t.parentNode=e,e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount()),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&dh(e)},"appendChildNode"),_S=o((e,t,n)=>{t.parentNode&&Fd(t.parentNode,t),t.parentNode=e;let r=e.childNodes.indexOf(n);r>=0?(e.childNodes.splice(r,0,t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,r)):(e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&dh(e)},"insertBeforeNode"),Fd=o((e,t)=>{t.yogaNode&&t.parentNode?.yogaNode?.removeChild(t.yogaNode),t.parentNode=void 0;let n=e.childNodes.indexOf(t);n>=0&&e.childNodes.splice(n,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&dh(e)},"removeChildNode"),PS=o((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),LS=o((e,t)=>{e.style=t},"setStyle"),x0=o(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return Wd(t,e),t},"createTextNode"),J1=o(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:Hd(e),r=MS(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let i=e.style?.textWrap??"wrap",s=ch(n,t,i);return MS(s)},"measureTextNode"),I0=o(e=>{if(e?.parentNode)return e.yogaNode??I0(e.parentNode)},"findClosestYogaNode"),dh=o(e=>{I0(e)?.markDirty()},"markNodeAsDirty"),Wd=o((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,dh(e)},"setTextNodeValue");import He from"yoga-layout";var Z1=o((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?He.POSITION_TYPE_ABSOLUTE:He.POSITION_TYPE_RELATIVE),"top"in t&&e.setPosition(He.EDGE_TOP,t.top??0),"bottom"in t&&e.setPosition(He.EDGE_BOTTOM,t.bottom??0),"left"in t&&e.setPosition(He.EDGE_LEFT,t.left??0),"right"in t&&e.setPosition(He.EDGE_RIGHT,t.right??0)},"applyPositionStyles"),eD=o((e,t)=>{"margin"in t&&e.setMargin(He.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(He.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(He.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(He.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(He.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(He.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(He.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),tD=o((e,t)=>{"padding"in t&&e.setPadding(He.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(He.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(He.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(He.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(He.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(He.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(He.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),nD=o((e,t)=>{"flexGrow"in t&&e.setFlexGrow(t.flexGrow??0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexWrap"in t&&(t.flexWrap==="nowrap"&&e.setFlexWrap(He.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(He.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(He.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(He.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(He.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(He.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(He.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(Number.NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(He.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(He.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(He.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(He.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(He.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(He.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(He.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(He.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(He.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(He.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(He.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(He.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(He.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(He.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),rD=o((e,t)=>{"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth(t.minWidth??0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight(t.minHeight??0))},"applyDimensionStyles"),iD=o((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?He.DISPLAY_FLEX:He.DISPLAY_NONE)},"applyDisplayStyles"),oD=o((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(He.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(He.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(He.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(He.EDGE_RIGHT,n)}},"applyBorderStyles"),sD=o((e,t)=>{"gap"in t&&e.setGap(He.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(He.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(He.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),aD=o((e,t={})=>{Z1(e,t),eD(e,t),tD(e,t),nD(e,t),rD(e,t),iD(e,t),oD(e,t),sD(e,t)},"styles"),OS=aD;if(ah())try{await import("./devtools-TXYDDL2A.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
|
|
4
|
+
`);if(e.type==="tool_group"||t.type==="tool_group")return!1;let n=e.text.trim(),r=t.text.trim();return n===r||JR(n,r)||JR(r,n)}o(t1,"matchesTimestampSource");function JR(e,t){if(!e.endsWith(t))return!1;let n=e.slice(0,-t.length);return/^\[[^\]\r\n]+\]\s+$/.test(n)}o(JR,"hasDisplayPrefix");function n1(e,t){let n=new Map,r=e.length-1;for(let i=t.length-1;i>=0;i-=1){let s=t[i];if(s)for(let a=r;a>=0;a-=1){let c=e[a];if(!(!c||!(s.type==="tool_group"?c.type==="tool_group"&&s.tools.some(u=>c.tools.some(d=>ni(d)===ni(u))):c.type!=="tool_group"&&t1(c,s)))){n.set(i,a),r=a-1;break}}}return n}o(n1,"alignCanonicalItems");function r1(e,t){if(e.type==="tool_group"||t.type==="tool_group")return e;let n=t.timestamp??e.timestamp,r=n===void 0?{}:{timestamp:n};switch(e.type){case"assistant":case"thinking":return{...e,...r,...t.type===e.type&&t.compactText?{compactText:t.compactText}:{}};case"event":case"info":return{...e,...r,...t.type===e.type&&t.icon?{icon:t.icon}:{},...t.type===e.type&&t.compactText?{compactText:t.compactText}:{}};case"sidecar":return t.type==="sidecar"?{...e,...r,verdict:t.verdict,delivery:t.delivery}:e;default:return{...e,...r}}}o(r1,"overlayCanonicalTextItem");function i1(e,t,n,r){if(e.type!=="event"||e.icon!=="tool")return!1;let i=e.text.trimStart();if(!i.startsWith("\u2699")||n===void 0&&r===void 0)return!1;let s=i.slice(1).trimStart(),a=n===void 0?0:n+1,c=r??t.length;return t.slice(a,c).some(l=>l.type==="tool_group"&&l.tools.some(u=>s===u.name||s.startsWith(`${u.name}(`)||s.startsWith(`${u.name} `)))}o(i1,"isLegacyToolSummary");function ni(e){return JSON.stringify([e.assistantOutputId??null,e.id])}o(ni,"toolIdentity");function o1(e){let t=new Map;for(let n of e)if(n.type==="tool_group")for(let r of n.tools){let i=ni(r);t.has(i)||t.set(i,{tool:r,timestamp:n.timestamp})}return t}o(o1,"collectPersistedTools");function ZR(e){let t=new Set;for(let n of e)if(n.type==="tool_group")for(let r of n.tools)t.add(ni(r));return t}o(ZR,"collectCanonicalToolIds");function s1(e,t,n){let r=new Map,i=new Set,s=n1(e,t);for(let[a,c]of s)a<n?i.add(c):r.set(a-n,c);return{anchors:r,outOfWindowPersistedIndices:i}}o(s1,"alignCanonicalWindow");function a1(e,t,n,r){return t.map((i,s)=>{if(i.type!=="tool_group"){let l=n.get(s),u=l===void 0?void 0:e[l];return u?r1(i,u):i}let a=i.tools.map(l=>r.get(ni(l))?.tool??l),c=a.map(l=>r.get(ni(l))?.timestamp).find(l=>l!==void 0)??i.timestamp;return{...i,tools:a,...c===void 0?{}:{timestamp:c}}})}o(a1,"buildCanonicalItems");function c1(e){let t=new Map;for(let[n,r]of e)t.set(r,n);return t}o(c1,"invertAnchors");function l1(e,t){let n=new Array(e),r;for(let i=e-1;i>=0;i-=1){let s=t.get(i);s===void 0?n[i]=r:r=s}return n}o(l1,"nextDerivedAnchors");function u1(e,t,n){if(e.type==="tool_group"){let i=e.tools.filter(s=>!t.has(ni(s)));return i.length>0?{...e,tools:i,isSessionUiOnly:!0}:void 0}return(e.type==="assistant"||e.type==="thinking"||e.type==="user"&&!e.text.trimStart().startsWith("/"))&&!n&&e.isSessionUiOnly!==!0&&e.outputId===void 0?void 0:{...e,isSessionUiOnly:!0}}o(u1,"markUiOnlyItem");function d1(e,t,n,r,i,s){let a=c1(t),c=l1(e.length,a),l=Math.max(-1,...a.keys()),u=new Map,d;for(let p=0;p<e.length;p+=1){let m=a.get(p);if(m!==void 0){d=m;continue}let h=e[p];if(!h||n.has(p))continue;let g=c[p];if(i1(h,r,d,g))continue;let S=u1(h,i,s);if(!S)continue;let T=t.size===0||p>l?r.length:d===void 0?g??0:d+1,x=h.afterInputId===void 0?-1:r.findIndex(v=>v.type==="user"&&v.inputId===h.afterInputId);if(x>=0){let v=r.findIndex((k,_)=>_>x&&k.type==="user");T=Math.min(Math.max(T,x+1),v<0?r.length:v)}let I=u.get(T)??[];I.push(S),u.set(T,I)}return u}o(d1,"collectUiOnlyInsertions");function f1(e,t){let n=[];for(let r=0;r<=e.length;r+=1){n.push(...t.get(r)??[]);let i=e[r];i&&n.push(i)}return n}o(f1,"mergeAtCanonicalBoundaries");function p1(e,t,n,r,i){let s=s1(e,n,r),a=a1(e,t,s.anchors,o1(e)),c=d1(e,s.anchors,s.outOfWindowPersistedIndices,a,ZR(n),i);return f1(a,c)}o(p1,"enrichCanonicalUiHistory");function Nd(e){let t=new Set(e.messages.flatMap(m=>m.outputId?[m.outputId]:[])),n=e.structuredTaskResults?e.messages.filter(m=>m.inputId!==void 0).map(m=>({message:m,reports:ym(m)})).filter(({reports:m})=>m.length>0):[],r=Co(e.uiHistory?.filter(m=>(m.type==="tool_group"||!m.outputId||!t.has(m.outputId))&&(m.type!=="event"&&m.type!=="info"||!n.some(({message:h,reports:g})=>m.inputId!==void 0&&(h.inputId===m.inputId||h.inputIds?.includes(m.inputId))&&(m.sourceTurnId===void 0||h.turnId===m.sourceTurnId)&&(m.text===dd(h.content)||g.some(S=>m.text===S.summary)))))),i=!!r?.length,s=Qw(e.messages,e.structuredTaskResults).filter(m=>!i||m.type!=="task_completed").map(wa),a=e.historyScope==="all"?s:QR(s);if(!r||r.length===0)return CS(a);let c=new Map(e.messages.flatMap(m=>m.inputId?(m.inputIds??[]).map(h=>[h,m.inputId]):[])),l=ZR(s),u=CS(r.map(e1).filter(m=>!!m).flatMap(m=>m.type==="tool_group"&&m.tools.some(h=>l.has(ni(h)))&&m.tools.some(h=>!l.has(ni(h)))?m.tools.map(h=>({...m,tools:[h]})):[m]).map(m=>m.afterInputId&&c.has(m.afterInputId)?{...m,afterInputId:c.get(m.afterInputId)}:m)),d=a[0],p=d===void 0?s.length:s.indexOf(d);return CS(p1(u,a,s,p,e.messages.length===0))}o(Nd,"restoreHistoryItemsFromSession");import{spawnSync as m1}from"node:child_process";function th(e){return e==="1"||e?.toLowerCase()==="true"}o(th,"isTruthyEnv");function e0(e){return e==="0"||e?.toLowerCase()==="false"}o(e0,"isFalseyEnv");function il(e=process.env){return e.TERM_PROGRAM?.toLowerCase()==="vscode"||!!e.VSCODE_GIT_IPC_HANDLE||!!e.VSCODE_INJECTION}o(il,"isVsCodeTerminalHostEnv");function ol(e={}){let t=e.env??process.env;return(e.platform??process.platform)==="win32"||!!t.WT_SESSION}o(ol,"hasCursorUpViewportYankRisk");function h1(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}o(h1,"isSshSession");function Dd(e={}){let t=e.env??process.env;return th(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&h1(t)}o(Dd,"isRemoteConptyHost");function nh(e={}){let t=e.env??process.env;return ol(e)||il(t)}o(nh,"hasMainScreenRenderScrollRisk");function g1(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}o(g1,"isTmuxControlModeEnvHeuristic");var To;function Bd(e={}){if(typeof e.tmuxControlMode=="boolean")return e.tmuxControlMode;let t=e.env??process.env,n=e.platform??process.platform;if(n==="win32")return!1;if(g1(t))return!0;if(!(t===process.env&&n===process.platform))return!1;if(To!==void 0||(To=!1,!t.TMUX)||t.TERM_PROGRAM&&t.TERM_PROGRAM!=="iTerm.app")return To;try{let i=m1("tmux",["display-message","-p","#{client_control_mode}"],{encoding:"utf8",timeout:2e3});i.status===0&&(To=i.stdout.trim()==="1")}catch{To=!1}return To}o(Bd,"isTmuxControlMode");function TS(){To=void 0}o(TS,"resetTmuxControlModeProbeForTesting");function va(e={}){let t=e.env??process.env,n=e.isTTY??process.stdout.isTTY===!0,r=e.rawModeSupported??(process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function");return!n||!r||t.TERM==="dumb"||t.CI==="true"?"unsupported_control_host":Bd(e)?"tmux_control_mode":il(t)?"xtermjs_host":Dd(e)?"remote_conpty_host":ol(e)?"degraded_vt":"native_vt"}o(va,"detectTerminalRenderHost");var ba=va;function sl(e={}){let t=e.env??process.env;if(th(t.KODAX_FORCE_INK))return"legacy";let n=t.KODAX_TUI_RENDERER?.trim().toLowerCase();return n==="legacy"||n==="owned"||n==="auto"?n:"auto"}o(sl,"resolveConfiguredTuiRendererMode");function Ra(e={}){let t=sl(e);if(t==="legacy"||t==="owned")return t;let n=va(e);return n==="unsupported_control_host"||n==="tmux_control_mode"?"legacy":"owned"}o(Ra,"resolveEffectiveTuiRendererMode");function al(e={}){let t=e.env??process.env;if(th(t.KODAX_FORCE_CLASSIC_REPL))return"classic";let n=sl({env:t});if(n==="legacy"||n==="owned")return"ink";let r=va(e);return r==="unsupported_control_host"||r==="tmux_control_mode"?"classic":"ink"}o(al,"resolveInteractiveSurfacePreference");var y1={enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!0},t0={enabled:!0,promptShell:"main-screen",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!1,transcriptSpinnerAnimation:!0};function ka(e,t="owned",n={}){let r=n.env??process.env;return e0(r.KODAX_FULLSCREEN)?t==="owned"&&e!=="tmux_control_mode"&&e!=="unsupported_control_host"?t0:y1:w1(e,t)}o(ka,"resolveFullscreenPolicy");function w1(e,t){if(t==="legacy")switch(e){case"native_vt":return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!0,transcriptSpinnerAnimation:!0};case"xtermjs_host":case"degraded_vt":case"remote_conpty_host":return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1};default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}switch(e){case"native_vt":return{enabled:!0,promptShell:"virtual",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!0,transcriptSpinnerAnimation:!0};case"xtermjs_host":return{enabled:!0,promptShell:"virtual",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!0,transcriptSpinnerAnimation:!0};case"degraded_vt":return{enabled:!0,promptShell:"virtual",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!0,transcriptSpinnerAnimation:!0};case"remote_conpty_host":return t0;default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}}o(w1,"buildFullscreenPolicy");function cl(e,t={}){let n=t.rendererMode??"owned",r=ka(e,n,{env:t.env}),i=e!=="unsupported_control_host"&&e!=="tmux_control_mode";return{profile:e,ownsViewportByDefault:r.enabled&&r.promptShell==="virtual",supportsMouseTracking:r.mouseWheel||r.mouseClicks,bufferingMode:r.streamingPreview?"live":"buffered-fallback",supportsFullscreenLayout:r.enabled,supportsOverlaySurface:r.enabled,supportsSelection:i,supportsCopyOnSelect:!1,supportsWheelHistory:r.mouseWheel,supportsViewportChrome:r.enabled,supportsSearchViewport:r.enabled,supportsStickyPrompt:r.enabled}}o(cl,"getTerminalHostCapabilities");function rh(e={}){return Ra(e)==="owned"}o(rh,"isOwnedRendererPreferred");function ih(e={}){let t=e.env??process.env;return th(t.KODAX_FORCE_CLASSIC_REPL)&&!e0(t.KODAX_FORCE_CLASSIC_REPL)}o(ih,"isClassicReplForced");var ll=class{static{o(this,"LRUCache")}capacity;cache;constructor(t){this.capacity=t,this.cache=new Map}get(t){if(!this.cache.has(t))return;let n=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,n),n}set(t,n){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.capacity){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(t,n)}has(t){return this.cache.has(t)}delete(t){return this.cache.delete(t)}clear(){this.cache.clear()}get size(){return this.cache.size}},r0=1,i0=2,S1=1e3,x1=2048,n0;function I1(){if(!(typeof Intl>"u"||typeof Intl.Segmenter!="function"))return n0??=new Intl.Segmenter("en",{granularity:"grapheme"}),n0}o(I1,"getGraphemeSegmenter");function*oh(e){let t=I1();if(!t){yield*e;return}let n="";for(let r=0;r<e.length;){let i=Math.min(r+x1,e.length);i<e.length&&e.codePointAt(i-1)>65535&&i--;let s=n+e.slice(r,i);n="";for(let{segment:a}of t.segment(s))n&&(yield n),n=a;r=i}n&&(yield n)}o(oh,"graphemes");function Hr(e){let t=0;for(let n of oh(e))t++;return t}o(Hr,"getCodePointLength");function vo(e){if(!e)return!1;let t=e.codePointAt(0);return t===void 0?!1:t>=19968&&t<=40959||t>=13312&&t<=19903||t>=63744&&t<=64255||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=44032&&t<=55215||t>=12288&&t<=12351||t>=65280&&t<=65519||t>=128512&&t<=128591||t>=127744&&t<=128511||t>=128640&&t<=128767||t>=127456&&t<=127487||t>=9728&&t<=9983||t>=9984&&t<=10175||t>=129280&&t<=129535||t>=129536&&t<=129647||t>=129648&&t<=129791}o(vo,"isWideChar");function Ui(e){let t=0;for(let n of oh(e))t+=vo(n)?i0:r0;return t}o(Ui,"getVisualWidth");function C1(e,t){if(!e||t<0)return"";let n=0;for(let r of oh(e))if(n++===t)return r;return""}o(C1,"getCharAtCodePoint");function gr(e){return[...oh(e)]}o(gr,"splitByCodePoints");function T1(e,t,n){return gr(e).slice(t,n).join("")}o(T1,"sliceByCodePoints");function o0(e,t){let n=Math.max(0,t),r=gr(e),i=0,s=0;for(;i<r.length;){let a=vo(r[i])?i0:r0;if(s+a>n)break;s+=a,i++}return{before:r.slice(0,i).join(""),current:r[i]??"",after:r.slice(i+1).join("")}}o(o0,"splitAtVisualColumn");function Hd(e,t,n=!1){if(!e||t<=0)return"";let r="\u2026",s=n?t-1:t,a="",c=0,l=gr(e);for(let u of l){let d=vo(u)?2:1;if(c+d>s)break;a+=u,c+=d}return n&&a.length<e.length&&(a+=r),a}o(Hd,"truncateByVisualWidth");var vS=new ll(S1);function bS(e){let t=vS.get(e);if(t!==void 0)return t;let n=Ui(e);return vS.set(e,n),n}o(bS,"getVisualWidthCached");function sr(e,t,n,r){let i=[],s=[],a=[];for(let c=0;c<e.length;c++){let l=e[c]||"";if(s[c]=[],l.length===0){i.push("");let p=i.length-1;s[c].push([p,0]),a.push([c,0]);continue}let u=0,d=gr(l);for(;u<d.length;){let p="",m=0,h=u,g=-1;for(let S=u;S<d.length;S++){let T=d[S],x=vo(T)?2:1;if(m+x>t){g>=0&&S-u>0?(p=d.slice(u,g).join(""),m=d.slice(u,g).reduce((I,v)=>I+(vo(v)?2:1),0),h=g):p.length===0&&x>t&&(p=T,m=x,h=S+1);break}p+=T,m+=x,h=S+1,T===" "&&(g=S+1)}if(p.length>0||i.length===0){let S=u,T=i.length;i.push(p),s[c].push([T,S]),a.push([c,S])}u=h}}return{visualLines:i,logicalToVisualMap:s,visualToLogicalMap:a}}o(sr,"calculateVisualLayout");function RS(e,t){let{logicalToVisualMap:n,visualLines:r}=e;if(r.length===0)return[0,0];let[i,s]=t,a=n[i];if(!a||a.length===0)return[0,0];let c;for(let[h,g]of a)if(g<=s)c=[h,g];else break;let[l,u]=c??a[0],d=r[l]??"",p=Math.max(0,s-u),m=Ui(T1(d,0,p));return[l,m]}o(RS,"calculateVisualCursorFromLayout");var kS={name:"dark",colors:{primary:"#01A4FF",secondary:"#8B5CF6",accent:"#F59E0B",text:"#CCCCCC",dim:"#666666",thinking:"#A3ADC2",success:"#19C37D",warning:"#FF9F43",error:"#FF5F56",info:"#01A4FF",hint:"#8B5CF6",background:"#0D0D0D",inputBackground:"#1A1A1A",diffAddBackground:"#213A2B",diffRemoveBackground:"#4A221D"},symbols:{prompt:">",success:"\u2713",error:"\u2717",warning:"!",spinner:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]}},s0={name:"minimal",colors:{primary:"#01A4FF",secondary:"#8B5CF6",accent:"#F59E0B",text:"#CCCCCC",dim:"#666666",thinking:"#A3ADC2",success:"#19C37D",warning:"#FF9F43",error:"#FF5F56",info:"#01A4FF",hint:"#8B5CF6",background:"#0D0D0D",inputBackground:"#1A1A1A",diffAddBackground:"#213A2B",diffRemoveBackground:"#4A221D"},symbols:{prompt:"$",success:"+",error:"-",warning:"?",spinner:["-","\\","|","/"]}};var a0={dark:kS,minimal:s0};function ye(e="dark"){return a0[e]??kS}o(ye,"getTheme");function l6(){return Object.keys(a0)}o(l6,"getThemeNames");import{jsx as Sr,jsxs as ii,Fragment as $H}from"react/jsx-runtime";import{useMemo as Lh}from"react";import{jsx as Uk}from"react/jsx-runtime";import{createContext as fH,useContext as $a,useEffect as Sl,useMemo as Wk,useState as pH,useCallback as Vk,useRef as kh}from"react";import{Stream as jB}from"node:stream";import{openSync as UB,writeSync as Mk}from"node:fs";import{performance as VB}from"node:perf_hooks";import{tmpdir as GB}from"node:os";import{join as KB}from"node:path";import ES,{forwardRef as R1,useContext as k1}from"react";import{createContext as v1}from"react";var ul=v1({isScreenReaderEnabled:!1});import{createContext as b1}from"react";var sh=b1(void 0);var c0=R1(({children:e,backgroundColor:t,"aria-label":n,"aria-hidden":r,"aria-role":i,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:l}=k1(ul),u=n?ES.createElement("ink-text",null,n):void 0;if(l&&r)return null;let d=ES.createElement("ink-box",{ref:c,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:0,flexShrink:1,...a,backgroundColor:t,overflowX:a.overflowX??a.overflow??"visible",overflowY:a.overflowY??a.overflow??"visible"},internal_accessibility:{role:i,state:s}},l&&u?u:e);return t?ES.createElement(sh.Provider,{value:t},d):d});c0.displayName="Box";var ri=c0;import _1,{useContext as l0}from"react";import dl from"chalk";import gs from"chalk";var E1=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,M1=/^ansi256\(\s?(\d+)\s?\)$/;function A1(e){return e in gs}o(A1,"isNamedColor");function xi(e,t,n){if(!t)return e;if(A1(t)){let r=gs;if(n==="foreground")return r[t]?.(e)??e;let i=`bg${t[0].toUpperCase()+t.slice(1)}`;return r[i]?.(e)??e}if(t.startsWith("#"))return n==="foreground"?gs.hex(t)(e):gs.bgHex(t)(e);if(t.startsWith("ansi256")){let r=M1.exec(t);if(!r)return e;let i=Number(r[1]);return n==="foreground"?gs.ansi256(i)(e):gs.bgAnsi256(i)(e)}if(t.startsWith("rgb")){let r=E1.exec(t);if(!r)return e;let i=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?gs.rgb(i,s,a)(e):gs.bgRgb(i,s,a)(e)}return e}o(xi,"colorize");function yr({color:e,backgroundColor:t,dimColor:n=!1,bold:r=!1,italic:i=!1,underline:s=!1,strikethrough:a=!1,inverse:c=!1,wrap:l="wrap",children:u,"aria-label":d,"aria-hidden":p=!1,internal_cursorAnchor:m=!1}){let{isScreenReaderEnabled:h}=l0(ul),g=l0(sh),S=h&&d?d:u;if(S==null)return null;let T=o(x=>{let I=x;n&&(I=dl.dim(I)),e&&(I=xi(I,e,"foreground"));let v=t??g;return v&&(I=xi(I,v,"background")),r&&(I=dl.bold(I)),i&&(I=dl.italic(I)),s&&(I=dl.underline(I)),a&&(I=dl.strikethrough(I)),c&&(I=dl.inverse(I)),I},"transform");return h&&p?null:_1.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:l},internal_transform:T,...m?{internal_cursorAnchor:!0}:{}},h&&d?d:u)}o(yr,"Text");import P1,{useLayoutEffect as L1,useMemo as u0,useState as O1}from"react";function MS({items:e,children:t,style:n}){let[r,i]=O1(0),s=u0(()=>e.slice(r),[e,r]);L1(()=>{i(e.length)},[e.length]);let a=s.map((l,u)=>t(l,r+u)),c=u0(()=>({position:"absolute",flexDirection:"column",...n}),[n]);return P1.createElement("ink-box",{internal_static:!0,style:c},a)}o(MS,"Static");import{writeSync as CB}from"node:fs";import La from"node:process";import Rk from"react";import TB from"es-toolkit/compat/throttle";import wr from"ansi-escapes";import _o from"is-in-ci";import vB from"auto-bind";import{onExit as bB}from"signal-exit";import RB from"patch-console";import{LegacyRoot as kB,ConcurrentRoot as EB}from"react-reconciler/constants.js";import MB from"yoga-layout";import AB from"wrap-ansi";import _B from"terminal-size";import $1 from"node:process";var ah=o(()=>$1.env.DEV==="true","isDev");import cD from"react-reconciler";import{DefaultEventPriority as lD,NoEventPriority as R0}from"react-reconciler/constants.js";import*as ys from"scheduler";import C0 from"yoga-layout";import{createContext as uD}from"react";import Y1 from"yoga-layout";import N1 from"widest-line";var d0=new Map,D1=o(e=>{if(e.length===0)return{width:0,height:0};let t=d0.get(e);if(t)return t;let n=N1(e),r=e.split(`
|
|
5
|
+
`).length,i={width:n,height:r};return d0.set(e,i),i},"measureText"),AS=D1;import B1 from"wrap-ansi";import H1 from"cli-truncate";var f0={},F1=o((e,t,n)=>{let r=e+String(t)+String(n),i=f0[r];if(i)return i;let s=e;if(n==="wrap"&&(s=B1(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=H1(e,t,{position:a})}return f0[r]=s,s},"wrapText"),ch=F1;var W1=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),j1=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),U1=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),h0=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),V1=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),g0=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),p0=o((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!W1(c))break;n++}let r=e.slice(t,n),i=n;for(;n<e.length;){let c=e[n];if(!j1(c))break;n++}let s=e.slice(i,n),a=e[n];if(!(a===void 0||!U1(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),m0=o((e,t,n)=>{for(let r=t;r<e.length;r++){let i=e[r];if(n&&i==="\x07"||i==="\x9C")return r+1;if(i==="\x1B"){let s=e[r+1];if(s==="\x1B"){r++;continue}if(s==="\\")return r+2}}},"findControlStringTerminatorIndex"),G1=o((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!h0(s))break;n++}let r=e.slice(t,n),i=e[n];if(!(i===void 0||!V1(i)))return{endIndex:n+1,intermediateString:r,finalCharacter:i}},"readEscapeSequence"),K1=o(e=>{switch(e){case"]":return{type:"osc",allowBellTerminator:!0};case"P":return{type:"dcs",allowBellTerminator:!1};case"^":return{type:"pm",allowBellTerminator:!1};case"_":return{type:"apc",allowBellTerminator:!1};case"X":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromEscapeIntroducer"),z1=o(e=>{switch(e){case"\x9D":return{type:"osc",allowBellTerminator:!0};case"\x90":return{type:"dcs",allowBellTerminator:!1};case"\x9E":return{type:"pm",allowBellTerminator:!1};case"\x9F":return{type:"apc",allowBellTerminator:!1};case"\x98":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromC1Introducer"),_S=o(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(g0(t))return!0;return!1},"hasAnsiControlCharacters"),fl=o((e,t,n,r)=>(r>n&&e.push({type:"text",value:t.slice(n,r)}),e.push({type:"invalid",value:t.slice(r)}),e),"malformedFromIndex"),y0=o(e=>{if(!_S(e))return[{type:"text",value:e}];let t=[],n=0;for(let r=0;r<e.length;){let i=e[r];if(i===void 0)break;if(i==="\x1B"){let a=e[r+1];if(a===void 0)return fl(t,e,n,r);if(a==="["){let u=p0(e,r+2);if(u===void 0)return fl(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,u.endIndex),parameterString:u.parameterString,intermediateString:u.intermediateString,finalCharacter:u.finalCharacter}),r=u.endIndex,n=r;continue}let c=K1(a);if(c!==void 0){let u=m0(e,r+2,c.allowBellTerminator);if(u===void 0)return fl(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:c.type,value:e.slice(r,u)}),r=u,n=r;continue}let l=G1(e,r+1);if(l===void 0){if(h0(a))return fl(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),r++,n=r;continue}r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"esc",value:e.slice(r,l.endIndex),intermediateString:l.intermediateString,finalCharacter:l.finalCharacter}),r=l.endIndex,n=r;continue}if(i==="\x9B"){let a=p0(e,r+1);if(a===void 0)return fl(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,a.endIndex),parameterString:a.parameterString,intermediateString:a.intermediateString,finalCharacter:a.finalCharacter}),r=a.endIndex,n=r;continue}let s=z1(i);if(s!==void 0){let a=m0(e,r+1,s.allowBellTerminator);if(a===void 0)return fl(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:s.type,value:e.slice(r,a)}),r=a,n=r;continue}if(i==="\x9C"){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"st",value:i}),r++,n=r;continue}if(g0(i)){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"c1",value:i}),r++,n=r;continue}r++}return n<e.length&&t.push({type:"text",value:e.slice(n)}),t},"tokenizeAnsi");var q1=/^[\d:;]*$/,X1=o(e=>{if(!_S(e))return e;let t="";for(let n of y0(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&q1.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),w0=X1;var S0=o(e=>{let t="";for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r===void 0)continue;let i="";r.nodeName==="#text"?i=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(i=S0(r)),i.length>0&&typeof r.internal_transform=="function"&&(i=r.internal_transform(i,n))),t+=i}return w0(t)},"squashTextNodes"),Fd=S0;var lh=o(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:Y1.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(J1.bind(null,t)),t},"createNode"),uh=o((e,t)=>{t.parentNode&&Wd(t.parentNode,t),t.parentNode=e,e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount()),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&dh(e)},"appendChildNode"),PS=o((e,t,n)=>{t.parentNode&&Wd(t.parentNode,t),t.parentNode=e;let r=e.childNodes.indexOf(n);r>=0?(e.childNodes.splice(r,0,t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,r)):(e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&dh(e)},"insertBeforeNode"),Wd=o((e,t)=>{t.yogaNode&&t.parentNode?.yogaNode?.removeChild(t.yogaNode),t.parentNode=void 0;let n=e.childNodes.indexOf(t);n>=0&&e.childNodes.splice(n,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&dh(e)},"removeChildNode"),LS=o((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),OS=o((e,t)=>{e.style=t},"setStyle"),x0=o(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return jd(t,e),t},"createTextNode"),J1=o(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:Fd(e),r=AS(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let i=e.style?.textWrap??"wrap",s=ch(n,t,i);return AS(s)},"measureTextNode"),I0=o(e=>{if(e?.parentNode)return e.yogaNode??I0(e.parentNode)},"findClosestYogaNode"),dh=o(e=>{I0(e)?.markDirty()},"markNodeAsDirty"),jd=o((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,dh(e)},"setTextNodeValue");import He from"yoga-layout";var Z1=o((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?He.POSITION_TYPE_ABSOLUTE:He.POSITION_TYPE_RELATIVE),"top"in t&&e.setPosition(He.EDGE_TOP,t.top??0),"bottom"in t&&e.setPosition(He.EDGE_BOTTOM,t.bottom??0),"left"in t&&e.setPosition(He.EDGE_LEFT,t.left??0),"right"in t&&e.setPosition(He.EDGE_RIGHT,t.right??0)},"applyPositionStyles"),eD=o((e,t)=>{"margin"in t&&e.setMargin(He.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(He.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(He.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(He.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(He.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(He.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(He.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),tD=o((e,t)=>{"padding"in t&&e.setPadding(He.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(He.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(He.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(He.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(He.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(He.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(He.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),nD=o((e,t)=>{"flexGrow"in t&&e.setFlexGrow(t.flexGrow??0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexWrap"in t&&(t.flexWrap==="nowrap"&&e.setFlexWrap(He.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(He.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(He.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(He.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(He.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(He.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(He.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(Number.NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(He.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(He.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(He.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(He.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(He.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(He.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(He.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(He.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(He.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(He.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(He.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(He.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(He.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(He.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),rD=o((e,t)=>{"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth(t.minWidth??0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight(t.minHeight??0))},"applyDimensionStyles"),iD=o((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?He.DISPLAY_FLEX:He.DISPLAY_NONE)},"applyDisplayStyles"),oD=o((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(He.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(He.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(He.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(He.EDGE_RIGHT,n)}},"applyBorderStyles"),sD=o((e,t)=>{"gap"in t&&e.setGap(He.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(He.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(He.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),aD=o((e,t={})=>{Z1(e,t),eD(e,t),tD(e,t),nD(e,t),rD(e,t),iD(e,t),oD(e,t),sD(e,t)},"styles"),$S=aD;if(ah())try{await import("./devtools-TXYDDL2A.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
|
|
6
6
|
The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
|
|
7
7
|
but this failed as it was not installed. Debugging with React Devtools requires it.
|
|
8
8
|
|
|
@@ -10,133 +10,133 @@ To install use this command:
|
|
|
10
10
|
|
|
11
11
|
$ npm install --save-dev react-devtools-core
|
|
12
12
|
`.trim()+`
|
|
13
|
-
`);else throw e}var T0=o((e,t)=>{if(e===t)return;if(!e)return t;let n={},r=!1;for(let i of Object.keys(e))(!t||!Object.hasOwn(t,i))&&(n[i]=void 0,r=!0);if(t)for(let i of Object.keys(t))t[i]!==e[i]&&(n[i]=t[i],r=!0);return r?n:void 0},"diff"),v0=o(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),fh=R0
|
|
13
|
+
`);else throw e}var T0=o((e,t)=>{if(e===t)return;if(!e)return t;let n={},r=!1;for(let i of Object.keys(e))(!t||!Object.hasOwn(t,i))&&(n[i]=void 0,r=!0);if(t)for(let i of Object.keys(t))t[i]!==e[i]&&(n[i]=t[i],r=!0);return r?n:void 0},"diff"),v0=o(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),fh=R0,NS,b0={name:void 0,version:void 0},bo=cD({getRootHostContext:o(()=>({isInsideText:!1}),"getRootHostContext"),prepareForCommit:o(()=>null,"prepareForCommit"),preparePortalMount:o(()=>null,"preparePortalMount"),clearContainer:o(()=>!1,"clearContainer"),resetAfterCommit(e){if(typeof e.onComputeLayout=="function"&&e.onComputeLayout(),e.isStaticDirty){e.isStaticDirty=!1,typeof e.onImmediateRender=="function"&&e.onImmediateRender();return}typeof e.onRender=="function"&&e.onRender()},getChildHostContext(e,t){let n=e.isInsideText,r=t==="ink-text"||t==="ink-virtual-text";return n===r?e:{isInsideText:r}},shouldSetTextContent:o(()=>!1,"shouldSetTextContent"),createInstance(e,t,n,r){if(r.isInsideText&&e==="ink-box")throw new Error("<Box> can\u2019t be nested inside <Text> component");let i=e==="ink-text"&&r.isInsideText?"ink-virtual-text":e,s=lh(i);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){OS(s,c),s.yogaNode&&$S(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_cursorAnchor"){s.internal_cursorAnchor=c;continue}if(a==="internal_static"){NS=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}LS(s,a,c)}return s},createTextInstance(e,t,n){if(!n.isInsideText)throw new Error(`Text string "${e}" must be rendered inside <Text> component`);return x0(e)},resetTextContent(){},hideTextInstance(e){jd(e,"")},unhideTextInstance(e,t){jd(e,t)},getPublicInstance:o(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(C0.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(C0.DISPLAY_FLEX)},appendInitialChild:uh,appendChild:uh,insertBefore:PS,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:ys.unstable_scheduleCallback,cancelCallback:ys.unstable_cancelCallback,shouldYield:ys.unstable_shouldYield,now:ys.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:o(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:o(()=>null,"getInstanceFromScope"),appendChildToContainer:uh,insertInContainerBefore:PS,removeChildFromContainer(e,t){Wd(e,t),v0(t.yogaNode)},commitUpdate(e,t,n,r){NS&&e.internal_static&&(NS.isStaticDirty=!0);let i=T0(n,r),s=T0(n.style,r.style);if(!(!i&&!s)){if(i)for(let[a,c]of Object.entries(i)){if(a==="style"){OS(e,c);continue}if(a==="internal_transform"){e.internal_transform=c;continue}if(a==="internal_cursorAnchor"){e.internal_cursorAnchor=c;continue}if(a==="internal_static"){e.internal_static=!0;continue}LS(e,a,c)}s&&e.yogaNode&&$S(e.yogaNode,s)}},commitTextUpdate(e,t,n){jd(e,n)},removeChild(e,t){Wd(e,t),v0(t.yogaNode)},setCurrentUpdatePriority(e){fh=e},getCurrentUpdatePriority:o(()=>fh,"getCurrentUpdatePriority"),resolveUpdatePriority(){return fh!==R0?fh:lD},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:uD(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:b0.name,rendererVersion:b0.version});import hD from"widest-line";import gD from"indent-string";import ws from"yoga-layout";import ph from"yoga-layout";var dD=o(e=>e.getComputedWidth()-e.getComputedPadding(ph.EDGE_LEFT)-e.getComputedPadding(ph.EDGE_RIGHT)-e.getComputedBorder(ph.EDGE_LEFT)-e.getComputedBorder(ph.EDGE_RIGHT),"getMaxWidth"),k0=dD;import fD from"cli-boxes";import mh from"chalk";var pD=o((e,t,n,r)=>{if(n.style.borderStyle){let i=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?fD[n.style.borderStyle]:n.style.borderStyle,c=n.style.borderTopColor??n.style.borderColor,l=n.style.borderBottomColor??n.style.borderColor,u=n.style.borderLeftColor??n.style.borderColor,d=n.style.borderRightColor??n.style.borderColor,p=n.style.borderTopDimColor??n.style.borderDimColor,m=n.style.borderBottomDimColor??n.style.borderDimColor,h=n.style.borderLeftDimColor??n.style.borderDimColor,g=n.style.borderRightDimColor??n.style.borderDimColor,S=n.style.borderTop!==!1,T=n.style.borderBottom!==!1,x=n.style.borderLeft!==!1,I=n.style.borderRight!==!1,v=i-(x?1:0)-(I?1:0),k=S?xi((x?a.topLeft:"")+a.top.repeat(v)+(I?a.topRight:""),c,"foreground"):void 0;S&&p&&(k=mh.dim(k));let _=s;S&&(_-=1),T&&(_-=1);let H=(xi(a.left,u,"foreground")+`
|
|
14
14
|
`).repeat(_);h&&(H=mh.dim(H));let $=(xi(a.right,d,"foreground")+`
|
|
15
15
|
`).repeat(_);g&&($=mh.dim($));let P=T?xi((x?a.bottomLeft:"")+a.bottom.repeat(v)+(I?a.bottomRight:""),l,"foreground"):void 0;T&&m&&(P=mh.dim(P));let z=S?1:0;k&&r.write(e,t,k,{transformers:[]}),x&&r.write(e,t+z,H,{transformers:[]}),I&&r.write(e+i-1,t+z,$,{transformers:[]}),P&&r.write(e,t+s-1,P,{transformers:[]})}},"renderBorder"),E0=pD;var mD=o((e,t,n,r)=>{if(!n.style.backgroundColor)return;let i=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=n.style.borderStyle&&n.style.borderLeft!==!1?1:0,c=n.style.borderStyle&&n.style.borderRight!==!1?1:0,l=n.style.borderStyle&&n.style.borderTop!==!1?1:0,u=n.style.borderStyle&&n.style.borderBottom!==!1?1:0,d=i-a-c,p=s-l-u;if(!(d>0&&p>0))return;let m=xi(" ".repeat(d),n.style.backgroundColor,"background");for(let h=0;h<p;h++)r.write(e+a,t+l+h,m,{transformers:[]})},"renderBackground"),M0=mD;function hh(e){let{rawScrollTop:t,contentHeight:n,viewportHeight:r,previousScrollHeight:i,stickyScroll:s,clampMin:a,clampMax:c,virtualScrollWindowed:l,inWindowScrollTop:u,previousAppliedScrollTop:d,regionTop:p}=e,m=Math.max(0,n-r),h=Math.max(0,Math.min(Math.floor(t),m)),S=s&&n>=i?m:h,T=a!==void 0||c!==void 0?Math.max(a??0,Math.min(S,Math.min(m,c??m))):S,x=l&&u!==void 0,I=Math.max(0,Math.floor(u??0)),v=l?x?I:0:T,k=x?v:T,_=null;if(d!==void 0&&d!==k&&r>0){let H=p+r-1;H>=p&&(_={top:p,bottom:H,delta:k-d})}return{scrollHeight:n,viewportTop:T,appliedScrollTop:k,scrollTop:T,scrollOffsetY:v,scrollHint:_}}o(hh,"computeScrollState");var yD=o((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),i=n.getComputedTop();t=`
|
|
16
|
-
`.repeat(i)+gD(t,r)}return t},"applyPaddingToText"),gh=o((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===ws.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=
|
|
17
|
-
`;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>gh(s,{parentRole:e.internal_accessibility?.role,skipStaticElements:t.skipStaticElements})).filter(Boolean).join(r)}if(e.internal_accessibility){let{role:r,state:i}=e.internal_accessibility;if(i){let a=Object.keys(i).filter(c=>i[c]).join(", ");a&&(n=`(${a}) ${n}`)}r&&r!==t.parentRole&&(n=`${r}: ${n}`)}return n},"renderNodeToScreenReaderOutput"),
|
|
18
|
-
`))r=Math.max(r,this.getStringWidth(i));n=r,this.blockWidths.set(t,n)}return n}},
|
|
16
|
+
`.repeat(i)+gD(t,r)}return t},"applyPaddingToText"),gh=o((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===ws.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=Fd(e);else if(e.nodeName==="ink-box"||e.nodeName==="ink-root"){let r=e.style.flexDirection==="row"||e.style.flexDirection==="row-reverse"?" ":`
|
|
17
|
+
`;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>gh(s,{parentRole:e.internal_accessibility?.role,skipStaticElements:t.skipStaticElements})).filter(Boolean).join(r)}if(e.internal_accessibility){let{role:r,state:i}=e.internal_accessibility;if(i){let a=Object.keys(i).filter(c=>i[c]).join(", ");a&&(n=`(${a}) ${n}`)}r&&r!==t.parentRole&&(n=`${r}: ${n}`)}return n},"renderNodeToScreenReaderOutput"),DS=null,BS=null;function A0(){DS=null,BS=null}o(A0,"resetScrollHint");function _0(){return DS}o(_0,"getScrollHint");function P0(){return BS}o(P0,"getScrollRepaint");var L0=o((e,t,n)=>{let{offsetX:r=0,offsetY:i=0,transformers:s=[],skipStaticElements:a}=n;if(a&&e.internal_static)return;let{yogaNode:c}=e;if(c){if(c.getDisplay()===ws.DISPLAY_NONE)return;let l=r+c.getComputedLeft(),u=i+c.getComputedTop();e.internal_cursorAnchor&&(t.cursorPosition={x:l,y:u});let d=s;if(typeof e.internal_transform=="function"&&(d=[e.internal_transform,...s]),e.nodeName==="ink-text"){let h=Fd(e);if(h.length>0){let g=hD(h),S=k0(c);if(g>S){let T=e.style.textWrap??"wrap";h=ch(h,S,T)}h=yD(e,h),t.write(l,u,h,{transformers:d})}return}let p=!1,m=0;if(e.nodeName==="ink-box"){M0(l,u,e,t),E0(l,u,e,t);let h=e.style.overflowX??e.style.overflow,g=e.style.overflowY??e.style.overflow,S=h==="hidden"||h==="scroll",T=g==="hidden"||g==="scroll";if(g==="scroll"){let x=c.getComputedBorder(ws.EDGE_TOP),I=c.getComputedBorder(ws.EDGE_BOTTOM),v=Math.max(0,c.getComputedHeight()-x-I),k=e.attributes?.virtualScrollWindowed===!0,_=e.childNodes[0],H=Math.max(0,Math.floor(k?e.attributes?.scrollHeight??0:_?.yogaNode?.getComputedHeight()??e.attributes?.scrollHeight??0)),$=typeof e.scrollHeight=="number"?e.scrollHeight:H,P=hh({rawScrollTop:e.scrollTop??e.attributes?.scrollTop??0,contentHeight:H,viewportHeight:v,previousScrollHeight:$,stickyScroll:e.stickyScroll??!!e.attributes?.stickyScroll,clampMin:e.attributes?.scrollClampMin,clampMax:e.attributes?.scrollClampMax,virtualScrollWindowed:k,inWindowScrollTop:e.attributes?.inWindowScrollTop,previousAppliedScrollTop:e.appliedScrollTop,regionTop:u+x});e.scrollHeight=P.scrollHeight,e.scrollViewportHeight=v,e.scrollViewportTop=P.viewportTop,e.appliedScrollTop=P.appliedScrollTop,P.scrollHint&&(DS=P.scrollHint,Math.trunc(Number(e.attributes?.pendingScrollDelta??0))!==0&&(BS={top:P.scrollHint.top,bottom:P.scrollHint.bottom})),e.attributes&&e.attributes.pendingScrollDelta&&(e.attributes.pendingScrollDelta=0),e.scrollTop=P.scrollTop,m=P.scrollOffsetY}if(S||T){let x=S?l+c.getComputedBorder(ws.EDGE_LEFT):void 0,I=S?l+c.getComputedWidth()-c.getComputedBorder(ws.EDGE_RIGHT):void 0,v=T?u+c.getComputedBorder(ws.EDGE_TOP):void 0,k=T?u+c.getComputedHeight()-c.getComputedBorder(ws.EDGE_BOTTOM):void 0;t.clip({x1:x,x2:I,y1:v,y2:k}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let h of e.childNodes)L0(h,t,{offsetX:l,offsetY:u-m,transformers:d,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),HS=L0;import wD from"slice-ansi";import SD from"string-width";import{styledCharsFromTokens as xD,styledCharsToString as ID,tokenize as CD}from"@alcalzone/ansi-tokenize";var FS=class{static{o(this,"OutputCaches")}widths=new Map;blockWidths=new Map;styledChars=new Map;getStyledChars(t){let n=this.styledChars.get(t);return n===void 0&&(n=xD(CD(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=SD(t),this.widths.set(t,n)),n}getWidestLine(t){let n=this.blockWidths.get(t);if(n===void 0){let r=0;for(let i of t.split(`
|
|
18
|
+
`))r=Math.max(r,this.getStringWidth(i));n=r,this.blockWidths.set(t,n)}return n}},pl=class{static{o(this,"Output")}width;height;operations=[];caches=new FS;constructor(t){let{width:n,height:r}=t;this.width=n,this.height=r}write(t,n,r,i){let{transformers:s}=i;r&&this.operations.push({type:"write",x:t,y:n,text:r,transformers:s})}clip(t){this.operations.push({type:"clip",clip:t})}unclip(){this.operations.push({type:"unclip"})}getGrid(){let t=[];for(let r=0;r<this.height;r++){let i=[];for(let s=0;s<this.width;s++)i.push({type:"char",value:" ",fullWidth:!1,styles:[]});t.push(i)}let n=[];for(let r of this.operations)if(r.type==="clip"&&n.push(r.clip),r.type==="unclip"&&n.pop(),r.type==="write"){let{text:i,transformers:s}=r,{x:a,y:c}=r,l=i.split(`
|
|
19
19
|
`),u=n.at(-1);if(u){let p=typeof u?.x1=="number"&&typeof u?.x2=="number",m=typeof u?.y1=="number"&&typeof u?.y2=="number";if(p){let h=this.caches.getWidestLine(i);if(a+h<u.x1||a>u.x2)continue}if(m){let h=l.length;if(c+h<u.y1||c>u.y2)continue}if(p&&(l=l.map(h=>{let g=a<u.x1?u.x1-a:0,S=this.caches.getStringWidth(h),T=a+S>u.x2?u.x2-a:S;return wD(h,g,T)}),a<u.x1&&(a=u.x1)),m){let h=c<u.y1?u.y1-c:0,g=l.length,S=c+g>u.y2?u.y2-c:g;l=l.slice(h,S),c<u.y1&&(c=u.y1)}}let d=0;for(let[p,m]of l.entries()){let h=t[c+d];if(!h)continue;for(let T of s)m=T(m,p);let g=this.caches.getStyledChars(m),S=a;for(let T of g){h[S]=T;let x=Math.max(1,this.caches.getStringWidth(T.value));if(x>1)for(let I=1;I<x;I++)h[S+I]={type:"char",value:"",fullWidth:!1,styles:T.styles};S+=x}d++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let i=r.filter(s=>s!==void 0);return ID(i).trimEnd()}).join(`
|
|
20
|
-
`),height:t.length}}};var Gi={Single:0,Wide:1,SpacerTail:2},Vi={char:" ",width:Gi.Single,style:"",hyperlink:void 0};function O0(e,t){if(e<0||t<0)throw new RangeError(`Screen dimensions must be non-negative (got width=${e}, height=${t})`);let n=new Array(e*t).fill(Vi);return{width:e,height:t,cells:n}}o(O0,"createScreen");function
|
|
20
|
+
`),height:t.length}}};var Gi={Single:0,Wide:1,SpacerTail:2},Vi={char:" ",width:Gi.Single,style:"",hyperlink:void 0};function O0(e,t){if(e<0||t<0)throw new RangeError(`Screen dimensions must be non-negative (got width=${e}, height=${t})`);let n=new Array(e*t).fill(Vi);return{width:e,height:t,cells:n}}o(O0,"createScreen");function Ea(e,t,n){if(!(t<0||n<0||t>=e.width||n>=e.height))return e.cells[n*e.width+t]}o(Ea,"cellAt");function $0(e,t){if(e<0||t<0)throw new RangeError(`Screen dimensions must be non-negative (got width=${e}, height=${t})`);let n=new Array(e*t).fill(Vi),r=!1;return{width:e,height:t,setCellAt(i,s,a){if(r)throw new Error("ScreenBuilder.setCellAt called after build()");if(i<0||s<0||i>=e||s>=t)throw new RangeError(`ScreenBuilder.setCellAt out of bounds: (${i}, ${s}) on ${e}x${t}`);n[s*e+i]=a},build(){if(r)throw new Error("ScreenBuilder.build called twice");return r=!0,{width:e,height:t,cells:n}}}}o($0,"createScreenBuilder");function*yh(e,t){let n=Math.max(e.width,t.width),r=Math.max(e.height,t.height);for(let i=0;i<r;i++)for(let s=0;s<n;s++){let a=Ea(e,s,i),c=Ea(t,s,i);TD(a,c)||(yield{x:s,y:i,prev:a,next:c})}}o(yh,"diffEach");function N0(e,t,n,r){if(r===0||e.height===0)return e;let i=Math.max(0,t),s=Math.min(e.height-1,n);if(i>s)return e;let a=e.width,c=e.cells.slice(),l=s-i+1,u=o(d=>{for(let p=0;p<a;p++)c[d*a+p]=Vi},"blankRow");if(Math.abs(r)>=l){for(let d=i;d<=s;d++)u(d);return{...e,cells:c}}if(r>0){for(let d=i;d<=s-r;d++)for(let p=0;p<a;p++)c[d*a+p]=e.cells[(d+r)*a+p]??Vi;for(let d=s-r+1;d<=s;d++)u(d)}else{let d=-r;for(let p=s;p>=i+d;p--)for(let m=0;m<a;m++)c[p*a+m]=e.cells[(p-d)*a+m]??Vi;for(let p=i;p<=i+d-1;p++)u(p)}return{...e,cells:c}}o(N0,"shiftRowsRegion");function TD(e,t){return e===t?!0:e===void 0||t===void 0?!1:e.char===t.char&&e.width===t.width&&e.style===t.style&&e.hyperlink===t.hyperlink}o(TD,"cellsEqual");var WS="\x1B]8;";function vD(e){return e.endsWith("\x07")?e.slice(0,-1):e}o(vD,"stripOsc8Terminator");function bD(e){if(!e.startsWith(WS))return;let t=e.slice(WS.length),n=t.indexOf(";");if(n<0)return;let r=t.slice(n+1),i=vD(r);return i.length>0?i:void 0}o(bD,"parseOsc8Url");function RD(e){if(e.value==="")return{char:"",width:Gi.SpacerTail,style:"",hyperlink:void 0};let t="",n;for(let r of e.styles)if(r.code.startsWith(WS)){let i=bD(r.code);i!==void 0&&(n=i)}else t+=r.code;return{char:e.value.replace(/[\u0000-\u001f\u007f]/g," "),width:e.fullWidth?Gi.Wide:Gi.Single,style:t,hyperlink:n}}o(RD,"styledCharToCell");function wh(e){let t=e.getGrid(),n=e.width,r=e.height,i=$0(n,r),s=Math.min(t.length,r);for(let a=0;a<s;a++){let c=t[a];if(!c)continue;let l=Math.min(c.length,n);for(let u=0;u<l;u++){let d=c[u];if(!d)continue;let p=RD(d);p.char===Vi.char&&p.width===Vi.width&&p.style===Vi.style&&p.hyperlink===Vi.hyperlink||i.setCellAt(u,a,p)}}return i.build()}o(wh,"outputToScreen");var kD=o((e,t,n)=>{if(e.yogaNode){if(t){let m=gh(e,{skipStaticElements:!0}),h=m===""?0:m.split(`
|
|
21
21
|
`).length,g="";return e.staticNode&&(g=gh(e.staticNode,{skipStaticElements:!1})),{output:m,outputHeight:h,staticOutput:g?`${g}
|
|
22
|
-
`:"",frame:void 0}}let r=new
|
|
23
|
-
`:"",frame:p}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),
|
|
24
|
-
`)}]}o(
|
|
25
|
-
`};function Kd(e,t,n){let r=t.width===Gi.Wide?2:1,i=e.viewportWidth,s=!1;return e.txn(a=>{let c=a.x;if(r===2&&c<i){let d=t.char.length>2?i:i+1;if(c+2>=d)return[[],{dx:0,dy:0}]}let l=[];n.length>0&&l.push({type:"stdout",content:n});let u=r===2&&X0(t.char);return u&&c+1<i&&(l.push({type:"cursorTo",col:c+2}),l.push({type:"stdout",content:" "}),l.push({type:"cursorTo",col:c+1})),l.push({type:"stdout",content:t.char}),u&&l.push({type:"cursorTo",col:c+r+1}),s=!0,c>=i?[l,{dx:r-c,dy:1}]:[l,{dx:r,dy:0}]}),s}o(Kd,"writeCellWithStyleStr");function Aa(e,t,n){e.txn(r=>{let i=t-r.x,s=n-r.y;return r.x>=e.viewportWidth?[[Ro,{type:"cursorMove",x:t,y:s}],{dx:i,dy:s}]:s!==0?[[Ro,{type:"cursorMove",x:t,y:s}],{dx:i,dy:s}]:[[{type:"cursorMove",x:i,y:s}],{dx:i,dy:s}]})}o(Aa,"moveCursorTo");function zd(e,t,n,r,i=!1){let s="",a;for(let c=n;c<r;c++){if(e.cursor.y<c){let p=c-e.cursor.y;e.txn(m=>{let h=new Array(1+p);h[0]=Ro;for(let g=0;g<p;g++)h[1+g]=Vd;return[h,{dx:-m.x,dy:p}]})}for(let p=0;p<t.screen.width;p++){let m=ka(t.screen,p,c);if(!m||m.width===Gi.SpacerTail||m.char===" "&&m.style===""&&m.hyperlink===void 0)continue;Aa(e,p,c);let h=bo(a,m.hyperlink);for(let S of h.patches)e.txn(()=>[[S],{dx:0,dy:0}]);a=h.current;let g=Gd(s,m.style);Kd(e,m,g.str)&&(s=g.current)}let l=Ea(s,"");for(let p of l.patches)e.txn(()=>[[p],{dx:0,dy:0}]);s=l.current;let u=bo(a,void 0);for(let p of u.patches)e.txn(()=>[[p],{dx:0,dy:0}]);a=u.current;let d=c===r-1&&t.screen.height<=t.viewport.height&&(c+1>=t.viewport.height||i);e.txn(p=>d?[[Ro],{dx:-p.x,dy:0}]:[[Ro,Vd],{dx:-p.x,dy:1}])}if(s!==""||a!==void 0){let c=Ea(s,"");for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);let l=bo(a,void 0);for(let u of l.patches)e.txn(()=>[[u],{dx:0,dy:0}])}}o(zd,"renderFrameSlice");function VS(e,t,n,r){let i=Math.max(0,Math.floor(n)),s=Math.min(t.screen.height-1,t.viewport.height-1,Math.floor(r));for(let a=i;a<=s;a++)$D(e,t,a)}o(VS,"repaintFrameRows");function $D(e,t,n){let r="",i;Aa(e,0,n),e.txn(()=>[[{type:"stdout",content:pl+jd},{type:"eraseLine"}],{dx:0,dy:0}]);for(let s=0;s<t.screen.width;s++){let a=ka(t.screen,s,n);if(!a||a.width===Gi.SpacerTail||a.char===" "&&a.style===""&&a.hyperlink===void 0)continue;Aa(e,s,n);let c=bo(i,a.hyperlink);for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);i=c.current;let l=Gd(r,a.style);Kd(e,a,l.str)&&(r=l.current)}for(let s of Ea(r,"").patches)e.txn(()=>[[s],{dx:0,dy:0}]);for(let s of bo(i,void 0).patches)e.txn(()=>[[s],{dx:0,dy:0}])}o($D,"repaintFrameRow");function GS(e,t){let n="";for(let r=0;r<e.width;r++){let i=ka(e,r,t);n+=i?.char??" "}return n.trimEnd()}o(GS,"readLine");function ml(e,t,n=!1){let r=new Ma({x:0,y:0},e.viewport.width);zd(r,e,0,e.screen.height,n);let i=[{type:"clearTerminal",reason:t}];for(let s of r.diff)i.push(s);return i}o(ml,"fullResetSequence_CAUSES_FLICKER");function Sh(e,t){let n=e.cursor.y>=e.screen.height,r=t.screen.height>e.screen.height,i=t.screen.height<e.screen.height,s=n&&e.screen.height>=e.viewport.height,a=t.screen.height<=e.viewport.height,c=s?1:0;return{viewportY:r?Math.max(0,e.screen.height-e.viewport.height+c):Math.max(e.screen.height,t.screen.height)-t.viewport.height+c,cursorAtBottom:n,growing:r,shrinking:i,prevHadScrollback:s,nextFitsViewport:a}}o(Sh,"computeViewportState");function Y0(e,t,n){if(t.viewport.height<e.viewport.height||e.viewport.width!==0&&t.viewport.width!==e.viewport.width)return{reset:!0,reason:"resize"};let r=Sh(e,t);if(r.prevHadScrollback&&r.nextFitsViewport&&r.shrinking)return{reset:!0,reason:"offscreen"};if(e.screen.height>=e.viewport.height&&e.screen.height>0&&r.cursorAtBottom&&!r.growing){let s=e.screen.height-e.viewport.height+1;for(let a of yh(e.screen,t.screen))if(a.y<s)return{reset:!0,reason:"offscreen",trigger:{y:a.y,prevLine:n(e.screen,a.y),nextLine:n(t.screen,a.y)}}}return r.shrinking&&e.screen.height-t.screen.height>e.viewport.height?{reset:!0,reason:"offscreen"}:{reset:!1}}o(Y0,"shouldFullReset");function J0(e,t,n){return!!(t&&t.width===2||e&&e.width===2&&!t||t&&n&&!e)}o(J0,"shouldSkipDiff");var xh=class{static{o(this,"LogUpdate")}options;constructor(t){this.options=t}render(t,n,r={}){if(!this.options.isTTY)return US(n);let i=r.inlineBottomAnchored??!1,s=Q0(t,i),a=Q0(n,i);if(r.altScreen===!0&&t.screen.height===0&&a.screen.height>0)return ml(a,"clear",i);let c=Y0(s,a,GS);if(c.reset)return ml(a,c.reason,i);if(a.scrollRepaint&&r.altScreen===!0)return ND(s,a,a.scrollRepaint);let l=a.scrollHint;if(l&&r.altScreen&&r.decstbmSafe&&process.env.KODAX_SCROLL_DECSTBM==="1"&&l.delta!==0&&l.top>=0&&l.bottom<s.screen.height&&l.bottom<a.screen.height&&Math.abs(l.delta)<=l.bottom-l.top){let u={type:"scrollRegion",top:l.top,bottom:l.bottom,delta:l.delta},d={...s,screen:N0(s.screen,l.top,l.bottom,l.delta)};return[u,...Z0(d,a,i)]}return Z0(s,a,i)}reset(){}};function KS(e,t){for(let n of t)e.txn(()=>[[n],{dx:0,dy:0}])}o(KS,"emitPatches");function zS(e,t,n){if(t!==""){let r=Ea(t,"");KS(e,r.patches)}if(n!==void 0){let r=bo(n,void 0);KS(e,r.patches)}return{style:"",hyperlink:void 0}}o(zS,"resetStyleAndHyperlink");function ND(e,t,n){let r=Sh(e,t),i=new Ma(e.cursor,t.viewport.width);r.shrinking&&ek(i,e,t);let s=Math.max(0,Math.floor(n.top)),a=Math.min(t.screen.height-1,t.viewport.height-1,Math.floor(n.bottom)),c=a>=s?{top:s,bottom:a}:void 0;c&&VS(i,t,c.top,c.bottom);let l=tk(i,e,t,{...r,skipRows:c});return l.needsFullReset?ml(t,"offscreen"):(zS(i,l.currentStyle,l.currentHyperlink),r.growing&&zd(i,t,e.screen.height,t.screen.height),nk(i,t),i.diff)}o(ND,"renderScrollRepaint");function ek(e,t,n){let r=t.screen.height-n.screen.height;e.txn(i=>[[{type:"clear",count:r},{type:"cursorMove",x:0,y:-1}],{dx:-i.x,dy:-r}])}o(ek,"applyShrink");function tk(e,t,n,r){let i="",s,a=!1;for(let c of yh(t.screen,n.screen)){let{x:l,y:u,prev:d,next:p}=c;if(r.growing&&u>=t.screen.height||r.skipRows&&u>=r.skipRows.top&&u<=r.skipRows.bottom)continue;let m=!!(p&&p.char===" "&&p.style===""&&p.hyperlink===void 0);if(!J0(d,p,m)){if(u<r.viewportY){a=!0;break}if(Aa(e,l,u),p){let h=bo(s,p.hyperlink);KS(e,h.patches),s=h.current;let g=Gd(i,p.style);Kd(e,p,g.str)&&(i=g.current)}else if(d){let h=zS(e,i,s);i=h.style,s=h.hyperlink,e.txn(()=>[[{type:"stdout",content:" "}],{dx:1,dy:0}])}}}return{currentStyle:i,currentHyperlink:s,needsFullReset:a}}o(tk,"diffPass");function Q0(e,t){let n=t?Math.max(0,Math.min(e.viewport.height-1,e.screen.height-1)):Math.max(0,e.viewport.height-1);return e.cursor.y<=n?e:{...e,cursor:{...e.cursor,y:n}}}o(Q0,"clampRestingCursor");function nk(e,t){t.cursor.y>=t.screen.height?e.txn(n=>{let r=t.cursor.y-n.y;if(r>0){let s=new Array(1+r);s[0]=Ro;for(let a=0;a<r;a++)s[1+a]=Vd;return[s,{dx:-n.x,dy:r}]}let i=t.cursor.y-n.y;return i!==0||n.x!==t.cursor.x?[[Ro,{type:"cursorMove",x:t.cursor.x,y:i}],{dx:t.cursor.x-n.x,dy:i}]:[[],{dx:0,dy:0}]}):Aa(e,t.cursor.x,t.cursor.y)}o(nk,"restoreCursor");function Z0(e,t,n=!1){let r=Sh(e,t),i=new Ma(e.cursor,t.viewport.width);r.shrinking&&ek(i,e,t);let s=tk(i,e,t,r);return s.needsFullReset?ml(t,"offscreen",n):(zS(i,s.currentStyle,s.currentHyperlink),r.growing&&zd(i,t,e.screen.height,t.screen.height,n),nk(i,t),i.diff)}o(Z0,"renderIncremental");var DD="\x1B[?25l",BD="\x1B[?25h",HD=`\x1B[2J${H0}`,FD="\x1B[?2026h",WD="\x1B[?2026l";function jD(e){switch(e.type){case"stdout":return e.content;case"carriageReturn":return"\r";case"cursorHide":return DD;case"cursorShow":return BD;case"cursorMove":return F0(e.x,e.y);case"cursorTo":return B0(e.col);case"eraseLine":return jS;case"clear":return W0(e.count);case"clearTerminal":return HD;case"hyperlink":return Ud(e.uri);case"scrollRegion":{let t=e.top+1,n=e.bottom+1,r=Math.abs(e.delta),i=e.delta>0?K0(r):z0(r);return U0+G0(t,n)+i+j0+V0}}}o(jD,"patchToBytes");function Ih(e,t,n=!1){let r="",i=!1;for(let s of t)s.type==="clearTerminal"&&(i=!0),r+=jD(s);if(r.length!==0){if(n&&i){e.write(FD+r+WD);return}e.write(r)}}o(Ih,"applyDiff");function rk(e,t,n={}){if(t===void 0)return!1;let r=e.cellLogUpdate.render(e.prevFrame,t,n);return Ih(e.stdout,r,n.synchronized??!1),e.prevFrame=t,!0}o(rk,"applyCellFrame");function qd(e,t){return{screen:O0(0,0),viewport:{width:t,height:e},cursor:{x:0,y:0,visible:!0}}}o(qd,"emptyFrame");import UD from"is-in-ci";var ko="\x1B[?2026h",Ki="\x1B[?2026l";function Eo(e){return"isTTY"in e&&e.isTTY===!0&&!UD}o(Eo,"shouldSynchronize");var VD="\x1B[?1049h",GD="\x1B[?1049l";var KD="\x1B[2J",zD="\x1B[?1000h\x1B[?1002h\x1B[?1006h",qD="\x1B[?1006l\x1B[?1002l\x1B[?1000l";function Ch(e={}){let t=e.mouseTracking!==!1,n=e.clearOnEnter===!0;return VD+(n?KD:"")+"\x1B[H"+(t?zD:"")}o(Ch,"buildAlternateScreenEnterSequence");function hl(e={}){return(e.mouseTracking!==!1?qD:"")+GD}o(hl,"buildAlternateScreenExitSequence");var XD=new WeakMap,ik=XD;import{EventEmitter as hB}from"node:events";import gB from"node:process";import _a,{useState as YS,useRef as gl,useCallback as dn,useMemo as yl,useEffect as Ck}from"react";import yB from"cli-cursor";var YD=o(e=>e>=48&&e<=63,"isCsiParameterByte"),JD=o(e=>e>=32&&e<=47,"isCsiIntermediateByte"),sk=o(e=>e>=64&&e<=126,"isCsiFinalByte");function QD(e,t,n){let r=t+n+1,i=r;for(;i<e.length;i+=1){let s=e.codePointAt(i);if(s===void 0)return"pending";if(!(YD(s)||JD(s))&&!(s===91&&i===r))return sk(s)?{sequence:e.slice(t,i+1),nextIndex:i+1}:void 0}return"pending"}o(QD,"parseCsiSequence");function ZD(e,t,n){let r=t+n+2;if(r>e.length)return"pending";let i=e.codePointAt(r-1);if(!(i===void 0||!sk(i)))return{sequence:e.slice(t,r),nextIndex:r}}o(ZD,"parseSs3Sequence");function ok(e,t,n){let r=e[t+n];if(r===void 0)return"pending";if(r==="[")return QD(e,t,n);if(r==="O")return ZD(e,t,n)}o(ok,"parseControlSequence");function eB(e,t){let n=e.codePointAt(t+1),r=n!==void 0&&n>65535?2:1,i=t+1+r;return{sequence:e.slice(t,i),nextIndex:i}}o(eB,"parseEscapedCodePoint");function tB(e){let t=[],n=0,r=o(i=>({events:t,pending:e.slice(i)}),"pendingFrom");for(;n<e.length;){let i=e.indexOf("\x1B",n);if(i===-1)return t.push(e.slice(n)),{events:t,pending:""};if(i>n&&t.push(e.slice(n,i)),i===e.length-1)return r(i);let s=ok(e,i,1);if(s==="pending")return r(i);if(s){t.push(s.sequence),n=s.nextIndex;continue}if(e[i+1]==="\x1B"){if(i+2>=e.length)return r(i);let l=ok(e,i,2);if(l==="pending")return r(i);if(l){t.push(l.sequence),n=l.nextIndex;continue}t.push(e.slice(i,i+2)),n=i+2;continue}let c=eB(e,i);t.push(c.sequence),n=c.nextIndex}return{events:t,pending:""}}o(tB,"parseKeypresses");function Th(){let e="";return{push(t){let n=tB(e+t);return e=n.pending,n.events},hasPendingEscape(){return e.startsWith("\x1B")},flushPendingEscape(){if(!e.startsWith("\x1B"))return;let t=e;return e="",t},reset(){e=""}}}o(Th,"createInputParser");import{createContext as nB}from"react";var ak=nB({exit(){}});ak.displayName="InternalAppContext";var ck=ak;import{EventEmitter as rB}from"node:events";import{createContext as iB}from"react";var oB={isTTY:!1,isRaw:!1,on(){},off(){},pause(){},resume(){},setRawMode(){}},lk=iB({stdin:oB,internal_eventEmitter:new rB,setRawMode(){},isRawModeSupported:!1,internal_exitOnCtrlC:!0});lk.displayName="InternalStdinContext";var uk=lk;import{createContext as sB}from"react";var aB={isTTY:!1,columns:80,rows:24,write(){return!0},on(){},off(){}},dk=sB({stdout:aB,write(){}});dk.displayName="InternalStdoutContext";var fk=dk;import{createContext as cB}from"react";var lB={isTTY:!1,write(){return!0},on(){},off(){}},pk=cB({stderr:lB,write(){}});pk.displayName="InternalStderrContext";var mk=pk;import{createContext as uB}from"react";var hk=uB({activeId:void 0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){}});hk.displayName="InternalFocusContext";var gk=hk;import{createContext as dB}from"react";var yk=dB({setCursorPosition(){}});yk.displayName="InternalCursorContext";var wk=yk;import pB,{PureComponent as mB}from"react";import*as vh from"node:fs";import{cwd as Ik}from"node:process";import wn from"react";import Sk from"stack-utils";import fB from"code-excerpt";var qS=o(e=>e?.replace(`file://${Ik()}/`,""),"cleanupPath"),xk=new Sk({cwd:Ik(),internals:Sk.nodeInternals()});function XS({error:e}){let t=e.stack?e.stack.split(`
|
|
26
|
-
`).slice(1):void 0,n=t?xk.parseLine(t[0]):void 0,r=
|
|
27
|
-
`).slice(1).map(a=>{let c=xk.parseLine(a);return c?wn.createElement(ri,{key:a},wn.createElement(yr,{dimColor:!0},"- "),wn.createElement(yr,{dimColor:!0,bold:!0},c.function),wn.createElement(yr,{dimColor:!0,color:"gray","aria-label":`at ${
|
|
22
|
+
`:"",frame:void 0}}let r=new pl({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});A0(),HS(e,r,{skipStaticElements:!0});let i;e.staticNode?.yogaNode&&(i=new pl({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),HS(e.staticNode,i,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=wh(r),l=n?.columns??e.yogaNode.getComputedWidth(),u=n?.rows??e.yogaNode.getComputedHeight(),d=r.cursorPosition,p={screen:c,viewport:{width:l,height:u},cursor:{x:0,y:c.height,visible:!1},scrollHint:_0(),scrollRepaint:P0(),...d?{inputCursor:{x:d.x,y:d.y}}:{}};return{output:s,outputHeight:a,staticOutput:i?`${i.get().output}
|
|
23
|
+
`:"",frame:p}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),jS=kD;function Fr(...e){if(e.length===0)return"\x1B[";if(e.length===1)return`\x1B[${e[0]}`;let t=e.slice(0,-1),n=e[e.length-1];return`\x1B[${t.join(";")}${n}`}o(Fr,"csi");function D0(e=1){return e===0?"":Fr(e,"A")}o(D0,"cursorUp");function ED(e=1){return e===0?"":Fr(e,"B")}o(ED,"cursorDown");function MD(e=1){return e===0?"":Fr(e,"C")}o(MD,"cursorForward");function AD(e=1){return e===0?"":Fr(e,"D")}o(AD,"cursorBack");function B0(e){return Fr(e,"G")}o(B0,"cursorTo");var _D=Fr("G"),H0=Fr("H");function F0(e,t){let n="";return e<0?n+=AD(-e):e>0&&(n+=MD(e)),t<0?n+=D0(-t):t>0&&(n+=ED(t)),n}o(F0,"cursorMove");var US=Fr(2,"K");function W0(e){if(e<=0)return"";let t="";for(let n=0;n<e;n++)t+=US,n<e-1&&(t+=D0(1));return t+=_D,t}o(W0,"eraseLines");var j0=Fr("r"),U0="\x1B7",V0="\x1B8";function G0(e,t){return Fr(e,t,"r")}o(G0,"setScrollRegion");function K0(e=1){return Fr(e,"S")}o(K0,"scrollUp");function z0(e=1){return Fr(e,"T")}o(z0,"scrollDown");var Ud=Fr(0,"m");function q0(e){return`\x1B]${e.join(";")}\x07`}o(q0,"osc");function PD(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return(t>>>0).toString(36)}o(PD,"osc8Id");function Vd(e,t){if(!e)return ml;let n={id:PD(e),...t??{}},r=Object.entries(n).map(([i,s])=>`${i}=${s}`).join(":");return q0(["8",r,e])}o(Vd,"link");var ml=q0(["8","",""]);function VS(e){let{screen:t}=e;if(t.width===0||t.height===0)return[];let n=[],r="",i;for(let s=0;s<t.height;s++){let a="";for(let c=0;c<t.width;c++){let l=Ea(t,c,s);!l||l.width===Gi.SpacerTail||(l.hyperlink!==i&&(i!==void 0&&(a+=ml),l.hyperlink!==void 0&&(a+=Vd(l.hyperlink)),i=l.hyperlink),l.style!==r&&(r!==""&&(a+=Ud),l.style!==""&&(a+=l.style),r=l.style),a+=l.char)}i!==void 0&&(a+=ml,i=void 0),r!==""&&(a+=Ud,r=""),n.push(a.trimEnd())}return[{type:"stdout",content:n.join(`
|
|
24
|
+
`)}]}o(VS,"renderFullFrame");var LD=Object.freeze([]),OD=Object.freeze([]);function Ma(e,t){if(e===t)return{patches:LD,current:e};let n=[];return e!==""&&n.push({type:"stdout",content:Ud}),t!==""&&n.push({type:"stdout",content:t}),{patches:n,current:t}}o(Ma,"transitionStyle");function Kd(e,t){let n=Ma(e,t),r="";for(let i of n.patches)i.type==="stdout"&&(r+=i.content);return{str:r,current:n.current}}o(Kd,"transitionStyleStr");function Ro(e,t){if(e===t)return{patches:OD,current:e};let n=[];return e!==void 0&&n.push({type:"stdout",content:ml}),t!==void 0&&n.push({type:"stdout",content:Vd(t)}),{patches:n,current:t}}o(Ro,"transitionHyperlink");function X0(e){let t=e.codePointAt(0);if(t===void 0)return!1;if(t>=129648&&t<=129791||t>=129792&&t<=130047)return!0;if(e.length>=2){for(let n=0;n<e.length;n++)if(e.charCodeAt(n)===65039)return!0}return!1}o(X0,"needsWidthCompensation");var Aa=class{static{o(this,"VirtualScreen")}viewportWidth;cursor;diff;_cursorMut;_diffMut=[];constructor(t,n){this.viewportWidth=n,this._cursorMut={x:t.x,y:t.y},this.cursor=this._cursorMut,this.diff=this._diffMut}txn(t){let[n,r]=t(this.cursor);for(let i of n)this._diffMut.push(i);this._cursorMut.x+=r.dx,this._cursorMut.y+=r.dy}},ko={type:"carriageReturn"},Gd={type:"stdout",content:`
|
|
25
|
+
`};function zd(e,t,n){let r=t.width===Gi.Wide?2:1,i=e.viewportWidth,s=!1;return e.txn(a=>{let c=a.x;if(r===2&&c<i){let d=t.char.length>2?i:i+1;if(c+2>=d)return[[],{dx:0,dy:0}]}let l=[];n.length>0&&l.push({type:"stdout",content:n});let u=r===2&&X0(t.char);return u&&c+1<i&&(l.push({type:"cursorTo",col:c+2}),l.push({type:"stdout",content:" "}),l.push({type:"cursorTo",col:c+1})),l.push({type:"stdout",content:t.char}),u&&l.push({type:"cursorTo",col:c+r+1}),s=!0,c>=i?[l,{dx:r-c,dy:1}]:[l,{dx:r,dy:0}]}),s}o(zd,"writeCellWithStyleStr");function _a(e,t,n){e.txn(r=>{let i=t-r.x,s=n-r.y;return r.x>=e.viewportWidth?[[ko,{type:"cursorMove",x:t,y:s}],{dx:i,dy:s}]:s!==0?[[ko,{type:"cursorMove",x:t,y:s}],{dx:i,dy:s}]:[[{type:"cursorMove",x:i,y:s}],{dx:i,dy:s}]})}o(_a,"moveCursorTo");function qd(e,t,n,r,i=!1){let s="",a;for(let c=n;c<r;c++){if(e.cursor.y<c){let p=c-e.cursor.y;e.txn(m=>{let h=new Array(1+p);h[0]=ko;for(let g=0;g<p;g++)h[1+g]=Gd;return[h,{dx:-m.x,dy:p}]})}for(let p=0;p<t.screen.width;p++){let m=Ea(t.screen,p,c);if(!m||m.width===Gi.SpacerTail||m.char===" "&&m.style===""&&m.hyperlink===void 0)continue;_a(e,p,c);let h=Ro(a,m.hyperlink);for(let S of h.patches)e.txn(()=>[[S],{dx:0,dy:0}]);a=h.current;let g=Kd(s,m.style);zd(e,m,g.str)&&(s=g.current)}let l=Ma(s,"");for(let p of l.patches)e.txn(()=>[[p],{dx:0,dy:0}]);s=l.current;let u=Ro(a,void 0);for(let p of u.patches)e.txn(()=>[[p],{dx:0,dy:0}]);a=u.current;let d=c===r-1&&t.screen.height<=t.viewport.height&&(c+1>=t.viewport.height||i);e.txn(p=>d?[[ko],{dx:-p.x,dy:0}]:[[ko,Gd],{dx:-p.x,dy:1}])}if(s!==""||a!==void 0){let c=Ma(s,"");for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);let l=Ro(a,void 0);for(let u of l.patches)e.txn(()=>[[u],{dx:0,dy:0}])}}o(qd,"renderFrameSlice");function GS(e,t,n,r){let i=Math.max(0,Math.floor(n)),s=Math.min(t.screen.height-1,t.viewport.height-1,Math.floor(r));for(let a=i;a<=s;a++)$D(e,t,a)}o(GS,"repaintFrameRows");function $D(e,t,n){let r="",i;_a(e,0,n),e.txn(()=>[[{type:"stdout",content:ml+Ud},{type:"eraseLine"}],{dx:0,dy:0}]);for(let s=0;s<t.screen.width;s++){let a=Ea(t.screen,s,n);if(!a||a.width===Gi.SpacerTail||a.char===" "&&a.style===""&&a.hyperlink===void 0)continue;_a(e,s,n);let c=Ro(i,a.hyperlink);for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);i=c.current;let l=Kd(r,a.style);zd(e,a,l.str)&&(r=l.current)}for(let s of Ma(r,"").patches)e.txn(()=>[[s],{dx:0,dy:0}]);for(let s of Ro(i,void 0).patches)e.txn(()=>[[s],{dx:0,dy:0}])}o($D,"repaintFrameRow");function KS(e,t){let n="";for(let r=0;r<e.width;r++){let i=Ea(e,r,t);n+=i?.char??" "}return n.trimEnd()}o(KS,"readLine");function hl(e,t,n=!1){let r=new Aa({x:0,y:0},e.viewport.width);qd(r,e,0,e.screen.height,n);let i=[{type:"clearTerminal",reason:t}];for(let s of r.diff)i.push(s);return i}o(hl,"fullResetSequence_CAUSES_FLICKER");function Sh(e,t){let n=e.cursor.y>=e.screen.height,r=t.screen.height>e.screen.height,i=t.screen.height<e.screen.height,s=n&&e.screen.height>=e.viewport.height,a=t.screen.height<=e.viewport.height,c=s?1:0;return{viewportY:r?Math.max(0,e.screen.height-e.viewport.height+c):Math.max(e.screen.height,t.screen.height)-t.viewport.height+c,cursorAtBottom:n,growing:r,shrinking:i,prevHadScrollback:s,nextFitsViewport:a}}o(Sh,"computeViewportState");function Y0(e,t,n){if(t.viewport.height<e.viewport.height||e.viewport.width!==0&&t.viewport.width!==e.viewport.width)return{reset:!0,reason:"resize"};let r=Sh(e,t);if(r.prevHadScrollback&&r.nextFitsViewport&&r.shrinking)return{reset:!0,reason:"offscreen"};if(e.screen.height>=e.viewport.height&&e.screen.height>0&&r.cursorAtBottom&&!r.growing){let s=e.screen.height-e.viewport.height+1;for(let a of yh(e.screen,t.screen))if(a.y<s)return{reset:!0,reason:"offscreen",trigger:{y:a.y,prevLine:n(e.screen,a.y),nextLine:n(t.screen,a.y)}}}return r.shrinking&&e.screen.height-t.screen.height>e.viewport.height?{reset:!0,reason:"offscreen"}:{reset:!1}}o(Y0,"shouldFullReset");function J0(e,t,n){return!!(t&&t.width===2||e&&e.width===2&&!t||t&&n&&!e)}o(J0,"shouldSkipDiff");var xh=class{static{o(this,"LogUpdate")}options;constructor(t){this.options=t}render(t,n,r={}){if(!this.options.isTTY)return VS(n);let i=r.inlineBottomAnchored??!1,s=Q0(t,i),a=Q0(n,i);if(r.altScreen===!0&&t.screen.height===0&&a.screen.height>0)return hl(a,"clear",i);let c=Y0(s,a,KS);if(c.reset)return hl(a,c.reason,i);if(a.scrollRepaint&&r.altScreen===!0)return ND(s,a,a.scrollRepaint);let l=a.scrollHint;if(l&&r.altScreen&&r.decstbmSafe&&process.env.KODAX_SCROLL_DECSTBM==="1"&&l.delta!==0&&l.top>=0&&l.bottom<s.screen.height&&l.bottom<a.screen.height&&Math.abs(l.delta)<=l.bottom-l.top){let u={type:"scrollRegion",top:l.top,bottom:l.bottom,delta:l.delta},d={...s,screen:N0(s.screen,l.top,l.bottom,l.delta)};return[u,...Z0(d,a,i)]}return Z0(s,a,i)}reset(){}};function zS(e,t){for(let n of t)e.txn(()=>[[n],{dx:0,dy:0}])}o(zS,"emitPatches");function qS(e,t,n){if(t!==""){let r=Ma(t,"");zS(e,r.patches)}if(n!==void 0){let r=Ro(n,void 0);zS(e,r.patches)}return{style:"",hyperlink:void 0}}o(qS,"resetStyleAndHyperlink");function ND(e,t,n){let r=Sh(e,t),i=new Aa(e.cursor,t.viewport.width);r.shrinking&&ek(i,e,t);let s=Math.max(0,Math.floor(n.top)),a=Math.min(t.screen.height-1,t.viewport.height-1,Math.floor(n.bottom)),c=a>=s?{top:s,bottom:a}:void 0;c&&GS(i,t,c.top,c.bottom);let l=tk(i,e,t,{...r,skipRows:c});return l.needsFullReset?hl(t,"offscreen"):(qS(i,l.currentStyle,l.currentHyperlink),r.growing&&qd(i,t,e.screen.height,t.screen.height),nk(i,t),i.diff)}o(ND,"renderScrollRepaint");function ek(e,t,n){let r=t.screen.height-n.screen.height;e.txn(i=>[[{type:"clear",count:r},{type:"cursorMove",x:0,y:-1}],{dx:-i.x,dy:-r}])}o(ek,"applyShrink");function tk(e,t,n,r){let i="",s,a=!1;for(let c of yh(t.screen,n.screen)){let{x:l,y:u,prev:d,next:p}=c;if(r.growing&&u>=t.screen.height||r.skipRows&&u>=r.skipRows.top&&u<=r.skipRows.bottom)continue;let m=!!(p&&p.char===" "&&p.style===""&&p.hyperlink===void 0);if(!J0(d,p,m)){if(u<r.viewportY){a=!0;break}if(_a(e,l,u),p){let h=Ro(s,p.hyperlink);zS(e,h.patches),s=h.current;let g=Kd(i,p.style);zd(e,p,g.str)&&(i=g.current)}else if(d){let h=qS(e,i,s);i=h.style,s=h.hyperlink,e.txn(()=>[[{type:"stdout",content:" "}],{dx:1,dy:0}])}}}return{currentStyle:i,currentHyperlink:s,needsFullReset:a}}o(tk,"diffPass");function Q0(e,t){let n=t?Math.max(0,Math.min(e.viewport.height-1,e.screen.height-1)):Math.max(0,e.viewport.height-1);return e.cursor.y<=n?e:{...e,cursor:{...e.cursor,y:n}}}o(Q0,"clampRestingCursor");function nk(e,t){t.cursor.y>=t.screen.height?e.txn(n=>{let r=t.cursor.y-n.y;if(r>0){let s=new Array(1+r);s[0]=ko;for(let a=0;a<r;a++)s[1+a]=Gd;return[s,{dx:-n.x,dy:r}]}let i=t.cursor.y-n.y;return i!==0||n.x!==t.cursor.x?[[ko,{type:"cursorMove",x:t.cursor.x,y:i}],{dx:t.cursor.x-n.x,dy:i}]:[[],{dx:0,dy:0}]}):_a(e,t.cursor.x,t.cursor.y)}o(nk,"restoreCursor");function Z0(e,t,n=!1){let r=Sh(e,t),i=new Aa(e.cursor,t.viewport.width);r.shrinking&&ek(i,e,t);let s=tk(i,e,t,r);return s.needsFullReset?hl(t,"offscreen",n):(qS(i,s.currentStyle,s.currentHyperlink),r.growing&&qd(i,t,e.screen.height,t.screen.height,n),nk(i,t),i.diff)}o(Z0,"renderIncremental");var DD="\x1B[?25l",BD="\x1B[?25h",HD=`\x1B[2J${H0}`,FD="\x1B[?2026h",WD="\x1B[?2026l";function jD(e){switch(e.type){case"stdout":return e.content;case"carriageReturn":return"\r";case"cursorHide":return DD;case"cursorShow":return BD;case"cursorMove":return F0(e.x,e.y);case"cursorTo":return B0(e.col);case"eraseLine":return US;case"clear":return W0(e.count);case"clearTerminal":return HD;case"hyperlink":return Vd(e.uri);case"scrollRegion":{let t=e.top+1,n=e.bottom+1,r=Math.abs(e.delta),i=e.delta>0?K0(r):z0(r);return U0+G0(t,n)+i+j0+V0}}}o(jD,"patchToBytes");function Ih(e,t,n=!1){let r="",i=!1;for(let s of t)s.type==="clearTerminal"&&(i=!0),r+=jD(s);if(r.length!==0){if(n&&i){e.write(FD+r+WD);return}e.write(r)}}o(Ih,"applyDiff");function rk(e,t,n={}){if(t===void 0)return!1;let r=e.cellLogUpdate.render(e.prevFrame,t,n);return Ih(e.stdout,r,n.synchronized??!1),e.prevFrame=t,!0}o(rk,"applyCellFrame");function Xd(e,t){return{screen:O0(0,0),viewport:{width:t,height:e},cursor:{x:0,y:0,visible:!0}}}o(Xd,"emptyFrame");import UD from"is-in-ci";var Eo="\x1B[?2026h",Ki="\x1B[?2026l";function Mo(e){return"isTTY"in e&&e.isTTY===!0&&!UD}o(Mo,"shouldSynchronize");var VD="\x1B[?1049h",GD="\x1B[?1049l";var KD="\x1B[2J",zD="\x1B[?1000h\x1B[?1002h\x1B[?1006h",qD="\x1B[?1006l\x1B[?1002l\x1B[?1000l";function Ch(e={}){let t=e.mouseTracking!==!1,n=e.clearOnEnter===!0;return VD+(n?KD:"")+"\x1B[H"+(t?zD:"")}o(Ch,"buildAlternateScreenEnterSequence");function gl(e={}){return(e.mouseTracking!==!1?qD:"")+GD}o(gl,"buildAlternateScreenExitSequence");var XD=new WeakMap,ik=XD;import{EventEmitter as hB}from"node:events";import gB from"node:process";import Pa,{useState as JS,useRef as yl,useCallback as dn,useMemo as wl,useEffect as Ck}from"react";import yB from"cli-cursor";var YD=o(e=>e>=48&&e<=63,"isCsiParameterByte"),JD=o(e=>e>=32&&e<=47,"isCsiIntermediateByte"),sk=o(e=>e>=64&&e<=126,"isCsiFinalByte");function QD(e,t,n){let r=t+n+1,i=r;for(;i<e.length;i+=1){let s=e.codePointAt(i);if(s===void 0)return"pending";if(!(YD(s)||JD(s))&&!(s===91&&i===r))return sk(s)?{sequence:e.slice(t,i+1),nextIndex:i+1}:void 0}return"pending"}o(QD,"parseCsiSequence");function ZD(e,t,n){let r=t+n+2;if(r>e.length)return"pending";let i=e.codePointAt(r-1);if(!(i===void 0||!sk(i)))return{sequence:e.slice(t,r),nextIndex:r}}o(ZD,"parseSs3Sequence");function ok(e,t,n){let r=e[t+n];if(r===void 0)return"pending";if(r==="[")return QD(e,t,n);if(r==="O")return ZD(e,t,n)}o(ok,"parseControlSequence");function eB(e,t){let n=e.codePointAt(t+1),r=n!==void 0&&n>65535?2:1,i=t+1+r;return{sequence:e.slice(t,i),nextIndex:i}}o(eB,"parseEscapedCodePoint");function tB(e){let t=[],n=0,r=o(i=>({events:t,pending:e.slice(i)}),"pendingFrom");for(;n<e.length;){let i=e.indexOf("\x1B",n);if(i===-1)return t.push(e.slice(n)),{events:t,pending:""};if(i>n&&t.push(e.slice(n,i)),i===e.length-1)return r(i);let s=ok(e,i,1);if(s==="pending")return r(i);if(s){t.push(s.sequence),n=s.nextIndex;continue}if(e[i+1]==="\x1B"){if(i+2>=e.length)return r(i);let l=ok(e,i,2);if(l==="pending")return r(i);if(l){t.push(l.sequence),n=l.nextIndex;continue}t.push(e.slice(i,i+2)),n=i+2;continue}let c=eB(e,i);t.push(c.sequence),n=c.nextIndex}return{events:t,pending:""}}o(tB,"parseKeypresses");function Th(){let e="";return{push(t){let n=tB(e+t);return e=n.pending,n.events},hasPendingEscape(){return e.startsWith("\x1B")},flushPendingEscape(){if(!e.startsWith("\x1B"))return;let t=e;return e="",t},reset(){e=""}}}o(Th,"createInputParser");import{createContext as nB}from"react";var ak=nB({exit(){}});ak.displayName="InternalAppContext";var ck=ak;import{EventEmitter as rB}from"node:events";import{createContext as iB}from"react";var oB={isTTY:!1,isRaw:!1,on(){},off(){},pause(){},resume(){},setRawMode(){}},lk=iB({stdin:oB,internal_eventEmitter:new rB,setRawMode(){},isRawModeSupported:!1,internal_exitOnCtrlC:!0});lk.displayName="InternalStdinContext";var uk=lk;import{createContext as sB}from"react";var aB={isTTY:!1,columns:80,rows:24,write(){return!0},on(){},off(){}},dk=sB({stdout:aB,write(){}});dk.displayName="InternalStdoutContext";var fk=dk;import{createContext as cB}from"react";var lB={isTTY:!1,write(){return!0},on(){},off(){}},pk=cB({stderr:lB,write(){}});pk.displayName="InternalStderrContext";var mk=pk;import{createContext as uB}from"react";var hk=uB({activeId:void 0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){}});hk.displayName="InternalFocusContext";var gk=hk;import{createContext as dB}from"react";var yk=dB({setCursorPosition(){}});yk.displayName="InternalCursorContext";var wk=yk;import pB,{PureComponent as mB}from"react";import*as vh from"node:fs";import{cwd as Ik}from"node:process";import wn from"react";import Sk from"stack-utils";import fB from"code-excerpt";var XS=o(e=>e?.replace(`file://${Ik()}/`,""),"cleanupPath"),xk=new Sk({cwd:Ik(),internals:Sk.nodeInternals()});function YS({error:e}){let t=e.stack?e.stack.split(`
|
|
26
|
+
`).slice(1):void 0,n=t?xk.parseLine(t[0]):void 0,r=XS(n?.file),i,s=0;if(r&&n?.line&&vh.existsSync(r)){let a=vh.readFileSync(r,"utf8");if(i=fB(a,n.line),i)for(let{line:c}of i)s=Math.max(s,String(c).length)}return wn.createElement(ri,{flexDirection:"column",padding:1},wn.createElement(ri,null,wn.createElement(yr,{backgroundColor:"red",color:"white"}," ","ERROR"," "),wn.createElement(yr,null," ",e.message)),n&&r&&wn.createElement(ri,{marginTop:1},wn.createElement(yr,{dimColor:!0},r,":",n.line,":",n.column)),n&&i&&wn.createElement(ri,{marginTop:1,flexDirection:"column"},i.map(({line:a,value:c})=>wn.createElement(ri,{key:a},wn.createElement(ri,{width:s+1},wn.createElement(yr,{dimColor:a!==n.line,backgroundColor:a===n.line?"red":void 0,color:a===n.line?"white":void 0,"aria-label":a===n.line?`Line ${a}, error`:`Line ${a}`},String(a).padStart(s," "),":")),wn.createElement(yr,{key:a,backgroundColor:a===n.line?"red":void 0,color:a===n.line?"white":void 0}," "+c)))),e.stack&&wn.createElement(ri,{marginTop:1,flexDirection:"column"},e.stack.split(`
|
|
27
|
+
`).slice(1).map(a=>{let c=xk.parseLine(a);return c?wn.createElement(ri,{key:a},wn.createElement(yr,{dimColor:!0},"- "),wn.createElement(yr,{dimColor:!0,bold:!0},c.function),wn.createElement(yr,{dimColor:!0,color:"gray","aria-label":`at ${XS(c.file)??""} line ${c.line} column ${c.column}`}," ","(",XS(c.file)??"",":",c.line,":",c.column,")")):wn.createElement(ri,{key:a},wn.createElement(yr,{dimColor:!0},"- "),wn.createElement(yr,{dimColor:!0,bold:!0},a,"\\t"," "))})))}o(YS,"ErrorOverview");var Yd=class extends mB{static{o(this,"ErrorBoundary")}static displayName="InternalErrorBoundary";static getDerivedStateFromError(t){return{error:t}}state={error:void 0};componentDidCatch(t){this.props.onError(t)}render(){return this.state.error?pB.createElement(YS,{error:this.state.error}):this.props.children}};var wB=" ",SB="\x1B[Z",xB="\x1B";function Tk({children:e,stdin:t,stdout:n,stderr:r,writeToStdout:i,writeToStderr:s,exitOnCtrlC:a,onExit:c,setCursorPosition:l}){let[u,d]=JS(!0),[p,m]=JS(void 0),[,h]=JS([]),g=yl(0),S=yl(0),T=yl(new hB);T.current.setMaxListeners(1/0);let x=yl(void 0),I=yl(Th()),v=yl(void 0),k=dn(()=>{v.current&&(clearImmediate(v.current),v.current=void 0)},[]),_=t.isTTY,H=dn(()=>{x.current&&(t.removeListener("readable",x.current),x.current=void 0)},[t]),$=dn(()=>{t.setRawMode(!1),H(),t.unref(),S.current=0,I.current.reset(),k()},[t,H,k]),P=dn(oe=>{_&&S.current>0&&$(),c(oe)},[_,$,c]),z=dn(oe=>{if(oe===""&&a){P();return}oe===xB&&m(Me=>Me&&void 0)},[a,P]),J=dn(oe=>{z(oe),T.current.emit("input",oe)},[z]),L=dn(()=>{k(),v.current=setImmediate(()=>{v.current=void 0;let oe=I.current.flushPendingEscape();oe&&J(oe)})},[k,J]),W=dn(()=>{k();let oe;for(;(oe=t.read())!==null;){let Me=I.current.push(oe);for(let Ae of Me)J(Ae)}I.current.hasPendingEscape()&&L()},[t,J,k,L]),N=dn(oe=>{if(!_)throw t===gB.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default.
|
|
28
28
|
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink.
|
|
29
|
-
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(t.setEncoding("utf8"),oe){S.current===0&&(t.ref(),t.setRawMode(!0),x.current=W,t.addListener("readable",W)),S.current++;return}S.current!==0&&--S.current===0&&$()},[_,t,W,$]),q=dn((oe,Me)=>{let Ae=oe.findIndex(ze=>ze.id===Me);for(let ze=Ae+1;ze<oe.length;ze++){let
|
|
30
|
-
`;if(this.options.debug){c&&(this.fullStaticOutput+=s),this.writeStdout(this.fullStaticOutput+r);return}if(
|
|
31
|
-
`,this.lastOutputHeight=i;return}if(this.isScreenReaderEnabled){let T=
|
|
29
|
+
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(t.setEncoding("utf8"),oe){S.current===0&&(t.ref(),t.setRawMode(!0),x.current=W,t.addListener("readable",W)),S.current++;return}S.current!==0&&--S.current===0&&$()},[_,t,W,$]),q=dn((oe,Me)=>{let Ae=oe.findIndex(ze=>ze.id===Me);for(let ze=Ae+1;ze<oe.length;ze++){let pt=oe[ze];if(pt?.isActive)return pt.id}},[]),B=dn((oe,Me)=>{let Ae=oe.findIndex(ze=>ze.id===Me);for(let ze=Ae-1;ze>=0;ze--){let pt=oe[ze];if(pt?.isActive)return pt.id}},[]),ae=dn(()=>{h(oe=>(m(Me=>{let Ae=oe.find(pt=>pt.isActive)?.id;return q(oe,Me)??Ae}),oe))},[q]),ee=dn(()=>{h(oe=>(m(Me=>{let Ae=oe.findLast(pt=>pt.isActive)?.id;return B(oe,Me)??Ae}),oe))},[B]);Ck(()=>{let oe=o(Ae=>{!u||g.current===0||(Ae===wB&&ae(),Ae===SB&&ee())},"handleTabNavigation");T.current.on("input",oe);let Me=T.current;return()=>{Me.off("input",oe)}},[u,ae,ee]);let ie=dn(()=>{d(!0)},[]),C=dn(()=>{d(!1)},[]),Te=dn(oe=>{h(Me=>(Me.some(ze=>ze?.id===oe)&&m(oe),Me))},[]),Fe=dn((oe,{autoFocus:Me})=>{h(Ae=>(g.current=Ae.length+1,[...Ae,{id:oe,isActive:!0}])),Me&&m(Ae=>Ae??oe)},[]),Ce=dn(oe=>{m(Me=>Me===oe?void 0:Me),h(Me=>{let Ae=Me.filter(ze=>ze.id!==oe);return g.current=Ae.length,Ae})},[]),X=dn(oe=>{h(Me=>Me.map(Ae=>Ae.id!==oe?Ae:{id:oe,isActive:!0}))},[]),re=dn(oe=>{m(Me=>Me===oe?void 0:Me),h(Me=>Me.map(Ae=>Ae.id!==oe?Ae:{id:oe,isActive:!1}))},[]);Ck(()=>()=>{yB.show(n),_&&S.current>0&&$()},[n,_,$]);let je=wl(()=>({exit:P}),[P]),Tt=wl(()=>({stdin:t,setRawMode:N,isRawModeSupported:_,internal_exitOnCtrlC:a,internal_eventEmitter:T.current}),[t,N,_,a]),vt=wl(()=>({stdout:n,write:i}),[n,i]),De=wl(()=>({stderr:r,write:s}),[r,s]),Ee=wl(()=>({setCursorPosition:l}),[l]),ce=wl(()=>({activeId:p,add:Fe,remove:Ce,activate:X,deactivate:re,enableFocus:ie,disableFocus:C,focusNext:ae,focusPrevious:ee,focus:Te}),[p,Fe,Ce,X,re,ie,C,ae,ee,Te]);return Pa.createElement(ck.Provider,{value:je},Pa.createElement(uk.Provider,{value:Tt},Pa.createElement(fk.Provider,{value:vt},Pa.createElement(mk.Provider,{value:De},Pa.createElement(gk.Provider,{value:ce},Pa.createElement(wk.Provider,{value:Ee},Pa.createElement(Yd,{onError:P},e)))))))}o(Tk,"App");Tk.displayName="InternalApp";var vk=Tk;var IB={disambiguateEscapeCodes:1,reportEventTypes:2,reportAlternateKeys:4,reportAllKeysAsEscapeCodes:8,reportAssociatedText:16};function bk(e){let t=0;for(let n of e)t|=IB[n];return t}o(bk,"resolveFlags");var Ao={shift:1,alt:2,ctrl:4,super:8,hyper:16,meta:32,capsLock:64,numLock:128};var QS=o((e,t)=>(t<0?wr.cursorUp(-t):t>0?wr.cursorDown(t):"")+(e<0?wr.cursorBackward(-e):e>0?wr.cursorForward(e):""),"cursorMoveSeq"),ZS=o((e,t=!1)=>{let n=Math.max(0,e.screen.height-e.viewport.height),r=t?Math.max(0,Math.min(e.viewport.height-1,e.screen.height-1)):Math.max(0,e.viewport.height-1);return i=>({x:i.x,y:Math.min(Math.max(i.y-n,0),r)})},"toVisibleCursor"),bh=o(()=>{},"noop"),PB=27,LB=91,OB=63,$B=117,NB=48,DB=57,BB=o(e=>e>=NB&&e<=DB,"isDigitByte"),kk=o((e,t)=>{if(e[t]!==PB||e[t+1]!==LB||e[t+2]!==OB)return;let n=t+3,r=n;for(;n<e.length&&BB(e[n]);)n++;if(n!==r){if(n===e.length)return{state:"partial"};if(e[n]===$B)return{state:"complete",endIndex:n}}},"matchKittyQueryResponse"),HB=o(e=>{for(let t=0;t<e.length;t++)if(kk(e,t)?.state==="complete")return!0;return!1},"hasCompleteKittyQueryResponse"),FB=o(e=>{let t=[],n=0;for(;n<e.length;){let r=kk(e,n);if(r?.state==="complete"){n=r.endIndex+1;continue}if(r?.state==="partial")break;t.push(e[n]),n++}return t},"stripKittyQueryResponsesAndTrailingPartial"),ex=o(e=>e instanceof Error||Object.prototype.toString.call(e)==="[object Error]","isErrorInput"),WB=class{static{o(this,"Ink")}isConcurrent;options;cursorPosition;isScreenReaderEnabled;isUnmounted;isUnmounting;lastOutput;lastOutputToRender;lastOutputHeight;lastTerminalWidth;container;rootNode;fullStaticOutput;exitPromise;exitResult;beforeExitHandler;restoreConsole;restoreStreamWriteGuard;rawStdoutWrite;rawStderrWrite;internalStreamWriteDepth=0;unsubscribeResize;throttledOnRender;hasPendingThrottledRender=!1;kittyProtocolEnabled=!1;cancelKittyDetection;terminalExitGuard;altScreenActive=!1;shellMode;mouseTrackingActive=!1;shellTransitionPhase=void 0;cursorHidden=!1;constructor(t){vB(this),this.options=t,this.rawStdoutWrite=t.stdout.write.bind(t.stdout),this.rawStderrWrite=t.stderr.write.bind(t.stderr),this.rootNode=lh("ink-root"),this.rootNode.onComputeLayout=this.calculateLayout,this.isScreenReaderEnabled=t.isScreenReaderEnabled??La.env.INK_SCREEN_READER==="true";let n=t.debug||this.isScreenReaderEnabled,r=t.maxFps??30,i=r>0?Math.max(1,Math.ceil(1e3/r)):0;if(n)this.rootNode.onRender=this.onRender,this.throttledOnRender=void 0;else{let a=TB(this.onRender,i,{leading:!0,trailing:!0});this.rootNode.onRender=()=>{this.hasPendingThrottledRender=!0,a()},this.throttledOnRender=a}this.rootNode.onImmediateRender=this.onRender,this.cellLogUpdate=new xh({isTTY:!!t.stdout.isTTY}),this.prevFrame=Xd(t.stdout.rows??24,t.stdout.columns??80),this.cursorPosition=void 0,this.isUnmounted=!1,this.isUnmounting=!1,this.installExternalStreamWriteGuard(),this.isConcurrent=t.concurrent??!1,this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.lastTerminalWidth=this.getTerminalWidth(),this.fullStaticOutput="",this.shellMode=t.shellMode??"virtual";let s=t.concurrent?EB:kB;this.container=bo.createContainer(this.rootNode,s,null,!1,null,"id",()=>{},()=>{},()=>{},()=>{}),this.unsubscribeExit=bB(this.unmount,{alwaysLast:!1}),ah()&&bo.injectIntoDevTools(),t.patchConsole&&this.patchConsole(),_o||(t.stdout.on("resize",this.resized),this.unsubscribeResize=()=>{t.stdout.off("resize",this.resized)}),this.initKittyKeyboard()}getTerminalWidth=o(()=>this.options.stdout.columns?this.options.stdout.columns:_B()?.columns??80,"getTerminalWidth");resized=o(()=>{let t=this.getTerminalWidth();if(t<this.lastTerminalWidth){this.returnCursorToRest();let n=this.altScreenActive?this.lastOutputHeight>0?wr.eraseLines(this.lastOutputHeight):"":this.eraseInlineLiveBlock();n.length>0&&this.writeStdout(n),this.lastOutput="",this.lastOutputToRender="",this.cellLogUpdate.reset(),this.prevFrame=Xd(this.options.stdout.rows??24,t)}this.calculateLayout(),this.onRender(),this.lastTerminalWidth=t},"resized");resolveExitPromise=o(()=>{},"resolveExitPromise");rejectExitPromise=o(()=>{},"rejectExitPromise");unsubscribeExit=o(()=>{},"unsubscribeExit");handleAppExit=o(t=>{if(!(this.isUnmounted||this.isUnmounting)){if(ex(t)){this.unmount(t);return}this.exitResult=t,this.unmount()}},"handleAppExit");setCursorPosition=o(t=>{if(t===void 0){this.cursorPosition=void 0;return}let n=this.getTerminalWidth(),r=this.options.stdout.rows??24;if(n<=0||r<=0){this.cursorPosition=void 0;return}let i=Math.max(0,Math.min(t.x|0,n-1)),s=Math.max(0,Math.min(t.y|0,r-1));this.cursorPosition={x:i,y:s}},"setCursorPosition");resetOutputTracking=o(()=>{this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.cursorPosition=void 0,this.invalidateCellFrame()},"resetOutputTracking");usesVirtualShellOwnership=o((t={})=>t.altScreenActive??this.altScreenActive,"usesVirtualShellOwnership");beginShellTransition(t){this.shellTransitionPhase=t}setShellMode(t,n){let r=this.shellMode,i=this.mouseTrackingActive,s=this.usesVirtualShellOwnership(),a=n??!1;this.shellMode=t,this.mouseTrackingActive=a;let c=this.usesVirtualShellOwnership();(r!==t&&(s||c)||i!==a&&c)&&this.resetOutputTracking()}setAltScreenActive(t,n){let r=this.altScreenActive,i=this.mouseTrackingActive,s=this.usesVirtualShellOwnership(),a=n??!1;this.altScreenActive=t,this.mouseTrackingActive=a,this.shellTransitionPhase=void 0;let c=this.usesVirtualShellOwnership();(r!==t||i!==a&&(s||c))&&this.resetOutputTracking()}clearTextSelection(){}registerTerminalExitGuard(t){return this.terminalExitGuard=t,()=>{this.terminalExitGuard===t&&(this.terminalExitGuard=void 0)}}installExternalStreamWriteGuard(){if(this.options.debug||_o)return;let t=this.options.stdout,n=this.options.stderr,r=t.write,i=n.write,s=o((...c)=>{let l=this.rawStdoutWrite(...c);return this.internalStreamWriteDepth===0&&this.handleExternalStreamWrite(),l},"guardedStdoutWrite"),a=o((...c)=>{let l=this.rawStderrWrite(...c);return this.internalStreamWriteDepth===0&&this.handleExternalStreamWrite(),l},"guardedStderrWrite");t.write=s,n.write=a,this.restoreStreamWriteGuard=()=>{t.write===s&&(t.write=r),n.write===a&&(n.write=i)}}handleExternalStreamWrite(){this.isUnmounted||this.invalidateCellFrame()}withInternalStreamWrite(t){this.internalStreamWriteDepth+=1;try{return t()}finally{this.internalStreamWriteDepth-=1}}writeStdout(t,...n){return this.withInternalStreamWrite(()=>this.rawStdoutWrite(t,...n))}writeStderr(t,...n){return this.withInternalStreamWrite(()=>this.rawStderrWrite(t,...n))}restoreLastOutput=o(()=>{if(this.prevFrame.screen.height===0)return;let t=Xd(this.options.stdout.rows??24,this.getTerminalWidth()),n=this.cellLogUpdate.render(t,this.prevFrame);this.withInternalStreamWrite(()=>Ih(this.options.stdout,n))},"restoreLastOutput");shouldRestoreManagedShellAfterExternalWrite=o(()=>this.altScreenActive,"shouldRestoreManagedShellAfterExternalWrite");calculateLayout=o(()=>{let t=this.getTerminalWidth();this.rootNode.yogaNode.setWidth(t),this.rootNode.yogaNode.calculateLayout(void 0,void 0,MB.DIRECTION_LTR)},"calculateLayout");onRender=o(()=>{if(this.hasPendingThrottledRender=!1,this.isUnmounted)return;let t=performance.now(),n={rows:this.options.stdout.rows??24,columns:this.getTerminalWidth()},{output:r,outputHeight:i,staticOutput:s,frame:a}=jS(this.rootNode,this.isScreenReaderEnabled,n);this.options.onRender?.({renderTime:performance.now()-t}),!_o&&!this.options.debug&&!this.isScreenReaderEnabled&&!this.cursorHidden&&(this.writeStdout(wr.cursorHide),this.cursorHidden=!0);let c=s&&s!==`
|
|
30
|
+
`;if(this.options.debug){c&&(this.fullStaticOutput+=s),this.writeStdout(this.fullStaticOutput+r);return}if(_o){c&&this.writeStdout(s),this.lastOutput=r,this.lastOutputToRender=r+`
|
|
31
|
+
`,this.lastOutputHeight=i;return}if(this.isScreenReaderEnabled){let T=Mo(this.options.stdout);if(T&&this.writeStdout(Eo),c){let v=this.lastOutputHeight>0?wr.eraseLines(this.lastOutputHeight):"";this.writeStdout(v+s),this.lastOutputHeight=0}if(r===this.lastOutput&&!c){T&&this.writeStdout(Ki);return}let x=this.getTerminalWidth(),I=AB(r,x,{trim:!1,hard:!0});if(c)this.writeStdout(I);else{let v=this.lastOutputHeight>0?wr.eraseLines(this.lastOutputHeight):"";this.writeStdout(v+I)}this.lastOutput=r,this.lastOutputToRender=I,this.lastOutputHeight=I===""?0:I.split(`
|
|
32
32
|
`).length,T&&this.writeStdout(Ki);return}c&&(this.fullStaticOutput+=s);let u=!this.altScreenActive&&!!(a&&a.inputCursor)?[]:null,d=o(T=>{T&&(u?u.push(T):this.writeStdout(T))},"emit"),p=u?{write:d}:null;d(this.computeReturnToRestSeq());let m=this.altScreenActive,g=this.options.stdout.isTTY&&i>=this.options.stdout.rows&&m?r:r+`
|
|
33
|
-
`;if(this.lastOutputHeight>=this.options.stdout.rows&&m){if(
|
|
34
|
-
`)}this.kittyProtocolEnabled=!1,this.shellTransitionPhase=void 0,this.options.concurrent?
|
|
35
|
-
`),Ss}catch{return Ss=-1,null}}o(Ak,"resolveTraceFd");function zB(e){let t=Ak();if(t!==null)try{Mk(t,e)}catch{}}o(zB,"traceLine");var Rh=new WeakMap,qB={isTTY:!1,columns:80,rows:24,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")},XB={isTTY:!1,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")},YB={isTTY:!1,isRaw:!1,on:o(()=>{},"on"),off:o(()=>{},"off"),pause:o(()=>{},"pause"),resume:o(()=>{},"resume"),setRawMode:o(()=>{},"setRawMode")};function JB(e={}){return e instanceof jB?{stdout:e}:e}o(JB,"getOptions");function QB(e,t,n){let r=Rh.get(e);return r?r.isConcurrent!==n&&console.warn(`Warning: render() was called with concurrent: ${n}, but the existing renderer for this stdout uses concurrent: ${r.isConcurrent}. The concurrent option only takes effect on the first render. Call unmount() first if you need to change the rendering mode.`):(r=t(),Rh.set(e,r)),r}o(QB,"getInstance");function
|
|
36
|
-
`),c=0,l=0,u=h,d+=1,p?.(m)}}let i=QB(n.stdout,()=>new
|
|
37
|
-
`)s.name="enter";else if(t===" ")s.name="tab";else if(t==="\b"||t==="\x1B\b")s.name="backspace",s.meta=t.charAt(0)==="\x1B";else if(t==="\x7F"||t==="\x1B\x7F")s.name="delete",s.meta=t.charAt(0)==="\x1B";else if(t==="\x1B"||t==="\x1B\x1B")s.name="escape",s.meta=t.length===2;else if(t===" "||t==="\x1B ")s.name="space",s.meta=t.length===2;else if(t.length===1&&t<="")s.name=String.fromCharCode(t.charCodeAt(0)+97-1),s.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")s.name="number";else if(t.length===1&&t>="a"&&t<="z")s.name=t;else if(t.length===1&&t>="A"&&t<="Z")s.name=t.toLowerCase(),s.shift=!0;else if(n=tH.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(n[1]??"");else if(n=nH.exec(t)){let a=[...t];a[0]==="\x1B"&&a[1]==="\x1B"&&(s.option=!0);let c=[n[1],n[2],n[4],n[6]].filter(Boolean).join(""),l=Number(n[3]||n[5]||1)-1;s.ctrl=!!(l&4),s.meta=!!(l&10),s.shift=!!(l&1),s.code=c,s.name=$k[c]??"",s.shift=rH(c)||s.shift,s.ctrl=iH(c)||s.ctrl}return s}o(rx,"parseKeypress");var jk=new WeakSet,mH=50;function Eh(e){return{columns:e?.columns??80,rows:e?.rows??24}}o(Eh,"resolveTerminalSize");var xs=fH(null),ix={isTTY:!1,columns:80,rows:24,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")};var Gk={isTTY:!1,isRaw:!1,on:o(()=>{},"on"),off:o(()=>{},"off"),pause:o(()=>{},"pause"),resume:o(()=>{},"resume"),setRawMode:o(()=>{},"setRawMode")};function hH(e){for(let t of e)if(t.rawMode)return!0;return!1}o(hH,"hasRawModeSubscribers");function gH({stdin:e,setRawMode:t,isRawModeSupported:n,preserveRawModeOnDetach:r}){let i=new Set,s,a=!1,c=!1,l=o(m=>{for(let h of i)h.listener(m)},"handleData"),u=o(()=>{if(c){try{t(!1)}catch{}c=!1}},"disableRawModeIfOwned"),d=o(()=>{let m=s;m?.off?.("data",l),m&&c&&r?.()===!0?(jk.add(m),c=!1):u(),a&&(m?.unref?.(),a=!1),s=void 0},"detachInput"),p=o(()=>{if(s&&s!==e&&d(),!e||i.size===0){d();return}if(s!==e){let h=jk.delete(e)&&e.isRaw===!0;e.hasRef?.()!==!0&&typeof e.ref=="function"&&(e.ref(),a=!0),e.on?.("data",l),e.resume?.(),s=e,c=h}if(!(n&&hH(i))){u();return}if(e.isRaw===!1&&!c)try{t(!0),c=!0}catch{c=!1}},"syncInputOwnership");return{subscribe(m,h={}){let g={listener:m,rawMode:h.rawMode!==!1};return i.add(g),p(),()=>{i.delete(g),p()}},dispose(){i.clear(),d()}}}o(gH,"createTerminalInputController");var yH=o(({children:e,runtime:t})=>{let[n,r]=pH(()=>t.terminalSize);wl(()=>{if(r(Eh(t.stdout)),typeof t.stdout?.on!="function"||typeof t.stdout?.off!="function")return;let c=o(()=>{r(Eh(t.stdout))},"handleResize");return t.stdout.on("resize",c),()=>{t.stdout.off?.("resize",c)}},[t.stdout]);let i=Vk(c=>typeof t.stdout?.write!="function"?!1:(t.stdout.write(c),!0),[t.stdout]),s=Wk(()=>gH({stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported,preserveRawModeOnDetach:t.preserveRawModeOnUnmount}),[t.stdin,t.isRawModeSupported,t.preserveRawModeOnUnmount,t.setRawMode]);wl(()=>()=>{s.dispose()},[s]);let a=Wk(()=>({stdout:t.stdout,stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported,exit:t.exit,terminalSize:n,isTTY:t.stdout?.isTTY===!0,writeRaw:i,subscribeInput:s.subscribe}),[s.subscribe,t.exit,t.isRawModeSupported,t.setRawMode,t.stdin,t.stdout,s.subscribe,n,i]);return Uk(xs.Provider,{value:a,children:e})},"TuiRuntimeProvider");function wH(e){let t=e?.stdout??ix,n=e?.stdin??Gk,r=o(s=>{typeof n?.setRawMode=="function"&&n.setRawMode(s)},"setRawMode"),i;return{stdout:t,stdin:n,setRawMode:r,isRawModeSupported:typeof n?.setRawMode=="function",exit:o(()=>{i?.()},"exit"),terminalSize:Eh(t),isTTY:t?.isTTY===!0,writeRaw:o(s=>typeof t?.write!="function"?!1:(t.write(s),!0),"writeRaw"),preserveRawModeOnUnmount:e?.preserveRawModeOnUnmount??(()=>!1),subscribeInput:o(()=>()=>{},"subscribeInput"),attachExit(s){i=s}}}o(wH,"createRuntimeValue");function Sl(e,t){let n=wH(t),r=ex(Uk(yH,{runtime:n,children:e}),t);return n.attachExit(r.unmount),r}o(Sl,"render");var O=_k,M=Pk,xl=Lk;function SH(e){let t={upArrow:e.name==="up",downArrow:e.name==="down",leftArrow:e.name==="left",rightArrow:e.name==="right",pageDown:e.name==="pagedown",pageUp:e.name==="pageup",home:e.name==="home",end:e.name==="end",return:e.name==="return",escape:e.name==="escape",ctrl:e.ctrl,shift:e.shift,tab:e.name==="tab",backspace:e.name==="backspace",delete:e.name==="delete",meta:e.meta||e.name==="escape"||e.option===!0,super:e.super??!1,hyper:e.hyper??!1,capsLock:e.capsLock??!1,numLock:e.numLock??!1,eventType:e.eventType},n="";return e.isKittyProtocol?e.isPrintable?n=e.text??e.name:e.ctrl&&e.name.length===1&&(n=e.name):e.ctrl?n=e.name:n=e.sequence,!e.isKittyProtocol&&Nk.includes(e.name)&&(n=""),n.startsWith("\x1B")&&(n=n.slice(1)),n.length===1&&typeof n[0]=="string"&&/[A-Z]/.test(n[0])&&(t.shift=!0),{input:n,key:t}}o(SH,"createCompatKeypress");function Il(e,t={}){let{isActive:n=!0}=t,r=kh(e),i=kh(null),s=kh(null);wl(()=>{r.current=e},[e]),wl(()=>{if(!n){i.current=null,s.current&&(clearTimeout(s.current),s.current=null);return}return i.current=Th(),()=>{i.current?.reset(),i.current=null,s.current&&(clearTimeout(s.current),s.current=null)}},[n]);let a=Vk(c=>{let{input:l,key:u}=SH(rx(c));r.current(l,u)},[]);Qd(c=>{if(!n)return;s.current&&(clearTimeout(s.current),s.current=null);let l=i.current,u=typeof c=="string"?c:c.toString("utf8"),d=l?.push(u)??[u];for(let p of d)a(p);u.length>0&&(s.current=setTimeout(()=>{let p=i.current?.flushPendingEscape();p&&a(p)},mH))},{isActive:n,rawMode:!0})}o(Il,"useInput");function zi(){return{stdout:Oa(xs)?.stdout??ix}}o(zi,"useStdout");function Jd(){let e=Oa(xs),t=e?.stdin??Gk,n=e?.setRawMode??(r=>{typeof t?.setRawMode=="function"&&t.setRawMode(r)});return{stdin:t,setRawMode:n,isRawModeSupported:e?.isRawModeSupported??typeof t?.setRawMode=="function"}}o(Jd,"useStdin");function qi(){return{exit:Oa(xs)?.exit??(()=>{})}}o(qi,"useApp");function Cl(){return Oa(xs)?.stdout??ix}o(Cl,"useTerminalOutput");function Tl(){let e=Cl();return Oa(xs)?.terminalSize??Eh(e)}o(Tl,"useTerminalSize");function vl(){let e=Cl();return Oa(xs)?.writeRaw??(n=>typeof e?.write!="function"?!1:(e.write(n),!0))}o(vl,"useTerminalWrite");function Qd(e,t={}){let{isActive:n=!0,rawMode:r=!0}=t,i=Oa(xs),{stdin:s,setRawMode:a,isRawModeSupported:c}=Jd(),l=kh(e);wl(()=>{l.current=e},[e]),wl(()=>{if(!n||!s)return;if(i)return i.subscribeInput(m=>{l.current(m)},{rawMode:r});let u=s,d=u.isRaw;r&&c&&d===!1&&a(!0);let p=o(m=>{l.current(m)},"handleData");return u.on?.("data",p),()=>{if(u.off?.("data",p),r&&c&&d===!1)try{a(!1)}catch{}}},[i,s,n,r,c,a])}o(Qd,"useTerminalInput");import{jsx as xH}from"react/jsx-runtime";import{writeSync as IH}from"node:fs";import{useInsertionEffect as CH,useMemo as TH}from"react";import{onExit as vH}from"signal-exit";function bH(e,t,n){if(!("fd"in e)||typeof e.fd!="number"){t(n);return}try{IH(e.fd,n)}catch{t(n)}}o(bH,"writeExitSequence");var ox=o(({children:e,mouseTracking:t=!0,enabled:n=!0,clearOnEnter:r=!1})=>{let i=Cl(),{rows:s}=Tl(),a=vl(),c=TH(()=>n&&i.isTTY===!0,[n,i]);return CH(()=>{if(!c)return;let l=La(i);l?.setShellMode?.("virtual",t);let u=!1,d=o(()=>{u||(u=!0,l?.beginShellTransition?.("exit-alt-screen"),l?.clearTextSelection?.(),bH(i,a,hl({mouseTracking:t})),l?.setAltScreenActive?.(!1))},"restoreTerminal"),p=l?.registerTerminalExitGuard?.(d)??(()=>{}),m=vH(d,{alwaysLast:!0});return l?.beginShellTransition?.("enter-alt-screen"),a(Ch({mouseTracking:t,clearOnEnter:r})),l?.setAltScreenActive?.(!0,t),()=>{m();try{d()}finally{p()}}},[r,c,t,i,a]),xH(O,{flexDirection:"column",height:s,width:"100%",flexGrow:1,flexShrink:0,children:e})},"AlternateScreen");import{jsx as Is,jsxs as Yk}from"react/jsx-runtime";import{jsx as kH}from"react/jsx-runtime";import EH,{useEffect as Mh,useImperativeHandle as MH,useMemo as AH,useRef as Ah,useCallback as ef,useState as _H}from"react";function RH(e,t,n){return Math.max(t,Math.min(e,n))}o(RH,"clamp");function Zd(e){let t=Math.max(0,Math.floor(e.overscan??80)),n=Math.max(1,Math.floor(e.quantum??40)),r=Math.max(0,Math.floor(e.viewportHeight)),i=Math.max(0,Math.floor(e.contentHeight)),s=Math.max(0,i-r),a=RH(Math.floor(e.globalScrollTop),0,s),c=Math.floor(a/n),l=c*n,u=Math.max(0,l-t),d=Math.min(i,l+r+t),p=Math.max(0,d-u),m=a-u;return{blockTop:u,blockHeight:p,inBlockOffset:m,bin:c}}o(Zd,"computeOverscanWindow");function Kk(e,t,n){let r=Zd({...n,globalScrollTop:e}),i=Zd({...n,globalScrollTop:t});return r.bin===i.bin}o(Kk,"staysWithinOverscanBlock");function zk(e){let t=e??void 0;for(;t?.parentNode;)t=t.parentNode;return t&&typeof t.onRender=="function"?(t.onRender(),!0):!1}o(zk,"scheduleRenderFromNode");function qk(e){let t={...e,scrollHeight:Math.max(0,Math.floor(e.scrollHeight)),viewportHeight:Math.max(0,Math.floor(e.viewportHeight)),pendingDelta:Math.floor(e.pendingDelta)};return{...t,scrollTop:_h(t,t.scrollTop)}}o(qk,"normalizeScrollSnapshot");function Xk(e,t){return e.scrollTop===t.scrollTop&&e.scrollHeight===t.scrollHeight&&e.viewportHeight===t.viewportHeight&&e.pendingDelta===t.pendingDelta&&e.clampMin===t.clampMin&&e.clampMax===t.clampMax&&e.sticky===t.sticky&&e.overscanRows===t.overscanRows}o(Xk,"areSnapshotsEqual");function PH(e,t){return e.start===t.start&&e.end===t.end&&e.scrollTop===t.scrollTop&&e.scrollHeight===t.scrollHeight&&e.viewportHeight===t.viewportHeight&&e.viewportTop===t.viewportTop&&e.pendingDelta===t.pendingDelta&&e.sticky===t.sticky&&e.inWindowScrollTop===t.inWindowScrollTop}o(PH,"areWindowsEqual");function _h(e,t){let n=Math.max(0,e.scrollHeight-e.viewportHeight),r=e.clampMin??0,i=e.clampMax??n;return Math.max(r,Math.min(Math.floor(t),Math.min(n,i)))}o(_h,"clampScrollTop");function sx(e){let t=Math.max(0,e.viewportHeight),n=_h(e,e.scrollTop),r=Math.max(0,e.scrollHeight-n),i=Math.max(0,r-t),s=Math.max(0,Math.floor(e.overscanRows??0));if(s>0&&t>0){let a=Zd({globalScrollTop:i,viewportHeight:t,contentHeight:e.scrollHeight,overscan:s});return{start:a.blockTop,end:a.blockTop+a.blockHeight,scrollTop:n,scrollHeight:e.scrollHeight,viewportHeight:t,viewportTop:i,pendingDelta:e.pendingDelta,sticky:e.sticky,inWindowScrollTop:a.inBlockOffset}}return{start:i,end:r,scrollTop:n,scrollHeight:e.scrollHeight,viewportHeight:t,viewportTop:i,pendingDelta:e.pendingDelta,sticky:e.sticky,inWindowScrollTop:0}}o(sx,"resolveScrollWindow");function LH(e){let t=_h(e,e.scrollTop);return Math.max(0,e.scrollHeight-e.viewportHeight-t)}o(LH,"resolveNativeScrollTop");var ax=o(({children:e,width:t,flexGrow:n=0,flexShrink:r=1,paddingTop:i=0,scrollTop:s=0,scrollHeight:a=0,viewportHeight:c=0,stickyScroll:l=!0,scrollRef:u,onScrollTopChange:d,onStickyChange:p,onWindowChange:m,renderWindow:h,overscanRows:g})=>{let S=Ah(null),T=Ah(new Set),x=Ah(qk({scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,sticky:l,overscanRows:g})),[I,v]=_H(()=>sx(x.current)),k=Ah(null),_=ef(()=>{for(let ee of T.current)ee()},[]),H=ef((ee,ie=!0)=>{let C=x.current,Te=qk(ee),Fe=sx(Te);return x.current=Te,v(Ce=>PH(Ce,Fe)?Ce:Fe),ie&&!Xk(C,Te)&&_(),{previous:C,snapshot:Te,window:Fe,changed:!Xk(C,Te)}},[_]),$=ef(ee=>{let ie=x.current,C=Math.max(0,Math.floor(ie.overscanRows??0)),Te=S.current;if(C<=0||!Te||ie.viewportHeight<=0)return!1;let Fe=Math.max(0,ie.scrollHeight-ie.viewportHeight),Ce=k.current??_h(ie,ie.scrollTop),X=Math.max(0,Math.min(Math.floor(Ce+ee),Fe)),re=X-Ce;if(X===Ce)return!0;let je=Math.max(0,ie.scrollHeight-ie.viewportHeight-Ce),Tt=Math.max(0,ie.scrollHeight-ie.viewportHeight-X),vt={viewportHeight:ie.viewportHeight,contentHeight:ie.scrollHeight,overscan:C};if(!Kk(je,Tt,vt))return!1;let De=Zd({...vt,globalScrollTop:Tt});return Te.scrollTop=Tt,Te.attributes&&(Te.attributes.inWindowScrollTop=De.inBlockOffset,Te.attributes.pendingScrollDelta=re),zk(Te)?(k.current=X,ie.sticky&&(x.current={...x.current,sticky:!1},p?.(!1)),_(),!0):!1},[_,p]),P=ef(ee=>{let ie=S.current;ie&&x.current.overscanRows&&(ie.scrollTop=ee.viewportTop)},[]);Mh(()=>{let ee=x.current,ie={scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,clampMin:ee.clampMin,clampMax:ee.clampMax,sticky:l,overscanRows:g},C=H(ie);C.previous.sticky!==l&&p?.(l),C.window.scrollTop!==s&&d?.(C.window.scrollTop)},[H,p,d,g,a,s,l,c]);let z=ef(()=>{let ee=S.current;if(!ee)return;k.current=null;let ie=typeof ee.scrollHeight=="number"?Math.max(0,Math.floor(ee.scrollHeight)):void 0,C=typeof ee.scrollViewportHeight=="number"?Math.max(0,Math.floor(ee.scrollViewportHeight)):void 0,Te=typeof ee.scrollViewportTop=="number"?Math.max(0,Math.floor(ee.scrollViewportTop)):void 0;if(ie===void 0||C===void 0||Te===void 0)return;let Fe=Math.max(0,ie-C-Te),Ce=H({...x.current,scrollTop:Fe,scrollHeight:ie,viewportHeight:C});Ce.changed&&Ce.window.scrollTop!==Ce.previous.scrollTop&&d?.(Ce.window.scrollTop)},[H,d]);Mh(()=>{z()},[z]);let J=AH(()=>({scrollTo(ee){k.current=null;let ie=H({...x.current,scrollTop:ee,pendingDelta:0,sticky:!1});ie.previous.sticky!==!1&&p?.(!1),P(ie.window),d?.(ie.window.scrollTop)},scrollBy(ee){if($(ee))return;let ie=k.current??x.current.scrollTop;k.current=null;let C=H({...x.current,scrollTop:ie+ee,pendingDelta:x.current.pendingDelta+Math.floor(ee),sticky:!1});C.previous.sticky!==!1&&p?.(!1),P(C.window),d?.(C.window.scrollTop)},scrollToElement(ee,ie=0){k.current=null;let C=H({...x.current,scrollTop:ee-ie,pendingDelta:0,sticky:!1});C.previous.sticky!==!1&&p?.(!1),P(C.window),d?.(C.window.scrollTop)},scrollToBottom(){k.current=null;let ee=H({...x.current,scrollTop:0,pendingDelta:0,sticky:!0});P(ee.window),d?.(ee.window.scrollTop),ee.previous.sticky!==!0&&p?.(!0)},getScrollTop(){return k.current??x.current.scrollTop},getPendingDelta(){return x.current.pendingDelta},getScrollHeight(){return S.current?.scrollHeight??x.current.scrollHeight},getViewportHeight(){return S.current?.scrollViewportHeight??I.viewportHeight},getViewportTop(){return S.current?.scrollViewportTop??I.viewportTop},isSticky(){return x.current.sticky},subscribe(ee){return T.current.add(ee),()=>{T.current.delete(ee)}},setClampBounds(ee,ie){k.current=null;let C=H({...x.current,clampMin:ee,clampMax:ie});P(C.window),C.window.scrollTop!==C.previous.scrollTop&&d?.(C.window.scrollTop)}}),[H,d,p,$,P]);MH(u,()=>J,[J]),Mh(()=>{m?.(I)},[m,I]),Mh(()=>{x.current.pendingDelta!==0&&(x.current={...x.current,pendingDelta:0})},[I]);let L=k.current!==null,W=L?{...x.current,scrollTop:k.current}:x.current,N=L?sx(W):I,q=h?h(N):e,B=Math.max(0,c+i),ae=LH(W);return EH.createElement("ink-box",{ref:S,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:n,flexShrink:r,width:t,height:B,paddingTop:i,overflowX:"visible",overflowY:"scroll"},scrollTop:ae,scrollHeight:x.current.scrollHeight,scrollViewportHeight:x.current.viewportHeight,scrollViewportTop:N.viewportTop,pendingScrollDelta:x.current.pendingDelta,virtualScrollWindowed:!!h,...x.current.overscanRows?{inWindowScrollTop:N.inWindowScrollTop}:{},...x.current.clampMin!==void 0?{scrollClampMin:x.current.clampMin}:{},...x.current.clampMax!==void 0?{scrollClampMax:x.current.clampMax}:{},...l?{stickyScroll:!0}:{}},kH(O,{flexDirection:"column",flexGrow:1,flexShrink:0,width:"100%",children:q}))},"ScrollBox");var OH=80;function tf(e){if(!(!e?.visible||!e.label))return e.hint?`${e.label}: ${e.hint}`:e.label}o(tf,"resolveFullscreenChromeSlotText");function Ph(e,t){if(!e)return 0;let n=Math.max(1,(typeof t=="number"?t:OH)-2);return Math.max(1,sr(e.split(`
|
|
38
|
-
`),n,0,0).visualLines.length)}o(Ph,"measureFullscreenChromeSlotRows");var
|
|
33
|
+
`;if(this.lastOutputHeight>=this.options.stdout.rows&&m){if(La.env.KODAX_FULLSCREEN_CELLDIFF!=="0"&&this.altScreenActive&&this.fullStaticOutput===""){let I=Mo(this.options.stdout);I&&this.writeStdout(Eo),this.applyCellFrame(a),I&&this.writeStdout(Ki),this.lastOutput=r,this.lastOutputToRender=g,this.lastOutputHeight=i;return}let T=Mo(this.options.stdout);T&&this.writeStdout(Eo);let x=this.fullStaticOutput+g;if(this.altScreenActive){let I=this.lastOutputHeight>0?wr.eraseLines(this.lastOutputHeight):"";this.writeStdout(I+x)}else this.writeStdout(wr.clearTerminal+this.fullStaticOutput+r);this.lastOutput=r,this.lastOutputToRender=this.altScreenActive?x:g,this.lastOutputHeight=i,this.invalidateCellFrame(),T&&this.writeStdout(Ki);return}let S=!u&&Mo(this.options.stdout);try{if(c?(S&&d(Eo),d(this.eraseInlineLiveBlock()+s),this.invalidateCellFrame(),this.applyCellFrame(a,p),S&&d(Ki)):!this.altScreenActive&&this.prevFrame&&this.prevFrame.screen.height!==a.screen.height&&this.lastOutputHeight>0&&i<=this.options.stdout.rows&&this.lastOutputHeight<this.options.stdout.rows?(S&&d(Eo),d(this.eraseInlineLiveBlock()),this.invalidateCellFrame(),this.applyCellFrame(a,p),S&&d(Ki)):this.applyCellFrame(a,p),a?.inputCursor){let T=ZS(a,!this.altScreenActive),x=T(a.cursor),I=T(a.inputCursor),v=QS(I.x-x.x,I.y-x.y);d(v),this.displayCursor=I}}finally{u&&this.flushCursorTxn(u)}this.lastOutput=r,this.lastOutputToRender=g,this.lastOutputHeight=i},"onRender");applyCellFrame=o((t,n=null)=>{let r={cellLogUpdate:this.cellLogUpdate,prevFrame:this.prevFrame,stdout:n??this.options.stdout},i=Mo(this.options.stdout),s={altScreen:this.altScreenActive,decstbmSafe:i,synchronized:n?!1:i,inlineBottomAnchored:!this.altScreenActive},a=this.withInternalStreamWrite(()=>rk(r,t,s));return this.prevFrame=r.prevFrame,a},"applyCellFrame");invalidateCellFrame=o(()=>{this.cellLogUpdate.reset(),this.prevFrame=Xd(this.options.stdout.rows??24,this.getTerminalWidth())},"invalidateCellFrame");eraseInlineLiveBlock=o(()=>this.lastOutputHeight>0?wr.eraseLines(this.lastOutputHeight):"","eraseInlineLiveBlock");commitInlineScrollback=o(({mode:t,text:n})=>{if(this.altScreenActive||this.isUnmounted)return;let r=[],i=o(c=>{c&&r.push(c)},"emit"),s={write:i};i(this.computeReturnToRestSeq());let a=t==="rebuild"?"\x1B[2J\x1B[3J\x1B[H":this.eraseInlineLiveBlock();i(a+(n??"")),this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.fullStaticOutput="",this.invalidateCellFrame();try{this.calculateLayout();let c={rows:this.options.stdout.rows??24,columns:this.getTerminalWidth()},{output:l,outputHeight:u,frame:d}=jS(this.rootNode,this.isScreenReaderEnabled,c);if(this.applyCellFrame(d,s),d?.inputCursor){let p=ZS(d,!this.altScreenActive),m=p(d.cursor),h=p(d.inputCursor),g=QS(h.x-m.x,h.y-m.y);i(g),this.displayCursor=h}this.lastOutput=l,this.lastOutputToRender=l,this.lastOutputHeight=u}finally{this.flushCursorTxn(r)}},"commitInlineScrollback");flushCursorTxn(t){let n=t.join("");if(!n)return;let r=Mo(this.options.stdout);this.writeStdout(r?Eo+n+Ki:n)}render(t){let n=Rk.createElement(ul.Provider,{value:{isScreenReaderEnabled:this.isScreenReaderEnabled}},Rk.createElement(vk,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,exitOnCtrlC:this.options.exitOnCtrlC,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,setCursorPosition:this.setCursorPosition,onExit:this.handleAppExit},t));this.options.concurrent?bo.updateContainer(n,this.container,null,bh):(bo.updateContainerSync(n,this.container,null,bh),bo.flushSyncWork())}computeReturnToRestSeq(){if(this.displayCursor&&this.prevFrame){let t=ZS(this.prevFrame,!this.altScreenActive)(this.prevFrame.cursor),n=QS(t.x-this.displayCursor.x,t.y-this.displayCursor.y);return this.displayCursor=null,n}return""}returnCursorToRest(){let t=this.computeReturnToRestSeq();t&&this.writeStdout(t)}writeToStdout(t){if(this.isUnmounted)return;if(this.options.debug){this.writeStdout(t+this.fullStaticOutput+this.lastOutput);return}if(_o){this.writeStdout(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.writeStdout(t),this.invalidateCellFrame();return}let n=Mo(this.options.stdout);n&&this.writeStdout(Eo),this.returnCursorToRest();let r=this.lastOutputHeight>0?wr.eraseLines(this.lastOutputHeight):"";this.writeStdout(r+t),this.restoreLastOutput(),this.invalidateCellFrame(),n&&this.writeStdout(Ki)}writeToStderr(t){if(this.isUnmounted)return;if(this.options.debug){this.writeStderr(t),this.writeStdout(this.fullStaticOutput+this.lastOutput);return}if(_o){this.writeStderr(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.writeStderr(t),this.invalidateCellFrame();return}let n=Mo(this.options.stdout);n&&this.writeStdout(Eo),this.returnCursorToRest();let r=this.lastOutputHeight>0?wr.eraseLines(this.lastOutputHeight):"";r.length>0&&this.writeStdout(r),this.writeStderr(t),this.restoreLastOutput(),this.invalidateCellFrame(),n&&this.writeStdout(Ki)}restoreTrackedTerminalMode(){if(!this.altScreenActive)return;let t=gl({mouseTracking:this.mouseTrackingActive});try{typeof this.options.stdout.fd=="number"?CB(this.options.stdout.fd,t):this.rawStdoutWrite(t)}finally{this.altScreenActive=!1,this.mouseTrackingActive=!1,this.shellTransitionPhase=void 0}}restoreManagedTerminal(){let t=[],n=this.terminalExitGuard;this.terminalExitGuard=void 0;try{n?.()}catch(r){t.push(r)}try{this.restoreTrackedTerminalMode()}catch(r){t.push(r)}if(t.length===1)throw t[0];if(t.length>1)throw new AggregateError(t,"Terminal restoration failed")}fenceRendererAfterUnmountFailure(){this.isUnmounted=!0,this.hasPendingThrottledRender=!1,typeof this.throttledOnRender?.cancel=="function"&&this.throttledOnRender.cancel()}unmount(t){try{this.unmountUnsafe(t)}catch(n){this.fenceRendererAfterUnmountFailure();try{this.restoreManagedTerminal()}catch(r){throw new AggregateError([n,r],"Renderer unmount and terminal restoration both failed")}throw n}this.restoreManagedTerminal()}unmountUnsafe(t){if(this.isUnmounted||this.isUnmounting)return;this.isUnmounting=!0,this.beforeExitHandler&&(La.off("beforeExit",this.beforeExitHandler),this.beforeExitHandler=void 0);let n=this.options.stdout,r=!n.destroyed&&!n.writableEnded&&(n.writable??!0);if(o(u=>{typeof u.flush=="function"&&(r?u.flush():typeof u.cancel=="function"&&u.cancel())},"settleThrottle")(this.throttledOnRender??{}),r&&(!this.throttledOnRender||!this.hasPendingThrottledRender&&this.fullStaticOutput==="")&&(this.calculateLayout(),this.onRender()),this.isUnmounted=!0,this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.restoreStreamWriteGuard=="function"&&(this.restoreStreamWriteGuard(),this.restoreStreamWriteGuard=void 0),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),this.cancelKittyDetection&&this.cancelKittyDetection(),r){if(this.kittyProtocolEnabled)try{this.writeStdout("\x1B[<u")}catch{}_o&&this.writeStdout(this.lastOutput+`
|
|
34
|
+
`)}this.kittyProtocolEnabled=!1,this.shellTransitionPhase=void 0,this.options.concurrent?bo.updateContainer(null,this.container,null,bh):(bo.updateContainerSync(null,this.container,null,bh),bo.flushSyncWork()),ik.delete(this.options.stdout);let{exitResult:s}=this,a=o(()=>{ex(t)?this.rejectExitPromise(t):this.resolveExitPromise(s)},"resolveOrReject"),c=t!==void 0&&!ex(t),l=n._writableState!==void 0||n.writableLength!==void 0;c?a():r&&l?this.writeStdout("",a):setImmediate(a)}async waitUntilExit(){return this.exitPromise||=new Promise((t,n)=>{this.resolveExitPromise=t,this.rejectExitPromise=n}),this.beforeExitHandler||(this.beforeExitHandler=()=>{this.unmount()},La.once("beforeExit",this.beforeExitHandler)),this.exitPromise}clear(){if(!_o&&!this.options.debug){this.returnCursorToRest();let t=this.altScreenActive?this.lastOutputHeight>0?wr.eraseLines(this.lastOutputHeight):"":this.eraseInlineLiveBlock();t.length>0&&this.writeStdout(t),this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.invalidateCellFrame()}}patchConsole(){this.options.debug||(this.restoreConsole=RB((t,n)=>{t==="stdout"&&this.writeToStdout(n),t==="stderr"&&(n.startsWith("The above error occurred")||this.writeToStderr(n))}))}initKittyKeyboard(){if(!this.options.kittyKeyboard)return;let t=this.options.kittyKeyboard,n=t.mode??"auto";if(n==="disabled"||!this.options.stdin.isTTY||!this.options.stdout.isTTY)return;let r=t.flags??["disambiguateEscapeCodes"];if(n==="enabled"){this.enableKittyProtocol(r);return}let i=La.env.TERM??"",s=La.env.TERM_PROGRAM??"",a="KITTY_WINDOW_ID"in La.env||i==="xterm-kitty"||s==="WezTerm"||s==="ghostty";!_o&&a&&this.confirmKittySupport(r)}confirmKittySupport(t){let{stdin:n}=this.options,r=[],i=o(()=>{this.cancelKittyDetection=void 0,clearTimeout(a),n.removeListener("data",s);let c=FB(r);r=[],c.length>0&&n.unshift(Buffer.from(c))},"cleanup"),s=o(c=>{let l=typeof c=="string"?Buffer.from(c):c;for(let u of l)r.push(u);HB(r)&&(i(),this.isUnmounted||this.enableKittyProtocol(t))},"onData");n.on("data",s);let a=setTimeout(i,200);this.cancelKittyDetection=i,this.writeStdout("\x1B[?u")}enableKittyProtocol(t){this.writeStdout(`\x1B[>${bk(t)}u`),this.kittyProtocolEnabled=!0}},Ek=WB;var Jd=class{static{o(this,"KodaXRenderer")}engineInstance;isConcurrent;constructor(t){this.engineInstance=new Ek(t),this.isConcurrent=this.engineInstance.isConcurrent}render=o(t=>{this.engineInstance.render(t)},"render");unmount=o(t=>{this.engineInstance.unmount(t)},"unmount");waitUntilExit=o(()=>this.engineInstance.waitUntilExit(),"waitUntilExit");clear=o(()=>{this.engineInstance.clear()},"clear");setAltScreenActive=o((t,n)=>{this.engineInstance.setAltScreenActive?.(t,n)},"setAltScreenActive");setShellMode=o((t,n)=>{this.engineInstance.setShellMode?.(t,n)},"setShellMode");beginShellTransition=o(t=>{this.engineInstance.beginShellTransition?.(t)},"beginShellTransition");clearTextSelection=o(()=>{this.engineInstance.clearTextSelection?.()},"clearTextSelection");registerTerminalExitGuard=o(t=>this.engineInstance.registerTerminalExitGuard?.(t)??(()=>{}),"registerTerminalExitGuard");commitInlineScrollback=o(t=>{this.engineInstance.commitInlineScrollback?.(t)},"commitInlineScrollback")};var Ss=null;function Ak(){if(Ss===-1)return null;if(Ss!==null)return Ss;let e=process.env.KODAX_RENDER_TRACE;if(!e||e==="0"||e==="false")return Ss=-1,null;let t=e==="1"||e==="true"?KB(GB(),`kodax-render-trace-${process.pid}.log`):e;try{return Ss=UB(t,"a"),Mk(Ss,`=== KODAX render trace pid=${process.pid} ${new Date().toISOString()} platform=${process.platform} node=${process.version} ===
|
|
35
|
+
`),Ss}catch{return Ss=-1,null}}o(Ak,"resolveTraceFd");function zB(e){let t=Ak();if(t!==null)try{Mk(t,e)}catch{}}o(zB,"traceLine");var Rh=new WeakMap,qB={isTTY:!1,columns:80,rows:24,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")},XB={isTTY:!1,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")},YB={isTTY:!1,isRaw:!1,on:o(()=>{},"on"),off:o(()=>{},"off"),pause:o(()=>{},"pause"),resume:o(()=>{},"resume"),setRawMode:o(()=>{},"setRawMode")};function JB(e={}){return e instanceof jB?{stdout:e}:e}o(JB,"getOptions");function QB(e,t,n){let r=Rh.get(e);return r?r.isConcurrent!==n&&console.warn(`Warning: render() was called with concurrent: ${n}, but the existing renderer for this stdout uses concurrent: ${r.isConcurrent}. The concurrent option only takes effect on the first render. Call unmount() first if you need to change the rendering mode.`):(r=t(),Rh.set(e,r)),r}o(QB,"getInstance");function Oa(e){return Rh.get(e)}o(Oa,"getRendererInstance");function tx(e,t){let n={stdout:qB,stdin:YB,stderr:XB,debug:!1,exitOnCtrlC:!0,patchConsole:!1,maxFps:30,concurrent:!1,...JB(t)};if(Ak()!==null){let s=n.stdout,a=s.write.bind(s),c=0,l=0;s.write=((m,...h)=>(c+=1,l+=typeof m=="string"?Buffer.byteLength(m,"utf8"):m?.length??0,a(m,...h)));let u=0,d=0,p=n.onRender;n.onRender=m=>{let h=VB.now(),g=u===0?0:h-u,S=s,T=S.columns??0,x=S.rows??0;return zB(`frame=${d} renderTime=${m.renderTime.toFixed(2)}ms interval=${g.toFixed(2)}ms writes=${c} bytes=${l} viewport=${T}x${x}
|
|
36
|
+
`),c=0,l=0,u=h,d+=1,p?.(m)}}let i=QB(n.stdout,()=>new Jd(n),n.concurrent??!1);return i.render(e),{rerender:i.render,unmount(){i.unmount()},waitUntilExit:i.waitUntilExit,cleanup:o(()=>{Rh.delete(n.stdout)},"cleanup"),clear:i.clear}}o(tx,"render");var _k=ri,Pk=yr,Lk=MS;import{Buffer as eH}from"node:buffer";var tH=/^(?:\x1b)([a-zA-Z0-9])$/,nH=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,$k={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"},Nk=[...Object.values($k),"backspace"],rH=o(e=>["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e),"isShiftKey"),iH=o(e=>["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e),"isCtrlKey"),Dk=/^\x1b\[(\d+)(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/,oH=/^\x1b\[(\d+);(\d+):(\d+)([A-Za-z~])$/,sH={A:"up",B:"down",C:"right",D:"left",E:"clear",F:"end",H:"home",P:"f1",Q:"f2",R:"f3",S:"f4"},aH={2:"insert",3:"delete",5:"pageup",6:"pagedown",7:"home",8:"end",11:"f1",12:"f2",13:"f3",14:"f4",15:"f5",17:"f6",18:"f7",19:"f8",20:"f9",21:"f10",23:"f11",24:"f12"},Ok={27:"escape",9:"tab",127:"delete",8:"backspace",57358:"capslock",57359:"scrolllock",57360:"numlock",57361:"printscreen",57362:"pause",57363:"menu",57376:"f13",57377:"f14",57378:"f15",57379:"f16",57380:"f17",57381:"f18",57382:"f19",57383:"f20",57384:"f21",57385:"f22",57386:"f23",57387:"f24"},Bk=o(e=>e>=0&&e<=1114111&&!(e>=55296&&e<=57343),"isValidCodepoint"),nx=o(e=>Bk(e)?String.fromCodePoint(e):"?","safeFromCodePoint");function Hk(e){return e===3?"release":e===2?"repeat":"press"}o(Hk,"resolveEventType");function Fk(e){return{ctrl:!!(e&Ao.ctrl),shift:!!(e&Ao.shift),meta:!!(e&Ao.meta),option:!!(e&Ao.alt),super:!!(e&Ao.super),hyper:!!(e&Ao.hyper),capsLock:!!(e&Ao.capsLock),numLock:!!(e&Ao.numLock)}}o(Fk,"parseKittyModifiers");function cH(e){let t=Dk.exec(e);if(!t)return null;let n=Number.parseInt(t[1],10),r=t[2]?Math.max(0,Number.parseInt(t[2],10)-1):0,i=t[3]?Number.parseInt(t[3],10):1,s=t[4];if(!Bk(n))return null;let a;s&&(a=s.split(":").map(u=>nx(Number.parseInt(u,10))).join(""));let c,l;return n===32?(c="space",l=!0):n===13?(c="return",l=!0):Ok[n]?(c=Ok[n],l=!1):n>=1&&n<=26?(c=String.fromCodePoint(n+96),l=!1):(c=nx(n).toLowerCase(),l=!0),l&&!a&&(a=nx(n)),{name:c,...Fk(r),eventType:Hk(i),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:l,text:a}}o(cH,"parseKittyKeypress");function lH(e){let t=oH.exec(e);if(!t)return null;let n=Number.parseInt(t[1],10),r=Math.max(0,Number.parseInt(t[2],10)-1),i=Number.parseInt(t[3],10),s=t[4],a=s==="~"?aH[n]:sH[s];return a?{name:a,...Fk(r),eventType:Hk(i),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:!1}:null}o(lH,"parseKittySpecialKey");var rx="\x1B[200~",uH="\x1B[201~";function dH(e){if(!e.startsWith(rx))return null;let t=e.indexOf(uH,rx.length);return t===-1?null:e.slice(rx.length,t)}o(dH,"extractBracketedPaste");function ix(e=""){let t=e,n;if(eH.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t="\x1B"+String(t)):t=String(t):t!==void 0&&typeof t!="string"?t=String(t):t||(t=""),typeof t=="string"){let a=dH(t);if(a!==null)return{name:"paste",ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,isPaste:!0,isPrintable:!1,text:a}}let r=cH(t);if(r)return r;let i=lH(t);if(i)return i;if(Dk.test(t))return{name:"",ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,isKittyProtocol:!0,isPrintable:!1};let s={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t};if(s.sequence=s.sequence||t||s.name,t==="\r"||t==="\x1B\r")s.raw=void 0,s.name="return",s.option=t.length===2;else if(t===`
|
|
37
|
+
`)s.name="enter";else if(t===" ")s.name="tab";else if(t==="\b"||t==="\x1B\b")s.name="backspace",s.meta=t.charAt(0)==="\x1B";else if(t==="\x7F"||t==="\x1B\x7F")s.name="delete",s.meta=t.charAt(0)==="\x1B";else if(t==="\x1B"||t==="\x1B\x1B")s.name="escape",s.meta=t.length===2;else if(t===" "||t==="\x1B ")s.name="space",s.meta=t.length===2;else if(t.length===1&&t<="")s.name=String.fromCharCode(t.charCodeAt(0)+97-1),s.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")s.name="number";else if(t.length===1&&t>="a"&&t<="z")s.name=t;else if(t.length===1&&t>="A"&&t<="Z")s.name=t.toLowerCase(),s.shift=!0;else if(n=tH.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(n[1]??"");else if(n=nH.exec(t)){let a=[...t];a[0]==="\x1B"&&a[1]==="\x1B"&&(s.option=!0);let c=[n[1],n[2],n[4],n[6]].filter(Boolean).join(""),l=Number(n[3]||n[5]||1)-1;s.ctrl=!!(l&4),s.meta=!!(l&10),s.shift=!!(l&1),s.code=c,s.name=$k[c]??"",s.shift=rH(c)||s.shift,s.ctrl=iH(c)||s.ctrl}return s}o(ix,"parseKeypress");var jk=new WeakSet,mH=50;function Eh(e){return{columns:e?.columns??80,rows:e?.rows??24}}o(Eh,"resolveTerminalSize");var xs=fH(null),ox={isTTY:!1,columns:80,rows:24,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")};var Gk={isTTY:!1,isRaw:!1,on:o(()=>{},"on"),off:o(()=>{},"off"),pause:o(()=>{},"pause"),resume:o(()=>{},"resume"),setRawMode:o(()=>{},"setRawMode")};function hH(e){for(let t of e)if(t.rawMode)return!0;return!1}o(hH,"hasRawModeSubscribers");function gH({stdin:e,setRawMode:t,isRawModeSupported:n,preserveRawModeOnDetach:r}){let i=new Set,s,a=!1,c=!1,l=o(m=>{for(let h of i)h.listener(m)},"handleData"),u=o(()=>{if(c){try{t(!1)}catch{}c=!1}},"disableRawModeIfOwned"),d=o(()=>{let m=s;m?.off?.("data",l),m&&c&&r?.()===!0?(jk.add(m),c=!1):u(),a&&(m?.unref?.(),a=!1),s=void 0},"detachInput"),p=o(()=>{if(s&&s!==e&&d(),!e||i.size===0){d();return}if(s!==e){let h=jk.delete(e)&&e.isRaw===!0;e.hasRef?.()!==!0&&typeof e.ref=="function"&&(e.ref(),a=!0),e.on?.("data",l),e.resume?.(),s=e,c=h}if(!(n&&hH(i))){u();return}if(e.isRaw===!1&&!c)try{t(!0),c=!0}catch{c=!1}},"syncInputOwnership");return{subscribe(m,h={}){let g={listener:m,rawMode:h.rawMode!==!1};return i.add(g),p(),()=>{i.delete(g),p()}},dispose(){i.clear(),d()}}}o(gH,"createTerminalInputController");var yH=o(({children:e,runtime:t})=>{let[n,r]=pH(()=>t.terminalSize);Sl(()=>{if(r(Eh(t.stdout)),typeof t.stdout?.on!="function"||typeof t.stdout?.off!="function")return;let c=o(()=>{r(Eh(t.stdout))},"handleResize");return t.stdout.on("resize",c),()=>{t.stdout.off?.("resize",c)}},[t.stdout]);let i=Vk(c=>typeof t.stdout?.write!="function"?!1:(t.stdout.write(c),!0),[t.stdout]),s=Wk(()=>gH({stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported,preserveRawModeOnDetach:t.preserveRawModeOnUnmount}),[t.stdin,t.isRawModeSupported,t.preserveRawModeOnUnmount,t.setRawMode]);Sl(()=>()=>{s.dispose()},[s]);let a=Wk(()=>({stdout:t.stdout,stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported,exit:t.exit,terminalSize:n,isTTY:t.stdout?.isTTY===!0,writeRaw:i,subscribeInput:s.subscribe}),[s.subscribe,t.exit,t.isRawModeSupported,t.setRawMode,t.stdin,t.stdout,s.subscribe,n,i]);return Uk(xs.Provider,{value:a,children:e})},"TuiRuntimeProvider");function wH(e){let t=e?.stdout??ox,n=e?.stdin??Gk,r=o(s=>{typeof n?.setRawMode=="function"&&n.setRawMode(s)},"setRawMode"),i;return{stdout:t,stdin:n,setRawMode:r,isRawModeSupported:typeof n?.setRawMode=="function",exit:o(()=>{i?.()},"exit"),terminalSize:Eh(t),isTTY:t?.isTTY===!0,writeRaw:o(s=>typeof t?.write!="function"?!1:(t.write(s),!0),"writeRaw"),preserveRawModeOnUnmount:e?.preserveRawModeOnUnmount??(()=>!1),subscribeInput:o(()=>()=>{},"subscribeInput"),attachExit(s){i=s}}}o(wH,"createRuntimeValue");function xl(e,t){let n=wH(t),r=tx(Uk(yH,{runtime:n,children:e}),t);return n.attachExit(r.unmount),r}o(xl,"render");var O=_k,M=Pk,Il=Lk;function SH(e){let t={upArrow:e.name==="up",downArrow:e.name==="down",leftArrow:e.name==="left",rightArrow:e.name==="right",pageDown:e.name==="pagedown",pageUp:e.name==="pageup",home:e.name==="home",end:e.name==="end",return:e.name==="return",escape:e.name==="escape",ctrl:e.ctrl,shift:e.shift,tab:e.name==="tab",backspace:e.name==="backspace",delete:e.name==="delete",meta:e.meta||e.name==="escape"||e.option===!0,super:e.super??!1,hyper:e.hyper??!1,capsLock:e.capsLock??!1,numLock:e.numLock??!1,eventType:e.eventType},n="";return e.isKittyProtocol?e.isPrintable?n=e.text??e.name:e.ctrl&&e.name.length===1&&(n=e.name):e.ctrl?n=e.name:n=e.sequence,!e.isKittyProtocol&&Nk.includes(e.name)&&(n=""),n.startsWith("\x1B")&&(n=n.slice(1)),n.length===1&&typeof n[0]=="string"&&/[A-Z]/.test(n[0])&&(t.shift=!0),{input:n,key:t}}o(SH,"createCompatKeypress");function Cl(e,t={}){let{isActive:n=!0}=t,r=kh(e),i=kh(null),s=kh(null);Sl(()=>{r.current=e},[e]),Sl(()=>{if(!n){i.current=null,s.current&&(clearTimeout(s.current),s.current=null);return}return i.current=Th(),()=>{i.current?.reset(),i.current=null,s.current&&(clearTimeout(s.current),s.current=null)}},[n]);let a=Vk(c=>{let{input:l,key:u}=SH(ix(c));r.current(l,u)},[]);Zd(c=>{if(!n)return;s.current&&(clearTimeout(s.current),s.current=null);let l=i.current,u=typeof c=="string"?c:c.toString("utf8"),d=l?.push(u)??[u];for(let p of d)a(p);u.length>0&&(s.current=setTimeout(()=>{let p=i.current?.flushPendingEscape();p&&a(p)},mH))},{isActive:n,rawMode:!0})}o(Cl,"useInput");function zi(){return{stdout:$a(xs)?.stdout??ox}}o(zi,"useStdout");function Qd(){let e=$a(xs),t=e?.stdin??Gk,n=e?.setRawMode??(r=>{typeof t?.setRawMode=="function"&&t.setRawMode(r)});return{stdin:t,setRawMode:n,isRawModeSupported:e?.isRawModeSupported??typeof t?.setRawMode=="function"}}o(Qd,"useStdin");function qi(){return{exit:$a(xs)?.exit??(()=>{})}}o(qi,"useApp");function Tl(){return $a(xs)?.stdout??ox}o(Tl,"useTerminalOutput");function vl(){let e=Tl();return $a(xs)?.terminalSize??Eh(e)}o(vl,"useTerminalSize");function bl(){let e=Tl();return $a(xs)?.writeRaw??(n=>typeof e?.write!="function"?!1:(e.write(n),!0))}o(bl,"useTerminalWrite");function Zd(e,t={}){let{isActive:n=!0,rawMode:r=!0}=t,i=$a(xs),{stdin:s,setRawMode:a,isRawModeSupported:c}=Qd(),l=kh(e);Sl(()=>{l.current=e},[e]),Sl(()=>{if(!n||!s)return;if(i)return i.subscribeInput(m=>{l.current(m)},{rawMode:r});let u=s,d=u.isRaw;r&&c&&d===!1&&a(!0);let p=o(m=>{l.current(m)},"handleData");return u.on?.("data",p),()=>{if(u.off?.("data",p),r&&c&&d===!1)try{a(!1)}catch{}}},[i,s,n,r,c,a])}o(Zd,"useTerminalInput");import{jsx as xH}from"react/jsx-runtime";import{writeSync as IH}from"node:fs";import{useInsertionEffect as CH,useMemo as TH}from"react";import{onExit as vH}from"signal-exit";function bH(e,t,n){if(!("fd"in e)||typeof e.fd!="number"){t(n);return}try{IH(e.fd,n)}catch{t(n)}}o(bH,"writeExitSequence");var sx=o(({children:e,mouseTracking:t=!0,enabled:n=!0,clearOnEnter:r=!1})=>{let i=Tl(),{rows:s}=vl(),a=bl(),c=TH(()=>n&&i.isTTY===!0,[n,i]);return CH(()=>{if(!c)return;let l=Oa(i);l?.setShellMode?.("virtual",t);let u=!1,d=o(()=>{u||(u=!0,l?.beginShellTransition?.("exit-alt-screen"),l?.clearTextSelection?.(),bH(i,a,gl({mouseTracking:t})),l?.setAltScreenActive?.(!1))},"restoreTerminal"),p=l?.registerTerminalExitGuard?.(d)??(()=>{}),m=vH(d,{alwaysLast:!0});return l?.beginShellTransition?.("enter-alt-screen"),a(Ch({mouseTracking:t,clearOnEnter:r})),l?.setAltScreenActive?.(!0,t),()=>{m();try{d()}finally{p()}}},[r,c,t,i,a]),xH(O,{flexDirection:"column",height:s,width:"100%",flexGrow:1,flexShrink:0,children:e})},"AlternateScreen");import{jsx as Is,jsxs as Yk}from"react/jsx-runtime";import{jsx as kH}from"react/jsx-runtime";import EH,{useEffect as Mh,useImperativeHandle as MH,useMemo as AH,useRef as Ah,useCallback as tf,useState as _H}from"react";function RH(e,t,n){return Math.max(t,Math.min(e,n))}o(RH,"clamp");function ef(e){let t=Math.max(0,Math.floor(e.overscan??80)),n=Math.max(1,Math.floor(e.quantum??40)),r=Math.max(0,Math.floor(e.viewportHeight)),i=Math.max(0,Math.floor(e.contentHeight)),s=Math.max(0,i-r),a=RH(Math.floor(e.globalScrollTop),0,s),c=Math.floor(a/n),l=c*n,u=Math.max(0,l-t),d=Math.min(i,l+r+t),p=Math.max(0,d-u),m=a-u;return{blockTop:u,blockHeight:p,inBlockOffset:m,bin:c}}o(ef,"computeOverscanWindow");function Kk(e,t,n){let r=ef({...n,globalScrollTop:e}),i=ef({...n,globalScrollTop:t});return r.bin===i.bin}o(Kk,"staysWithinOverscanBlock");function zk(e){let t=e??void 0;for(;t?.parentNode;)t=t.parentNode;return t&&typeof t.onRender=="function"?(t.onRender(),!0):!1}o(zk,"scheduleRenderFromNode");function qk(e){let t={...e,scrollHeight:Math.max(0,Math.floor(e.scrollHeight)),viewportHeight:Math.max(0,Math.floor(e.viewportHeight)),pendingDelta:Math.floor(e.pendingDelta)};return{...t,scrollTop:_h(t,t.scrollTop)}}o(qk,"normalizeScrollSnapshot");function Xk(e,t){return e.scrollTop===t.scrollTop&&e.scrollHeight===t.scrollHeight&&e.viewportHeight===t.viewportHeight&&e.pendingDelta===t.pendingDelta&&e.clampMin===t.clampMin&&e.clampMax===t.clampMax&&e.sticky===t.sticky&&e.overscanRows===t.overscanRows}o(Xk,"areSnapshotsEqual");function PH(e,t){return e.start===t.start&&e.end===t.end&&e.scrollTop===t.scrollTop&&e.scrollHeight===t.scrollHeight&&e.viewportHeight===t.viewportHeight&&e.viewportTop===t.viewportTop&&e.pendingDelta===t.pendingDelta&&e.sticky===t.sticky&&e.inWindowScrollTop===t.inWindowScrollTop}o(PH,"areWindowsEqual");function _h(e,t){let n=Math.max(0,e.scrollHeight-e.viewportHeight),r=e.clampMin??0,i=e.clampMax??n;return Math.max(r,Math.min(Math.floor(t),Math.min(n,i)))}o(_h,"clampScrollTop");function ax(e){let t=Math.max(0,e.viewportHeight),n=_h(e,e.scrollTop),r=Math.max(0,e.scrollHeight-n),i=Math.max(0,r-t),s=Math.max(0,Math.floor(e.overscanRows??0));if(s>0&&t>0){let a=ef({globalScrollTop:i,viewportHeight:t,contentHeight:e.scrollHeight,overscan:s});return{start:a.blockTop,end:a.blockTop+a.blockHeight,scrollTop:n,scrollHeight:e.scrollHeight,viewportHeight:t,viewportTop:i,pendingDelta:e.pendingDelta,sticky:e.sticky,inWindowScrollTop:a.inBlockOffset}}return{start:i,end:r,scrollTop:n,scrollHeight:e.scrollHeight,viewportHeight:t,viewportTop:i,pendingDelta:e.pendingDelta,sticky:e.sticky,inWindowScrollTop:0}}o(ax,"resolveScrollWindow");function LH(e){let t=_h(e,e.scrollTop);return Math.max(0,e.scrollHeight-e.viewportHeight-t)}o(LH,"resolveNativeScrollTop");var cx=o(({children:e,width:t,flexGrow:n=0,flexShrink:r=1,paddingTop:i=0,scrollTop:s=0,scrollHeight:a=0,viewportHeight:c=0,stickyScroll:l=!0,scrollRef:u,onScrollTopChange:d,onStickyChange:p,onWindowChange:m,renderWindow:h,overscanRows:g})=>{let S=Ah(null),T=Ah(new Set),x=Ah(qk({scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,sticky:l,overscanRows:g})),[I,v]=_H(()=>ax(x.current)),k=Ah(null),_=tf(()=>{for(let ee of T.current)ee()},[]),H=tf((ee,ie=!0)=>{let C=x.current,Te=qk(ee),Fe=ax(Te);return x.current=Te,v(Ce=>PH(Ce,Fe)?Ce:Fe),ie&&!Xk(C,Te)&&_(),{previous:C,snapshot:Te,window:Fe,changed:!Xk(C,Te)}},[_]),$=tf(ee=>{let ie=x.current,C=Math.max(0,Math.floor(ie.overscanRows??0)),Te=S.current;if(C<=0||!Te||ie.viewportHeight<=0)return!1;let Fe=Math.max(0,ie.scrollHeight-ie.viewportHeight),Ce=k.current??_h(ie,ie.scrollTop),X=Math.max(0,Math.min(Math.floor(Ce+ee),Fe)),re=X-Ce;if(X===Ce)return!0;let je=Math.max(0,ie.scrollHeight-ie.viewportHeight-Ce),Tt=Math.max(0,ie.scrollHeight-ie.viewportHeight-X),vt={viewportHeight:ie.viewportHeight,contentHeight:ie.scrollHeight,overscan:C};if(!Kk(je,Tt,vt))return!1;let De=ef({...vt,globalScrollTop:Tt});return Te.scrollTop=Tt,Te.attributes&&(Te.attributes.inWindowScrollTop=De.inBlockOffset,Te.attributes.pendingScrollDelta=re),zk(Te)?(k.current=X,ie.sticky&&(x.current={...x.current,sticky:!1},p?.(!1)),_(),!0):!1},[_,p]),P=tf(ee=>{let ie=S.current;ie&&x.current.overscanRows&&(ie.scrollTop=ee.viewportTop)},[]);Mh(()=>{let ee=x.current,ie={scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,clampMin:ee.clampMin,clampMax:ee.clampMax,sticky:l,overscanRows:g},C=H(ie);C.previous.sticky!==l&&p?.(l),C.window.scrollTop!==s&&d?.(C.window.scrollTop)},[H,p,d,g,a,s,l,c]);let z=tf(()=>{let ee=S.current;if(!ee)return;k.current=null;let ie=typeof ee.scrollHeight=="number"?Math.max(0,Math.floor(ee.scrollHeight)):void 0,C=typeof ee.scrollViewportHeight=="number"?Math.max(0,Math.floor(ee.scrollViewportHeight)):void 0,Te=typeof ee.scrollViewportTop=="number"?Math.max(0,Math.floor(ee.scrollViewportTop)):void 0;if(ie===void 0||C===void 0||Te===void 0)return;let Fe=Math.max(0,ie-C-Te),Ce=H({...x.current,scrollTop:Fe,scrollHeight:ie,viewportHeight:C});Ce.changed&&Ce.window.scrollTop!==Ce.previous.scrollTop&&d?.(Ce.window.scrollTop)},[H,d]);Mh(()=>{z()},[z]);let J=AH(()=>({scrollTo(ee){k.current=null;let ie=H({...x.current,scrollTop:ee,pendingDelta:0,sticky:!1});ie.previous.sticky!==!1&&p?.(!1),P(ie.window),d?.(ie.window.scrollTop)},scrollBy(ee){if($(ee))return;let ie=k.current??x.current.scrollTop;k.current=null;let C=H({...x.current,scrollTop:ie+ee,pendingDelta:x.current.pendingDelta+Math.floor(ee),sticky:!1});C.previous.sticky!==!1&&p?.(!1),P(C.window),d?.(C.window.scrollTop)},scrollToElement(ee,ie=0){k.current=null;let C=H({...x.current,scrollTop:ee-ie,pendingDelta:0,sticky:!1});C.previous.sticky!==!1&&p?.(!1),P(C.window),d?.(C.window.scrollTop)},scrollToBottom(){k.current=null;let ee=H({...x.current,scrollTop:0,pendingDelta:0,sticky:!0});P(ee.window),d?.(ee.window.scrollTop),ee.previous.sticky!==!0&&p?.(!0)},getScrollTop(){return k.current??x.current.scrollTop},getPendingDelta(){return x.current.pendingDelta},getScrollHeight(){return S.current?.scrollHeight??x.current.scrollHeight},getViewportHeight(){return S.current?.scrollViewportHeight??I.viewportHeight},getViewportTop(){return S.current?.scrollViewportTop??I.viewportTop},isSticky(){return x.current.sticky},subscribe(ee){return T.current.add(ee),()=>{T.current.delete(ee)}},setClampBounds(ee,ie){k.current=null;let C=H({...x.current,clampMin:ee,clampMax:ie});P(C.window),C.window.scrollTop!==C.previous.scrollTop&&d?.(C.window.scrollTop)}}),[H,d,p,$,P]);MH(u,()=>J,[J]),Mh(()=>{m?.(I)},[m,I]),Mh(()=>{x.current.pendingDelta!==0&&(x.current={...x.current,pendingDelta:0})},[I]);let L=k.current!==null,W=L?{...x.current,scrollTop:k.current}:x.current,N=L?ax(W):I,q=h?h(N):e,B=Math.max(0,c+i),ae=LH(W);return EH.createElement("ink-box",{ref:S,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:n,flexShrink:r,width:t,height:B,paddingTop:i,overflowX:"visible",overflowY:"scroll"},scrollTop:ae,scrollHeight:x.current.scrollHeight,scrollViewportHeight:x.current.viewportHeight,scrollViewportTop:N.viewportTop,pendingScrollDelta:x.current.pendingDelta,virtualScrollWindowed:!!h,...x.current.overscanRows?{inWindowScrollTop:N.inWindowScrollTop}:{},...x.current.clampMin!==void 0?{scrollClampMin:x.current.clampMin}:{},...x.current.clampMax!==void 0?{scrollClampMax:x.current.clampMax}:{},...l?{stickyScroll:!0}:{}},kH(O,{flexDirection:"column",flexGrow:1,flexShrink:0,width:"100%",children:q}))},"ScrollBox");var OH=80;function nf(e){if(!(!e?.visible||!e.label))return e.hint?`${e.label}: ${e.hint}`:e.label}o(nf,"resolveFullscreenChromeSlotText");function Ph(e,t){if(!e)return 0;let n=Math.max(1,(typeof t=="number"?t:OH)-2);return Math.max(1,sr(e.split(`
|
|
38
|
+
`),n,0,0).visualLines.length)}o(Ph,"measureFullscreenChromeSlotRows");var lx=o(({top:e,topRows:t=0,scrollable:n,renderScrollableWindow:r,bottom:i,overlay:s,stickyHeader:a,jumpToLatest:c,width:l,scrollTop:u=0,scrollHeight:d=0,viewportHeight:p=0,stickyScroll:m=!0,scrollRef:h,onScrollTopChange:g,onStickyChange:S,onWindowChange:T,overscanRows:x})=>{let I=o((J,L)=>L?Is(O,{paddingX:1,children:Is(M,{dimColor:J?.tone!=="accent",children:L})}):null,"renderChromeSlot"),v=nf(a),k=nf(c),_=Ph(v,l),H=I(a,v),$=s?null:I(c,k),P=Math.max(0,e?t:0),z=Math.max(0,p-_-P);return Yk(O,{flexDirection:"column",width:l,flexGrow:1,flexShrink:0,children:[e?Is(O,{flexDirection:"column",flexShrink:0,children:e}):null,Yk(O,{flexDirection:"column",flexGrow:1,overflowY:"hidden",children:[Is(cx,{width:l,flexGrow:1,flexShrink:1,paddingTop:_,scrollTop:u,scrollHeight:d,viewportHeight:z,stickyScroll:m,scrollRef:h,onScrollTopChange:g,onStickyChange:S,onWindowChange:T,renderWindow:r,overscanRows:x,children:n}),H?Is(O,{position:"absolute",top:0,left:0,right:0,flexDirection:"column",children:H}):null,$?Is(O,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:$}):null,s?Is(O,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:s}):null]}),Is(O,{flexDirection:"column",flexShrink:0,children:i})]})},"FullscreenLayout");import NH from"string-width";function DH(){return vl().columns}o(DH,"useTerminalWidth");var ux=o(({lines:e,cursorRow:t,cursorCol:n,prompt:r=">",placeholder:i="Type your message...",focus:s=!0,terminalFocused:a=!0,isPasting:c=!1,editingMode:l="idle",theme:u="dark",width:d})=>{let p=Lh(()=>ye(u),[u]),m=DH(),h=d??m,g=NH(r)+1,S=Lh(()=>{let _=Math.max(20,h-g);return sr(e,_,t,n)},[e,h,t,n,g]),T=Lh(()=>{if(!S)return null;let[_,H]=RS(S,[t,n]);return{row:_,col:H}},[S,t,n]),x=s&&a,I=c&&e.some(_=>_.length>0),v=S,k=T;return ii(O,{flexDirection:"column",borderStyle:"round",borderColor:p.colors.dim,borderTop:!0,borderBottom:!0,borderLeft:!1,borderRight:!1,width:d??"100%",children:[I?Sr(O,{children:Sr(M,{dimColor:!0,children:l==="pasting"?"Pasting input...":"Editing input..."})}):null,v.visualLines.length===0||v.visualLines.length===1&&v.visualLines[0]===""?ii(O,{children:[ii(M,{color:p.colors.primary,children:[r," "]}),x?ii($H,{children:[Sr(M,{internal_cursorAnchor:!0,backgroundColor:p.colors.primary,color:"#000000",children:" "}),Sr(M,{dimColor:!0,children:i})]}):Sr(M,{dimColor:!0,children:i})]}):v.visualLines.map((_,H)=>{let $=H===k.row,P=H===0?r:" ".repeat(g-1);if($&&x){let{before:z,current:J,after:L}=o0(_,k.col),W=J||" ";return ii(O,{children:[ii(M,{color:p.colors.primary,children:[P," "]}),Sr(M,{color:p.colors.text,children:z}),Sr(M,{internal_cursorAnchor:!0,backgroundColor:p.colors.primary,color:"#000000",children:W}),Sr(M,{color:p.colors.text,children:L})]},H)}return ii(O,{children:[ii(M,{color:p.colors.dim,children:[P," "]}),Sr(M,{color:p.colors.text,children:_})]},H)})]})},"TextInput"),BH=o(({value:e,cursorCol:t,prompt:n=">",placeholder:r,focus:i=!0,theme:s="dark"})=>{let a=Lh(()=>ye(s),[s]);if(!e)return ii(O,{children:[ii(M,{color:a.colors.primary,children:[n," "]}),r&&Sr(M,{dimColor:!0,children:r}),i&&Sr(M,{backgroundColor:a.colors.primary,color:"#000000",children:" "})]});let c=gr(e),l=c.slice(0,t).join(""),u=c[t]??" ",d=c.slice(t+1).join("");return ii(O,{children:[ii(M,{color:a.colors.primary,children:[n," "]}),Sr(M,{color:a.colors.text,children:l}),Sr(M,{backgroundColor:a.colors.primary,color:"#000000",children:u}),Sr(M,{color:a.colors.text,children:d})]})},"SingleLineTextInput");var dx={"[A":{name:"up"},"[B":{name:"down"},"[C":{name:"right"},"[D":{name:"left"},"[200~":{name:"paste_start"},"[201~":{name:"paste_end"},"[Z":{name:"tab",shift:!0},"[1;2A":{name:"up",shift:!0},"[1;2B":{name:"down",shift:!0},"[1;2C":{name:"right",shift:!0},"[1;2D":{name:"left",shift:!0},"[13;2u":{name:"return",shift:!0},"[13;3u":{name:"return",meta:!0},"[13;5u":{name:"return",ctrl:!0},"[H":{name:"home"},"[F":{name:"end"},"[1~":{name:"home"},"[4~":{name:"end"},"[7~":{name:"home"},"[8~":{name:"end"},"[2~":{name:"insert"},"[3~":{name:"delete"},"[5~":{name:"pageup"},"[6~":{name:"pagedown"},"[11~":{name:"f1"},"[12~":{name:"f2"},"[13~":{name:"f3"},"[14~":{name:"f4"},"[15~":{name:"f5"},"[17~":{name:"f6"},"[18~":{name:"f7"},"[19~":{name:"f8"},"[20~":{name:"f9"},"[21~":{name:"f10"},"[23~":{name:"f11"},"[24~":{name:"f12"},OP:{name:"f1"},OQ:{name:"f2"},OR:{name:"f3"},OS:{name:"f4"},OA:{name:"up"},OB:{name:"down"},OC:{name:"right"},OD:{name:"left"},OH:{name:"home"},OF:{name:"end"}},HH=/^\x1b\[([0-9]+);?([0-9]+)?([~A-Za-z])?/,FH=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/;function WH(e){switch(e&3){case 0:return"left";case 1:return"middle";case 2:return"right";default:return"unknown"}}o(WH,"parseMouseButton");function jH(e){return{shift:(e&1)!==0,alt:(e&2)!==0,ctrl:(e&4)!==0,meta:(e&8)!==0}}o(jH,"parseModifier");function Oh(e,t=!1){let n={name:"",sequence:e,ctrl:!1,meta:!1,shift:!1,insertable:!1,isPasted:!1};if(!e||e.length===0)return n;let r=e.match(FH);if(r){let[,i,s,a,c]=r,l=Number(i),u=Number(s),d=Number(a),p=l&28;return n.shift=(p&4)!==0,n.meta=(p&8)!==0,n.ctrl=(p&16)!==0,l===64?(n.name="wheelup",n.mouse={action:"wheel",button:"wheelup",row:d,column:u},n):l===65?(n.name="wheeldown",n.mouse={action:"wheel",button:"wheeldown",row:d,column:u},n):(n.name="mouse",n.mouse={action:c==="m"?"release":(l&32)!==0?"drag":"press",button:WH(l),row:d,column:u},n)}if(e===`\r
|
|
39
39
|
`)return n.name="newline",n;if(e==="\r")return n.name=t?"newline":"return",n;if(e===`
|
|
40
40
|
`)return n.name="newline",n;if(e===" ")return n.name="tab",n;if(e==="\b"||e==="\x7F")return n.name="backspace",n;if(e==="\x1B\b"||e==="\x1B\x7F")return n.name="backspace",n.meta=!0,n;if(e==="\x1B\r"||e===`\x1B
|
|
41
|
-
`)return n.name=e==="\x1B\r"?"return":"enter",n.shift=!0,n;if(e==="\x1B"||e==="\x1B\x1B")return n.name="escape",n.meta=e.length===2,n;if(e===" "||e==="\x1B ")return n.name="space",n.meta=e.length===2,n.insertable=!n.meta,n;if(e.length===1&&e.charCodeAt(0)<=26)return n.name=String.fromCharCode(e.charCodeAt(0)+96),n.ctrl=!0,n;if(e.length===1&&e>="0"&&e<="9"||e.length===1&&e>="a"&&e<="z")return n.name=e,n.insertable=!0,n;if(e.length===1&&e>="A"&&e<="Z")return n.name=e.toLowerCase(),n.shift=!0,n.insertable=!0,n;if(e.length===1&&e.charCodeAt(0)>=32)return n.name=e,n.insertable=!0,n;if(e.startsWith("\x1B")){let i=e.slice(1);if(i.length===1)return n.meta=!0,i>="a"&&i<="z"?(n.name=i,n.insertable=!0):i>="A"&&i<="Z"?(n.name=i.toLowerCase(),n.shift=!0,n.insertable=!0):i.charCodeAt(0)>=32&&(n.name=i,n.insertable=!0),n;let s=e.match(HH);if(s){let[,l,u,d]=s,p=d||"~",h=
|
|
41
|
+
`)return n.name=e==="\x1B\r"?"return":"enter",n.shift=!0,n;if(e==="\x1B"||e==="\x1B\x1B")return n.name="escape",n.meta=e.length===2,n;if(e===" "||e==="\x1B ")return n.name="space",n.meta=e.length===2,n.insertable=!n.meta,n;if(e.length===1&&e.charCodeAt(0)<=26)return n.name=String.fromCharCode(e.charCodeAt(0)+96),n.ctrl=!0,n;if(e.length===1&&e>="0"&&e<="9"||e.length===1&&e>="a"&&e<="z")return n.name=e,n.insertable=!0,n;if(e.length===1&&e>="A"&&e<="Z")return n.name=e.toLowerCase(),n.shift=!0,n.insertable=!0,n;if(e.length===1&&e.charCodeAt(0)>=32)return n.name=e,n.insertable=!0,n;if(e.startsWith("\x1B")){let i=e.slice(1);if(i.length===1)return n.meta=!0,i>="a"&&i<="z"?(n.name=i,n.insertable=!0):i>="A"&&i<="Z"?(n.name=i.toLowerCase(),n.shift=!0,n.insertable=!0):i.charCodeAt(0)>=32&&(n.name=i,n.insertable=!0),n;let s=e.match(HH);if(s){let[,l,u,d]=s,p=d||"~",h=dx[i];if(h)return Object.assign(n,h),n;let g="["+l+p+"]",S=dx[g];if(S&&S.name){if(n.name=S.name,u){let T=parseInt(u,10)-1,x=jH(T);Object.assign(n,x)}return n}}let c=dx[i];if(c)return Object.assign(n,c),n;if(e.startsWith("\x1B\x1B")){n.meta=!0;let l="\x1B"+e.slice(2),u=Oh(l);return n.name=u.name,n}}return n}o(Oh,"parseKeypress");var rf=class{static{o(this,"KeypressParser")}buffer="";listeners=[];flushing=!1;inBracketedPaste=!1;pasteAccumulator="";onKeypress(t){return this.listeners.push(t),()=>{let n=this.listeners.indexOf(t);n>=0&&this.listeners.splice(n,1)}}feed(t,n=!1){let r=typeof t=="string"?t:t.toString("utf8");this.buffer+=r,this.flushing=n,this.processBuffer()}processBuffer(){for(;this.buffer.length>0;){let t=this.extractNextSequence();if(!t){if(this.flushing&&this.buffer.length>0){let s=this.buffer;this.buffer="";let a=Oh(s,this.inBracketedPaste);this.emit(a)}break}let{sequence:n,remaining:r}=t;this.buffer=r;let i=Oh(n,this.inBracketedPaste);if(i.name==="paste_start"){this.inBracketedPaste=!0,this.pasteAccumulator="";continue}if(i.name==="paste_end"){this.inBracketedPaste=!1,this.flushPasteAccumulator();continue}this.emit(i)}}flushPasteAccumulator(){if(this.pasteAccumulator.length===0)return;let t={name:"paste",sequence:this.pasteAccumulator,ctrl:!1,meta:!1,shift:!1,insertable:!0,isPasted:!0};this.pasteAccumulator="";for(let n of this.listeners)n(t)}extractNextSequence(){if(this.buffer.length===0)return null;let t=this.buffer[0];if(t!=="\x1B")return t==="\r"&&this.buffer.length>=2&&this.buffer[1]===`
|
|
42
42
|
`?{sequence:this.buffer.slice(0,2),remaining:this.buffer.slice(2)}:{sequence:this.buffer[0],remaining:this.buffer.slice(1)};if(this.buffer.length===1)return this.flushing?{sequence:this.buffer,remaining:""}:null;let n=this.buffer[1];if(n!=="["&&n!=="O")return{sequence:this.buffer.slice(0,2),remaining:this.buffer.slice(2)};if(this.buffer.startsWith("\x1B[<")){let a=3;for(;a<this.buffer.length;){let c=this.buffer[a];if(!c)break;if(c>="0"&&c<="9"||c===";"||c==="<"){a++;continue}if(c==="M"||c==="m")return a++,{sequence:this.buffer.slice(0,a),remaining:this.buffer.slice(a)};break}return this.flushing?{sequence:this.buffer,remaining:""}:null}let r=2;for(;r<this.buffer.length;){let a=this.buffer[r];if(!a)break;if(a>="0"&&a<="9"||a===";"){r++;continue}if(a>="A"&&a<="Z"||a>="a"&&a<="z"||a==="~"){r++;break}break}let i=this.buffer[r-1];return i&&(i>="A"&&i<="Z"||i>="a"&&i<="z"||i==="~")?{sequence:this.buffer.slice(0,r),remaining:this.buffer.slice(r)}:this.flushing?{sequence:this.buffer.slice(0,r),remaining:this.buffer.slice(r)}:null}emit(t){if(this.inBracketedPaste){if(t.isPasted=!0,t.insertable){this.pasteAccumulator+=t.sequence;return}if(t.name==="newline"){this.pasteAccumulator+=`
|
|
43
|
-
`;return}return}for(let n of this.listeners)n(t)}clear(){this.buffer=""}};function Jk(e){return["up","down","left","right","home","end","insert","delete","pageup","pagedown","wheelup","wheeldown","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","tab","return","enter","backspace","escape"].includes(e.name)}o(Jk,"isFunctionKey");function UH(e){return e.ctrl||e.meta||Jk(e)?!1:e.sequence.length===1&&e.sequence.charCodeAt(0)>=32}o(UH,"isPrintable");function VH(e){let t=[];return e.ctrl&&t.push("Ctrl"),e.meta&&t.push("Alt"),e.shift&&t.push("Shift"),e.name?t.push(e.name.toUpperCase()):e.sequence&&t.push(e.sequence),t.join("+")}o(VH,"getKeyDisplayName");import GH,{createContext as KH,useContext as zH,useEffect as Qk,useCallback as qH,useRef as dx}from"react";var XH=50;function fx(){let e=new Map,t=null,n=o(()=>(t===null&&(t=[...e.keys()].sort((r,i)=>i-r)),t),"getSortedPriorities");return{register(r,i){return e.has(r)||e.set(r,[]),e.get(r).push(i),t=null,()=>{let s=e.get(r);if(!s)return;let a=s.indexOf(i);a>=0&&s.splice(a,1),s.length===0&&e.delete(r),t=null}},dispatch(r){let i=n();for(let s of i){let a=e.get(s);if(a)for(let c=a.length-1;c>=0;c-=1){let l=a[c];if(l&&l(r)===!0)return!0}}return!1},size(){let r=0;for(let i of e.values())r+=i.length;return r}}}o(fx,"createKeypressManager");var Zk=KH(null);function $h({children:e,enabled:t=!0}){let{stdout:n}=zi(),r=dx(fx()),i=dx(null),s=dx(null),a=qH(c=>{t&&r.current.dispatch(c)},[t]);return Qk(()=>{if(!t)return;n?.write?.("\x1B[?2004h");let c=new nf;i.current=c;let l=c.onKeypress(a);return()=>{s.current&&(clearTimeout(s.current),s.current=null),l(),i.current=null;try{n?.write?.("\x1B[?2004l")}catch{}}},[a,t,n]),Qd(c=>{t&&(s.current&&clearTimeout(s.current),i.current?.feed(c),c.length!==0&&(s.current=setTimeout(()=>{i.current?.feed("",!0)},XH)))},{isActive:t,rawMode:!0}),GH.createElement(Zk.Provider,{value:r.current},e)}o($h,"KeypressProvider");function px(){let e=zH(Zk);if(!e)throw new Error("useKeypressManager must be used within a KeypressProvider");return e}o(px,"useKeypressManager");function Wr(e,t,n=[]){let r=px(),i=typeof e=="function",s,a,c;if(i){s=e;let l=t??{};c=l.isActive??!0;let u=l.priority;a=typeof u=="boolean"?u?hr.High:hr.Normal:u??hr.Normal}else a=typeof e=="boolean"?e?hr.High:hr.Normal:e,s=t,c=!0;Qk(()=>c?r.register(a,s):void 0,[r,a,c,...i?[]:n])}o(Wr,"useKeypress");function oi(e){return t=>!(e.name!==void 0&&t.name!==e.name||e.ctrl!==void 0&&t.ctrl!==e.ctrl||e.meta!==void 0&&t.meta!==e.meta||e.shift!==void 0&&t.shift!==e.shift||e.sequence!==void 0&&t.sequence!==e.sequence||e.insertable!==void 0&&t.insertable!==e.insertable)}o(oi,"createKeyMatcher");var eE={isEnter:oi({name:"return"}),isEscape:oi({name:"escape"}),isCtrlC:oi({name:"c",ctrl:!0}),isCtrlD:oi({name:"d",ctrl:!0}),isUp:oi({name:"up"}),isDown:oi({name:"down"}),isLeft:oi({name:"left"}),isRight:oi({name:"right"}),isBackspace:oi({name:"backspace"}),isDelete:oi({name:"delete"}),isTab:oi({name:"tab"}),isShiftEnter:o(e=>e.name==="return"&&e.shift===!0,"isShiftEnter"),isCtrlEnter:o(e=>e.name==="return"&&e.ctrl===!0,"isCtrlEnter"),isInsertable:o(e=>e.insertable===!0&&!e.ctrl&&!e.meta,"isInsertable")};import{jsx as tF}from"react/jsx-runtime";import{useState as nF,useEffect as rE,useCallback as Cs,useMemo as iE,createContext as rF,useContext as oE}from"react";function YH(e,t){if(!e)return{matched:!0,score:0,highlights:[]};if(e.length>t.length)return{matched:!1,score:0,highlights:[]};let n=e.toLowerCase(),r=t.toLowerCase(),i=0,s=-1,a=[];for(let l=0;l<e.length;l++){let u=n[l];if(u===void 0)continue;let d=r.indexOf(u,s+1);if(d===-1)return{matched:!1,score:0,highlights:[]};d===s+1?i+=10:d===0?i+=5:i-=1,t[d]===e[l]&&(i+=2),a.push(d),s=d}let c=JH(t,a);return i+=c,{matched:!0,score:i,highlights:a}}o(YH,"fuzzyMatch");function JH(e,t){let n=0;for(let r of t)if(r===0)n+=3;else if(r>0){let i=e[r-1];(i===" "||i==="-"||i==="_")&&(n+=2)}return n}o(JH,"calculateWordBoundaryBonus");function QH(e,t){return e?t.toLowerCase().startsWith(e.toLowerCase()):!0}o(QH,"prefixMatch");function ZH(e,t){if(QH(e,t)){let i=e?Array.from({length:e.length},(s,a)=>a):[];return{matched:!0,score:100+e.length*10,highlights:i,isPrefix:!0}}return{...YH(e,t),isPrefix:!1}}o(ZH,"combinedMatch");function tE(e,t,n=0){return e?t.map(r=>{let i=ZH(e,r.text);return{...r,_fuzzyScore:i.matched?i.score:-1,_fuzzyHighlights:i.highlights}}).filter(r=>(r._fuzzyScore??-1)>=n).sort((r,i)=>{let s=(i._fuzzyScore??0)-(r._fuzzyScore??0);return s!==0?s:r.text.length-i.text.length}):t}o(tE,"sortCandidatesCombined");var eF={debounceDelay:100,minTriggerChars:1,maxCompletions:10,minScore:0},mx=class{static{o(this,"AutocompleteProvider")}completers;options;state;listeners=new Set;debounceTimer=null;lastInput="";lastCursorPos=0;constructor(t={}){this.options={...eF,...t},this.completers=[new sS(this.options.gitRoot),new TR(()=>this.options.hostArguments),new vR(async()=>await this.options.listHostCommands?.(this.options.gitRoot??this.options.cwd??process.cwd())??[]),new Vm(this.options.cwd)],this.state={visible:!1,selectedIndex:0,completions:[],loading:!1}}getOptions(){return{...this.options}}getState(){return{...this.state}}subscribe(t){return this.listeners.add(t),()=>this.listeners.delete(t)}updateOptions(t){let n=t.gitRoot!==void 0&&t.gitRoot!==this.options.gitRoot,r=t.cwd!==void 0&&t.cwd!==this.options.cwd;if(this.options={...this.options,...t},n&&this.completers.find(s=>s instanceof sS)?.setGitRoot(this.options.gitRoot),r){let i=this.completers.findIndex(s=>s instanceof Vm);i!==-1&&(this.completers[i]=new Vm(this.options.cwd))}}handleInput(t,n){if(this.lastInput=t,this.lastCursorPos=n,this.debounceTimer&&clearTimeout(this.debounceTimer),!this.shouldTrigger(t,n)){this.state.visible&&this.updateState({visible:!1,completions:[],selectedIndex:0});return}this.debounceTimer=setTimeout(()=>{this.fetchCompletions(t,n)},this.options.debounceDelay)}async fetchImmediate(t,n){return this.fetchCompletionsInternal(t,n)}selectPrevious(){if(!this.state.visible||this.state.completions.length===0)return;let t=this.state.selectedIndex>0?this.state.selectedIndex-1:this.state.completions.length-1;this.updateState({selectedIndex:t})}selectNext(){if(!this.state.visible||this.state.completions.length===0)return;let t=this.state.selectedIndex<this.state.completions.length-1?this.state.selectedIndex+1:0;this.updateState({selectedIndex:t})}getSelectedCompletion(){return!this.state.visible||this.state.completions.length===0?null:this.state.completions[this.state.selectedIndex]??null}acceptCompletion(){let t=this.getSelectedCompletion();return t?(this.updateState({visible:!1,completions:[],selectedIndex:0}),t.text):null}acceptCompletionWithType(){let t=this.getSelectedCompletion();return t?(this.updateState({visible:!1,completions:[],selectedIndex:0}),{text:t.text,type:t.type}):null}cancel(){this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.state.visible&&this.updateState({visible:!1,completions:[],selectedIndex:0})}shouldTrigger(t,n){if(t.length<this.options.minTriggerChars)return!1;let r=t.slice(0,n),s=aS(r)!==-1,a=r.lastIndexOf("@"),c=a===0||a>0&&/\s/.test(r[a-1]??"");return s||c}fetchCompletions(t,n){this.updateState({loading:!0}),this.fetchCompletionsInternal(t,n).then(r=>{this.lastInput!==t||this.lastCursorPos!==n||(r.length>0?this.updateState({visible:!0,completions:r.slice(0,this.options.maxCompletions),selectedIndex:0,loading:!1}):this.updateState({visible:!1,completions:[],selectedIndex:0,loading:!1}))}).catch(()=>{this.updateState({loading:!1})})}async fetchCompletionsInternal(t,n){let r=this.completers.filter(l=>l.canComplete(t,n));if(r.length===0)return[];let i=[];for(let l of r)try{let u=await l.getCompletions(t,n);i.push(...u)}catch(u){Ge({source:"repl:autocomplete",level:"error",message:"Completer failed; continuing with remaining completers.",detail:u})}let s=this.extractPattern(t,n),a=i.map((l,u)=>({_idx:u,text:l.type==="command"&&l.display.startsWith("/")?l.display.slice(1):l.display}));return tE(s,a,this.options.minScore).map(l=>i[l._idx]).filter(l=>l!==void 0)}extractPattern(t,n){let r=t.slice(0,n),i=aS(r);if(i!==-1){let c=r.slice(i),l=c.match(/^\/skill:(\S*)$/);if(l)return l[1]??"";let u=c.match(/^\/(\S*)$/);if(u)return u[1]??"";let d=c.split(/\s+/);return(d[d.length-1]??"").toLowerCase()}let s=r.lastIndexOf("@");if(s!==-1){let c=r.slice(s+1),l=c.lastIndexOf("/");return l===-1?c:c.slice(l+1)}let a=r.match(/(\S+)$/);return a?a[1]??"":""}updateState(t){this.state={...this.state,...t};for(let n of this.listeners)try{n(this.state)}catch(r){Ge({source:"repl:autocomplete",level:"error",message:"Listener failed during autocomplete state update.",detail:r})}}};function nE(e){return new mx(e)}o(nE,"createAutocompleteProvider");var hx=rF(null);function gx({children:e,cwd:t,gitRoot:n,listHostCommands:r}){let i=Nh({cwd:t,gitRoot:n,listHostCommands:r,enabled:!0});return tF(hx.Provider,{value:i,children:e})}o(gx,"AutocompleteContextProvider");function $a(){return oE(hx)}o($a,"useAutocompleteContext");function iF(e,t){let n={command:"command",file:"file",argument:"argument",skill:"skill"},r={command:"\u26A1",file:"\u{1F4C4}",argument:"\u2022",skill:"\u2605"};return{id:`autocomplete-${t}`,text:e.text,displayText:e.display,description:e.description,type:n[e.type]??"command",icon:r[e.type]??">"}}o(iF,"completionToSuggestion");function Nh(e={}){let t=oE(hx);return t&&!e.cwd&&!e.gitRoot?t:oF(e)}o(Nh,"useAutocomplete");function oF(e){let{cwd:t,gitRoot:n,listHostCommands:r,enabled:i=!0}=e,s=iE(()=>nE({cwd:t,gitRoot:n,listHostCommands:r,debounceDelay:100,minTriggerChars:1,maxCompletions:50}),[]);rE(()=>{s.updateOptions({cwd:t,gitRoot:n,listHostCommands:r})},[s,t,n,r]);let[a,c]=nF({visible:!1,selectedIndex:0,completions:[],loading:!1});rE(()=>s.subscribe(I=>{c(I)}),[s]);let l=iE(()=>a.completions.map((x,I)=>iF(x,I)),[a.completions]),u=Cs((x,I)=>{if(!i){s.cancel();return}s.handleInput(x,I)},[s,i]),d=Cs(()=>a.visible?s.acceptCompletionWithType():null,[s,a.visible]),p=Cs(()=>a.visible?s.acceptCompletionWithType():null,[s,a.visible]),m=Cs(()=>{a.visible&&s.selectPrevious()},[s,a.visible]),h=Cs(()=>{a.visible&&s.selectNext()},[s,a.visible]),g=Cs(()=>{a.visible&&s.cancel()},[s,a.visible]),S=Cs(()=>{s.cancel()},[s]),T=Cs(()=>s,[s]);return{state:a,suggestions:l,handleInput:u,handleTab:d,handleEnter:p,handleUp:m,handleDown:h,handleEscape:g,cancel:S,getProvider:T}}o(oF,"useAutocompleteImpl");import{useCallback as rf,useRef as sE}from"react";var si=[];function yx(e={}){let{maxSize:t=1e3,onSave:n}=e,r=sE(-1),i=sE(""),s=rf((d,p)=>{if(!d.trim())return;if(si[si.length-1]?.text!==d){let h={text:d,timestamp:Date.now(),...p?.pastedContents&&p.pastedContents.length>0?{pastedContents:[...p.pastedContents]}:{}};si.push(h),si.length>t&&si.splice(0,si.length-t),n?.(h)}r.current=-1,i.current=""},[t,n]),a=rf(()=>si.length===0?null:r.current===-1?(r.current=si.length-1,si[r.current]??null):r.current>0?(r.current--,si[r.current]??null):null,[]),c=rf(()=>r.current===-1?null:r.current<si.length-1?(r.current++,si[r.current]??null):(r.current=-1,{text:i.current,timestamp:Date.now()}),[]),l=rf(()=>{r.current=-1,i.current=""},[]),u=rf(d=>{r.current===-1&&(i.current=d)},[]);return{add:s,navigateUp:a,navigateDown:c,reset:l,saveTempInput:u}}o(yx,"useInputHistory");function xr(e,t,n){return gr(e).slice(t,n).join("")}o(xr,"sliceByCodePoints");var of=class{static{o(this,"TextBuffer")}_text="";_lines=[""];_cursor={row:0,col:0};_rememberedCol=0;_history=[];_historyIndex=-1;_maxHistory;constructor(t={}){this._maxHistory=t.maxHistory??100}get text(){return this._text}get lines(){return[...this._lines]}get cursor(){return{...this._cursor}}get lineCount(){return this._lines.length}get currentLine(){return this._lines[this._cursor.row]??""}get isEmpty(){return this._text.length===0}get currentLineVisualWidth(){return Ui(this.currentLine)}get visualCursor(){let t=this._lines[this._cursor.row]??"",n=xr(t,0,this._cursor.col);return{row:this._cursor.row,col:Ui(n)}}getCharWidthAtCursor(){let t=this._lines[this._cursor.row]??"",r=gr(t)[this._cursor.col];return r?To(r)?2:1:0}visualColToLogicalCol(t){let n=this._lines[this._cursor.row]??"",r=gr(n),i=0;for(let s=0;s<r.length;s++){let a=To(r[s])?2:1;if(i+a>t)return s;i+=a}return r.length}moveToVisualCol(t){this._cursor.col=this.visualColToLogicalCol(t),this._rememberedCol=this._cursor.col}setText(t){this._saveHistory(),this._setTextInternal(t),this._clampCursor()}replaceRange(t,n,r){this._saveHistory();let i=Math.max(0,Math.min(t,this._text.length)),s=Math.max(i,Math.min(n,this._text.length)),a=this._text.slice(0,i)+r+this._text.slice(s);this._setTextInternal(a),this.moveToAbsoluteOffset(i+r.length)}insert(t,n){if(this._saveHistory(),n?.paste){this._insertText(t);return}let r=t.split(`
|
|
43
|
+
`;return}return}for(let n of this.listeners)n(t)}clear(){this.buffer=""}};function Jk(e){return["up","down","left","right","home","end","insert","delete","pageup","pagedown","wheelup","wheeldown","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","tab","return","enter","backspace","escape"].includes(e.name)}o(Jk,"isFunctionKey");function UH(e){return e.ctrl||e.meta||Jk(e)?!1:e.sequence.length===1&&e.sequence.charCodeAt(0)>=32}o(UH,"isPrintable");function VH(e){let t=[];return e.ctrl&&t.push("Ctrl"),e.meta&&t.push("Alt"),e.shift&&t.push("Shift"),e.name?t.push(e.name.toUpperCase()):e.sequence&&t.push(e.sequence),t.join("+")}o(VH,"getKeyDisplayName");import GH,{createContext as KH,useContext as zH,useEffect as Qk,useCallback as qH,useRef as fx}from"react";var XH=50;function px(){let e=new Map,t=null,n=o(()=>(t===null&&(t=[...e.keys()].sort((r,i)=>i-r)),t),"getSortedPriorities");return{register(r,i){return e.has(r)||e.set(r,[]),e.get(r).push(i),t=null,()=>{let s=e.get(r);if(!s)return;let a=s.indexOf(i);a>=0&&s.splice(a,1),s.length===0&&e.delete(r),t=null}},dispatch(r){let i=n();for(let s of i){let a=e.get(s);if(a)for(let c=a.length-1;c>=0;c-=1){let l=a[c];if(l&&l(r)===!0)return!0}}return!1},size(){let r=0;for(let i of e.values())r+=i.length;return r}}}o(px,"createKeypressManager");var Zk=KH(null);function $h({children:e,enabled:t=!0}){let{stdout:n}=zi(),r=fx(px()),i=fx(null),s=fx(null),a=qH(c=>{t&&r.current.dispatch(c)},[t]);return Qk(()=>{if(!t)return;n?.write?.("\x1B[?2004h");let c=new rf;i.current=c;let l=c.onKeypress(a);return()=>{s.current&&(clearTimeout(s.current),s.current=null),l(),i.current=null;try{n?.write?.("\x1B[?2004l")}catch{}}},[a,t,n]),Zd(c=>{t&&(s.current&&clearTimeout(s.current),i.current?.feed(c),c.length!==0&&(s.current=setTimeout(()=>{i.current?.feed("",!0)},XH)))},{isActive:t,rawMode:!0}),GH.createElement(Zk.Provider,{value:r.current},e)}o($h,"KeypressProvider");function mx(){let e=zH(Zk);if(!e)throw new Error("useKeypressManager must be used within a KeypressProvider");return e}o(mx,"useKeypressManager");function Wr(e,t,n=[]){let r=mx(),i=typeof e=="function",s,a,c;if(i){s=e;let l=t??{};c=l.isActive??!0;let u=l.priority;a=typeof u=="boolean"?u?hr.High:hr.Normal:u??hr.Normal}else a=typeof e=="boolean"?e?hr.High:hr.Normal:e,s=t,c=!0;Qk(()=>c?r.register(a,s):void 0,[r,a,c,...i?[]:n])}o(Wr,"useKeypress");function oi(e){return t=>!(e.name!==void 0&&t.name!==e.name||e.ctrl!==void 0&&t.ctrl!==e.ctrl||e.meta!==void 0&&t.meta!==e.meta||e.shift!==void 0&&t.shift!==e.shift||e.sequence!==void 0&&t.sequence!==e.sequence||e.insertable!==void 0&&t.insertable!==e.insertable)}o(oi,"createKeyMatcher");var eE={isEnter:oi({name:"return"}),isEscape:oi({name:"escape"}),isCtrlC:oi({name:"c",ctrl:!0}),isCtrlD:oi({name:"d",ctrl:!0}),isUp:oi({name:"up"}),isDown:oi({name:"down"}),isLeft:oi({name:"left"}),isRight:oi({name:"right"}),isBackspace:oi({name:"backspace"}),isDelete:oi({name:"delete"}),isTab:oi({name:"tab"}),isShiftEnter:o(e=>e.name==="return"&&e.shift===!0,"isShiftEnter"),isCtrlEnter:o(e=>e.name==="return"&&e.ctrl===!0,"isCtrlEnter"),isInsertable:o(e=>e.insertable===!0&&!e.ctrl&&!e.meta,"isInsertable")};import{jsx as tF}from"react/jsx-runtime";import{useState as nF,useEffect as rE,useCallback as Cs,useMemo as iE,createContext as rF,useContext as oE}from"react";function YH(e,t){if(!e)return{matched:!0,score:0,highlights:[]};if(e.length>t.length)return{matched:!1,score:0,highlights:[]};let n=e.toLowerCase(),r=t.toLowerCase(),i=0,s=-1,a=[];for(let l=0;l<e.length;l++){let u=n[l];if(u===void 0)continue;let d=r.indexOf(u,s+1);if(d===-1)return{matched:!1,score:0,highlights:[]};d===s+1?i+=10:d===0?i+=5:i-=1,t[d]===e[l]&&(i+=2),a.push(d),s=d}let c=JH(t,a);return i+=c,{matched:!0,score:i,highlights:a}}o(YH,"fuzzyMatch");function JH(e,t){let n=0;for(let r of t)if(r===0)n+=3;else if(r>0){let i=e[r-1];(i===" "||i==="-"||i==="_")&&(n+=2)}return n}o(JH,"calculateWordBoundaryBonus");function QH(e,t){return e?t.toLowerCase().startsWith(e.toLowerCase()):!0}o(QH,"prefixMatch");function ZH(e,t){if(QH(e,t)){let i=e?Array.from({length:e.length},(s,a)=>a):[];return{matched:!0,score:100+e.length*10,highlights:i,isPrefix:!0}}return{...YH(e,t),isPrefix:!1}}o(ZH,"combinedMatch");function tE(e,t,n=0){return e?t.map(r=>{let i=ZH(e,r.text);return{...r,_fuzzyScore:i.matched?i.score:-1,_fuzzyHighlights:i.highlights}}).filter(r=>(r._fuzzyScore??-1)>=n).sort((r,i)=>{let s=(i._fuzzyScore??0)-(r._fuzzyScore??0);return s!==0?s:r.text.length-i.text.length}):t}o(tE,"sortCandidatesCombined");var eF={debounceDelay:100,minTriggerChars:1,maxCompletions:10,minScore:0},hx=class{static{o(this,"AutocompleteProvider")}completers;options;state;listeners=new Set;debounceTimer=null;lastInput="";lastCursorPos=0;constructor(t={}){this.options={...eF,...t},this.completers=[new aS(this.options.gitRoot),new TR(()=>this.options.hostArguments),new vR(async()=>await this.options.listHostCommands?.(this.options.gitRoot??this.options.cwd??process.cwd())??[]),new Vm(this.options.cwd)],this.state={visible:!1,selectedIndex:0,completions:[],loading:!1}}getOptions(){return{...this.options}}getState(){return{...this.state}}subscribe(t){return this.listeners.add(t),()=>this.listeners.delete(t)}updateOptions(t){let n=t.gitRoot!==void 0&&t.gitRoot!==this.options.gitRoot,r=t.cwd!==void 0&&t.cwd!==this.options.cwd;if(this.options={...this.options,...t},n&&this.completers.find(s=>s instanceof aS)?.setGitRoot(this.options.gitRoot),r){let i=this.completers.findIndex(s=>s instanceof Vm);i!==-1&&(this.completers[i]=new Vm(this.options.cwd))}}handleInput(t,n){if(this.lastInput=t,this.lastCursorPos=n,this.debounceTimer&&clearTimeout(this.debounceTimer),!this.shouldTrigger(t,n)){this.state.visible&&this.updateState({visible:!1,completions:[],selectedIndex:0});return}this.debounceTimer=setTimeout(()=>{this.fetchCompletions(t,n)},this.options.debounceDelay)}async fetchImmediate(t,n){return this.fetchCompletionsInternal(t,n)}selectPrevious(){if(!this.state.visible||this.state.completions.length===0)return;let t=this.state.selectedIndex>0?this.state.selectedIndex-1:this.state.completions.length-1;this.updateState({selectedIndex:t})}selectNext(){if(!this.state.visible||this.state.completions.length===0)return;let t=this.state.selectedIndex<this.state.completions.length-1?this.state.selectedIndex+1:0;this.updateState({selectedIndex:t})}getSelectedCompletion(){return!this.state.visible||this.state.completions.length===0?null:this.state.completions[this.state.selectedIndex]??null}acceptCompletion(){let t=this.getSelectedCompletion();return t?(this.updateState({visible:!1,completions:[],selectedIndex:0}),t.text):null}acceptCompletionWithType(){let t=this.getSelectedCompletion();return t?(this.updateState({visible:!1,completions:[],selectedIndex:0}),{text:t.text,type:t.type}):null}cancel(){this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.state.visible&&this.updateState({visible:!1,completions:[],selectedIndex:0})}shouldTrigger(t,n){if(t.length<this.options.minTriggerChars)return!1;let r=t.slice(0,n),s=cS(r)!==-1,a=r.lastIndexOf("@"),c=a===0||a>0&&/\s/.test(r[a-1]??"");return s||c}fetchCompletions(t,n){this.updateState({loading:!0}),this.fetchCompletionsInternal(t,n).then(r=>{this.lastInput!==t||this.lastCursorPos!==n||(r.length>0?this.updateState({visible:!0,completions:r.slice(0,this.options.maxCompletions),selectedIndex:0,loading:!1}):this.updateState({visible:!1,completions:[],selectedIndex:0,loading:!1}))}).catch(()=>{this.updateState({loading:!1})})}async fetchCompletionsInternal(t,n){let r=this.completers.filter(l=>l.canComplete(t,n));if(r.length===0)return[];let i=[];for(let l of r)try{let u=await l.getCompletions(t,n);i.push(...u)}catch(u){Ge({source:"repl:autocomplete",level:"error",message:"Completer failed; continuing with remaining completers.",detail:u})}let s=this.extractPattern(t,n),a=i.map((l,u)=>({_idx:u,text:l.type==="command"&&l.display.startsWith("/")?l.display.slice(1):l.display}));return tE(s,a,this.options.minScore).map(l=>i[l._idx]).filter(l=>l!==void 0)}extractPattern(t,n){let r=t.slice(0,n),i=cS(r);if(i!==-1){let c=r.slice(i),l=c.match(/^\/skill:(\S*)$/);if(l)return l[1]??"";let u=c.match(/^\/(\S*)$/);if(u)return u[1]??"";let d=c.split(/\s+/);return(d[d.length-1]??"").toLowerCase()}let s=r.lastIndexOf("@");if(s!==-1){let c=r.slice(s+1),l=c.lastIndexOf("/");return l===-1?c:c.slice(l+1)}let a=r.match(/(\S+)$/);return a?a[1]??"":""}updateState(t){this.state={...this.state,...t};for(let n of this.listeners)try{n(this.state)}catch(r){Ge({source:"repl:autocomplete",level:"error",message:"Listener failed during autocomplete state update.",detail:r})}}};function nE(e){return new hx(e)}o(nE,"createAutocompleteProvider");var gx=rF(null);function yx({children:e,cwd:t,gitRoot:n,listHostCommands:r}){let i=Nh({cwd:t,gitRoot:n,listHostCommands:r,enabled:!0});return tF(gx.Provider,{value:i,children:e})}o(yx,"AutocompleteContextProvider");function Na(){return oE(gx)}o(Na,"useAutocompleteContext");function iF(e,t){let n={command:"command",file:"file",argument:"argument",skill:"skill"},r={command:"\u26A1",file:"\u{1F4C4}",argument:"\u2022",skill:"\u2605"};return{id:`autocomplete-${t}`,text:e.text,displayText:e.display,description:e.description,type:n[e.type]??"command",icon:r[e.type]??">"}}o(iF,"completionToSuggestion");function Nh(e={}){let t=oE(gx);return t&&!e.cwd&&!e.gitRoot?t:oF(e)}o(Nh,"useAutocomplete");function oF(e){let{cwd:t,gitRoot:n,listHostCommands:r,enabled:i=!0}=e,s=iE(()=>nE({cwd:t,gitRoot:n,listHostCommands:r,debounceDelay:100,minTriggerChars:1,maxCompletions:50}),[]);rE(()=>{s.updateOptions({cwd:t,gitRoot:n,listHostCommands:r})},[s,t,n,r]);let[a,c]=nF({visible:!1,selectedIndex:0,completions:[],loading:!1});rE(()=>s.subscribe(I=>{c(I)}),[s]);let l=iE(()=>a.completions.map((x,I)=>iF(x,I)),[a.completions]),u=Cs((x,I)=>{if(!i){s.cancel();return}s.handleInput(x,I)},[s,i]),d=Cs(()=>a.visible?s.acceptCompletionWithType():null,[s,a.visible]),p=Cs(()=>a.visible?s.acceptCompletionWithType():null,[s,a.visible]),m=Cs(()=>{a.visible&&s.selectPrevious()},[s,a.visible]),h=Cs(()=>{a.visible&&s.selectNext()},[s,a.visible]),g=Cs(()=>{a.visible&&s.cancel()},[s,a.visible]),S=Cs(()=>{s.cancel()},[s]),T=Cs(()=>s,[s]);return{state:a,suggestions:l,handleInput:u,handleTab:d,handleEnter:p,handleUp:m,handleDown:h,handleEscape:g,cancel:S,getProvider:T}}o(oF,"useAutocompleteImpl");import{useCallback as of,useRef as sE}from"react";var si=[];function wx(e={}){let{maxSize:t=1e3,onSave:n}=e,r=sE(-1),i=sE(""),s=of((d,p)=>{if(!d.trim())return;if(si[si.length-1]?.text!==d){let h={text:d,timestamp:Date.now(),...p?.pastedContents&&p.pastedContents.length>0?{pastedContents:[...p.pastedContents]}:{}};si.push(h),si.length>t&&si.splice(0,si.length-t),n?.(h)}r.current=-1,i.current=""},[t,n]),a=of(()=>si.length===0?null:r.current===-1?(r.current=si.length-1,si[r.current]??null):r.current>0?(r.current--,si[r.current]??null):null,[]),c=of(()=>r.current===-1?null:r.current<si.length-1?(r.current++,si[r.current]??null):(r.current=-1,{text:i.current,timestamp:Date.now()}),[]),l=of(()=>{r.current=-1,i.current=""},[]),u=of(d=>{r.current===-1&&(i.current=d)},[]);return{add:s,navigateUp:a,navigateDown:c,reset:l,saveTempInput:u}}o(wx,"useInputHistory");function xr(e,t,n){return gr(e).slice(t,n).join("")}o(xr,"sliceByCodePoints");var sf=class{static{o(this,"TextBuffer")}_text="";_lines=[""];_cursor={row:0,col:0};_rememberedCol=0;_history=[];_historyIndex=-1;_maxHistory;constructor(t={}){this._maxHistory=t.maxHistory??100}get text(){return this._text}get lines(){return[...this._lines]}get cursor(){return{...this._cursor}}get lineCount(){return this._lines.length}get currentLine(){return this._lines[this._cursor.row]??""}get isEmpty(){return this._text.length===0}get currentLineVisualWidth(){return Ui(this.currentLine)}get visualCursor(){let t=this._lines[this._cursor.row]??"",n=xr(t,0,this._cursor.col);return{row:this._cursor.row,col:Ui(n)}}getCharWidthAtCursor(){let t=this._lines[this._cursor.row]??"",r=gr(t)[this._cursor.col];return r?vo(r)?2:1:0}visualColToLogicalCol(t){let n=this._lines[this._cursor.row]??"",r=gr(n),i=0;for(let s=0;s<r.length;s++){let a=vo(r[s])?2:1;if(i+a>t)return s;i+=a}return r.length}moveToVisualCol(t){this._cursor.col=this.visualColToLogicalCol(t),this._rememberedCol=this._cursor.col}setText(t){this._saveHistory(),this._setTextInternal(t),this._clampCursor()}replaceRange(t,n,r){this._saveHistory();let i=Math.max(0,Math.min(t,this._text.length)),s=Math.max(i,Math.min(n,this._text.length)),a=this._text.slice(0,i)+r+this._text.slice(s);this._setTextInternal(a),this.moveToAbsoluteOffset(i+r.length)}insert(t,n){if(this._saveHistory(),n?.paste){this._insertText(t);return}let r=t.split(`
|
|
44
44
|
`);for(let i=0;i<r.length;i++)i>0&&this._insertNewline(),this._insertText(r[i])}_insertText(t){let n=this._lines[this._cursor.row],r=xr(n,0,this._cursor.col),i=xr(n,this._cursor.col);this._lines[this._cursor.row]=r+t+i,this._cursor.col+=Hr(t),this._rememberedCol=this._cursor.col,this._updateText()}newline(){this._saveHistory(),this._insertNewline()}_insertNewline(){let t=this._lines[this._cursor.row],n=xr(t,0,this._cursor.col),r=xr(t,this._cursor.col);this._lines[this._cursor.row]=n,this._lines.splice(this._cursor.row+1,0,r),this._cursor.row++,this._cursor.col=0,this._rememberedCol=0,this._updateText()}backspace(){if(this._cursor.col>0){this._saveHistory();let t=this._lines[this._cursor.row],n=this._cursor.col-1,r=xr(t,0,n),i=xr(t,this._cursor.col);this._lines[this._cursor.row]=r+i,this._cursor.col=n,this._rememberedCol=this._cursor.col,this._updateText()}else if(this._cursor.row>0){this._saveHistory();let t=this._lines[this._cursor.row],n=this._lines[this._cursor.row-1];this._cursor.col=Hr(n),this._lines[this._cursor.row-1]=n+t,this._lines.splice(this._cursor.row,1),this._cursor.row--,this._rememberedCol=this._cursor.col,this._updateText()}}delete(){let t=this._lines[this._cursor.row];if(this._cursor.col<Hr(t)){this._saveHistory();let n=xr(t,0,this._cursor.col),r=xr(t,this._cursor.col+1);this._lines[this._cursor.row]=n+r,this._updateText()}else if(this._cursor.row<this._lines.length-1){this._saveHistory();let n=this._lines[this._cursor.row+1];this._lines[this._cursor.row]=t+n,this._lines.splice(this._cursor.row+1,1),this._updateText()}}move(t){switch(t){case"up":this._moveUp();break;case"down":this._moveDown();break;case"left":this._moveLeft();break;case"right":this._moveRight();break;case"home":this._moveHome();break;case"end":this._moveEnd();break}}_moveUp(){this._cursor.row>0&&(this._cursor.row--,this._clampColumn())}_moveDown(){this._cursor.row<this._lines.length-1&&(this._cursor.row++,this._clampColumn())}_moveLeft(){this._cursor.col>0?(this._cursor.col--,this._rememberedCol=this._cursor.col):this._cursor.row>0&&(this._cursor.row--,this._cursor.col=Hr(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col)}_moveRight(){let t=this._lines[this._cursor.row];this._cursor.col<Hr(t)?(this._cursor.col++,this._rememberedCol=this._cursor.col):this._cursor.row<this._lines.length-1&&(this._cursor.row++,this._cursor.col=0,this._rememberedCol=0)}_moveHome(){this._cursor.col=0,this._rememberedCol=0}_moveEnd(){this._cursor.col=Hr(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col}_clampColumn(){let t=this._lines[this._cursor.row],n=Hr(t);this._cursor.col=Math.min(this._rememberedCol,n)}_clampCursor(){this._cursor.row=Math.max(0,Math.min(this._cursor.row,this._lines.length-1)),this._cursor.col=Math.max(0,Math.min(this._cursor.col,Hr(this._lines[this._cursor.row]))),this._rememberedCol=this._cursor.col}killLineRight(){let t=this._lines[this._cursor.row];this._cursor.col<Hr(t)&&(this._saveHistory(),this._lines[this._cursor.row]=xr(t,0,this._cursor.col),this._updateText())}killLineLeft(){if(this._cursor.col>0){this._saveHistory();let t=this._lines[this._cursor.row];this._lines[this._cursor.row]=xr(t,this._cursor.col),this._cursor.col=0,this._rememberedCol=0,this._updateText()}}deleteWordLeft(){if(this._cursor.col===0)return;this._saveHistory();let t=this._lines[this._cursor.row],n=this._cursor.col-1,r=gr(t);for(;n>0&&/\s/.test(r[n]??"");)n--;for(;n>0&&!/\s/.test(r[n-1]??"");)n--;let i=xr(t,0,n),s=xr(t,this._cursor.col);this._lines[this._cursor.row]=i+s,this._cursor.col=n,this._rememberedCol=this._cursor.col,this._updateText()}_saveHistory(){this._history=this._history.slice(0,this._historyIndex+1),this._history.push(this._text),this._history.length>this._maxHistory&&this._history.shift(),this._historyIndex=this._history.length-1}undo(){return this._historyIndex>0?(this._historyIndex--,this._text=this._history[this._historyIndex]??"",this._lines=this._text.split(`
|
|
45
45
|
`),this._lines.length===0&&(this._lines=[""]),this._clampCursor(),!0):!1}redo(){return this._historyIndex<this._history.length-1?(this._historyIndex++,this._text=this._history[this._historyIndex]??"",this._lines=this._text.split(`
|
|
46
46
|
`),this._lines.length===0&&(this._lines=[""]),this._clampCursor(),!0):!1}_updateText(){this._text=this._lines.join(`
|
|
47
47
|
`)}_setTextInternal(t){this._text=t,this._lines=t.split(`
|
|
48
|
-
`),this._lines.length===0&&(this._lines=[""])}moveToAbsoluteOffset(t){let r=Math.max(0,Math.min(t,this._text.length));for(let i=0;i<this._lines.length;i++){let s=this._lines[i]??"",a=s.length;if(r<=a){this._cursor={row:i,col:Hr(s.slice(0,r))},this._rememberedCol=this._cursor.col;return}r-=a,i<this._lines.length-1&&(r-=1)}this.moveToEnd()}clear(){this._saveHistory(),this._text="",this._lines=[""],this._cursor={row:0,col:0},this._rememberedCol=0}getAbsoluteOffset(){let t=0;for(let r=0;r<this._cursor.row;r++)t+=(this._lines[r]?.length??0)+1;let n=this._lines[this._cursor.row]??"";return t+=xr(n,0,this._cursor.col).length,t}isLineContinuation(){return this._lines[this._cursor.row].endsWith("\\")}moveToEnd(){this._cursor.row=this._lines.length-1,this._cursor.col=Hr(this._lines[this._cursor.row]??""),this._rememberedCol=this._cursor.col}};import{useState as sF,useCallback as An,useRef as
|
|
49
|
-
`),isPasting:!1,editingMode:t?"typing":"idle"});r.current===null&&(r.current=new
|
|
48
|
+
`),this._lines.length===0&&(this._lines=[""])}moveToAbsoluteOffset(t){let r=Math.max(0,Math.min(t,this._text.length));for(let i=0;i<this._lines.length;i++){let s=this._lines[i]??"",a=s.length;if(r<=a){this._cursor={row:i,col:Hr(s.slice(0,r))},this._rememberedCol=this._cursor.col;return}r-=a,i<this._lines.length-1&&(r-=1)}this.moveToEnd()}clear(){this._saveHistory(),this._text="",this._lines=[""],this._cursor={row:0,col:0},this._rememberedCol=0}getAbsoluteOffset(){let t=0;for(let r=0;r<this._cursor.row;r++)t+=(this._lines[r]?.length??0)+1;let n=this._lines[this._cursor.row]??"";return t+=xr(n,0,this._cursor.col).length,t}isLineContinuation(){return this._lines[this._cursor.row].endsWith("\\")}moveToEnd(){this._cursor.row=this._lines.length-1,this._cursor.col=Hr(this._lines[this._cursor.row]??""),this._rememberedCol=this._cursor.col}};import{useState as sF,useCallback as An,useRef as Sx,useEffect as aF}from"react";function xx(e={}){let{initialValue:t="",onTextChange:n}=e,r=Sx(null),i=Sx(null),s=Sx(null),[a,c]=sF({text:t,cursor:{row:0,col:0},lines:t.split(`
|
|
49
|
+
`),isPasting:!1,editingMode:t?"typing":"idle"});r.current===null&&(r.current=new sf,t&&r.current.setText(t)),i.current===null&&(i.current=gR());let l=r.current,u=i.current,d=An(W=>{c(N=>({text:l.text,cursor:l.cursor,lines:l.lines,isPasting:W?.isPasting??N.isPasting,editingMode:W?.editingMode??N.editingMode})),n?.(l.text)},[l,n]),p=An(()=>{s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{c(W=>({...W,isPasting:!1,editingMode:W.text?"typing":"idle"})),s.current=null},120)},[]),m=An(W=>{l.setText(W),d({isPasting:!1,editingMode:W?"typing":"idle"})},[l,d]),h=An((W,N,q)=>{l.replaceRange(W,N,q),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),g=An((W,N)=>{let q=N?.paste??!1;if(q&&mR(W)){let B=W.replace(/\r\n/g,`
|
|
50
50
|
`).replace(/\r/g,`
|
|
51
|
-
`),{placeholder:ae}=u.registerText(B);l.insert(ae,{paste:!0}),d({isPasting:!0,editingMode:"pasting"}),p();return}l.insert(W,{paste:!1}),d({isPasting:q,editingMode:q?"pasting":"typing"}),q&&p()},[l,u,p,d]),S=An(()=>{l.newline(),d({isPasting:!1,editingMode:"typing"})},[l,d]),T=An(()=>{let W=l.getAbsoluteOffset(),N=jm(l.text,W);N?l.replaceRange(N.start,N.end,""):l.backspace(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),x=An(()=>{let W=l.getAbsoluteOffset(),N=Um(l.text,W);N?l.replaceRange(N.start,N.end,""):l.delete(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),I=An(W=>{l.move(W),d()},[l,d]),v=An(()=>{l.clear(),d({isPasting:!1,editingMode:"idle"})},[l,d]),k=An(()=>{let W=l.undo();return W&&d(),W},[l,d]),_=An(()=>{let W=l.redo();return W&&d(),W},[l,d]),H=An(()=>{l.moveToEnd(),d()},[l,d]),$=An(W=>{l.moveToAbsoluteOffset(W),d()},[l,d]),P=An(()=>{l.killLineRight(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),z=An(()=>{l.killLineLeft(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),J=An(()=>{l.deleteWordLeft(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),L=An(()=>{s.current&&(clearTimeout(s.current),s.current=null),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]);return aF(()=>()=>{s.current&&clearTimeout(s.current),r.current=null},[]),{buffer:l,text:a.text,cursor:a.cursor,lines:a.lines,isPasting:a.isPasting,editingMode:a.editingMode,pasteStore:u,resetTransientState:L,setText:m,replaceRange:h,insert:g,newline:S,backspace:T,delete:x,move:I,moveToEnd:H,moveToOffset:$,killLineRight:P,killLineLeft:z,deleteWordLeft:J,clear:v,undo:k,redo:_}}o(Sx,"useTextBuffer");import{jsx as Na,jsxs as Hh}from"react/jsx-runtime";import{useState as fE}from"react";import{useCallback as bl,useEffect as Bh,useRef as Xi}from"react";function aE(e,t,n){let r=Math.max(0,Math.min(t,e.length)),i=e.slice(0,r);if(n.type==="command"||n.type==="skill"){let a=i.lastIndexOf("/");return{start:a===-1?0:a,end:r,replacement:n.text}}if(n.type==="argument"){let a=i.match(/\S+$/);if(a){let c=a[0],l=r-c.length;if(c.startsWith("/")&&i.lastIndexOf("/")===l)return{start:r,end:r,replacement:` ${n.text}`}}return{start:a?r-a[0].length:r,end:r,replacement:n.text}}let s=i.lastIndexOf("@");return{start:s===-1?0:s,end:r,replacement:n.text}}o(aE,"buildAutocompleteReplacement");import{readFile as pF}from"node:fs/promises";var mF=/\.(png|jpe?g|gif|webp|bmp)$/i;async function xx(e){if(e.length===0)return process.platform==="darwin"?cE():{kind:"text",text:""};let t=Dh(e);return t.length>0?hF(t,e):{kind:"text",text:e}}o(xx,"handleBracketedPaste");async function Ix(){return cE()}o(Ix,"triggerExplicitClipboardImage");async function cE(){let e;try{e=await pm()}catch(t){return{kind:"error",message:`Failed to read clipboard image: ${Cx(t)}`}}return e?lE(e):{kind:"noop"}}o(cE,"readClipboardAsImagesOutcome");async function hF(e,t){let n=[],r=[];for(let i of e){let s;try{s=await pF(i)}catch(c){r.push(`Failed to read ${i}: ${Cx(c)}`);continue}let a=await lE(s);a.kind==="images"?n.push(...a.blocks):a.kind==="error"&&r.push(a.message)}return n.length===0?r.length>0?{kind:"error",message:r.join("; ")}:{kind:"text",text:t}:{kind:"images",blocks:n}}o(hF,"readImagePathsAsOutcome");async function lE(e){try{let t=await fm(e);return{kind:"images",blocks:[await mm(t)]}}catch(t){return t instanceof dm?{kind:"error",message:t.message}:{kind:"error",message:`Failed to process pasted image: ${Cx(t)}`}}}o(lE,"decodeBufferToOutcome");function Dh(e){return e.split(/ (?=\/|[A-Za-z]:\\)/).filter(n=>mF.test(n.trim()))}o(Dh,"extractImagePaths");function Cx(e){return e instanceof Error?e.message:String(e)}o(Cx,"describeError");function sf(e,t){Ge({source:"repl:prompt-input",level:"warn",message:e,...t!==void 0?{detail:t}:{}})}o(sf,"reportPromptInputDiagnostic");var yF=500;function uE(e,t,n){return n==="up"?e===0:e>=Math.max(0,t-1)}o(uE,"shouldUseHistoryNavigation");function wF(e){return e.isAutocompleteVisible?"cancel-autocomplete":e.hasText?e.timeSinceLastEscapeMs<yF?"clear-input":"arm-clear":"pass-through"}o(wF,"resolvePromptEscapeBehavior");function SF(e){return e.keyName==="newline"||e.keyName==="return"&&(e.ctrl||e.shift)||e.isPasting?"newline":e.isAutocompleteVisible?"accept-completion-and-submit":e.isLineContinuation?"line-continuation":"submit"}o(SF,"resolvePromptEnterBehavior");function xF(e){if(e.meta&&e.name==="backspace")return"delete-word-left";if(e.ctrl)switch(e.name){case"a":return"move-home";case"e":return"move-end";case"z":return"undo";case"y":return"redo";case"k":return"kill-line-right";case"u":return"kill-line-left";case"w":return"delete-word-left";default:return}}o(xF,"resolvePromptEditingCommand");function dE({onSubmit:e,onExit:t,focus:n=!0,initialValue:r="",cwd:i,gitRoot:s,sessionId:a,autocompleteEnabled:c=!0,onInputChange:l,onPasteFallback:u,onHistoryRecall:d,onPopPendingInputs:p}){let m=Xi(0),h=Xi(0),g=Xi(new Map),S=Xi(new Set),T=Xi(a),x=Xi(!0);Bh(()=>(x.current=!0,()=>{x.current=!1}),[]),T.current!==a&&(T.current=a,h.current+=1);let{add:I,navigateUp:v,navigateDown:k,reset:_,saveTempInput:H}=yx(),{buffer:$,text:P,cursor:z,lines:J,isPasting:L,editingMode:W,pasteStore:N,resetTransientState:q,setText:B,replaceRange:ae,clear:ee,move:ie,moveToOffset:C,insert:Te,backspace:Fe,newline:Ce,delete:X,undo:re,redo:je,killLineRight:Tt,killLineLeft:vt,deleteWordLeft:De}=Sx({initialValue:r,onTextChange:l}),Ee=Xi(P);Ee.current!==P&&(Ee.current=P,h.current+=1);let ce=Xi(0);Bh(()=>{if(L)return;if(P.length<=1e4){ce.current=0;return}if(P.length===ce.current)return;let we=N.peekNextId(),{truncatedText:Ye,placeholderContent:Xt}=hR(P,we);Xt&&(N.registerTruncatedText(Xt),ce.current=Ye.length,B(Ye))},[P,L,N,B]);let oe=$a(),Me=Nh({cwd:i,gitRoot:s,enabled:c}),{state:Ae,suggestions:ze,handleInput:ft,handleTab:Vt,handleEnter:Ze,handleUp:Lt,handleDown:pt,handleEscape:rt}=oe??Me;Bh(()=>{n||(m.current=0,q(),Ae.visible&&rt())},[Ae.visible,n,rt,q]);let tt=Xi(P);Bh(()=>{c&&P!==tt.current&&(tt.current=P,ft(P,$.getAbsoluteOffset()))},[c,$,ft,P]);let io=bl(we=>{if(!we?.text)return;let Ye=aE(P,$.getAbsoluteOffset(),we),Xt=P.slice(0,Ye.start)+Ye.replacement+P.slice(Ye.end);return ae(Ye.start,Ye.end,Ye.replacement),Xt},[$,ae,P]),Er=bl(we=>{let Ye=we??P;if(!Ye.trim())return;let Xt=N.expand(Ye),ut=new Set,bt=/\[(Pasted text|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;for(let Gt of Ye.matchAll(bt)){let qr=Number.parseInt(Gt[2]??"0",10);Number.isFinite(qr)&&qr>0&&ut.add(qr)}let Jn=[];for(let Gt of ut){let qr=N.get(Gt);qr&&Jn.push(qr)}I(Ye,{pastedContents:Jn}),e({displayText:Ye,fullText:Xt,pastedContents:Jn}),ee()},[I,ee,e,N,P]),kt=bl(we=>{if(we){if(we.pastedContents&&we.pastedContents.length>0){for(let Ye of we.pastedContents)N.adopt(Ye);d?.({text:we.text,pastedContents:[...we.pastedContents]})}B(we.text)}},[d,N,B]),mt=bl(async we=>{try{let Ye=await xx(we);if(Ye.kind==="images"){let Xt=Ye.blocks.map(ut=>`@${ut.path}`).join(" ");Te(`${Xt} `,{paste:!1})}else Ye.kind==="error"&&(sf(`Paste image handling failed: ${Ye.message}`),Te(we,{paste:!1}),u?.("Image paste failed; inserted as plain text."))}catch(Ye){sf("Paste image handling failed.",Ye)}},[Te,u]),li=Xi(!1),zr=bl(async()=>{if(!li.current){li.current=!0;try{let we=await Ix();if(we.kind==="images"){let Ye=we.blocks.map(Xt=>`@${Xt.path}`).join(" ");Te(`${Ye} `,{paste:!1})}else we.kind==="error"&&sf(`Clipboard image handling failed: ${we.message}`)}catch(we){sf("Clipboard image handling failed.",we)}finally{li.current=!1}}},[Te]),Ln=bl(we=>{if((we.name!=="up"||!S.current.has(a))&&(h.current+=1),!n)return!1;if(we.name==="v"&&(we.ctrl||we.meta))return zr(),!0;if(we.name==="paste"&&we.isPasted&&Dh(we.sequence).length>0)return mt(we.sequence),!0;let Ye=Ae.visible&&ze.length>0;if(we.name==="tab"&&Ye){let ut=Vt();return ut&&io(ut),!0}if(we.ctrl&&we.name==="c")return P.length>0?(ee(),_()):t?.(),!0;if(we.name==="escape")switch(wF({isAutocompleteVisible:Ye,hasText:P.length>0,timeSinceLastEscapeMs:Date.now()-m.current})){case"cancel-autocomplete":return rt(),m.current=0,!0;case"clear-input":return m.current=0,ee(),_(),!0;case"arm-clear":return m.current=Date.now(),!0;default:return!1}if(we.name==="up"){if(Ye)return Lt(),!0;if(we.ctrl)return ie("up"),!0;if(P.length===0&&p){let ut=g.current.get(a);if(ut!==void 0)return g.current.delete(a),B(ut),!0;if(S.current.has(a))return!0;let bt=p();if(bt instanceof Promise){let Jn=h.current;return S.current.add(a),bt.then(Gt=>{if(S.current.delete(a),!x.current||Jn!==h.current||T.current!==a){Gt&&g.current.set(a,Gt);return}typeof Gt=="string"&&Gt.length>0?B(Gt):(H(P),kt(v()))},Gt=>{S.current.delete(a),sf("Queued input recall failed; the input may still run.",Gt)}),!0}if(typeof bt=="string"&&bt.length>0)return B(bt),!0}if(uE(z.row,J.length,"up")){H(P);let ut=v();kt(ut)}else ie("up");return!0}if(we.name==="down"){if(Ye)return pt(),!0;if(we.ctrl)return ie("down"),!0;if(uE(z.row,J.length,"down")){let ut=k();kt(ut)}else ie("down");return!0}if(we.name==="left"){let ut=$.getAbsoluteOffset(),bt=jm($.text,ut);return bt?C(bt.start):ie("left"),!0}if(we.name==="right"){let ut=$.getAbsoluteOffset(),bt=Um($.text,ut);return bt?C(bt.end):ie("right"),!0}if(we.name==="home")return ie("home"),!0;if(we.name==="end")return ie("end"),!0;let Xt=xF(we);if(Xt)switch(Xt){case"move-home":return ie("home"),!0;case"move-end":return ie("end"),!0;case"undo":return re(),!0;case"redo":return je(),!0;case"kill-line-right":return Tt(),!0;case"kill-line-left":return vt(),!0;case"delete-word-left":return De(),!0;default:break}if(we.name==="backspace")return Fe(),!0;if(we.name==="delete")return X(),!0;if(we.name==="return"||we.name==="newline")switch(SF({keyName:we.name,ctrl:we.ctrl,shift:we.shift,isAutocompleteVisible:Ye,isLineContinuation:!!J[z.row]?.endsWith("\\"),isPasting:L})){case"accept-completion-and-submit":{let bt=Ze();if(bt){let Jn=io(bt);Er(Jn)}else Er();return!0}case"newline":return Ce(),!0;case"line-continuation":return Fe(),Ce(),!0;default:return Er(),!0}return we.insertable&&!we.ctrl&&!we.meta?(Te(we.sequence,we.isPasted?{paste:!0}:void 0),!0):!1},[io,I,Ae.visible,Fe,$,ee,z.row,X,n,pt,rt,Lt,Ze,kt,Vt,mt,zr,J,vt,Tt,ie,C,k,v,Ce,t,p,a,je,_,H,B,Er,ze.length,P.length,De,L,re]);return{text:P,cursor:z,lines:J,isPasting:L,terminalFocused:n,editingMode:W,handleKey:Ln}}o(dE,"usePromptInputController");var Rl=o(({onSubmit:e,onHistoryRecall:t,onPopPendingInputs:n,placeholder:r="Type a message...",prompt:i=">",focus:s=!0,initialValue:a="",cwd:c,gitRoot:l,sessionId:u,autocompleteEnabled:d=!0,onInputChange:p,onPasteFallback:m})=>{let{exit:h}=qi(),{cursor:g,lines:S,handleKey:T,isPasting:x,terminalFocused:I,editingMode:v}=dE({onSubmit:e,onExit:h,focus:s,initialValue:a,cwd:c,gitRoot:l,sessionId:u,autocompleteEnabled:d,onInputChange:p,onPasteFallback:m,onHistoryRecall:t,onPopPendingInputs:n});return Wr(hr.High,k=>T(k),[T]),Na(O,{flexDirection:"column",children:Na(lx,{lines:S,cursorRow:g.row,cursorCol:g.col,prompt:i,placeholder:r,focus:s,terminalFocused:I,isPasting:x,editingMode:v,theme:"dark"})})},"InputPrompt"),IF=o(({onSubmit:e,placeholder:t,prompt:n=">"})=>{let[r,i]=fE(""),[s,a]=fE(0);Wr(hr.High,p=>{if(p.name==="return")return r.trim()&&(e(r),i(""),a(0)),!0;if(p.name==="backspace"&&s>0){let m=[...r].slice(0,s-1).join(""),h=[...r].slice(s).join("");return i(m+h),a(s-1),!0}if(p.name==="left"&&s>0)return a(s-1),!0;if(p.name==="right"&&s<[...r].length)return a(s+1),!0;if(p.insertable&&!p.ctrl&&!p.meta){let m=[...r].slice(0,s).join(""),h=[...r].slice(s).join("");return i(m+p.sequence+h),a(s+1),!0}return!1},[r,s,e]);let c=ye("dark");if(!r)return Hh(O,{children:[Hh(M,{color:c.colors.primary,children:[n," "]}),t&&Na(M,{dimColor:!0,children:t}),Na(M,{backgroundColor:c.colors.primary,color:"#000000",children:" "})]});let l=[...r].slice(0,s).join(""),u=[...r][s]??" ",d=[...r].slice(s+1).join("");return Hh(O,{children:[Hh(M,{color:c.colors.primary,children:[n," "]}),Na(M,{children:l}),Na(M,{backgroundColor:c.colors.primary,color:"#000000",children:u}),Na(M,{children:d})]})},"SimpleInputPrompt");import{jsx as qt,jsxs as Bn}from"react/jsx-runtime";import{useState as mE,useEffect as hE}from"react";var pE=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],CF=80,Fh=new Set,af=null;function TF(){let e=Array.from(Fh);for(let t of e)t()}o(TF,"dispatchSharedSpinnerTick");function vF(e){return Fh.add(e),af===null&&(af=setInterval(TF,CF)),()=>{Fh.delete(e),Fh.size===0&&af!==null&&(clearInterval(af),af=null)}}o(vF,"subscribeToSharedSpinnerClock");function cf(e=!0){let[t,n]=mE(0);return hE(()=>{if(e)return vF(()=>{n(r=>r+1)})},[e]),t}o(cf,"useSharedSpinnerTick");var Ir=o(({color:e,theme:t})=>{let n=t??ye("dark"),i=cf(!0)%pE.length,s=e??n.colors.accent;return qt(M,{color:s,children:pE[i]})},"Spinner");function bF(e){let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60;return n===0?`${r}m${i}s`:`${n}h${r}m${i}s`}o(bF,"formatElapsedDuration");var gE=o(({roundStartedAt:e,charCount:t,theme:n})=>{let r=n??ye("dark");if(cf(e!==null),e===null)return null;let i=RF(Date.now()-e,t);return qt(M,{color:r.colors.dim,wrap:"truncate",children:i})},"SpinnerStatsTail");function RF(e,t){let n=bF(e),r=or(t);return r>0?` (${n} \xB7 \u2193 ~${yn(r)} tokens)`:` (${n})`}o(RF,"buildSpinnerStatsText");var yE=o(({label:e,dotCount:t=3,theme:n})=>{let r=n??ye("dark"),[i,s]=mE(1);hE(()=>{let c=setInterval(()=>{s(l=>l%t+1)},300);return()=>clearInterval(c)},[t]);let a=".".repeat(i);return Bn(O,{children:[e&&qt(M,{color:r.colors.text,children:e}),qt(M,{color:r.colors.accent,children:a})]})},"DotsIndicator"),wE=o(({progress:e,label:t,width:n=20,theme:r})=>{let i=r??ye("dark"),s=Math.max(0,Math.min(100,e)),a=Math.round(s/100*n),c=n-a,l="\u2588".repeat(a),u="\u2591".repeat(c);return Bn(O,{flexDirection:"column",children:[t&&qt(O,{marginBottom:1,children:qt(M,{color:i.colors.text,children:t})}),Bn(O,{children:[qt(M,{color:i.colors.primary,children:l}),qt(M,{dimColor:!0,children:u}),Bn(M,{children:[" ",s,"%"]})]})]})},"ProgressIndicator"),kF=o(({message:e,showSpinner:t=!1,theme:n})=>{let r=n??ye("dark"),i=e??"Thinking";return Bn(O,{children:[t&&qt(O,{marginRight:1,children:qt(Ir,{theme:r})}),Bn(M,{color:r.colors.accent,children:[i,"\u2026"]})]})},"ThinkingIndicator"),EF=o(({message:e,subMessage:t,progress:n,type:r="spinner",compact:i=!1,theme:s})=>{let a=s??ye("dark"),c=e??"Loading";return i?Bn(O,{children:[qt(Ir,{theme:a}),Bn(M,{color:a.colors.text,children:[" ",c,"\u2026"]})]}):r==="bar"&&n!==void 0?Bn(O,{flexDirection:"column",children:[qt(wE,{progress:n,label:c,theme:a}),t&&qt(O,{marginTop:1,children:qt(M,{dimColor:!0,children:t})})]}):r==="dots"?Bn(O,{flexDirection:"column",children:[qt(yE,{label:c,theme:a}),t&&qt(O,{marginTop:1,children:qt(M,{dimColor:!0,children:t})})]}):r==="simple"?Bn(O,{flexDirection:"column",children:[Bn(M,{color:a.colors.accent,children:[c,"\u2026"]}),t&&qt(O,{marginTop:1,children:qt(M,{dimColor:!0,children:t})}),n!==void 0&&qt(O,{marginTop:1,children:Bn(M,{dimColor:!0,children:[n,"%"]})})]}):Bn(O,{flexDirection:"column",children:[Bn(O,{children:[qt(Ir,{theme:a}),Bn(M,{color:a.colors.text,children:[" ",c,"\u2026"]}),n!==void 0&&Bn(M,{dimColor:!0,children:[" (",n,"%)"]})]}),t&&qt(O,{marginTop:1,children:qt(M,{dimColor:!0,children:t})})]})},"LoadingIndicator");import{jsx as _e,jsxs as gt,Fragment as Ax}from"react/jsx-runtime";import{useEffect as qE,useMemo as Yi,memo as jr}from"react";var MF=/^(?:File (?:edited|created|updated|written)|Content inserted)/,AF=/^ \(/,Wh=/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/;function Tx(e){return e.startsWith("--- ")||e.startsWith("+++ ")||e==="---"||e==="+++"}o(Tx,"isFileHeaderLine");function SE(e,t={}){let n=t.maxRows??20,r=t.showAll??!1,i=[],s=[],a=[],c="scanning",l=null,u=null,d=o(v=>{let k=Wh.exec(v);k&&(l=Number(k[1]),u=Number(k[3]))},"applyHunk"),p=o(v=>{let k=v[0],_=v.length>1&&v[1]===" "?v.slice(2):v.slice(1);k==="-"?(a.push({kind:"remove",no:l,content:_}),l=l===null?null:l+1):k==="+"?(a.push({kind:"add",no:u,content:_}),u=u===null?null:u+1):(a.push({kind:"context",no:u,content:_}),l=l===null?null:l+1,u=u===null?null:u+1)},"pushBodyLine"),m=o(v=>{Wh.test(v)?d(v):Tx(v)||(v[0]==="+"||v[0]==="-"||v[0]===" "?p(v):v.trim()!==""&&(c="trailing",s.push(v)))},"processDiffLine");for(let v of e.split(/\r?\n/))switch(c){case"scanning":{MF.test(v)?c="preamble":Wh.test(v)||Tx(v)?c="diff":v.trim()!==""&&i.push(v);break}case"preamble":{if(AF.test(v)||v.trim()==="")break;Wh.test(v)||Tx(v)||v[0]==="+"||v[0]==="-"||v[0]===" "?(c="diff",m(v)):(c="trailing",v.trim()!==""&&s.push(v));break}case"diff":{m(v);break}case"trailing":{v.trim()!==""&&s.push(v);break}}if(!a.some(v=>v.kind!=="context"))return null;let g=a,S=0;r||(g.length>n&&(g=g.filter(v=>v.kind!=="context")),g.length>n&&(S=g.length-n,g=g.slice(0,n)));let T=s;!r&&s.length>10&&(S+=s.length-10,T=s.slice(0,10));let x=g.reduce((v,k)=>k.no===null?v:Math.max(v,String(k.no).length),0),I=[];for(let v of i)I.push({kind:"note",text:v});for(let v of g){let k=v.kind==="add"?"+":v.kind==="remove"?"-":" ",_=x===0?"":`${(v.no===null?"":String(v.no)).padStart(x)} \u2502 `;I.push({kind:v.kind,text:`${_}${k} ${v.content}`.trimEnd()})}for(let v of T)I.push({kind:"note",text:v});return{rows:I,hiddenRowCount:S}}o(SE,"buildDiffRows");function vx(e,t=e.length){let n=0,r=Math.min(t,e.length);for(let i=0;i<r;i++)e.charCodeAt(i)===10&&(n+=1);return n}o(vx,"countNewlines");function jh(e,t={}){let n=t.maxChars??1e4,r=t.headChars??2500,i=t.tailChars??2500;if(e.length<=n)return e;let s=e.slice(0,r),a=e.slice(-i),c=vx(e),l=vx(s),u=vx(a),d=Math.max(0,c-l-u);return`${s}
|
|
51
|
+
`),{placeholder:ae}=u.registerText(B);l.insert(ae,{paste:!0}),d({isPasting:!0,editingMode:"pasting"}),p();return}l.insert(W,{paste:!1}),d({isPasting:q,editingMode:q?"pasting":"typing"}),q&&p()},[l,u,p,d]),S=An(()=>{l.newline(),d({isPasting:!1,editingMode:"typing"})},[l,d]),T=An(()=>{let W=l.getAbsoluteOffset(),N=jm(l.text,W);N?l.replaceRange(N.start,N.end,""):l.backspace(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),x=An(()=>{let W=l.getAbsoluteOffset(),N=Um(l.text,W);N?l.replaceRange(N.start,N.end,""):l.delete(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),I=An(W=>{l.move(W),d()},[l,d]),v=An(()=>{l.clear(),d({isPasting:!1,editingMode:"idle"})},[l,d]),k=An(()=>{let W=l.undo();return W&&d(),W},[l,d]),_=An(()=>{let W=l.redo();return W&&d(),W},[l,d]),H=An(()=>{l.moveToEnd(),d()},[l,d]),$=An(W=>{l.moveToAbsoluteOffset(W),d()},[l,d]),P=An(()=>{l.killLineRight(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),z=An(()=>{l.killLineLeft(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),J=An(()=>{l.deleteWordLeft(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),L=An(()=>{s.current&&(clearTimeout(s.current),s.current=null),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]);return aF(()=>()=>{s.current&&clearTimeout(s.current),r.current=null},[]),{buffer:l,text:a.text,cursor:a.cursor,lines:a.lines,isPasting:a.isPasting,editingMode:a.editingMode,pasteStore:u,resetTransientState:L,setText:m,replaceRange:h,insert:g,newline:S,backspace:T,delete:x,move:I,moveToEnd:H,moveToOffset:$,killLineRight:P,killLineLeft:z,deleteWordLeft:J,clear:v,undo:k,redo:_}}o(xx,"useTextBuffer");import{jsx as Da,jsxs as Hh}from"react/jsx-runtime";import{useState as fE}from"react";import{useCallback as Rl,useEffect as Bh,useRef as Xi}from"react";function aE(e,t,n){let r=Math.max(0,Math.min(t,e.length)),i=e.slice(0,r);if(n.type==="command"||n.type==="skill"){let a=i.lastIndexOf("/");return{start:a===-1?0:a,end:r,replacement:n.text}}if(n.type==="argument"){let a=i.match(/\S+$/);if(a){let c=a[0],l=r-c.length;if(c.startsWith("/")&&i.lastIndexOf("/")===l)return{start:r,end:r,replacement:` ${n.text}`}}return{start:a?r-a[0].length:r,end:r,replacement:n.text}}let s=i.lastIndexOf("@");return{start:s===-1?0:s,end:r,replacement:n.text}}o(aE,"buildAutocompleteReplacement");import{readFile as pF}from"node:fs/promises";var mF=/\.(png|jpe?g|gif|webp|bmp)$/i;async function Ix(e){if(e.length===0)return process.platform==="darwin"?cE():{kind:"text",text:""};let t=Dh(e);return t.length>0?hF(t,e):{kind:"text",text:e}}o(Ix,"handleBracketedPaste");async function Cx(){return cE()}o(Cx,"triggerExplicitClipboardImage");async function cE(){let e;try{e=await fm()}catch(t){return{kind:"error",message:`Failed to read clipboard image: ${Tx(t)}`}}return e?lE(e):{kind:"noop"}}o(cE,"readClipboardAsImagesOutcome");async function hF(e,t){let n=[],r=[];for(let i of e){let s;try{s=await pF(i)}catch(c){r.push(`Failed to read ${i}: ${Tx(c)}`);continue}let a=await lE(s);a.kind==="images"?n.push(...a.blocks):a.kind==="error"&&r.push(a.message)}return n.length===0?r.length>0?{kind:"error",message:r.join("; ")}:{kind:"text",text:t}:{kind:"images",blocks:n}}o(hF,"readImagePathsAsOutcome");async function lE(e){try{let t=await dm(e);return{kind:"images",blocks:[await pm(t)]}}catch(t){return t instanceof um?{kind:"error",message:t.message}:{kind:"error",message:`Failed to process pasted image: ${Tx(t)}`}}}o(lE,"decodeBufferToOutcome");function Dh(e){return e.split(/ (?=\/|[A-Za-z]:\\)/).filter(n=>mF.test(n.trim()))}o(Dh,"extractImagePaths");function Tx(e){return e instanceof Error?e.message:String(e)}o(Tx,"describeError");function af(e,t){Ge({source:"repl:prompt-input",level:"warn",message:e,...t!==void 0?{detail:t}:{}})}o(af,"reportPromptInputDiagnostic");var yF=500;function uE(e,t,n){return n==="up"?e===0:e>=Math.max(0,t-1)}o(uE,"shouldUseHistoryNavigation");function wF(e){return e.isAutocompleteVisible?"cancel-autocomplete":e.hasText?e.timeSinceLastEscapeMs<yF?"clear-input":"arm-clear":"pass-through"}o(wF,"resolvePromptEscapeBehavior");function SF(e){return e.keyName==="newline"||e.keyName==="return"&&(e.ctrl||e.shift)||e.isPasting?"newline":e.isAutocompleteVisible?"accept-completion-and-submit":e.isLineContinuation?"line-continuation":"submit"}o(SF,"resolvePromptEnterBehavior");function xF(e){if(e.meta&&e.name==="backspace")return"delete-word-left";if(e.ctrl)switch(e.name){case"a":return"move-home";case"e":return"move-end";case"z":return"undo";case"y":return"redo";case"k":return"kill-line-right";case"u":return"kill-line-left";case"w":return"delete-word-left";default:return}}o(xF,"resolvePromptEditingCommand");function dE({onSubmit:e,onExit:t,focus:n=!0,initialValue:r="",cwd:i,gitRoot:s,sessionId:a,autocompleteEnabled:c=!0,onInputChange:l,onPasteFallback:u,onHistoryRecall:d,onPopPendingInputs:p}){let m=Xi(0),h=Xi(0),g=Xi(new Map),S=Xi(new Set),T=Xi(a),x=Xi(!0);Bh(()=>(x.current=!0,()=>{x.current=!1}),[]),T.current!==a&&(T.current=a,h.current+=1);let{add:I,navigateUp:v,navigateDown:k,reset:_,saveTempInput:H}=wx(),{buffer:$,text:P,cursor:z,lines:J,isPasting:L,editingMode:W,pasteStore:N,resetTransientState:q,setText:B,replaceRange:ae,clear:ee,move:ie,moveToOffset:C,insert:Te,backspace:Fe,newline:Ce,delete:X,undo:re,redo:je,killLineRight:Tt,killLineLeft:vt,deleteWordLeft:De}=xx({initialValue:r,onTextChange:l}),Ee=Xi(P);Ee.current!==P&&(Ee.current=P,h.current+=1);let ce=Xi(0);Bh(()=>{if(L)return;if(P.length<=1e4){ce.current=0;return}if(P.length===ce.current)return;let we=N.peekNextId(),{truncatedText:Ye,placeholderContent:Xt}=hR(P,we);Xt&&(N.registerTruncatedText(Xt),ce.current=Ye.length,B(Ye))},[P,L,N,B]);let oe=Na(),Me=Nh({cwd:i,gitRoot:s,enabled:c}),{state:Ae,suggestions:ze,handleInput:pt,handleTab:Vt,handleEnter:Ze,handleUp:Lt,handleDown:mt,handleEscape:rt}=oe??Me;Bh(()=>{n||(m.current=0,q(),Ae.visible&&rt())},[Ae.visible,n,rt,q]);let tt=Xi(P);Bh(()=>{c&&P!==tt.current&&(tt.current=P,pt(P,$.getAbsoluteOffset()))},[c,$,pt,P]);let oo=Rl(we=>{if(!we?.text)return;let Ye=aE(P,$.getAbsoluteOffset(),we),Xt=P.slice(0,Ye.start)+Ye.replacement+P.slice(Ye.end);return ae(Ye.start,Ye.end,Ye.replacement),Xt},[$,ae,P]),Er=Rl(we=>{let Ye=we??P;if(!Ye.trim())return;let Xt=N.expand(Ye),ut=new Set,bt=/\[(Pasted text|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;for(let Gt of Ye.matchAll(bt)){let qr=Number.parseInt(Gt[2]??"0",10);Number.isFinite(qr)&&qr>0&&ut.add(qr)}let Jn=[];for(let Gt of ut){let qr=N.get(Gt);qr&&Jn.push(qr)}I(Ye,{pastedContents:Jn}),e({displayText:Ye,fullText:Xt,pastedContents:Jn}),ee()},[I,ee,e,N,P]),kt=Rl(we=>{if(we){if(we.pastedContents&&we.pastedContents.length>0){for(let Ye of we.pastedContents)N.adopt(Ye);d?.({text:we.text,pastedContents:[...we.pastedContents]})}B(we.text)}},[d,N,B]),ht=Rl(async we=>{try{let Ye=await Ix(we);if(Ye.kind==="images"){let Xt=Ye.blocks.map(ut=>`@${ut.path}`).join(" ");Te(`${Xt} `,{paste:!1})}else Ye.kind==="error"&&(af(`Paste image handling failed: ${Ye.message}`),Te(we,{paste:!1}),u?.("Image paste failed; inserted as plain text."))}catch(Ye){af("Paste image handling failed.",Ye)}},[Te,u]),li=Xi(!1),zr=Rl(async()=>{if(!li.current){li.current=!0;try{let we=await Cx();if(we.kind==="images"){let Ye=we.blocks.map(Xt=>`@${Xt.path}`).join(" ");Te(`${Ye} `,{paste:!1})}else we.kind==="error"&&af(`Clipboard image handling failed: ${we.message}`)}catch(we){af("Clipboard image handling failed.",we)}finally{li.current=!1}}},[Te]),Ln=Rl(we=>{if((we.name!=="up"||!S.current.has(a))&&(h.current+=1),!n)return!1;if(we.name==="v"&&(we.ctrl||we.meta))return zr(),!0;if(we.name==="paste"&&we.isPasted&&Dh(we.sequence).length>0)return ht(we.sequence),!0;let Ye=Ae.visible&&ze.length>0;if(we.name==="tab"&&Ye){let ut=Vt();return ut&&oo(ut),!0}if(we.ctrl&&we.name==="c")return P.length>0?(ee(),_()):t?.(),!0;if(we.name==="escape")switch(wF({isAutocompleteVisible:Ye,hasText:P.length>0,timeSinceLastEscapeMs:Date.now()-m.current})){case"cancel-autocomplete":return rt(),m.current=0,!0;case"clear-input":return m.current=0,ee(),_(),!0;case"arm-clear":return m.current=Date.now(),!0;default:return!1}if(we.name==="up"){if(Ye)return Lt(),!0;if(we.ctrl)return ie("up"),!0;if(P.length===0&&p){let ut=g.current.get(a);if(ut!==void 0)return g.current.delete(a),B(ut),!0;if(S.current.has(a))return!0;let bt=p();if(bt instanceof Promise){let Jn=h.current;return S.current.add(a),bt.then(Gt=>{if(S.current.delete(a),!x.current||Jn!==h.current||T.current!==a){Gt&&g.current.set(a,Gt);return}typeof Gt=="string"&&Gt.length>0?B(Gt):(H(P),kt(v()))},Gt=>{S.current.delete(a),af("Queued input recall failed; the input may still run.",Gt)}),!0}if(typeof bt=="string"&&bt.length>0)return B(bt),!0}if(uE(z.row,J.length,"up")){H(P);let ut=v();kt(ut)}else ie("up");return!0}if(we.name==="down"){if(Ye)return mt(),!0;if(we.ctrl)return ie("down"),!0;if(uE(z.row,J.length,"down")){let ut=k();kt(ut)}else ie("down");return!0}if(we.name==="left"){let ut=$.getAbsoluteOffset(),bt=jm($.text,ut);return bt?C(bt.start):ie("left"),!0}if(we.name==="right"){let ut=$.getAbsoluteOffset(),bt=Um($.text,ut);return bt?C(bt.end):ie("right"),!0}if(we.name==="home")return ie("home"),!0;if(we.name==="end")return ie("end"),!0;let Xt=xF(we);if(Xt)switch(Xt){case"move-home":return ie("home"),!0;case"move-end":return ie("end"),!0;case"undo":return re(),!0;case"redo":return je(),!0;case"kill-line-right":return Tt(),!0;case"kill-line-left":return vt(),!0;case"delete-word-left":return De(),!0;default:break}if(we.name==="backspace")return Fe(),!0;if(we.name==="delete")return X(),!0;if(we.name==="return"||we.name==="newline")switch(SF({keyName:we.name,ctrl:we.ctrl,shift:we.shift,isAutocompleteVisible:Ye,isLineContinuation:!!J[z.row]?.endsWith("\\"),isPasting:L})){case"accept-completion-and-submit":{let bt=Ze();if(bt){let Jn=oo(bt);Er(Jn)}else Er();return!0}case"newline":return Ce(),!0;case"line-continuation":return Fe(),Ce(),!0;default:return Er(),!0}return we.insertable&&!we.ctrl&&!we.meta?(Te(we.sequence,we.isPasted?{paste:!0}:void 0),!0):!1},[oo,I,Ae.visible,Fe,$,ee,z.row,X,n,mt,rt,Lt,Ze,kt,Vt,ht,zr,J,vt,Tt,ie,C,k,v,Ce,t,p,a,je,_,H,B,Er,ze.length,P.length,De,L,re]);return{text:P,cursor:z,lines:J,isPasting:L,terminalFocused:n,editingMode:W,handleKey:Ln}}o(dE,"usePromptInputController");var kl=o(({onSubmit:e,onHistoryRecall:t,onPopPendingInputs:n,placeholder:r="Type a message...",prompt:i=">",focus:s=!0,initialValue:a="",cwd:c,gitRoot:l,sessionId:u,autocompleteEnabled:d=!0,onInputChange:p,onPasteFallback:m})=>{let{exit:h}=qi(),{cursor:g,lines:S,handleKey:T,isPasting:x,terminalFocused:I,editingMode:v}=dE({onSubmit:e,onExit:h,focus:s,initialValue:a,cwd:c,gitRoot:l,sessionId:u,autocompleteEnabled:d,onInputChange:p,onPasteFallback:m,onHistoryRecall:t,onPopPendingInputs:n});return Wr(hr.High,k=>T(k),[T]),Da(O,{flexDirection:"column",children:Da(ux,{lines:S,cursorRow:g.row,cursorCol:g.col,prompt:i,placeholder:r,focus:s,terminalFocused:I,isPasting:x,editingMode:v,theme:"dark"})})},"InputPrompt"),IF=o(({onSubmit:e,placeholder:t,prompt:n=">"})=>{let[r,i]=fE(""),[s,a]=fE(0);Wr(hr.High,p=>{if(p.name==="return")return r.trim()&&(e(r),i(""),a(0)),!0;if(p.name==="backspace"&&s>0){let m=[...r].slice(0,s-1).join(""),h=[...r].slice(s).join("");return i(m+h),a(s-1),!0}if(p.name==="left"&&s>0)return a(s-1),!0;if(p.name==="right"&&s<[...r].length)return a(s+1),!0;if(p.insertable&&!p.ctrl&&!p.meta){let m=[...r].slice(0,s).join(""),h=[...r].slice(s).join("");return i(m+p.sequence+h),a(s+1),!0}return!1},[r,s,e]);let c=ye("dark");if(!r)return Hh(O,{children:[Hh(M,{color:c.colors.primary,children:[n," "]}),t&&Da(M,{dimColor:!0,children:t}),Da(M,{backgroundColor:c.colors.primary,color:"#000000",children:" "})]});let l=[...r].slice(0,s).join(""),u=[...r][s]??" ",d=[...r].slice(s+1).join("");return Hh(O,{children:[Hh(M,{color:c.colors.primary,children:[n," "]}),Da(M,{children:l}),Da(M,{backgroundColor:c.colors.primary,color:"#000000",children:u}),Da(M,{children:d})]})},"SimpleInputPrompt");import{jsx as qt,jsxs as Bn}from"react/jsx-runtime";import{useState as mE,useEffect as hE}from"react";var pE=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],CF=80,Fh=new Set,cf=null;function TF(){let e=Array.from(Fh);for(let t of e)t()}o(TF,"dispatchSharedSpinnerTick");function vF(e){return Fh.add(e),cf===null&&(cf=setInterval(TF,CF)),()=>{Fh.delete(e),Fh.size===0&&cf!==null&&(clearInterval(cf),cf=null)}}o(vF,"subscribeToSharedSpinnerClock");function lf(e=!0){let[t,n]=mE(0);return hE(()=>{if(e)return vF(()=>{n(r=>r+1)})},[e]),t}o(lf,"useSharedSpinnerTick");var Ir=o(({color:e,theme:t})=>{let n=t??ye("dark"),i=lf(!0)%pE.length,s=e??n.colors.accent;return qt(M,{color:s,children:pE[i]})},"Spinner");function bF(e){let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60;return n===0?`${r}m${i}s`:`${n}h${r}m${i}s`}o(bF,"formatElapsedDuration");var gE=o(({roundStartedAt:e,charCount:t,theme:n})=>{let r=n??ye("dark");if(lf(e!==null),e===null)return null;let i=RF(Date.now()-e,t);return qt(M,{color:r.colors.dim,wrap:"truncate",children:i})},"SpinnerStatsTail");function RF(e,t){let n=bF(e),r=or(t);return r>0?` (${n} \xB7 \u2193 ~${yn(r)} tokens)`:` (${n})`}o(RF,"buildSpinnerStatsText");var yE=o(({label:e,dotCount:t=3,theme:n})=>{let r=n??ye("dark"),[i,s]=mE(1);hE(()=>{let c=setInterval(()=>{s(l=>l%t+1)},300);return()=>clearInterval(c)},[t]);let a=".".repeat(i);return Bn(O,{children:[e&&qt(M,{color:r.colors.text,children:e}),qt(M,{color:r.colors.accent,children:a})]})},"DotsIndicator"),wE=o(({progress:e,label:t,width:n=20,theme:r})=>{let i=r??ye("dark"),s=Math.max(0,Math.min(100,e)),a=Math.round(s/100*n),c=n-a,l="\u2588".repeat(a),u="\u2591".repeat(c);return Bn(O,{flexDirection:"column",children:[t&&qt(O,{marginBottom:1,children:qt(M,{color:i.colors.text,children:t})}),Bn(O,{children:[qt(M,{color:i.colors.primary,children:l}),qt(M,{dimColor:!0,children:u}),Bn(M,{children:[" ",s,"%"]})]})]})},"ProgressIndicator"),kF=o(({message:e,showSpinner:t=!1,theme:n})=>{let r=n??ye("dark"),i=e??"Thinking";return Bn(O,{children:[t&&qt(O,{marginRight:1,children:qt(Ir,{theme:r})}),Bn(M,{color:r.colors.accent,children:[i,"\u2026"]})]})},"ThinkingIndicator"),EF=o(({message:e,subMessage:t,progress:n,type:r="spinner",compact:i=!1,theme:s})=>{let a=s??ye("dark"),c=e??"Loading";return i?Bn(O,{children:[qt(Ir,{theme:a}),Bn(M,{color:a.colors.text,children:[" ",c,"\u2026"]})]}):r==="bar"&&n!==void 0?Bn(O,{flexDirection:"column",children:[qt(wE,{progress:n,label:c,theme:a}),t&&qt(O,{marginTop:1,children:qt(M,{dimColor:!0,children:t})})]}):r==="dots"?Bn(O,{flexDirection:"column",children:[qt(yE,{label:c,theme:a}),t&&qt(O,{marginTop:1,children:qt(M,{dimColor:!0,children:t})})]}):r==="simple"?Bn(O,{flexDirection:"column",children:[Bn(M,{color:a.colors.accent,children:[c,"\u2026"]}),t&&qt(O,{marginTop:1,children:qt(M,{dimColor:!0,children:t})}),n!==void 0&&qt(O,{marginTop:1,children:Bn(M,{dimColor:!0,children:[n,"%"]})})]}):Bn(O,{flexDirection:"column",children:[Bn(O,{children:[qt(Ir,{theme:a}),Bn(M,{color:a.colors.text,children:[" ",c,"\u2026"]}),n!==void 0&&Bn(M,{dimColor:!0,children:[" (",n,"%)"]})]}),t&&qt(O,{marginTop:1,children:qt(M,{dimColor:!0,children:t})})]})},"LoadingIndicator");import{jsx as _e,jsxs as yt,Fragment as _x}from"react/jsx-runtime";import{useEffect as qE,useMemo as Yi,memo as jr}from"react";var MF=/^(?:File (?:edited|created|updated|written)|Content inserted)/,AF=/^ \(/,Wh=/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/;function vx(e){return e.startsWith("--- ")||e.startsWith("+++ ")||e==="---"||e==="+++"}o(vx,"isFileHeaderLine");function SE(e,t={}){let n=t.maxRows??20,r=t.showAll??!1,i=[],s=[],a=[],c="scanning",l=null,u=null,d=o(v=>{let k=Wh.exec(v);k&&(l=Number(k[1]),u=Number(k[3]))},"applyHunk"),p=o(v=>{let k=v[0],_=v.length>1&&v[1]===" "?v.slice(2):v.slice(1);k==="-"?(a.push({kind:"remove",no:l,content:_}),l=l===null?null:l+1):k==="+"?(a.push({kind:"add",no:u,content:_}),u=u===null?null:u+1):(a.push({kind:"context",no:u,content:_}),l=l===null?null:l+1,u=u===null?null:u+1)},"pushBodyLine"),m=o(v=>{Wh.test(v)?d(v):vx(v)||(v[0]==="+"||v[0]==="-"||v[0]===" "?p(v):v.trim()!==""&&(c="trailing",s.push(v)))},"processDiffLine");for(let v of e.split(/\r?\n/))switch(c){case"scanning":{MF.test(v)?c="preamble":Wh.test(v)||vx(v)?c="diff":v.trim()!==""&&i.push(v);break}case"preamble":{if(AF.test(v)||v.trim()==="")break;Wh.test(v)||vx(v)||v[0]==="+"||v[0]==="-"||v[0]===" "?(c="diff",m(v)):(c="trailing",v.trim()!==""&&s.push(v));break}case"diff":{m(v);break}case"trailing":{v.trim()!==""&&s.push(v);break}}if(!a.some(v=>v.kind!=="context"))return null;let g=a,S=0;r||(g.length>n&&(g=g.filter(v=>v.kind!=="context")),g.length>n&&(S=g.length-n,g=g.slice(0,n)));let T=s;!r&&s.length>10&&(S+=s.length-10,T=s.slice(0,10));let x=g.reduce((v,k)=>k.no===null?v:Math.max(v,String(k.no).length),0),I=[];for(let v of i)I.push({kind:"note",text:v});for(let v of g){let k=v.kind==="add"?"+":v.kind==="remove"?"-":" ",_=x===0?"":`${(v.no===null?"":String(v.no)).padStart(x)} \u2502 `;I.push({kind:v.kind,text:`${_}${k} ${v.content}`.trimEnd()})}for(let v of T)I.push({kind:"note",text:v});return{rows:I,hiddenRowCount:S}}o(SE,"buildDiffRows");function bx(e,t=e.length){let n=0,r=Math.min(t,e.length);for(let i=0;i<r;i++)e.charCodeAt(i)===10&&(n+=1);return n}o(bx,"countNewlines");function jh(e,t={}){let n=t.maxChars??1e4,r=t.headChars??2500,i=t.tailChars??2500;if(e.length<=n)return e;let s=e.slice(0,r),a=e.slice(-i),c=bx(e),l=bx(s),u=bx(a),d=Math.max(0,c-l-u);return`${s}
|
|
52
52
|
\u2026 +${d} lines \u2026
|
|
53
53
|
${a}`}o(jh,"truncateUserMessageForDisplay");var xE="(?:\x1B[[0-9;]*m)*",_F=new RegExp(`^(${xE})(?:[ \r]*
|
|
54
54
|
)+`),PF=new RegExp(`(?:
|
|
55
|
-
[ \r]*)+(${xE})$`);function
|
|
56
|
-
`),i=sr(r.length>0?r:[""],n,0,0);return i.visualLines.length>0?i.visualLines:[""]}o(VF,"wrapText");function
|
|
55
|
+
[ \r]*)+(${xE})$`);function Rx(e){return e.replace(_F,"$1").replace(PF,"$1")}o(Rx,"stripOuterBlankLines");function nn(e){let t=/\u001b\[[0-9;?]*[ -/]*[@-~]/g,n=/\u001b\][^\u0007\u001b]*(?:\u0007|\u001b\\)/g,r=/\u001b[@-_]/g;return e.replace(t,"").replace(n,"").replace(r,"")}o(nn,"stripAnsi");var LF=new Set(["edit","write","multi_edit","insert_after_anchor"]),OF=20;function $F(e){return LF.has(Od(e.name).trim().toLowerCase())}o($F,"isMutationTool");function NF(e){switch(e){case"add":return"success";case"remove":return"error";case"context":return"thinking";default:return"dim"}}o(NF,"colorForDiffRow");function DF(e){if(e==="add")return"diffAdd";if(e==="remove")return"diffRemove"}o(DF,"bgForDiffRow");function BF(e,t,n,r,i){let s=SE(n,{maxRows:OF,showAll:i});return s?(s.rows.forEach((a,c)=>{Xe(e,`${t}-diff-${c}`,a.text,Dt(r,4),{color:NF(a.kind),bg:DF(a.kind),indent:4})}),s.hiddenRowCount>0&&Xe(e,`${t}-diff-more`,`... (${s.hiddenRowCount} more lines, Ctrl+O then Ctrl+E to expand)`,Dt(r,4),{color:"dim",indent:4}),!0):!1}o(BF,"pushDiffRows");var IE=400,HF="... (thinking truncated; press Ctrl+O to inspect full reasoning)",CE=2e5,FF="... (thinking show-all truncated at 200K chars; full content available via session artifacts)",RE=1e5,TE=120,WF=" \u2026 (Ctrl+O to expand)";function kE(){return process.env.KODAX_THINKING_COLLAPSE!=="0"}o(kE,"isThinkingCollapseEnabled");function jF(e){let t=e.split(/\r?\n/).map(a=>a.trim()).filter(a=>a.length>0),n=t[0]??"",r=t.length>1,i=n.length>TE;return{summary:i?`${n.slice(0,TE).trimEnd()}\u2026`:n,hasMore:r||i}}o(jF,"buildCollapsedThinkingLine");function UF(e,t){if(!e||!t)return e;let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`^\\[Tools\\]\\s+\\[${n}\\]\\s+`,"i"),"[Tools] ").replace(new RegExp(`^\\[Thinking\\]\\s+\\[${n}\\]\\s*`,"i"),"[Thinking] ").replace(new RegExp(`^\\[${n}\\]\\s+thinking\\b`,"i"),"[Thinking]").trim()}o(UF,"normalizeManagedLiveActivityLabel");function uf(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}o(uf,"formatTimestamp");function EE(e){switch(e){case K.Scheduled:return"\u25CB";case K.Validating:return"\u25D0";case K.AwaitingApproval:return"\u23F8";case K.Executing:return"\u25CF";case K.Success:return"\u2713";case K.Error:return"\u2717";case K.Cancelled:return"\u2298";default:return"[tool]"}}o(EE,"getToolStatusIcon");function ME(e){switch(e){case K.Scheduled:case K.Validating:return"dim";case K.AwaitingApproval:return"accent";case K.Executing:return"primary";case K.Success:return"success";case K.Error:return"error";case K.Cancelled:return"dim";default:return"text"}}o(ME,"getToolStatusColor");function VF(e,t){let n=Math.max(1,t),r=e.split(`
|
|
56
|
+
`),i=sr(r.length>0?r:[""],n,0,0);return i.visualLines.length>0?i.visualLines:[""]}o(VF,"wrapText");function kx(e,t,n,r=!1){if(n||r)return e.length>CE?`${e.slice(0,CE)}
|
|
57
57
|
|
|
58
58
|
${FF}`:e;let i=e.split(/\r?\n/),s=i.length>t,a=s?i.slice(0,t).join(`
|
|
59
59
|
`):e,c=a.length>IE,l=c?a.slice(0,IE):a;return!s&&!c?e:`${l}
|
|
60
60
|
|
|
61
|
-
${HF}`}o(
|
|
62
|
-
`),c=i.contentOffset===void 0?void 0:sr(a,Math.max(1,r),0,0),l=c?.visualLines??VF(s,r),u=[],d=0;for(let h of a)u.push(d),d+=h.length+1;if(l.length===0){e.push({key:`${t}-0`,text:"",...i});return}let p=-1,m=0;l.forEach((h,g)=>{let S=c?.visualToLogicalMap[g]?.[0];S!==void 0&&S!==p&&(p=S,m=0),e.push({key:`${t}-${g}`,text:h,...i,...c?{contentOffset:(i.contentOffset??0)+(u[p]??0)+m}:{}}),m+=h.length})}o(Xe,"pushWrappedRows");function
|
|
63
|
-
`),B=q>=0?l.slice(0,q+1):"";B.length>0&&(Xe(N,"streaming-header","Assistant",n,{color:"secondary",bold:!0}),Xe(N,"streaming-body",B,Dt(n,2),{color:"text",indent:2}),
|
|
64
|
-
`),r=n.slice(0,t),i=n.length>t;return{lines:r,hasMore:i}}o(nW,"truncateLines");function rW(e){switch(e){case K.Scheduled:return"\u25CB";case K.Validating:return"\u25D0";case K.AwaitingApproval:return"\u23F8";case K.Executing:return"\u25CF";case K.Success:return"\u2713";case K.Error:return"\u2717";case K.Cancelled:return"\u2298";default:return"?"}}o(rW,"getToolStatusIcon");function iW(e,t){switch(e){case K.Scheduled:case K.Validating:return t.colors.dim;case K.AwaitingApproval:return t.colors.accent;case K.Executing:return t.colors.primary;case K.Success:return t.colors.success;case K.Error:return t.colors.error;case K.Cancelled:return t.colors.dim;default:return t.colors.text}}o(iW,"getToolStatusColor");var oW=jr(({item:e,theme:t})=>{let n=Yi(()=>jh(e.text),[e.text]);return
|
|
65
|
-
`).length-n," more lines)"]})]})]})}),aW=jr(({item:e,theme:t})=>gt(O,{flexDirection:"column",marginBottom:1,children:[gt(O,{children:[_e(M,{color:t.colors.dim,bold:!0,children:"System"}),gt(M,{dimColor:!0,children:[" [",Xh(e.timestamp),"]"]})]}),_e(O,{marginLeft:2,children:_e(M,{dimColor:!0,children:e.text})})]})),cW=jr(({tool:e,count:t=1,theme:n})=>{let r=rW(e.status),i=iW(e.status,n);return gt(O,{flexDirection:"column",marginLeft:2,children:[gt(O,{children:[gt(M,{color:i,children:[r," "]}),_e(M,{color:n.colors.text,bold:!0,children:Od({tool:e,count:t})})]}),e.error&&_e(O,{marginLeft:2,children:_e(M,{color:n.colors.error,children:e.error})})]})}),lW=jr(({item:e,theme:t})=>{let n=Jm(e.tools);return gt(O,{flexDirection:"column",marginBottom:1,children:[gt(O,{children:[_e(M,{color:t.colors.accent,bold:!0,children:"Tools"}),gt(M,{dimColor:!0,children:[" [",Xh(e.timestamp),"]"]})]}),n.map(r=>_e(cW,{tool:r.tool,count:r.count,theme:t},`${r.tool.id}-${r.count}`))]})}),uW=jr(({item:e,theme:t})=>gt(O,{flexDirection:"column",marginBottom:1,children:[_e(O,{children:_e(M,{color:t.colors.thinking,italic:!0,children:"Thinking"})}),_e(O,{marginLeft:2,children:_e(M,{color:t.colors.thinking,italic:!0,children:e.compactText??e.text})})]})),dW=jr(({item:e,theme:t})=>gt(O,{flexDirection:"column",marginBottom:1,children:[_e(O,{children:gt(M,{color:t.colors.error,bold:!0,children:["\u2717"," Error"]})}),_e(O,{marginLeft:2,children:_e(M,{color:t.colors.error,children:e.text})})]})),fW=jr(({item:e,theme:t})=>_e(O,{flexDirection:"column",marginBottom:1,children:gt(M,{color:t.colors.text,children:[_e(M,{color:t.colors.accent,bold:!0,children:e.icon??">"}),_e(M,{children:" "}),e.compactText??e.text]})})),pW=jr(({item:e,theme:t})=>_e(O,{flexDirection:"column",marginBottom:e.tightSpacing?0:1,children:gt(M,{color:t.colors.info,children:[gt(M,{bold:!0,children:[e.icon??"\u2139"," "]}),e.compactText??e.text]})})),mW=jr(({item:e,theme:t})=>gt(O,{flexDirection:"column",marginBottom:1,children:[_e(O,{children:gt(M,{color:t.colors.hint,bold:!0,children:["\u{1F4A1}"," Hint"]})}),_e(O,{marginLeft:2,children:_e(M,{dimColor:!0,children:e.text})})]})),hW=jr(({item:e,theme:t,maxLines:n=1e3})=>{let r=Yi(()=>ye("dark"),[]),i=t??r;switch(e.type){case"user":return _e(oW,{item:e,theme:i});case"assistant":return _e(sW,{item:e,theme:i,maxLines:n});case"system":return _e(aW,{item:e,theme:i});case"tool_group":return _e(lW,{item:e,theme:i});case"thinking":return _e(uW,{item:e,theme:i});case"error":return _e(dW,{item:e,theme:i});case"event":return _e(fW,{item:e,theme:i});case"info":return _e(pW,{item:e,theme:i});case"hint":return _e(mW,{item:e,theme:i});default:return _e(O,{children:_e(M,{dimColor:!0,children:"Unknown item type"})})}});function gW(e,t){if(e.theme!==t.theme||(e.animateSpinners??!0)!==(t.animateSpinners??!0)||(e.selectedItem??!1)!==(t.selectedItem??!1))return!1;let n=e.row,r=t.row;if(n!==r){if(n.key!==r.key||n.text!==r.text||n.color!==r.color||n.bg!==r.bg||n.bold!==r.bold||n.italic!==r.italic||n.indent!==r.indent||n.spinner!==r.spinner||n.itemId!==r.itemId||(n.itemIds?.length??0)!==(r.itemIds?.length??0)||n.itemIds?.some((a,c)=>a!==r.itemIds?.[c]))return!1}let i=e.selectionRange,s=t.selectionRange;return i===s?!0:!i||!s?!1:i.start===s.start&&i.end===s.end}o(gW,"areTranscriptRowPropsEqual");var XE=jr(({row:e,theme:t,animateSpinners:n=!0,selectedItem:r=!1,selectionRange:i})=>{let s=UE(t,e.color),a=e.bg==="diffAdd"?t.colors.diffAddBackground:e.bg==="diffRemove"?t.colors.diffRemoveBackground:void 0,c=e.text===" "?"":e.text,l=c||" ",u=i&&c?Ml(c,i.start,i.end):"",d=i&&c?Ml(c,0,i.start):c,p=i&&c?Ml(c,i.end):"",m=r&&!i,h=!m&&e.color==="dim",S={color:m?t.colors.accent:s,bold:e.bold||m,italic:e.italic,dimColor:h},T=_e(M,{...S,children:i&&c?gt(Ax,{children:[d?_e(M,{...S,children:d}):null,_e(M,{backgroundColor:t.colors.accent,color:t.colors.background,bold:!0,italic:e.italic,children:u}),p?_e(M,{...S,children:p}):null]}):l});return gt(O,{marginLeft:e.indent??0,children:[e.spinner&&n&>(Ax,{children:[_e(Ir,{color:t.colors.accent,theme:t}),_e(M,{children:" "})]}),a?_e(O,{width:"100%",backgroundColor:a,children:T}):T]})},gW),_x=jr(({section:e,theme:t,animateSpinners:n=!0})=>_e(O,{flexDirection:"column",children:e.rows.map(r=>_e(XE,{row:r,theme:t,animateSpinners:n},r.key))})),Ba=o(({items:e,isLoading:t=!1,maxLines:n=1e3,isThinking:r=!1,thinkingCharCount:i=0,thinkingContent:s="",streamingResponse:a="",currentTool:c,activeToolCalls:l,toolInputCharCount:u=0,toolInputContent:d="",iterationHistory:p=[],currentIteration:m=1,isCompacting:h=!1,agentMode:g,managedPhase:S,managedHarnessProfile:T,managedWorkerTitle:x,managedRound:I,managedMaxRounds:v,managedGlobalWorkBudget:k,managedBudgetUsage:_,managedBudgetApprovalRequired:H,lastLiveActivityLabel:$,liveStatusLines:P,viewportRows:z,viewportWidth:J,scrollOffset:L=0,animateSpinners:W=!0,windowed:N=!1,showFullThinking:q=!1,showDetailedTools:B=!1,showAllContent:ae=!1,showLiveProgressRows:ee=!0,selectedItemId:ie,expandedItemKeys:C,onMetricsChange:Te,onVisibleRowsChange:Fe,rendererWindow:Ce,selectedTextRanges:X,transcriptModel:re,visibleRowsOverride:je})=>{let Tt=Yi(()=>ye("dark"),[]),{stdout:vt}=zi(),De=J??vt?.columns??80,Ee=Yi(()=>re??Kh({items:e,viewportWidth:De,isLoading:t,maxLines:n,isThinking:r,thinkingCharCount:i,thinkingContent:s,streamingResponse:a,currentTool:c,activeToolCalls:l,toolInputCharCount:u,toolInputContent:d,iterationHistory:p,currentIteration:m,isCompacting:h,managedAgentMode:g,managedPhase:S,managedHarnessProfile:T,managedWorkerTitle:x,managedRound:I,managedMaxRounds:v,managedGlobalWorkBudget:k,managedBudgetUsage:_,managedBudgetApprovalRequired:H,lastLiveActivityLabel:$,liveStatusLines:P,windowed:N,showFullThinking:q,showDetailedTools:B,showAllContent:ae,showLiveProgressRows:ee,expandedItemKeys:C}),[re,e,De,t,n,r,i,s,a,c,l,u,d,p,m,h,g,S,T,x,I,v,k,_,H,$,P,N,q,B,ae,ee,C]),ce=Ee.staticSections,oe=Ee.rows,Me=Ee.previewRows,Ae=Yi(()=>[...oe,...Me],[Me,oe]),ft=!(Ae.length>0)&&e.length===0&&!t,Vt=Yi(()=>N||Ce||je?Ae:oe,[Ae,Ce,oe,je,N]),Ze=Yi(()=>je||$E(Vt,{viewportTop:Ce?Math.max(0,Ce.viewportTop):void 0,viewportHeight:Ce?Math.max(0,Ce.viewportHeight):void 0,start:void 0,end:void 0,viewportRows:z,scrollOffset:L,windowed:N}),[Ce,L,z,je,N,Vt]),Lt=Yi(()=>je||N||Ce?Ze:Ae,[Ae,Ce,Ze,je,N]),pt=Yi(()=>Ae,[Ae]),rt=Ce?Math.max(0,Ce.viewportHeight):z;return qE(()=>{Te?.({scrollHeight:Ae.length,viewportHeight:Ce?Math.max(0,Ce.viewportHeight):rt??Ae.length})},[Ae.length,rt,Te,Ce]),qE(()=>{Fe?.({rows:Lt,allRows:pt})},[pt,Fe,Lt]),ft?_e(O,{paddingY:1,children:_e(M,{dimColor:!0,children:"No messages yet. Start typing to begin."})}):gt(O,{flexDirection:"column",children:[!N&&ce.length>0&&_e(xl,{items:ce,children:o(tt=>_e(_x,{section:tt,theme:Tt,animateSpinners:W},tt.key),"children")}),Lt.map(tt=>_e(XE,{row:tt,theme:Tt,animateSpinners:W,selectedItem:ie?tt.key.startsWith(`${ie}-`)||tt.itemIds?.includes(ie):!1,selectionRange:X?.get(tt.key)},tt.key))]})},"MessageList");var yW=o(({role:e,content:t})=>{let n=Yi(()=>ye("dark"),[]),r={user:n.colors.primary,assistant:n.colors.secondary,system:n.colors.dim}[e];return gt(O,{flexDirection:"column",marginBottom:1,children:[_e(M,{color:r,bold:!0,children:e==="user"?">":e==="assistant"?"<":"#"}),_e(M,{children:t})]})},"SimpleMessageDisplay");import{jsx as Lx,jsxs as eg}from"react/jsx-runtime";import PW,{useMemo as Ox}from"react";function df(e,t,n){let r=Hw({triggerPercent:t,triggerTokens:n},e),i=r.config.triggerPercent,s=Math.round(r.triggerTokens/1e3);if(r.absoluteTriggerTokens===void 0)return`@ ${i}% (${s}k)`;let a=Math.round(r.absoluteTriggerTokens/1e3);return`@ min(${i}%, ${a}k) (${s}k)`}o(df,"formatCompactionPolicy");function YE(e,t,n=0,r){let i=fb(e,n);return Hw({triggerPercent:t,triggerTokens:r},e,i).triggerTokens}o(YE,"resolveCompactionThresholdTokens");var wW="\u{1F504}",SW="\u2588",xW="\u2592",IW="\u2192",CW=" \xB7 ";function JE(e){switch(e){case"auto":return"auto";case"balanced":return"medium";case"quick":return"low";case"deep":return"high";case"off":return"off";default:return e.toLowerCase()}}o(JE,"formatReasoningModeShort");function QE(e){if(e)return e==="none"?"off":e}o(QE,"formatEffortShort");function TW(e){let t=e.split("->"),n=t[0]??e;if((t.length>1?t[t.length-1]:n)==="off")return"dim";switch(n){case"off":return"dim";case"low":return"green";case"medium":return"yellow";case"high":case"xhigh":case"max":return"magenta";default:return"cyan"}}o(TW,"getReasoningColor");function Qh(e){let t=e.kind==="thinking"?"Thinking":`Receiving ${e.toolName}`;return e.estimatedTokenCount===void 0?t:`${t} (~${yn(e.estimatedTokenCount)} tokens)`}o(Qh,"formatStreamingActivity");function vW(e){let t=Math.min(10,Math.max(0,Math.round(e/10))),n=10-t;return`${SW.repeat(t)}${xW.repeat(n)}`}o(vW,"createMiniProgressBar");function bW(e,t,n,r,i,s){if(t===0)return"green";let a=s??YE(t,n,r,i);return e>=a?"red":e>=a*(2/3)?"yellow":"green"}o(bW,"getContextColor");function RW(e){switch(e.toLowerCase()){case"plan":return"blue";case"accept-edits":return"green";case"auto":case"auto-in-project":return"warning";case"full-access":return"red";default:return"magenta"}}o(RW,"getPermissionModeColor");function kW(e){let t=Qw(e);return e==="auto"||e==="auto-in-project"?`${t}[LLM]`:t}o(kW,"buildPermissionModeText");function EW(e){let t=e.toLowerCase();return t.includes("read")||t.includes("view")||t.includes("search")||t.includes("list")||t.includes("find")||t.includes("browser")||t.includes("get")?"Read":t.includes("write")||t.includes("replace")||t.includes("edit")||t.includes("modify")?"Edit":t.includes("command")||t.includes("bash")||t.includes("terminal")?"Bash":t.includes("ask")||t.includes("notify")||t.includes("user")||t.includes("question")?"Ask":t.includes("think")||t.includes("reason")?"Think":e}o(EW,"formatToolAction");function Yh(e,t){return t&&t>0?`${e} (~${yn(or(t))} tokens)`:e}o(Yh,"formatThinkingStatus");function Jh(e,t,n){let r=EW(e);return n?`${r} (${n}...)`:t&&t>0?`${r} (~${yn(or(t))} tokens)`:r}o(Jh,"formatToolStatus");function Px({activeToolCount:e,currentTool:t,isThinkingActive:n,thinkingCharCount:r,isCompacting:i,toolInputCharCount:s,toolInputContent:a,managedPhase:c,managedHarnessProfile:l,managedWorkerTitle:u,managedIdleWaiting:d,managedIdleWaitingPendingCount:p}){let m=e&&e>0?`${e} tool${e===1?"":"s"} running`:void 0;if(i)return"Compacting";if(c==="routing")return m?`Routing - ${m}`:t?`Routing - ${Jh(t,s,a)}`:n?Yh("Routing",r):"Routing";if(c==="preflight"){let h=u??"Scout";return m?`${h} - ${m}`:t?`${h} - ${Jh(t,s,a)}`:n?Yh(h,r):h}if(c==="verifying")return"Verifying";if(l){let h=u??"Worker";if(d===!0&&!m&&!t&&!n){let g=p??0,S=g>1?`waiting for ${g} children`:g===1?"waiting for 1 child":"idle - resuming";return`${h} - ${S}`}return m?`${h} - ${m}`:t?`${h} - ${Jh(t,s,a)}`:n?Yh(h,r):h}if(m)return m;if(t)return Jh(t,s,a);if(n)return Yh("Thinking",r)}o(Px,"buildBusyStatusText");function MW({agentMode:e,managedPhase:t,managedHarnessProfile:n,managedRound:r,managedMaxRounds:i,managedGlobalWorkBudget:s,managedBudgetUsage:a,currentIteration:c,maxIter:l}){let u=[];return t==="routing"||t==="preflight"||(n&&r&&i&&r>1&&u.push({label:"Round",current:r,max:i}),n&&s&&typeof a=="number"?u.push({label:"Work",current:a,max:s}):e==="sa"&&c&&l&&u.push({label:"Iter",current:c,max:l})),u}o(MW,"resolveIterationSegments");function AW(e){if(e.length!==0)return`${wW} ${e.map(t=>`${t.label} ${t.current}/${t.max}`).join(CW)}`}o(AW,"formatLabeledIterationStatus");function _W(e){let{sessionId:t,permissionMode:n,provider:r,model:i,tokenUsage:s,currentTool:a,activeToolCount:c,thinking:l,isThinkingActive:u,thinkingCharCount:d,reasoningMode:p=l?"auto":"off",effort:m,reasoningEffortLabel:h,isCompacting:g,toolInputCharCount:S,toolInputContent:T,currentIteration:x,maxIter:I,contextUsage:v,contextTokens:k,learning:_,showBusyStatus:H=!0,managedPhase:$,managedHarnessProfile:P,managedWorkerTitle:z,managedRound:J,managedMaxRounds:L,managedGlobalWorkBudget:W,managedBudgetUsage:N,managedIdleWaiting:q,managedIdleWaitingPendingCount:B}=e,ae=e.hostSettings?e.hostSettings.permissionMode:n,ee=e.hostSettings?e.hostSettings.agentMode:e.agentMode,ie=(e.hostSettings?e.hostSettings.workMode:e.workMode)??"coding",C=[{id:"agent-mode",text:`KodaX - ${ie[0].toUpperCase()}${ie.slice(1)}`,color:"primary",bold:!0},{id:"permission-mode",text:ae===void 0?"Host default":kW(ae),color:ae===void 0?"dim":RW(ae)}],Te=e.hostSettings?QE(e.hostSettings.effort)??(e.hostSettings.reasoningMode!==void 0?JE(e.hostSettings.reasoningMode):e.hostSettings.thinking===void 0?"Host default":e.hostSettings.thinking?"on":"off"):h??QE(m)??JE(p);C.push({id:"reasoning-mode",text:Te,color:TW(Te)});let Fe=ee===void 0?[]:MW({agentMode:ee,managedPhase:$,managedHarnessProfile:P,managedRound:J,managedMaxRounds:L,managedGlobalWorkBudget:W,managedBudgetUsage:N,currentIteration:x,maxIter:I}),Ce=AW(Fe);if(Ce){let re=Math.max(...Fe.map(Tt=>Tt.current/Tt.max)),je="green";re>=.8?je="red":re>=.5&&(je="yellow"),C.push({id:"iteration-status",text:Ce,color:je})}C.push({id:"session-id",text:t,color:"dim"});let X=H?Px({activeToolCount:c,currentTool:a,isThinkingActive:u,thinkingCharCount:d,isCompacting:g,toolInputCharCount:S,toolInputContent:T,managedPhase:$,managedHarnessProfile:P,managedWorkerTitle:z,managedIdleWaiting:q,managedIdleWaitingPendingCount:B}):void 0;if(X&&C.push({id:"busy-status",text:X,color:"dim"}),C.push({id:"provider-model",text:`${r}/${i}`,color:"secondary"}),v&&v.contextWindow!==0){let re=Math.round(v.currentTokens/v.contextWindow*100),je=yn(v.currentTokens),Tt=yn(v.contextWindow),vt=vW(re),De=v.scope==="worker"?"W ":"";C.push({id:"context-usage",text:`${De}${je}/${Tt} ${vt} ${re}%`,color:v.hostBudget&&v.effectiveTriggerTokens===void 0?"dim":bW(v.currentTokens,v.contextWindow,v.triggerPercent,v.reservedResponseTokens,v.triggerTokens,v.effectiveTriggerTokens)})}if(k&&C.push({id:"context-quantity",text:`${k.scope} ctx ${yn(k.currentTokens)}`,color:"dim"}),_&&(_.ready>0||_.newlyActive>0||_.attention>0)){let re=[..._.ready>0?[`${_.ready}R`]:[],..._.newlyActive>0?[`${_.newlyActive}N`]:[],..._.attention>0?[`${_.attention}!`]:[]];C.push({id:"learning",text:`Learn:${re.join("/")}`,color:_.attention>0||_.ready>0?"yellow":"cyan",tone:_.attention>0||_.ready>0?"warning":"accent"})}return s&&C.push({id:"token-usage",text:`${s.input}${IW}${s.output} (${s.total})`,color:"dim"}),C}o(_W,"buildStatusBarSegments");function Zh(e){let t=_W(e);return{text:t.map(n=>n.text).join(" | "),segments:t}}o(Zh,"buildStatusBarViewModel");function LW(e,t){if(e.color)return t.colors[e.color]??e.color;switch(e.tone){case"primary":return t.colors.primary;case"accent":return t.colors.accent;case"success":return t.colors.success;case"warning":return t.colors.warning;case"error":return t.colors.error;default:return t.colors.dim}}o(LW,"resolveViewModelSegmentColor");var Al=o(({viewModel:e,...t})=>{let n=Ox(()=>ye("dark"),[]),r=Ox(()=>e??Zh(t),[t,e]);return Lx(O,{paddingX:1,children:r.segments.map((i,s)=>eg(PW.Fragment,{children:[Lx(M,{color:LW(i,n),bold:i.bold,children:i.text}),s<r.segments.length-1?Lx(M,{dimColor:!0,children:" | "}):null]},i.id))})},"StatusBar"),OW=o(({permissionMode:e,provider:t,model:n})=>{let r=Ox(()=>ye("dark"),[]);return eg(O,{children:[eg(M,{color:r.colors.primary,bold:!0,children:["[",e,"]"]}),eg(M,{dimColor:!0,children:[" ",t,"/",n]})]})},"SimpleStatusBar");import{jsx as vs,jsxs as rg}from"react/jsx-runtime";import{useState as $x,useCallback as tg,useMemo as ZE}from"react";function ng(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}o(ng,"generateId");function $W(e){let t={id:e.id,timestamp:e.timestamp};switch(e.role){case"user":return{...t,type:"user",text:e.content};case"assistant":return{...t,type:"assistant",text:e.content};case"system":return{...t,type:"system",text:e.content};default:return{...t,type:"info",text:e.content}}}o($W,"messageToHistoryItem");var NW=o(({model:e,provider:t,onSubmit:n,permissionMode:r="accept-edits",agentMode:i="ama"})=>{let{stdout:s}=zi(),a=ZE(()=>ye("dark"),[]),[c,l]=$x({messages:[],isLoading:!1,sessionId:ng()}),[u,d]=$x(null),[p,m]=$x(),h=tg(async x=>{if(!x.trim())return;let I={id:ng(),role:"user",content:x,timestamp:Date.now()};l(v=>({...v,messages:[...v.messages,I],isLoading:!0}));try{await n(x)}catch(v){let k={id:ng(),role:"system",content:`Error: ${v instanceof Error?v.message:"Unknown error"}`,timestamp:Date.now()};l(_=>({..._,messages:[..._.messages,k],isLoading:!1}))}finally{l(v=>({...v,isLoading:!1}))}},[n]),g=tg((x,I)=>{let v={id:ng(),role:x,content:I,timestamp:Date.now()};l(k=>({...k,messages:[...k.messages,v]}))},[]),S=tg((x,I)=>{d({input:x,output:I,total:x+I})},[]),T=tg(x=>{m(x)},[]);return rg(O,{flexDirection:"column",children:[vs(O,{flexGrow:1,flexDirection:"column",overflow:"hidden",children:vs(Ba,{items:c.messages.map($W),isLoading:c.isLoading})}),vs(O,{flexShrink:0,children:vs(Rl,{onSubmit:o(x=>h(x.fullText),"onSubmit"),prompt:">",focus:!c.isLoading})}),vs(O,{flexShrink:0,children:vs(Al,{sessionId:c.sessionId,permissionMode:r,agentMode:i,provider:t,model:e,tokenUsage:u??void 0,currentTool:p})})]})},"App"),DW=o(({model:e,provider:t,onInput:n})=>{let r=ZE(()=>ye("dark"),[]);return rg(O,{flexDirection:"column",children:[rg(O,{marginBottom:1,children:[vs(M,{color:r.colors.primary,bold:!0,children:"KodaX CLI"}),rg(M,{dimColor:!0,children:[" ","- ",t,"/",e]})]}),vs(Rl,{onSubmit:o(i=>n(i.fullText),"onSubmit"),placeholder:"Type a message...",prompt:">"})]})},"SimpleApp");async function Bx(e,t,n,r="text",i=!1,s){let a=i?e.readHistoryEntry:e.readItem;if(!a)throw new Error("Full transcript content is unavailable.");return Nc(c=>a(t,n,{offset:c,part:r}),n,s?{length:s.length,signal:s.signal,...s.textRevision!==void 0?{version:s}:{}}:void 0)}o(Bx,"readClientPlaneItemText");async function Wx(e,t,n,r){return Promise.all(n.map(async i=>{let s=o(async(l,u)=>u===void 0?void 0:await Bx(e,t,i.historyItemId??i.id,l,i.historyItemId!==void 0,{length:u,signal:r,...l==="text"?{textRevision:i.textRevision??0,outputState:i.outputState}:{}}),"read"),a=await s("text",i.totalTextLength),c=await s("input",i.totalInputLength);if(a===void 0&&c===void 0)return i;if(i.type!=="tool_group"&&a!==void 0&&a.slice(i.textOffset??0)!==i.text)throw new Error("Frozen transcript content changed during the read.");return i.type==="tool_group"?{...i,totalTextLength:void 0,totalInputLength:void 0,tools:i.tools.map(l=>({...l,...a!==void 0?{output:a}:{},...c!==void 0?{input:{preview:c},inputText:c,preview:c}:{}}))}:{...i,...a!==void 0?{text:a}:{},textOffset:0,totalTextLength:void 0}}))}o(Wx,"readFrozenClientPlaneItems");async function eM(e,t,n){if(!e.readHistory)throw new Error("Complete transcript history is unavailable.");let r=[],i=new Set,s,a;do{n?.throwIfAborted();let c=await e.readHistory(t,{cursor:s,limit:100});if(a??=c.revision,c.revision!==a)throw new Error("History changed during loading; reopen transcript and try again.");let l=[];for(let u of c.items){n?.throwIfAborted();let d=u.totalTextLength!==void 0&&u.totalTextLength>u.text.length?await Bx(e,t,u.id,"text",!0,{length:u.totalTextLength,signal:n}):u.text,p=u.tool?.totalInputLength!==void 0&&u.tool.totalInputLength>(u.tool.inputText?.length??0)?await Bx(e,t,u.id,"input",!0,{length:u.tool.totalInputLength,signal:n}):u.tool?.inputText,[m]=Ha([{...u,text:d,textOffset:0,totalTextLength:void 0,...u.tool?{tool:{...u.tool,inputText:p,totalInputLength:void 0}}:{}}]);m&&l.push({...m,historyItemId:u.id})}if(r.push(l),s=c.nextCursor,s!==void 0&&i.has(s))throw new Error("History paging did not advance.");s!==void 0&&i.add(s)}while(s!==void 0);return n?.throwIfAborted(),r.reverse().flat()}o(eM,"readClientPlaneHistory");var BW={running:K.Executing,success:K.Success,error:K.Error,cancelled:K.Cancelled,awaiting_approval:K.AwaitingApproval},tM=new Set(["cancelled","interrupted"]);function Hx(e){return{success:!1,interrupted:!0,signal:"BLOCKED",lastText:"",messages:[],sessionId:e}}o(Hx,"interruptedPlaneResult");function bs(){return`ink-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}o(bs,"mintInkInputId");var HW=100,FW=1e4,nM=600;function WW(e){return new Promise(t=>setTimeout(t,e))}o(WW,"sleep");async function Fx(e,t,n,r,i){let s=Date.now()+r;for(;;){if(i?.())return;let a=await e.activeRun(t);if(i?.())return;if(a!==void 0&&n(a))return a;if(Date.now()>=s)return;await WW(HW)}}o(Fx,"pollActiveRun");function _l(e,t){let n,r,i=!1,s=!1,a,c=o(l=>{i&&!s&&(s=!0,e.onStopState?.("confirmed",l))},"confirm");return e.onStopControl?.({request:o(()=>{if(r)return r;let l=t();return!n&&!l?Promise.reject(new Error("No active Run is available to stop.")):(n??={sessionId:e.sessionId,expectedRunId:l,requestId:bs()},e.onStopState?.("requesting"),r=e.plane.cancelSession(n).then(u=>{i=!0,e.onStopState?.("accepted");let d=u.receipts.find(p=>p.runId===n.expectedRunId);return d?.state==="confirmed"?c(d.outcome):a?.runId===n.expectedRunId&&c(a.phase),{state:u.receipts.every(p=>p.state==="confirmed")?"confirmed":"unknown"}}).catch(u=>{throw e.onStopState?.("rejected",u instanceof Error?u.message:String(u)),u}).finally(()=>{r=void 0}),r)},"request")}),{settled:o((l,u)=>{n&&n.expectedRunId!==u||["completed","failed","interrupted","cancelled"].includes(l.phase)&&(a={runId:u,phase:l.phase},c(l.phase))},"settled"),close:o(()=>e.onStopControl?.(void 0),"close")}}o(_l,"bindClientPlaneSessionStop");async function Pl(e){let t=e.runId,n=_l(e,()=>e.getDisplayedRunId?.()??t),r=o(()=>e.abortSignal?.aborted===!0,"aborted"),i,s=o(()=>{let a=e.getDisplayedRunId?.()??t;t=a,i=e.plane.stop(a).then(c=>{c?.accepted===!1&&Ge({source:"client.plane",level:"warn",message:`The Host did not accept the stop request for run ${a}.`})}).catch(c=>{Ge({source:"client.plane",level:"warn",message:`The stop request for run ${a} failed.`,detail:c})})},"stop");e.abortSignal?.addEventListener("abort",s,{once:!0});try{e.abortSignal?.aborted&&s();let a;for(;;){let c=t;a=await e.plane.awaitRun(e.sessionId,c),n.settled(a,c);let l=await Fx(e.plane,e.sessionId,u=>u!==t,nM,r);if(r()){if(await i,t!==c)continue;break}if(l===void 0)break;t=l}if(a.error!==void 0)throw new Error(a.error);if(a.result!==void 0)return a.result;if(tM.has(a.phase))return Hx(e.sessionId);throw new Error(a.error??`Run ${t} ended in phase '${a.phase}' without a result.`)}finally{n.close(),e.abortSignal?.removeEventListener("abort",s)}}o(Pl,"followClientPlaneRun");async function ff(e){let t=bs(),n=o(()=>e.abortSignal?.aborted===!0,"aborted"),r,i,s=o(p=>{p!==void 0?r=e.plane.stop(p).then(m=>{m?.accepted===!1&&Ge({source:"client.plane",level:"warn",message:`The Host did not accept the stop request for run ${p}.`})},m=>{Ge({source:"client.plane",level:"warn",message:`The stop request for run ${p} failed.`,detail:m})}):r=e.plane.withdraw(e.sessionId,t).then(m=>{if(m===void 0)throw new Error("Input withdrawal was not confirmed; it may still run.")}).catch(m=>{i=m instanceof Error?m:new Error(String(m)),Ge({source:"client.plane",level:"warn",message:`The withdraw request for input ${t} failed; the queued input may still run.`,detail:m})})},"stopRun"),a=await(e.submit??e.plane.submit)({sessionId:e.sessionId,text:e.prompt,inputId:t,...e.inputArtifacts!==void 0&&e.inputArtifacts.length>0?{inputArtifacts:e.inputArtifacts}:{}});if(a.state==="dropped"||a.state==="withdrawn")throw new Error(`The Host ${a.state} the input; resubmit with a new input id.`);let c=a.runId,l=_l(e,()=>e.getDisplayedRunId?.()??c),u,d=o(()=>{c!==void 0&&(c=e.getDisplayedRunId?.()??c),s(c)},"stop");e.abortSignal?.addEventListener("abort",d,{once:!0});try{for(n()&&s(c);;){if(c===void 0&&(c=await Fx(e.plane,e.sessionId,()=>!0,FW,n),c===void 0)){if(n()){if(await r,i)throw i;return Hx(e.sessionId)}let g="";try{await e.plane.withdraw(e.sessionId,t)}catch(S){g=` The take-back after the timeout also failed (${S instanceof Error?S.message:String(S)}); the input may still run from the Host queue.`,Ge({source:"client.plane",level:"warn",message:`The withdraw request for input ${t} failed after the queued input never started.`,detail:S})}throw new Error(`The queued input did not start a run within the wait window.${g}`)}let m=c;u=await e.plane.awaitRun(e.sessionId,m),l.settled(u,m);let h=await Fx(e.plane,e.sessionId,g=>g!==c,nM,n);if(n()){if(await r,c!==m)continue;break}if(h===void 0)break;c=h}let p=u;if(p===void 0)throw new Error("The client-plane round ended without a run outcome.");if(p.error!==void 0)throw new Error(p.error);if(p.result!==void 0)return p.result;if(tM.has(p.phase))return Hx(e.sessionId);throw new Error(p.error??`Run ${c} ended in phase '${p.phase}' without a result.`)}finally{l.close(),e.abortSignal?.removeEventListener("abort",d)}}o(ff,"runClientPlaneRound");var jW=new Set(["queued","running","waiting_agent","recovering","waiting_permission","waiting_user_input"]);function rM(e){for(let t=e.length-1;t>=0;t-=1){let n=e[t];if(jW.has(n.phase))return n.runId}}o(rM,"firstActiveRunId");function Cr(e){return rM(e.runs)}o(Cr,"viewRunsActive");function Nx(e){if(e===void 0)return-1;let t=5381;for(let n=0;n<e.length;n+=1)t=(t<<5)+t+e.charCodeAt(n)|0;return t}o(Nx,"textHash");function UW(e){return[e.type,e.outputId??"",e.outputState??"",e.textRevision??0,`${e.text.length}:${Nx(e.text)}`,e.compactText===void 0?"-":`${e.compactText.length}:${Nx(e.compactText)}`,e.icon??"",e.sidecar?.verdict??"",e.sidecar?.delivery??"",e.tool?.status??"",e.tool?.progress??"",e.tool?.endedAt??0,e.tool?.inputText===void 0?"-":`${e.tool.inputText.length}:${Nx(e.tool.inputText)}`,e.totalTextLength??-1,e.textOffset??0,e.tool?.totalInputLength??-1].join("|")}o(UW,"itemFingerprint");var iM=`
|
|
66
|
-
[truncated]`;function
|
|
67
|
-
`):[""],Math.max(1,t),0,0).visualLines.length)}o(ig,"countWrappedRows");var Kx=o(({browse:e,selection:t,search:n,chromeMode:r="inline",...i})=>{let s=r==="inline",a=t?.itemSummary,c=t?.position,l=t?.itemKind,u=t?.detailState??"compact",d=t?.copyCapabilities,p=d?.message??!1,m=d?.toolInput??!1,h=d?.copyOnSelect??!1,g=t?.toggleDetail??!1,S=t?.navigationCapabilities?.selection??!1,T=n?.statusText,x=n?.matches?.length??0,I=n?.surface,v=i.viewportWidth??80,k=Math.max(1,v-2),_=n?.query?.trim()?"close-search":a||p||m||g||S?"clear":void 0,H=Gx({itemSummary:a,itemKind:l,position:c,detailState:u}),$=aM(()=>Ll({copyMessage:p,copyToolInput:m,copyOnSelect:h,toggleDetail:g,selectionNavigation:S,matchNavigation:!!T&&x>0,dismissAction:_}),[p,m,S,g,_,x,T,h]),P=aM(()=>{if(!s)return 0;let J=0;return e?.hintText&&(J+=ig(e.hintText,k)),H&&(J+=ig(H,k)),$&&(J+=ig($,k)),T&&(J+=ig(T,k)),I&&(J+=1),J},[$,e?.hintText,k,s,T,I,H]),z=typeof i.viewportRows=="number"?Math.max(1,i.viewportRows-P):i.viewportRows;return XW(O,{flexDirection:"column",flexGrow:i.windowed?0:1,children:[s&&e?.hintText?Ol(O,{paddingX:1,children:Ol(M,{dimColor:!0,children:e.hintText})}):null,null,s&&(p||m||h||g||S||x>0)?Ol(Vx,{copyMessage:p,copyToolInput:m,copyOnSelect:h,toggleDetail:g,selectionNavigation:S,matchNavigation:!!T&&x>0,dismissAction:_}):null,s&&T?Ol(O,{paddingX:1,children:Ol(M,{dimColor:!0,children:T})}):null,s?I:null,Ol(Ba,{...i,viewportRows:z})]})},"TranscriptViewport");import{jsx as cM}from"react/jsx-runtime";var zx=o(e=>cM(O,{flexDirection:"column",children:cM(Rl,{...e})}),"PromptComposer");import{jsx as Fa,jsxs as og}from"react/jsx-runtime";import lM from"react";var uM=" \xB7 ",sg=o(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=ye("dark");return t.length===0?null:Fa(O,{flexGrow:1,children:t.map((r,i)=>og(lM.Fragment,{children:[Fa(M,{color:r.accent?n.colors.accent:n.colors.dim,bold:r.accent,children:r.label}),i<t.length-1?Fa(M,{dimColor:!0,children:uM}):null]},r.id))})},"PromptFooterLeftSide"),ag=o(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=ye("dark");return t.length===0?null:Fa(O,{justifyContent:"flex-end",children:t.map((r,i)=>og(lM.Fragment,{children:[Fa(M,{color:r.accent?n.colors.primary:n.colors.dim,bold:r.accent,children:r.label}),i<t.length-1?Fa(M,{dimColor:!0,children:uM}):null]},r.id))})},"PromptFooterRightSide"),cg=o(({left:e,right:t,queued:n,stashNotice:r,notifications:i,inlineNotices:s,activityBar:a,todoSurface:c,composer:l,inlineSuggestions:u,helpSurface:d,taskBar:p,statusLine:m,inlineDialogs:h})=>og(O,{flexDirection:"column",children:[e||t?og(O,{paddingX:1,children:[Fa(O,{flexGrow:1,children:e}),t]}):null,n,r,i,s,a,c,l,u,h,d,p,m]}),"PromptFooter");import{jsx as qx,jsxs as dM}from"react/jsx-runtime";var Xx=o(({sections:e,title:t="Help"})=>{let n=ye("dark"),r=e.filter(i=>i.items.length>0);return r.length===0?null:dM(O,{flexDirection:"column",borderStyle:"round",borderColor:n.colors.accent,paddingX:1,marginTop:1,children:[qx(M,{color:n.colors.accent,bold:!0,children:t}),r.map(i=>dM(O,{flexDirection:"column",children:[qx(M,{color:n.colors.primary,bold:!0,children:i.title}),qx(M,{dimColor:!0,children:i.items.map(s=>s.label).join(" | ")})]},i.id))]})},"PromptHelpMenu");import{jsx as fM}from"react/jsx-runtime";import{createContext as hM,useContext as gM,useReducer as YW,useCallback as _n,useMemo as JW}from"react";var pM=150;function ug(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}o(ug,"generateId");function lg(e){let t=e.timestamp;return{...e,id:ug(),timestamp:t!==void 0&&Number.isFinite(t)&&t>=0?t:Date.now()}}o(lg,"createHistoryItem");function Yx(e){if(e.length<=pM)return e;let t=0,n=e.length-pM;for(let i=e.length-1;i>=0;i--)if(e[i]?.type==="user"&&(t++,t>50)){n=Math.max(n,i);break}let r=e.slice(n).findIndex(i=>i.type==="user");return r>0&&(n+=r),e.slice(n)}o(Yx,"trimCanonicalHistoryToRounds");function mM(e){if(!e.some(u=>u.isSessionUiOnly))return Yx(e);let t=e.filter(u=>!u.isSessionUiOnly),n=Yx(t),r=n[0],s=n.length<t.length&&r!==void 0?e.indexOf(r):0,a=e.filter((u,d)=>u.isSessionUiOnly===!0&&d>=s),c=Yx(a),l=new Set([...n,...c]);return e.filter(u=>l.has(u))}o(mM,"trimHistoryToRounds");function Jx(e,t){return e.filter(n=>n.type==="user"&&typeof n.id=="string"&&!t.has(n.id))}o(Jx,"selectUncommittedLedgerUserItems");function Qx(e){return{...e,id:ug(),startTime:Date.now()}}o(Qx,"createToolCall");function QW(e,t){switch(t.type){case"SET_STREAMING_STATE":return{...e,streamingState:t.payload};case"APPEND_TO_RESPONSE":return{...e,currentResponse:e.currentResponse+t.payload};case"CLEAR_RESPONSE":return{...e,currentResponse:""};case"ADD_HISTORY_ITEM":return{...e,history:mM([...e.history,t.payload])};case"REPLACE_HISTORY_ITEMS":return{...e,history:t.payload};case"BULK_ADD_HISTORY_ITEMS":return{...e,history:mM([...e.history,...t.payload])};case"UPDATE_HISTORY_ITEM":return{...e,history:e.history.map(n=>n.id===t.payload.id?{...n,...t.payload.updates}:n)};case"CLEAR_HISTORY":return{...e,history:[]};case"ADD_TOOL_CALL":return{...e,pendingToolCalls:[...e.pendingToolCalls,t.payload]};case"UPDATE_TOOL_CALL":return{...e,pendingToolCalls:e.pendingToolCalls.map(n=>n.id===t.payload.id?{...n,...t.payload.updates}:n)};case"CLEAR_TOOL_CALLS":return{...e,pendingToolCalls:[]};case"SET_SESSION_ID":return{...e,sessionId:t.payload};case"SET_PROVIDER":return{...e,provider:t.payload};case"SET_MODEL":return{...e,model:t.payload};case"SET_TOKEN_USAGE":return{...e,tokenUsage:t.payload};case"SET_ERROR":return{...e,error:t.payload};case"SET_LOADING":return{...e,isLoading:t.payload};case"RESET_STATE":return{...zw,sessionId:e.sessionId};default:return e}}o(QW,"uiReducer");var yM=hM(null),wM=hM(null);function dg({children:e,initialState:t}){let[n,r]=YW(QW,{...zw,...t}),i=_n($=>{r({type:"SET_STREAMING_STATE",payload:$})},[]),s=_n($=>{r({type:"APPEND_TO_RESPONSE",payload:$})},[]),a=_n(()=>{r({type:"CLEAR_RESPONSE"})},[]),c=_n($=>{let P=lg($);r({type:"ADD_HISTORY_ITEM",payload:P})},[]),l=_n($=>{$.length!==0&&r({type:"BULK_ADD_HISTORY_ITEMS",payload:$.map(lg)})},[]),u=_n($=>{r({type:"REPLACE_HISTORY_ITEMS",payload:$})},[]),d=_n(($,P)=>{r({type:"UPDATE_HISTORY_ITEM",payload:{id:$,updates:P}})},[]),p=_n(()=>{r({type:"CLEAR_HISTORY"})},[]),m=_n($=>{let P=Qx($);return r({type:"ADD_TOOL_CALL",payload:P}),P.id},[]),h=_n(($,P)=>{r({type:"UPDATE_TOOL_CALL",payload:{id:$,updates:P}})},[]),g=_n(()=>{r({type:"CLEAR_TOOL_CALLS"})},[]),S=_n($=>{r({type:"SET_SESSION_ID",payload:$})},[]),T=_n($=>{r({type:"SET_MODE",payload:$})},[]),x=_n($=>{r({type:"SET_PROVIDER",payload:$})},[]),I=_n($=>{r({type:"SET_MODEL",payload:$})},[]),v=_n($=>{r({type:"SET_TOKEN_USAGE",payload:$})},[]),k=_n($=>{r({type:"SET_ERROR",payload:$})},[]),_=_n($=>{r({type:"SET_LOADING",payload:$})},[]),H=JW(()=>({setStreamingState:i,appendToResponse:s,clearResponse:a,addHistoryItem:c,addHistoryItems:l,replaceHistoryItems:u,updateHistoryItem:d,clearHistory:p,addToolCall:m,updateToolCall:h,clearToolCalls:g,setSessionId:S,setMode:T,setProvider:x,setModel:I,setTokenUsage:v,setError:k,setLoading:_}),[i,s,a,c,l,u,d,p,m,h,g,S,T,x,I,v,k,_]);return fM(yM.Provider,{value:n,children:fM(wM.Provider,{value:H,children:e})})}o(dg,"UIStateProvider");function mf(){let e=gM(yM);if(!e)throw new Error("useUIState must be used within a UIStateProvider");return e}o(mf,"useUIState");function hf(){let e=gM(wM);if(!e)throw new Error("useUIActions must be used within a UIStateProvider");return e}o(hf,"useUIActions");function SM(){let e=mf(),t=hf();return{state:e,actions:t}}o(SM,"useUI");function Zx(){return ye()}o(Zx,"useTheme");import{jsxs as Rs,jsx as fg,Fragment as ZW}from"react/jsx-runtime";import{useMemo as ej}from"react";var tj=80,nj=7,rj={command:">",file:"\u{1F4C4}",history:"\u23F1",argument:"\u2022",snippet:"\u25C7",skill:"\u2605"};function ij(e,t,n){if(t<=n)return{start:0,end:t};let r=Math.floor(n/2),i=e-r,s=i+n;return i<0?(i=0,s=n):s>t&&(s=t,i=t-n),{start:i,end:s}}o(ij,"getVisibleRange");function oj({suggestion:e,isSelected:t,width:n}){let r=Zx(),i=e.icon||e.type&&rj[e.type]||"",s=i?Ui(i)+1:0,a=Ui(e.displayText||e.text),c=e.description?Ui(e.description):0,l=Math.min(a,n-s-2),u=n-s-l-3,d=Math.max(0,u),p=Bd(e.displayText||e.text,l),m=e.description?Bd(e.description,d):"";return Rs(O,{children:[i&&Rs(M,{color:t?r.colors.accent:r.colors.dim,children:[i," "]}),fg(M,{color:t?r.colors.primary:r.colors.text,bold:t,children:p}),m&&Rs(ZW,{children:[fg(M,{children:" "}),fg(M,{color:r.colors.dim,children:Bd(e.description||"",d)})]}),t&&Rs(M,{color:r.colors.accent,children:[" ","\u25C0"]})]})}o(oj,"SuggestionItem");function pg({suggestions:e,selectedIndex:t,visible:n,maxVisible:r=nj,width:i=tj,showCount:s=!1}){let a=Zx();if(!n||e.length===0)return null;let{start:c,end:l}=ej(()=>ij(t,e.length,r),[t,e.length,r]),u=e.slice(c,l);return Rs(O,{flexDirection:"column",marginLeft:2,children:[c>0&&Rs(M,{color:a.colors.dim,children:[" ","\u25B2 ",c," more..."]}),u.map((d,p)=>{let h=c+p===t;return fg(oj,{suggestion:d,isSelected:h,width:i},d.id)}),l<e.length&&Rs(M,{color:a.colors.dim,children:[" ","\u25BC ",e.length-l," more..."]}),s&&Rs(M,{color:a.colors.dim,children:[t+1,"/",e.length]})]})}o(pg,"SuggestionsDisplay");import{jsx as $l,jsxs as sj}from"react/jsx-runtime";var eI=o(({reserveSpace:e,width:t,hidden:n=!1,mode:r="inline"})=>{let i=$a(),s=ye("dark");if(n)return null;if(!i)return e?$l(O,{height:8}):null;let{state:a,suggestions:c}=i;return a.visible&&c.length>0?r==="overlay"?sj(O,{flexDirection:"column",borderStyle:"round",borderColor:s.colors.accent,paddingX:1,marginTop:1,children:[$l(M,{color:s.colors.accent,bold:!0,children:"Suggestions"}),$l(pg,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-6)})]}):$l(O,{height:8,children:$l(pg,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-2)})}):e?$l(O,{height:8}):null},"PromptSuggestionsSurface");import{jsxs as Ii,jsx as ai,Fragment as tI}from"react/jsx-runtime";import aj,{useEffect as cj,useState as lj}from"react";var Nl=15,xM=Math.max(1,Nl-2),nI=o(({confirm:e,request:t})=>e?Ii(O,{flexDirection:"column",borderStyle:"round",borderColor:"yellow",paddingX:1,marginTop:1,width:"100%",children:[Ii(M,{color:"yellow",bold:!0,children:[Re("dialog.confirm")," ",e.prompt]}),e.planContent?ai(uj,{content:e.planContent}):null,e.instruction?ai(M,{dimColor:!0,children:e.instruction}):null]}):t?Ii(O,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,marginTop:1,width:"100%",children:[t.kind==="select"?Ii(tI,{children:[Ii(M,{color:"cyan",bold:!0,children:[Re("dialog.select")," ",t.title]}),(()=>{let n=t.options??[],r=t.visibleSelectOptions??5,i=t.focusedIndex??0,s=n.length,a=0;if(s>r){let u=Math.floor(r/2);a=Math.max(0,Math.min(i-u,s-r))}let c=a,l=Math.max(0,s-a-r);return Ii(tI,{children:[c>0?ai(M,{dimColor:!0,children:Re("select.more_above",{count:c})}):null,n.slice(a,a+r).map((u,d)=>{let p=a+d,m=p===i,h=t.selectedIndices?.includes(p)??!1,g=m?"\u276F ":" ",S=h?" \u2713":"",T=u.description?` - ${u.description}`:"";return ai(M,{color:m?"cyan":void 0,dimColor:!m,children:`${g}${u.label}${T}${S}`},`${u.value}-${p}`)}),l>0?ai(M,{dimColor:!0,children:Re("select.more_below",{count:l})}):null]})})(),ai(M,{dimColor:!0,children:t.multiSelect?Re("select.multiselect_hint"):Re("select.navigate_hint")})]}):Ii(tI,{children:[Ii(M,{color:"cyan",bold:!0,children:[Re("dialog.input")," ",t.prompt]}),t.defaultValue!==void 0&&!t.secret?ai(M,{dimColor:!0,children:`${Re("input.default")} ${t.defaultValue}`}):null,ai(M,{dimColor:!0,children:`${Re("input.value")} ${t.buffer?t.secret?"\u2022\u2022\u2022\u2022":t.buffer:Re("input.type_response")}`}),ai(M,{dimColor:!0,children:Re("select.confirm_hint")})]}),t.error?ai(M,{color:"red",children:t.error}):null]}):null,"DialogSurface"),uj=o(({content:e})=>{let t=aj.useMemo(()=>e.split(`
|
|
68
|
-
`),[e]),n=t.length,r=n>
|
|
69
|
-
`)}o(TM,"formatPendingInputsBudgetText");var iI=o(({pendingInputs:e})=>{let t=rI(e);if(t.length===0)return null;let n=ye("dark");return gf(O,{flexDirection:"column",children:[t.map(r=>gf(O,{children:[gf(M,{color:n.colors.hint,children:["\u23F3"," "]}),gf(M,{color:n.colors.dim,children:["[",r.index,"/",r.total,"] ",r.preview]})]},r.index)),dj(O,{children:gf(M,{color:n.colors.dim,children:[" ","\u2191 pull all into editor \xB7 Esc drops latest"]})})]})},"QueuedCommandsSurface");import{jsx as vM}from"react/jsx-runtime";function fj(e,t){switch(e){case"warning":return t.warning;case"accent":return t.accent;default:return t.dim}}o(fj,"resolveNotificationColor");var mg=o(({notifications:e})=>{let t=e.filter(r=>r.text.trim().length>0),n=ye("dark");return t.length===0?null:vM(O,{flexDirection:"column",paddingX:1,children:t.map(r=>vM(M,{color:fj(r.tone,n.colors),children:r.text},r.id))})},"NotificationsSurface");import{jsx as bM}from"react/jsx-runtime";var oI=o(({notices:e})=>{let t=e.filter(r=>r.trim().length>0);if(t.length===0)return null;let n=ye("dark");return bM(O,{flexDirection:"column",paddingX:1,children:t.map((r,i)=>bM(M,{color:n.colors.dim,children:r},`${r}-${i}`))})},"StatusNoticesSurface");import{jsxs as RM,jsx as pj}from"react/jsx-runtime";var hg=o(({text:e})=>{let t=e?.trim();if(!t)return null;let n=ye("dark");return RM(O,{paddingX:1,children:[RM(M,{color:n.colors.hint,children:["\u22EF"," "]}),pj(M,{color:n.colors.dim,children:t})]})},"StashNotice");import{jsx as Wa,jsxs as mj}from"react/jsx-runtime";function kM({text:e,accent:t=!1,selected:n=!1}){let r=ye("dark");return Wa(O,{marginRight:1,children:Wa(M,{color:t?r.colors.accent:r.colors.primary,bold:n||t,children:`[ ${e} ]`})})}o(kM,"Pill");var gg=o(({items:e,overflowLabel:t,ctaHint:n,showSpinner:r=!1})=>{let i=e.filter(s=>s.label.trim().length>0);return i.length===0&&!t&&!n&&!r?null:mj(O,{flexDirection:"row",paddingX:1,children:[r?Wa(O,{marginRight:1,children:Wa(Ir,{})}):null,i.map(s=>Wa(kM,{text:s.hint?`${s.label} (${s.hint})`:s.label,accent:s.accent,selected:s.selected},s.id)),t?Wa(kM,{text:t}):null,n?Wa(M,{dimColor:!0,children:n}):null]})},"BackgroundTaskBar");import{jsx as yf,jsxs as hj}from"react/jsx-runtime";var EM=lS;function gj(e){let t=ye("dark");switch(e){case"cyan":return t.colors.primary;case"green":return t.colors.success;default:return t.colors.dim}}o(gj,"resolveSymbolColor");var yj=o(({row:e})=>{let t=gj(e.symbolColor);return hj(O,{flexDirection:"row",children:[yf(O,{width:EM,flexShrink:0,children:yf(M,{color:t,bold:e.isActive,wrap:"truncate",children:LR(e.symbol,EM)})}),yf(M,{color:e.kind==="summary"?ye("dark").colors.dim:void 0,bold:e.isActive,wrap:"truncate",children:e.text})]})},"ChildActivityRowView");function sI(e){return!e.shouldRender||e.rows.length===0?0:e.rows.length}o(sI,"measureChildActivitySurfaceRows");var aI=o(({viewModel:e})=>!e.shouldRender||e.rows.length===0?null:yf(O,{flexDirection:"column",flexGrow:1,children:e.rows.map(t=>yf(yj,{row:t},`${t.kind}-${t.id}`))}),"ChildActivitySurface");import MM,{createContext as PM,useContext as LM,useReducer as wj,useCallback as yt,useRef as AM,useEffect as _M}from"react";function Sj(e,t){return e.agentId===t&&e.priority==="user"&&e.mode==="prompt"}o(Sj,"isPendingPromptForAgent");function wf(e){return Nr().getSnapshot().filter(t=>Sj(t,e))}o(wf,"getPendingPrompts");function cI(e){return wf(e).map(t=>t.content)}o(cI,"getPendingPromptContents");var lI={state:Bi.Idle,currentResponse:"",error:void 0,abortController:void 0,isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentTool:void 0,toolInputCharCount:0,toolInputContent:"",iterationHistory:[],currentIteration:1,maxIter:200,isCompacting:!1,pendingInputs:[],roundStartedAt:null};function uI(e={}){let t=o(()=>e.getPendingInputAgentId?.(),"getPendingInputAgentId"),n={...lI,pendingInputs:cI(t())},r=new Set,i="",s="",a=0,c=null,l=!1,u=80,d=o(()=>{for(let T of r)T(n)},"notify"),p=o(()=>{let T=cI(t());if(T.length===n.pendingInputs.length){let x=!0;for(let I=0;I<T.length;I++)if(T[I]!==n.pendingInputs[I]){x=!1;break}if(x)return}n={...n,pendingInputs:T},d()},"syncReactStateFromQueue"),m=Nr().subscribe(()=>{p()}),h=o(()=>Nr().dequeue({agentId:t(),maxPriority:"user",mode:"prompt"}).map(x=>x.content),"drainOurSlice"),g=o(()=>{if(c&&(clearTimeout(c),c=null),i||s||a>0){let x=n.thinkingContent+s,I=s?x.length:n.thinkingCharCount+a;n={...n,currentResponse:n.currentResponse+i,thinkingContent:x,thinkingCharCount:I,...s||a>0?{isThinking:!0}:{}},i="",s="",a=0,d()}},"flushPendingUpdates"),S=o(()=>{c||(c=setTimeout(g,u))},"scheduleFlush");return{getState:o(()=>n,"getState"),setState:o(T=>{g(),n={...n,state:T},d()},"setState"),startStreaming:o(()=>{l=!1,i="",s="",a=0,c&&(clearTimeout(c),c=null),n={...n,state:Bi.Responding,currentResponse:"",abortController:new AbortController,error:void 0,roundStartedAt:Date.now()},d()},"startStreaming"),stopStreaming:o(()=>{g(),n={...n,state:Bi.Idle,abortController:void 0,roundStartedAt:null},d()},"stopStreaming"),appendResponse:o(T=>{l||(i+=T,S())},"appendResponse"),clearResponse:o(()=>{g(),n={...n,currentResponse:""},d()},"clearResponse"),setError:o(T=>{g(),n={...n,error:T,state:T?Bi.Idle:n.state},d()},"setError"),abort:o(T=>{l=!0,g(),n.abortController?.abort(),i="",s="",a=0,c&&(clearTimeout(c),c=null),T?.preservePendingInputs||h(),n={...n,state:Bi.Idle,abortController:void 0,roundStartedAt:null},d()},"abort"),reset:o(()=>{l=!0,g(),n.abortController?.abort(),i="",s="",a=0,c&&(clearTimeout(c),c=null),h(),n={...lI,pendingInputs:cI(t())},l=!1,d()},"reset"),isStreaming:o(()=>n.state===Bi.Responding||n.state===Bi.WaitingForConfirmation,"isStreaming"),subscribe:o(T=>(r.add(T),()=>{r.delete(T)}),"subscribe"),startThinking:o(()=>{g(),n={...n,isThinking:!0,thinkingCharCount:0,thinkingContent:""},d()},"startThinking"),appendThinkingChars:o(T=>{l||(a+=T,S())},"appendThinkingChars"),appendThinkingContent:o(T=>{l||(s+=T,S())},"appendThinkingContent"),stopThinking:o(()=>{g(),n={...n,isThinking:!1,thinkingCharCount:0},d()},"stopThinking"),clearThinkingContent:o(()=>{g(),n={...n,isThinking:!1,thinkingCharCount:0,thinkingContent:""},d()},"clearThinkingContent"),setCurrentTool:o(T=>{g(),n={...n,currentTool:T,toolInputCharCount:0,toolInputContent:""},d()},"setCurrentTool"),appendToolInputChars:o(T=>{n={...n,toolInputCharCount:n.toolInputCharCount+T},d()},"appendToolInputChars"),appendToolInputContent:o(T=>{n.toolInputContent.length<240&&(n={...n,toolInputContent:(n.toolInputContent+T).slice(0,240)},d())},"appendToolInputContent"),clearToolInputContent:o(()=>{n={...n,toolInputContent:""},d()},"clearToolInputContent"),getSignal:o(()=>n.abortController?.signal,"getSignal"),getFullResponse:o(()=>n.currentResponse+i,"getFullResponse"),getThinkingContent:o(()=>n.thinkingContent+s,"getThinkingContent"),startNewIteration:o(T=>{g(),n.thinkingContent||n.currentResponse?n={...n,thinkingContent:"",thinkingCharCount:0,currentResponse:"",isThinking:!1,currentTool:void 0,toolInputCharCount:0,toolInputContent:"",currentIteration:T}:n={...n,currentIteration:T},d()},"startNewIteration"),clearIterationHistory:o(()=>{g(),n={...n,iterationHistory:[],currentIteration:1,maxIter:lI.maxIter,thinkingContent:"",thinkingCharCount:0,currentResponse:"",currentTool:void 0,toolInputCharCount:0,toolInputContent:""},d()},"clearIterationHistory"),setMaxIter:o(T=>{g(),n={...n,maxIter:T},d()},"setMaxIter"),startCompacting:o(()=>{g(),n={...n,isCompacting:!0},d()},"startCompacting"),stopCompacting:o(()=>{g(),n={...n,isCompacting:!1},d()},"stopCompacting"),addPendingInput:o((T,x)=>{let I=T.trim();I&&(wf(t()).length>=5||(g(),Nr().enqueue({agentId:t(),priority:"user",mode:"prompt",delivery:x?.delivery,content:I})))},"addPendingInput"),removeLastPendingInput:o(()=>{let T=wf(t()),x=T[T.length-1];x&&(g(),Nr().dequeue({agentId:t(),maxPriority:"user",mode:"prompt",id:x.id}))},"removeLastPendingInput"),capturePendingInputCancellation:o(()=>{let T=t(),x=wf(T).map(I=>I.id);return()=>{for(let I of x)Nr().dequeue({agentId:T,maxPriority:"user",mode:"prompt",id:I})}},"capturePendingInputCancellation"),peekPendingInputDelivery:o(()=>wf(t())[0]?.delivery,"peekPendingInputDelivery"),shiftPendingInput:o(()=>(g(),Nr().dequeue({agentId:t(),maxPriority:"user",mode:"prompt",limit:1})[0]?.content),"shiftPendingInput"),clearPendingInputs:o(()=>{g(),h()},"clearPendingInputs"),consumePendingInputs:o(()=>(g(),h()),"consumePendingInputs"),dispose:o(()=>{m()},"dispose")}}o(uI,"createStreamingManager");var OM=PM(null),$M=PM(null);function yg({children:e,onStateChange:t,getPendingInputAgentId:n}){let r=AM(n);r.current=n;let i=AM(void 0);i.current||(i.current=uI({getPendingInputAgentId:o(()=>r.current?.(),"getPendingInputAgentId")}));let s=i.current,[,a]=wj(X=>X+1,0);_M(()=>s.subscribe(re=>{a(),t?.(re)}),[s,t]),_M(()=>()=>{s.dispose()},[s]);let c=yt(()=>{s.startStreaming()},[]),l=yt(()=>{s.stopStreaming()},[]),u=yt(X=>{s.appendResponse(X)},[]),d=yt(()=>{s.clearResponse()},[]),p=yt(X=>{s.setError(X)},[]),m=yt(X=>{s.abort(X)},[]),h=yt(()=>{s.reset()},[]),g=yt(()=>{s.startThinking()},[]),S=yt(X=>{s.appendThinkingChars(X)},[]),T=yt(X=>{s.appendThinkingContent(X)},[]),x=yt(()=>{s.stopThinking()},[]),I=yt(()=>{s.clearThinkingContent()},[]),v=yt(X=>{s.setCurrentTool(X)},[]),k=yt(X=>{s.appendToolInputChars(X)},[]),_=yt(X=>{s.appendToolInputContent(X)},[]),H=yt(()=>{s.clearToolInputContent()},[]),$=yt(()=>s.getSignal(),[]),P=yt(()=>s.getFullResponse(),[]),z=yt(()=>s.getThinkingContent(),[]),J=yt(X=>{s.startNewIteration(X)},[]),L=yt(()=>{s.clearIterationHistory()},[]),W=yt(X=>{s.setMaxIter(X)},[]),N=yt(()=>{s.startCompacting()},[]),q=yt(()=>{s.stopCompacting()},[]),B=yt((X,re)=>{s.addPendingInput(X,re)},[]),ae=yt(()=>{s.removeLastPendingInput()},[]),ee=yt(()=>s.shiftPendingInput(),[]),ie=yt(()=>s.peekPendingInputDelivery(),[]),C=yt(()=>{s.clearPendingInputs()},[]),Te=yt(()=>s.consumePendingInputs(),[]),Fe=yt(()=>s.capturePendingInputCancellation(),[]),Ce={startStreaming:c,stopStreaming:l,appendResponse:u,clearResponse:d,setError:p,abort:m,reset:h,startThinking:g,appendThinkingChars:S,appendThinkingContent:T,stopThinking:x,clearThinkingContent:I,setCurrentTool:v,appendToolInputChars:k,appendToolInputContent:_,clearToolInputContent:H,getSignal:$,getFullResponse:P,getThinkingContent:z,startNewIteration:J,clearIterationHistory:L,setMaxIter:W,startCompacting:N,stopCompacting:q,addPendingInput:B,removeLastPendingInput:ae,peekPendingInputDelivery:ie,shiftPendingInput:ee,clearPendingInputs:C,consumePendingInputs:Te,capturePendingInputCancellation:Fe};return MM.createElement(OM.Provider,{value:s.getState()},MM.createElement($M.Provider,{value:Ce},e))}o(yg,"StreamingProvider");function xf(){let e=LM(OM);if(!e)throw new Error("useStreamingState must be used within a StreamingProvider");return e}o(xf,"useStreamingState");function If(){let e=LM($M);if(!e)throw new Error("useStreamingActions must be used within a StreamingProvider");return e}o(If,"useStreamingActions");function NM(){let e=xf(),t=If(),n=e.state===Bi.Responding||e.state===Bi.WaitingForConfirmation;return{state:e,actions:t,isStreaming:n}}o(NM,"useStreaming");import{useCallback as xj,useRef as Ij}from"react";var Cj=500;function Tj(e={}){let{onKey:t,onEsc:n,onCtrlC:r,enabled:i=!0}=e,s=Ij(0),{exit:a}=qi(),c=xj(l=>{if(!i)return!1;if(l.name==="escape"){let u=Date.now(),d=u-s.current<Cj;return s.current=u,d&&(l.name="escape-escape"),n?.(),t?.(l),!0}return l.ctrl&&l.name==="c"?(r?.(),t?.(l),!0):l.ctrl&&l.name==="d"?(a(),!0):(t?.(l),!1)},[i,a,r,n,t]);return Wr(c,{isActive:i}),{lastEscTime:s.current}}o(Tj,"useKeypress");function vj(e){return{is:o((t,n)=>!(e.name!==t||n?.ctrl!==void 0&&e.ctrl!==n.ctrl||n?.shift!==void 0&&e.shift!==n.shift||n?.meta!==void 0&&e.meta!==n.meta),"is"),isCtrl:o(t=>e.ctrl&&e.name===t,"isCtrl"),isShift:o(t=>e.shift&&e.name===t,"isShift"),isArrow:o(()=>["up","down","left","right"].includes(e.name),"isArrow"),isChar:o(()=>e.sequence?.length===1&&!e.ctrl&&!e.meta,"isChar"),getChar:o(()=>e.sequence?.length===1?e.sequence:null,"getChar")}}o(vj,"createKeyMatcher");import{useCallback as DM,useSyncExternalStore as bj}from"react";function Rj(e,t){return e.agentId===t&&e.priority==="user"&&e.mode==="prompt"}o(Rj,"isQueuedPromptForAgent");var dI=null,wg=new Map;function kj(e){let t=Nr().getSnapshot();t!==dI&&(dI=t,wg.clear());let n=wg.get(e);if(n!==void 0)return n;let r=Object.freeze(t.filter(i=>Rj(i,e)));return wg.set(e,r),r}o(kj,"getQueueSliceSnapshot");function BM(e){let t=DM(r=>Nr().subscribe(r),[]),n=DM(()=>kj(e),[e]);return bj(t,n,n)}o(BM,"useQueuedPrompts");function Ej(e){return BM(e).map(n=>n.content)}o(Ej,"useQueuedPromptContents");function Mj(){dI=null,wg.clear()}o(Mj,"_resetQueuedPromptsCacheForTests");async function Cf(e){let t=e.existingArtifactLedger?.map(n=>({...n,metadata:n.metadata?{...n.metadata}:void 0}));return{messages:e.existingMessages??[],uiHistory:e.existingUiHistory?.map(n=>({...n})),lineage:e.existingLineage??void 0,artifactLedger:t,extensionState:e.existingExtensionState?structuredClone(e.existingExtensionState):void 0,extensionRecords:e.existingExtensionRecords?.map(n=>({...n})),extensionStateDirty:!1,extensionRecordsDirty:!1,sessionSnapshotDirty:!1,sessionId:e.sessionId??ja(),title:"",gitRoot:e.gitRoot,runtimeInfo:e.runtimeInfo,createdAt:new Date().toISOString(),lastAccessed:new Date().toISOString()}}o(Cf,"createInteractiveContext");function ja(){return Tb()}o(ja,"generateSessionId");function Ci(e){e.lastAccessed=new Date().toISOString()}o(Ci,"touchContext");async function Tf(e){let t;return{getGuardrail:o(()=>{if(t)return t;let r=Vb({getToolProjection:o(i=>(Vc(i)??Vw(i))?.toClassifierInput,"getToolProjection"),getToolSideEffect:o(i=>(Vc(i)??Vw(i))?.sideEffect,"getToolSideEffect"),resolveProvider:o(i=>{try{return ua(i)}catch{return}},"resolveProvider"),defaultProvider:e.getCurrentProviderName(),defaultModel:e.getCurrentModel()??"",getDefaultProvider:e.getCurrentProviderName,getDefaultModel:o(()=>e.getCurrentModel()??"","getDefaultModel"),admitWorkspaceSandboxCall:e.admitWorkspaceSandboxCall,log:e.log,sharedState:e.sharedState,projectRoot:e.projectRoot,executionCwd:e.executionCwd,trustProcessEnvironmentPathExpansion:e.trustProcessEnvironmentPathExpansion!==!1,extraCollectors:e.extraCollectors,extraAbsoluteDenyChecks:[tR],userSettings:e.autoModeSettings.classifierModel,envVar:e.autoModeSettings.classifierModelEnv,administratorPolicy:e.administratorPolicy,reviewPolicy:e.autoModeSettings.reviewPolicy,modelGuidance:e.modelGuidance});return t={...r,async beforeTool(i,s){let a=await r.beforeTool(i,s);return a.action==="escalate"?{action:"block",reason:`[auto_review_denied] ${a.reason}`}:a}},t},"getGuardrail"),resetTurn:o(()=>t?.resetTurn(),"resetTurn")}}o(Tf,"bootstrapAutoMode");import{exec as Aj}from"child_process";import{promisify as _j}from"util";var Pj=_j(Aj),Lj={read:"read",grep:"grep",glob:"glob",write:"write",edit:"edit",bash:"bash",undo:"undo",askuserquestion:"ask-user-question",askuser:"ask-user-question"};function HM(e){let t=[],n="",r=0;for(let i of e){if(i===","&&r===0){n.trim()&&t.push(n.trim()),n="";continue}i==="("?r++:i===")"&&r>0&&r--,n+=i}return n.trim()&&t.push(n.trim()),t}o(HM,"splitTopLevelCommaList");function Oj(e){if(!e?.trim())return{configured:!1,rules:[],invalidEntries:[]};let t=[];return{configured:!0,rules:HM(e).map(r=>{if(r==="*")return{tool:"*"};if(r.includes("(")&&!r.endsWith(")")){t.push(r);return}let i=r.match(/^([^(]+?)(?:\((.*)\))?$/);if(!i){t.push(r);return}let s=Lj[i[1].replace(/[^a-z]/gi,"").toLowerCase()];if(!s){t.push(r);return}let a=i[2]?HM(i[2]).map(c=>c.trim()).filter(Boolean):void 0;return{tool:s,patterns:a&&a.length>0?a:void 0}}).filter(r=>r!==void 0),invalidEntries:t}}o(Oj,"parseAllowedTools");function $j(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${t}$`,"i")}o($j,"wildcardToRegExp");function FM(e,t){return $j(e).test(t)}o(FM,"matchesPattern");function WM(e,t,n){if(!e.configured)return!0;if(e.rules.length===0)return!1;let r=t.toLowerCase(),i=r==="bash"?String(n.command??"").trim():"";return e.rules.some(s=>s.tool!=="*"&&s.tool!==r?!1:!s.patterns||s.patterns.length===0||r!=="bash"?!0:s.patterns.some(a=>FM(a,i)))}o(WM,"isToolAllowed");function Nj(e,t){return e.matcher?FM(e.matcher,t):!0}o(Nj,"hookMatches");function Dj(e,t){if(!t)return e;let n=t.name.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`/(?:skill:)?${n}(?![\\w/-])`,"i"),`the active Skill "${t.name}"`).trim()||`Execute the active Skill "${t.name}".`}o(Dj,"buildModelUserInput");async function Bj(e,t,n,r,i,s,a){let c=typeof n.displayName=="string"?n.displayName:"frontmatter invocation",l={command:t.command,_reason:`Frontmatter hook ${e} for ${c}`,_frontmatterHook:!0,_hookEvent:e,_hookMatcher:t.matcher};if(!WM(s,"bash",l))return{allow:!1,message:`Hook ${e} for ${c} is blocked by allowed-tools policy.`};let u=await i.beforeToolExecute?.("bash",l);if(u!==!0)return{allow:!1,message:typeof u=="string"?u:`Hook ${e} for ${c} was blocked by the current permission policy.`};try{let{stdout:d,stderr:p}=await Pj(t.command,{cwd:a,env:{...process.env,KODAX_HOOK_EVENT:e,KODAX_HOOK_PAYLOAD:JSON.stringify(n)},maxBuffer:1048576,windowsHide:!0}),m=[d.trim(),p.trim()].filter(Boolean).join(`
|
|
70
|
-
`);m&&i.onToolResult?.({id:`frontmatter-hook:${e}`,name:"bash",content:m}),p.trim()&&await r(`[Hook ${e} stderr] ${p.trim()}`);let h=d.trim();if(!h)return{};try{let g=JSON.parse(h);return{allow:typeof g.allow=="boolean"?g.allow:typeof g.continue=="boolean"?g.continue:void 0,message:typeof g.message=="string"?g.message:void 0,additionalContext:typeof g.additionalContext=="string"?g.additionalContext:typeof g.additional_context=="string"?g.additional_context:void 0}}catch{return e==="PreToolUse"?{allow:!1,message:`Hook ${e} for ${c} returned invalid JSON.`}:{message:h,additionalContext:h}}}catch(d){let p=d instanceof Error?d.message:String(d);return await r(`[Hook ${e} failed] ${p}`),e==="PreToolUse"?{allow:!1,message:`Hook ${e} for ${c} failed.`}:{}}}o(Bj,"executeHookCommand");async function
|
|
71
|
-
${p.additionalContext}`:p.additionalContext),p.allow===!1){u.allow=!1;break}}return u}o(
|
|
61
|
+
${HF}`}o(kx,"buildThinkingPreview");function GF(e){for(let t=e.length-1;t>=0;t--)if(e[t]?.type==="user"&&e[t]?.isSessionUiOnly!==!0)return t;return 0}o(GF,"findActiveRoundStartIndex");function Xe(e,t,n,r,i){let s=nn(n),a=s.split(`
|
|
62
|
+
`),c=i.contentOffset===void 0?void 0:sr(a,Math.max(1,r),0,0),l=c?.visualLines??VF(s,r),u=[],d=0;for(let h of a)u.push(d),d+=h.length+1;if(l.length===0){e.push({key:`${t}-0`,text:"",...i});return}let p=-1,m=0;l.forEach((h,g)=>{let S=c?.visualToLogicalMap[g]?.[0];S!==void 0&&S!==p&&(p=S,m=0),e.push({key:`${t}-${g}`,text:h,...i,...c?{contentOffset:(i.contentOffset??0)+(u[p]??0)+m}:{}}),m+=h.length})}o(Xe,"pushWrappedRows");function El(e,t){e.push({key:t,text:" "})}o(El,"pushBlankRow");function Dt(e,t=0){return Math.max(20,e-t)}o(Dt,"getBodyWidth");function KF(e){if(!e.input&&e.inputText===void 0)return[];let t=(e.inputText??JSON.stringify(e.input,null,2))?.trim();return t?t.split(/\r?\n/).map((n,r)=>r===0?`input: ${n}`:n):[]}o(KF,"buildToolInputPreview");function zF(e,t,n,r,i,s=!1,a=!1){Xe(e,`${t}-tool-${n.id}-main`,`${EE(n.status)} ${$d({tool:n,count:r})}`,Dt(i,2),{color:ME(n.status),indent:2,bold:n.status===K.Executing}),SS(n).forEach((u,d)=>{let p=wS(u);Xe(e,`${t}-tool-${n.id}-explanation-${d}`,u,Dt(i,4),{color:p,indent:4})});let l=n.status===K.Success&&typeof n.output=="string"&&n.output.trim().length>0&&$F(n)&&BF(e,`${t}-tool-${n.id}`,n.output,i,a);if(s){let u=KF(n),d=a?u:u.slice(0,6);d.forEach((p,m)=>{Xe(e,`${t}-tool-${n.id}-input-${m}`,p,Dt(i,4),{color:"dim",indent:4})}),!a&&u.length>d.length&&Xe(e,`${t}-tool-${n.id}-input-more`,`... (${u.length-d.length} more lines)`,Dt(i,4),{color:"dim",indent:4})}if(s&&!l&&typeof n.output=="string"&&n.output.trim()){let u=n.output.trim().split(/\r?\n/),d=a?u:u.slice(0,8);d.forEach((m,h)=>{Xe(e,`${t}-tool-${n.id}-output-${h}`,m,Dt(i,4),{color:"dim",indent:4})});let p=u.length;!a&&p>d.length&&Xe(e,`${t}-tool-${n.id}-output-more`,`... (${p-d.length} more lines)`,Dt(i,4),{color:"dim",indent:4})}}o(zF,"buildToolRows");function qF(e,t,n,r){let i=n.status===K.Executing,s=i?"":`${EE(n.status)} `;Xe(e,`${t}-tool-${n.id}-main`,`${s}${$d({tool:n,count:1})}`,Dt(r,2),{color:ME(n.status),indent:2,bold:i,spinner:i}),SS(n).forEach((c,l)=>{let u=wS(c);Xe(e,`${t}-tool-${n.id}-explanation-${l}`,c,Dt(r,4),{color:u,indent:4})})}o(qF,"buildLiveToolRows");function AE(e){let{items:t,viewportWidth:n,isLoading:r=!1,maxLines:i=1e3,isThinking:s=!1,thinkingCharCount:a=0,thinkingContent:c="",streamingResponse:l="",currentTool:u,activeToolCalls:d=[],toolInputCharCount:p=0,toolInputContent:m="",iterationHistory:h=[],currentIteration:g=1,isCompacting:S=!1,managedAgentMode:T,managedPhase:x,managedHarnessProfile:I,managedWorkerTitle:v,managedRound:k,managedMaxRounds:_,lastLiveActivityLabel:H,liveStatusLines:$=[],currentTodoActiveForm:P,showFullThinking:z=!1,showDetailedTools:J=!1,showAllContent:L=!1,showLiveProgressRows:W=!0}=e,N=[];for(let q=0;q<t.length;q+=1){let B=t[q];switch(B.type){case"user":{Xe(N,`${B.id}-header`,`You [${uf(B.timestamp)}]`,n,{color:"primary",bold:!0,itemId:B.id});let ae=jh(B.text);Xe(N,`${B.id}-body`,ae,Dt(n,2),{color:"text",indent:2,itemId:B.id,...ae===B.text&&nn(B.text)===B.text?{contentOffset:B.textOffset??0}:{}}),N.push({key:`${B.id}-blank`,text:" ",itemId:B.id});break}case"assistant":{let ae=Rx(L?B.text:B.compactText??B.text);Xe(N,`${B.id}-header`,`Assistant [${uf(B.timestamp)}]`,n,{color:"secondary",bold:!0,spinner:B.isStreaming,itemId:B.id}),Xe(N,`${B.id}-body`,ae,Dt(n,2),{color:"text",indent:2,itemId:B.id,...B.compactText===void 0&&nn(ae)===ae?{contentOffset:(B.textOffset??0)+B.text.indexOf(ae)}:{}}),N.push({key:`${B.id}-blank`,text:" ",itemId:B.id});break}case"system":Xe(N,`${B.id}-header`,`System [${uf(B.timestamp)}]`,n,{color:"dim",bold:!0,itemId:B.id}),Xe(N,`${B.id}-body`,B.text,Dt(n,2),{color:"dim",indent:2,itemId:B.id}),N.push({key:`${B.id}-blank`,text:" ",itemId:B.id});break;case"tool_group":{let ae=new Map(B.tools.map(ie=>[ie,B.id])),ee=[...B.tools];for(;t[q+1]?.type==="tool_group";){let ie=t[++q];if(ie.type!=="tool_group")break;for(let C of ie.tools)ee.push(C),ae.set(C,ie.id)}Xe(N,`${B.id}-header`,`Tools [${uf(B.timestamp)}]`,n,{color:"accent",bold:!0,itemId:B.id});for(let ie of Jm(ee)){let C=ae.get(ie.tool),Te=[...new Set(ie.members.map(Ce=>ae.get(Ce)))],Fe=N.length;zF(N,C,ie.tool,ie.count,n,J,L);for(let Ce=Fe;Ce<N.length;Ce+=1)N[Ce]={...N[Ce],itemId:C,itemIds:Te}}N.push({key:`${B.id}-blank`,text:" ",itemId:B.id});break}case"thinking":{Xe(N,`${B.id}-header`,"Thinking",n,{color:"thinking",italic:!0,itemId:B.id});let ae=kE()&&!z&&!L?jF(B.compactText??B.text):void 0;if(ae?.hasMore){Xe(N,`${B.id}-body`,`${ae.summary}${WF}`,Dt(n,2),{color:"thinking",indent:2,italic:!0,itemId:B.id}),N.push({key:`${B.id}-blank`,text:" ",itemId:B.id});break}let ee=L?kx(B.text,i,z,L):B.compactText??kx(B.text,i,z,L);Xe(N,`${B.id}-body`,ee,Dt(n,2),{color:"thinking",indent:2,italic:!0,itemId:B.id}),N.push({key:`${B.id}-blank`,text:" ",itemId:B.id});break}case"error":Xe(N,`${B.id}-header`,"\u2717 Error",n,{color:"error",bold:!0,itemId:B.id}),Xe(N,`${B.id}-body`,B.text,Dt(n,2),{color:"error",indent:2,itemId:B.id}),N.push({key:`${B.id}-blank`,text:" ",itemId:B.id});break;case"info":Xe(N,`${B.id}-body`,`${B.icon??"\u2139"} ${Rx(L?B.text:B.compactText??B.text)}`,n,{color:"info",itemId:B.id}),N.push({key:`${B.id}-blank`,text:" ",itemId:B.id});break;case"event":Xe(N,`${B.id}-body`,`${B.icon??">"} ${L?B.text:B.compactText??B.text}`,n,{color:"text",itemId:B.id}),N.push({key:`${B.id}-blank`,text:" ",itemId:B.id});break;case"hint":Xe(N,`${B.id}-header`,"\u{1F4A1} Hint",n,{color:"hint",bold:!0,itemId:B.id}),Xe(N,`${B.id}-body`,B.text,Dt(n,2),{color:"dim",indent:2,itemId:B.id}),N.push({key:`${B.id}-blank`,text:" ",itemId:B.id});break;case"sidecar":{let ae=B.delivery==="budget-exhausted"?"\u26A1 Sidecar Verifier \u2014 budget exhausted":B.verdict==="blocked"?"\u26A1 Sidecar Verifier \u2014 blocked":B.verdict==="revise"?"\u26A1 Sidecar Verifier \u2014 revise":"\u26A1 Sidecar Verifier";Xe(N,`${B.id}-header`,`${ae} [${uf(B.timestamp)}]`,n,{color:"warning",bold:!0,itemId:B.id}),Xe(N,`${B.id}-body`,B.text,Dt(n,2),{color:"dim",indent:2,itemId:B.id}),N.push({key:`${B.id}-blank`,text:" ",itemId:B.id});break}default:break}}if(W&&h.length>0&&(h.forEach(q=>{if(Xe(N,`iteration-${q.iteration}-header`,`\u2500\u2500 Round ${q.iteration} \u2500\u2500`,n,{color:"dim",bold:!0}),q.thinkingSummary){let B=q.thinkingLength>60?` (~${yn(or(q.thinkingLength))} tokens total)`:"";Xe(N,`iteration-${q.iteration}-thinking`,`\u{1F4AD} ${q.thinkingSummary}${B}`,Dt(n,1),{color:"thinking",indent:1,italic:!0})}if(q.response){let B=q.response.slice(0,200);Xe(N,`iteration-${q.iteration}-response`,B,Dt(n,1),{color:"text",indent:1}),q.response.length>200&&Xe(N,`iteration-${q.iteration}-response-more`,`... (~${yn(or(q.response.length))} tokens total)`,Dt(n,1),{color:"dim",indent:1})}q.toolsUsed.length>0&&Xe(N,`iteration-${q.iteration}-tools`,`* tools: ${q.toolsUsed.join(", ")}`,Dt(n,1),{color:"accent",indent:1}),El(N,`iteration-${q.iteration}-blank`)}),Xe(N,"iteration-current-header",`\u2500\u2500 Round ${g} (current) \u2500\u2500`,n,{color:"accent",bold:!0}),El(N,"iteration-current-blank")),r&&c){let q=kx(c,i,z,L);Xe(N,"thinking-stream-header","Thinking",n,{color:"thinking",italic:!0}),Xe(N,"thinking-stream-body",q,Dt(n,2),{color:"thinking",indent:2,italic:!0}),El(N,"thinking-stream-blank")}if(r){let q="Thinking",B="",ae=UF(H,v),ee=v??"Scout",ie=x==="routing"?`[${T?T.toUpperCase():"AMA"} Routing] `:x==="preflight"?`[${T?T.toUpperCase():"AMA"} ${ee}] `:x==="verifying"?`[${T?T.toUpperCase():"AMA"} Verifying] `:I?`[${T?T.toUpperCase():"AMA"} ${v??"Worker"}] `:"",C=d.filter(re=>re.status===K.Executing).length,Te=d.filter(re=>re.status===K.Success).length,Fe=d.filter(re=>re.status===K.Error).length,Ce=d.filter(re=>re.status===K.Cancelled).length,X=d.length>0&&(C>0||!l);if(S)q="Compacting";else if(x==="verifying")B=ie,q="checking agent output";else if(X){let re=[];if(C>0&&re.push(`${C} running`),Te>0&&re.push(`${Te} done`),Fe>0&&re.push(`${Fe} error`),Ce>0&&re.push(`${Ce} cancelled`),re.length===0&&re.push(`${d.length} tools`),Xe(N,"loading-tools-header",`${ie}[Tools] ${re.join(", ")}`,n,{color:"primary",bold:!0,spinner:C>0}),d.forEach(je=>{qF(N,"loading-tools",je,n)}),El(N,"loading-tools-blank"),C>0&&!l&&!W)return N}else if(P)B=ie||"[Plan] ",q=P;else if(u)B=ie||"[Tool] ",q=ae?.startsWith("[Tools]")?ae:Qm(u,m,p);else if(s){B=ie||"[Thinking] ";let re=k&&_&&k>1?` round ${k}/${_}`:"";q=a>0?`~${yn(or(a))} tokens${re}`:ae?`${ae}${re}`:`processing${re}`}else ae&&(q=ae);W&&Xe(N,"loading-indicator",`${B}${q}...`,n,{color:"accent",spinner:!0})}if(W&&$.length>0&&(Xe(N,"live-status-header","Live status",n,{color:"dim",bold:!0}),$.forEach((q,B)=>{Xe(N,`live-status-${B}`,q,Dt(n,2),{color:"dim",indent:2})}),El(N,"live-status-blank")),l){let q=l.lastIndexOf(`
|
|
63
|
+
`),B=q>=0?l.slice(0,q+1):"";B.length>0&&(Xe(N,"streaming-header","Assistant",n,{color:"secondary",bold:!0}),Xe(N,"streaming-body",B,Dt(n,2),{color:"text",indent:2}),El(N,"streaming-blank"))}return N}o(AE,"buildTranscriptRows");function XF(e,t,n=1e3,r=!1,i=!1,s=!1){return Ml(e,t,n,r,void 0,i,s)}o(XF,"buildStaticTranscriptSections");var vE=new WeakMap,bE=new Set(["thinking","tool_group"]);function YF(){return process.env.KODAX_TRANSCRIPT_TIGHT!=="0"}o(YF,"isTightRunSpacingEnabled");function JF(e,t){return YF()?t.map((n,r)=>{let i=e[r],s=e[r+1];if(!i||!s||!bE.has(i.type)||!bE.has(s.type))return n;let a=n.rows,c=a[a.length-1];return c&&c.text===" "&&c.key.endsWith("-blank")?{...n,rows:a.slice(0,-1)}:n}):t}o(JF,"suppressTightRunBlanks");function Ml(e,t,n=1e3,r=!1,i,s=!1,a=!1){let c=[];for(let u of e){let d=c.at(-1);!r&&u.type==="tool_group"&&!i?.has(u.id)&&d?.[0]?.type==="tool_group"&&!i?.has(d[0].id)?d.push(u):c.push([u])}let l=c.map(u=>{let d=u[0],p=r||!!i?.has(d.id),m=`${t}|${n}|${s?1:0}|${p?1:0}|${kE()?1:0}|${a?1:0}`,h=u.length===1?vE.get(d):void 0;if(h!==void 0&&h.sig===m)return h.section;let g={key:d.id,...u.length>1?{itemIds:u.map(S=>S.id)}:{},rows:AE({items:u,viewportWidth:t,maxLines:n,showAllContent:s,showDetailedTools:p,showFullThinking:a})};return u.length===1&&vE.set(d,{sig:m,section:g}),g});return JF(c.map(u=>u[0]),l)}o(Ml,"buildHistoryItemTranscriptSections");function QF(e,t){return{key:e,rows:AE(t)}}o(QF,"buildDynamicTranscriptSection");function Uh(e){let{items:t,viewportWidth:n,maxLines:r=1e3,showDetailedTools:i=!1,showAllContent:s=!1,showFullThinking:a=!1,windowed:c=!1}=e;if(c)return{staticSections:[],activeItems:t};let l=GF(t),u=t.slice(0,l),d=t.slice(l);return{staticSections:XF(u,n,r,i,s,a),activeItems:d}}o(Uh,"buildTranscriptStaticPortion");function Vh(e){let{activeItems:t,viewportWidth:n,maxLines:r=1e3,showDetailedTools:i=!1,showAllContent:s=!1,showFullThinking:a=!1,expandedItemKeys:c,...l}=e,u=Ml(t,n,r,i,c,s,a),d=QF("active-pending",{...l,items:[],managedLiveEvents:[],lastLiveActivityLabel:l.lastLiveActivityLabel,viewportWidth:n,maxLines:r,showAllContent:s,showDetailedTools:i,showFullThinking:a,expandedItemKeys:c}),p=d.rows.length>0?[d]:[];return{sections:u,previewSections:p}}o(Vh,"buildTranscriptDynamicPortion");function Gh(e,t){return{staticSections:e.staticSections,sections:t.sections,rows:Ba(t.sections),previewSections:t.previewSections,previewRows:Ba(t.previewSections)}}o(Gh,"composeTranscriptRenderModel");function _E(e,t,n){let r=Gh(e,t);return n?{...r,staticSections:[n,...r.staticSections]}:r}o(_E,"buildInlinePromptRenderModel");function PE(e,t,n,r){let i=Number.isFinite(r)?Math.max(1,Math.floor(r)):1,s=[...t,...n],a=Math.max(0,s.length-i),c=s.slice(a),l=e.flatMap(m=>m.rows),u=s.slice(0,a).filter(m=>m.spinner!==!0);return{committedSections:[...l,...u].map((m,h)=>({key:`il-${h}`,rows:[{...m,key:`il-${h}`}]})),liveRows:c}}o(PE,"splitInlineLedgerModel");function ZF(e){return e.replace(/^(You|Assistant|Tools|System) \[\d{1,2}:\d{2}[^\]]*\]$/u,"$1")}o(ZF,"stripHeaderTimestamp");function LE(e){let t=5381;for(let n of e.rows){let r=ZF(n.text);for(let i=0;i<n.key.length;i++)t=(t<<5)+t+n.key.charCodeAt(i)|0;t=(t<<5)+t+0|0;for(let i=0;i<r.length;i++)t=(t<<5)+t+r.charCodeAt(i)|0;t=(t<<5)+t+1|0}return{key:e.key,fingerprint:`${t>>>0}`}}o(LE,"identifyInlineCommitSection");function Kh(e){let t=Uh({items:e.items,viewportWidth:e.viewportWidth,maxLines:e.maxLines,showDetailedTools:e.showDetailedTools,showAllContent:e.showAllContent,showFullThinking:e.showFullThinking,windowed:e.windowed}),{items:n,...r}=e,i=Vh({...r,activeItems:t.activeItems});return Gh(t,i)}o(Kh,"buildTranscriptRenderModel");function Ba(e){return e.flatMap(t=>t.rows)}o(Ba,"flattenTranscriptSections");function OE(e){let t=5381;for(let n of e.rows){let r=`${n.key}\0${n.text}`;for(let i=0;i<r.length;i++)t=Math.imul(t,33)+r.charCodeAt(i)|0}return{key:e.key,fingerprint:`${e.rows.length}:${(t>>>0).toString(36)}`}}o(OE,"identifyTranscriptSection");function Ex(e){let t=[...e.staticSections,...e.sections];return{staticSections:[],sections:t,rows:Ba(t),previewSections:[...e.previewSections],previewRows:Ba(e.previewSections)}}o(Ex,"materializeTranscriptRenderModel");function $E(e,t={}){let{start:n,end:r,viewportTop:i,viewportHeight:s,viewportRows:a,scrollOffset:c=0,windowed:l=!1}=t;if(typeof i=="number"&&typeof s=="number"){let u=Math.max(0,i),d=Math.max(u,i+Math.max(0,s));return e.slice(u,d)}return typeof n=="number"&&typeof r=="number"?e.slice(Math.max(0,n),Math.max(0,r)):l?Mx(e,a,c):e}o($E,"resolveVisibleTranscriptRows");var NE=200,eW=50,DE=30;function BE(e,t,n=NE,r=eW){let i=t.current,s=i?e.findIndex(l=>l.id===i.id):-1,a=s>=0?s:i?Math.min(i.idx,Math.max(0,e.length-n)):0;e.length-a>n+r&&(a=e.length-n);let c=e[a];return c&&(i?.id!==c.id||i.idx!==a)?t.current={id:c.id,idx:a}:!c&&i&&(t.current=null),a}o(BE,"computeTranscriptCapStart");function HE(e,t){if(t<=0||e.length===0)return[];let n=0,r=0;for(let i=e.length-1;i>=0;i--)if(e[i]?.type==="user"&&e[i]?.isSessionUiOnly!==!0&&(n++,n>t)){r=i+1;break}return e.slice(r)}o(HE,"sliceHistoryToRecentRounds");function FE(e,t){if(t<=0||e.length===0)return[];let n=0;for(let r=e.length-1;r>=0;r-=1)if(e[r]?.isSessionUiOnly!==!0&&(n+=1,n>t))return e.slice(r+1);return e}o(FE,"sliceHistoryToRecentCanonicalItems");function WE(e,t=NE){let n=e.reduce((r,i)=>r+(i.isSessionUiOnly===!0?1:0),0);return t+n}o(WE,"transcriptRenderCapForHistory");function Mx(e,t,n=0){if(!t||t<=0)return e;let r=Math.max(0,n),i=Math.max(0,e.length-r),s=Math.max(0,i-t);return e.slice(s,i)}o(Mx,"getVisibleTranscriptRows");function jE(e,t,n){if(!t||!n||n<=0)return 0;let r=Ba(e),i=e.find(d=>d.key===t||d.itemIds?.includes(t));if(!i||i.rows.length===0)return 0;let a=(i.itemIds?i.rows.filter(d=>d.itemIds?.includes(t)):i.rows)[0]?.key,c=r.findIndex(d=>d.key===a);if(c===-1)return 0;let l=Math.max(0,c-Math.floor(n/3)),u=Math.min(r.length,l+n);return Math.max(0,r.length-u)}o(jE,"resolveScrollOffsetForTranscriptItem");function UE(e,t){if(t)switch(t){case"warning":return e.colors.warning;case"info":return e.colors.info;case"hint":return e.colors.hint;default:return e.colors[t]}}o(UE,"resolveTranscriptColor");var zh="__transcript_hidden_divider__";function VE(e,t){let n=e===1?"message":"messages";return{id:zh,type:"info",timestamp:t?Math.max(0,t-1):0,text:`${e} earlier ${n} hidden \u2014 press Ctrl+E to show all`,icon:"\u2191"}}o(VE,"buildTranscriptHiddenDivider");function Ax(e){return e.id===zh}o(Ax,"isTranscriptHiddenDivider");var GE=new ll(500);function tW(e){let t=gr(e),n=[],r=[],i=0,s=0;for(let a of t)n.push(i),r.push(s),i+=a.length,s+=bS(a);return{graphemes:t,codeUnitOffsets:n,visualOffsets:r,length:t.length,displayWidth:s}}o(tW,"buildTranscriptTextMetrics");function df(e){let t=GE.get(e);if(t)return t;let n=tW(e);return GE.set(e,n),n}o(df,"getTranscriptTextMetrics");function Ts(e){return df(e).length}o(Ts,"getTranscriptTextLength");function KE(e){return df(e).displayWidth}o(KE,"getTranscriptTextDisplayWidth");function qh(e,t){let n=df(e),r=Math.max(0,Math.min(n.length-1,t));return n.graphemes[r]??""}o(qh,"charAtTranscriptText");function Al(e,t,n){let r=df(e),i=Math.max(0,Math.min(r.length,Math.floor(t))),s=typeof n=="number"?Math.max(i,Math.min(r.length,Math.floor(n))):r.length;return r.graphemes.slice(i,s).join("")}o(Al,"sliceTranscriptText");function zE(e,t){let n=df(e),r=Math.max(0,Math.floor(t));if(r<=0||n.length===0)return 0;for(let i=0;i<n.length;i+=1){let s=n.visualOffsets[i]??0,a=i+1<n.length?n.visualOffsets[i+1]??n.displayWidth:n.displayWidth;if(r<a||r===s)return i}return n.length}o(zE,"resolveTranscriptTextIndexAtVisualColumn");function Xh(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}o(Xh,"formatTimestamp");function nW(e,t){let n=e.split(`
|
|
64
|
+
`),r=n.slice(0,t),i=n.length>t;return{lines:r,hasMore:i}}o(nW,"truncateLines");function rW(e){switch(e){case K.Scheduled:return"\u25CB";case K.Validating:return"\u25D0";case K.AwaitingApproval:return"\u23F8";case K.Executing:return"\u25CF";case K.Success:return"\u2713";case K.Error:return"\u2717";case K.Cancelled:return"\u2298";default:return"?"}}o(rW,"getToolStatusIcon");function iW(e,t){switch(e){case K.Scheduled:case K.Validating:return t.colors.dim;case K.AwaitingApproval:return t.colors.accent;case K.Executing:return t.colors.primary;case K.Success:return t.colors.success;case K.Error:return t.colors.error;case K.Cancelled:return t.colors.dim;default:return t.colors.text}}o(iW,"getToolStatusColor");var oW=jr(({item:e,theme:t})=>{let n=Yi(()=>jh(e.text),[e.text]);return yt(O,{flexDirection:"column",marginBottom:1,children:[yt(O,{children:[_e(M,{color:t.colors.primary,bold:!0,children:"You"}),yt(M,{dimColor:!0,children:[" [",Xh(e.timestamp),"]"]})]}),_e(O,{marginLeft:2,children:_e(M,{color:t.colors.text,children:n})})]})}),sW=jr(({item:e,theme:t,maxLines:n})=>{let r=e.compactText??e.text,{lines:i,hasMore:s}=nW(r,n);return yt(O,{flexDirection:"column",marginBottom:1,children:[yt(O,{children:[_e(M,{color:t.colors.secondary,bold:!0,children:"Assistant"}),e.isStreaming&&yt(_x,{children:[_e(M,{children:" "}),_e(Ir,{color:t.colors.accent})]}),yt(M,{dimColor:!0,children:[" [",Xh(e.timestamp),"]"]})]}),yt(O,{marginLeft:2,flexDirection:"column",children:[i.map((a,c)=>_e(M,{color:t.colors.text,children:a||" "},c)),s&&yt(M,{dimColor:!0,children:["... (",r.split(`
|
|
65
|
+
`).length-n," more lines)"]})]})]})}),aW=jr(({item:e,theme:t})=>yt(O,{flexDirection:"column",marginBottom:1,children:[yt(O,{children:[_e(M,{color:t.colors.dim,bold:!0,children:"System"}),yt(M,{dimColor:!0,children:[" [",Xh(e.timestamp),"]"]})]}),_e(O,{marginLeft:2,children:_e(M,{dimColor:!0,children:e.text})})]})),cW=jr(({tool:e,count:t=1,theme:n})=>{let r=rW(e.status),i=iW(e.status,n);return yt(O,{flexDirection:"column",marginLeft:2,children:[yt(O,{children:[yt(M,{color:i,children:[r," "]}),_e(M,{color:n.colors.text,bold:!0,children:$d({tool:e,count:t})})]}),e.error&&_e(O,{marginLeft:2,children:_e(M,{color:n.colors.error,children:e.error})})]})}),lW=jr(({item:e,theme:t})=>{let n=Jm(e.tools);return yt(O,{flexDirection:"column",marginBottom:1,children:[yt(O,{children:[_e(M,{color:t.colors.accent,bold:!0,children:"Tools"}),yt(M,{dimColor:!0,children:[" [",Xh(e.timestamp),"]"]})]}),n.map(r=>_e(cW,{tool:r.tool,count:r.count,theme:t},`${r.tool.id}-${r.count}`))]})}),uW=jr(({item:e,theme:t})=>yt(O,{flexDirection:"column",marginBottom:1,children:[_e(O,{children:_e(M,{color:t.colors.thinking,italic:!0,children:"Thinking"})}),_e(O,{marginLeft:2,children:_e(M,{color:t.colors.thinking,italic:!0,children:e.compactText??e.text})})]})),dW=jr(({item:e,theme:t})=>yt(O,{flexDirection:"column",marginBottom:1,children:[_e(O,{children:yt(M,{color:t.colors.error,bold:!0,children:["\u2717"," Error"]})}),_e(O,{marginLeft:2,children:_e(M,{color:t.colors.error,children:e.text})})]})),fW=jr(({item:e,theme:t})=>_e(O,{flexDirection:"column",marginBottom:1,children:yt(M,{color:t.colors.text,children:[_e(M,{color:t.colors.accent,bold:!0,children:e.icon??">"}),_e(M,{children:" "}),e.compactText??e.text]})})),pW=jr(({item:e,theme:t})=>_e(O,{flexDirection:"column",marginBottom:e.tightSpacing?0:1,children:yt(M,{color:t.colors.info,children:[yt(M,{bold:!0,children:[e.icon??"\u2139"," "]}),e.compactText??e.text]})})),mW=jr(({item:e,theme:t})=>yt(O,{flexDirection:"column",marginBottom:1,children:[_e(O,{children:yt(M,{color:t.colors.hint,bold:!0,children:["\u{1F4A1}"," Hint"]})}),_e(O,{marginLeft:2,children:_e(M,{dimColor:!0,children:e.text})})]})),hW=jr(({item:e,theme:t,maxLines:n=1e3})=>{let r=Yi(()=>ye("dark"),[]),i=t??r;switch(e.type){case"user":return _e(oW,{item:e,theme:i});case"assistant":return _e(sW,{item:e,theme:i,maxLines:n});case"system":return _e(aW,{item:e,theme:i});case"tool_group":return _e(lW,{item:e,theme:i});case"thinking":return _e(uW,{item:e,theme:i});case"error":return _e(dW,{item:e,theme:i});case"event":return _e(fW,{item:e,theme:i});case"info":return _e(pW,{item:e,theme:i});case"hint":return _e(mW,{item:e,theme:i});default:return _e(O,{children:_e(M,{dimColor:!0,children:"Unknown item type"})})}});function gW(e,t){if(e.theme!==t.theme||(e.animateSpinners??!0)!==(t.animateSpinners??!0)||(e.selectedItem??!1)!==(t.selectedItem??!1))return!1;let n=e.row,r=t.row;if(n!==r){if(n.key!==r.key||n.text!==r.text||n.color!==r.color||n.bg!==r.bg||n.bold!==r.bold||n.italic!==r.italic||n.indent!==r.indent||n.spinner!==r.spinner||n.itemId!==r.itemId||(n.itemIds?.length??0)!==(r.itemIds?.length??0)||n.itemIds?.some((a,c)=>a!==r.itemIds?.[c]))return!1}let i=e.selectionRange,s=t.selectionRange;return i===s?!0:!i||!s?!1:i.start===s.start&&i.end===s.end}o(gW,"areTranscriptRowPropsEqual");var XE=jr(({row:e,theme:t,animateSpinners:n=!0,selectedItem:r=!1,selectionRange:i})=>{let s=UE(t,e.color),a=e.bg==="diffAdd"?t.colors.diffAddBackground:e.bg==="diffRemove"?t.colors.diffRemoveBackground:void 0,c=e.text===" "?"":e.text,l=c||" ",u=i&&c?Al(c,i.start,i.end):"",d=i&&c?Al(c,0,i.start):c,p=i&&c?Al(c,i.end):"",m=r&&!i,h=!m&&e.color==="dim",S={color:m?t.colors.accent:s,bold:e.bold||m,italic:e.italic,dimColor:h},T=_e(M,{...S,children:i&&c?yt(_x,{children:[d?_e(M,{...S,children:d}):null,_e(M,{backgroundColor:t.colors.accent,color:t.colors.background,bold:!0,italic:e.italic,children:u}),p?_e(M,{...S,children:p}):null]}):l});return yt(O,{marginLeft:e.indent??0,children:[e.spinner&&n&&yt(_x,{children:[_e(Ir,{color:t.colors.accent,theme:t}),_e(M,{children:" "})]}),a?_e(O,{width:"100%",backgroundColor:a,children:T}):T]})},gW),Px=jr(({section:e,theme:t,animateSpinners:n=!0})=>_e(O,{flexDirection:"column",children:e.rows.map(r=>_e(XE,{row:r,theme:t,animateSpinners:n},r.key))})),Ha=o(({items:e,isLoading:t=!1,maxLines:n=1e3,isThinking:r=!1,thinkingCharCount:i=0,thinkingContent:s="",streamingResponse:a="",currentTool:c,activeToolCalls:l,toolInputCharCount:u=0,toolInputContent:d="",iterationHistory:p=[],currentIteration:m=1,isCompacting:h=!1,agentMode:g,managedPhase:S,managedHarnessProfile:T,managedWorkerTitle:x,managedRound:I,managedMaxRounds:v,managedGlobalWorkBudget:k,managedBudgetUsage:_,managedBudgetApprovalRequired:H,lastLiveActivityLabel:$,liveStatusLines:P,viewportRows:z,viewportWidth:J,scrollOffset:L=0,animateSpinners:W=!0,windowed:N=!1,showFullThinking:q=!1,showDetailedTools:B=!1,showAllContent:ae=!1,showLiveProgressRows:ee=!0,selectedItemId:ie,expandedItemKeys:C,onMetricsChange:Te,onVisibleRowsChange:Fe,rendererWindow:Ce,selectedTextRanges:X,transcriptModel:re,visibleRowsOverride:je})=>{let Tt=Yi(()=>ye("dark"),[]),{stdout:vt}=zi(),De=J??vt?.columns??80,Ee=Yi(()=>re??Kh({items:e,viewportWidth:De,isLoading:t,maxLines:n,isThinking:r,thinkingCharCount:i,thinkingContent:s,streamingResponse:a,currentTool:c,activeToolCalls:l,toolInputCharCount:u,toolInputContent:d,iterationHistory:p,currentIteration:m,isCompacting:h,managedAgentMode:g,managedPhase:S,managedHarnessProfile:T,managedWorkerTitle:x,managedRound:I,managedMaxRounds:v,managedGlobalWorkBudget:k,managedBudgetUsage:_,managedBudgetApprovalRequired:H,lastLiveActivityLabel:$,liveStatusLines:P,windowed:N,showFullThinking:q,showDetailedTools:B,showAllContent:ae,showLiveProgressRows:ee,expandedItemKeys:C}),[re,e,De,t,n,r,i,s,a,c,l,u,d,p,m,h,g,S,T,x,I,v,k,_,H,$,P,N,q,B,ae,ee,C]),ce=Ee.staticSections,oe=Ee.rows,Me=Ee.previewRows,Ae=Yi(()=>[...oe,...Me],[Me,oe]),pt=!(Ae.length>0)&&e.length===0&&!t,Vt=Yi(()=>N||Ce||je?Ae:oe,[Ae,Ce,oe,je,N]),Ze=Yi(()=>je||$E(Vt,{viewportTop:Ce?Math.max(0,Ce.viewportTop):void 0,viewportHeight:Ce?Math.max(0,Ce.viewportHeight):void 0,start:void 0,end:void 0,viewportRows:z,scrollOffset:L,windowed:N}),[Ce,L,z,je,N,Vt]),Lt=Yi(()=>je||N||Ce?Ze:Ae,[Ae,Ce,Ze,je,N]),mt=Yi(()=>Ae,[Ae]),rt=Ce?Math.max(0,Ce.viewportHeight):z;return qE(()=>{Te?.({scrollHeight:Ae.length,viewportHeight:Ce?Math.max(0,Ce.viewportHeight):rt??Ae.length})},[Ae.length,rt,Te,Ce]),qE(()=>{Fe?.({rows:Lt,allRows:mt})},[mt,Fe,Lt]),pt?_e(O,{paddingY:1,children:_e(M,{dimColor:!0,children:"No messages yet. Start typing to begin."})}):yt(O,{flexDirection:"column",children:[!N&&ce.length>0&&_e(Il,{items:ce,children:o(tt=>_e(Px,{section:tt,theme:Tt,animateSpinners:W},tt.key),"children")}),Lt.map(tt=>_e(XE,{row:tt,theme:Tt,animateSpinners:W,selectedItem:ie?tt.key.startsWith(`${ie}-`)||tt.itemIds?.includes(ie):!1,selectionRange:X?.get(tt.key)},tt.key))]})},"MessageList");var yW=o(({role:e,content:t})=>{let n=Yi(()=>ye("dark"),[]),r={user:n.colors.primary,assistant:n.colors.secondary,system:n.colors.dim}[e];return yt(O,{flexDirection:"column",marginBottom:1,children:[_e(M,{color:r,bold:!0,children:e==="user"?">":e==="assistant"?"<":"#"}),_e(M,{children:t})]})},"SimpleMessageDisplay");import{jsx as Ox,jsxs as eg}from"react/jsx-runtime";import PW,{useMemo as $x}from"react";function ff(e,t,n){let r=Bw({triggerPercent:t,triggerTokens:n},e),i=r.config.triggerPercent,s=Math.round(r.triggerTokens/1e3);if(r.absoluteTriggerTokens===void 0)return`@ ${i}% (${s}k)`;let a=Math.round(r.absoluteTriggerTokens/1e3);return`@ min(${i}%, ${a}k) (${s}k)`}o(ff,"formatCompactionPolicy");function YE(e,t,n=0,r){let i=pb(e,n);return Bw({triggerPercent:t,triggerTokens:r},e,i).triggerTokens}o(YE,"resolveCompactionThresholdTokens");var wW="\u{1F504}",SW="\u2588",xW="\u2592",IW="\u2192",CW=" \xB7 ";function JE(e){switch(e){case"auto":return"auto";case"balanced":return"medium";case"quick":return"low";case"deep":return"high";case"off":return"off";default:return e.toLowerCase()}}o(JE,"formatReasoningModeShort");function QE(e){if(e)return e==="none"?"off":e}o(QE,"formatEffortShort");function TW(e){let t=e.split("->"),n=t[0]??e;if((t.length>1?t[t.length-1]:n)==="off")return"dim";switch(n){case"off":return"dim";case"low":return"green";case"medium":return"yellow";case"high":case"xhigh":case"max":return"magenta";default:return"cyan"}}o(TW,"getReasoningColor");function Qh(e){let t=e.kind==="thinking"?"Thinking":`Receiving ${e.toolName}`;return e.estimatedTokenCount===void 0?t:`${t} (~${yn(e.estimatedTokenCount)} tokens)`}o(Qh,"formatStreamingActivity");function vW(e){let t=Math.min(10,Math.max(0,Math.round(e/10))),n=10-t;return`${SW.repeat(t)}${xW.repeat(n)}`}o(vW,"createMiniProgressBar");function bW(e,t,n,r,i,s){if(t===0)return"green";let a=s??YE(t,n,r,i);return e>=a?"red":e>=a*(2/3)?"yellow":"green"}o(bW,"getContextColor");function RW(e){switch(e.toLowerCase()){case"plan":return"blue";case"accept-edits":return"green";case"auto":case"auto-in-project":return"warning";case"full-access":return"red";default:return"magenta"}}o(RW,"getPermissionModeColor");function kW(e){let t=Zw(e);return e==="auto"||e==="auto-in-project"?`${t}[LLM]`:t}o(kW,"buildPermissionModeText");function EW(e){let t=e.toLowerCase();return t.includes("read")||t.includes("view")||t.includes("search")||t.includes("list")||t.includes("find")||t.includes("browser")||t.includes("get")?"Read":t.includes("write")||t.includes("replace")||t.includes("edit")||t.includes("modify")?"Edit":t.includes("command")||t.includes("bash")||t.includes("terminal")?"Bash":t.includes("ask")||t.includes("notify")||t.includes("user")||t.includes("question")?"Ask":t.includes("think")||t.includes("reason")?"Think":e}o(EW,"formatToolAction");function Yh(e,t){return t&&t>0?`${e} (~${yn(or(t))} tokens)`:e}o(Yh,"formatThinkingStatus");function Jh(e,t,n){let r=EW(e);return n?`${r} (${n}...)`:t&&t>0?`${r} (~${yn(or(t))} tokens)`:r}o(Jh,"formatToolStatus");function Lx({activeToolCount:e,currentTool:t,isThinkingActive:n,thinkingCharCount:r,isCompacting:i,toolInputCharCount:s,toolInputContent:a,managedPhase:c,managedHarnessProfile:l,managedWorkerTitle:u,managedIdleWaiting:d,managedIdleWaitingPendingCount:p}){let m=e&&e>0?`${e} tool${e===1?"":"s"} running`:void 0;if(i)return"Compacting";if(c==="routing")return m?`Routing - ${m}`:t?`Routing - ${Jh(t,s,a)}`:n?Yh("Routing",r):"Routing";if(c==="preflight"){let h=u??"Scout";return m?`${h} - ${m}`:t?`${h} - ${Jh(t,s,a)}`:n?Yh(h,r):h}if(c==="verifying")return"Verifying";if(l){let h=u??"Worker";if(d===!0&&!m&&!t&&!n){let g=p??0,S=g>1?`waiting for ${g} children`:g===1?"waiting for 1 child":"idle - resuming";return`${h} - ${S}`}return m?`${h} - ${m}`:t?`${h} - ${Jh(t,s,a)}`:n?Yh(h,r):h}if(m)return m;if(t)return Jh(t,s,a);if(n)return Yh("Thinking",r)}o(Lx,"buildBusyStatusText");function MW({agentMode:e,managedPhase:t,managedHarnessProfile:n,managedRound:r,managedMaxRounds:i,managedGlobalWorkBudget:s,managedBudgetUsage:a,currentIteration:c,maxIter:l}){let u=[];return t==="routing"||t==="preflight"||(n&&r&&i&&r>1&&u.push({label:"Round",current:r,max:i}),n&&s&&typeof a=="number"?u.push({label:"Work",current:a,max:s}):e==="sa"&&c&&l&&u.push({label:"Iter",current:c,max:l})),u}o(MW,"resolveIterationSegments");function AW(e){if(e.length!==0)return`${wW} ${e.map(t=>`${t.label} ${t.current}/${t.max}`).join(CW)}`}o(AW,"formatLabeledIterationStatus");function _W(e){let{sessionId:t,permissionMode:n,provider:r,model:i,tokenUsage:s,currentTool:a,activeToolCount:c,thinking:l,isThinkingActive:u,thinkingCharCount:d,reasoningMode:p=l?"auto":"off",effort:m,reasoningEffortLabel:h,isCompacting:g,toolInputCharCount:S,toolInputContent:T,currentIteration:x,maxIter:I,contextUsage:v,contextTokens:k,learning:_,showBusyStatus:H=!0,managedPhase:$,managedHarnessProfile:P,managedWorkerTitle:z,managedRound:J,managedMaxRounds:L,managedGlobalWorkBudget:W,managedBudgetUsage:N,managedIdleWaiting:q,managedIdleWaitingPendingCount:B}=e,ae=e.hostSettings?e.hostSettings.permissionMode:n,ee=e.hostSettings?e.hostSettings.agentMode:e.agentMode,ie=(e.hostSettings?e.hostSettings.workMode:e.workMode)??"coding",C=[{id:"agent-mode",text:`KodaX - ${ie[0].toUpperCase()}${ie.slice(1)}`,color:"primary",bold:!0},{id:"permission-mode",text:ae===void 0?"Host default":kW(ae),color:ae===void 0?"dim":RW(ae)}],Te=e.hostSettings?QE(e.hostSettings.effort)??(e.hostSettings.reasoningMode!==void 0?JE(e.hostSettings.reasoningMode):e.hostSettings.thinking===void 0?"Host default":e.hostSettings.thinking?"on":"off"):h??QE(m)??JE(p);C.push({id:"reasoning-mode",text:Te,color:TW(Te)});let Fe=ee===void 0?[]:MW({agentMode:ee,managedPhase:$,managedHarnessProfile:P,managedRound:J,managedMaxRounds:L,managedGlobalWorkBudget:W,managedBudgetUsage:N,currentIteration:x,maxIter:I}),Ce=AW(Fe);if(Ce){let re=Math.max(...Fe.map(Tt=>Tt.current/Tt.max)),je="green";re>=.8?je="red":re>=.5&&(je="yellow"),C.push({id:"iteration-status",text:Ce,color:je})}C.push({id:"session-id",text:t,color:"dim"});let X=H?Lx({activeToolCount:c,currentTool:a,isThinkingActive:u,thinkingCharCount:d,isCompacting:g,toolInputCharCount:S,toolInputContent:T,managedPhase:$,managedHarnessProfile:P,managedWorkerTitle:z,managedIdleWaiting:q,managedIdleWaitingPendingCount:B}):void 0;if(X&&C.push({id:"busy-status",text:X,color:"dim"}),C.push({id:"provider-model",text:`${r}/${i}`,color:"secondary"}),v&&v.contextWindow!==0){let re=Math.round(v.currentTokens/v.contextWindow*100),je=yn(v.currentTokens),Tt=yn(v.contextWindow),vt=vW(re),De=v.scope==="worker"?"W ":"";C.push({id:"context-usage",text:`${De}${je}/${Tt} ${vt} ${re}%`,color:v.hostBudget&&v.effectiveTriggerTokens===void 0?"dim":bW(v.currentTokens,v.contextWindow,v.triggerPercent,v.reservedResponseTokens,v.triggerTokens,v.effectiveTriggerTokens)})}if(k&&C.push({id:"context-quantity",text:`${k.scope} ctx ${yn(k.currentTokens)}`,color:"dim"}),_&&(_.ready>0||_.newlyActive>0||_.attention>0)){let re=[..._.ready>0?[`${_.ready}R`]:[],..._.newlyActive>0?[`${_.newlyActive}N`]:[],..._.attention>0?[`${_.attention}!`]:[]];C.push({id:"learning",text:`Learn:${re.join("/")}`,color:_.attention>0||_.ready>0?"yellow":"cyan",tone:_.attention>0||_.ready>0?"warning":"accent"})}return s&&C.push({id:"token-usage",text:`${s.input}${IW}${s.output} (${s.total})`,color:"dim"}),C}o(_W,"buildStatusBarSegments");function Zh(e){let t=_W(e);return{text:t.map(n=>n.text).join(" | "),segments:t}}o(Zh,"buildStatusBarViewModel");function LW(e,t){if(e.color)return t.colors[e.color]??e.color;switch(e.tone){case"primary":return t.colors.primary;case"accent":return t.colors.accent;case"success":return t.colors.success;case"warning":return t.colors.warning;case"error":return t.colors.error;default:return t.colors.dim}}o(LW,"resolveViewModelSegmentColor");var _l=o(({viewModel:e,...t})=>{let n=$x(()=>ye("dark"),[]),r=$x(()=>e??Zh(t),[t,e]);return Ox(O,{paddingX:1,children:r.segments.map((i,s)=>eg(PW.Fragment,{children:[Ox(M,{color:LW(i,n),bold:i.bold,children:i.text}),s<r.segments.length-1?Ox(M,{dimColor:!0,children:" | "}):null]},i.id))})},"StatusBar"),OW=o(({permissionMode:e,provider:t,model:n})=>{let r=$x(()=>ye("dark"),[]);return eg(O,{children:[eg(M,{color:r.colors.primary,bold:!0,children:["[",e,"]"]}),eg(M,{dimColor:!0,children:[" ",t,"/",n]})]})},"SimpleStatusBar");import{jsx as vs,jsxs as rg}from"react/jsx-runtime";import{useState as Nx,useCallback as tg,useMemo as ZE}from"react";function ng(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}o(ng,"generateId");function $W(e){let t={id:e.id,timestamp:e.timestamp};switch(e.role){case"user":return{...t,type:"user",text:e.content};case"assistant":return{...t,type:"assistant",text:e.content};case"system":return{...t,type:"system",text:e.content};default:return{...t,type:"info",text:e.content}}}o($W,"messageToHistoryItem");var NW=o(({model:e,provider:t,onSubmit:n,permissionMode:r="accept-edits",agentMode:i="ama"})=>{let{stdout:s}=zi(),a=ZE(()=>ye("dark"),[]),[c,l]=Nx({messages:[],isLoading:!1,sessionId:ng()}),[u,d]=Nx(null),[p,m]=Nx(),h=tg(async x=>{if(!x.trim())return;let I={id:ng(),role:"user",content:x,timestamp:Date.now()};l(v=>({...v,messages:[...v.messages,I],isLoading:!0}));try{await n(x)}catch(v){let k={id:ng(),role:"system",content:`Error: ${v instanceof Error?v.message:"Unknown error"}`,timestamp:Date.now()};l(_=>({..._,messages:[..._.messages,k],isLoading:!1}))}finally{l(v=>({...v,isLoading:!1}))}},[n]),g=tg((x,I)=>{let v={id:ng(),role:x,content:I,timestamp:Date.now()};l(k=>({...k,messages:[...k.messages,v]}))},[]),S=tg((x,I)=>{d({input:x,output:I,total:x+I})},[]),T=tg(x=>{m(x)},[]);return rg(O,{flexDirection:"column",children:[vs(O,{flexGrow:1,flexDirection:"column",overflow:"hidden",children:vs(Ha,{items:c.messages.map($W),isLoading:c.isLoading})}),vs(O,{flexShrink:0,children:vs(kl,{onSubmit:o(x=>h(x.fullText),"onSubmit"),prompt:">",focus:!c.isLoading})}),vs(O,{flexShrink:0,children:vs(_l,{sessionId:c.sessionId,permissionMode:r,agentMode:i,provider:t,model:e,tokenUsage:u??void 0,currentTool:p})})]})},"App"),DW=o(({model:e,provider:t,onInput:n})=>{let r=ZE(()=>ye("dark"),[]);return rg(O,{flexDirection:"column",children:[rg(O,{marginBottom:1,children:[vs(M,{color:r.colors.primary,bold:!0,children:"KodaX CLI"}),rg(M,{dimColor:!0,children:[" ","- ",t,"/",e]})]}),vs(kl,{onSubmit:o(i=>n(i.fullText),"onSubmit"),placeholder:"Type a message...",prompt:">"})]})},"SimpleApp");async function Hx(e,t,n,r="text",i=!1,s){let a=i?e.readHistoryEntry:e.readItem;if(!a)throw new Error("Full transcript content is unavailable.");return Dc(c=>a(t,n,{offset:c,part:r}),n,s?{length:s.length,signal:s.signal,...s.textRevision!==void 0?{version:s}:{}}:void 0)}o(Hx,"readClientPlaneItemText");async function jx(e,t,n,r){return Promise.all(n.map(async i=>{let s=o(async(l,u)=>u===void 0?void 0:await Hx(e,t,i.historyItemId??i.id,l,i.historyItemId!==void 0,{length:u,signal:r,...l==="text"?{textRevision:i.textRevision??0,outputState:i.outputState}:{}}),"read"),a=await s("text",i.totalTextLength),c=await s("input",i.totalInputLength);if(a===void 0&&c===void 0)return i;if(i.type!=="tool_group"&&a!==void 0&&a.slice(i.textOffset??0)!==i.text)throw new Error("Frozen transcript content changed during the read.");return i.type==="tool_group"?{...i,totalTextLength:void 0,totalInputLength:void 0,tools:i.tools.map(l=>({...l,...a!==void 0?{output:a}:{},...c!==void 0?{input:{preview:c},inputText:c,preview:c}:{}}))}:{...i,...a!==void 0?{text:a}:{},textOffset:0,totalTextLength:void 0}}))}o(jx,"readFrozenClientPlaneItems");async function eM(e,t,n){if(!e.readHistory)throw new Error("Complete transcript history is unavailable.");let r=[],i=new Set,s,a;do{n?.throwIfAborted();let c=await e.readHistory(t,{cursor:s,limit:100});if(a??=c.revision,c.revision!==a)throw new Error("History changed during loading; reopen transcript and try again.");let l=[];for(let u of c.items){n?.throwIfAborted();let d=u.totalTextLength!==void 0&&u.totalTextLength>u.text.length?await Hx(e,t,u.id,"text",!0,{length:u.totalTextLength,signal:n}):u.text,p=u.tool?.totalInputLength!==void 0&&u.tool.totalInputLength>(u.tool.inputText?.length??0)?await Hx(e,t,u.id,"input",!0,{length:u.tool.totalInputLength,signal:n}):u.tool?.inputText,[m]=Fa([{...u,text:d,textOffset:0,totalTextLength:void 0,...u.tool?{tool:{...u.tool,inputText:p,totalInputLength:void 0}}:{}}]);m&&l.push({...m,historyItemId:u.id})}if(r.push(l),s=c.nextCursor,s!==void 0&&i.has(s))throw new Error("History paging did not advance.");s!==void 0&&i.add(s)}while(s!==void 0);return n?.throwIfAborted(),r.reverse().flat()}o(eM,"readClientPlaneHistory");var BW={running:K.Executing,success:K.Success,error:K.Error,cancelled:K.Cancelled,awaiting_approval:K.AwaitingApproval},tM=new Set(["cancelled","interrupted"]);function Fx(e){return{success:!1,interrupted:!0,signal:"BLOCKED",lastText:"",messages:[],sessionId:e}}o(Fx,"interruptedPlaneResult");function bs(){return`ink-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}o(bs,"mintInkInputId");var HW=100,FW=1e4,nM=600;function WW(e){return new Promise(t=>setTimeout(t,e))}o(WW,"sleep");async function Wx(e,t,n,r,i){let s=Date.now()+r;for(;;){if(i?.())return;let a=await e.activeRun(t);if(i?.())return;if(a!==void 0&&n(a))return a;if(Date.now()>=s)return;await WW(HW)}}o(Wx,"pollActiveRun");function Pl(e,t){let n,r,i=!1,s=!1,a,c=o(l=>{i&&!s&&(s=!0,e.onStopState?.("confirmed",l))},"confirm");return e.onStopControl?.({request:o(()=>{if(r)return r;let l=t();return!n&&!l?Promise.reject(new Error("No active Run is available to stop.")):(n??={sessionId:e.sessionId,expectedRunId:l,requestId:bs()},e.onStopState?.("requesting"),r=e.plane.cancelSession(n).then(u=>{i=!0,e.onStopState?.("accepted");let d=u.receipts.find(p=>p.runId===n.expectedRunId);return d?.state==="confirmed"?c(d.outcome):a?.runId===n.expectedRunId&&c(a.phase),{state:u.receipts.every(p=>p.state==="confirmed")?"confirmed":"unknown"}}).catch(u=>{throw e.onStopState?.("rejected",u instanceof Error?u.message:String(u)),u}).finally(()=>{r=void 0}),r)},"request")}),{settled:o((l,u)=>{n&&n.expectedRunId!==u||["completed","failed","interrupted","cancelled"].includes(l.phase)&&(a={runId:u,phase:l.phase},c(l.phase))},"settled"),close:o(()=>e.onStopControl?.(void 0),"close")}}o(Pl,"bindClientPlaneSessionStop");async function Ll(e){let t=e.runId,n=Pl(e,()=>e.getDisplayedRunId?.()??t),r=o(()=>e.abortSignal?.aborted===!0,"aborted"),i,s=o(()=>{let a=e.getDisplayedRunId?.()??t;t=a,i=e.plane.stop(a).then(c=>{c?.accepted===!1&&Ge({source:"client.plane",level:"warn",message:`The Host did not accept the stop request for run ${a}.`})}).catch(c=>{Ge({source:"client.plane",level:"warn",message:`The stop request for run ${a} failed.`,detail:c})})},"stop");e.abortSignal?.addEventListener("abort",s,{once:!0});try{e.abortSignal?.aborted&&s();let a;for(;;){let c=t;a=await e.plane.awaitRun(e.sessionId,c),n.settled(a,c);let l=await Wx(e.plane,e.sessionId,u=>u!==t,nM,r);if(r()){if(await i,t!==c)continue;break}if(l===void 0)break;t=l}if(a.error!==void 0)throw new Error(a.error);if(a.result!==void 0)return a.result;if(tM.has(a.phase))return Fx(e.sessionId);throw new Error(a.error??`Run ${t} ended in phase '${a.phase}' without a result.`)}finally{n.close(),e.abortSignal?.removeEventListener("abort",s)}}o(Ll,"followClientPlaneRun");async function pf(e){let t=bs(),n=o(()=>e.abortSignal?.aborted===!0,"aborted"),r,i,s=o(p=>{p!==void 0?r=e.plane.stop(p).then(m=>{m?.accepted===!1&&Ge({source:"client.plane",level:"warn",message:`The Host did not accept the stop request for run ${p}.`})},m=>{Ge({source:"client.plane",level:"warn",message:`The stop request for run ${p} failed.`,detail:m})}):r=e.plane.withdraw(e.sessionId,t).then(m=>{if(m===void 0)throw new Error("Input withdrawal was not confirmed; it may still run.")}).catch(m=>{i=m instanceof Error?m:new Error(String(m)),Ge({source:"client.plane",level:"warn",message:`The withdraw request for input ${t} failed; the queued input may still run.`,detail:m})})},"stopRun"),a=await(e.submit??e.plane.submit)({sessionId:e.sessionId,text:e.prompt,inputId:t,...e.inputArtifacts!==void 0&&e.inputArtifacts.length>0?{inputArtifacts:e.inputArtifacts}:{}});if(a.state==="dropped"||a.state==="withdrawn")throw new Error(`The Host ${a.state} the input; resubmit with a new input id.`);let c=a.runId,l=Pl(e,()=>e.getDisplayedRunId?.()??c),u,d=o(()=>{c!==void 0&&(c=e.getDisplayedRunId?.()??c),s(c)},"stop");e.abortSignal?.addEventListener("abort",d,{once:!0});try{for(n()&&s(c);;){if(c===void 0&&(c=await Wx(e.plane,e.sessionId,()=>!0,FW,n),c===void 0)){if(n()){if(await r,i)throw i;return Fx(e.sessionId)}let g="";try{await e.plane.withdraw(e.sessionId,t)}catch(S){g=` The take-back after the timeout also failed (${S instanceof Error?S.message:String(S)}); the input may still run from the Host queue.`,Ge({source:"client.plane",level:"warn",message:`The withdraw request for input ${t} failed after the queued input never started.`,detail:S})}throw new Error(`The queued input did not start a run within the wait window.${g}`)}let m=c;u=await e.plane.awaitRun(e.sessionId,m),l.settled(u,m);let h=await Wx(e.plane,e.sessionId,g=>g!==c,nM,n);if(n()){if(await r,c!==m)continue;break}if(h===void 0)break;c=h}let p=u;if(p===void 0)throw new Error("The client-plane round ended without a run outcome.");if(p.error!==void 0)throw new Error(p.error);if(p.result!==void 0)return p.result;if(tM.has(p.phase))return Fx(e.sessionId);throw new Error(p.error??`Run ${c} ended in phase '${p.phase}' without a result.`)}finally{l.close(),e.abortSignal?.removeEventListener("abort",d)}}o(pf,"runClientPlaneRound");var jW=new Set(["queued","running","waiting_agent","recovering","waiting_permission","waiting_user_input"]);function rM(e){for(let t=e.length-1;t>=0;t-=1){let n=e[t];if(jW.has(n.phase))return n.runId}}o(rM,"firstActiveRunId");function Cr(e){return rM(e.runs)}o(Cr,"viewRunsActive");function Dx(e){if(e===void 0)return-1;let t=5381;for(let n=0;n<e.length;n+=1)t=(t<<5)+t+e.charCodeAt(n)|0;return t}o(Dx,"textHash");function UW(e){return[e.type,e.outputId??"",e.outputState??"",e.textRevision??0,`${e.text.length}:${Dx(e.text)}`,e.compactText===void 0?"-":`${e.compactText.length}:${Dx(e.compactText)}`,e.icon??"",e.sidecar?.verdict??"",e.sidecar?.delivery??"",e.tool?.status??"",e.tool?.progress??"",e.tool?.endedAt??0,e.tool?.inputText===void 0?"-":`${e.tool.inputText.length}:${Dx(e.tool.inputText)}`,e.totalTextLength??-1,e.textOffset??0,e.tool?.totalInputLength??-1].join("|")}o(UW,"itemFingerprint");var iM=`
|
|
66
|
+
[truncated]`;function Ux(e){return e.endsWith(iM)}o(Ux,"hasBoundedItemText");function VW(e){return e.totalTextLength!==void 0&&e.totalTextLength>e.text.length?`${e.text}${iM}`:e.text}o(VW,"boundedText");function Fa(e,t={}){let n=t.activeRunId===void 0?-1:GW(e,r=>r.type==="assistant");if(t.memo!==void 0){let r=new Set(e.map(i=>i.id));for(let i of t.memo.entries.keys())r.has(i)||t.memo.entries.delete(i)}return e.map((r,i)=>{let s=t.memo?.entries.get(r.id),a=i===n,c=`${a?"live":"done"}|${UW(r)}`;if(s!==void 0&&s.fingerprint===c&&!a)return s.item;let l=KW(r,a);return t.memo?.entries.set(r.id,{fingerprint:c,item:l}),l})}o(Fa,"clientViewToHistoryItems");function GW(e,t){for(let n=e.length-1;n>=0;n-=1)if(t(e[n]))return n;return-1}o(GW,"findLastIndex");function KW(e,t){let n={id:e.id,...e.outputId!==void 0?{outputId:e.outputId}:{},...e.outputState!==void 0?{outputState:e.outputState}:{},...e.textRevision!==void 0?{textRevision:e.textRevision}:{},...e.inputId!==void 0?{inputId:e.inputId}:{},timestamp:e.timestamp??0,isSessionUiOnly:!0,...e.textOffset!==void 0?{textOffset:e.textOffset}:{},...e.totalTextLength!==void 0?{totalTextLength:e.totalTextLength}:{},...e.tool?.totalInputLength!==void 0?{totalInputLength:e.tool.totalInputLength}:{}};if(e.type==="tool"&&e.tool){let r={id:e.tool.callId,name:e.tool.name,status:BW[e.tool.status],...e.tool.inputText!==void 0?{input:{preview:e.tool.inputText},preview:e.tool.inputText,inputText:e.tool.inputText}:{},...e.text.length>0?{output:VW(e)}:{},...e.tool.progress!==void 0?{progressLines:[e.tool.progress]}:{},startTime:e.tool.startedAt??e.timestamp??0,...e.tool.endedAt!==void 0?{endTime:e.tool.endedAt}:{}};return{...n,type:"tool_group",tools:[r]}}return e.type==="assistant"?{...n,type:"assistant",text:e.text,...e.compactText!==void 0?{compactText:e.compactText}:{},...t?{isStreaming:!0}:{}}:e.type==="sidecar"?{...n,type:"sidecar",text:e.text,...e.sidecar?.verdict?{verdict:e.sidecar.verdict}:{},...e.sidecar?.delivery?{delivery:e.sidecar.delivery}:{}}:{...n,type:e.type,text:e.text,...e.compactText!==void 0?{compactText:e.compactText}:{},...e.icon!==void 0?{icon:e.icon}:{}}}o(KW,"mapViewItem");function Bx(e){return ls(e)&&e.reason==="non_interactive"?{kind:"skip",reason:"non_interactive"}:{kind:"skip"}}o(Bx,"skippedQuestionResponse");async function mf(e,t,n,r){if(r?.aborted)return!1;let i;switch(t.kind){case"question":{let s=await n.question(t.options,r);if(ls(s)&&s.reason==="timeout")return!1;i=ls(s)||s===mr?Bx(s):{kind:"question",answer:s};break}case"question_multi":{let s=await n.questionMulti(t.options,r);if(ls(s)&&s.reason==="timeout")return!1;i=ls(s)||s===void 0?Bx(s):{kind:"question_multi",answers:s};break}case"question_input":{let s=await n.questionInput(t.options,r);if(ls(s)&&s.reason==="timeout")return!1;i=ls(s)||s===void 0?Bx(s):{kind:"question_input",text:s};break}case"permission":{let s=await n.permission(t.options,r);i={kind:"permission",decision:RR({id:t.requestId,toolName:t.options.toolName,...t.options.toolCallId!==void 0?{toolCallId:t.options.toolCallId}:{},input:{},...t.options.reason!==void 0?{reason:t.options.reason}:{},...t.options.risk!==void 0?{risk:t.options.risk}:{},...t.options.executionCwd!==void 0?{executionCwd:t.options.executionCwd}:{},...t.options.grantSuggestions!==void 0?{grantSuggestions:t.options.grantSuggestions}:{}},s)};break}}return r?.aborted?!1:e.respondInteraction(t.requestId,i)}o(mf,"answerClientPlaneInteraction");import{jsx as zW}from"react/jsx-runtime";var Vx=o(({top:e,topRows:t=0,transcript:n,renderTranscriptWindow:r,footer:i,overlay:s,stickyHeader:a,jumpToLatest:c,width:l,scrollTop:u=0,scrollHeight:d=0,viewportHeight:p=0,stickyScroll:m=!0,scrollRef:h,onScrollTopChange:g,onStickyChange:S,onWindowChange:T,overscanRows:x})=>zW(lx,{width:l,top:e,topRows:t,stickyHeader:a,jumpToLatest:c,scrollable:n,renderScrollableWindow:r,overlay:s,bottom:i,scrollTop:u,scrollHeight:d,viewportHeight:p,stickyScroll:m,scrollRef:h,onScrollTopChange:g,onStickyChange:S,onWindowChange:T,overscanRows:x}),"FullscreenTranscriptLayout");import{jsx as oM}from"react/jsx-runtime";function Ol({copyMessage:e=!1,copyToolInput:t=!1,copyOnSelect:n=!1,toggleDetail:r=!1,selectionNavigation:i=!1,matchNavigation:s=!1,dismissAction:a}){let c=[];return i&&c.push("\u2190/\u2192 browse"),e&&c.push("C copy"),t&&c.push("I tool input"),n&&c.push("Mouse select copies"),r&&c.push("V details"),s&&c.push("N/Shift+N matches"),a==="clear"&&c.push("Esc clear"),a==="close-search"&&c.push("Esc close search"),c.length>0?c.join(" | "):void 0}o(Ol,"buildMessageActionsText");var Gx=o(({copyMessage:e=!1,copyToolInput:t=!1,copyOnSelect:n=!1,toggleDetail:r=!1,selectionNavigation:i=!1,matchNavigation:s=!1,dismissAction:a})=>{let c=ye("dark"),l=Ol({copyMessage:e,copyToolInput:t,copyOnSelect:n,toggleDetail:r,selectionNavigation:i,matchNavigation:s,dismissAction:a});return l?oM(O,{paddingX:1,children:oM(M,{color:c.colors.dim,children:l})}):null},"MessageActions");import{jsx as sM}from"react/jsx-runtime";function Kx({itemSummary:e,itemKind:t,position:n,detailState:r="compact"}){if(!e||!n||n.total<=0)return;let i=r==="expanded"?"expanded":"compact",s=t?`${t}: `:"";return`Selected item ${n.current}/${n.total}: ${s}${e} | ${i}`}o(Kx,"buildMessageSelectorText");var qW=o(({itemSummary:e,itemKind:t,position:n,detailState:r="compact"})=>{let i=ye("dark"),s=Kx({itemSummary:e,itemKind:t,position:n,detailState:r});return s?sM(O,{paddingX:1,children:sM(M,{color:i.colors.dim,children:s})}):null},"MessageSelector");import{jsx as $l,jsxs as XW}from"react/jsx-runtime";import{useMemo as aM}from"react";function ig(e,t){return Math.max(1,sr(e.length>0?e.split(`
|
|
67
|
+
`):[""],Math.max(1,t),0,0).visualLines.length)}o(ig,"countWrappedRows");var zx=o(({browse:e,selection:t,search:n,chromeMode:r="inline",...i})=>{let s=r==="inline",a=t?.itemSummary,c=t?.position,l=t?.itemKind,u=t?.detailState??"compact",d=t?.copyCapabilities,p=d?.message??!1,m=d?.toolInput??!1,h=d?.copyOnSelect??!1,g=t?.toggleDetail??!1,S=t?.navigationCapabilities?.selection??!1,T=n?.statusText,x=n?.matches?.length??0,I=n?.surface,v=i.viewportWidth??80,k=Math.max(1,v-2),_=n?.query?.trim()?"close-search":a||p||m||g||S?"clear":void 0,H=Kx({itemSummary:a,itemKind:l,position:c,detailState:u}),$=aM(()=>Ol({copyMessage:p,copyToolInput:m,copyOnSelect:h,toggleDetail:g,selectionNavigation:S,matchNavigation:!!T&&x>0,dismissAction:_}),[p,m,S,g,_,x,T,h]),P=aM(()=>{if(!s)return 0;let J=0;return e?.hintText&&(J+=ig(e.hintText,k)),H&&(J+=ig(H,k)),$&&(J+=ig($,k)),T&&(J+=ig(T,k)),I&&(J+=1),J},[$,e?.hintText,k,s,T,I,H]),z=typeof i.viewportRows=="number"?Math.max(1,i.viewportRows-P):i.viewportRows;return XW(O,{flexDirection:"column",flexGrow:i.windowed?0:1,children:[s&&e?.hintText?$l(O,{paddingX:1,children:$l(M,{dimColor:!0,children:e.hintText})}):null,null,s&&(p||m||h||g||S||x>0)?$l(Gx,{copyMessage:p,copyToolInput:m,copyOnSelect:h,toggleDetail:g,selectionNavigation:S,matchNavigation:!!T&&x>0,dismissAction:_}):null,s&&T?$l(O,{paddingX:1,children:$l(M,{dimColor:!0,children:T})}):null,s?I:null,$l(Ha,{...i,viewportRows:z})]})},"TranscriptViewport");import{jsx as cM}from"react/jsx-runtime";var qx=o(e=>cM(O,{flexDirection:"column",children:cM(kl,{...e})}),"PromptComposer");import{jsx as Wa,jsxs as og}from"react/jsx-runtime";import lM from"react";var uM=" \xB7 ",sg=o(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=ye("dark");return t.length===0?null:Wa(O,{flexGrow:1,children:t.map((r,i)=>og(lM.Fragment,{children:[Wa(M,{color:r.accent?n.colors.accent:n.colors.dim,bold:r.accent,children:r.label}),i<t.length-1?Wa(M,{dimColor:!0,children:uM}):null]},r.id))})},"PromptFooterLeftSide"),ag=o(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=ye("dark");return t.length===0?null:Wa(O,{justifyContent:"flex-end",children:t.map((r,i)=>og(lM.Fragment,{children:[Wa(M,{color:r.accent?n.colors.primary:n.colors.dim,bold:r.accent,children:r.label}),i<t.length-1?Wa(M,{dimColor:!0,children:uM}):null]},r.id))})},"PromptFooterRightSide"),cg=o(({left:e,right:t,queued:n,stashNotice:r,notifications:i,inlineNotices:s,activityBar:a,todoSurface:c,composer:l,inlineSuggestions:u,helpSurface:d,taskBar:p,statusLine:m,inlineDialogs:h})=>og(O,{flexDirection:"column",children:[e||t?og(O,{paddingX:1,children:[Wa(O,{flexGrow:1,children:e}),t]}):null,n,r,i,s,a,c,l,u,h,d,p,m]}),"PromptFooter");import{jsx as Xx,jsxs as dM}from"react/jsx-runtime";var Yx=o(({sections:e,title:t="Help"})=>{let n=ye("dark"),r=e.filter(i=>i.items.length>0);return r.length===0?null:dM(O,{flexDirection:"column",borderStyle:"round",borderColor:n.colors.accent,paddingX:1,marginTop:1,children:[Xx(M,{color:n.colors.accent,bold:!0,children:t}),r.map(i=>dM(O,{flexDirection:"column",children:[Xx(M,{color:n.colors.primary,bold:!0,children:i.title}),Xx(M,{dimColor:!0,children:i.items.map(s=>s.label).join(" | ")})]},i.id))]})},"PromptHelpMenu");import{jsx as fM}from"react/jsx-runtime";import{createContext as hM,useContext as gM,useReducer as YW,useCallback as _n,useMemo as JW}from"react";var pM=150;function ug(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}o(ug,"generateId");function lg(e){let t=e.timestamp;return{...e,id:ug(),timestamp:t!==void 0&&Number.isFinite(t)&&t>=0?t:Date.now()}}o(lg,"createHistoryItem");function Jx(e){if(e.length<=pM)return e;let t=0,n=e.length-pM;for(let i=e.length-1;i>=0;i--)if(e[i]?.type==="user"&&(t++,t>50)){n=Math.max(n,i);break}let r=e.slice(n).findIndex(i=>i.type==="user");return r>0&&(n+=r),e.slice(n)}o(Jx,"trimCanonicalHistoryToRounds");function mM(e){if(!e.some(u=>u.isSessionUiOnly))return Jx(e);let t=e.filter(u=>!u.isSessionUiOnly),n=Jx(t),r=n[0],s=n.length<t.length&&r!==void 0?e.indexOf(r):0,a=e.filter((u,d)=>u.isSessionUiOnly===!0&&d>=s),c=Jx(a),l=new Set([...n,...c]);return e.filter(u=>l.has(u))}o(mM,"trimHistoryToRounds");function Qx(e,t){return e.filter(n=>n.type==="user"&&typeof n.id=="string"&&!t.has(n.id))}o(Qx,"selectUncommittedLedgerUserItems");function Zx(e){return{...e,id:ug(),startTime:Date.now()}}o(Zx,"createToolCall");function QW(e,t){switch(t.type){case"SET_STREAMING_STATE":return{...e,streamingState:t.payload};case"APPEND_TO_RESPONSE":return{...e,currentResponse:e.currentResponse+t.payload};case"CLEAR_RESPONSE":return{...e,currentResponse:""};case"ADD_HISTORY_ITEM":return{...e,history:mM([...e.history,t.payload])};case"REPLACE_HISTORY_ITEMS":return{...e,history:t.payload};case"BULK_ADD_HISTORY_ITEMS":return{...e,history:mM([...e.history,...t.payload])};case"UPDATE_HISTORY_ITEM":return{...e,history:e.history.map(n=>n.id===t.payload.id?{...n,...t.payload.updates}:n)};case"CLEAR_HISTORY":return{...e,history:[]};case"ADD_TOOL_CALL":return{...e,pendingToolCalls:[...e.pendingToolCalls,t.payload]};case"UPDATE_TOOL_CALL":return{...e,pendingToolCalls:e.pendingToolCalls.map(n=>n.id===t.payload.id?{...n,...t.payload.updates}:n)};case"CLEAR_TOOL_CALLS":return{...e,pendingToolCalls:[]};case"SET_SESSION_ID":return{...e,sessionId:t.payload};case"SET_PROVIDER":return{...e,provider:t.payload};case"SET_MODEL":return{...e,model:t.payload};case"SET_TOKEN_USAGE":return{...e,tokenUsage:t.payload};case"SET_ERROR":return{...e,error:t.payload};case"SET_LOADING":return{...e,isLoading:t.payload};case"RESET_STATE":return{...qw,sessionId:e.sessionId};default:return e}}o(QW,"uiReducer");var yM=hM(null),wM=hM(null);function dg({children:e,initialState:t}){let[n,r]=YW(QW,{...qw,...t}),i=_n($=>{r({type:"SET_STREAMING_STATE",payload:$})},[]),s=_n($=>{r({type:"APPEND_TO_RESPONSE",payload:$})},[]),a=_n(()=>{r({type:"CLEAR_RESPONSE"})},[]),c=_n($=>{let P=lg($);r({type:"ADD_HISTORY_ITEM",payload:P})},[]),l=_n($=>{$.length!==0&&r({type:"BULK_ADD_HISTORY_ITEMS",payload:$.map(lg)})},[]),u=_n($=>{r({type:"REPLACE_HISTORY_ITEMS",payload:$})},[]),d=_n(($,P)=>{r({type:"UPDATE_HISTORY_ITEM",payload:{id:$,updates:P}})},[]),p=_n(()=>{r({type:"CLEAR_HISTORY"})},[]),m=_n($=>{let P=Zx($);return r({type:"ADD_TOOL_CALL",payload:P}),P.id},[]),h=_n(($,P)=>{r({type:"UPDATE_TOOL_CALL",payload:{id:$,updates:P}})},[]),g=_n(()=>{r({type:"CLEAR_TOOL_CALLS"})},[]),S=_n($=>{r({type:"SET_SESSION_ID",payload:$})},[]),T=_n($=>{r({type:"SET_MODE",payload:$})},[]),x=_n($=>{r({type:"SET_PROVIDER",payload:$})},[]),I=_n($=>{r({type:"SET_MODEL",payload:$})},[]),v=_n($=>{r({type:"SET_TOKEN_USAGE",payload:$})},[]),k=_n($=>{r({type:"SET_ERROR",payload:$})},[]),_=_n($=>{r({type:"SET_LOADING",payload:$})},[]),H=JW(()=>({setStreamingState:i,appendToResponse:s,clearResponse:a,addHistoryItem:c,addHistoryItems:l,replaceHistoryItems:u,updateHistoryItem:d,clearHistory:p,addToolCall:m,updateToolCall:h,clearToolCalls:g,setSessionId:S,setMode:T,setProvider:x,setModel:I,setTokenUsage:v,setError:k,setLoading:_}),[i,s,a,c,l,u,d,p,m,h,g,S,T,x,I,v,k,_]);return fM(yM.Provider,{value:n,children:fM(wM.Provider,{value:H,children:e})})}o(dg,"UIStateProvider");function hf(){let e=gM(yM);if(!e)throw new Error("useUIState must be used within a UIStateProvider");return e}o(hf,"useUIState");function gf(){let e=gM(wM);if(!e)throw new Error("useUIActions must be used within a UIStateProvider");return e}o(gf,"useUIActions");function SM(){let e=hf(),t=gf();return{state:e,actions:t}}o(SM,"useUI");function eI(){return ye()}o(eI,"useTheme");import{jsxs as Rs,jsx as fg,Fragment as ZW}from"react/jsx-runtime";import{useMemo as ej}from"react";var tj=80,nj=7,rj={command:">",file:"\u{1F4C4}",history:"\u23F1",argument:"\u2022",snippet:"\u25C7",skill:"\u2605"};function ij(e,t,n){if(t<=n)return{start:0,end:t};let r=Math.floor(n/2),i=e-r,s=i+n;return i<0?(i=0,s=n):s>t&&(s=t,i=t-n),{start:i,end:s}}o(ij,"getVisibleRange");function oj({suggestion:e,isSelected:t,width:n}){let r=eI(),i=e.icon||e.type&&rj[e.type]||"",s=i?Ui(i)+1:0,a=Ui(e.displayText||e.text),c=e.description?Ui(e.description):0,l=Math.min(a,n-s-2),u=n-s-l-3,d=Math.max(0,u),p=Hd(e.displayText||e.text,l),m=e.description?Hd(e.description,d):"";return Rs(O,{children:[i&&Rs(M,{color:t?r.colors.accent:r.colors.dim,children:[i," "]}),fg(M,{color:t?r.colors.primary:r.colors.text,bold:t,children:p}),m&&Rs(ZW,{children:[fg(M,{children:" "}),fg(M,{color:r.colors.dim,children:Hd(e.description||"",d)})]}),t&&Rs(M,{color:r.colors.accent,children:[" ","\u25C0"]})]})}o(oj,"SuggestionItem");function pg({suggestions:e,selectedIndex:t,visible:n,maxVisible:r=nj,width:i=tj,showCount:s=!1}){let a=eI();if(!n||e.length===0)return null;let{start:c,end:l}=ej(()=>ij(t,e.length,r),[t,e.length,r]),u=e.slice(c,l);return Rs(O,{flexDirection:"column",marginLeft:2,children:[c>0&&Rs(M,{color:a.colors.dim,children:[" ","\u25B2 ",c," more..."]}),u.map((d,p)=>{let h=c+p===t;return fg(oj,{suggestion:d,isSelected:h,width:i},d.id)}),l<e.length&&Rs(M,{color:a.colors.dim,children:[" ","\u25BC ",e.length-l," more..."]}),s&&Rs(M,{color:a.colors.dim,children:[t+1,"/",e.length]})]})}o(pg,"SuggestionsDisplay");import{jsx as Nl,jsxs as sj}from"react/jsx-runtime";var tI=o(({reserveSpace:e,width:t,hidden:n=!1,mode:r="inline"})=>{let i=Na(),s=ye("dark");if(n)return null;if(!i)return e?Nl(O,{height:8}):null;let{state:a,suggestions:c}=i;return a.visible&&c.length>0?r==="overlay"?sj(O,{flexDirection:"column",borderStyle:"round",borderColor:s.colors.accent,paddingX:1,marginTop:1,children:[Nl(M,{color:s.colors.accent,bold:!0,children:"Suggestions"}),Nl(pg,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-6)})]}):Nl(O,{height:8,children:Nl(pg,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-2)})}):e?Nl(O,{height:8}):null},"PromptSuggestionsSurface");import{jsxs as Ii,jsx as ai,Fragment as nI}from"react/jsx-runtime";import aj,{useEffect as cj,useState as lj}from"react";var Dl=15,xM=Math.max(1,Dl-2),rI=o(({confirm:e,request:t})=>e?Ii(O,{flexDirection:"column",borderStyle:"round",borderColor:"yellow",paddingX:1,marginTop:1,width:"100%",children:[Ii(M,{color:"yellow",bold:!0,children:[Re("dialog.confirm")," ",e.prompt]}),e.planContent?ai(uj,{content:e.planContent}):null,e.instruction?ai(M,{dimColor:!0,children:e.instruction}):null]}):t?Ii(O,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,marginTop:1,width:"100%",children:[t.kind==="select"?Ii(nI,{children:[Ii(M,{color:"cyan",bold:!0,children:[Re("dialog.select")," ",t.title]}),(()=>{let n=t.options??[],r=t.visibleSelectOptions??5,i=t.focusedIndex??0,s=n.length,a=0;if(s>r){let u=Math.floor(r/2);a=Math.max(0,Math.min(i-u,s-r))}let c=a,l=Math.max(0,s-a-r);return Ii(nI,{children:[c>0?ai(M,{dimColor:!0,children:Re("select.more_above",{count:c})}):null,n.slice(a,a+r).map((u,d)=>{let p=a+d,m=p===i,h=t.selectedIndices?.includes(p)??!1,g=m?"\u276F ":" ",S=h?" \u2713":"",T=u.description?` - ${u.description}`:"";return ai(M,{color:m?"cyan":void 0,dimColor:!m,children:`${g}${u.label}${T}${S}`},`${u.value}-${p}`)}),l>0?ai(M,{dimColor:!0,children:Re("select.more_below",{count:l})}):null]})})(),ai(M,{dimColor:!0,children:t.multiSelect?Re("select.multiselect_hint"):Re("select.navigate_hint")})]}):Ii(nI,{children:[Ii(M,{color:"cyan",bold:!0,children:[Re("dialog.input")," ",t.prompt]}),t.defaultValue!==void 0&&!t.secret?ai(M,{dimColor:!0,children:`${Re("input.default")} ${t.defaultValue}`}):null,ai(M,{dimColor:!0,children:`${Re("input.value")} ${t.buffer?t.secret?"\u2022\u2022\u2022\u2022":t.buffer:Re("input.type_response")}`}),ai(M,{dimColor:!0,children:Re("select.confirm_hint")})]}),t.error?ai(M,{color:"red",children:t.error}):null]}):null,"DialogSurface"),uj=o(({content:e})=>{let t=aj.useMemo(()=>e.split(`
|
|
68
|
+
`),[e]),n=t.length,r=n>Dl,[i,s]=lj(0);cj(()=>{s(u=>{let d=Math.max(0,n-Dl);return u>d?d:u})},[n]),Cl((u,d)=>{if(!r)return;let p=Math.max(0,n-Dl);d.upArrow?s(m=>Math.max(0,m-1)):d.downArrow?s(m=>Math.min(p,m+1)):d.pageUp?s(m=>Math.max(0,m-xM)):d.pageDown&&s(m=>Math.min(p,m+xM))},{isActive:!0});let a=t.slice(i,i+Dl),c=i,l=Math.max(0,n-i-Dl);return Ii(O,{flexDirection:"column",marginTop:1,children:[r&&c>0?Ii(M,{dimColor:!0,children:["\u2026 ",c," more line",c===1?"":"s"," above"]}):null,a.map((u,d)=>ai(M,{children:u},`plan-line-${i+d}`)),r&&l>0?Ii(M,{dimColor:!0,children:["\u2026 ",l," more line",l===1?"":"s"," below"]}):null,r?ai(M,{dimColor:!0,children:"PgUp/PgDn/\u2191\u2193 to scroll"}):null]})},"PlanScrollPanel");import{jsxs as yf,jsx as dj}from"react/jsx-runtime";function IM(e){let t=e.replace(/\s+/g," ").trim();return t.length<=72?t:`${t.slice(0,69)}...`}o(IM,"normalizePendingPreview");function CM(e){if(e.length===0)return;let t=IM(e[e.length-1]??"");return e.length===1?`Queued 1 follow-up: ${t} (Esc removes it)`:`Queued ${e.length} follow-ups. Latest: ${t} (Esc removes latest)`}o(CM,"formatPendingInputsSummary");function iI(e){if(e.length===0)return[];let t=e.length;return e.map((n,r)=>({index:r+1,total:t,preview:IM(n)}))}o(iI,"formatPendingInputsLines");function TM(e){let t=iI(e);return t.length===0?void 0:[...t.map(i=>`\u23F3 [${i.index}/${i.total}] ${i.preview}`)," \u2191 pull all into editor \xB7 Esc drops latest"].join(`
|
|
69
|
+
`)}o(TM,"formatPendingInputsBudgetText");var oI=o(({pendingInputs:e})=>{let t=iI(e);if(t.length===0)return null;let n=ye("dark");return yf(O,{flexDirection:"column",children:[t.map(r=>yf(O,{children:[yf(M,{color:n.colors.hint,children:["\u23F3"," "]}),yf(M,{color:n.colors.dim,children:["[",r.index,"/",r.total,"] ",r.preview]})]},r.index)),dj(O,{children:yf(M,{color:n.colors.dim,children:[" ","\u2191 pull all into editor \xB7 Esc drops latest"]})})]})},"QueuedCommandsSurface");import{jsx as vM}from"react/jsx-runtime";function fj(e,t){switch(e){case"warning":return t.warning;case"accent":return t.accent;default:return t.dim}}o(fj,"resolveNotificationColor");var mg=o(({notifications:e})=>{let t=e.filter(r=>r.text.trim().length>0),n=ye("dark");return t.length===0?null:vM(O,{flexDirection:"column",paddingX:1,children:t.map(r=>vM(M,{color:fj(r.tone,n.colors),children:r.text},r.id))})},"NotificationsSurface");import{jsx as bM}from"react/jsx-runtime";var sI=o(({notices:e})=>{let t=e.filter(r=>r.trim().length>0);if(t.length===0)return null;let n=ye("dark");return bM(O,{flexDirection:"column",paddingX:1,children:t.map((r,i)=>bM(M,{color:n.colors.dim,children:r},`${r}-${i}`))})},"StatusNoticesSurface");import{jsxs as RM,jsx as pj}from"react/jsx-runtime";var hg=o(({text:e})=>{let t=e?.trim();if(!t)return null;let n=ye("dark");return RM(O,{paddingX:1,children:[RM(M,{color:n.colors.hint,children:["\u22EF"," "]}),pj(M,{color:n.colors.dim,children:t})]})},"StashNotice");import{jsx as ja,jsxs as mj}from"react/jsx-runtime";function kM({text:e,accent:t=!1,selected:n=!1}){let r=ye("dark");return ja(O,{marginRight:1,children:ja(M,{color:t?r.colors.accent:r.colors.primary,bold:n||t,children:`[ ${e} ]`})})}o(kM,"Pill");var gg=o(({items:e,overflowLabel:t,ctaHint:n,showSpinner:r=!1})=>{let i=e.filter(s=>s.label.trim().length>0);return i.length===0&&!t&&!n&&!r?null:mj(O,{flexDirection:"row",paddingX:1,children:[r?ja(O,{marginRight:1,children:ja(Ir,{})}):null,i.map(s=>ja(kM,{text:s.hint?`${s.label} (${s.hint})`:s.label,accent:s.accent,selected:s.selected},s.id)),t?ja(kM,{text:t}):null,n?ja(M,{dimColor:!0,children:n}):null]})},"BackgroundTaskBar");import{jsx as wf,jsxs as hj}from"react/jsx-runtime";var EM=uS;function gj(e){let t=ye("dark");switch(e){case"cyan":return t.colors.primary;case"green":return t.colors.success;default:return t.colors.dim}}o(gj,"resolveSymbolColor");var yj=o(({row:e})=>{let t=gj(e.symbolColor);return hj(O,{flexDirection:"row",children:[wf(O,{width:EM,flexShrink:0,children:wf(M,{color:t,bold:e.isActive,wrap:"truncate",children:LR(e.symbol,EM)})}),wf(M,{color:e.kind==="summary"?ye("dark").colors.dim:void 0,bold:e.isActive,wrap:"truncate",children:e.text})]})},"ChildActivityRowView");function aI(e){return!e.shouldRender||e.rows.length===0?0:e.rows.length}o(aI,"measureChildActivitySurfaceRows");var cI=o(({viewModel:e})=>!e.shouldRender||e.rows.length===0?null:wf(O,{flexDirection:"column",flexGrow:1,children:e.rows.map(t=>wf(yj,{row:t},`${t.kind}-${t.id}`))}),"ChildActivitySurface");import MM,{createContext as PM,useContext as LM,useReducer as wj,useCallback as wt,useRef as AM,useEffect as _M}from"react";function Sj(e,t){return e.agentId===t&&e.priority==="user"&&e.mode==="prompt"}o(Sj,"isPendingPromptForAgent");function Sf(e){return Nr().getSnapshot().filter(t=>Sj(t,e))}o(Sf,"getPendingPrompts");function lI(e){return Sf(e).map(t=>t.content)}o(lI,"getPendingPromptContents");var uI={state:Bi.Idle,currentResponse:"",error:void 0,abortController:void 0,isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentTool:void 0,toolInputCharCount:0,toolInputContent:"",iterationHistory:[],currentIteration:1,maxIter:200,isCompacting:!1,pendingInputs:[],roundStartedAt:null};function dI(e={}){let t=o(()=>e.getPendingInputAgentId?.(),"getPendingInputAgentId"),n={...uI,pendingInputs:lI(t())},r=new Set,i="",s="",a=0,c=null,l=!1,u=80,d=o(()=>{for(let T of r)T(n)},"notify"),p=o(()=>{let T=lI(t());if(T.length===n.pendingInputs.length){let x=!0;for(let I=0;I<T.length;I++)if(T[I]!==n.pendingInputs[I]){x=!1;break}if(x)return}n={...n,pendingInputs:T},d()},"syncReactStateFromQueue"),m=Nr().subscribe(()=>{p()}),h=o(()=>Nr().dequeue({agentId:t(),maxPriority:"user",mode:"prompt"}).map(x=>x.content),"drainOurSlice"),g=o(()=>{if(c&&(clearTimeout(c),c=null),i||s||a>0){let x=n.thinkingContent+s,I=s?x.length:n.thinkingCharCount+a;n={...n,currentResponse:n.currentResponse+i,thinkingContent:x,thinkingCharCount:I,...s||a>0?{isThinking:!0}:{}},i="",s="",a=0,d()}},"flushPendingUpdates"),S=o(()=>{c||(c=setTimeout(g,u))},"scheduleFlush");return{getState:o(()=>n,"getState"),setState:o(T=>{g(),n={...n,state:T},d()},"setState"),startStreaming:o(()=>{l=!1,i="",s="",a=0,c&&(clearTimeout(c),c=null),n={...n,state:Bi.Responding,currentResponse:"",abortController:new AbortController,error:void 0,roundStartedAt:Date.now()},d()},"startStreaming"),stopStreaming:o(()=>{g(),n={...n,state:Bi.Idle,abortController:void 0,roundStartedAt:null},d()},"stopStreaming"),appendResponse:o(T=>{l||(i+=T,S())},"appendResponse"),clearResponse:o(()=>{g(),n={...n,currentResponse:""},d()},"clearResponse"),setError:o(T=>{g(),n={...n,error:T,state:T?Bi.Idle:n.state},d()},"setError"),abort:o(T=>{l=!0,g(),n.abortController?.abort(),i="",s="",a=0,c&&(clearTimeout(c),c=null),T?.preservePendingInputs||h(),n={...n,state:Bi.Idle,abortController:void 0,roundStartedAt:null},d()},"abort"),reset:o(()=>{l=!0,g(),n.abortController?.abort(),i="",s="",a=0,c&&(clearTimeout(c),c=null),h(),n={...uI,pendingInputs:lI(t())},l=!1,d()},"reset"),isStreaming:o(()=>n.state===Bi.Responding||n.state===Bi.WaitingForConfirmation,"isStreaming"),subscribe:o(T=>(r.add(T),()=>{r.delete(T)}),"subscribe"),startThinking:o(()=>{g(),n={...n,isThinking:!0,thinkingCharCount:0,thinkingContent:""},d()},"startThinking"),appendThinkingChars:o(T=>{l||(a+=T,S())},"appendThinkingChars"),appendThinkingContent:o(T=>{l||(s+=T,S())},"appendThinkingContent"),stopThinking:o(()=>{g(),n={...n,isThinking:!1,thinkingCharCount:0},d()},"stopThinking"),clearThinkingContent:o(()=>{g(),n={...n,isThinking:!1,thinkingCharCount:0,thinkingContent:""},d()},"clearThinkingContent"),setCurrentTool:o(T=>{g(),n={...n,currentTool:T,toolInputCharCount:0,toolInputContent:""},d()},"setCurrentTool"),appendToolInputChars:o(T=>{n={...n,toolInputCharCount:n.toolInputCharCount+T},d()},"appendToolInputChars"),appendToolInputContent:o(T=>{n.toolInputContent.length<240&&(n={...n,toolInputContent:(n.toolInputContent+T).slice(0,240)},d())},"appendToolInputContent"),clearToolInputContent:o(()=>{n={...n,toolInputContent:""},d()},"clearToolInputContent"),getSignal:o(()=>n.abortController?.signal,"getSignal"),getFullResponse:o(()=>n.currentResponse+i,"getFullResponse"),getThinkingContent:o(()=>n.thinkingContent+s,"getThinkingContent"),startNewIteration:o(T=>{g(),n.thinkingContent||n.currentResponse?n={...n,thinkingContent:"",thinkingCharCount:0,currentResponse:"",isThinking:!1,currentTool:void 0,toolInputCharCount:0,toolInputContent:"",currentIteration:T}:n={...n,currentIteration:T},d()},"startNewIteration"),clearIterationHistory:o(()=>{g(),n={...n,iterationHistory:[],currentIteration:1,maxIter:uI.maxIter,thinkingContent:"",thinkingCharCount:0,currentResponse:"",currentTool:void 0,toolInputCharCount:0,toolInputContent:""},d()},"clearIterationHistory"),setMaxIter:o(T=>{g(),n={...n,maxIter:T},d()},"setMaxIter"),startCompacting:o(()=>{g(),n={...n,isCompacting:!0},d()},"startCompacting"),stopCompacting:o(()=>{g(),n={...n,isCompacting:!1},d()},"stopCompacting"),addPendingInput:o((T,x)=>{let I=T.trim();I&&(Sf(t()).length>=5||(g(),Nr().enqueue({agentId:t(),priority:"user",mode:"prompt",delivery:x?.delivery,content:I})))},"addPendingInput"),removeLastPendingInput:o(()=>{let T=Sf(t()),x=T[T.length-1];x&&(g(),Nr().dequeue({agentId:t(),maxPriority:"user",mode:"prompt",id:x.id}))},"removeLastPendingInput"),capturePendingInputCancellation:o(()=>{let T=t(),x=Sf(T).map(I=>I.id);return()=>{for(let I of x)Nr().dequeue({agentId:T,maxPriority:"user",mode:"prompt",id:I})}},"capturePendingInputCancellation"),peekPendingInputDelivery:o(()=>Sf(t())[0]?.delivery,"peekPendingInputDelivery"),shiftPendingInput:o(()=>(g(),Nr().dequeue({agentId:t(),maxPriority:"user",mode:"prompt",limit:1})[0]?.content),"shiftPendingInput"),clearPendingInputs:o(()=>{g(),h()},"clearPendingInputs"),consumePendingInputs:o(()=>(g(),h()),"consumePendingInputs"),dispose:o(()=>{m()},"dispose")}}o(dI,"createStreamingManager");var OM=PM(null),$M=PM(null);function yg({children:e,onStateChange:t,getPendingInputAgentId:n}){let r=AM(n);r.current=n;let i=AM(void 0);i.current||(i.current=dI({getPendingInputAgentId:o(()=>r.current?.(),"getPendingInputAgentId")}));let s=i.current,[,a]=wj(X=>X+1,0);_M(()=>s.subscribe(re=>{a(),t?.(re)}),[s,t]),_M(()=>()=>{s.dispose()},[s]);let c=wt(()=>{s.startStreaming()},[]),l=wt(()=>{s.stopStreaming()},[]),u=wt(X=>{s.appendResponse(X)},[]),d=wt(()=>{s.clearResponse()},[]),p=wt(X=>{s.setError(X)},[]),m=wt(X=>{s.abort(X)},[]),h=wt(()=>{s.reset()},[]),g=wt(()=>{s.startThinking()},[]),S=wt(X=>{s.appendThinkingChars(X)},[]),T=wt(X=>{s.appendThinkingContent(X)},[]),x=wt(()=>{s.stopThinking()},[]),I=wt(()=>{s.clearThinkingContent()},[]),v=wt(X=>{s.setCurrentTool(X)},[]),k=wt(X=>{s.appendToolInputChars(X)},[]),_=wt(X=>{s.appendToolInputContent(X)},[]),H=wt(()=>{s.clearToolInputContent()},[]),$=wt(()=>s.getSignal(),[]),P=wt(()=>s.getFullResponse(),[]),z=wt(()=>s.getThinkingContent(),[]),J=wt(X=>{s.startNewIteration(X)},[]),L=wt(()=>{s.clearIterationHistory()},[]),W=wt(X=>{s.setMaxIter(X)},[]),N=wt(()=>{s.startCompacting()},[]),q=wt(()=>{s.stopCompacting()},[]),B=wt((X,re)=>{s.addPendingInput(X,re)},[]),ae=wt(()=>{s.removeLastPendingInput()},[]),ee=wt(()=>s.shiftPendingInput(),[]),ie=wt(()=>s.peekPendingInputDelivery(),[]),C=wt(()=>{s.clearPendingInputs()},[]),Te=wt(()=>s.consumePendingInputs(),[]),Fe=wt(()=>s.capturePendingInputCancellation(),[]),Ce={startStreaming:c,stopStreaming:l,appendResponse:u,clearResponse:d,setError:p,abort:m,reset:h,startThinking:g,appendThinkingChars:S,appendThinkingContent:T,stopThinking:x,clearThinkingContent:I,setCurrentTool:v,appendToolInputChars:k,appendToolInputContent:_,clearToolInputContent:H,getSignal:$,getFullResponse:P,getThinkingContent:z,startNewIteration:J,clearIterationHistory:L,setMaxIter:W,startCompacting:N,stopCompacting:q,addPendingInput:B,removeLastPendingInput:ae,peekPendingInputDelivery:ie,shiftPendingInput:ee,clearPendingInputs:C,consumePendingInputs:Te,capturePendingInputCancellation:Fe};return MM.createElement(OM.Provider,{value:s.getState()},MM.createElement($M.Provider,{value:Ce},e))}o(yg,"StreamingProvider");function If(){let e=LM(OM);if(!e)throw new Error("useStreamingState must be used within a StreamingProvider");return e}o(If,"useStreamingState");function Cf(){let e=LM($M);if(!e)throw new Error("useStreamingActions must be used within a StreamingProvider");return e}o(Cf,"useStreamingActions");function NM(){let e=If(),t=Cf(),n=e.state===Bi.Responding||e.state===Bi.WaitingForConfirmation;return{state:e,actions:t,isStreaming:n}}o(NM,"useStreaming");import{useCallback as xj,useRef as Ij}from"react";var Cj=500;function Tj(e={}){let{onKey:t,onEsc:n,onCtrlC:r,enabled:i=!0}=e,s=Ij(0),{exit:a}=qi(),c=xj(l=>{if(!i)return!1;if(l.name==="escape"){let u=Date.now(),d=u-s.current<Cj;return s.current=u,d&&(l.name="escape-escape"),n?.(),t?.(l),!0}return l.ctrl&&l.name==="c"?(r?.(),t?.(l),!0):l.ctrl&&l.name==="d"?(a(),!0):(t?.(l),!1)},[i,a,r,n,t]);return Wr(c,{isActive:i}),{lastEscTime:s.current}}o(Tj,"useKeypress");function vj(e){return{is:o((t,n)=>!(e.name!==t||n?.ctrl!==void 0&&e.ctrl!==n.ctrl||n?.shift!==void 0&&e.shift!==n.shift||n?.meta!==void 0&&e.meta!==n.meta),"is"),isCtrl:o(t=>e.ctrl&&e.name===t,"isCtrl"),isShift:o(t=>e.shift&&e.name===t,"isShift"),isArrow:o(()=>["up","down","left","right"].includes(e.name),"isArrow"),isChar:o(()=>e.sequence?.length===1&&!e.ctrl&&!e.meta,"isChar"),getChar:o(()=>e.sequence?.length===1?e.sequence:null,"getChar")}}o(vj,"createKeyMatcher");import{useCallback as DM,useSyncExternalStore as bj}from"react";function Rj(e,t){return e.agentId===t&&e.priority==="user"&&e.mode==="prompt"}o(Rj,"isQueuedPromptForAgent");var fI=null,wg=new Map;function kj(e){let t=Nr().getSnapshot();t!==fI&&(fI=t,wg.clear());let n=wg.get(e);if(n!==void 0)return n;let r=Object.freeze(t.filter(i=>Rj(i,e)));return wg.set(e,r),r}o(kj,"getQueueSliceSnapshot");function BM(e){let t=DM(r=>Nr().subscribe(r),[]),n=DM(()=>kj(e),[e]);return bj(t,n,n)}o(BM,"useQueuedPrompts");function Ej(e){return BM(e).map(n=>n.content)}o(Ej,"useQueuedPromptContents");function Mj(){fI=null,wg.clear()}o(Mj,"_resetQueuedPromptsCacheForTests");async function Tf(e){let t=e.existingArtifactLedger?.map(n=>({...n,metadata:n.metadata?{...n.metadata}:void 0}));return{messages:e.existingMessages??[],uiHistory:e.existingUiHistory?.map(n=>({...n})),lineage:e.existingLineage??void 0,artifactLedger:t,extensionState:e.existingExtensionState?structuredClone(e.existingExtensionState):void 0,extensionRecords:e.existingExtensionRecords?.map(n=>({...n})),extensionStateDirty:!1,extensionRecordsDirty:!1,sessionSnapshotDirty:!1,sessionId:e.sessionId??Ua(),title:"",gitRoot:e.gitRoot,runtimeInfo:e.runtimeInfo,createdAt:new Date().toISOString(),lastAccessed:new Date().toISOString()}}o(Tf,"createInteractiveContext");function Ua(){return Tb()}o(Ua,"generateSessionId");function Ci(e){e.lastAccessed=new Date().toISOString()}o(Ci,"touchContext");async function vf(e){let t;return{getGuardrail:o(()=>{if(t)return t;let r=Vb({getToolProjection:o(i=>(Gc(i)??Gw(i))?.toClassifierInput,"getToolProjection"),getToolSideEffect:o(i=>(Gc(i)??Gw(i))?.sideEffect,"getToolSideEffect"),resolveProvider:o(i=>{try{return fa(i)}catch{return}},"resolveProvider"),defaultProvider:e.getCurrentProviderName(),defaultModel:e.getCurrentModel()??"",getDefaultProvider:e.getCurrentProviderName,getDefaultModel:o(()=>e.getCurrentModel()??"","getDefaultModel"),admitWorkspaceSandboxCall:e.admitWorkspaceSandboxCall,log:e.log,sharedState:e.sharedState,projectRoot:e.projectRoot,executionCwd:e.executionCwd,trustProcessEnvironmentPathExpansion:e.trustProcessEnvironmentPathExpansion!==!1,extraCollectors:e.extraCollectors,extraAbsoluteDenyChecks:[tR],userSettings:e.autoModeSettings.classifierModel,envVar:e.autoModeSettings.classifierModelEnv,administratorPolicy:e.administratorPolicy,reviewPolicy:e.autoModeSettings.reviewPolicy,modelGuidance:e.modelGuidance});return t={...r,async beforeTool(i,s){let a=await r.beforeTool(i,s);return a.action==="escalate"?{action:"block",reason:`[auto_review_denied] ${a.reason}`}:a}},t},"getGuardrail"),resetTurn:o(()=>t?.resetTurn(),"resetTurn")}}o(vf,"bootstrapAutoMode");import{exec as Aj}from"child_process";import{promisify as _j}from"util";var Pj=_j(Aj),Lj={read:"read",grep:"grep",glob:"glob",write:"write",edit:"edit",bash:"bash",undo:"undo",askuserquestion:"ask-user-question",askuser:"ask-user-question"};function HM(e){let t=[],n="",r=0;for(let i of e){if(i===","&&r===0){n.trim()&&t.push(n.trim()),n="";continue}i==="("?r++:i===")"&&r>0&&r--,n+=i}return n.trim()&&t.push(n.trim()),t}o(HM,"splitTopLevelCommaList");function Oj(e){if(!e?.trim())return{configured:!1,rules:[],invalidEntries:[]};let t=[];return{configured:!0,rules:HM(e).map(r=>{if(r==="*")return{tool:"*"};if(r.includes("(")&&!r.endsWith(")")){t.push(r);return}let i=r.match(/^([^(]+?)(?:\((.*)\))?$/);if(!i){t.push(r);return}let s=Lj[i[1].replace(/[^a-z]/gi,"").toLowerCase()];if(!s){t.push(r);return}let a=i[2]?HM(i[2]).map(c=>c.trim()).filter(Boolean):void 0;return{tool:s,patterns:a&&a.length>0?a:void 0}}).filter(r=>r!==void 0),invalidEntries:t}}o(Oj,"parseAllowedTools");function $j(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${t}$`,"i")}o($j,"wildcardToRegExp");function FM(e,t){return $j(e).test(t)}o(FM,"matchesPattern");function WM(e,t,n){if(!e.configured)return!0;if(e.rules.length===0)return!1;let r=t.toLowerCase(),i=r==="bash"?String(n.command??"").trim():"";return e.rules.some(s=>s.tool!=="*"&&s.tool!==r?!1:!s.patterns||s.patterns.length===0||r!=="bash"?!0:s.patterns.some(a=>FM(a,i)))}o(WM,"isToolAllowed");function Nj(e,t){return e.matcher?FM(e.matcher,t):!0}o(Nj,"hookMatches");function Dj(e,t){if(!t)return e;let n=t.name.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`/(?:skill:)?${n}(?![\\w/-])`,"i"),`the active Skill "${t.name}"`).trim()||`Execute the active Skill "${t.name}".`}o(Dj,"buildModelUserInput");async function Bj(e,t,n,r,i,s,a){let c=typeof n.displayName=="string"?n.displayName:"frontmatter invocation",l={command:t.command,_reason:`Frontmatter hook ${e} for ${c}`,_frontmatterHook:!0,_hookEvent:e,_hookMatcher:t.matcher};if(!WM(s,"bash",l))return{allow:!1,message:`Hook ${e} for ${c} is blocked by allowed-tools policy.`};let u=await i.beforeToolExecute?.("bash",l);if(u!==!0)return{allow:!1,message:typeof u=="string"?u:`Hook ${e} for ${c} was blocked by the current permission policy.`};try{let{stdout:d,stderr:p}=await Pj(t.command,{cwd:a,env:{...process.env,KODAX_HOOK_EVENT:e,KODAX_HOOK_PAYLOAD:JSON.stringify(n)},maxBuffer:1048576,windowsHide:!0}),m=[d.trim(),p.trim()].filter(Boolean).join(`
|
|
70
|
+
`);m&&i.onToolResult?.({id:`frontmatter-hook:${e}`,name:"bash",content:m}),p.trim()&&await r(`[Hook ${e} stderr] ${p.trim()}`);let h=d.trim();if(!h)return{};try{let g=JSON.parse(h);return{allow:typeof g.allow=="boolean"?g.allow:typeof g.continue=="boolean"?g.continue:void 0,message:typeof g.message=="string"?g.message:void 0,additionalContext:typeof g.additionalContext=="string"?g.additionalContext:typeof g.additional_context=="string"?g.additional_context:void 0}}catch{return e==="PreToolUse"?{allow:!1,message:`Hook ${e} for ${c} returned invalid JSON.`}:{message:h,additionalContext:h}}}catch(d){let p=d instanceof Error?d.message:String(d);return await r(`[Hook ${e} failed] ${p}`),e==="PreToolUse"?{allow:!1,message:`Hook ${e} for ${c} failed.`}:{}}}o(Bj,"executeHookCommand");async function Bl(e,t,n,r,i,s,a,c){let l=e?.[t];if(!l||l.length===0)return{};let u={};for(let d of l){if(!Nj(d,n))continue;let p=await Bj(t,d,r,i,s,a,c);if(p.message&&await i(`[Hook ${t}] ${p.message}`),p.additionalContext&&(u.additionalContext=u.additionalContext?`${u.additionalContext}
|
|
71
|
+
${p.additionalContext}`:p.additionalContext),p.allow===!1){u.allow=!1;break}}return u}o(Bl,"runHooks");async function Hl(e,t,n,r,i=!1){if(i&&t.source==="skill")return{mode:"inline",prompt:n,options:e,finalize:o(async()=>{},"finalize")};let s=e.events??{},a=Oj(t.allowedTools),c=t.source==="skill"&&t.skillInvocation!==void 0,l=c?t.skillInvocation:void 0,u=e.context?.executionCwd??e.context?.gitRoot??process.cwd(),d=Pb(e.provider,t.model),p=!1,m=o(async H=>{if(r(H),!(p||!t.hooks?.Notification?.length)){p=!0;try{await Bl(t.hooks,"Notification",H,{displayName:t.displayName,source:t.source,path:t.path,message:H},async $=>{r($)},s,a,u)}finally{p=!1}}},"emitWithNotifications");t.model&&!d&&await m(`[Info] Model preference '${t.model}' is not supported by provider '${e.provider}', using the current model.`),a.invalidEntries.length>0&&await m(`[Warning] ${t.displayName} has invalid allowed-tools entries: ${a.invalidEntries.join(", ")}`),a.configured&&a.rules.length===0&&await m(`[Warning] ${t.displayName} has no valid allowed-tools entries, so all tool execution will be blocked.`);let h=await Bl(t.hooks,"SessionStart",t.displayName,{displayName:t.displayName,source:t.source,path:t.path},m,s,a,u);if(h.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped before execution.`,finalize:o(async()=>{},"finalize")};let g=await Bl(t.hooks,"UserPromptSubmit",n,{displayName:t.displayName,source:t.source,prompt:n,path:t.path},m,s,a,u);if(g.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped by a UserPromptSubmit hook.`,finalize:o(async()=>{},"finalize")};let S=[t.agent?`Preferred agent: ${t.agent}`:void 0,h.additionalContext,g.additionalContext].filter(H=>typeof H=="string"&&H.trim().length>0),T=Dj(n,l),x=[e.context?.promptOverlay,...S,l?void 0:t.prompt].filter(H=>typeof H=="string"&&H.trim().length>0),I=[S.length>0?S.join(`
|
|
72
72
|
|
|
73
|
-
`):void 0,l?void 0:t.prompt,`User request: ${T}`].filter(H=>typeof H=="string"&&H.trim().length>0),v={...s,beforeToolExecute:o(async(H,$,P)=>WM(a,H,$)?(await
|
|
73
|
+
`):void 0,l?void 0:t.prompt,`User request: ${T}`].filter(H=>typeof H=="string"&&H.trim().length>0),v={...s,beforeToolExecute:o(async(H,$,P)=>WM(a,H,$)?(await Bl(t.hooks,"PreToolUse",H,{tool:H,input:$,displayName:t.displayName,source:t.source,path:t.path},m,s,a,u)).allow===!1?(await m(`[Blocked] PreToolUse hook blocked '${H}' for ${t.displayName}`),!1):s.beforeToolExecute?await s.beforeToolExecute(H,$,P):!0:(await m(`[Blocked] Tool '${H}' is not allowed by ${t.displayName}`),!1),"beforeToolExecute"),onToolResult:o((H,$)=>{s.onToolResult?.(H,$),Bl(t.hooks,"PostToolUse",H.name,{...H,displayName:t.displayName,source:t.source,path:t.path},m,s,a,u)},"onToolResult")},k=!1,_=o(async H=>{k||(k=!0,await Bl(t.hooks,t.context==="fork"?"SubagentStop":"Stop",t.displayName,{displayName:t.displayName,source:t.source,path:t.path,error:H?.message},m,s,a,u))},"finalize");return{mode:t.context==="fork"?"fork":"inline",prompt:I.join(`
|
|
74
74
|
|
|
75
75
|
`),options:{...e,modelOverride:d,context:{...e.context,...t.workflowIntent?{workflowIntent:t.workflowIntent}:{},rawUserInput:n,...x.length>0?{promptOverlay:x.join(`
|
|
76
76
|
|
|
77
|
-
`)}:{},skillInvocation:t.source==="skill"?t.skillInvocation&&{...t.skillInvocation,runtimePolicy:{enforceAtRuntime:!0}}:e.context?.skillInvocation},events:c?s:v},finalize:_}}o(
|
|
77
|
+
`)}:{},skillInvocation:t.source==="skill"?t.skillInvocation&&{...t.skillInvocation,runtimePolicy:{enforceAtRuntime:!0}}:e.context?.skillInvocation},events:c?s:v},finalize:_}}o(Hl,"prepareInvocationExecution");var Fl=class{static{o(this,"MemorySessionStorage")}sessions=new Map;async save(t,n){let r=this.sessions.get(t);this.sessions.set(t,{...structuredClone(n),scope:n.scope??r?.scope??"user",uiHistory:n.uiHistory??r?.uiHistory,extensionState:n.extensionState??r?.extensionState,artifactLedger:n.artifactLedger??r?.artifactLedger,actorSnapshot:n.actorSnapshot??r?.actorSnapshot,extensionRecords:n.extensionRecords??r?.extensionRecords,tag:n.tag??r?.tag,lineage:it(n.messages,n.lineage??r?.lineage)})}async load(t){return structuredClone(this.sessions.get(t)??null)}async getLineage(t){return structuredClone(this.sessions.get(t)?.lineage??null)}async loadFullLineage(t){return this.getLineage(t)}async setActiveEntry(t,n,r){let i=this.sessions.get(t);if(!i?.lineage)return null;let s=Hc(i.lineage,n,r);if(!s)return null;let a={...structuredClone(i),messages:Yt(s),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async setLabel(t,n,r){let i=this.sessions.get(t);if(!i?.lineage)return null;let s=Fc(i.lineage,n,r);if(!s)return null;let a={...structuredClone(i),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async fork(t,n,r){let i=this.sessions.get(t);if(!i?.lineage)return null;let s=wo(i.lineage,n);if(!s)return null;let a=r?.sessionId??await Uc(),c={messages:Yt(s),title:r?.title??i.title,gitRoot:i.gitRoot,tag:i.tag,uiHistory:i.uiHistory?i.uiHistory.map(l=>({...l})):void 0,extensionState:i.extensionState?structuredClone(i.extensionState):void 0,artifactLedger:i.artifactLedger?structuredClone(i.artifactLedger):void 0,extensionRecords:i.extensionRecords?structuredClone(i.extensionRecords):void 0,lineage:s};return this.sessions.set(a,c),{sessionId:a,data:structuredClone(c)}}async rewind(t,n){let r=this.sessions.get(t);if(!r?.lineage)return null;let i=n??Wc(r.lineage);if(!i)return null;let s=jc(r.lineage,i);if(!s)return null;let a={...r,messages:Yt(s),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async list(t){return Array.from(this.sessions.entries()).filter(([,n])=>(n.scope??"user")==="user").map(([n,r])=>({id:n,title:r.title,msgCount:r.lineage?us(r.lineage):r.messages.length,...r.tag!==void 0?{tag:r.tag}:{}}))}async delete(t){this.sessions.delete(t)}async deleteAll(t){this.sessions.clear()}};function Hj(){return new Fl}o(Hj,"createMemorySessionStorage");async function Sg(e,t={}){let n=e.trim();if(!n)return"[Shell: No command provided]";let r;if(!t.execute)r="[Blocked] "+JSON.stringify({code:"runtime_execution_unavailable",denialSource:"runtime_capability",retryable:!1,remediation:"Connect the current Session execution owner to manual Shell."});else try{let i=await t.execute(n),s=i.interrupted?"cancelled":i.success?"executed":"failed",a=i.success?t.maxOutputLength??8e3:t.maxErrorLength??4e3,c=i.lastText.length>a?`${i.lastText.slice(0,a)}
|
|
78
78
|
...[output truncated]`:i.lastText;r=`[Shell command ${s}: ${n}]
|
|
79
79
|
|
|
80
80
|
${c||"(no output)"}`}catch(i){r=`[Shell command failed: ${n}]
|
|
81
81
|
|
|
82
82
|
${i instanceof Error?i.message:String(i)}`}return t.onOutput?t.onOutput(r):process.stdout.write(`
|
|
83
83
|
${r}
|
|
84
|
-
`),r}o(Sg,"executeShellCommand");async function fI(e,t={}){return e.startsWith("!")?Sg(e.slice(1),t):e}o(fI,"processSpecialSyntax");function Fj(e){return e.trim().startsWith("!")}o(Fj,"isShellCommand");function Wj(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell:")}o(Wj,"isShellCommandSuccess");function vf(e){return/^\[Shell command (?:executed|failed|cancelled):/.test(e)||e.startsWith("[Shell:")||e.startsWith("[Blocked]")}o(vf,"isShellCommandHandled");var jj=new Set(["user","assistant","system"]),Uj=new Set(["user","assistant","system","thinking","error","event","info","hint","sidecar"]),Vj=new Set(["success","error","cancelled","awaiting_approval"]);function lt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}o(lt,"isRecord");function _o(e){if(e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return!0;if(Array.isArray(e))return e.every(_o);if(!lt(e))return!1;let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null?!1:Object.values(e).every(_o)}o(_o,"isKodaXJsonValue");function UM(e){return lt(e)&&typeof e.id=="string"&&typeof e.extensionId=="string"&&typeof e.type=="string"&&typeof e.ts=="number"&&(e.data===void 0||_o(e.data))&&(e.dedupeKey===void 0||typeof e.dedupeKey=="string")}o(UM,"isKodaXExtensionSessionRecord");function VM(e){return lt(e)?Object.values(e).every(t=>lt(t)?Object.values(t).every(_o):!1):!1}o(VM,"isKodaXExtensionSessionState");function Gj(e){if(!lt(e)||typeof e.type!="string")return!1;switch(e.type){case"text":return typeof e.text=="string";case"tool_use":return typeof e.id=="string"&&typeof e.name=="string"&<(e.input);case"tool_result":return typeof e.tool_use_id=="string"&&(typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(Kj))&&(e.is_error===void 0||typeof e.is_error=="boolean")&&(e.metadata===void 0||lt(e.metadata));case"image":return typeof e.path=="string"&&(e.mediaType===void 0||typeof e.mediaType=="string");case"thinking":return typeof e.thinking=="string"&&(e.signature===void 0||typeof e.signature=="string");case"redacted_thinking":return typeof e.data=="string";case"cache-boundary":return e.hint===void 0||e.hint==="system"||e.hint==="tools"||e.hint==="role-prompt";default:return!1}}o(Gj,"isKodaXContentBlock");function Kj(e){return lt(e)?e.type==="text"?typeof e.text=="string":e.type==="image"&&typeof e.path=="string"&&(e.mediaType===void 0||typeof e.mediaType=="string"):!1}o(Kj,"isKodaXToolResultContentItem");function pI(e){return!lt(e)||typeof e.role!="string"||!jj.has(e.role)?!1:typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(Gj)}o(pI,"isKodaXMessage");function GM(e){return lt(e)?(e.lastError===void 0||typeof e.lastError=="string")&&(e.lastErrorTime===void 0||typeof e.lastErrorTime=="number")&&(e.consecutiveErrors===void 0||typeof e.consecutiveErrors=="number"):!1}o(GM,"isSessionErrorMetadata");function zj(e){return lt(e)&&Object.values(e).every(_o)}o(zj,"isKodaXSessionUiToolInput");function qj(e){return lt(e)&&typeof e.id=="string"&&typeof e.name=="string"&&typeof e.status=="string"&&Vj.has(e.status)&&(e.input===void 0||zj(e.input))&&(e.preview===void 0||typeof e.preview=="string")&&(e.output===void 0||typeof e.output=="string")&&(e.error===void 0||typeof e.error=="string")&&(e.startTime===void 0||typeof e.startTime=="number")&&(e.endTime===void 0||typeof e.endTime=="number")}o(qj,"isKodaXSessionUiToolCall");function jM(e){return e===void 0||typeof e=="number"&&Number.isFinite(e)&&e>=0}o(jM,"isOptionalHistoryTimestamp");function xg(e){return!lt(e)||typeof e.type!="string"?!1:e.type==="tool_group"?jM(e.timestamp)&&Array.isArray(e.tools)&&e.tools.length>0&&e.tools.every(qj):Uj.has(e.type)&&(e.outputId===void 0||typeof e.outputId=="string")&&(e.textRevision===void 0||typeof e.textRevision=="number"&&Number.isSafeInteger(e.textRevision)&&e.textRevision>=0)&&typeof e.text=="string"&&jM(e.timestamp)&&(e.presentationOnly===void 0||e.presentationOnly===!0)&&(e.sidecarVerdict===void 0||e.sidecarVerdict==="revise"||e.sidecarVerdict==="blocked")&&(e.sidecarDelivery===void 0||e.sidecarDelivery==="synthetic-user-message"||e.sidecarDelivery==="budget-exhausted"||e.sidecarDelivery==="terminal-block")&&(e.icon===void 0||typeof e.icon=="string")&&(e.compactText===void 0||typeof e.compactText=="string")}o(xg,"isKodaXSessionUiHistoryItem");var Xj=1e3;function Ji(e,t){let n=Number.isInteger(e)&&e>=0?e:0;if(!Array.isArray(t))return n;let r=t.reduce((i,s)=>xg(s)&&s.type!=="tool_group"&&s.presentationOnly===!0?i+1:i,0);return n+r}o(Ji,"countResumableSessionItems");async function bf(e,t){return(await e.list(t,{limit:Xj})).find(r=>r.msgCount>0)}o(bf,"findMostRecentResumableSession");import{createHash as gI}from"node:crypto";var Yj=16,Jj=4*1024,KM=512,Qj=8,zM="kodax-conversation-entry-chain-v1\0",Zj="kodax-conversation-history-v2\0";function yI(){return`sha256:${gI("sha256").update(zM).digest("hex")}`}o(yI,"emptyConversationEntryChain");function Ef(e,t){let n=e;for(let r of t){let i=JSON.stringify(r);n=`sha256:${gI("sha256").update(zM).update(n).update(`${Buffer.byteLength(i,"utf8")}:`).update(i).digest("hex")}`}return n}o(Ef,"extendConversationEntryChain");function Fl(e){return Ef(yI(),e)}o(Fl,"createConversationEntryChain");function Wl(e,t=Fl(e.entries)){return`sha256:${gI("sha256").update(Zj).update(t).update(JSON.stringify({sourceRevision:e.sourceRevision,status:e.status,issues:e.issues})).digest("hex")}`}o(Wl,"createSessionConversationHistoryRevision");function qM(e){return e.type==="message"||e.type==="compaction"||e.type==="branch_summary"}o(qM,"isThreadEntry");function Mf(e){return e._source==="managed-run-context"||e._source==="managed-runtime-context"}o(Mf,"isManagedContextMessage");function Va(e){return e.type!=="message"?!1:!Mf(e.message)}o(Va,"isOrdinaryConversationMessageEntry");function Ig(e,t,n){let r=[],i=new Set,s=t.get(e),a=s!==void 0,c=0;for(;s!==void 0;){if(c%256===0&&n?.(),c+=1,i.has(s.id)){a=!1;break}if(i.add(s.id),r.push(s),s.parentId===null)break;let l=t.get(s.parentId);l===void 0&&(a=!1),s=l}return{entries:r.reverse(),complete:a}}o(Ig,"threadPath");function wI(e,t,n,r){let i=Ib(e.entries,t.lookup,r),s=[];for(let a=0;a<e.entries.length;a+=1){a>0&&a%256===0&&r?.();let c=e.entries[a];if(!Va(c))continue;let l=i.get(c.id);if(l===void 0){s.push(c);continue}let u={...c,message:l.message,logicalId:l.logicalId,sourceEntryId:l.sourceEntryId};n&&t.restoredEntries.set(c.id,u),s.push(u)}return s}o(wI,"ordinaryPathMessages");function Cg(e){return vg(e).length>0}o(Cg,"hasExplicitProvenance");function vg(e){return[...new Set([...e.logicalId!==void 0&&e.logicalId!==e.id?[e.logicalId]:[],...e.sourceEntryId!==void 0&&e.sourceEntryId!==e.id?[e.sourceEntryId]:[]])]}o(vg,"explicitProvenanceKeys");function mI(e,t){let n=new Set([e.id,e.logicalId,e.sourceEntryId]);return vg(t).every(r=>n.has(r))}o(mI,"provenanceMatches");function eU(e,t,n){let r=-1;for(let s=0;s<t.length;s+=1)if(s>0&&s%256===0&&n?.(),Cg(t[s])){r=s;break}if(r<0){let s=[],a=Math.max(0,e.length-t.length);for(let l=a;l<e.length;l+=1)l>a&&l%256===0&&n?.(),s.push(ks(e[l].message));let c=[];for(let l=0;l<t.length;l+=1)l>0&&l%256===0&&n?.(),c.push(ks(t[l].message));return SI(s,c,n).length>0}let i=Math.max(0,e.length-t.length);for(let s=0;s<e.length;s+=1){s%256===0&&n?.();let a=e[s],c=s-r;if(c<i||!mI(a,t[r]))continue;let l=e.length-c,u=l<=t.length;for(let d=0;u&&d<l;d+=1){d>0&&d%256===0&&n?.();let p=e[c+d],m=t[d];u=Cg(m)?mI(p,m):Ua(p.message,m.message)}if(u)return!0}return!1}o(eU,"retainedSuffixMatches");function tU(e,t,n,r,i,s){let a=[],c=new Map,l=new Map;for(let g=0;g<e.length;g+=1){g>0&&g%256===0&&s?.();let S=e[g];qM(S)&&(l.set(S.id,a.length),a.push(S),c.set(S.id,S))}let u=new Set;for(let g=0;g<a.length;g+=1){g>0&&g%256===0&&s?.();let S=a[g].parentId;S!==null&&u.add(S)}let d=[];for(let g=0;g<a.length;g+=1){g>0&&g%256===0&&s?.();let S=a[g];u.has(S.id)||d.push({leaf:S,path:Ig(S.id,c,s)})}let p=[];for(let g=0;g<d.length;g+=1)g>0&&g%256===0&&s?.(),d[g].path.complete||p.push(d[g]);if(p.length>0)return r.push({code:"lineage_path_incomplete",message:`A candidate predecessor path for compaction ${t.id} is incomplete.`,entryIds:[t.id,...p.map(g=>g.leaf.id)]}),[];let m=[];for(let g=0;g<d.length;g+=1){g>0&&g%256===0&&s?.();let S=d[g];XM(S.path,a.length,l,s)||m.push(S)}if(m.length>0)return r.push({code:"lineage_path_incomplete",message:`A candidate predecessor path for compaction ${t.id} is not append ordered.`,entryIds:[t.id,...m.map(g=>g.leaf.id)]}),[];if(t.firstKeptEntryId===void 0)return d;if(n.firstPhysicalMessageEntryId!==t.firstKeptEntryId)return r.push({code:"compaction_boundary_invalid",message:`Compaction ${t.id} does not identify its first retained message.`,entryIds:[t.id,t.firstKeptEntryId]}),[];let h=[];for(let g=0;g<d.length;g+=1){g>0&&g%256===0&&s?.();let S=d[g],T=wI(S.path,i,!1,s);eU(T,n.messages,s)&&h.push(S)}return h.length===0&&d.length>0&&r.push({code:"compaction_boundary_invalid",message:`Compaction ${t.id} retained suffix conflicts with every predecessor branch.`,entryIds:[t.id,...n.messages.map(g=>g.id)]}),h}o(tU,"compactionPredecessorCandidates");function nU(e,t,n,r,i,s){let a=tU(e,t,n,r,i,s),c=[...new Map(a.map(l=>[l.leaf.id,l.leaf])).values()];if(c.length===1)return c[0];r.push({code:c.length===0?"compaction_predecessor_missing":"compaction_predecessor_ambiguous",message:c.length===0?`No topology-proven predecessor was retained for compaction ${t.id}.`:`Compaction ${t.id} has multiple possible predecessor branches.`,entryIds:[t.id,...c.map(l=>l.id)]})}o(nU,"resolveCompactionPredecessor");function rU(e,t,n){if(t.firstPhysicalMessageEntryId!==e.firstKeptEntryId)return[];let r=t.messages,i=-1;for(let c=0;c<r.length;c+=1)if(c>0&&c%256===0&&n?.(),!Cg(r[c])){i=c;break}let s=i<0?r.length:i;if(s===0)return[];for(let c=s;c<r.length;c+=1)if(c>s&&c%256===0&&n?.(),Cg(r[c]))return[];let a=[];for(let c=0;c<s;c+=1)c>0&&c%256===0&&n?.(),a.push(r[c]);return a}o(rU,"leadingExplicitRetainedCopies");function XM(e,t,n,r){let i=-1;for(let s=0;s<e.entries.length;s+=1){s>0&&s%256===0&&r?.();let a=e.entries[s],c=n.get(a.id);if(c===void 0||c>=t||c<=i)return!1;i=c}return!0}o(XM,"isAppendOrderedPriorPath");function iU(e,t,n,r,i,s,a,c){let l=rU(e,t,c),u=l.at(-1),d=u===void 0?void 0:vg(u)[0];if(u===void 0||d===void 0)return[];let p=[],m=s.get(d)??[];for(let g=0;g<m.length;g+=1){c?.();let S=m[g];if((i.get(S.id)??Number.MAX_SAFE_INTEGER)>=n)continue;let T=Ig(S.id,r,c),x=wI(T,a,!1,c);if(!T.complete||!XM(T,n,i,c))continue;let I=Math.max(0,x.length-l.length),v=[];for(let _=I;_<x.length;_+=1)_>I&&_%256===0&&c?.(),v.push(x[_]);let k=v.length===l.length;for(let _=0;k&&_<v.length;_+=1){_>0&&_%256===0&&c?.();let H=v[_],$=l[_];k=mI(H,$)&&Ua(H.message,$.message)}k&&p.push(S)}let h=new Map;for(let g=0;g<p.length;g+=1){g>0&&g%256===0&&c?.();let S=p[g];h.set(S.id,S)}return[...h.values()]}o(iU,"explicitCompactionPredecessorCandidates");function oU(e,t){let n=new Map;for(let r=0;r<e.length;r+=1){r>0&&r%256===0&&t?.();let i=e[r];if(Va(i))for(let s of new Set([i.id,i.logicalId,i.sourceEntryId])){if(s===void 0)continue;let a=n.get(s)??[];a.push(i),n.set(s,a)}}return n}o(oU,"indexMessagesByIdentity");function sU(e,t,n){let r=e;for(let i=0;i<Qj;i+=1){let s=r.sourceEntryId;if(s===void 0||s===r.id)return e;if(t.has(s))return r===e?e:{...e,sourceEntryId:s};let a=n.byId(s);if(a?.type!=="message"||Mf(a.message)||kf(a)!==kf(e)||!Ua(a.message,e.message))return e;r=a}return e}o(sU,"withPredecessorSource");function aU(e,t,n,r){let i=[],s=new Map,a=new Map,c=[];for(let g=0;g<e.entries.length;g+=1){g>0&&g%256===0&&r?.();let S=e.entries[g];a.set(S.id,g),qM(S)&&(i.push(S),s.set(S.id,S),Va(S)&&c.push(S.id))}if(e.activeEntryId===null&&c.length>0)return t.push({code:"active_entry_missing",message:"Conversation lineage contains messages but has no active entry.",entryIds:c}),{epochs:[]};let l=oU(i,r),u=new Map,d=0;for(let g=0;g<e.entries.length;g+=1){g>0&&g%256===0&&r?.();let S=e.entries[g];S.type==="compaction"&&S.parentId===null&&(u.set(S.id,d),d=g)}let p=[],m=new Set,h=e.activeEntryId===null?{entries:[],complete:!0}:Ig(e.activeEntryId,s,r);for(;h.entries.length>0;){let g=h.entries[0];if(m.has(g.id)){h={entries:[],complete:!1};break}m.add(g.id);let S=h.entries.find(J=>J.type==="message")?.id,T=wI(h,n,!0,r),x=g.type==="compaction"&&g.reason!=="rewind",I=a.get(g.id)??0,v=u.get(g.id)??0,k=[];for(let J=v;x&&J<I;J+=1)J>v&&J%256===0&&r?.(),k.push(e.entries[J]);let _=new Set(k.map(J=>J.id)),H=x?T.map(J=>sU(J,_,n.lookup)):T,$={root:g,messages:H,...S!==void 0?{firstPhysicalMessageEntryId:S}:{}};if(p.push($),g.type!=="compaction"||g.reason==="rewind")break;let P=[],z=nU(k,g,$,P,n,r);if(z===void 0){let J=iU(g,$,I,s,a,l,n,r);J.length===1?[z]=J:(t.push(...P),J.length>1&&t.push({code:"compaction_predecessor_ambiguous",message:`Compaction ${g.id} provenance identifies multiple predecessor copies.`,entryIds:[g.id,...J.map(L=>L.id)]}))}if(z===void 0){if(h.complete)return{epochs:p.reverse(),truncatedAt:g.id};break}h=Ig(z.id,s,r)}return h.complete||t.push({code:"lineage_path_incomplete",message:"Conversation lineage contains a missing parent or parent cycle.",entryIds:h.entries.map(g=>g.id)}),{epochs:p.reverse()}}o(aU,"conversationEpochs");function ks(e){return JSON.stringify([e.role,e.content,e._synthetic===!0,e._source,e._taskResult,e._taskResults])}o(ks,"messageFingerprint");function SI(e,t,n){if(e.length===0||t.length===0)return[];let r=e.slice(Math.max(0,e.length-t.length)),i=[...t,void 0,...r],s=new Array(i.length).fill(0);for(let l=1;l<i.length;l+=1){l%256===0&&n?.();let u=s[l-1];for(;u>0&&i[l]!==i[u];)u=s[u-1];i[l]===i[u]&&(u+=1),s[l]=Math.min(u,t.length)}let a=[],c=s.at(-1)??0;for(;c>0;)a.push(c),c=s[c-1]??0;return a}o(SI,"prefixSuffixOverlapLengths");function Ua(e,t){return e===t||ks(e)===ks(t)}o(Ua,"messagesEqual");function kf(e){return e.logicalId??e.id}o(kf,"logicalIdentity");function YM(e,t){return Tg(e,t).groups}o(YM,"explicitPriorGroups");function Tg(e,t){let n=vg(e),r=n.filter(s=>!t.has(s)),i=[...new Set(n.flatMap(s=>{let a=t.get(s);return a===void 0?[]:[a]}))];return{keys:n,groups:i,unresolvedKeys:r}}o(Tg,"explicitPriorGroupResolution");function Rf(e,t,n){for(let r of[e.id,kf(e),e.sourceEntryId])r!==void 0&&!n.has(r)&&n.set(r,t)}o(Rf,"registerEntryIdentities");function hI(e,t){return e.sourceEntryId!==void 0&&e.sourceEntryId!==e.id&&t?.has(e.sourceEntryId)!==!0?[e.sourceEntryId,e.id]:[e.id]}o(hI,"physicalAuditEntryIds");function cU(e,t,n){let r=new Set(e.auditEntryIds),i=[];for(let s of e.auditEntryIds){let a=t.get(s);for(;a?.sourceEntryId!==void 0;){let c=t.get(a.sourceEntryId);if(!c||r.has(c.id))break;let l=n.get(c.id);if(l!==void 0&&l!==e||!Ua(a.message,c.message)||a.logicalId!==void 0&&a.logicalId!==a.id&&kf(a)!==kf(c))break;r.add(c.id),i.push(c.id),a=c}}return[...i.reverse(),...e.auditEntryIds]}o(cU,"expandPhysicalProvenance");function lU(e,t,n,r){let i=e.map(l=>cU(l,t,n)),s=new Map;for(let l of i)for(let u of l)s.set(u,(s.get(u)??0)+1);let a=new Set,c=i.map((l,u)=>{let d=new Set(e[u].auditEntryIds);return l.filter(p=>d.has(p)||s.get(p)===1?!0:(a.add(p),!1))});for(let l of a)r.push({code:"logical_identity_conflict",message:`Physical provenance ${l} is claimed by multiple conversation records.`,entryIds:[l]});return c}o(lU,"resolvePhysicalProvenance");function uU(e,t,n,r,i,s){let a=new Map,{messages:c}=t,l=e.firstKeptEntryId;if(l===void 0||n.length===0||c.length===0)return a;if(t.firstPhysicalMessageEntryId!==l)return i.push({code:"compaction_boundary_invalid",message:`Compaction ${e.id} does not identify the first retained message.`,entryIds:[e.id,l]}),a;let u=SI(n.slice(-c.length).map(v=>ks(v.source.message)),c.map(v=>ks(v.message)),s),d=!1,p=c.flatMap((v,k)=>{let _=Tg(v,r);return _.keys.length===0?[]:[{index:k,resolution:_}]}),m=p[0],h=m===void 0?u:u.filter(v=>v<=m.index),g;if(m!==void 0){let{index:v,resolution:k}=m,_=k.groups.length===1?k.groups[0].index:-1,H=n.length+v-_;g=k.unresolvedKeys.length===0&&k.groups.length===1&&_>=0&&u.includes(H)&&H>v?H:void 0,g===void 0&&u.some($=>$>v)&&(d=!0)}for(let v of p.slice(1)){if(g===void 0||g<=v.index)continue;let{resolution:k}=v,_=k.groups.length===1?k.groups[0].index:-1;(k.unresolvedKeys.length>0||k.groups.length!==1||_<0||n.length+v.index-_!==g)&&(d=!0,g=void 0)}let T=[...h,...g===void 0?[]:[g]].map(v=>n.length-v),x=YM(c[0],r);if(T.length===0&&x.length===1&&!Ua(x[0].source.message,c[0].message))return a;if(d&&i.push({code:"logical_identity_conflict",message:`Compaction ${e.id} contains provenance keys that name different history records.`,entryIds:[e.id,...c.map(v=>v.id)]}),T.length!==1)return i.push({code:"compaction_boundary_invalid",message:`Compaction ${e.id} has no unique retained suffix.`,entryIds:[e.id,...c.map(v=>v.id)]}),a;let I=T[0];for(let v=I;v<n.length;v+=1)a.set(c[v-I].id,n[v]);return a}o(uU,"provenLegacyOverlap");function dU(e,t,n,r){let[i=0]=SI(t.slice(-e.length).map(s=>ks(s.source.message)),e.map(s=>ks(s.message)),r);return e.slice(0,i).filter(s=>YM(s,n).length===0)}o(dU,"longestUnprovenOverlap");function fU(e,t,n,r,i){let s=t.get(e.id);if(s!==void 0){let d=Tg(e,r);if(d.unresolvedKeys.length>0||d.groups.length>1||d.groups.length===1&&d.groups[0]!==s){i.push({code:"logical_identity_conflict",message:`Transcript provenance for ${e.id} does not identify its topology-proven record.`,entryIds:[s.source.id,e.id]});let p={index:n.length,source:e,auditEntryIds:hI(e,r)};n.push(p),Rf(e,p,r);return}else{s.auditEntryIds.push(e.id),Rf(e,s,r);return}}let a=Tg(e,r),c=a.groups,l=a.keys.length>0&&a.unresolvedKeys.length===0&&c.length===1?c[0]:void 0;if(l!==void 0&&Ua(l.source.message,e.message)){l.auditEntryIds.push(e.id),Rf(e,l,r);return}c.length>0&&(a.unresolvedKeys.length>0||c.length!==1||l===void 0||!Ua(l.source.message,e.message))&&i.push({code:"logical_identity_conflict",message:`Transcript provenance for ${e.id} is conflicting or has a different payload.`,entryIds:[...c.map(d=>d.source.id),e.id]});let u={index:n.length,source:e,auditEntryIds:hI(e,r)};n.push(u),Rf(e,u,r)}o(fU,"appendConversationMessage");function pU(e){return e.some(t=>t.code==="legacy_overlap_ambiguous"||t.code==="compaction_boundary_invalid"||t.code==="compaction_predecessor_ambiguous"||t.code==="logical_identity_conflict")?"ambiguous":e.length>0?"partial":"resolved"}o(pU,"historyStatus");function JM(e){let t=new Map;for(let n of e){let r=t.get(n.code)??{message:n.message,occurrenceCount:0,entryCount:0,entryIds:[],evidenceBytes:0};r.occurrenceCount+=1,r.entryCount+=n.entryIds.length;for(let i of n.entryIds)r.entryIds.length<Yj&&!r.entryIds.includes(i)&&r.evidenceBytes+Buffer.byteLength(i,"utf8")<=Jj&&(r.entryIds.push(i),r.evidenceBytes+=Buffer.byteLength(i,"utf8"));t.set(n.code,r)}return[...t.entries()].map(([n,r])=>({code:n,message:r.message.length<=KM?r.message:`${r.message.slice(0,KM-1)}\u2026`,occurrenceCount:r.occurrenceCount,entryCount:r.entryCount,entryIds:r.entryIds}))}o(JM,"summarizeConversationIssues");function Ga(e,t,n){return QM(e,t,n).history}o(Ga,"buildSessionConversationHistory");function QM(e,t,n){let r=[];n?.();let i={lookup:xb(e.entries,n),restoredEntries:new Map},{epochs:s,truncatedAt:a}=aU(e,r,i,n),c=a!==void 0&&s.some(x=>x.messages.length>0),l=r.length;c&&r.push({code:"compaction_history_truncated",message:`Conversation history before compaction ${a} cannot be proven and is omitted.`,entryIds:[a]});let u=!c&&r.some(x=>x.code==="active_entry_missing"||x.code==="compaction_boundary_invalid"||x.code==="compaction_predecessor_ambiguous"||x.code==="compaction_predecessor_missing"||x.code==="lineage_path_incomplete"),d=e.entries.filter(Va),p=new Set(d.map(x=>x.id));if(u){let x=new Map;for(let I of d){let v=I.sourceEntryId;v===void 0||p.has(v)||x.set(v,(x.get(v)??0)+1)}for(let[I,v]of x)v>1&&p.add(I)}let m=u?d.map((x,I)=>({index:I,source:x,auditEntryIds:hI(x,p)})):[],h=new Map;if(u)for(let x of m)Rf(x.source,x,h);for(let x of s){if(u)break;let I=x.root,v=I.type==="compaction"&&I.reason!=="rewind"?uU(I,x,m,h,r,n):new Map;if(I.type==="compaction"&&I.firstKeptEntryId===void 0){let k=dU(x.messages,m,h,n);k.length>0&&r.push({code:"legacy_overlap_ambiguous",message:`Legacy compaction ${I.id} overlaps earlier history without durable provenance.`,entryIds:k.map(_=>_.id)})}for(let k=0;k<x.messages.length;k+=1){k%256===0&&n?.();let _=x.messages[k];fU(_,v,m,h,r)}}let g=new Map(d.map(x=>[x.id,x])),S=u?m.map(x=>x.auditEntryIds):lU(m,g,h,r),T=m.map((x,I)=>({boundaryId:x.source.id,auditEntryIds:S[I],message:x.source.message}));return{history:{sourceRevision:t,status:pU(c?r.slice(l):r),entries:T,issues:JM(r)},restoredEntries:i.restoredEntries}}o(QM,"buildConversationHistoryWithRestorations");function ZM(e,t,n,r){r?.();let i={...e,activeEntryId:t},s=Dc(i,t,r);if(s.at(-1)?.id!==t)return null;let a=yo(i,t,r);if(a===null)return null;let c=Dc(a,a.activeEntryId,r);if(c.length!==s.length)return null;let l=new Map(s.map((P,z)=>(z>0&&z%256===0&&r?.(),[P.id,c[z].id]))),u={...a,entries:a.entries.map((P,z)=>{z>0&&z%256===0&&r?.();let J=s[z];return P.type==="compaction"&&J?.type==="compaction"&&J.firstKeptEntryId!==void 0?{...P,firstKeptEntryId:l.get(J.firstKeptEntryId)}:P})},d=s[0];if(d?.type!=="compaction"||d.reason==="rewind")return u;let{history:p,restoredEntries:m}=QM(i,n,r);if(p.status!=="resolved"||d.firstKeptEntryId===void 0)return null;let h=[],g=new Set,S=-1,T=!1;for(let P=0;P<s.length;P+=1){P>0&&P%256===0&&r?.();let z=s[P];z.id===d.firstKeptEntryId&&(T=!0),Va(z)&&(T&&S<0&&(S=h.length),h.push(z),g.add(z.id))}if(S<0)return null;let x=new Map;for(let P=0;P<p.entries.length;P+=1){P>0&&P%256===0&&r?.();let z=p.entries[P].auditEntryIds;for(let J=0;J<z.length;J+=1){J>0&&J%256===0&&r?.();let L=z[J];x.set(L,P)}}let I=-1;for(let P=S;P<h.length;P+=1){P>S&&P%256===0&&r?.();let z=h[P],J=x.get(z.id);if(J===void 0)return null;let L=!1,W=p.entries[J].auditEntryIds;for(let N=0;N<W.length;N+=1)if(N>0&&N%256===0&&r?.(),!g.has(W[N])){L=!0;break}if(!L)break;if(I>=0&&J!==I+1)return null;I=J}if(I<0)return null;let v=new Map;for(let P=0;P<e.entries.length;P+=1){P>0&&P%256===0&&r?.();let z=e.entries[P];v.set(z.id,z)}let k=null,_=[];for(let P=0;P<=I;P+=1){P>0&&P%256===0&&r?.();let z=p.entries[P],J;for(let q=0;q<z.auditEntryIds.length;q+=1){q>0&&q%256===0&&r?.();let B=z.auditEntryIds[q];if(g.has(B)){J=B;break}}let L=J??z.boundaryId,W=L===void 0?void 0:m.get(L)??v.get(L);if(W?.type!=="message")return null;let N={...W,parentId:k};_.push(N),k=N.id}let H=_.at(-1);if(H===void 0)return null;let $=yo({version:2,activeEntryId:H.id,entries:_},void 0,r);return $===null?null:{version:2,activeEntryId:u.activeEntryId,entries:[...$.entries,...u.entries]}}o(ZM,"forkSessionConversationLineage");function eA(e,t,n){if(n?.(),e.length===0)return{sourceRevision:t,status:"resolved",entries:[],issues:[]};let r={code:"lineage_unavailable",message:"This legacy Session has messages but no lineage identity metadata.",entryIds:[]},i=[];for(let s=0;s<e.length;s+=1){s>0&&s%256===0&&n?.();let a=e[s];Mf(a)||i.push({auditEntryIds:[],message:a})}return{sourceRevision:t,status:"partial",entries:i,issues:JM([r])}}o(eA,"buildLineageUnavailableConversationHistory");import{createHash as TI,randomUUID as fA}from"node:crypto";import Ur from"node:fs/promises";import Sn from"node:path";import{createHash as II}from"node:crypto";var tA={main:0,islands:1,legacy_archive:2},jl=64*1024;function xI(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(xI,"isRecord");function nA(e){let t=e.replace(/\\/g,"/");if(t.length===0||t.startsWith("/")||t.split("/").some(n=>n===".."))throw new Error(`Invalid Session source-relative path: ${e}`);return t}o(nA,"normalizeRelativePath");function mU(e,t){return II("sha256").update("kodax-session-source-file-v1\0").update(`${e}:${Buffer.byteLength(t,"utf8")}:${t}`).digest("hex")}o(mU,"initialFileChain");function hU(e,t){return II("sha256").update("kodax-session-source-chunk-v1\0").update(e,"hex").update(t).digest("hex")}o(hU,"extendChunkChain");function rA(e,t){let n=e,r=0,i=0;for(;t.length-i>=jl;)n=hU(n,t.subarray(i,i+jl)),r+=1,i+=jl;return{chain:n,count:r,tail:t.subarray(i)}}o(rA,"consumeCompleteChunks");function iA(e,t){return tA[e.kind]-tA[t.kind]||e.relativePath.localeCompare(t.relativePath)}o(iA,"compareFileStates");function oA(e){let t=e.map(n=>{let r=nA(n.relativePath),i=rA(mU(n.kind,r),n.bytes);return{kind:n.kind,relativePath:r,byteLength:n.bytes.length,chunkCount:i.count,chain:i.chain,tail:i.tail.toString("base64")}}).sort(iA);if(new Set(t.map(n=>n.kind)).size!==t.length)throw new Error("Duplicate Session source file kind");return{version:1,files:t}}o(oA,"createSessionSourceRevisionState");function Es(e){let t=II("sha256");t.update("kodax-session-source-bundle-v2\0");for(let n of e.files)t.update(`${n.kind}:${Buffer.byteLength(n.relativePath,"utf8")}:${n.relativePath}:${n.byteLength}:${n.chunkCount}:${n.chain}:`),t.update(Buffer.from(n.tail,"base64"));return`sha256:${t.digest("hex")}`}o(Es,"createSessionSourceRevision");function sA(e,t,n){if(n.length===0)return e;if(n[0]!==10)return;let r=nA(t),i=e.files.findIndex(l=>l.kind==="main"&&l.relativePath===r);if(i<0)return;let s=e.files[i],a=rA(s.chain,Buffer.concat([Buffer.from(s.tail,"base64"),n])),c=[...e.files];return c[i]={...s,byteLength:s.byteLength+n.length,chunkCount:s.chunkCount+a.count,chain:a.chain,tail:a.tail.toString("base64")},{version:1,files:c}}o(sA,"extendSessionMainSourceRevisionState");function aA(e){if(!xI(e)||e.version!==1||!Array.isArray(e.files)||!e.files.some(r=>xI(r)&&r.kind==="main"))return!1;let t,n=new Set;for(let r of e.files){if(!xI(r))return!1;let i=r.kind;if(i!=="main"&&i!=="islands"&&i!=="legacy_archive"||typeof r.relativePath!="string"||r.relativePath.length===0||r.relativePath.includes("\\")||r.relativePath.startsWith("/")||r.relativePath.split("/").some(c=>c==="..")||!Number.isSafeInteger(r.byteLength)||Number(r.byteLength)<0||!Number.isSafeInteger(r.chunkCount)||Number(r.chunkCount)<0||typeof r.chain!="string"||!/^[0-9a-f]{64}$/.test(r.chain)||typeof r.tail!="string"||n.has(i))return!1;let s=Buffer.from(r.tail,"base64");if(s.length>=jl||s.toString("base64")!==r.tail||Number(r.chunkCount)!==Math.floor(Number(r.byteLength)/jl)||s.length!==Number(r.byteLength)%jl)return!1;let a=r;if(t!==void 0&&iA(t,a)>=0)return!1;n.add(i),t=a}return!0}o(aA,"isSessionSourceRevisionState");import bg from"node:fs/promises";import Af from"node:path";var Po=".conversation-cache.",cA=`${Po}json`,Ms=class extends Error{static{o(this,"ConversationPageCacheCleanupError")}directory;cleanupCause;constructor(t,n){super(`Unable to remove recoverable Conversation page caches from ${t}`),this.directory=t,this.cleanupCause=n,this.name="ConversationPageCacheCleanupError"}};function Rg(e){let t=e.lastIndexOf(Po);if(t<=0)return;let n=e.slice(t+Po.length);if(!(n!=="json"&&!(n.startsWith("json.")&&n.endsWith(".tmp"))&&!n.endsWith(".data")&&!n.endsWith(".index")))return e.slice(0,t)}o(Rg,"cacheArtifactSessionId");async function Tr(e){let t=Af.dirname(e),n=Af.basename(e,Af.extname(e)),r;try{r=await bg.readdir(t)}catch(i){if(i.code==="ENOENT")return;throw i}await Promise.all(r.filter(i=>Rg(i)===n).map(i=>bg.rm(Af.join(t,i),{force:!0})))}o(Tr,"removeConversationPageCache");async function kg(e){let t;try{t=await bg.readdir(e,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;throw new Ms(e,n)}try{await Promise.all(t.filter(n=>!n.isDirectory()&&Rg(n.name)!==void 0).map(n=>bg.rm(Af.join(e,n.name),{force:!0})))}catch(n){throw new Ms(e,n)}}o(kg,"removeConversationPageCachesInDirectory");var pA=10,Vr=24,gU=1024*1024,yU=1024*1024,wU=1024*1024,SU=4*1024*1024,vI=128*1024,xU=7,Bt=class extends Error{static{o(this,"ConversationPageCacheStaleError")}constructor(t){super(t),this.name="ConversationPageCacheStaleError"}},Lo=class extends Error{static{o(this,"ConversationPageCacheCapacityError")}constructor(){super("Conversation page capacity exceeded"),this.name="ConversationPageCacheCapacityError"}};function _f(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(_f,"isRecord");function Eg(e){if(e?.aborted)throw new Bt("Conversation page read cancelled")}o(Eg,"throwIfAborted");function bI(e){return e.slice(0,-Sn.extname(e).length)+cA}o(bI,"cacheManifestPath");function lA(e,t,n){return`${e.slice(0,-Sn.extname(e).length)}${Po}${t}.${n}`}o(lA,"cacheGenerationPath");function uA(e,t,n){let r=Sn.basename(e,Sn.extname(e));return Sn.basename(t)===t&&t.startsWith(`${r}${Po}`)&&t.endsWith(`.${n}`)}o(uA,"isSafeCacheFileName");function IU(e){if(!_f(e))return!1;let t=new Set(["active_entry_missing","compaction_boundary_invalid","compaction_history_truncated","compaction_predecessor_ambiguous","compaction_predecessor_missing","legacy_overlap_ambiguous","lineage_path_incomplete","lineage_unavailable","logical_identity_conflict"]);return typeof e.code=="string"&&t.has(e.code)&&typeof e.message=="string"&&Number.isSafeInteger(e.occurrenceCount)&&Number(e.occurrenceCount)>=0&&Number.isSafeInteger(e.entryCount)&&Number(e.entryCount)>=0&&Array.isArray(e.entryIds)&&e.entryIds.every(n=>typeof n=="string")}o(IU,"isConversationIssue");function CU(e){return _f(e)&&(e.surface===void 0||typeof e.surface=="string")&&(e.profileId===void 0||typeof e.profileId=="string")}o(CU,"isConversationPageCacheAdmission");function mA(e){let t=TI("sha256").update("kodax-conversation-identity-filter-v1\0").update(e,"utf8").digest();return Array.from({length:xU},(n,r)=>t.readUInt32LE(r*4)%(vI*8))}o(mA,"identityPositions");function hA(e,t){return mA(t).every(n=>(e[n>>>3]&1<<(n&7))!==0)}o(hA,"identityFilterContains");function gA(e,t){for(let n of mA(t))e[n>>>3]=e[n>>>3]|1<<(n&7)}o(gA,"addIdentityToFilter");function yA(e){return[e.id,e.logicalId,e.sourceEntryId].filter(t=>t!==void 0)}o(yA,"lineageEntryIdentities");function Mg(e){let t=Buffer.alloc(vI);for(let n of e.entries)for(let r of yA(n))gA(t,r);return t.toString("base64")}o(Mg,"createConversationPageIdentityFilter");function RI(e,t){let n=Buffer.from(e,"base64");for(let r of t)for(let i of yA(r))gA(n,i);return n.toString("base64")}o(RI,"extendConversationPageIdentityFilter");function wA(e){if(typeof e!="string")return!1;let t=Buffer.from(e,"base64");return t.length===vI&&t.toString("base64")===e}o(wA,"isIdentityFilter");function SA(e,t){return wA(e)?hA(Buffer.from(e,"base64"),t):!0}o(SA,"conversationPageIdentityFilterContains");function TU(e,t){if(!(!_f(e)||e.version!==pA)&&!(typeof e.sessionId!="string"||typeof e.generation!="string"||typeof e.sourceRevision!="string"||!aA(e.sourceRevisionState)||Es(e.sourceRevisionState)!==e.sourceRevision||!wA(e.identityFilter)||typeof e.boundaryRevision!="string"||typeof e.revision!="string"||typeof e.entryChain!="string"||e.status!=="resolved"&&e.status!=="partial"&&e.status!=="ambiguous"||!Array.isArray(e.issues)||!e.issues.every(IU)||!Number.isSafeInteger(e.entryCount)||Number(e.entryCount)<0||!Number.isSafeInteger(e.lineageEntryCount)||Number(e.lineageEntryCount)<0||e.activeEntryId!==null&&typeof e.activeEntryId!="string"||!CU(e.admission)||!Number.isSafeInteger(e.chunkBytes)||Number(e.chunkBytes)<=0||Number(e.chunkBytes)>SU||typeof e.dataFile!="string"||!Number.isSafeInteger(e.dataBytes)||Number(e.dataBytes)<0||typeof e.indexFile!="string"||!Number.isSafeInteger(e.indexBytes)||Number(e.indexBytes)<0||!uA(t,e.dataFile,"data")||!uA(t,e.indexFile,"index")||e.dataFile!==`${e.sessionId}${Po}${e.generation}.data`||e.indexFile!==`${e.sessionId}${Po}${e.generation}.index`||e.sessionId!==Sn.basename(t,Sn.extname(t))||Number(e.indexBytes)!==Number(e.entryCount)*Vr))return e}o(TU,"parseManifest");function xA(e){return{...e?.surface!==void 0?{surface:e.surface}:{},...e?.profileId!==void 0?{profileId:e.profileId}:{}}}o(xA,"cacheAdmission");async function Ul(e){let t;try{t=await Ur.open(bI(e),"r");let n=(await t.stat()).size;if(n>yU)return;let r=JSON.parse((await Ka(t,0,n)).toString("utf8"));return TU(r,e)}catch(n){if(n.code==="ENOENT"||n instanceof SyntaxError)return;throw n}finally{await t?.close()}}o(Ul,"readConversationPageCacheManifest");function Ag(e,t){let n=Sn.dirname(e);return{dataPath:Sn.join(n,t.dataFile),indexPath:Sn.join(n,t.indexFile)}}o(Ag,"cachePaths");async function As(e,t){let n=Ag(e,t),[r,i]=await Promise.all([Ur.stat(n.dataPath),Ur.stat(n.indexPath)]);if(r.size!==t.dataBytes||i.size!==t.indexBytes)throw new Bt("Conversation page cache changed")}o(As,"assertCacheFilesStable");async function Ka(e,t,n){let r=Buffer.allocUnsafe(n),i=0;for(;i<n;){let s=await e.read(r,i,n-i,t+i);if(s.bytesRead===0)throw new Bt("Conversation page cache ended unexpectedly");i+=s.bytesRead}return r}o(Ka,"readFully");function kI(e,t){let n=e.readBigUInt64LE(t),r=e.readBigUInt64LE(t+12);if(n>BigInt(Number.MAX_SAFE_INTEGER)||r>BigInt(Number.MAX_SAFE_INTEGER))throw new Bt("Conversation page index offset is invalid");return{entryOffset:Number(n),entryLength:e.readUInt32LE(t+8),descriptorOffset:Number(r),descriptorLength:e.readUInt32LE(t+20)}}o(kI,"decodeIndexRecord");function EI(e,t,n){let r=e.entryOffset+e.entryLength,i=e.descriptorOffset+e.descriptorLength,s=Math.ceil(e.entryLength/n),a=Math.min(wU,e.entryLength+s*70+256);if(!Number.isSafeInteger(r)||!Number.isSafeInteger(i)||r>t||i>t||e.descriptorOffset<r||e.descriptorLength>a)throw new Bt("Conversation page index is out of bounds")}o(EI,"assertIndexRecordBounds");function IA(e){let t=Buffer.allocUnsafe(Vr);return t.writeBigUInt64LE(BigInt(e.entryOffset),0),t.writeUInt32LE(e.entryLength,8),t.writeBigUInt64LE(BigInt(e.descriptorOffset),12),t.writeUInt32LE(e.descriptorLength,20),t}o(IA,"encodeIndexRecord");function vU(e){if(!_f(e)||!Array.isArray(e.chunkDigests)||!e.chunkDigests.every(t=>typeof t=="string"&&/^[0-9a-f]{64}$/.test(t))||e.boundaryId!==void 0&&typeof e.boundaryId!="string"||!Array.isArray(e.sourceKeys)||!e.sourceKeys.every(t=>typeof t=="string"))throw new Bt("Conversation page descriptor is invalid");return{chunkDigests:e.chunkDigests,sourceKeys:e.sourceKeys,...typeof e.boundaryId=="string"?{boundaryId:e.boundaryId}:{}}}o(vU,"parseDescriptor");async function MI(e,t){let n=await Ka(e,t.descriptorOffset,t.descriptorLength);try{return vU(JSON.parse(n.toString("utf8")))}catch(r){throw r instanceof Bt?r:new Bt("Conversation page descriptor is corrupt")}}o(MI,"readDescriptor");function CA(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(TI("sha256").update(e.subarray(r,Math.min(e.length,r+t))).digest("hex"));return n}o(CA,"entryChunkDigests");function bU(e,t,n){let r=CA(e,n);if(r.length!==t.chunkDigests.length||r.some((i,s)=>i!==t.chunkDigests[s]))throw new Bt("Conversation page cache entry is corrupt")}o(bU,"assertEntryIntegrity");function TA(e){if(e instanceof Bt||e instanceof Lo)return e;let t=new Set(["EACCES","EBADF","EBUSY","EIO","EISDIR","EMFILE","ENFILE","ENOENT","ENOTDIR","EPERM","ESTALE"]);return e instanceof SyntaxError||_f(e)&&typeof e.code=="string"&&t.has(e.code)?new Bt("Conversation page cache changed or is unavailable"):e instanceof Error?e:new Error(String(e))}o(TA,"normalizeConversationPageCacheReadError");async function AI(e,t,n){let r=await Ur.open(e,n);try{let i=await Ur.open(t,n);return{data:r,index:i}}catch(i){throw await r.close(),i}}o(AI,"openCachePair");async function vA(e,t,n){try{return await RU(e,t,n)}catch(r){throw TA(r)}}o(vA,"readConversationPageCache");async function RU(e,t,n){Eg(n.signal);let r=await Ul(e);if(r===void 0||r.boundaryRevision!==t)return null;if(await n.authorize?.(r.admission),n.expectedRevision!==void 0&&n.expectedRevision!==r.revision)throw new Bt("Conversation history changed; request a fresh page");await As(e,r);let i=Math.min(n.end??r.entryCount,r.entryCount),s=Math.max(0,i-n.limit),a=Ag(e,r),{data:c,index:l}=await AI(a.dataPath,a.indexPath,"r");try{if(n.sourceKeys){let h=await kU(c,l,r,n);return await As(e,r),{revision:r.revision,sourceRevision:r.sourceRevision,status:r.status,issues:structuredClone(r.issues),entries:h,hasMore:!1}}let u=await Ka(l,s*Vr,(i-s)*Vr),d=[],p=n.reservedBytes+Buffer.byteLength(JSON.stringify({revision:r.revision,sourceRevision:r.sourceRevision,status:r.status,issues:r.issues}),"utf8");if(p>n.maxPageBytes)throw new Lo;for(let h=i-s-1;h>=0;h-=1){Eg(n.signal);let g=s+h,S=kI(u,h*Vr);EI(S,r.dataBytes,r.chunkBytes);let T=await MI(c,S),x=S.entryLength<=n.maxInlineEntryBytes?await Ka(c,S.entryOffset,S.entryLength):void 0;x!==void 0&&bU(x,T,r.chunkBytes);let I={index:g,...T.boundaryId!==void 0?{boundaryId:T.boundaryId}:{},byteLength:S.entryLength,oversized:S.entryLength>n.maxInlineEntryBytes,...x!==void 0?{entry:JSON.parse(x.toString("utf8"))}:{}},v=Buffer.byteLength(JSON.stringify(I),"utf8");if(p+v>n.maxPageBytes){if(d.length===0)throw new Lo;break}d.unshift(I),p+=v}let m=d[0]?.index??i;return await As(e,r),{revision:r.revision,sourceRevision:r.sourceRevision,status:r.status,issues:structuredClone(r.issues),entries:d,hasMore:m>0,...m>0?{nextEnd:m}:{}}}finally{await Promise.all([c.close(),l.close()])}}o(RU,"readConversationPageCacheInternal");async function kU(e,t,n,r){let i=new Set(r.sourceKeys),s=[],a=r.reservedBytes;for(let c=n.entryCount;c>0&&i.size>0;){let l=Math.max(0,c-256),u=await Ka(t,l*Vr,(c-l)*Vr);for(let d=c-1;d>=l&&i.size>0;d-=1){Eg(r.signal);let p=kI(u,(d-l)*Vr);EI(p,n.dataBytes,n.chunkBytes);let m=await MI(e,p);if(!m.sourceKeys.some(g=>i.has(g)))continue;for(let g of m.sourceKeys)i.delete(g);let h={index:d,boundaryId:m.boundaryId,byteLength:p.entryLength,oversized:!0};if(a+=Buffer.byteLength(JSON.stringify(h),"utf8"),a>r.maxPageBytes)throw new Lo;s.push(h)}c=l}return s.reverse()}o(kU,"findConversationSourceEntries");async function bA(e,t,n){try{return await EU(e,t,n)}catch(r){throw TA(r)}}o(bA,"readConversationPageCacheChunk");async function EU(e,t,n){Eg(n.signal);let r=await Ul(e);if(r===void 0||r.boundaryRevision!==t)return null;if(await n.authorize?.(r.admission),r.revision!==n.revision)throw new Bt("Conversation history changed; request a fresh page");if(await As(e,r),n.entryIndex>=r.entryCount)return;if(n.offset<0||n.offset%r.chunkBytes!==0)throw new Bt("Conversation entry cursor is invalid");let i=Ag(e,r),{data:s,index:a}=await AI(i.dataPath,i.indexPath,"r");try{let c=await Ka(a,n.entryIndex*Vr,Vr),l=kI(c,0);EI(l,r.dataBytes,r.chunkBytes);let u=await MI(s,l);if(n.offset>l.entryLength)throw new Bt("Conversation entry cursor is invalid");let d=Math.min(l.entryLength,n.offset+r.chunkBytes),p=await Ka(s,l.entryOffset+n.offset,d-n.offset);if(TI("sha256").update(p).digest("hex")!==u.chunkDigests[n.offset/r.chunkBytes])throw new Bt("Conversation page cache entry is corrupt");return await As(e,r),{revision:r.revision,entryIndex:n.entryIndex,...u.boundaryId!==void 0?{boundaryId:u.boundaryId}:{},data:p,...d<l.entryLength?{nextOffset:d}:{}}}finally{await Promise.all([s.close(),a.close()])}}o(EU,"readConversationPageCacheChunkInternal");async function CI(e,t){let n=0;for(;n<t.length;){let r=await e.write(t,n,t.length-n);if(r.bytesWritten===0)throw new Error("Conversation page cache write made no progress");n+=r.bytesWritten}}o(CI,"writeFully");function RA(e,t,n){return Buffer.from(JSON.stringify({...e.boundaryId!==void 0?{boundaryId:e.boundaryId}:{},sourceKeys:[...e.message.outputId?[`output:${e.message.outputId}`]:[],...[e.message.inputId,...e.message.inputIds??[]].flatMap(r=>r?[`input:${r}`]:[]),...typeof e.message.content=="string"?[]:e.message.content.flatMap(r=>r.type==="tool_use"?[`tool-use:${r.id}`]:r.type==="tool_result"?[`tool-result:${r.tool_use_id}`]:[])],chunkDigests:CA(t,n)}),"utf8")}o(RA,"createDescriptor");async function MU(e,t,n,r){let{data:i,index:s}=await AI(e,t,"wx"),a=0,c=0,l=[],u=[],d=0,p=o(async()=>{d!==0&&(await Promise.all([CI(i,Buffer.concat(l)),CI(s,Buffer.concat(u))]),l=[],u=[],d=0)},"flush");try{for(let m of n){let h=Buffer.from(JSON.stringify(m),"utf8"),g=RA(m,h,r);l.push(h,g),u.push(IA({entryOffset:a,entryLength:h.length,descriptorOffset:a+h.length,descriptorLength:g.length})),a+=h.length+g.length,c+=Vr,d+=h.length+g.length+Vr,d>=gU&&await p()}return await p(),await Promise.all([i.sync(),s.sync()]),{dataBytes:a,indexBytes:c}}finally{await Promise.all([i.close(),s.close()])}}o(MU,"writeCacheEntries");async function _I(e,t){let n=bI(e),r=`${n}.${process.pid}.${fA()}.tmp`;await Ur.writeFile(r,JSON.stringify(t),{encoding:"utf8",flag:"wx"});try{await Ur.rename(r,n)}finally{await Ur.rm(r,{force:!0})}}o(_I,"replaceManifest");async function AU(e,t){let n=Sn.dirname(e),r=Sn.basename(e,Sn.extname(e)),s=`${`${r}${Po}`}${t}.`,a=await Ur.readdir(n);await Promise.all(a.filter(c=>Rg(c)===r&&!c.startsWith(s)&&c!==Sn.basename(bI(e))).map(c=>Ur.rm(Sn.join(n,c),{force:!0})))}o(AU,"removeGenerationFiles");async function PI(e,t,n,r,i,s,a){if(Es(n)!==r.sourceRevision)throw new Bt("Conversation source revision state is inconsistent");let c=fA(),l=lA(e,c,"data"),u=lA(e,c,"index");try{let d=await MU(l,u,r.entries,a),p=Fl(r.entries);await _I(e,{version:pA,sessionId:Sn.basename(e,Sn.extname(e)),generation:c,sourceRevision:r.sourceRevision,sourceRevisionState:n,identityFilter:Mg(i),boundaryRevision:t,revision:Wl(r,p),entryChain:p,status:r.status,issues:r.issues,entryCount:r.entries.length,lineageEntryCount:i.entries.length,activeEntryId:i.activeEntryId,admission:xA(s),chunkBytes:a,dataFile:Sn.basename(l),dataBytes:d.dataBytes,indexFile:Sn.basename(u),indexBytes:d.indexBytes})}catch(d){throw await Promise.all([Ur.rm(l,{force:!0}),Ur.rm(u,{force:!0})]),d}try{await AU(e,c)}catch(d){process.emitWarning(`Unable to remove an old Conversation page cache generation: ${String(d)}`,{code:"KODAX_CONVERSATION_PAGE_CACHE_GC_FAILED"})}}o(PI,"writeConversationPageCache");async function kA(e,t,n,r,i,s){if(Es(n)!==r.sourceRevision)return!1;let a=await Ul(e);if(a===void 0||a.entryCount!==r.entries.length)return!1;await As(e,a);let c=Fl(r.entries);if(c!==a.entryChain||r.status!==a.status||JSON.stringify(r.issues)!==JSON.stringify(a.issues))return!1;let l=Wl(r,c);return await _I(e,{...a,sourceRevision:r.sourceRevision,sourceRevisionState:n,identityFilter:Mg(i),boundaryRevision:t,revision:l,entryChain:c,status:r.status,issues:r.issues,lineageEntryCount:i.entries.length,activeEntryId:i.activeEntryId,admission:xA(s)}),await As(e,a),!0}o(kA,"refreshConversationPageCache");async function dA(e,t){if(t.length===0)return;let n=await Ur.open(e,"a");try{await CI(n,Buffer.concat(t)),await n.sync()}finally{await n.close()}}o(dA,"appendBuffers");async function EA(e,t,n,r,i,s,a){let c=Es(r),l=Ag(e,t);await As(e,t);let u=[],d=[],p=t.dataBytes;for(let g of i){let S=Buffer.from(JSON.stringify(g),"utf8"),T=RA(g,S,t.chunkBytes);u.push(S,T),d.push(IA({entryOffset:p,entryLength:S.length,descriptorOffset:p+S.length,descriptorLength:T.length})),p+=S.length+T.length}await dA(l.dataPath,u),await dA(l.indexPath,d);let m=Ef(t.entryChain,i),h={sourceRevision:c,status:t.status,issues:t.issues,entries:[]};await _I(e,{...t,sourceRevision:c,sourceRevisionState:r,identityFilter:RI(t.identityFilter,s),boundaryRevision:n,revision:Wl(h,m),entryChain:m,entryCount:t.entryCount+i.length,lineageEntryCount:t.lineageEntryCount+s.length,activeEntryId:a,dataBytes:p,indexBytes:t.indexBytes+i.length*Vr})}o(EA,"appendConversationPageCache");function MA(e,t,n,r){if(e.status!=="resolved"||e.issues.length>0||e.activeEntryId!==t)return;if(n.length===0)return r===t?[]:void 0;let i=Buffer.from(e.identityFilter,"base64"),s=new Set,a=t,c=[];for(let l of n){if(l.type==="message"&&Mf(l.message)){if(l.parentId!==a)return;a=l.id;continue}if(!Va(l)||l.parentId!==a||l.logicalId!==void 0&&l.logicalId!==l.id||l.sourceEntryId!==void 0||hA(i,l.id)||s.has(l.id))return;c.push({boundaryId:l.id,auditEntryIds:[l.id],message:l.message}),s.add(l.id),a=l.id}return r===a?c:void 0}o(MA,"canAppendConversationPageCache");import Oe from"fs/promises";import St from"fs";import V from"path";import{createHash as Wo,randomUUID as Ql}from"node:crypto";import{performance as vi}from"node:perf_hooks";import{isDeepStrictEqual as k2}from"node:util";import l_ from"chalk";function rn(e){return typeof e=="string"&&Number.isFinite(Date.parse(e))?e:void 0}o(rn,"validSessionTimestamp");function Vl(e,t,n=e){let r=rn(t),i=new Map,s=o(a=>{if(!(a.type!=="message"||a.message._synthetic||a.message.role!=="user"&&a.message.role!=="assistant"))return rn(a.message.timestamp)??(a.sourceEntryId!==void 0&&i.has(a.sourceEntryId)?i.get(a.sourceEntryId):a.sourceEntryId!==void 0?void 0:rn(a.timestamp))},"messageTime");for(let a of n)i.set(a.id,s(a));for(let a of e){let c=i.get(a.id)??s(a);c!==void 0&&(r===void 0||Date.parse(c)>Date.parse(r))&&(r=c)}return r}o(Vl,"latestSessionMessageAt");function za(e,t){for(let n of["lastMessageAt","createdAt"]){let r=n==="lastMessageAt"?rn(e.lastMessageAt)??e.createdAt:e.createdAt,i=n==="lastMessageAt"?rn(t.lastMessageAt)??t.createdAt:t.createdAt,s=r===void 0?NaN:Date.parse(r),a=i===void 0?NaN:Date.parse(i);if(Number.isFinite(s)&&Number.isFinite(a)&&s!==a)return a-s;if(Number.isFinite(s)!==Number.isFinite(a))return Number.isFinite(s)?-1:1}return t.id.localeCompare(e.id)}o(za,"compareSessionRecency");import{randomUUID as _U}from"node:crypto";import Pf from"node:fs/promises";import _g from"node:path";function AA(e){let t=_g.resolve(e).replace(/\\/g,"/");return process.platform==="win32"||process.platform==="darwin"?t.toLowerCase():t}o(AA,"comparableRoot");async function LI(e){let t;try{t=await Pf.readFile(e,"utf8")}catch(r){if(r.code==="ENOENT")return;throw r}let n=JSON.parse(t);if(n===null||typeof n!="object"||typeof n.canonicalRoot!="string")throw new Error(`Invalid project identity manifest at ${e}`);return AA(n.canonicalRoot)}o(LI,"existingCanonicalRoot");async function Pg(e){return await LI(_g.join(e,"project.json"))!==void 0}o(Pg,"projectManifestExists");async function Gl(e,t){if(t.canonicalRoot===null)return;await Pf.mkdir(e,{recursive:!0});let n=_g.join(e,"project.json"),r=AA(t.canonicalRoot),i=await LI(n);if(i!==void 0){if(i!==r)throw new Error(`Conflicting project identity at ${n}`);return}let s=_g.join(e,`.project.${process.pid}.${_U()}.tmp`),a=await Pf.open(s,"wx");try{await a.writeFile(JSON.stringify({canonicalRoot:t.canonicalRoot,displayName:t.displayName,lastUsed:new Date().toISOString()})+`
|
|
85
|
-
`,"utf8"),await a.sync()}finally{await a.close()}try{await
|
|
86
|
-
`))if(r.trim())try{let i=JSON.parse(r);i.done&&typeof i.from=="string"&&t.add(i.from)}catch{}}catch{}return t}o(UU,"readJournalDone");async function VU(e,t){if(
|
|
87
|
-
`,"utf8"),await Jt.rename(t
|
|
88
|
-
`),c&&(s+=1)}}finally{await i.close()}return await qU(e),await _A(e),await KU(e,n),await zU(e),await Lg(Of(e)),{moved:s,planned:n.length}}finally{await NI(e,t)}}o(XU,"runMigration");async function qa(e){try{if(await FU(e)){if(Lf.existsSync(Of(e))||Lf.existsSync(_s(e))){let t=await $A(e);if(t)try{await Lg(Of(e))}finally{await NI(e,t)}}return}await XU(e)}catch(t){if(t instanceof Ms||t instanceof Oo)throw t}}o(qa,"ensureLayoutMigrated");import{createHash as YU}from"node:crypto";var DA="@kodax/sdk",HI="session.identity-repair.confirmed.v1",BA="identity-repair:";function Ps(e){return Object.assign(new Error(e),{code:"conflict"})}o(Ps,"repairConflict");function Gr(e){if(Array.isArray(e))return`[${e.map(Gr).join(",")}]`;if(e!==null&&typeof e=="object"){let t=e;return`{${Object.keys(t).sort().filter(n=>t[n]!==void 0).map(n=>`${JSON.stringify(n)}:${Gr(t[n])}`).join(",")}}`}return JSON.stringify(e)??"null"}o(Gr,"stableJson");function $f(e){return`sha256:${YU("sha256").update(Gr(e)).digest("hex")}`}o($f,"digest");function BI(e,t){return`${BA}${$f([e,t]).slice(7)}`}o(BI,"recordId");function $o(e,t=256){return typeof e=="string"&&e.trim().length>0&&e.length<=t}o($o,"nonempty");function DI(e){return typeof e=="string"&&/^sha256:[a-f0-9]{64}$/.test(e)}o(DI,"hash");function NA(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(NA,"object");function Xa(e){return e.type===HI||typeof e.id=="string"&&e.id.startsWith(BA)}o(Xa,"isConfirmedIdentityRepairRecord");function Nf(e){let t=e.data;if(e.extensionId!==DA||e.type!==HI||!Number.isFinite(e.ts)||e.ts<0||!NA(t)||t.schemaVersion!==1||!$o(t.sessionId)||!$o(t.sourceEntryId)||!$o(t.targetEntryId)||t.sourceEntryId===t.targetEntryId||!$o(t.expectedSourceRevision,1024)||!$o(t.confirmationReference,1024)||!DI(t.sourceDigest)||!DI(t.targetDigest)||e.id!==BI(t.sessionId,t.sourceEntryId)||e.dedupeKey!==void 0&&e.dedupeKey!==e.id)return;let n=t.deliveryWitness;if(!(n!==void 0&&(!NA(n)||!$o(n.runId)||!$o(n.inputId)||!$o(n.eventId)||!DI(n.receiptDigest))))return t}o(Nf,"parseConfirmedIdentityRepairRecord");function Ng(e,t){let n=e.entries.filter(i=>i.id===t),r=n[0];if(n.length!==1||r?.type!=="message"||r.message.role!=="user"||r.message._synthetic===!0||r.message._source!==void 0||Array.isArray(r.message.content)&&r.message.content.some(i=>i.type!=="text"&&i.type!=="image"))throw Ps("Identity repair requires one ordinary physical user query per endpoint.");return r}o(Ng,"queryEntry");function HA(e,t,n){let r=o((s,a)=>s.boundaryId===a||s.auditEntryIds.includes(a),"owns"),i=e.entries.flatMap((s,a)=>r(s,n)?[a]:[]);if(i.length!==1||e.entries.some((s,a)=>a!==i[0]&&r(s,t)))throw Ps("Identity repair target is not unique or source belongs to another visible query.");return i[0]}o(HA,"targetGroup");function FA(e,t,n,r){let i=r.filter(d=>d.id===BI(e,t.sourceEntryId)),s=i[0];if(s!==void 0){let d=Nf(s);if(!d||d.sessionId!==e||d.targetEntryId!==t.targetEntryId||d.confirmationReference!==t.confirmationReference||Gr(d.deliveryWitness)!==Gr(t.deliveryWitness)||i.some(p=>Gr(p)!==Gr(s))||jA(s,n,e,Ga(n,t.expectedSourceRevision))===void 0)throw Ps("Confirmed identity repair conflicts with its existing immutable record.");return s}let a=Ng(n,t.sourceEntryId),c=Ng(n,t.targetEntryId);HA(Ga(n,t.expectedSourceRevision),t.sourceEntryId,t.targetEntryId);let l=BI(e,t.sourceEntryId),u={id:l,dedupeKey:l,extensionId:DA,type:HI,ts:Date.now(),data:{schemaVersion:1,sessionId:e,sourceEntryId:t.sourceEntryId,targetEntryId:t.targetEntryId,expectedSourceRevision:t.expectedSourceRevision,confirmationReference:t.confirmationReference,sourceDigest:$f(a),targetDigest:$f(c),...t.deliveryWitness===void 0?{}:{deliveryWitness:{...t.deliveryWitness}}}};if(!Nf(u))throw Ps("Invalid confirmed identity repair input.");return u}o(FA,"buildConfirmedIdentityRepairRecord");function WA(e,t,n){if(!$o(e))throw Ps("Identity repair merge requires a session identity.");let r=new Map;for(let s of(t??[]).filter(Xa)){let a=r.get(s.id);if(a&&Gr(a)!==Gr(s))throw Ps("Conflicting persisted identity repair records.");r.set(s.id,s)}if(n===void 0)return[...t??[]];let i=new Map;for(let s of n){let a=r.get(s.id)??i.get(s.id);if(a&&(Xa(a)||Xa(s))&&Gr(a)!==Gr(s))throw Ps("Confirmed identity repair records are immutable.");if(Xa(s)&&!a&&!Nf(s))throw Ps("Invalid confirmed identity repair record.");i.set(s.id,s)}return[...n,...[...r.values()].filter(s=>!i.has(s.id))]}o(WA,"mergeConfirmedIdentityRepairRecords");function jA(e,t,n,r){let i=Nf(e);if(!(!i||i.sessionId!==n))try{return $f(Ng(t,i.sourceEntryId))!==i.sourceDigest||$f(Ng(t,i.targetEntryId))!==i.targetDigest?void 0:{sourceId:i.sourceEntryId,targetIndex:HA(r,i.sourceEntryId,i.targetEntryId)}}catch{return}}o(jA,"validateAppliedRecord");function Dg(e,t,n,r){let i=r?.filter(d=>{if(!Xa(d))return!1;let p=Nf(d);return p===void 0||p.sessionId===n})??[];if(i.length===0)return e;let s=new Map,a=new Set;for(let d of i){let p=s.get(d.id);p!==void 0&&p!==Gr(d)&&a.add(d.id),s.set(d.id,Gr(d))}let c=new Map,l=new Set,u=0;for(let d of i){let p=a.has(d.id)?void 0:jA(d,t,n,e);if(!p){u+=1,l.size<16&&l.add(typeof d.id=="string"?d.id.slice(0,256):"invalid-record");continue}let m=c.get(p.targetIndex)??new Set(e.entries[p.targetIndex].auditEntryIds);m.add(p.sourceId),c.set(p.targetIndex,m)}return{...e,entries:e.entries.map((d,p)=>c.has(p)?{...d,auditEntryIds:[...c.get(p)]}:d),...u===0?{}:{status:e.status==="ambiguous"?"ambiguous":"partial",issues:[...e.issues,{code:"identity_repair_invalid",occurrenceCount:u,entryCount:u,entryIds:[...l],message:"Confirmed identity repair records could not be verified; their aliases were not applied."}]}}}o(Dg,"applyConfirmedIdentityRepairs");import{createHash as VI,randomUUID as GI}from"node:crypto";import Mt from"node:fs/promises";import ar from"node:path";var ql=8,JU=".resume-index",QU="complete.json",ZU="publish.lock",qA=".resume",UA=32,e2=2e3,Wg=10,FI=3e4,Xl=40,Bg=new Map,zl=new Map;async function Ls(e,t){let n=[];for(let r=0;r<e.length;r+=UA){let i=e.slice(r,r+UA);n.push(...await Promise.all(i.map((s,a)=>t(s,r+a))))}return n}o(Ls,"mapBatches");function Do(e){return ar.join(e,JU)}o(Do,"indexDir");function jg(e){return ar.join(Do(e),QU)}o(jg,"manifestPath");function Ug(e){return`${VI("sha256").update(e,"utf8").digest("hex")}${qA}`}o(Ug,"markerName");function XA(e,t){return ar.join(Do(e),Ug(t))}o(XA,"markerPath");function VA(e){try{let t=JSON.parse(e);return!Yl(t)||typeof t.pid!="number"||!Number.isInteger(t.pid)||t.pid<=0||typeof t.token!="string"||t.token.length===0?void 0:{pid:t.pid,token:t.token}}catch{return}}o(VA,"parseIndexPublishLockOwner");async function GA(e){for(let t=0;t<Xl;t+=1)try{return await Mt.rmdir(e),!0}catch(n){let r=n.code;if(r==="ENOENT")return!0;if(!["EPERM","EACCES","EBUSY"].includes(r??""))return!1;t+1<Xl&&await new Promise(i=>setTimeout(i,Wg))}return!1}o(GA,"removeEmptyIndexLockDirectory");async function t2(e){let t=`${e}.reclaim`;for(let n=0;n<2;n+=1)try{return await Mt.mkdir(t),async()=>{await GA(t)||process.emitWarning(`Unable to release resume-index reclaim guard ${t}`,{code:"KODAX_RESUME_INDEX"})}}catch(r){if(r.code!=="EEXIST")throw r;if(n>0)return;try{let i=await Mt.stat(t);if(Date.now()-i.mtimeMs<FI)return}catch(i){if(i.code==="ENOENT")continue;throw i}if(!await GA(t))return}}o(t2,"acquireIndexLockReclaimGuard");function KA(e){try{return process.kill(e,0),!1}catch(t){return t.code==="ESRCH"}}o(KA,"processIsDefinitelyDead");async function Hg(e){try{let[t,n]=await Promise.all([Mt.readFile(e,"utf8"),Mt.stat(e)]);return{content:t,mtimeMs:n.mtimeMs}}catch(t){if(t.code==="ENOENT")return;throw t}}o(Hg,"readIndexPublishLock");async function WI(e,t){for(let n=0;n<Xl;n+=1){let r=await Hg(e);if(r===void 0)return!0;if(r.content!==t)return!1;try{return await Mt.rm(e),!0}catch(i){let s=i.code;if(s==="ENOENT")return!0;if(!["EPERM","EACCES","EBUSY"].includes(s??""))return!1;n+1<Xl&&await new Promise(a=>setTimeout(a,Wg))}}return!1}o(WI,"removeObservedIndexPublishLock");async function n2(e){let t=await Hg(e);if(t===void 0)return!0;if(zl.get(e)===t.content){let i=await WI(e,t.content);return i&&zl.delete(e),i}let n=VA(t.content);if(n!==void 0){if(!KA(n.pid))return!1}else if(Date.now()-t.mtimeMs<FI)return!1;let r=await t2(e);if(r===void 0)return!1;try{let i=await Hg(e);if(i===void 0)return!0;let s=VA(i.content);return zl.get(e)===i.content||(s!==void 0?KA(s.pid):Date.now()-i.mtimeMs>=FI)?WI(e,i.content):!1}finally{await r()}}o(n2,"reclaimAbandonedIndexPublishLock");async function r2(e){let t;for(let r=0;r<Xl;r+=1)try{await Mt.rm(e,{force:!0});return}catch(i){t=i;let s=i.code;if(!["EPERM","EACCES","EBUSY"].includes(s??""))break;r+1<Xl&&await new Promise(a=>setTimeout(a,Wg))}let n=t instanceof Error?t.message:String(t);process.emitWarning(`Unable to remove resume-index lock temp file ${e}: ${n}`,{code:"KODAX_RESUME_INDEX"})}o(r2,"removeIndexPublishLockTemp");async function i2(e,t){await Mt.mkdir(ar.dirname(e),{recursive:!0});let n=`${e}.${process.pid}.${GI()}.tmp`;await Mt.writeFile(n,t,{encoding:"utf8",flag:"wx"});let r=Date.now()+e2;try{for(;;)try{await Mt.link(n,e);return}catch(i){let s=i.code;if(!["EEXIST","EPERM","EACCES","EBUSY"].includes(s??""))throw i;if(await Hg(e)!==void 0&&await n2(e))continue;if(Date.now()>=r)throw new Error(`Resume index publish lock timed out: ${e}`,{cause:i});await new Promise(c=>setTimeout(c,Wg))}}finally{await r2(n)}}o(i2,"acquireIndexPublishLock");async function o2(e,t){if(!await WI(e,t))throw zl.set(e,t),new Error(`Resume index publish lock ownership changed: ${e}`);zl.get(e)===t&&zl.delete(e)}o(o2,"releaseIndexPublishLock");async function YA(e,t){let n=ar.join(Do(e),ZU),r=Bg.get(n)??Promise.resolve(),i,s=new Promise(c=>{i=c});Bg.set(n,s),await r.catch(()=>{});let a=JSON.stringify({pid:process.pid,token:GI()});try{await i2(n,a);try{return await t()}finally{await o2(n,a)}}finally{i(),Bg.get(n)===s&&Bg.delete(n)}}o(YA,"withIndexPublishLock");function Vg(e){let t=ar.dirname(e);return ar.basename(t)==="archived"?ar.dirname(t):t}o(Vg,"resumeIndexProjectDir");function Yl(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(Yl,"isRecord");function s2(e){if(!(!Yl(e)||typeof e.id!="string"||e.id.length===0||ar.basename(e.id)!==e.id||typeof e.title!="string"||typeof e.msgCount!="number"||!Number.isInteger(e.msgCount)||e.msgCount<=0||e.createdAt!==void 0&&typeof e.createdAt!="string"||e.lastMessageAt!==void 0&&typeof e.lastMessageAt!="string"||e.surface!==void 0&&typeof e.surface!="string"))return{id:e.id,title:e.title,msgCount:e.msgCount,...e.createdAt!==void 0?{createdAt:e.createdAt}:{},...e.lastMessageAt!==void 0?{lastMessageAt:e.lastMessageAt}:{},...e.surface!==void 0?{surface:e.surface}:{}}}o(s2,"parseEntry");function JA(e){if(!Yl(e))return;let t=Array.isArray(e.markerNames)&&e.markerNames.every(i=>typeof i=="string")?[...e.markerNames].sort():void 0,n=Array.isArray(e.sessionNames)&&e.sessionNames.every(i=>typeof i=="string")?[...e.sessionNames].sort():void 0,r=Array.isArray(e.excludedSources)?e.excludedSources.flatMap(i=>!Yl(i)||typeof i.name!="string"||typeof i.sourceSize!="number"||!Number.isInteger(i.sourceSize)||i.sourceSize<0||typeof i.sourceMtimeMs!="number"||!Number.isFinite(i.sourceMtimeMs)||typeof i.sourceCtimeMs!="number"||!Number.isFinite(i.sourceCtimeMs)||typeof i.sourceDev!="number"||!Number.isInteger(i.sourceDev)||typeof i.sourceIno!="number"||!Number.isInteger(i.sourceIno)?[]:[{name:i.name,sourceSize:i.sourceSize,sourceMtimeMs:i.sourceMtimeMs,sourceCtimeMs:i.sourceCtimeMs,sourceDev:i.sourceDev,sourceIno:i.sourceIno}]):void 0;if(!(e.version!==ql||t===void 0||typeof e.markerCount!="number"||!Number.isInteger(e.markerCount)||e.markerCount<0||typeof e.markerDigest!="string"||n===void 0||typeof e.sessionFileCount!="number"||!Number.isInteger(e.sessionFileCount)||e.sessionFileCount<0||typeof e.sessionFileDigest!="string"||r===void 0||typeof e.excludedSourceCount!="number"||!Number.isInteger(e.excludedSourceCount)||e.excludedSourceCount<0||typeof e.excludedSourceDigest!="string"||t.length!==e.markerCount||No(t)!==e.markerDigest||n.length!==e.sessionFileCount||No(n)!==e.sessionFileDigest||r.length!==e.excludedSourceCount||KI(r)!==e.excludedSourceDigest))return{version:ql,markerNames:t,markerCount:e.markerCount,markerDigest:e.markerDigest,sessionNames:n,sessionFileCount:e.sessionFileCount,sessionFileDigest:e.sessionFileDigest,excludedSources:r,excludedSourceCount:e.excludedSourceCount,excludedSourceDigest:e.excludedSourceDigest}}o(JA,"parseManifest");function a2(e,t){if(!Yl(e)||e.version!==ql||e.state!=="pending"&&e.state!=="ready")return;let n=s2(e.entry);if(!n||Ug(n.id)!==t)return;let r=Yl(e.source)&&typeof e.source.size=="number"&&Number.isInteger(e.source.size)&&e.source.size>=0&&typeof e.source.mtimeMs=="number"&&Number.isFinite(e.source.mtimeMs)&&typeof e.source.ctimeMs=="number"&&Number.isFinite(e.source.ctimeMs)&&typeof e.source.dev=="number"&&Number.isInteger(e.source.dev)&&typeof e.source.ino=="number"&&Number.isInteger(e.source.ino)?{size:e.source.size,mtimeMs:e.source.mtimeMs,ctimeMs:e.source.ctimeMs,dev:e.source.dev,ino:e.source.ino}:void 0;if(!(e.state==="ready"&&r===void 0))return{version:ql,state:e.state,entry:n,...r!==void 0?{source:r}:{}}}o(a2,"parseMarker");function No(e){let t=VI("sha256");for(let n of[...e].sort())t.update(n),t.update(`
|
|
89
|
-
`);return t.digest("hex")}o(
|
|
90
|
-
`);return t.digest("hex")}o(KI,"digestScannedFiles");async function jI(e){try{return(await Mt.readdir(Do(e),{withFileTypes:!0})).filter(t=>t.isFile()&&t.name.endsWith(qA)).map(t=>t.name).sort()}catch(t){if(t.code==="ENOENT")return[];throw t}}o(jI,"readMarkerNames");async function UI(e){try{return(await Mt.readdir(e,{withFileTypes:!0})).filter(t=>t.isFile()&&t.name.endsWith(".jsonl")&&!t.name.endsWith(".archive.jsonl")&&!t.name.endsWith(".islands.jsonl")&&!t.name.startsWith("archived-")&&!t.name.startsWith(".")).map(t=>t.name).sort()}catch(t){if(t.code==="ENOENT")return[];throw t}}o(UI,"readCanonicalSessionNames");async function Fg(e,t){let n;try{n=await Mt.readFile(ar.join(Do(e),t),"utf8")}catch(r){if(r.code!=="ENOENT")throw r;return}try{return a2(JSON.parse(n),t)}catch{return}}o(Fg,"readMarker");async function QA(e,t){let n=`${e}.${process.pid}.${GI()}.tmp`;await Mt.writeFile(n,t,"utf8");try{await Mt.rename(n,e)}catch(r){if(!["EEXIST","EPERM"].includes(r.code??""))throw r;await Mt.rm(e,{force:!0}),await Mt.rename(n,e)}finally{await Mt.rm(n,{force:!0})}}o(QA,"replaceDerivedFile");async function ZA(e){await Mt.rm(jg(e),{force:!0})}o(ZA,"invalidateManifest");async function zI(e,t,n,r,i){let s=Do(e),a=XA(e,t.id);if(await Mt.mkdir(s,{recursive:!0}),!r)try{return await Mt.access(a),!1}catch(u){if(u.code!=="ENOENT")throw u}let c=r?await Fg(e,Ug(t.id)):void 0,l={version:ql,state:n,entry:{...c?.entry,...t},...i!==void 0?{source:i}:{}};return await QA(a,JSON.stringify(l)),!0}o(zI,"writeMarker");async function Gg(e,t){try{let n=await Mt.stat(ar.join(e,`${t}.jsonl`));return n.isFile()?{size:n.size,mtimeMs:n.mtimeMs,ctimeMs:n.ctimeMs,dev:n.dev,ino:n.ino}:void 0}catch(n){if(n.code==="ENOENT")return;throw n}}o(Gg,"canonicalSource");async function c2(e,t){let n=ar.basename(t,".jsonl");if(`${n}.jsonl`!==t)return;let r=await Gg(e,n);return r===void 0?void 0:{name:t,sourceSize:r.size,sourceMtimeMs:r.mtimeMs,sourceCtimeMs:r.ctimeMs,sourceDev:r.dev,sourceIno:r.ino}}o(c2,"currentScannedFile");function l2(e,t){return e!==void 0&&e.size===t.sourceSize&&e.mtimeMs===t.sourceMtimeMs&&e.ctimeMs===t.sourceCtimeMs&&e.dev===t.sourceDev&&e.ino===t.sourceIno}o(l2,"sourceMatchesIdentity");async function zA(e,t){return(await Ls(t,async r=>{let i=ar.basename(r.name,".jsonl");return`${i}.jsonl`!==r.name?!1:l2(await Gg(e,i),r)})).every(Boolean)}o(zA,"scannedFilesStillMatch");async function e_(e,t){if(t.state!=="ready"||t.source===void 0)return!1;let n=await Gg(e,t.entry.id);return n!==void 0&&n.size===t.source.size&&n.mtimeMs===t.source.mtimeMs&&n.ctimeMs===t.source.ctimeMs&&n.dev===t.source.dev&&n.ino===t.source.ino}o(e_,"markerMatchesCanonical");async function t_(e,t,n,r){await Mt.mkdir(Do(e),{recursive:!0});let i=[...t].sort(),s=[...n].sort(),a=[...r].sort((l,u)=>l.name.localeCompare(u.name)),c={version:ql,markerNames:i,markerCount:i.length,markerDigest:No(i),sessionNames:s,sessionFileCount:s.length,sessionFileDigest:No(s),excludedSources:a,excludedSourceCount:a.length,excludedSourceDigest:KI(a)};await QA(jg(e),JSON.stringify(c))}o(t_,"writeManifest");async function Df(e){let t;try{t=await Mt.readFile(jg(e),"utf8")}catch(d){if(d.code!=="ENOENT")throw d;return}let n;try{n=JA(JSON.parse(t))}catch{return}if(!n)return;let r=await jI(e),i=await UI(e);if(r.length!==n.markerCount||No(r)!==n.markerDigest||i.length!==n.sessionFileCount||No(i)!==n.sessionFileDigest)return;let s=await Ls(r,d=>Fg(e,d));if(s.some(d=>d===void 0||d.state!=="ready")||(await Ls(s,async d=>d===void 0?!1:e_(e,d))).some(d=>!d))return;let c=new Set(s.flatMap(d=>d?.state==="ready"?[`${d.entry.id}.jsonl`]:[])),l=i.filter(d=>!c.has(d));if(l.length!==n.excludedSourceCount)return;let u=await Ls(l,d=>c2(e,d));if(!(u.some(d=>d===void 0)||KI(u.flatMap(d=>d===void 0?[]:[d]))!==n.excludedSourceDigest))return s.flatMap(d=>d?.state==="ready"?[d.entry]:[])}o(Df,"readResumeIndex");async function Kg(e,t){try{await zI(e,t,"pending",!1)}catch(n){try{await ZA(e)}catch(r){throw new AggregateError([n,r],`Unable to prepare or invalidate the resume index for ${t.id}`)}throw n}}o(Kg,"prepareResumeIndexEntry");async function u2(e,t){try{return await Mt.rm(XA(e,t)),!0}catch(n){if(n.code==="ENOENT")return!1;throw n}}o(u2,"removeResumeIndexEntry");async function Bf(e,t,n){await YA(e,async()=>{let r=await Gg(e,t.id);if(n){if(r===void 0)return;await zI(e,t,"ready",!0,r)}else await u2(e,t.id);await d2(e,t.id,n,r)})}o(Bf,"commitResumeIndexEntry");async function d2(e,t,n,r){let i;try{i=await Mt.readFile(jg(e),"utf8")}catch(p){if(p.code==="ENOENT")return;throw p}let s;try{s=JA(JSON.parse(i))}catch{return}if(!s)return;let a=Ug(t),c=`${t}.jsonl`;if(n&&s.markerNames.includes(a))return;let l=new Set(s.markerNames),u=new Set(s.sessionNames),d=s.excludedSources.filter(p=>p.name!==c);r===void 0?u.delete(c):u.add(c),n?l.add(a):(l.delete(a),r!==void 0&&d.push({name:c,sourceSize:r.size,sourceMtimeMs:r.mtimeMs,sourceCtimeMs:r.ctimeMs,sourceDev:r.dev,sourceIno:r.ino})),await t_(e,[...l],[...u],d)}o(d2,"refreshCompleteManifestAfterCommit");async function n_(e,t,n){await YA(e,()=>f2(e,t,n))}o(n_,"completeResumeIndex");async function f2(e,t,n){let r=n.map(g=>g.name).sort(),i=No(r),s=await UI(e);if(s.length!==r.length||No(s)!==i||!await zA(e,n))return;await ZA(e),await Mt.mkdir(Do(e),{recursive:!0});let a=new Set(t.map(g=>g.id)),c=n.filter(g=>!a.has(ar.basename(g.name,".jsonl")));for(let g of t)await zI(e,g,"ready",!0,{size:g.sourceSize,mtimeMs:g.sourceMtimeMs,ctimeMs:g.sourceCtimeMs,dev:g.sourceDev,ino:g.sourceIno});let l=await jI(e),u=await Ls(l,g=>Fg(e,g));await Ls(l,async(g,S)=>{let T=u[S];(T===void 0||!a.has(T.entry.id))&&await Mt.rm(ar.join(Do(e),g),{force:!0})});let d=await UI(e);if(d.length!==r.length||No(d)!==i||!await zA(e,n))return;let p=await jI(e),m=await Ls(p,g=>Fg(e,g));m.some(g=>g?.state!=="ready")||m.length!==a.size||m.some(g=>g===void 0||!a.has(g.entry.id))||(await Ls(m,async g=>g===void 0?!1:e_(e,g))).some(g=>!g)||await t_(e,p,r,c)}o(f2,"completeResumeIndexWithLock");import Hf from"node:fs/promises";import p2 from"node:os";import Ti from"node:path";var o_=65536,zg=48;function m2(){let e=process.env.KODAX_HOME,t=e&&e.length>0?e:Ti.join(p2.homedir(),".kodax");return Ti.join(t,"sessions")}o(m2,"defaultSessionsDir");function h2(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith("archived-")&&!e.startsWith(".")}o(h2,"isSessionFile");async function qg(e){try{return(await Hf.readdir(e,{withFileTypes:!0})).filter(t=>t.isFile()&&h2(t.name)).map(t=>Ti.join(e,t.name))}catch(t){if(t.code==="ENOENT")return[];throw t}}o(qg,"readProjectSessionFiles");async function g2(e){try{return await qg(e)}catch(t){return XI(`read ${e}`,t),[]}}o(g2,"readOptionalProjectSessionFiles");async function y2(e,t,n,r,i){let s=n?[]:await qg(t),a=(await Promise.all(i.map(l=>g2(l)))).flat(),c=await qg(e);return[...s.map(l=>({filePath:l,trustedProjectDir:r})),...a.map(l=>({filePath:l,trustedProjectDir:!1})),...c.map(l=>({filePath:l,trustedProjectDir:!1}))]}o(y2,"collectActiveSessionFiles");async function w2(e,t){try{let n=JSON.parse(await Hf.readFile(Ti.join(e,"project.json"),"utf8"));if(n===null||typeof n!="object")return!1;let r=n.canonicalRoot;return typeof r=="string"&&Ya(r)===Ya(t)}catch{return!1}}o(w2,"isTrustedProjectDir");function S2(e){return{...e,...e.createdAt!==void 0?{createdAtMs:Date.parse(e.createdAt)}:{}}}o(S2,"indexedCandidate");function qI(e,t){let n=t instanceof Error?t.message:String(t);process.emitWarning(`Resume index ${e} failed; using canonical sessions instead: ${n}`,{code:"KODAX_RESUME_INDEX"})}o(qI,"reportResumeIndexFailure");function XI(e,t){let n=t instanceof Error?t.message:String(t);process.emitWarning(`Resume compatibility ${e} failed; continuing with the current project: ${n}`,{code:"KODAX_RESUME_COMPATIBILITY"})}o(XI,"reportResumeCompatibilityFailure");function Ya(e){if(!e?.trim())return;let t=Ti.resolve(e).replace(/\\/g,"/");return process.platform==="win32"||process.platform==="darwin"?t.toLowerCase():t}o(Ya,"normalizeComparableRoot");function x2(e,t){if(t.length===0)return!0;let n=e.runtimeInfo!==null&&typeof e.runtimeInfo=="object"?e.runtimeInfo:void 0;return Zc({...typeof e.gitRoot=="string"?{gitRoot:e.gitRoot}:{},...n===void 0?{}:{runtimeInfo:{...typeof n.canonicalRepoRoot=="string"?{canonicalRepoRoot:n.canonicalRepoRoot}:{},...typeof n.workspaceRoot=="string"?{workspaceRoot:n.workspaceRoot}:{},...typeof n.executionCwd=="string"?{executionCwd:n.executionCwd}:{}}}},t)}o(x2,"matchesProjectRoot");function I2(e,t){return e.sourceSize===t.size&&e.sourceMtimeMs===t.mtimeMs&&e.sourceCtimeMs===t.ctimeMs&&e.sourceDev===t.dev&&e.sourceIno===t.ino}o(I2,"sameSource");async function C2(e,t){let n=[],r=t,i=!1;for(;r>0;){let s=Math.max(0,r-o_),a=Buffer.allocUnsafe(r-s),{bytesRead:c}=await e.read(a,0,a.length,s);if(c===0)break;let l=c;if(!i){for(;l>0&&(a[l-1]===10||a[l-1]===13);)l-=1;if(l===0){r=s;continue}i=!0}let u=a.lastIndexOf(10,l-1);if(n.unshift(a.subarray(u+1,l)),u>=0)break;r=s}return Buffer.concat(n).toString("utf8").trim()}o(C2,"readLastNonEmptyLine");async function s_(e,t=!1){let n;try{n=await Hf.open(e,"r");let r=await n.stat(),i=[],s=0,a=0,c=r.size;for(;;){let m=r.size-a;if(m<=0)break;let h=Buffer.allocUnsafe(Math.min(o_,m)),{bytesRead:g}=await n.read(h,0,h.length,a);if(g===0)break;let S=h.subarray(0,g),T=S.indexOf(10),x=T>=0?S.subarray(0,T):S;if(i.push(x),s+=x.length,T>=0){c=a+T;break}a+=g}if(s===0)return;let l=Buffer.concat(i,s).toString("utf8").trim(),u=r.size<=c+1?l:await C2(n,r.size),d={sourceSize:r.size,sourceMtimeMs:r.mtimeMs,sourceCtimeMs:r.ctimeMs,sourceDev:r.dev,sourceIno:r.ino},p=await n.stat();return I2(d,p)?{line:l,tailLine:u,...d}:void 0}catch(r){if(t)throw r;return}finally{await n?.close()}}o(s_,"readSessionEnvelope");function r_(e,t){return t._type!=="meta_update"?e:{...e,...typeof t.title=="string"?{title:t.title}:{},...typeof t.activeMessageCount=="number"&&t.activeMessageCount>=0?{activeMessageCount:t.activeMessageCount}:{},...Array.isArray(t.uiHistory)?{uiHistory:t.uiHistory}:{},...typeof t.scope=="string"?{scope:t.scope}:{},...rn(t.lastMessageAt)!==void 0?{lastMessageAt:t.lastMessageAt}:{}}}o(r_,"applyMetaUpdate");function Xg(e){try{let t=JSON.parse(e);return t!==null&&typeof t=="object"?{valid:!0,value:t}:{valid:!0}}catch{return{valid:!1}}}o(Xg,"parseJsonRecord");async function T2(e,t,n){let r=Xg(n);if(r.valid)return r.value===void 0?t:r_(t,r.value);let i=(await Hf.readFile(e,"utf8")).split(`
|
|
91
|
-
`);for(let s=i.length-1;s>=0;s-=1){let a=i[s]?.trim();if(!a)continue;let c=Xg(a);if(c.valid&&c.value?._type==="meta_update")return r_(t,c.value)}return t}o(T2,"applyEffectiveTailMetadata");async function Yg(e){let t=await s_(e,!0);if(!t)return;let n=Xg(t.line);if(!n.valid)throw new Error("Malformed Session metadata");if(!(!n.value||n.value._type!=="meta"))return a_(e,n.value,t.tailLine)}o(Yg,"readEffectiveSessionMetadata");async function a_(e,t,n){let r=await T2(e,t,n);if(rn(r.lastMessageAt)!==void 0)return r;let i=Xg(n).value,s=i?._type==="lineage_entry"&&i.entry!==null&&typeof i.entry=="object"?i.entry:void 0,a=s?.type==="message"&&s.message!==null&&typeof s.message=="object"?s.message:s===void 0?i:void 0;if(a?._synthetic===!0||a?.role!=="user"&&a?.role!=="assistant"||s!==void 0&&r.activeEntryId!==void 0&&r.activeEntryId!==s.id)return r;let c=rn(a.timestamp)??(s?.sourceEntryId===void 0?rn(s?.timestamp):void 0);return c===void 0?r:{...r,lastMessageAt:c}}o(a_,"effectiveEnvelopeMetadata");async function v2(e,t){if(typeof t.activeMessageCount=="number"&&t.activeMessageCount>=0)return Ji(t.activeMessageCount,t.uiHistory);let n=(await
|
|
92
|
-
`).length-1-r),t.uiHistory)}o(v2,"readMessageCount");function b2(e){if(e.runtimeInfo===null||typeof e.runtimeInfo!="object")return;let t=e.runtimeInfo;return{...typeof t.canonicalRepoRoot=="string"?{canonicalRepoRoot:t.canonicalRepoRoot}:{},...typeof t.workspaceRoot=="string"?{workspaceRoot:t.workspaceRoot}:{},...typeof t.surface=="string"?{surface:t.surface}:{}}}o(b2,"runtimeSummary");async function i_(e,t,n){let r=await s_(e);if(!r?.line)return{};let i={name:Ti.basename(e),sourceSize:r.sourceSize,sourceMtimeMs:r.sourceMtimeMs,sourceCtimeMs:r.sourceCtimeMs,sourceDev:r.sourceDev,sourceIno:r.sourceIno};try{let s=JSON.parse(r.line);if(s===null||typeof s!="object")return{source:i};let a=await a_(e,s,r.tailLine);if(a._type!=="meta")return{source:i,matchesProject:!1};let c=n||x2(a,t);if(!c||a.scope==="managed-task-worker")return{source:i,matchesProject:c};let l=await v2(e,a);if(l<=0)return{source:i,matchesProject:c};let u=typeof a.createdAt=="string"?a.createdAt:void 0,d=b2(a);return{source:i,matchesProject:c,candidate:{id:Ti.basename(e,".jsonl"),title:typeof a.title=="string"?a.title:"",msgCount:l,...u!==void 0?{createdAt:u}:{},...rn(a.lastMessageAt)!==void 0?{lastMessageAt:a.lastMessageAt}:{},...d?.surface!==void 0?{surface:d.surface}:{},...u!==void 0?{createdAtMs:Date.parse(u)}:{},sourceSize:r.sourceSize,sourceMtimeMs:r.sourceMtimeMs,sourceCtimeMs:r.sourceCtimeMs,sourceDev:r.sourceDev,sourceIno:r.sourceIno}}}catch{return{source:i}}}o(i_,"readResumeCandidate");async function R2(e,t){let n=e.sessionsDir??m2(),{canonicalProjectRoot:r,compatibleRoots:i}=await YI(e.projectRoot),s=Ti.join(n,Br(r).key),a=i.map(x=>Ti.join(n,Br(x).key)),c=await w2(s,r),l=!1;if(!c)try{l=!await Pg(s)}catch{}let u;if(c)try{u=await Df(s)}catch(x){qI("read",x)}let d=await y2(n,s,u!==void 0,c&&u!==void 0,a),p=u?.map(S2)??[],m=[],h=[],g=!0,S=new Set(p.map(x=>x.id));for(let x=0;x<d.length;x+=zg){let I=d.slice(x,x+zg),v=await Promise.all(I.map(k=>i_(k.filePath,[r,...i],k.trustedProjectDir)));for(let k=0;k<v.length;k+=1){let _=v[k],H=I[k],$=H!==void 0&&Ya(Ti.dirname(H.filePath))===Ya(s);$&&(_?.source&&h.push(_.source),(_?.source===void 0||_.matchesProject!==!0)&&(g=!1));let P=_?.candidate;u===void 0&&$&&P?.sourceSize!==void 0&&P.sourceMtimeMs!==void 0&&P.sourceCtimeMs!==void 0&&P.sourceDev!==void 0&&P.sourceIno!==void 0&&m.push({...P,sourceSize:P.sourceSize,sourceMtimeMs:P.sourceMtimeMs,sourceCtimeMs:P.sourceCtimeMs,sourceDev:P.sourceDev,sourceIno:P.sourceIno}),P&&!S.has(P.id)&&(S.add(P.id),p.push(P))}}if(t&&l&&g){let x=[];try{x=await qg(Ti.join(s,"archived"))}catch(I){g=!1,XI("legacy archived-session certification",I)}for(let I=0;I<x.length;I+=zg)if((await Promise.all(x.slice(I,I+zg).map(k=>i_(k,[r,...i],!1)))).some(k=>k.source===void 0||k.matchesProject!==!0)){g=!1;break}}let T=c;if(t&&l&&g)try{await Gl(s,Br(r)),T=!0}catch(x){qI("project identity publication",x)}if(t&&u===void 0&&T)try{await n_(s,m,h)}catch(x){qI("rebuild",x)}return p.sort(za),p.slice(0,e.limit??Number.MAX_SAFE_INTEGER).map(({createdAtMs:x,sourceSize:I,sourceMtimeMs:v,sourceCtimeMs:k,sourceDev:_,sourceIno:H,...$})=>$)}o(R2,"scanResumeSessions");async function c_(e){await R2(e,!0)}o(c_,"maintainProjectResumeIndex");async function YI(e){let t=await aR({cwd:e}),n=t.canonicalRoot,r=[];try{r=sR(n)}catch(s){XI("linked-worktree discovery",s)}let i=[t.workspaceRoot,...r].filter((s,a,c)=>{let l=Ya(s);return l!==Ya(n)&&c.findIndex(u=>Ya(u)===l)===a});return{canonicalProjectRoot:n,compatibleRoots:i}}o(YI,"resolveSessionDiscoveryRoots");var E2=[10,25,50,100],ry=6e4,M2=ry+5e3,A2=15e3,nC=".location-topology",_2=".location-topology.lock",iy=".location-index",P2=64*1024,u_=256*1024,M_=256,JI=0,rC=class extends Error{static{o(this,"ActorSnapshotSaveCancelledError")}attemptId;code="actor_snapshot_save_cancelled";constructor(t){super(`Actor snapshot save ${t} was cancelled before canonical commit.`),this.attemptId=t,this.name="ActorSnapshotSaveCancelledError"}};function Jg(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}o(Jg,"deferredValue");function vr(e){return Math.max(0,vi.now()-e)}o(vr,"elapsedMs");function L2(e){return JSON.parse(JSON.stringify(e))}o(L2,"jsonPersistedValue");var iC=class{static{o(this,"ActorSaveLifecycleState")}attempt;queueObserver;canonicalObserver;attemptId;startedAt=vi.now();dequeued=Jg();eligible=Jg();canonical=Jg();completion=Jg();timings={};cancelled;phaseValue="queued";activeStage="storageQueue";activeStageStartedAt=this.startedAt;failedStage;fileLockStartedAt=this.startedAt;committedAt;canonicalOutcome="pending";completionOutcome="pending";constructor(t,n){this.attemptId=`${t}:${n}:${Ql()}`,this.cancelled=new rC(this.attemptId),this.attempt=this.createAttempt(),this.queueObserver={onDequeued:o(()=>this.onDequeued(),"onDequeued"),beforeFileLock:o(()=>this.beforeFileLock(),"beforeFileLock"),onFileLockAcquired:o(()=>this.onFileLockAcquired(),"onFileLockAcquired"),onFileLockSettled:o(()=>this.onFileLockSettled(),"onFileLockSettled")},this.canonicalObserver={beforeCommit:o(()=>this.beforeCommit(),"beforeCommit"),afterCommit:o(()=>this.afterCommit(),"afterCommit"),beginTiming:o(r=>this.beginTiming(r),"beginTiming"),recordTiming:o((r,i)=>this.recordTiming(r,i),"recordTiming")},this.dequeued.promise.catch(()=>{}),this.eligible.promise.catch(()=>{}),this.canonical.promise.catch(()=>{}),this.completion.promise.catch(()=>{})}settleCompletion(t){t.then(()=>{this.completionOutcome="succeeded",this.recordCompletionTimings(),this.completion.resolve(void 0)},n=>{this.completionOutcome="failed",this.activeStage!==void 0&&this.timings[this.activeStage]===void 0&&this.recordTiming(this.activeStage,vr(this.activeStageStartedAt)),this.phaseValue==="committed"?this.failedStage??=this.activeStage??"postCommit":this.rejectBeforeCommit(n),this.recordCompletionTimings(),this.completion.reject(n)})}createAttempt(){return{dequeued:this.dequeued.promise,eligible:this.eligible.promise,canonical:this.canonical.promise,completion:this.completion.promise,phase:o(()=>this.phaseValue,"phase"),cancelBeforeCommit:o(()=>this.cancelBeforeCommit(),"cancelBeforeCommit"),diagnostics:o(()=>this.diagnostics(),"diagnostics")}}markCommitNotObserved(t){this.phaseValue==="commit_inflight"&&(this.phaseValue="not_committed",this.canonicalOutcome="not_committed",this.rejectBeforeCommit(t))}markCommitObservedByReadback(){this.phaseValue==="commit_inflight"&&(this.failedStage??="rename",this.afterCommit("committed_by_readback"))}cancelBeforeCommit(){return this.phaseValue!=="queued"&&this.phaseValue!=="precommit"?!1:(this.failedStage??=this.activeStage,this.phaseValue="not_committed",this.canonicalOutcome="not_committed",this.rejectBeforeCommit(this.cancelled),!0)}onDequeued(){this.recordTiming("storageQueue",vr(this.startedAt)),this.dequeued.resolve(void 0)}beforeFileLock(){if(this.phaseValue==="not_committed")throw this.cancelled;this.beginTiming("fileLock"),this.fileLockStartedAt=vi.now()}onFileLockAcquired(){if(this.recordTiming("fileLock",vr(this.fileLockStartedAt)),this.phaseValue==="not_committed")throw this.cancelled;this.phaseValue="precommit",this.eligible.resolve(void 0)}onFileLockSettled(){this.timings.fileLock===void 0&&this.recordTiming("fileLock",vr(this.fileLockStartedAt))}beforeCommit(){if(this.phaseValue!=="precommit")throw this.cancelled;this.phaseValue="commit_inflight",this.canonicalOutcome="ambiguous"}afterCommit(t="committed"){this.phaseValue!=="committed"&&(this.phaseValue="committed",this.canonicalOutcome=t,this.beginTiming("postCommit"),this.committedAt=vi.now(),this.canonical.resolve(void 0))}recordCompletionTimings(){this.committedAt!==void 0&&this.recordTiming("postCommit",vr(this.committedAt)),this.recordTiming("total",vr(this.startedAt)),this.activeStage=void 0}rejectBeforeCommit(t){this.failedStage??=this.activeStage,this.phaseValue!=="commit_inflight"&&(this.phaseValue="not_committed",this.canonicalOutcome="not_committed"),this.dequeued.reject(t),this.eligible.reject(t),this.canonical.reject(t)}beginTiming(t){this.activeStage=t,this.activeStageStartedAt=vi.now()}recordTiming(t,n){this.timings[t]=n}diagnostics(){return{attemptId:this.attemptId,phase:this.phaseValue,...this.activeStage!==void 0?{activeStage:this.activeStage}:{},...this.activeStage!==void 0?{activeStageElapsedMs:vr(this.activeStageStartedAt)}:{},...this.failedStage!==void 0?{failedStage:this.failedStage}:{},canonicalOutcome:this.canonicalOutcome,completionOutcome:this.completionOutcome,timingsMs:{...this.timings}}}};function O2(e,t){return new iC(e,t)}o(O2,"createActorSaveLifecycle");function Uf(e){let t=e??A2;if(!Number.isSafeInteger(t)||t<=0)throw new Error("Session read timeoutMs must be a positive safe integer");return t}o(Uf,"normalizeSessionReadTimeout");function Pn(e){if(e?.aborted)throw new Ie("read_cancelled","Session history read cancelled")}o(Pn,"throwIfSessionReadAborted");function Gf(e,t){Pn(e.signal);let n=Uf(e.timeoutMs);if(!(Date.now()-t<n))throw new Ie("read_timeout",`Session history read timed out after ${n}ms`)}o(Gf,"assertSessionReadBudget");async function Ja(e,t){let n=Uf(t.timeoutMs),r,i;try{return await Promise.race([e,new Promise((s,a)=>{r=setTimeout(()=>a(new Ie("read_timeout",`Session history read timed out after ${n}ms`)),n),t.signal!==void 0&&(i=o(()=>a(new Ie("read_cancelled","Session history read cancelled")),"abort"),t.signal.addEventListener("abort",i,{once:!0}))})])}finally{r!==void 0&&clearTimeout(r),i!==void 0&&t.signal?.removeEventListener("abort",i)}}o(Ja,"raceSessionRead");async function Qg(e,t){for(let n=0;;n+=1)try{await Oe.rename(e,t);return}catch(r){let i=E2[n];if(i===void 0||!$2(r))throw r;await new Promise(s=>setTimeout(s,i))}}o(Qg,"replaceSessionFile");function $2(e){if(!(e instanceof Error)||!("code"in e))return!1;let t=e.code;return t==="EPERM"||t==="EBUSY"||t==="EACCES"}o($2,"isTransientRenameError");function N2(e){return!lt(e)||e._type!=="meta_update"?!1:(e.title===void 0||typeof e.title=="string")&&(e.tag===void 0||typeof e.tag=="string")&&(e.activeEntryId===void 0||typeof e.activeEntryId=="string"||e.activeEntryId===null)&&(e.activeMessageCount===void 0||typeof e.activeMessageCount=="number")&&(e.uiHistory===void 0||Array.isArray(e.uiHistory))&&(e.scope===void 0||typeof e.scope=="string")&&(e.lastMessageAt===void 0||rn(e.lastMessageAt)!==void 0)&&(e.lineageIdentityFilterHash===void 0||typeof e.lineageIdentityFilterHash=="string"&&/^[a-f0-9]{64}$/.test(e.lineageIdentityFilterHash))}o(N2,"isPersistedMetaUpdateLine");function A_(e){if(!Array.isArray(e))return;let t=e.filter(xg).map(n=>n.type==="tool_group"?{...n,tools:n.tools.map(r=>({...r}))}:{...n});return t.length>0?t:void 0}o(A_,"normalizeKodaXSessionUiHistory");var Ie=class extends Error{static{o(this,"SessionReadError")}code;constructor(t,n){super(n),this.code=t,this.name="SessionReadError"}};function d_(e,t){let n=Dc(e,t);if(!(n.at(-1)?.id!==t||n[0]?.parentId!==null))return n.every((r,i)=>i===0||r.parentId===n[i-1].id)?n:void 0}o(d_,"completeLineageBoundaryPath");function Zl(e,t){let n=Wo("sha256").update(t,"utf8").digest("hex");return V.join(e,".write-locks",`${n}.lock`)}o(Zl,"sessionWriteLockPath");function Ho(e){return V.join(e,_2)}o(Ho,"sessionLocationTopologyLockPath");function __(e,t){let n=Wo("sha256").update(t,"utf8").digest("hex");return V.join(e,iy,`${n}.json`)}o(__,"sessionLocationHintPath");function P_(e,t){return`${Zl(e,t)}.queue`}o(P_,"sessionWriteQueuePath");function lC(e){return V.join(e,".write-locks")}o(lC,"sessionGlobalWriteBoundaryPath");function QI(e){let t=lC(e);try{let n=Wo("sha256"),r=St.readdirSync(t,{withFileTypes:!0}).filter(i=>i.isDirectory()&&i.name.endsWith(".lock.queue")).sort((i,s)=>i.name.localeCompare(s.name));for(let i of r){let s=Za(St.statSync(V.join(t,i.name),{bigint:!0}));n.update(i.name),n.update("\0"),n.update(s.dev.toString()),n.update("\0"),n.update(s.ino.toString()),n.update("\0"),n.update(s.size.toString()),n.update("\0"),n.update(s.mtimeNs.toString()),n.update("\0"),n.update(s.ctimeNs.toString()),n.update(`
|
|
93
|
-
`)}return n.digest("hex")}catch(n){return n.code==="ENOENT"?Wo("sha256").digest("hex"):void 0}}o(QI,"sessionWriterTopologyDigestSync");function Fo(e,t){let n=[Zl(e,t),Ho(e),V.join(e,".migration-lock"),V.join(e,".migration-journal.jsonl")].find(r=>St.existsSync(r));if(n!==void 0)throw new Ie("data_changed",`Session data changed during the read boundary: ${V.basename(n)}`)}o(Fo,"assertStableSessionReadBoundary");async function L_(e,t){let n=Zl(e,t);St.existsSync(n)&&await yb(n),Fo(e,t)}o(L_,"prepareStableSessionReadBoundary");function ZI(e){let t=[V.join(e,".migration-lock"),V.join(e,".migration-journal.jsonl")].find(n=>St.existsSync(n));if(t!==void 0)throw new Ie("data_changed",`Session layout migration is active: ${V.basename(t)}`)}o(ZI,"assertSessionMigrationInactive");function f_(e){try{return St.statSync(e).isFile()?"present":"missing"}catch(t){let n=t.code;return n==="ENOENT"||n==="ENOTDIR"?"missing":"unverifiable"}}o(f_,"inspectSessionCandidate");async function eC(e){try{return(await Oe.stat(e)).isFile()?"present":"missing"}catch(t){let n=t.code;return n==="ENOENT"||n==="ENOTDIR"?"missing":"unverifiable"}}o(eC,"inspectSessionCandidateAsync");function oy(e,t){return new Ie("data_changed",`Session candidate could not be verified for ${e}: ${V.basename(t)}`)}o(oy,"inaccessibleSessionCandidate");async function p_(e,t){let n=[],r=V.join(e,`${t}.jsonl`),i=f_(r);if(i==="present"&&n.push(r),i==="unverifiable")throw oy(t,r);let s=[];try{s=await Oe.readdir(e,{withFileTypes:!0})}catch(a){if(a.code!=="ENOENT")throw oy(t,e)}for(let a of s){if(!a.isDirectory()||a.name.startsWith("."))continue;let c=V.join(e,a.name);for(let l of[V.join(c,`${t}.jsonl`),V.join(c,"archived",`${t}.jsonl`)]){let u=f_(l);if(u==="present"&&n.push(l),u==="unverifiable")throw oy(t,l)}}return n.sort()}o(p_,"findStableSessionCandidates");async function D2(e,t){let n;try{n=await Oe.open(t,"r")}catch(r){if(r.code==="ENOENT")return null;throw r}try{let r=await n.stat({bigint:!0}),i=await n.readFile(),s=await n.stat({bigint:!0}),a=Za(r),c=Za(s);if(!bi(a,c)||BigInt(i.length)!==c.size)throw new Ie("data_changed",`Session file changed while reading: ${V.basename(t)}`);return{file:{kind:e,path:t,bytes:i,modifiedAt:new Date(Number(c.mtimeNs/1000000n)).toISOString()},identity:c}}catch(r){throw r.code==="ENOENT"?new Ie("data_changed",`Session file changed while reading: ${V.basename(t)}`):r}finally{await n.close()}}o(D2,"readStableBundleFile");function Za(e){return{dev:e.dev,ino:e.ino,size:e.size,mtimeNs:e.mtimeNs,ctimeNs:e.ctimeNs}}o(Za,"stableFileIdentity");function m_(e){return{dev:e.dev.toString(),ino:e.ino.toString(),size:e.size.toString(),mtimeNs:e.mtimeNs.toString(),ctimeNs:e.ctimeNs.toString()}}o(m_,"persistStableFileIdentity");function h_(e){if(!(!lt(e)||!["dev","ino","size","mtimeNs","ctimeNs"].every(n=>typeof e[n]=="string"&&/^\d+$/.test(e[n]))))return{dev:BigInt(e.dev),ino:BigInt(e.ino),size:BigInt(e.size),mtimeNs:BigInt(e.mtimeNs),ctimeNs:BigInt(e.ctimeNs)}}o(h_,"parsePersistedStableFileIdentity");function bi(e,t){return e.dev===t.dev&&e.ino===t.ino&&e.size===t.size&&e.mtimeNs===t.mtimeNs&&e.ctimeNs===t.ctimeNs}o(bi,"sameStableFileIdentity");function oC(e,t){return e===null||t===null?e===t:bi(e,t)}o(oC,"sameOptionalStableFileIdentity");function Os(e,t){return bi(e.root,t.root)&&e.epoch===t.epoch&&e.writerScope===t.writerScope&&oC(e.writerIdentity,t.writerIdentity)&&oC(e.activeWriterIdentity,t.activeWriterIdentity)}o(Os,"sameSessionTopologyIdentity");function B2(e,t){return bi(e.root,t.root)&&e.epoch===t.epoch&&e.writerScope===t.writerScope&&oC(e.writerIdentity,t.writerIdentity)}o(B2,"sameSessionTopologyWithoutActiveWriter");function H2(e,t){return e===null||t===null?e===t:Os(e,t)}o(H2,"sameOptionalSessionTopologyIdentity");function F2(e,t,n){if(V.isAbsolute(n))return;let i=n.replace(/\\/g,"/").split("/"),s=`${t}.jsonl`;if(!(i.length===1&&i[0]===s||i.length===2&&!i[0].startsWith(".")&&i[1]===s||i.length===3&&!i[0].startsWith(".")&&i[1]==="archived"&&i[2]===s)||i.some(u=>u===".."||u===""))return;let c=V.resolve(e),l=V.resolve(e,...i);return l.startsWith(`${c}${V.sep}`)?l:void 0}o(F2,"resolvePersistedSessionLocationPath");async function W2(e,t){let n;try{n=await Oe.open(__(e,t),"r");let r=(await n.stat()).size;if(r>P2)return;let i=Buffer.allocUnsafe(r),s=0;for(;s<r;){let{bytesRead:d}=await n.read(i,s,r-s,s);if(d===0)return;s+=d}let a=JSON.parse(i.toString("utf8"));if(!lt(a)||a.version!==1||a.id!==t||!Array.isArray(a.filePaths)||a.filePaths.length===0||a.filePaths.length>16||!lt(a.topology)||a.topology.epoch!==null&&typeof a.topology.epoch!="string")return;let c=h_(a.topology.root),l=a.topology.writerIdentity===null?null:h_(a.topology.writerIdentity);if(c===void 0||l===void 0)return;let u=a.filePaths.flatMap(d=>{if(typeof d!="string")return[];let p=F2(e,t,d);return p===void 0?[]:[p]});return u.length!==a.filePaths.length||new Set(u).size!==u.length?void 0:{filePaths:u,topology:{root:c,epoch:a.topology.epoch,writerScope:"session",writerIdentity:l,activeWriterIdentity:null}}}catch(r){if(r.code==="ENOENT"||r instanceof SyntaxError)return;throw r}finally{await n?.close()}}o(W2,"readSessionLocationHint");async function Zg(e,t,n="session"){let r=await Kr(e);if(r===null)return null;let i=await Kr(n==="session"?P_(e,t):lC(e)),s=n==="session"?await Kr(Zl(e,t)):null;try{return{root:r,epoch:(await Oe.readFile(V.join(e,nC),"utf8")).trim(),writerScope:n,writerIdentity:i,activeWriterIdentity:s}}catch(a){if(a.code==="ENOENT")return{root:r,epoch:null,writerScope:n,writerIdentity:i,activeWriterIdentity:s};throw a}}o(Zg,"statSessionTopologyIdentity");async function Kr(e){try{return Za(await Oe.stat(e,{bigint:!0}))}catch(t){if(t.code==="ENOENT")return null;throw t}}o(Kr,"statStableFileIdentity");function O_(e,t){return oA(t.map(n=>({kind:n.kind,relativePath:V.relative(e,n.path).replace(/\\/g,"/"),bytes:n.bytes})))}o(O_,"createStableBundleSourceRevisionState");function uC(e,t){let n=Wo("sha256");n.update("kodax-session-bundle-boundary-v1\0");for(let r of t){if(r===null)continue;let i=V.relative(e,r.file.path).replace(/\\/g,"/"),s=r.identity;n.update(`${r.file.kind}:${i}:`),n.update([s.dev,s.ino,s.size,s.mtimeNs,s.ctimeNs].map(a=>a.toString()).join(":"))}return`sha256:${n.digest("hex")}`}o(uC,"createStableBundleBoundaryRevision");async function sC(e,t,n,r,i=!1,s){Pn(r),i||Fo(e,t);let a=V.dirname(n),c=[{kind:"main",filePath:n},{kind:"islands",filePath:V.join(a,`${t}.islands.jsonl`)},{kind:"legacy_archive",filePath:V.join(a,`${t}.archive.jsonl`)}],l=[];for(let p of c)if(Pn(r),p.kind==="main"&&s!==void 0){let m=await Kr(p.filePath);if(m===null||m.size!==BigInt(s.length))throw new Ie("data_changed","Session main file changed after append");l.push({identity:m,file:{kind:"main",path:p.filePath,bytes:s,modifiedAt:new Date(Number(m.mtimeNs/1000000n)).toISOString()}})}else l.push(await D2(p.kind,p.filePath));if(l[0]===null)throw new Ie("data_changed","Session main file moved during the read boundary");i||Fo(e,t);for(let p=0;p<c.length;p+=1){Pn(r);let m=await Kr(c[p].filePath),h=l[p];if(h===null&&m!==null||h!==null&&(m===null||!bi(h.identity,m)))throw new Ie("data_changed",`Session file changed during the read boundary: ${V.basename(c[p].filePath)}`)}i||Fo(e,t);let u=l.flatMap(p=>p===null?[]:[p.file]),d=O_(e,u);return{candidates:[n],files:u,sourceRevision:Es(d),sourceRevisionState:d,boundaryRevision:uC(e,l)}}o(sC,"readStableSessionBundleAtPath");async function Qa(e,t,n,r=!1){return(await Wf(e,t,n,r)).revision}o(Qa,"readStableSessionBundleBoundaryAtPath");async function Wf(e,t,n,r=!1){return $_(e,t,n,r,async i=>i)}o(Wf,"readStableSessionBundleBoundarySnapshotAtPath");async function $_(e,t,n,r,i){r||Fo(e,t);let s=V.dirname(n),a=[{kind:"main",filePath:n},{kind:"islands",filePath:V.join(s,`${t}.islands.jsonl`)},{kind:"legacy_archive",filePath:V.join(s,`${t}.archive.jsonl`)}],c=[];for(let u of a){let d=await Kr(u.filePath);c.push(d===null?null:{identity:d,file:{kind:u.kind,path:u.filePath,bytes:Buffer.alloc(0),modifiedAt:""}})}if(c[0]===null)throw new Ie("data_changed","Session main file moved during the read boundary");r||Fo(e,t);let l=await i({revision:uC(e,c),identities:c.map(u=>u?.identity??null)});for(let u=0;u<a.length;u+=1){let d=await Kr(a[u].filePath),p=c[u];if(p===null&&d!==null||p!==null&&(d===null||!bi(p.identity,d)))throw new Ie("data_changed",`Session file changed during the read boundary: ${V.basename(a[u].filePath)}`)}return r||Fo(e,t),l}o($_,"withStableSessionBundleBoundaryAtPath");function j2(e,t,n){let r=e.identities[0],i=t.identities[0];return r==null||i===null||i===void 0||r.dev!==i.dev||r.ino!==i.ino||i.size!==r.size+BigInt(n)?!1:[1,2].every(s=>{let a=e.identities[s]??null,c=t.identities[s]??null;return a===null?c===null:c!==null&&bi(a,c)})}o(j2,"isExpectedAppendBoundaryTransition");async function N_(e,t,n){let r=V.resolve(e);Pn(n),await L_(r,t);let i=await p_(r,t);if(i.length!==1){let c=O_(r,[]);return{candidates:i,files:[],sourceRevision:Es(c),sourceRevisionState:c,boundaryRevision:uC(r,[])}}let s=await sC(r,t,i[0],n);Pn(n);let a=await p_(r,t);if(a.length!==i.length||a.some((c,l)=>c!==i[l]))throw new Ie("data_changed","Session location changed during the read boundary");return s}o(N_,"readStableSessionBundleFiles");function jt(e,t,n){Ge({source:"repl:session-storage",level:e,message:t,...n!==void 0?{detail:n}:{}})}o(jt,"reportStorageDiagnostic");function g_(e,t){t!==0&&jt("warn",`Skipped ${t} malformed session record(s) from ${V.basename(e)}.`)}o(g_,"warnMalformedSessionData");function Bo(e){jt("info",e)}o(Bo,"writeStorageNotice");function tC(e){return{_type:"extension_record",...e}}o(tC,"toExtensionRecordLine");function y_(e){return{_type:"lineage_entry",entry:e}}o(y_,"toLineageEntryLine");function w_(e){return{_type:"artifact_ledger_entry",entry:e}}o(w_,"toArtifactLedgerLine");function U2(e){switch(e.type){case"message":case"branch_summary":return 1;case"compaction":return e.reason==="rewind"?0:1+(e.postCompactAttachments?.length??0);case"archive_marker":return 0;case"label":case"rewind_marker":case"client_notice":case"memory_outcome_digest":case"memory_review_receipt":case"goal":return;default:return e}}o(U2,"activeMessageContribution");function V2(e,t,n,r){if(e===void 0)return;let i=new Map(n.map(l=>[l.id,l])),s=new Set,a=r,c=0;for(;a!==e;){if(a===null||s.has(a))return;s.add(a);let l=i.get(a);if(l===void 0)return;let u=U2(l);if(u===void 0)return;c+=u,a=l.parentId}if(!n.some(l=>l.type==="message"&&!s.has(l.id)))return t+c}o(V2,"activeMessageCountAfterAppend");function S_(e,t){let n=new Set;for(let r of e){if(t.has(r.id)||n.has(r.id))return!0;n.add(r.id)}return!1}o(S_,"hasTailIdCollision");function aC(e){return[e.kind,e.sourceTool??"",e.action??"",e.target].join("::")}o(aC,"artifactLedgerDedupKey");function G2(e,t){if(t.size+e.length>M_)return!0;let n=new Set;for(let r of e){let i=aC(r);if(t.has(i)||n.has(i))return!0;n.add(i)}return!1}o(G2,"hasArtifactTailConflict");function ey(e){return Wo("sha256").update("kodax-conversation-identity-filter-authority-v1\0").update(e,"utf8").digest("hex")}o(ey,"conversationIdentityFilterHash");function K2(e,t,n,r){if(e===void 0)return!1;let i=e,s=new Set;for(let a of t){if(a.type!=="message"||a.parentId!==i||a.logicalId!==void 0&&a.logicalId!==a.id||a.sourceEntryId!==void 0||SA(r,a.id)||s.has(a.id))return!1;s.add(a.id),i=a.id}return n===i}o(K2,"isLinearPreparedMessageTail");function z2(e){return lt(e)&&e._type==="extension_record"&&UM(e)}o(z2,"isPersistedExtensionRecordLine");function q2(e){return lt(e)&&typeof e.id=="string"&&(e.parentId===null||typeof e.parentId=="string")&&typeof e.timestamp=="string"&&typeof e.type=="string"&&(e.logicalId===void 0||typeof e.logicalId=="string")&&(e.sourceEntryId===void 0||typeof e.sourceEntryId=="string")}o(q2,"hasEntryBase");function D_(e){if(!q2(e))return!1;let t=e;switch(t.type){case"message":return pI(t.message);case"compaction":return typeof t.summary=="string"&&(t.firstKeptEntryId===void 0||typeof t.firstKeptEntryId=="string")&&(t.tokensBefore===void 0||typeof t.tokensBefore=="number");case"branch_summary":return typeof t.summary=="string"&&(t.fromId===void 0||typeof t.fromId=="string")&&(t.details===void 0||_o(t.details));case"label":return typeof t.targetId=="string"&&(t.label===void 0||typeof t.label=="string");case"archive_marker":return typeof t.archiveBatchId=="string"&&typeof t.archivedEntryCount=="number"&&typeof t.summary=="string";case"rewind_marker":return typeof t.targetId=="string"&&(t.fromId===void 0||typeof t.fromId=="string")&&typeof t.truncatedCount=="number"&&typeof t.summary=="string";case"client_notice":return typeof t.source=="string"&&typeof t.content=="string"&&(t.turnId===void 0||typeof t.turnId=="string")&&(t.payload===void 0||_o(t.payload));case"goal":return typeof t.event=="string";case"memory_outcome_digest":return lt(t.digest)&&typeof t.digest.id=="string"&&typeof t.digest.reviewKey=="string"&&typeof t.digest.sessionId=="string"&&typeof t.digest.branchId=="string"&&Number.isSafeInteger(t.digest.sequence)&&(t.jobId===void 0||typeof t.jobId=="string");case"memory_review_receipt":return typeof t.reviewKey=="string"&&Array.isArray(t.proposalIds)&&t.proposalIds.every(n=>typeof n=="string")&&(t.status==="completed"||t.status==="no_action")&&typeof t.completedAt=="string"&&(t.jobId===void 0||typeof t.jobId=="string");default:return!1}}o(D_,"isKodaXSessionEntry");function X2(e){return lt(e)&&e._type==="lineage_entry"&&D_(e.entry)}o(X2,"isPersistedLineageEntryLine");function Y2(e){return lt(e)&&e._type==="archived_entry"&&typeof e.archiveBatchId=="string"&&D_(e.entry)}o(Y2,"isPersistedArchivedEntryLine");function x_(e){return typeof e=="string"||e===null?e:void 0}o(x_,"archivedEntryAnchor");function $s(e){return e.type!=="message"?!1:e.message.content==="[compacted]"?!0:Array.isArray(e.message.content)&&e.message.content.length===1&&e.message.content[0]?.type==="text"&&e.message.content[0].text==="[compacted]"}o($s,"isCompactedPlaceholder");function J2(e,t){let n=new Map;for(let r of e)n.set(r.id,r);for(let r of t){let i=n.get(r.id);(!i||$s(i))&&n.set(r.id,r)}return[...n.values()]}o(J2,"mergeConcurrentLineageEntries");function jf(e,t,n,r){if(!n||!r||n===r||!t.has(n)||!t.has(r))return;let i=e.get(n)??new Set;i.add(r),e.set(n,i)}o(jf,"addOrderingEdge");function Q2(e,t,n){let r=new Set,i;for(let s of n)!t.has(s)||r.has(s)||(jf(e,t,i,s),i=s,r.add(s))}o(Q2,"addSequenceEdges");function I_(e,t){let n=e.length;for(e.push(t);n>0;){let r=Math.floor((n-1)/2);if(e[r]<=t)break;e[n]=e[r],n=r}e[n]=t}o(I_,"pushMin");function Z2(e){let t=e[0],n=e.pop();if(t===void 0||n===void 0||e.length===0)return t;let r=0;for(;;){let i=r*2+1;if(i>=e.length)break;let s=i+1,a=s<e.length&&e[s]<e[i]?s:i;if(e[a]>=n)break;e[r]=e[a],r=a}return e[r]=n,t}o(Z2,"popMin");function C_(e,t){let n=new Map(e.map(r=>[r,0]));for(let r of t.values())for(let i of r)n.set(i,(n.get(i)??0)+1);return n}o(C_,"orderingIndegrees");function T_(e,t,n,r){for(;e.length>0;){let i=Z2(e),s=t[i];if(!n.has(s)&&r(s))return i}}o(T_,"popEligibleIndex");function eV(e,t,n){let r=e.find(a=>!t.has(a));if(!r)return;let i=new Set,s=r;for(;s&&!t.has(s);){if(i.has(s))return s;i.add(s),s=n.get(s)}}o(eV,"findParentCycleNode");function v_(e,t,n,r,i){for(let s of t.get(e)??[]){if(r.has(s))continue;let a=n.get(s)??0;a<=0||(n.set(s,a-1),a===1&&i(s))}}o(v_,"releaseOrderingTargets");function tV(e,t,n,r){let i=new Map(e.map((m,h)=>[m,h])),s=C_(e,t),a=C_(e,n),c=[],l=[],u=new Set,d=[],p=o(m=>{s.get(m)===0&&I_(l,i.get(m)),s.get(m)===0&&a.get(m)===0&&I_(c,i.get(m))},"queueIfReady");for(let m of e)p(m);for(;d.length<e.length;){let m=T_(c,e,u,g=>s.get(g)===0&&a.get(g)===0);if(m??=T_(l,e,u,g=>s.get(g)===0),m===void 0){let g=eV(e,u,r);if(!g)break;s.set(g,0),p(g);continue}let h=e[m];u.add(h),d.push(h),v_(h,t,s,u,p),v_(h,n,a,u,p)}return d}o(tV,"stablePriorityTopologicalOrder");function Ff(e,t){let n=new Map,r=new Map,i=[];for(let p of e){let m=r.get(p.entry.id);m||i.push(p.entry.id),(!m||nV(p,m))&&r.set(p.entry.id,p)}for(let[p,m]of r)n.set(p,m.entry);for(let p of t){let m=n.get(p.id);m||i.push(p.id),(!m||!$s(p))&&n.set(p.id,p)}let s=new Set(n.keys()),a=new Map;Q2(a,s,t.map(p=>p.id));let c=new Set(t.filter(p=>!$s(p)).map(p=>p.id)),l=new Map;for(let p of e){let m=`${p.streamId}:${p.archiveBatchId}`;if(!(r.get(p.entry.id)===p&&!c.has(p.entry.id))){l.delete(m);continue}jf(a,s,l.get(m),p.entry.id),l.set(m,p.entry.id),jf(a,s,p.previousEntryId,p.entry.id),jf(a,s,p.entry.id,p.nextEntryId)}let u=new Map,d=new Map;for(let p of n.values())jf(u,s,p.parentId,p.id),p.parentId&&s.has(p.parentId)&&p.parentId!==p.id&&d.set(p.id,p.parentId);return tV(i,u,a,d).map(p=>n.get(p))}o(Ff,"mergeFullLineageEntries");function nV(e,t){let n=!$s(e.entry),r=!$s(t.entry);return n!==r?n:e.streamId!==t.streamId?e.streamId<t.streamId:!0}o(nV,"shouldPreferArchivedRecord");function rV(e,t){let n=e.lineage,r=t.lineage,i=n&&r?{...n,entries:J2(r.entries,n.entries)}:n??r,s=new Map;for(let c of t.artifactLedger??[])s.set(c.id,c);for(let c of e.artifactLedger??[])s.set(c.id,c);let a=new Map;for(let c of t.extensionRecords??[])a.set(c.id,c);for(let c of e.extensionRecords??[])a.set(c.id,c);return{...e,...i?{lineage:i}:{},...e.artifactLedger!==void 0||t.artifactLedger!==void 0?{artifactLedger:[...s.values()]}:{},...e.extensionRecords!==void 0||t.extensionRecords!==void 0?{extensionRecords:[...a.values()]}:{}}}o(rV,"mergeConcurrentAppendData");function iV(e,t,n){let r=n.map(d=>d.entry),i=oV(e,t)?aV(t,e):e,s=new Set(Dc(i).map(d=>d.id)),a=new Map(r.map(d=>[d.id,d])),c=new Map;for(let d of r)$s(d)||c.set(d.id,d);for(let d of t?.entries??[])$s(d)||c.set(d.id,d);let l=[],u=new Set;for(let d of i.entries){if(a.has(d.id)&&!s.has(d.id))continue;let p=$s(d)?c.get(d.id):void 0,m=p?.type==="message"&&d.type==="message"?{...d,message:p.message}:d;l.push(m),u.add(d.id)}for(let d of t?.entries??[])(d.type==="archive_marker"||d.type==="memory_outcome_digest"||d.type==="memory_review_receipt"||d.type==="client_notice")&&!u.has(d.id)&&(l.push(d),u.add(d.id));return{...i,entries:l}}o(iV,"reconcileCompactionLineage");function oV(e,t){if(t===void 0)return!1;let n=new Set(e.entries.map(r=>r.id));return t.entries.some(r=>sV(r)&&!n.has(r.id))}o(oV,"persistedTopologySupersedesIncoming");function sV(e){return e.type==="compaction"||e.type==="rewind_marker"}o(sV,"isTopologyEntry");function aV(e,t){let n=[...e.entries],r=new Set(n.map(i=>i.id));for(let i of t.entries)!r.has(i.id)&&cV(i)&&(n.push(i),r.add(i.id));return{...e,entries:n}}o(aV,"mergeContextSilentLineageEntries");function cV(e){return e.type==="archive_marker"||e.type==="label"||e.type==="goal"||e.type==="client_notice"||e.type==="memory_outcome_digest"||e.type==="memory_review_receipt"}o(cV,"isContextSilentLineageEntry");function lV(e){return lt(e)&&typeof e.id=="string"&&typeof e.kind=="string"&&typeof e.target=="string"&&typeof e.timestamp=="string"&&(e.sourceTool===void 0||typeof e.sourceTool=="string")&&(e.action===void 0||typeof e.action=="string")&&(e.displayTarget===void 0||typeof e.displayTarget=="string")&&(e.summary===void 0||typeof e.summary=="string")&&(e.sessionEntryId===void 0||typeof e.sessionEntryId=="string")&&(e.metadata===void 0||_o(e.metadata))}o(lV,"isKodaXSessionArtifactLedgerEntry");function uV(e){return lt(e)&&e._type==="artifact_ledger_entry"&&lV(e.entry)}o(uV,"isPersistedArtifactLedgerLine");function Vf(e){return lt(e)&&(e.canonicalRepoRoot===void 0||typeof e.canonicalRepoRoot=="string")&&(e.workspaceRoot===void 0||typeof e.workspaceRoot=="string")&&(e.executionCwd===void 0||typeof e.executionCwd=="string")&&(e.branch===void 0||typeof e.branch=="string")&&(e.workspaceKind===void 0||e.workspaceKind==="detected"||e.workspaceKind==="managed")&&(e.sandboxWorktreeRoots===void 0||Array.isArray(e.sandboxWorktreeRoots)&&e.sandboxWorktreeRoots.every(t=>typeof t=="string"))}o(Vf,"isKodaXSessionRuntimeInfo");function dV(e){for(let t=e.length-1;t>=0;t-=1){let n=e[t];if(n&&n.type!=="label"&&n.type!=="goal"&&n.type!=="client_notice"&&n.type!=="rewind_marker")return n.id}return null}o(dV,"getLastNavigableEntryId");var fV="1970-01-01T00:00:00.000Z";function pV(e){let t=e.meta?.id??Wo("sha256").update(e.rawContent).digest("hex"),n=e.meta?.createdAt??fV,r=null,i=e.legacyMessages.map((s,a)=>{let l=`entry_${Wo("sha256").update("kodax-legacy-lineage-v1\0").update(`${t}\0${a}:`).update(JSON.stringify(s)).digest("hex").slice(0,12)}`,u={type:"message",id:l,parentId:r,logicalId:l,timestamp:s.timestamp??n,message:structuredClone(s)};return r=l,u});return{version:2,activeEntryId:r,entries:i}}o(pV,"buildDeterministicLegacyLineage");function mV(e){return e.lineageEntries.length>0?{version:2,activeEntryId:e.meta?.activeEntryId??dV(e.lineageEntries),entries:e.lineageEntries}:e.legacyMessages.length===0?e.meta?.lineageVersion===2?{version:2,activeEntryId:e.meta.activeEntryId??null,entries:[]}:void 0:pV(e)}o(mV,"buildLineage");function b_(e){return typeof e=="string"?`t:${e}`:`j:${JSON.stringify(e)}`}o(b_,"serializeMessageContentForCompare");function hV(e,t){return e===t?!0:e.role===t.role&&e._synthetic===!0==(t._synthetic===!0)&&b_(e.content)===b_(t.content)}o(hV,"sameMessageByContent");function gV(e,t){if(e.lineage)return e.lineage;if(t){let n=Yt(t),r=e.messages;if(r.length<=n.length&&r.every((s,a)=>hV(s,n[a])))return t}return it(e.messages,t)}o(gV,"resolveSnapshotLineage");function R_(e,t){let n=mV(e),r=n?Yt(n):[...e.legacyMessages];return{createdAt:e.meta?.createdAt,filePath:t,...e.mainIdentity!==void 0?{mainIdentity:e.mainIdentity}:{},activeMessageCount:r.length,...e.meta?.lineageIdentityFilterHash!==void 0?{lineageIdentityFilterHash:e.meta.lineageIdentityFilterHash}:{},data:{messages:r,lastMessageAt:rn(e.meta?.lastMessageAt),title:e.meta?.title??"",gitRoot:e.meta?.gitRoot??"",tag:typeof e.meta?.tag=="string"?e.meta.tag:void 0,runtimeInfo:Vf(e.meta?.runtimeInfo)?{...e.meta.runtimeInfo}:void 0,scope:e.meta?.scope??"user",uiHistory:A_(e.meta?.uiHistory),...GM(e.meta?.errorMetadata)?{errorMetadata:{...e.meta.errorMetadata}}:{},extensionState:VM(e.meta?.extensionState)?e.meta?.extensionState:void 0,extensionRecords:e.extensionRecords.map(i=>({...i})),lineage:n,artifactLedger:e.artifactLedger.map(i=>({...i,metadata:i.metadata?structuredClone(i.metadata):void 0})),actorSnapshot:e.meta?.actorSnapshot?structuredClone(e.meta.actorSnapshot):void 0}}}o(R_,"buildSessionData");function Jl(e){let t=structuredClone(e);return t.lineage&&(t.messages=Yt(t.lineage)),t}o(Jl,"cloneSessionDataForRead");function yV(e,t,n,r,i){return{_type:"meta",title:t.title,id:e,gitRoot:t.gitRoot,tag:t.tag,runtimeInfo:t.runtimeInfo?{...t.runtimeInfo}:void 0,createdAt:r??new Date().toISOString(),lastMessageAt:Vl(n?.entries??[],t.lastMessageAt),scope:t.scope??"user",uiHistory:t.uiHistory,errorMetadata:t.errorMetadata,extensionState:t.extensionState,extensionRecordCount:t.extensionRecords?.length??0,artifactLedgerCount:t.artifactLedger?.length??0,actorSnapshot:t.actorSnapshot?structuredClone(t.actorSnapshot):void 0,lineageVersion:n?.version,activeEntryId:n?.activeEntryId,lineageEntryCount:n?.entries.length??0,activeMessageCount:n?us(n):t.messages.length,lineageIdentityFilterHash:i}}o(yV,"createSessionMeta");function ty(e,t,n,r,i,s){return{id:e,title:t,msgCount:n,...r!==void 0?{createdAt:r}:{},...s!==void 0?{lastMessageAt:s}:{},...i!==void 0?{surface:i}:{}}}o(ty,"createResumeIndexEntry");async function ny(e,t=!1,n){let r=n,i;if(r===void 0)try{let l=await Kr(e);r=await Oe.readFile(e,"utf-8");let u=await Kr(e);if(i=l!==null&&u!==null&&bi(l,u)?u:void 0,t&&i===void 0)throw new Ie("data_changed",`Session data changed while reading ${V.basename(e)}; re-read the Session.`)}catch(l){if(l?.code==="ENOENT")return null;throw l}let s=r.trim();if(!s)return null;let a={legacyMessages:[],lineageEntries:[],artifactLedger:[],extensionRecords:[],malformedCount:0,rawContent:r,...i!==void 0?{mainIdentity:i}:{}},c=s.split(`
|
|
94
|
-
`);for(let l=0;l<c.length;l+=1)if(c[l].trim().length!==0)try{let u=JSON.parse(c[l]);if(l===0&<(u)&&u._type==="meta"){if(t&&u.lineageVersion!==void 0&&u.lineageVersion!==2)throw new Ie("version_incompatible",`Unsupported Session lineage version in ${V.basename(e)}: ${String(u.lineageVersion)}`);a.meta=u;continue}if(N2(u)){a.meta&&(u.title!==void 0&&(a.meta.title=u.title),u.tag!==void 0&&(a.meta.tag=u.tag),u.activeEntryId!==void 0&&(a.meta.activeEntryId=u.activeEntryId),u.activeMessageCount!==void 0&&(a.meta.activeMessageCount=u.activeMessageCount),u.uiHistory!==void 0&&(a.meta.uiHistory=A_(u.uiHistory)),u.scope!==void 0&&(a.meta.scope=u.scope),u.lineageIdentityFilterHash!==void 0&&(a.meta.lineageIdentityFilterHash=u.lineageIdentityFilterHash),u.lastMessageAt!==void 0&&(a.meta.lastMessageAt=u.lastMessageAt));continue}if(X2(u)){a.lineageEntries.push(u.entry);continue}if(uV(u)){a.artifactLedger.push(u.entry);continue}if(z2(u)){a.extensionRecords.push({id:u.id,extensionId:u.extensionId,type:u.type,ts:u.ts,data:u.data,dedupeKey:u.dedupeKey});continue}if(
|
|
84
|
+
`),r}o(Sg,"executeShellCommand");async function pI(e,t={}){return e.startsWith("!")?Sg(e.slice(1),t):e}o(pI,"processSpecialSyntax");function Fj(e){return e.trim().startsWith("!")}o(Fj,"isShellCommand");function Wj(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell:")}o(Wj,"isShellCommandSuccess");function bf(e){return/^\[Shell command (?:executed|failed|cancelled):/.test(e)||e.startsWith("[Shell:")||e.startsWith("[Blocked]")}o(bf,"isShellCommandHandled");var jj=new Set(["user","assistant","system"]),Uj=new Set(["user","assistant","system","thinking","error","event","info","hint","sidecar"]),Vj=new Set(["success","error","cancelled","awaiting_approval"]);function lt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}o(lt,"isRecord");function Po(e){if(e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return!0;if(Array.isArray(e))return e.every(Po);if(!lt(e))return!1;let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null?!1:Object.values(e).every(Po)}o(Po,"isKodaXJsonValue");function UM(e){return lt(e)&&typeof e.id=="string"&&typeof e.extensionId=="string"&&typeof e.type=="string"&&typeof e.ts=="number"&&(e.data===void 0||Po(e.data))&&(e.dedupeKey===void 0||typeof e.dedupeKey=="string")}o(UM,"isKodaXExtensionSessionRecord");function VM(e){return lt(e)?Object.values(e).every(t=>lt(t)?Object.values(t).every(Po):!1):!1}o(VM,"isKodaXExtensionSessionState");function Gj(e){if(!lt(e)||typeof e.type!="string")return!1;switch(e.type){case"text":return typeof e.text=="string";case"tool_use":return typeof e.id=="string"&&typeof e.name=="string"&<(e.input);case"tool_result":return typeof e.tool_use_id=="string"&&(typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(Kj))&&(e.is_error===void 0||typeof e.is_error=="boolean")&&(e.metadata===void 0||lt(e.metadata));case"image":return typeof e.path=="string"&&(e.mediaType===void 0||typeof e.mediaType=="string");case"thinking":return typeof e.thinking=="string"&&(e.signature===void 0||typeof e.signature=="string");case"redacted_thinking":return typeof e.data=="string";case"cache-boundary":return e.hint===void 0||e.hint==="system"||e.hint==="tools"||e.hint==="role-prompt";default:return!1}}o(Gj,"isKodaXContentBlock");function Kj(e){return lt(e)?e.type==="text"?typeof e.text=="string":e.type==="image"&&typeof e.path=="string"&&(e.mediaType===void 0||typeof e.mediaType=="string"):!1}o(Kj,"isKodaXToolResultContentItem");function mI(e){return!lt(e)||typeof e.role!="string"||!jj.has(e.role)?!1:typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(Gj)}o(mI,"isKodaXMessage");function GM(e){return lt(e)?(e.lastError===void 0||typeof e.lastError=="string")&&(e.lastErrorTime===void 0||typeof e.lastErrorTime=="number")&&(e.consecutiveErrors===void 0||typeof e.consecutiveErrors=="number"):!1}o(GM,"isSessionErrorMetadata");function zj(e){return lt(e)&&Object.values(e).every(Po)}o(zj,"isKodaXSessionUiToolInput");function qj(e){return lt(e)&&typeof e.id=="string"&&typeof e.name=="string"&&typeof e.status=="string"&&Vj.has(e.status)&&(e.input===void 0||zj(e.input))&&(e.preview===void 0||typeof e.preview=="string")&&(e.output===void 0||typeof e.output=="string")&&(e.error===void 0||typeof e.error=="string")&&(e.startTime===void 0||typeof e.startTime=="number")&&(e.endTime===void 0||typeof e.endTime=="number")}o(qj,"isKodaXSessionUiToolCall");function jM(e){return e===void 0||typeof e=="number"&&Number.isFinite(e)&&e>=0}o(jM,"isOptionalHistoryTimestamp");function xg(e){return!lt(e)||typeof e.type!="string"?!1:e.type==="tool_group"?jM(e.timestamp)&&Array.isArray(e.tools)&&e.tools.length>0&&e.tools.every(qj):Uj.has(e.type)&&(e.outputId===void 0||typeof e.outputId=="string")&&(e.textRevision===void 0||typeof e.textRevision=="number"&&Number.isSafeInteger(e.textRevision)&&e.textRevision>=0)&&typeof e.text=="string"&&jM(e.timestamp)&&(e.presentationOnly===void 0||e.presentationOnly===!0)&&(e.sidecarVerdict===void 0||e.sidecarVerdict==="revise"||e.sidecarVerdict==="blocked")&&(e.sidecarDelivery===void 0||e.sidecarDelivery==="synthetic-user-message"||e.sidecarDelivery==="budget-exhausted"||e.sidecarDelivery==="terminal-block")&&(e.icon===void 0||typeof e.icon=="string")&&(e.compactText===void 0||typeof e.compactText=="string")}o(xg,"isKodaXSessionUiHistoryItem");var Xj=1e3;function Ji(e,t){let n=Number.isInteger(e)&&e>=0?e:0;if(!Array.isArray(t))return n;let r=t.reduce((i,s)=>xg(s)&&s.type!=="tool_group"&&s.presentationOnly===!0?i+1:i,0);return n+r}o(Ji,"countResumableSessionItems");async function Rf(e,t){return(await e.list(t,{limit:Xj})).find(r=>r.msgCount>0)}o(Rf,"findMostRecentResumableSession");import{createHash as yI}from"node:crypto";var Yj=16,Jj=4*1024,KM=512,Qj=8,zM="kodax-conversation-entry-chain-v1\0",Zj="kodax-conversation-history-v2\0";function wI(){return`sha256:${yI("sha256").update(zM).digest("hex")}`}o(wI,"emptyConversationEntryChain");function Mf(e,t){let n=e;for(let r of t){let i=JSON.stringify(r);n=`sha256:${yI("sha256").update(zM).update(n).update(`${Buffer.byteLength(i,"utf8")}:`).update(i).digest("hex")}`}return n}o(Mf,"extendConversationEntryChain");function Wl(e){return Mf(wI(),e)}o(Wl,"createConversationEntryChain");function jl(e,t=Wl(e.entries)){return`sha256:${yI("sha256").update(Zj).update(t).update(JSON.stringify({sourceRevision:e.sourceRevision,status:e.status,issues:e.issues})).digest("hex")}`}o(jl,"createSessionConversationHistoryRevision");function qM(e){return e.type==="message"||e.type==="compaction"||e.type==="branch_summary"}o(qM,"isThreadEntry");function Af(e){return e._source==="managed-run-context"||e._source==="managed-runtime-context"}o(Af,"isManagedContextMessage");function Ga(e){return e.type!=="message"?!1:!Af(e.message)}o(Ga,"isOrdinaryConversationMessageEntry");function Ig(e,t,n){let r=[],i=new Set,s=t.get(e),a=s!==void 0,c=0;for(;s!==void 0;){if(c%256===0&&n?.(),c+=1,i.has(s.id)){a=!1;break}if(i.add(s.id),r.push(s),s.parentId===null)break;let l=t.get(s.parentId);l===void 0&&(a=!1),s=l}return{entries:r.reverse(),complete:a}}o(Ig,"threadPath");function SI(e,t,n,r){let i=Ib(e.entries,t.lookup,r),s=[];for(let a=0;a<e.entries.length;a+=1){a>0&&a%256===0&&r?.();let c=e.entries[a];if(!Ga(c))continue;let l=i.get(c.id);if(l===void 0){s.push(c);continue}let u={...c,message:l.message,logicalId:l.logicalId,sourceEntryId:l.sourceEntryId};n&&t.restoredEntries.set(c.id,u),s.push(u)}return s}o(SI,"ordinaryPathMessages");function Cg(e){return vg(e).length>0}o(Cg,"hasExplicitProvenance");function vg(e){return[...new Set([...e.logicalId!==void 0&&e.logicalId!==e.id?[e.logicalId]:[],...e.sourceEntryId!==void 0&&e.sourceEntryId!==e.id?[e.sourceEntryId]:[]])]}o(vg,"explicitProvenanceKeys");function hI(e,t){let n=new Set([e.id,e.logicalId,e.sourceEntryId]);return vg(t).every(r=>n.has(r))}o(hI,"provenanceMatches");function eU(e,t,n){let r=-1;for(let s=0;s<t.length;s+=1)if(s>0&&s%256===0&&n?.(),Cg(t[s])){r=s;break}if(r<0){let s=[],a=Math.max(0,e.length-t.length);for(let l=a;l<e.length;l+=1)l>a&&l%256===0&&n?.(),s.push(ks(e[l].message));let c=[];for(let l=0;l<t.length;l+=1)l>0&&l%256===0&&n?.(),c.push(ks(t[l].message));return xI(s,c,n).length>0}let i=Math.max(0,e.length-t.length);for(let s=0;s<e.length;s+=1){s%256===0&&n?.();let a=e[s],c=s-r;if(c<i||!hI(a,t[r]))continue;let l=e.length-c,u=l<=t.length;for(let d=0;u&&d<l;d+=1){d>0&&d%256===0&&n?.();let p=e[c+d],m=t[d];u=Cg(m)?hI(p,m):Va(p.message,m.message)}if(u)return!0}return!1}o(eU,"retainedSuffixMatches");function tU(e,t,n,r,i,s){let a=[],c=new Map,l=new Map;for(let g=0;g<e.length;g+=1){g>0&&g%256===0&&s?.();let S=e[g];qM(S)&&(l.set(S.id,a.length),a.push(S),c.set(S.id,S))}let u=new Set;for(let g=0;g<a.length;g+=1){g>0&&g%256===0&&s?.();let S=a[g].parentId;S!==null&&u.add(S)}let d=[];for(let g=0;g<a.length;g+=1){g>0&&g%256===0&&s?.();let S=a[g];u.has(S.id)||d.push({leaf:S,path:Ig(S.id,c,s)})}let p=[];for(let g=0;g<d.length;g+=1)g>0&&g%256===0&&s?.(),d[g].path.complete||p.push(d[g]);if(p.length>0)return r.push({code:"lineage_path_incomplete",message:`A candidate predecessor path for compaction ${t.id} is incomplete.`,entryIds:[t.id,...p.map(g=>g.leaf.id)]}),[];let m=[];for(let g=0;g<d.length;g+=1){g>0&&g%256===0&&s?.();let S=d[g];XM(S.path,a.length,l,s)||m.push(S)}if(m.length>0)return r.push({code:"lineage_path_incomplete",message:`A candidate predecessor path for compaction ${t.id} is not append ordered.`,entryIds:[t.id,...m.map(g=>g.leaf.id)]}),[];if(t.firstKeptEntryId===void 0)return d;if(n.firstPhysicalMessageEntryId!==t.firstKeptEntryId)return r.push({code:"compaction_boundary_invalid",message:`Compaction ${t.id} does not identify its first retained message.`,entryIds:[t.id,t.firstKeptEntryId]}),[];let h=[];for(let g=0;g<d.length;g+=1){g>0&&g%256===0&&s?.();let S=d[g],T=SI(S.path,i,!1,s);eU(T,n.messages,s)&&h.push(S)}return h.length===0&&d.length>0&&r.push({code:"compaction_boundary_invalid",message:`Compaction ${t.id} retained suffix conflicts with every predecessor branch.`,entryIds:[t.id,...n.messages.map(g=>g.id)]}),h}o(tU,"compactionPredecessorCandidates");function nU(e,t,n,r,i,s){let a=tU(e,t,n,r,i,s),c=[...new Map(a.map(l=>[l.leaf.id,l.leaf])).values()];if(c.length===1)return c[0];r.push({code:c.length===0?"compaction_predecessor_missing":"compaction_predecessor_ambiguous",message:c.length===0?`No topology-proven predecessor was retained for compaction ${t.id}.`:`Compaction ${t.id} has multiple possible predecessor branches.`,entryIds:[t.id,...c.map(l=>l.id)]})}o(nU,"resolveCompactionPredecessor");function rU(e,t,n){if(t.firstPhysicalMessageEntryId!==e.firstKeptEntryId)return[];let r=t.messages,i=-1;for(let c=0;c<r.length;c+=1)if(c>0&&c%256===0&&n?.(),!Cg(r[c])){i=c;break}let s=i<0?r.length:i;if(s===0)return[];for(let c=s;c<r.length;c+=1)if(c>s&&c%256===0&&n?.(),Cg(r[c]))return[];let a=[];for(let c=0;c<s;c+=1)c>0&&c%256===0&&n?.(),a.push(r[c]);return a}o(rU,"leadingExplicitRetainedCopies");function XM(e,t,n,r){let i=-1;for(let s=0;s<e.entries.length;s+=1){s>0&&s%256===0&&r?.();let a=e.entries[s],c=n.get(a.id);if(c===void 0||c>=t||c<=i)return!1;i=c}return!0}o(XM,"isAppendOrderedPriorPath");function iU(e,t,n,r,i,s,a,c){let l=rU(e,t,c),u=l.at(-1),d=u===void 0?void 0:vg(u)[0];if(u===void 0||d===void 0)return[];let p=[],m=s.get(d)??[];for(let g=0;g<m.length;g+=1){c?.();let S=m[g];if((i.get(S.id)??Number.MAX_SAFE_INTEGER)>=n)continue;let T=Ig(S.id,r,c),x=SI(T,a,!1,c);if(!T.complete||!XM(T,n,i,c))continue;let I=Math.max(0,x.length-l.length),v=[];for(let _=I;_<x.length;_+=1)_>I&&_%256===0&&c?.(),v.push(x[_]);let k=v.length===l.length;for(let _=0;k&&_<v.length;_+=1){_>0&&_%256===0&&c?.();let H=v[_],$=l[_];k=hI(H,$)&&Va(H.message,$.message)}k&&p.push(S)}let h=new Map;for(let g=0;g<p.length;g+=1){g>0&&g%256===0&&c?.();let S=p[g];h.set(S.id,S)}return[...h.values()]}o(iU,"explicitCompactionPredecessorCandidates");function oU(e,t){let n=new Map;for(let r=0;r<e.length;r+=1){r>0&&r%256===0&&t?.();let i=e[r];if(Ga(i))for(let s of new Set([i.id,i.logicalId,i.sourceEntryId])){if(s===void 0)continue;let a=n.get(s)??[];a.push(i),n.set(s,a)}}return n}o(oU,"indexMessagesByIdentity");function sU(e,t,n){let r=e;for(let i=0;i<Qj;i+=1){let s=r.sourceEntryId;if(s===void 0||s===r.id)return e;if(t.has(s))return r===e?e:{...e,sourceEntryId:s};let a=n.byId(s);if(a?.type!=="message"||Af(a.message)||Ef(a)!==Ef(e)||!Va(a.message,e.message))return e;r=a}return e}o(sU,"withPredecessorSource");function aU(e,t,n,r){let i=[],s=new Map,a=new Map,c=[];for(let g=0;g<e.entries.length;g+=1){g>0&&g%256===0&&r?.();let S=e.entries[g];a.set(S.id,g),qM(S)&&(i.push(S),s.set(S.id,S),Ga(S)&&c.push(S.id))}if(e.activeEntryId===null&&c.length>0)return t.push({code:"active_entry_missing",message:"Conversation lineage contains messages but has no active entry.",entryIds:c}),{epochs:[]};let l=oU(i,r),u=new Map,d=0;for(let g=0;g<e.entries.length;g+=1){g>0&&g%256===0&&r?.();let S=e.entries[g];S.type==="compaction"&&S.parentId===null&&(u.set(S.id,d),d=g)}let p=[],m=new Set,h=e.activeEntryId===null?{entries:[],complete:!0}:Ig(e.activeEntryId,s,r);for(;h.entries.length>0;){let g=h.entries[0];if(m.has(g.id)){h={entries:[],complete:!1};break}m.add(g.id);let S=h.entries.find(J=>J.type==="message")?.id,T=SI(h,n,!0,r),x=g.type==="compaction"&&g.reason!=="rewind",I=a.get(g.id)??0,v=u.get(g.id)??0,k=[];for(let J=v;x&&J<I;J+=1)J>v&&J%256===0&&r?.(),k.push(e.entries[J]);let _=new Set(k.map(J=>J.id)),H=x?T.map(J=>sU(J,_,n.lookup)):T,$={root:g,messages:H,...S!==void 0?{firstPhysicalMessageEntryId:S}:{}};if(p.push($),g.type!=="compaction"||g.reason==="rewind")break;let P=[],z=nU(k,g,$,P,n,r);if(z===void 0){let J=iU(g,$,I,s,a,l,n,r);J.length===1?[z]=J:(t.push(...P),J.length>1&&t.push({code:"compaction_predecessor_ambiguous",message:`Compaction ${g.id} provenance identifies multiple predecessor copies.`,entryIds:[g.id,...J.map(L=>L.id)]}))}if(z===void 0){if(h.complete)return{epochs:p.reverse(),truncatedAt:g.id};break}h=Ig(z.id,s,r)}return h.complete||t.push({code:"lineage_path_incomplete",message:"Conversation lineage contains a missing parent or parent cycle.",entryIds:h.entries.map(g=>g.id)}),{epochs:p.reverse()}}o(aU,"conversationEpochs");function ks(e){return JSON.stringify([e.role,e.content,e._synthetic===!0,e._source,e._taskResult,e._taskResults])}o(ks,"messageFingerprint");function xI(e,t,n){if(e.length===0||t.length===0)return[];let r=e.slice(Math.max(0,e.length-t.length)),i=[...t,void 0,...r],s=new Array(i.length).fill(0);for(let l=1;l<i.length;l+=1){l%256===0&&n?.();let u=s[l-1];for(;u>0&&i[l]!==i[u];)u=s[u-1];i[l]===i[u]&&(u+=1),s[l]=Math.min(u,t.length)}let a=[],c=s.at(-1)??0;for(;c>0;)a.push(c),c=s[c-1]??0;return a}o(xI,"prefixSuffixOverlapLengths");function Va(e,t){return e===t||ks(e)===ks(t)}o(Va,"messagesEqual");function Ef(e){return e.logicalId??e.id}o(Ef,"logicalIdentity");function YM(e,t){return Tg(e,t).groups}o(YM,"explicitPriorGroups");function Tg(e,t){let n=vg(e),r=n.filter(s=>!t.has(s)),i=[...new Set(n.flatMap(s=>{let a=t.get(s);return a===void 0?[]:[a]}))];return{keys:n,groups:i,unresolvedKeys:r}}o(Tg,"explicitPriorGroupResolution");function kf(e,t,n){for(let r of[e.id,Ef(e),e.sourceEntryId])r!==void 0&&!n.has(r)&&n.set(r,t)}o(kf,"registerEntryIdentities");function gI(e,t){return e.sourceEntryId!==void 0&&e.sourceEntryId!==e.id&&t?.has(e.sourceEntryId)!==!0?[e.sourceEntryId,e.id]:[e.id]}o(gI,"physicalAuditEntryIds");function cU(e,t,n){let r=new Set(e.auditEntryIds),i=[];for(let s of e.auditEntryIds){let a=t.get(s);for(;a?.sourceEntryId!==void 0;){let c=t.get(a.sourceEntryId);if(!c||r.has(c.id))break;let l=n.get(c.id);if(l!==void 0&&l!==e||!Va(a.message,c.message)||a.logicalId!==void 0&&a.logicalId!==a.id&&Ef(a)!==Ef(c))break;r.add(c.id),i.push(c.id),a=c}}return[...i.reverse(),...e.auditEntryIds]}o(cU,"expandPhysicalProvenance");function lU(e,t,n,r){let i=e.map(l=>cU(l,t,n)),s=new Map;for(let l of i)for(let u of l)s.set(u,(s.get(u)??0)+1);let a=new Set,c=i.map((l,u)=>{let d=new Set(e[u].auditEntryIds);return l.filter(p=>d.has(p)||s.get(p)===1?!0:(a.add(p),!1))});for(let l of a)r.push({code:"logical_identity_conflict",message:`Physical provenance ${l} is claimed by multiple conversation records.`,entryIds:[l]});return c}o(lU,"resolvePhysicalProvenance");function uU(e,t,n,r,i,s){let a=new Map,{messages:c}=t,l=e.firstKeptEntryId;if(l===void 0||n.length===0||c.length===0)return a;if(t.firstPhysicalMessageEntryId!==l)return i.push({code:"compaction_boundary_invalid",message:`Compaction ${e.id} does not identify the first retained message.`,entryIds:[e.id,l]}),a;let u=xI(n.slice(-c.length).map(v=>ks(v.source.message)),c.map(v=>ks(v.message)),s),d=!1,p=c.flatMap((v,k)=>{let _=Tg(v,r);return _.keys.length===0?[]:[{index:k,resolution:_}]}),m=p[0],h=m===void 0?u:u.filter(v=>v<=m.index),g;if(m!==void 0){let{index:v,resolution:k}=m,_=k.groups.length===1?k.groups[0].index:-1,H=n.length+v-_;g=k.unresolvedKeys.length===0&&k.groups.length===1&&_>=0&&u.includes(H)&&H>v?H:void 0,g===void 0&&u.some($=>$>v)&&(d=!0)}for(let v of p.slice(1)){if(g===void 0||g<=v.index)continue;let{resolution:k}=v,_=k.groups.length===1?k.groups[0].index:-1;(k.unresolvedKeys.length>0||k.groups.length!==1||_<0||n.length+v.index-_!==g)&&(d=!0,g=void 0)}let T=[...h,...g===void 0?[]:[g]].map(v=>n.length-v),x=YM(c[0],r);if(T.length===0&&x.length===1&&!Va(x[0].source.message,c[0].message))return a;if(d&&i.push({code:"logical_identity_conflict",message:`Compaction ${e.id} contains provenance keys that name different history records.`,entryIds:[e.id,...c.map(v=>v.id)]}),T.length!==1)return i.push({code:"compaction_boundary_invalid",message:`Compaction ${e.id} has no unique retained suffix.`,entryIds:[e.id,...c.map(v=>v.id)]}),a;let I=T[0];for(let v=I;v<n.length;v+=1)a.set(c[v-I].id,n[v]);return a}o(uU,"provenLegacyOverlap");function dU(e,t,n,r){let[i=0]=xI(t.slice(-e.length).map(s=>ks(s.source.message)),e.map(s=>ks(s.message)),r);return e.slice(0,i).filter(s=>YM(s,n).length===0)}o(dU,"longestUnprovenOverlap");function fU(e,t,n,r,i){let s=t.get(e.id);if(s!==void 0){let d=Tg(e,r);if(d.unresolvedKeys.length>0||d.groups.length>1||d.groups.length===1&&d.groups[0]!==s){i.push({code:"logical_identity_conflict",message:`Transcript provenance for ${e.id} does not identify its topology-proven record.`,entryIds:[s.source.id,e.id]});let p={index:n.length,source:e,auditEntryIds:gI(e,r)};n.push(p),kf(e,p,r);return}else{s.auditEntryIds.push(e.id),kf(e,s,r);return}}let a=Tg(e,r),c=a.groups,l=a.keys.length>0&&a.unresolvedKeys.length===0&&c.length===1?c[0]:void 0;if(l!==void 0&&Va(l.source.message,e.message)){l.auditEntryIds.push(e.id),kf(e,l,r);return}c.length>0&&(a.unresolvedKeys.length>0||c.length!==1||l===void 0||!Va(l.source.message,e.message))&&i.push({code:"logical_identity_conflict",message:`Transcript provenance for ${e.id} is conflicting or has a different payload.`,entryIds:[...c.map(d=>d.source.id),e.id]});let u={index:n.length,source:e,auditEntryIds:gI(e,r)};n.push(u),kf(e,u,r)}o(fU,"appendConversationMessage");function pU(e){return e.some(t=>t.code==="legacy_overlap_ambiguous"||t.code==="compaction_boundary_invalid"||t.code==="compaction_predecessor_ambiguous"||t.code==="logical_identity_conflict")?"ambiguous":e.length>0?"partial":"resolved"}o(pU,"historyStatus");function JM(e){let t=new Map;for(let n of e){let r=t.get(n.code)??{message:n.message,occurrenceCount:0,entryCount:0,entryIds:[],evidenceBytes:0};r.occurrenceCount+=1,r.entryCount+=n.entryIds.length;for(let i of n.entryIds)r.entryIds.length<Yj&&!r.entryIds.includes(i)&&r.evidenceBytes+Buffer.byteLength(i,"utf8")<=Jj&&(r.entryIds.push(i),r.evidenceBytes+=Buffer.byteLength(i,"utf8"));t.set(n.code,r)}return[...t.entries()].map(([n,r])=>({code:n,message:r.message.length<=KM?r.message:`${r.message.slice(0,KM-1)}\u2026`,occurrenceCount:r.occurrenceCount,entryCount:r.entryCount,entryIds:r.entryIds}))}o(JM,"summarizeConversationIssues");function Ka(e,t,n){return QM(e,t,n).history}o(Ka,"buildSessionConversationHistory");function QM(e,t,n){let r=[];n?.();let i={lookup:xb(e.entries,n),restoredEntries:new Map},{epochs:s,truncatedAt:a}=aU(e,r,i,n),c=a!==void 0&&s.some(x=>x.messages.length>0),l=r.length;c&&r.push({code:"compaction_history_truncated",message:`Conversation history before compaction ${a} cannot be proven and is omitted.`,entryIds:[a]});let u=!c&&r.some(x=>x.code==="active_entry_missing"||x.code==="compaction_boundary_invalid"||x.code==="compaction_predecessor_ambiguous"||x.code==="compaction_predecessor_missing"||x.code==="lineage_path_incomplete"),d=e.entries.filter(Ga),p=new Set(d.map(x=>x.id));if(u){let x=new Map;for(let I of d){let v=I.sourceEntryId;v===void 0||p.has(v)||x.set(v,(x.get(v)??0)+1)}for(let[I,v]of x)v>1&&p.add(I)}let m=u?d.map((x,I)=>({index:I,source:x,auditEntryIds:gI(x,p)})):[],h=new Map;if(u)for(let x of m)kf(x.source,x,h);for(let x of s){if(u)break;let I=x.root,v=I.type==="compaction"&&I.reason!=="rewind"?uU(I,x,m,h,r,n):new Map;if(I.type==="compaction"&&I.firstKeptEntryId===void 0){let k=dU(x.messages,m,h,n);k.length>0&&r.push({code:"legacy_overlap_ambiguous",message:`Legacy compaction ${I.id} overlaps earlier history without durable provenance.`,entryIds:k.map(_=>_.id)})}for(let k=0;k<x.messages.length;k+=1){k%256===0&&n?.();let _=x.messages[k];fU(_,v,m,h,r)}}let g=new Map(d.map(x=>[x.id,x])),S=u?m.map(x=>x.auditEntryIds):lU(m,g,h,r),T=m.map((x,I)=>({boundaryId:x.source.id,auditEntryIds:S[I],message:x.source.message}));return{history:{sourceRevision:t,status:pU(c?r.slice(l):r),entries:T,issues:JM(r)},restoredEntries:i.restoredEntries}}o(QM,"buildConversationHistoryWithRestorations");function ZM(e,t,n,r){r?.();let i={...e,activeEntryId:t},s=Bc(i,t,r);if(s.at(-1)?.id!==t)return null;let a=wo(i,t,r);if(a===null)return null;let c=Bc(a,a.activeEntryId,r);if(c.length!==s.length)return null;let l=new Map(s.map((P,z)=>(z>0&&z%256===0&&r?.(),[P.id,c[z].id]))),u={...a,entries:a.entries.map((P,z)=>{z>0&&z%256===0&&r?.();let J=s[z];return P.type==="compaction"&&J?.type==="compaction"&&J.firstKeptEntryId!==void 0?{...P,firstKeptEntryId:l.get(J.firstKeptEntryId)}:P})},d=s[0];if(d?.type!=="compaction"||d.reason==="rewind")return u;let{history:p,restoredEntries:m}=QM(i,n,r);if(p.status!=="resolved"||d.firstKeptEntryId===void 0)return null;let h=[],g=new Set,S=-1,T=!1;for(let P=0;P<s.length;P+=1){P>0&&P%256===0&&r?.();let z=s[P];z.id===d.firstKeptEntryId&&(T=!0),Ga(z)&&(T&&S<0&&(S=h.length),h.push(z),g.add(z.id))}if(S<0)return null;let x=new Map;for(let P=0;P<p.entries.length;P+=1){P>0&&P%256===0&&r?.();let z=p.entries[P].auditEntryIds;for(let J=0;J<z.length;J+=1){J>0&&J%256===0&&r?.();let L=z[J];x.set(L,P)}}let I=-1;for(let P=S;P<h.length;P+=1){P>S&&P%256===0&&r?.();let z=h[P],J=x.get(z.id);if(J===void 0)return null;let L=!1,W=p.entries[J].auditEntryIds;for(let N=0;N<W.length;N+=1)if(N>0&&N%256===0&&r?.(),!g.has(W[N])){L=!0;break}if(!L)break;if(I>=0&&J!==I+1)return null;I=J}if(I<0)return null;let v=new Map;for(let P=0;P<e.entries.length;P+=1){P>0&&P%256===0&&r?.();let z=e.entries[P];v.set(z.id,z)}let k=null,_=[];for(let P=0;P<=I;P+=1){P>0&&P%256===0&&r?.();let z=p.entries[P],J;for(let q=0;q<z.auditEntryIds.length;q+=1){q>0&&q%256===0&&r?.();let B=z.auditEntryIds[q];if(g.has(B)){J=B;break}}let L=J??z.boundaryId,W=L===void 0?void 0:m.get(L)??v.get(L);if(W?.type!=="message")return null;let N={...W,parentId:k};_.push(N),k=N.id}let H=_.at(-1);if(H===void 0)return null;let $=wo({version:2,activeEntryId:H.id,entries:_},void 0,r);return $===null?null:{version:2,activeEntryId:u.activeEntryId,entries:[...$.entries,...u.entries]}}o(ZM,"forkSessionConversationLineage");function eA(e,t,n){if(n?.(),e.length===0)return{sourceRevision:t,status:"resolved",entries:[],issues:[]};let r={code:"lineage_unavailable",message:"This legacy Session has messages but no lineage identity metadata.",entryIds:[]},i=[];for(let s=0;s<e.length;s+=1){s>0&&s%256===0&&n?.();let a=e[s];Af(a)||i.push({auditEntryIds:[],message:a})}return{sourceRevision:t,status:"partial",entries:i,issues:JM([r])}}o(eA,"buildLineageUnavailableConversationHistory");import{createHash as vI,randomUUID as fA}from"node:crypto";import Ur from"node:fs/promises";import Sn from"node:path";import{createHash as CI}from"node:crypto";var tA={main:0,islands:1,legacy_archive:2},Ul=64*1024;function II(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(II,"isRecord");function nA(e){let t=e.replace(/\\/g,"/");if(t.length===0||t.startsWith("/")||t.split("/").some(n=>n===".."))throw new Error(`Invalid Session source-relative path: ${e}`);return t}o(nA,"normalizeRelativePath");function mU(e,t){return CI("sha256").update("kodax-session-source-file-v1\0").update(`${e}:${Buffer.byteLength(t,"utf8")}:${t}`).digest("hex")}o(mU,"initialFileChain");function hU(e,t){return CI("sha256").update("kodax-session-source-chunk-v1\0").update(e,"hex").update(t).digest("hex")}o(hU,"extendChunkChain");function rA(e,t){let n=e,r=0,i=0;for(;t.length-i>=Ul;)n=hU(n,t.subarray(i,i+Ul)),r+=1,i+=Ul;return{chain:n,count:r,tail:t.subarray(i)}}o(rA,"consumeCompleteChunks");function iA(e,t){return tA[e.kind]-tA[t.kind]||e.relativePath.localeCompare(t.relativePath)}o(iA,"compareFileStates");function oA(e){let t=e.map(n=>{let r=nA(n.relativePath),i=rA(mU(n.kind,r),n.bytes);return{kind:n.kind,relativePath:r,byteLength:n.bytes.length,chunkCount:i.count,chain:i.chain,tail:i.tail.toString("base64")}}).sort(iA);if(new Set(t.map(n=>n.kind)).size!==t.length)throw new Error("Duplicate Session source file kind");return{version:1,files:t}}o(oA,"createSessionSourceRevisionState");function Es(e){let t=CI("sha256");t.update("kodax-session-source-bundle-v2\0");for(let n of e.files)t.update(`${n.kind}:${Buffer.byteLength(n.relativePath,"utf8")}:${n.relativePath}:${n.byteLength}:${n.chunkCount}:${n.chain}:`),t.update(Buffer.from(n.tail,"base64"));return`sha256:${t.digest("hex")}`}o(Es,"createSessionSourceRevision");function sA(e,t,n){if(n.length===0)return e;if(n[0]!==10)return;let r=nA(t),i=e.files.findIndex(l=>l.kind==="main"&&l.relativePath===r);if(i<0)return;let s=e.files[i],a=rA(s.chain,Buffer.concat([Buffer.from(s.tail,"base64"),n])),c=[...e.files];return c[i]={...s,byteLength:s.byteLength+n.length,chunkCount:s.chunkCount+a.count,chain:a.chain,tail:a.tail.toString("base64")},{version:1,files:c}}o(sA,"extendSessionMainSourceRevisionState");function aA(e){if(!II(e)||e.version!==1||!Array.isArray(e.files)||!e.files.some(r=>II(r)&&r.kind==="main"))return!1;let t,n=new Set;for(let r of e.files){if(!II(r))return!1;let i=r.kind;if(i!=="main"&&i!=="islands"&&i!=="legacy_archive"||typeof r.relativePath!="string"||r.relativePath.length===0||r.relativePath.includes("\\")||r.relativePath.startsWith("/")||r.relativePath.split("/").some(c=>c==="..")||!Number.isSafeInteger(r.byteLength)||Number(r.byteLength)<0||!Number.isSafeInteger(r.chunkCount)||Number(r.chunkCount)<0||typeof r.chain!="string"||!/^[0-9a-f]{64}$/.test(r.chain)||typeof r.tail!="string"||n.has(i))return!1;let s=Buffer.from(r.tail,"base64");if(s.length>=Ul||s.toString("base64")!==r.tail||Number(r.chunkCount)!==Math.floor(Number(r.byteLength)/Ul)||s.length!==Number(r.byteLength)%Ul)return!1;let a=r;if(t!==void 0&&iA(t,a)>=0)return!1;n.add(i),t=a}return!0}o(aA,"isSessionSourceRevisionState");import bg from"node:fs/promises";import _f from"node:path";var Lo=".conversation-cache.",cA=`${Lo}json`,Ms=class extends Error{static{o(this,"ConversationPageCacheCleanupError")}directory;cleanupCause;constructor(t,n){super(`Unable to remove recoverable Conversation page caches from ${t}`),this.directory=t,this.cleanupCause=n,this.name="ConversationPageCacheCleanupError"}};function Rg(e){let t=e.lastIndexOf(Lo);if(t<=0)return;let n=e.slice(t+Lo.length);if(!(n!=="json"&&!(n.startsWith("json.")&&n.endsWith(".tmp"))&&!n.endsWith(".data")&&!n.endsWith(".index")))return e.slice(0,t)}o(Rg,"cacheArtifactSessionId");async function Tr(e){let t=_f.dirname(e),n=_f.basename(e,_f.extname(e)),r;try{r=await bg.readdir(t)}catch(i){if(i.code==="ENOENT")return;throw i}await Promise.all(r.filter(i=>Rg(i)===n).map(i=>bg.rm(_f.join(t,i),{force:!0})))}o(Tr,"removeConversationPageCache");async function kg(e){let t;try{t=await bg.readdir(e,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;throw new Ms(e,n)}try{await Promise.all(t.filter(n=>!n.isDirectory()&&Rg(n.name)!==void 0).map(n=>bg.rm(_f.join(e,n.name),{force:!0})))}catch(n){throw new Ms(e,n)}}o(kg,"removeConversationPageCachesInDirectory");var pA=10,Vr=24,gU=1024*1024,yU=1024*1024,wU=1024*1024,SU=4*1024*1024,bI=128*1024,xU=7,Bt=class extends Error{static{o(this,"ConversationPageCacheStaleError")}constructor(t){super(t),this.name="ConversationPageCacheStaleError"}},Oo=class extends Error{static{o(this,"ConversationPageCacheCapacityError")}constructor(){super("Conversation page capacity exceeded"),this.name="ConversationPageCacheCapacityError"}};function Pf(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(Pf,"isRecord");function Eg(e){if(e?.aborted)throw new Bt("Conversation page read cancelled")}o(Eg,"throwIfAborted");function RI(e){return e.slice(0,-Sn.extname(e).length)+cA}o(RI,"cacheManifestPath");function lA(e,t,n){return`${e.slice(0,-Sn.extname(e).length)}${Lo}${t}.${n}`}o(lA,"cacheGenerationPath");function uA(e,t,n){let r=Sn.basename(e,Sn.extname(e));return Sn.basename(t)===t&&t.startsWith(`${r}${Lo}`)&&t.endsWith(`.${n}`)}o(uA,"isSafeCacheFileName");function IU(e){if(!Pf(e))return!1;let t=new Set(["active_entry_missing","compaction_boundary_invalid","compaction_history_truncated","compaction_predecessor_ambiguous","compaction_predecessor_missing","legacy_overlap_ambiguous","lineage_path_incomplete","lineage_unavailable","logical_identity_conflict"]);return typeof e.code=="string"&&t.has(e.code)&&typeof e.message=="string"&&Number.isSafeInteger(e.occurrenceCount)&&Number(e.occurrenceCount)>=0&&Number.isSafeInteger(e.entryCount)&&Number(e.entryCount)>=0&&Array.isArray(e.entryIds)&&e.entryIds.every(n=>typeof n=="string")}o(IU,"isConversationIssue");function CU(e){return Pf(e)&&(e.surface===void 0||typeof e.surface=="string")&&(e.profileId===void 0||typeof e.profileId=="string")}o(CU,"isConversationPageCacheAdmission");function mA(e){let t=vI("sha256").update("kodax-conversation-identity-filter-v1\0").update(e,"utf8").digest();return Array.from({length:xU},(n,r)=>t.readUInt32LE(r*4)%(bI*8))}o(mA,"identityPositions");function hA(e,t){return mA(t).every(n=>(e[n>>>3]&1<<(n&7))!==0)}o(hA,"identityFilterContains");function gA(e,t){for(let n of mA(t))e[n>>>3]=e[n>>>3]|1<<(n&7)}o(gA,"addIdentityToFilter");function yA(e){return[e.id,e.logicalId,e.sourceEntryId].filter(t=>t!==void 0)}o(yA,"lineageEntryIdentities");function Mg(e){let t=Buffer.alloc(bI);for(let n of e.entries)for(let r of yA(n))gA(t,r);return t.toString("base64")}o(Mg,"createConversationPageIdentityFilter");function kI(e,t){let n=Buffer.from(e,"base64");for(let r of t)for(let i of yA(r))gA(n,i);return n.toString("base64")}o(kI,"extendConversationPageIdentityFilter");function wA(e){if(typeof e!="string")return!1;let t=Buffer.from(e,"base64");return t.length===bI&&t.toString("base64")===e}o(wA,"isIdentityFilter");function SA(e,t){return wA(e)?hA(Buffer.from(e,"base64"),t):!0}o(SA,"conversationPageIdentityFilterContains");function TU(e,t){if(!(!Pf(e)||e.version!==pA)&&!(typeof e.sessionId!="string"||typeof e.generation!="string"||typeof e.sourceRevision!="string"||!aA(e.sourceRevisionState)||Es(e.sourceRevisionState)!==e.sourceRevision||!wA(e.identityFilter)||typeof e.boundaryRevision!="string"||typeof e.revision!="string"||typeof e.entryChain!="string"||e.status!=="resolved"&&e.status!=="partial"&&e.status!=="ambiguous"||!Array.isArray(e.issues)||!e.issues.every(IU)||!Number.isSafeInteger(e.entryCount)||Number(e.entryCount)<0||!Number.isSafeInteger(e.lineageEntryCount)||Number(e.lineageEntryCount)<0||e.activeEntryId!==null&&typeof e.activeEntryId!="string"||!CU(e.admission)||!Number.isSafeInteger(e.chunkBytes)||Number(e.chunkBytes)<=0||Number(e.chunkBytes)>SU||typeof e.dataFile!="string"||!Number.isSafeInteger(e.dataBytes)||Number(e.dataBytes)<0||typeof e.indexFile!="string"||!Number.isSafeInteger(e.indexBytes)||Number(e.indexBytes)<0||!uA(t,e.dataFile,"data")||!uA(t,e.indexFile,"index")||e.dataFile!==`${e.sessionId}${Lo}${e.generation}.data`||e.indexFile!==`${e.sessionId}${Lo}${e.generation}.index`||e.sessionId!==Sn.basename(t,Sn.extname(t))||Number(e.indexBytes)!==Number(e.entryCount)*Vr))return e}o(TU,"parseManifest");function xA(e){return{...e?.surface!==void 0?{surface:e.surface}:{},...e?.profileId!==void 0?{profileId:e.profileId}:{}}}o(xA,"cacheAdmission");async function Vl(e){let t;try{t=await Ur.open(RI(e),"r");let n=(await t.stat()).size;if(n>yU)return;let r=JSON.parse((await za(t,0,n)).toString("utf8"));return TU(r,e)}catch(n){if(n.code==="ENOENT"||n instanceof SyntaxError)return;throw n}finally{await t?.close()}}o(Vl,"readConversationPageCacheManifest");function Ag(e,t){let n=Sn.dirname(e);return{dataPath:Sn.join(n,t.dataFile),indexPath:Sn.join(n,t.indexFile)}}o(Ag,"cachePaths");async function As(e,t){let n=Ag(e,t),[r,i]=await Promise.all([Ur.stat(n.dataPath),Ur.stat(n.indexPath)]);if(r.size!==t.dataBytes||i.size!==t.indexBytes)throw new Bt("Conversation page cache changed")}o(As,"assertCacheFilesStable");async function za(e,t,n){let r=Buffer.allocUnsafe(n),i=0;for(;i<n;){let s=await e.read(r,i,n-i,t+i);if(s.bytesRead===0)throw new Bt("Conversation page cache ended unexpectedly");i+=s.bytesRead}return r}o(za,"readFully");function EI(e,t){let n=e.readBigUInt64LE(t),r=e.readBigUInt64LE(t+12);if(n>BigInt(Number.MAX_SAFE_INTEGER)||r>BigInt(Number.MAX_SAFE_INTEGER))throw new Bt("Conversation page index offset is invalid");return{entryOffset:Number(n),entryLength:e.readUInt32LE(t+8),descriptorOffset:Number(r),descriptorLength:e.readUInt32LE(t+20)}}o(EI,"decodeIndexRecord");function MI(e,t,n){let r=e.entryOffset+e.entryLength,i=e.descriptorOffset+e.descriptorLength,s=Math.ceil(e.entryLength/n),a=Math.min(wU,e.entryLength+s*70+256);if(!Number.isSafeInteger(r)||!Number.isSafeInteger(i)||r>t||i>t||e.descriptorOffset<r||e.descriptorLength>a)throw new Bt("Conversation page index is out of bounds")}o(MI,"assertIndexRecordBounds");function IA(e){let t=Buffer.allocUnsafe(Vr);return t.writeBigUInt64LE(BigInt(e.entryOffset),0),t.writeUInt32LE(e.entryLength,8),t.writeBigUInt64LE(BigInt(e.descriptorOffset),12),t.writeUInt32LE(e.descriptorLength,20),t}o(IA,"encodeIndexRecord");function vU(e){if(!Pf(e)||!Array.isArray(e.chunkDigests)||!e.chunkDigests.every(t=>typeof t=="string"&&/^[0-9a-f]{64}$/.test(t))||e.boundaryId!==void 0&&typeof e.boundaryId!="string"||!Array.isArray(e.sourceKeys)||!e.sourceKeys.every(t=>typeof t=="string"))throw new Bt("Conversation page descriptor is invalid");return{chunkDigests:e.chunkDigests,sourceKeys:e.sourceKeys,...typeof e.boundaryId=="string"?{boundaryId:e.boundaryId}:{}}}o(vU,"parseDescriptor");async function AI(e,t){let n=await za(e,t.descriptorOffset,t.descriptorLength);try{return vU(JSON.parse(n.toString("utf8")))}catch(r){throw r instanceof Bt?r:new Bt("Conversation page descriptor is corrupt")}}o(AI,"readDescriptor");function CA(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(vI("sha256").update(e.subarray(r,Math.min(e.length,r+t))).digest("hex"));return n}o(CA,"entryChunkDigests");function bU(e,t,n){let r=CA(e,n);if(r.length!==t.chunkDigests.length||r.some((i,s)=>i!==t.chunkDigests[s]))throw new Bt("Conversation page cache entry is corrupt")}o(bU,"assertEntryIntegrity");function TA(e){if(e instanceof Bt||e instanceof Oo)return e;let t=new Set(["EACCES","EBADF","EBUSY","EIO","EISDIR","EMFILE","ENFILE","ENOENT","ENOTDIR","EPERM","ESTALE"]);return e instanceof SyntaxError||Pf(e)&&typeof e.code=="string"&&t.has(e.code)?new Bt("Conversation page cache changed or is unavailable"):e instanceof Error?e:new Error(String(e))}o(TA,"normalizeConversationPageCacheReadError");async function _I(e,t,n){let r=await Ur.open(e,n);try{let i=await Ur.open(t,n);return{data:r,index:i}}catch(i){throw await r.close(),i}}o(_I,"openCachePair");async function vA(e,t,n){try{return await RU(e,t,n)}catch(r){throw TA(r)}}o(vA,"readConversationPageCache");async function RU(e,t,n){Eg(n.signal);let r=await Vl(e);if(r===void 0||r.boundaryRevision!==t)return null;if(await n.authorize?.(r.admission),n.expectedRevision!==void 0&&n.expectedRevision!==r.revision)throw new Bt("Conversation history changed; request a fresh page");await As(e,r);let i=Math.min(n.end??r.entryCount,r.entryCount),s=Math.max(0,i-n.limit),a=Ag(e,r),{data:c,index:l}=await _I(a.dataPath,a.indexPath,"r");try{if(n.sourceKeys){let h=await kU(c,l,r,n);return await As(e,r),{revision:r.revision,sourceRevision:r.sourceRevision,status:r.status,issues:structuredClone(r.issues),entries:h,hasMore:!1}}let u=await za(l,s*Vr,(i-s)*Vr),d=[],p=n.reservedBytes+Buffer.byteLength(JSON.stringify({revision:r.revision,sourceRevision:r.sourceRevision,status:r.status,issues:r.issues}),"utf8");if(p>n.maxPageBytes)throw new Oo;for(let h=i-s-1;h>=0;h-=1){Eg(n.signal);let g=s+h,S=EI(u,h*Vr);MI(S,r.dataBytes,r.chunkBytes);let T=await AI(c,S),x=S.entryLength<=n.maxInlineEntryBytes?await za(c,S.entryOffset,S.entryLength):void 0;x!==void 0&&bU(x,T,r.chunkBytes);let I={index:g,...T.boundaryId!==void 0?{boundaryId:T.boundaryId}:{},byteLength:S.entryLength,oversized:S.entryLength>n.maxInlineEntryBytes,...x!==void 0?{entry:JSON.parse(x.toString("utf8"))}:{}},v=Buffer.byteLength(JSON.stringify(I),"utf8");if(p+v>n.maxPageBytes){if(d.length===0)throw new Oo;break}d.unshift(I),p+=v}let m=d[0]?.index??i;return await As(e,r),{revision:r.revision,sourceRevision:r.sourceRevision,status:r.status,issues:structuredClone(r.issues),entries:d,hasMore:m>0,...m>0?{nextEnd:m}:{}}}finally{await Promise.all([c.close(),l.close()])}}o(RU,"readConversationPageCacheInternal");async function kU(e,t,n,r){let i=new Set(r.sourceKeys),s=[],a=r.reservedBytes;for(let c=n.entryCount;c>0&&i.size>0;){let l=Math.max(0,c-256),u=await za(t,l*Vr,(c-l)*Vr);for(let d=c-1;d>=l&&i.size>0;d-=1){Eg(r.signal);let p=EI(u,(d-l)*Vr);MI(p,n.dataBytes,n.chunkBytes);let m=await AI(e,p);if(!m.sourceKeys.some(g=>i.has(g)))continue;for(let g of m.sourceKeys)i.delete(g);let h={index:d,boundaryId:m.boundaryId,byteLength:p.entryLength,oversized:!0};if(a+=Buffer.byteLength(JSON.stringify(h),"utf8"),a>r.maxPageBytes)throw new Oo;s.push(h)}c=l}return s.reverse()}o(kU,"findConversationSourceEntries");async function bA(e,t,n){try{return await EU(e,t,n)}catch(r){throw TA(r)}}o(bA,"readConversationPageCacheChunk");async function EU(e,t,n){Eg(n.signal);let r=await Vl(e);if(r===void 0||r.boundaryRevision!==t)return null;if(await n.authorize?.(r.admission),r.revision!==n.revision)throw new Bt("Conversation history changed; request a fresh page");if(await As(e,r),n.entryIndex>=r.entryCount)return;if(n.offset<0||n.offset%r.chunkBytes!==0)throw new Bt("Conversation entry cursor is invalid");let i=Ag(e,r),{data:s,index:a}=await _I(i.dataPath,i.indexPath,"r");try{let c=await za(a,n.entryIndex*Vr,Vr),l=EI(c,0);MI(l,r.dataBytes,r.chunkBytes);let u=await AI(s,l);if(n.offset>l.entryLength)throw new Bt("Conversation entry cursor is invalid");let d=Math.min(l.entryLength,n.offset+r.chunkBytes),p=await za(s,l.entryOffset+n.offset,d-n.offset);if(vI("sha256").update(p).digest("hex")!==u.chunkDigests[n.offset/r.chunkBytes])throw new Bt("Conversation page cache entry is corrupt");return await As(e,r),{revision:r.revision,entryIndex:n.entryIndex,...u.boundaryId!==void 0?{boundaryId:u.boundaryId}:{},data:p,...d<l.entryLength?{nextOffset:d}:{}}}finally{await Promise.all([s.close(),a.close()])}}o(EU,"readConversationPageCacheChunkInternal");async function TI(e,t){let n=0;for(;n<t.length;){let r=await e.write(t,n,t.length-n);if(r.bytesWritten===0)throw new Error("Conversation page cache write made no progress");n+=r.bytesWritten}}o(TI,"writeFully");function RA(e,t,n){return Buffer.from(JSON.stringify({...e.boundaryId!==void 0?{boundaryId:e.boundaryId}:{},sourceKeys:[...e.message.outputId?[`output:${e.message.outputId}`]:[],...[e.message.inputId,...e.message.inputIds??[]].flatMap(r=>r?[`input:${r}`]:[]),...typeof e.message.content=="string"?[]:e.message.content.flatMap(r=>r.type==="tool_use"?[`tool-use:${r.id}`]:r.type==="tool_result"?[`tool-result:${r.tool_use_id}`]:[])],chunkDigests:CA(t,n)}),"utf8")}o(RA,"createDescriptor");async function MU(e,t,n,r){let{data:i,index:s}=await _I(e,t,"wx"),a=0,c=0,l=[],u=[],d=0,p=o(async()=>{d!==0&&(await Promise.all([TI(i,Buffer.concat(l)),TI(s,Buffer.concat(u))]),l=[],u=[],d=0)},"flush");try{for(let m of n){let h=Buffer.from(JSON.stringify(m),"utf8"),g=RA(m,h,r);l.push(h,g),u.push(IA({entryOffset:a,entryLength:h.length,descriptorOffset:a+h.length,descriptorLength:g.length})),a+=h.length+g.length,c+=Vr,d+=h.length+g.length+Vr,d>=gU&&await p()}return await p(),await Promise.all([i.sync(),s.sync()]),{dataBytes:a,indexBytes:c}}finally{await Promise.all([i.close(),s.close()])}}o(MU,"writeCacheEntries");async function PI(e,t){let n=RI(e),r=`${n}.${process.pid}.${fA()}.tmp`;await Ur.writeFile(r,JSON.stringify(t),{encoding:"utf8",flag:"wx"});try{await Ur.rename(r,n)}finally{await Ur.rm(r,{force:!0})}}o(PI,"replaceManifest");async function AU(e,t){let n=Sn.dirname(e),r=Sn.basename(e,Sn.extname(e)),s=`${`${r}${Lo}`}${t}.`,a=await Ur.readdir(n);await Promise.all(a.filter(c=>Rg(c)===r&&!c.startsWith(s)&&c!==Sn.basename(RI(e))).map(c=>Ur.rm(Sn.join(n,c),{force:!0})))}o(AU,"removeGenerationFiles");async function LI(e,t,n,r,i,s,a){if(Es(n)!==r.sourceRevision)throw new Bt("Conversation source revision state is inconsistent");let c=fA(),l=lA(e,c,"data"),u=lA(e,c,"index");try{let d=await MU(l,u,r.entries,a),p=Wl(r.entries);await PI(e,{version:pA,sessionId:Sn.basename(e,Sn.extname(e)),generation:c,sourceRevision:r.sourceRevision,sourceRevisionState:n,identityFilter:Mg(i),boundaryRevision:t,revision:jl(r,p),entryChain:p,status:r.status,issues:r.issues,entryCount:r.entries.length,lineageEntryCount:i.entries.length,activeEntryId:i.activeEntryId,admission:xA(s),chunkBytes:a,dataFile:Sn.basename(l),dataBytes:d.dataBytes,indexFile:Sn.basename(u),indexBytes:d.indexBytes})}catch(d){throw await Promise.all([Ur.rm(l,{force:!0}),Ur.rm(u,{force:!0})]),d}try{await AU(e,c)}catch(d){process.emitWarning(`Unable to remove an old Conversation page cache generation: ${String(d)}`,{code:"KODAX_CONVERSATION_PAGE_CACHE_GC_FAILED"})}}o(LI,"writeConversationPageCache");async function kA(e,t,n,r,i,s){if(Es(n)!==r.sourceRevision)return!1;let a=await Vl(e);if(a===void 0||a.entryCount!==r.entries.length)return!1;await As(e,a);let c=Wl(r.entries);if(c!==a.entryChain||r.status!==a.status||JSON.stringify(r.issues)!==JSON.stringify(a.issues))return!1;let l=jl(r,c);return await PI(e,{...a,sourceRevision:r.sourceRevision,sourceRevisionState:n,identityFilter:Mg(i),boundaryRevision:t,revision:l,entryChain:c,status:r.status,issues:r.issues,lineageEntryCount:i.entries.length,activeEntryId:i.activeEntryId,admission:xA(s)}),await As(e,a),!0}o(kA,"refreshConversationPageCache");async function dA(e,t){if(t.length===0)return;let n=await Ur.open(e,"a");try{await TI(n,Buffer.concat(t)),await n.sync()}finally{await n.close()}}o(dA,"appendBuffers");async function EA(e,t,n,r,i,s,a){let c=Es(r),l=Ag(e,t);await As(e,t);let u=[],d=[],p=t.dataBytes;for(let g of i){let S=Buffer.from(JSON.stringify(g),"utf8"),T=RA(g,S,t.chunkBytes);u.push(S,T),d.push(IA({entryOffset:p,entryLength:S.length,descriptorOffset:p+S.length,descriptorLength:T.length})),p+=S.length+T.length}await dA(l.dataPath,u),await dA(l.indexPath,d);let m=Mf(t.entryChain,i),h={sourceRevision:c,status:t.status,issues:t.issues,entries:[]};await PI(e,{...t,sourceRevision:c,sourceRevisionState:r,identityFilter:kI(t.identityFilter,s),boundaryRevision:n,revision:jl(h,m),entryChain:m,entryCount:t.entryCount+i.length,lineageEntryCount:t.lineageEntryCount+s.length,activeEntryId:a,dataBytes:p,indexBytes:t.indexBytes+i.length*Vr})}o(EA,"appendConversationPageCache");function MA(e,t,n,r){if(e.status!=="resolved"||e.issues.length>0||e.activeEntryId!==t)return;if(n.length===0)return r===t?[]:void 0;let i=Buffer.from(e.identityFilter,"base64"),s=new Set,a=t,c=[];for(let l of n){if(l.type==="message"&&Af(l.message)){if(l.parentId!==a)return;a=l.id;continue}if(!Ga(l)||l.parentId!==a||l.logicalId!==void 0&&l.logicalId!==l.id||l.sourceEntryId!==void 0||hA(i,l.id)||s.has(l.id))return;c.push({boundaryId:l.id,auditEntryIds:[l.id],message:l.message}),s.add(l.id),a=l.id}return r===a?c:void 0}o(MA,"canAppendConversationPageCache");import Oe from"fs/promises";import ft from"fs";import V from"path";import{createHash as Wo,randomUUID as Zl}from"node:crypto";import{performance as vi}from"node:perf_hooks";import{isDeepStrictEqual as k2}from"node:util";import l_ from"chalk";function rn(e){return typeof e=="string"&&Number.isFinite(Date.parse(e))?e:void 0}o(rn,"validSessionTimestamp");function Gl(e,t,n=e){let r=rn(t),i=new Map,s=o(a=>{if(!(a.type!=="message"||a.message._synthetic||a.message.role!=="user"&&a.message.role!=="assistant"))return rn(a.message.timestamp)??(a.sourceEntryId!==void 0&&i.has(a.sourceEntryId)?i.get(a.sourceEntryId):a.sourceEntryId!==void 0?void 0:rn(a.timestamp))},"messageTime");for(let a of n)i.set(a.id,s(a));for(let a of e){let c=i.get(a.id)??s(a);c!==void 0&&(r===void 0||Date.parse(c)>Date.parse(r))&&(r=c)}return r}o(Gl,"latestSessionMessageAt");function qa(e,t){for(let n of["lastMessageAt","createdAt"]){let r=n==="lastMessageAt"?rn(e.lastMessageAt)??e.createdAt:e.createdAt,i=n==="lastMessageAt"?rn(t.lastMessageAt)??t.createdAt:t.createdAt,s=r===void 0?NaN:Date.parse(r),a=i===void 0?NaN:Date.parse(i);if(Number.isFinite(s)&&Number.isFinite(a)&&s!==a)return a-s;if(Number.isFinite(s)!==Number.isFinite(a))return Number.isFinite(s)?-1:1}return t.id.localeCompare(e.id)}o(qa,"compareSessionRecency");import{randomUUID as _U}from"node:crypto";import Lf from"node:fs/promises";import _g from"node:path";function AA(e){let t=_g.resolve(e).replace(/\\/g,"/");return process.platform==="win32"||process.platform==="darwin"?t.toLowerCase():t}o(AA,"comparableRoot");async function OI(e){let t;try{t=await Lf.readFile(e,"utf8")}catch(r){if(r.code==="ENOENT")return;throw r}let n=JSON.parse(t);if(n===null||typeof n!="object"||typeof n.canonicalRoot!="string")throw new Error(`Invalid project identity manifest at ${e}`);return AA(n.canonicalRoot)}o(OI,"existingCanonicalRoot");async function Pg(e){return await OI(_g.join(e,"project.json"))!==void 0}o(Pg,"projectManifestExists");async function Kl(e,t){if(t.canonicalRoot===null)return;await Lf.mkdir(e,{recursive:!0});let n=_g.join(e,"project.json"),r=AA(t.canonicalRoot),i=await OI(n);if(i!==void 0){if(i!==r)throw new Error(`Conflicting project identity at ${n}`);return}let s=_g.join(e,`.project.${process.pid}.${_U()}.tmp`),a=await Lf.open(s,"wx");try{await a.writeFile(JSON.stringify({canonicalRoot:t.canonicalRoot,displayName:t.displayName,lastUsed:new Date().toISOString()})+`
|
|
85
|
+
`,"utf8"),await a.sync()}finally{await a.close()}try{await Lf.link(s,n)}catch(c){if(c.code!=="EEXIST")throw c;if(await OI(n)!==r)throw new Error(`Conflicting project identity at ${n}`)}finally{await Lf.rm(s,{force:!0})}}o(Kl,"publishProjectManifest");import Jt from"fs/promises";import Of from"fs";import St from"path";import{randomUUID as PU}from"node:crypto";import{setTimeout as LU}from"node:timers/promises";var PA=3,OU=65536,$o=class extends Error{static{o(this,"SessionMigrationCleanupError")}};async function Lg(e,t=!1){for(let n=0;;n++)try{await Jt.rm(e,{force:!0,recursive:t});return}catch(r){let i=r.code;if(n>=3||!["EPERM","EBUSY","EACCES","ENOTEMPTY"].includes(i??""))throw new $o("Session migration cleanup must be retried before a stable read.",{cause:r});await LU(20*(n+1))}}o(Lg,"removeMigrationPath");var $I=o(e=>St.join(e,".layout.json"),"layoutMarkerPath"),_s=o(e=>St.join(e,".migration-lock"),"lockDirPath"),$U=o(e=>St.join(_s(e),"owner.json"),"ownerPath"),$f=o(e=>St.join(e,".migration-journal.jsonl"),"journalPath"),Og=o(e=>St.join(St.dirname(e),"sessions-archive"),"sessionsArchiveDir"),zl=new Map;async function NI(e){let t=_s(e),n=await Jt.lstat(t);if(n.isSymbolicLink())throw new Error("Migration lock ownership is an alias.");return Jt.readFile(n.isDirectory()?$U(e):t,"utf8")}o(NI,"readMigrationOwner");function $g(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")}o($g,"isSessionFile");function LA(e){return e.endsWith(".archive.jsonl")||e.endsWith(".islands.jsonl")?e.slice(0,-14):null}o(LA,"sidecarId");async function NU(e){let t;try{t=await Jt.open(e,"r");let n=[],r=0,i=0;for(;;){let c=Buffer.allocUnsafe(OU),{bytesRead:l}=await t.read(c,0,c.length,i);if(l===0)break;let u=c.subarray(0,l),d=u.indexOf(10),p=d>=0?u.subarray(0,d):u;if(n.push(p),r+=p.length,d>=0)break;i+=l}let s=Buffer.concat(n,r).toString("utf8").trim();if(!s)return null;let a=JSON.parse(s);if(a&&typeof a=="object"&&a._type==="meta"){let c=a;return{gitRoot:typeof c.gitRoot=="string"?c.gitRoot:void 0,runtimeInfo:c.runtimeInfo}}return null}catch{return null}finally{await t?.close()}}o(NU,"readMeta");async function OA(e,t){let n=await NU(e);if(!n)return ti({});let r=n.runtimeInfo!==null&&typeof n.runtimeInfo=="object"?n.runtimeInfo:void 0,i=n.runtimeInfo,s=typeof r?.workspaceRoot=="string"?r.workspaceRoot:n.gitRoot,a=s??(typeof r?.canonicalRepoRoot=="string"?r.canonicalRepoRoot:void 0);if(a&&Of.existsSync(a)){let c=St.resolve(a),l=t.get(c);l===void 0&&(l=cR({cwd:a,timeoutMs:750}),t.set(c,l)),i={...r,canonicalRepoRoot:await l,...s!==void 0?{workspaceRoot:s}:{}}}return ti({gitRoot:n.gitRoot,runtimeInfo:i})}o(OA,"destIdentityFor");async function DU(e){let t=[],n=o(async(r,i)=>{let s=[];try{s=await Jt.readdir(r,{withFileTypes:!0})}catch{return}for(let a of s)!a.isFile()||a.name.startsWith(".")||($g(a.name)||i&&LA(a.name)!==null)&&t.push(St.join(r,a.name))},"pushDir");return await n(e,!0),await n(Og(e),!0),t}o(DU,"collectMigrationSources");function BU(e,t){return St.join(e,t)}o(BU,"targetDirectory");async function HU(e){let t=await DU(e),n=t.filter(a=>$g(St.basename(a))),r=new Set(n.map(a=>`${St.dirname(a)}\0${St.basename(a,".jsonl")}`)),i=[],s=new Map;for(let a of n){let c=St.basename(a,".jsonl"),l=(await OA(a,s)).key,u=BU(e,l);i.push({from:a,to:St.join(u,`${c}.jsonl`),reason:`session\u2192${l}`});for(let d of[".archive.jsonl",".islands.jsonl"]){let p=St.join(St.dirname(a),`${c}${d}`);Of.existsSync(p)&&i.push({from:p,to:St.join(u,`${c}.islands.jsonl`),reason:"sidecar\u2192islands"})}}for(let a of t){let c=LA(St.basename(a));c===null||r.has(`${St.dirname(a)}\0${c}`)||i.push({from:a,to:St.join(e,oS,"orphan-islands",`${c}.islands.jsonl`),reason:"orphan-sidecar\u2192_unknown"})}return i}o(HU,"planMigration");async function FU(e){try{let t=JSON.parse(await Jt.readFile($I(e),"utf8"));return t!==null&&typeof t=="object"&&t.version===PA}catch{return!1}}o(FU,"isMigrated");async function _A(e){await kg(e),await kg(Og(e))}o(_A,"removeLegacyConversationCaches");async function WU(e){try{let t=await NI(e),n=JSON.parse(t);if(!(await Jt.lstat(_s(e))).isDirectory()&&(n.version!==1||typeof n.nonce!="string"||!n.nonce))return!1;if(typeof n.pid=="number"&&Number.isSafeInteger(n.pid)&&n.pid>0&&n.pid!==process.pid)try{process.kill(n.pid,0)}catch(r){if(r.code==="ESRCH")return Yb(_s(e),t)&&await NI(e)===t}return!1}catch{return!1}}o(WU,"lockIsStale");async function $A(e){let t=_s(e),n=zl.get(e);n!==void 0&&(zl.delete(e),await DI(e,n));for(let r=0;r<2;r+=1){let i=PU();try{if(Xb(t,JSON.stringify({version:1,pid:process.pid,nonce:i,startTime:Date.now()})))return i}catch(s){throw s instanceof AggregateError?new $o("Migration owner publication cleanup failed.",{cause:s}):s}if(r===0&&await WU(e)){await Lg(t,!0);continue}return}}o($A,"acquireLock");async function DI(e,t){zl.set(e,t);try{let n=JSON.parse(await NI(e));if(!n||typeof n!="object"||!("nonce"in n)||n.nonce!==t)throw zl.delete(e),new $o("Session migration ownership changed before cleanup.");await Lg(_s(e),!0),zl.delete(e)}catch(n){if(n instanceof $o)throw n;if(n.code==="ENOENT")try{await Jt.lstat(_s(e))}catch(r){if(r.code==="ENOENT"){zl.delete(e);return}throw new $o("Session migration cleanup cannot inspect the retained lock.",{cause:r})}throw new $o("Session migration cleanup ownership is unreadable; original lock retained for retry.",{cause:n})}}o(DI,"releaseLock");async function jU(e){try{if((await Jt.readdir(St.join(e,".write-locks"),{withFileTypes:!0})).some(n=>n.isFile()&&/^[0-9a-f]{64}\.lock$/.test(n.name)))throw new Error("Session layout migration deferred while a Session writer is active")}catch(t){if(t.code==="ENOENT")return;throw t}}o(jU,"assertNoActiveSessionWriters");async function UU(e){let t=new Set;try{let n=await Jt.readFile($f(e),"utf8");for(let r of n.split(`
|
|
86
|
+
`))if(r.trim())try{let i=JSON.parse(r);i.done&&typeof i.from=="string"&&t.add(i.from)}catch{}}catch{}return t}o(UU,"readJournalDone");async function VU(e,t){if(St.resolve(e.from)===St.resolve(e.to))return!1;if(await Jt.mkdir(St.dirname(e.to),{recursive:!0}),Of.existsSync(e.to)){let n=St.dirname(e.from);return n===t||n===Og(t)?(await Jt.unlink(e.from).catch(()=>{}),!0):!1}try{await Jt.rename(e.from,e.to)}catch(n){let r=n.code;if(r==="EXDEV")await Jt.copyFile(e.from,e.to),await Jt.unlink(e.from).catch(()=>{});else if(r!=="ENOENT")throw n}return!0}o(VU,"executeMove");async function GU(e){let t=[],n=o(async r=>{try{for(let i of await Jt.readdir(r,{withFileTypes:!0}))i.isFile()&&$g(i.name)&&t.push(St.join(r,i.name))}catch(i){if(i.code!=="ENOENT")throw i}},"append");return await n(e),await n(St.join(e,"archived")),t}o(GU,"readBucketMainFiles");async function KU(e,t){let n=new Map,r=new Set(t.flatMap(i=>i.reason.startsWith("session\u2192")?[St.dirname(i.to)]:[]));for(let i of r){let s=St.basename(i);if(s===oS)continue;let a=await GU(i),c;for(let l of a){let u=await OA(l,n);if(u.canonicalRoot===null||u.key!==s||c!==void 0&&c.canonicalRoot!==u.canonicalRoot)throw new Error(`Cannot certify mixed project identities in ${i}`);c??=u}c!==void 0&&await Kl(i,c)}}o(KU,"publishBucketManifests");async function zU(e){await Jt.mkdir(e,{recursive:!0});let t=`${$I(e)}.${process.pid}.tmp`,n=JSON.stringify({version:PA,migratedAt:new Date().toISOString(),from:"flat-v1"});await Jt.writeFile(t,n+`
|
|
87
|
+
`,"utf8"),await Jt.rename(t,$I(e))}o(zU,"writeMarker");async function qU(e){let t=Og(e);try{(await Jt.readdir(t)).length===0&&await Jt.rmdir(t).catch(()=>{})}catch{}}o(qU,"retireSessionsArchive");async function XU(e){let t=await $A(e);if(!t)return{moved:0,planned:0};try{await jU(e),await _A(e);let n=await HU(e),r=await UU(e),i=await Jt.open($f(e),"a"),s=0;try{for(let a of n){if($g(St.basename(a.from)))try{await Tr(a.to)}catch(l){throw new Ms(St.dirname(a.to),l)}if(r.has(a.from))continue;let c=await VU(a,e);await i.write(JSON.stringify({from:a.from,to:a.to,done:!0})+`
|
|
88
|
+
`),c&&(s+=1)}}finally{await i.close()}return await qU(e),await _A(e),await KU(e,n),await zU(e),await Lg($f(e)),{moved:s,planned:n.length}}finally{await DI(e,t)}}o(XU,"runMigration");async function Xa(e){try{if(await FU(e)){if(Of.existsSync($f(e))||Of.existsSync(_s(e))){let t=await $A(e);if(t)try{await Lg($f(e))}finally{await DI(e,t)}}return}await XU(e)}catch(t){if(t instanceof Ms||t instanceof $o)throw t}}o(Xa,"ensureLayoutMigrated");import{createHash as YU}from"node:crypto";var DA="@kodax/sdk",FI="session.identity-repair.confirmed.v1",BA="identity-repair:";function Ps(e){return Object.assign(new Error(e),{code:"conflict"})}o(Ps,"repairConflict");function Gr(e){if(Array.isArray(e))return`[${e.map(Gr).join(",")}]`;if(e!==null&&typeof e=="object"){let t=e;return`{${Object.keys(t).sort().filter(n=>t[n]!==void 0).map(n=>`${JSON.stringify(n)}:${Gr(t[n])}`).join(",")}}`}return JSON.stringify(e)??"null"}o(Gr,"stableJson");function Nf(e){return`sha256:${YU("sha256").update(Gr(e)).digest("hex")}`}o(Nf,"digest");function HI(e,t){return`${BA}${Nf([e,t]).slice(7)}`}o(HI,"recordId");function No(e,t=256){return typeof e=="string"&&e.trim().length>0&&e.length<=t}o(No,"nonempty");function BI(e){return typeof e=="string"&&/^sha256:[a-f0-9]{64}$/.test(e)}o(BI,"hash");function NA(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(NA,"object");function Ya(e){return e.type===FI||typeof e.id=="string"&&e.id.startsWith(BA)}o(Ya,"isConfirmedIdentityRepairRecord");function Df(e){let t=e.data;if(e.extensionId!==DA||e.type!==FI||!Number.isFinite(e.ts)||e.ts<0||!NA(t)||t.schemaVersion!==1||!No(t.sessionId)||!No(t.sourceEntryId)||!No(t.targetEntryId)||t.sourceEntryId===t.targetEntryId||!No(t.expectedSourceRevision,1024)||!No(t.confirmationReference,1024)||!BI(t.sourceDigest)||!BI(t.targetDigest)||e.id!==HI(t.sessionId,t.sourceEntryId)||e.dedupeKey!==void 0&&e.dedupeKey!==e.id)return;let n=t.deliveryWitness;if(!(n!==void 0&&(!NA(n)||!No(n.runId)||!No(n.inputId)||!No(n.eventId)||!BI(n.receiptDigest))))return t}o(Df,"parseConfirmedIdentityRepairRecord");function Ng(e,t){let n=e.entries.filter(i=>i.id===t),r=n[0];if(n.length!==1||r?.type!=="message"||r.message.role!=="user"||r.message._synthetic===!0||r.message._source!==void 0||Array.isArray(r.message.content)&&r.message.content.some(i=>i.type!=="text"&&i.type!=="image"))throw Ps("Identity repair requires one ordinary physical user query per endpoint.");return r}o(Ng,"queryEntry");function HA(e,t,n){let r=o((s,a)=>s.boundaryId===a||s.auditEntryIds.includes(a),"owns"),i=e.entries.flatMap((s,a)=>r(s,n)?[a]:[]);if(i.length!==1||e.entries.some((s,a)=>a!==i[0]&&r(s,t)))throw Ps("Identity repair target is not unique or source belongs to another visible query.");return i[0]}o(HA,"targetGroup");function FA(e,t,n,r){let i=r.filter(d=>d.id===HI(e,t.sourceEntryId)),s=i[0];if(s!==void 0){let d=Df(s);if(!d||d.sessionId!==e||d.targetEntryId!==t.targetEntryId||d.confirmationReference!==t.confirmationReference||Gr(d.deliveryWitness)!==Gr(t.deliveryWitness)||i.some(p=>Gr(p)!==Gr(s))||jA(s,n,e,Ka(n,t.expectedSourceRevision))===void 0)throw Ps("Confirmed identity repair conflicts with its existing immutable record.");return s}let a=Ng(n,t.sourceEntryId),c=Ng(n,t.targetEntryId);HA(Ka(n,t.expectedSourceRevision),t.sourceEntryId,t.targetEntryId);let l=HI(e,t.sourceEntryId),u={id:l,dedupeKey:l,extensionId:DA,type:FI,ts:Date.now(),data:{schemaVersion:1,sessionId:e,sourceEntryId:t.sourceEntryId,targetEntryId:t.targetEntryId,expectedSourceRevision:t.expectedSourceRevision,confirmationReference:t.confirmationReference,sourceDigest:Nf(a),targetDigest:Nf(c),...t.deliveryWitness===void 0?{}:{deliveryWitness:{...t.deliveryWitness}}}};if(!Df(u))throw Ps("Invalid confirmed identity repair input.");return u}o(FA,"buildConfirmedIdentityRepairRecord");function WA(e,t,n){if(!No(e))throw Ps("Identity repair merge requires a session identity.");let r=new Map;for(let s of(t??[]).filter(Ya)){let a=r.get(s.id);if(a&&Gr(a)!==Gr(s))throw Ps("Conflicting persisted identity repair records.");r.set(s.id,s)}if(n===void 0)return[...t??[]];let i=new Map;for(let s of n){let a=r.get(s.id)??i.get(s.id);if(a&&(Ya(a)||Ya(s))&&Gr(a)!==Gr(s))throw Ps("Confirmed identity repair records are immutable.");if(Ya(s)&&!a&&!Df(s))throw Ps("Invalid confirmed identity repair record.");i.set(s.id,s)}return[...n,...[...r.values()].filter(s=>!i.has(s.id))]}o(WA,"mergeConfirmedIdentityRepairRecords");function jA(e,t,n,r){let i=Df(e);if(!(!i||i.sessionId!==n))try{return Nf(Ng(t,i.sourceEntryId))!==i.sourceDigest||Nf(Ng(t,i.targetEntryId))!==i.targetDigest?void 0:{sourceId:i.sourceEntryId,targetIndex:HA(r,i.sourceEntryId,i.targetEntryId)}}catch{return}}o(jA,"validateAppliedRecord");function Dg(e,t,n,r){let i=r?.filter(d=>{if(!Ya(d))return!1;let p=Df(d);return p===void 0||p.sessionId===n})??[];if(i.length===0)return e;let s=new Map,a=new Set;for(let d of i){let p=s.get(d.id);p!==void 0&&p!==Gr(d)&&a.add(d.id),s.set(d.id,Gr(d))}let c=new Map,l=new Set,u=0;for(let d of i){let p=a.has(d.id)?void 0:jA(d,t,n,e);if(!p){u+=1,l.size<16&&l.add(typeof d.id=="string"?d.id.slice(0,256):"invalid-record");continue}let m=c.get(p.targetIndex)??new Set(e.entries[p.targetIndex].auditEntryIds);m.add(p.sourceId),c.set(p.targetIndex,m)}return{...e,entries:e.entries.map((d,p)=>c.has(p)?{...d,auditEntryIds:[...c.get(p)]}:d),...u===0?{}:{status:e.status==="ambiguous"?"ambiguous":"partial",issues:[...e.issues,{code:"identity_repair_invalid",occurrenceCount:u,entryCount:u,entryIds:[...l],message:"Confirmed identity repair records could not be verified; their aliases were not applied."}]}}}o(Dg,"applyConfirmedIdentityRepairs");import{createHash as GI,randomUUID as KI}from"node:crypto";import Mt from"node:fs/promises";import ar from"node:path";var Xl=8,JU=".resume-index",QU="complete.json",ZU="publish.lock",qA=".resume",UA=32,e2=2e3,Wg=10,WI=3e4,Yl=40,Bg=new Map,ql=new Map;async function Ls(e,t){let n=[];for(let r=0;r<e.length;r+=UA){let i=e.slice(r,r+UA);n.push(...await Promise.all(i.map((s,a)=>t(s,r+a))))}return n}o(Ls,"mapBatches");function Bo(e){return ar.join(e,JU)}o(Bo,"indexDir");function jg(e){return ar.join(Bo(e),QU)}o(jg,"manifestPath");function Ug(e){return`${GI("sha256").update(e,"utf8").digest("hex")}${qA}`}o(Ug,"markerName");function XA(e,t){return ar.join(Bo(e),Ug(t))}o(XA,"markerPath");function VA(e){try{let t=JSON.parse(e);return!Jl(t)||typeof t.pid!="number"||!Number.isInteger(t.pid)||t.pid<=0||typeof t.token!="string"||t.token.length===0?void 0:{pid:t.pid,token:t.token}}catch{return}}o(VA,"parseIndexPublishLockOwner");async function GA(e){for(let t=0;t<Yl;t+=1)try{return await Mt.rmdir(e),!0}catch(n){let r=n.code;if(r==="ENOENT")return!0;if(!["EPERM","EACCES","EBUSY"].includes(r??""))return!1;t+1<Yl&&await new Promise(i=>setTimeout(i,Wg))}return!1}o(GA,"removeEmptyIndexLockDirectory");async function t2(e){let t=`${e}.reclaim`;for(let n=0;n<2;n+=1)try{return await Mt.mkdir(t),async()=>{await GA(t)||process.emitWarning(`Unable to release resume-index reclaim guard ${t}`,{code:"KODAX_RESUME_INDEX"})}}catch(r){if(r.code!=="EEXIST")throw r;if(n>0)return;try{let i=await Mt.stat(t);if(Date.now()-i.mtimeMs<WI)return}catch(i){if(i.code==="ENOENT")continue;throw i}if(!await GA(t))return}}o(t2,"acquireIndexLockReclaimGuard");function KA(e){try{return process.kill(e,0),!1}catch(t){return t.code==="ESRCH"}}o(KA,"processIsDefinitelyDead");async function Hg(e){try{let[t,n]=await Promise.all([Mt.readFile(e,"utf8"),Mt.stat(e)]);return{content:t,mtimeMs:n.mtimeMs}}catch(t){if(t.code==="ENOENT")return;throw t}}o(Hg,"readIndexPublishLock");async function jI(e,t){for(let n=0;n<Yl;n+=1){let r=await Hg(e);if(r===void 0)return!0;if(r.content!==t)return!1;try{return await Mt.rm(e),!0}catch(i){let s=i.code;if(s==="ENOENT")return!0;if(!["EPERM","EACCES","EBUSY"].includes(s??""))return!1;n+1<Yl&&await new Promise(a=>setTimeout(a,Wg))}}return!1}o(jI,"removeObservedIndexPublishLock");async function n2(e){let t=await Hg(e);if(t===void 0)return!0;if(ql.get(e)===t.content){let i=await jI(e,t.content);return i&&ql.delete(e),i}let n=VA(t.content);if(n!==void 0){if(!KA(n.pid))return!1}else if(Date.now()-t.mtimeMs<WI)return!1;let r=await t2(e);if(r===void 0)return!1;try{let i=await Hg(e);if(i===void 0)return!0;let s=VA(i.content);return ql.get(e)===i.content||(s!==void 0?KA(s.pid):Date.now()-i.mtimeMs>=WI)?jI(e,i.content):!1}finally{await r()}}o(n2,"reclaimAbandonedIndexPublishLock");async function r2(e){let t;for(let r=0;r<Yl;r+=1)try{await Mt.rm(e,{force:!0});return}catch(i){t=i;let s=i.code;if(!["EPERM","EACCES","EBUSY"].includes(s??""))break;r+1<Yl&&await new Promise(a=>setTimeout(a,Wg))}let n=t instanceof Error?t.message:String(t);process.emitWarning(`Unable to remove resume-index lock temp file ${e}: ${n}`,{code:"KODAX_RESUME_INDEX"})}o(r2,"removeIndexPublishLockTemp");async function i2(e,t){await Mt.mkdir(ar.dirname(e),{recursive:!0});let n=`${e}.${process.pid}.${KI()}.tmp`;await Mt.writeFile(n,t,{encoding:"utf8",flag:"wx"});let r=Date.now()+e2;try{for(;;)try{await Mt.link(n,e);return}catch(i){let s=i.code;if(!["EEXIST","EPERM","EACCES","EBUSY"].includes(s??""))throw i;if(await Hg(e)!==void 0&&await n2(e))continue;if(Date.now()>=r)throw new Error(`Resume index publish lock timed out: ${e}`,{cause:i});await new Promise(c=>setTimeout(c,Wg))}}finally{await r2(n)}}o(i2,"acquireIndexPublishLock");async function o2(e,t){if(!await jI(e,t))throw ql.set(e,t),new Error(`Resume index publish lock ownership changed: ${e}`);ql.get(e)===t&&ql.delete(e)}o(o2,"releaseIndexPublishLock");async function YA(e,t){let n=ar.join(Bo(e),ZU),r=Bg.get(n)??Promise.resolve(),i,s=new Promise(c=>{i=c});Bg.set(n,s),await r.catch(()=>{});let a=JSON.stringify({pid:process.pid,token:KI()});try{await i2(n,a);try{return await t()}finally{await o2(n,a)}}finally{i(),Bg.get(n)===s&&Bg.delete(n)}}o(YA,"withIndexPublishLock");function Vg(e){let t=ar.dirname(e);return ar.basename(t)==="archived"?ar.dirname(t):t}o(Vg,"resumeIndexProjectDir");function Jl(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(Jl,"isRecord");function s2(e){if(!(!Jl(e)||typeof e.id!="string"||e.id.length===0||ar.basename(e.id)!==e.id||typeof e.title!="string"||typeof e.msgCount!="number"||!Number.isInteger(e.msgCount)||e.msgCount<=0||e.createdAt!==void 0&&typeof e.createdAt!="string"||e.lastMessageAt!==void 0&&typeof e.lastMessageAt!="string"||e.surface!==void 0&&typeof e.surface!="string"))return{id:e.id,title:e.title,msgCount:e.msgCount,...e.createdAt!==void 0?{createdAt:e.createdAt}:{},...e.lastMessageAt!==void 0?{lastMessageAt:e.lastMessageAt}:{},...e.surface!==void 0?{surface:e.surface}:{}}}o(s2,"parseEntry");function JA(e){if(!Jl(e))return;let t=Array.isArray(e.markerNames)&&e.markerNames.every(i=>typeof i=="string")?[...e.markerNames].sort():void 0,n=Array.isArray(e.sessionNames)&&e.sessionNames.every(i=>typeof i=="string")?[...e.sessionNames].sort():void 0,r=Array.isArray(e.excludedSources)?e.excludedSources.flatMap(i=>!Jl(i)||typeof i.name!="string"||typeof i.sourceSize!="number"||!Number.isInteger(i.sourceSize)||i.sourceSize<0||typeof i.sourceMtimeMs!="number"||!Number.isFinite(i.sourceMtimeMs)||typeof i.sourceCtimeMs!="number"||!Number.isFinite(i.sourceCtimeMs)||typeof i.sourceDev!="number"||!Number.isInteger(i.sourceDev)||typeof i.sourceIno!="number"||!Number.isInteger(i.sourceIno)?[]:[{name:i.name,sourceSize:i.sourceSize,sourceMtimeMs:i.sourceMtimeMs,sourceCtimeMs:i.sourceCtimeMs,sourceDev:i.sourceDev,sourceIno:i.sourceIno}]):void 0;if(!(e.version!==Xl||t===void 0||typeof e.markerCount!="number"||!Number.isInteger(e.markerCount)||e.markerCount<0||typeof e.markerDigest!="string"||n===void 0||typeof e.sessionFileCount!="number"||!Number.isInteger(e.sessionFileCount)||e.sessionFileCount<0||typeof e.sessionFileDigest!="string"||r===void 0||typeof e.excludedSourceCount!="number"||!Number.isInteger(e.excludedSourceCount)||e.excludedSourceCount<0||typeof e.excludedSourceDigest!="string"||t.length!==e.markerCount||Do(t)!==e.markerDigest||n.length!==e.sessionFileCount||Do(n)!==e.sessionFileDigest||r.length!==e.excludedSourceCount||zI(r)!==e.excludedSourceDigest))return{version:Xl,markerNames:t,markerCount:e.markerCount,markerDigest:e.markerDigest,sessionNames:n,sessionFileCount:e.sessionFileCount,sessionFileDigest:e.sessionFileDigest,excludedSources:r,excludedSourceCount:e.excludedSourceCount,excludedSourceDigest:e.excludedSourceDigest}}o(JA,"parseManifest");function a2(e,t){if(!Jl(e)||e.version!==Xl||e.state!=="pending"&&e.state!=="ready")return;let n=s2(e.entry);if(!n||Ug(n.id)!==t)return;let r=Jl(e.source)&&typeof e.source.size=="number"&&Number.isInteger(e.source.size)&&e.source.size>=0&&typeof e.source.mtimeMs=="number"&&Number.isFinite(e.source.mtimeMs)&&typeof e.source.ctimeMs=="number"&&Number.isFinite(e.source.ctimeMs)&&typeof e.source.dev=="number"&&Number.isInteger(e.source.dev)&&typeof e.source.ino=="number"&&Number.isInteger(e.source.ino)?{size:e.source.size,mtimeMs:e.source.mtimeMs,ctimeMs:e.source.ctimeMs,dev:e.source.dev,ino:e.source.ino}:void 0;if(!(e.state==="ready"&&r===void 0))return{version:Xl,state:e.state,entry:n,...r!==void 0?{source:r}:{}}}o(a2,"parseMarker");function Do(e){let t=GI("sha256");for(let n of[...e].sort())t.update(n),t.update(`
|
|
89
|
+
`);return t.digest("hex")}o(Do,"digestMarkerNames");function zI(e){let t=GI("sha256");for(let n of[...e].sort((r,i)=>r.name.localeCompare(i.name)))t.update(JSON.stringify([n.name,n.sourceSize,n.sourceMtimeMs,n.sourceCtimeMs,n.sourceDev,n.sourceIno])),t.update(`
|
|
90
|
+
`);return t.digest("hex")}o(zI,"digestScannedFiles");async function UI(e){try{return(await Mt.readdir(Bo(e),{withFileTypes:!0})).filter(t=>t.isFile()&&t.name.endsWith(qA)).map(t=>t.name).sort()}catch(t){if(t.code==="ENOENT")return[];throw t}}o(UI,"readMarkerNames");async function VI(e){try{return(await Mt.readdir(e,{withFileTypes:!0})).filter(t=>t.isFile()&&t.name.endsWith(".jsonl")&&!t.name.endsWith(".archive.jsonl")&&!t.name.endsWith(".islands.jsonl")&&!t.name.startsWith("archived-")&&!t.name.startsWith(".")).map(t=>t.name).sort()}catch(t){if(t.code==="ENOENT")return[];throw t}}o(VI,"readCanonicalSessionNames");async function Fg(e,t){let n;try{n=await Mt.readFile(ar.join(Bo(e),t),"utf8")}catch(r){if(r.code!=="ENOENT")throw r;return}try{return a2(JSON.parse(n),t)}catch{return}}o(Fg,"readMarker");async function QA(e,t){let n=`${e}.${process.pid}.${KI()}.tmp`;await Mt.writeFile(n,t,"utf8");try{await Mt.rename(n,e)}catch(r){if(!["EEXIST","EPERM"].includes(r.code??""))throw r;await Mt.rm(e,{force:!0}),await Mt.rename(n,e)}finally{await Mt.rm(n,{force:!0})}}o(QA,"replaceDerivedFile");async function ZA(e){await Mt.rm(jg(e),{force:!0})}o(ZA,"invalidateManifest");async function qI(e,t,n,r,i){let s=Bo(e),a=XA(e,t.id);if(await Mt.mkdir(s,{recursive:!0}),!r)try{return await Mt.access(a),!1}catch(u){if(u.code!=="ENOENT")throw u}let c=r?await Fg(e,Ug(t.id)):void 0,l={version:Xl,state:n,entry:{...c?.entry,...t},...i!==void 0?{source:i}:{}};return await QA(a,JSON.stringify(l)),!0}o(qI,"writeMarker");async function Gg(e,t){try{let n=await Mt.stat(ar.join(e,`${t}.jsonl`));return n.isFile()?{size:n.size,mtimeMs:n.mtimeMs,ctimeMs:n.ctimeMs,dev:n.dev,ino:n.ino}:void 0}catch(n){if(n.code==="ENOENT")return;throw n}}o(Gg,"canonicalSource");async function c2(e,t){let n=ar.basename(t,".jsonl");if(`${n}.jsonl`!==t)return;let r=await Gg(e,n);return r===void 0?void 0:{name:t,sourceSize:r.size,sourceMtimeMs:r.mtimeMs,sourceCtimeMs:r.ctimeMs,sourceDev:r.dev,sourceIno:r.ino}}o(c2,"currentScannedFile");function l2(e,t){return e!==void 0&&e.size===t.sourceSize&&e.mtimeMs===t.sourceMtimeMs&&e.ctimeMs===t.sourceCtimeMs&&e.dev===t.sourceDev&&e.ino===t.sourceIno}o(l2,"sourceMatchesIdentity");async function zA(e,t){return(await Ls(t,async r=>{let i=ar.basename(r.name,".jsonl");return`${i}.jsonl`!==r.name?!1:l2(await Gg(e,i),r)})).every(Boolean)}o(zA,"scannedFilesStillMatch");async function e_(e,t){if(t.state!=="ready"||t.source===void 0)return!1;let n=await Gg(e,t.entry.id);return n!==void 0&&n.size===t.source.size&&n.mtimeMs===t.source.mtimeMs&&n.ctimeMs===t.source.ctimeMs&&n.dev===t.source.dev&&n.ino===t.source.ino}o(e_,"markerMatchesCanonical");async function t_(e,t,n,r){await Mt.mkdir(Bo(e),{recursive:!0});let i=[...t].sort(),s=[...n].sort(),a=[...r].sort((l,u)=>l.name.localeCompare(u.name)),c={version:Xl,markerNames:i,markerCount:i.length,markerDigest:Do(i),sessionNames:s,sessionFileCount:s.length,sessionFileDigest:Do(s),excludedSources:a,excludedSourceCount:a.length,excludedSourceDigest:zI(a)};await QA(jg(e),JSON.stringify(c))}o(t_,"writeManifest");async function Bf(e){let t;try{t=await Mt.readFile(jg(e),"utf8")}catch(d){if(d.code!=="ENOENT")throw d;return}let n;try{n=JA(JSON.parse(t))}catch{return}if(!n)return;let r=await UI(e),i=await VI(e);if(r.length!==n.markerCount||Do(r)!==n.markerDigest||i.length!==n.sessionFileCount||Do(i)!==n.sessionFileDigest)return;let s=await Ls(r,d=>Fg(e,d));if(s.some(d=>d===void 0||d.state!=="ready")||(await Ls(s,async d=>d===void 0?!1:e_(e,d))).some(d=>!d))return;let c=new Set(s.flatMap(d=>d?.state==="ready"?[`${d.entry.id}.jsonl`]:[])),l=i.filter(d=>!c.has(d));if(l.length!==n.excludedSourceCount)return;let u=await Ls(l,d=>c2(e,d));if(!(u.some(d=>d===void 0)||zI(u.flatMap(d=>d===void 0?[]:[d]))!==n.excludedSourceDigest))return s.flatMap(d=>d?.state==="ready"?[d.entry]:[])}o(Bf,"readResumeIndex");async function Kg(e,t){try{await qI(e,t,"pending",!1)}catch(n){try{await ZA(e)}catch(r){throw new AggregateError([n,r],`Unable to prepare or invalidate the resume index for ${t.id}`)}throw n}}o(Kg,"prepareResumeIndexEntry");async function u2(e,t){try{return await Mt.rm(XA(e,t)),!0}catch(n){if(n.code==="ENOENT")return!1;throw n}}o(u2,"removeResumeIndexEntry");async function Hf(e,t,n){await YA(e,async()=>{let r=await Gg(e,t.id);if(n){if(r===void 0)return;await qI(e,t,"ready",!0,r)}else await u2(e,t.id);await d2(e,t.id,n,r)})}o(Hf,"commitResumeIndexEntry");async function d2(e,t,n,r){let i;try{i=await Mt.readFile(jg(e),"utf8")}catch(p){if(p.code==="ENOENT")return;throw p}let s;try{s=JA(JSON.parse(i))}catch{return}if(!s)return;let a=Ug(t),c=`${t}.jsonl`;if(n&&s.markerNames.includes(a))return;let l=new Set(s.markerNames),u=new Set(s.sessionNames),d=s.excludedSources.filter(p=>p.name!==c);r===void 0?u.delete(c):u.add(c),n?l.add(a):(l.delete(a),r!==void 0&&d.push({name:c,sourceSize:r.size,sourceMtimeMs:r.mtimeMs,sourceCtimeMs:r.ctimeMs,sourceDev:r.dev,sourceIno:r.ino})),await t_(e,[...l],[...u],d)}o(d2,"refreshCompleteManifestAfterCommit");async function n_(e,t,n){await YA(e,()=>f2(e,t,n))}o(n_,"completeResumeIndex");async function f2(e,t,n){let r=n.map(g=>g.name).sort(),i=Do(r),s=await VI(e);if(s.length!==r.length||Do(s)!==i||!await zA(e,n))return;await ZA(e),await Mt.mkdir(Bo(e),{recursive:!0});let a=new Set(t.map(g=>g.id)),c=n.filter(g=>!a.has(ar.basename(g.name,".jsonl")));for(let g of t)await qI(e,g,"ready",!0,{size:g.sourceSize,mtimeMs:g.sourceMtimeMs,ctimeMs:g.sourceCtimeMs,dev:g.sourceDev,ino:g.sourceIno});let l=await UI(e),u=await Ls(l,g=>Fg(e,g));await Ls(l,async(g,S)=>{let T=u[S];(T===void 0||!a.has(T.entry.id))&&await Mt.rm(ar.join(Bo(e),g),{force:!0})});let d=await VI(e);if(d.length!==r.length||Do(d)!==i||!await zA(e,n))return;let p=await UI(e),m=await Ls(p,g=>Fg(e,g));m.some(g=>g?.state!=="ready")||m.length!==a.size||m.some(g=>g===void 0||!a.has(g.entry.id))||(await Ls(m,async g=>g===void 0?!1:e_(e,g))).some(g=>!g)||await t_(e,p,r,c)}o(f2,"completeResumeIndexWithLock");import Ff from"node:fs/promises";import p2 from"node:os";import Ti from"node:path";var o_=65536,zg=48;function m2(){let e=process.env.KODAX_HOME,t=e&&e.length>0?e:Ti.join(p2.homedir(),".kodax");return Ti.join(t,"sessions")}o(m2,"defaultSessionsDir");function h2(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith("archived-")&&!e.startsWith(".")}o(h2,"isSessionFile");async function qg(e){try{return(await Ff.readdir(e,{withFileTypes:!0})).filter(t=>t.isFile()&&h2(t.name)).map(t=>Ti.join(e,t.name))}catch(t){if(t.code==="ENOENT")return[];throw t}}o(qg,"readProjectSessionFiles");async function g2(e){try{return await qg(e)}catch(t){return YI(`read ${e}`,t),[]}}o(g2,"readOptionalProjectSessionFiles");async function y2(e,t,n,r,i){let s=n?[]:await qg(t),a=(await Promise.all(i.map(l=>g2(l)))).flat(),c=await qg(e);return[...s.map(l=>({filePath:l,trustedProjectDir:r})),...a.map(l=>({filePath:l,trustedProjectDir:!1})),...c.map(l=>({filePath:l,trustedProjectDir:!1}))]}o(y2,"collectActiveSessionFiles");async function w2(e,t){try{let n=JSON.parse(await Ff.readFile(Ti.join(e,"project.json"),"utf8"));if(n===null||typeof n!="object")return!1;let r=n.canonicalRoot;return typeof r=="string"&&Ja(r)===Ja(t)}catch{return!1}}o(w2,"isTrustedProjectDir");function S2(e){return{...e,...e.createdAt!==void 0?{createdAtMs:Date.parse(e.createdAt)}:{}}}o(S2,"indexedCandidate");function XI(e,t){let n=t instanceof Error?t.message:String(t);process.emitWarning(`Resume index ${e} failed; using canonical sessions instead: ${n}`,{code:"KODAX_RESUME_INDEX"})}o(XI,"reportResumeIndexFailure");function YI(e,t){let n=t instanceof Error?t.message:String(t);process.emitWarning(`Resume compatibility ${e} failed; continuing with the current project: ${n}`,{code:"KODAX_RESUME_COMPATIBILITY"})}o(YI,"reportResumeCompatibilityFailure");function Ja(e){if(!e?.trim())return;let t=Ti.resolve(e).replace(/\\/g,"/");return process.platform==="win32"||process.platform==="darwin"?t.toLowerCase():t}o(Ja,"normalizeComparableRoot");function x2(e,t){if(t.length===0)return!0;let n=e.runtimeInfo!==null&&typeof e.runtimeInfo=="object"?e.runtimeInfo:void 0;return el({...typeof e.gitRoot=="string"?{gitRoot:e.gitRoot}:{},...n===void 0?{}:{runtimeInfo:{...typeof n.canonicalRepoRoot=="string"?{canonicalRepoRoot:n.canonicalRepoRoot}:{},...typeof n.workspaceRoot=="string"?{workspaceRoot:n.workspaceRoot}:{},...typeof n.executionCwd=="string"?{executionCwd:n.executionCwd}:{}}}},t)}o(x2,"matchesProjectRoot");function I2(e,t){return e.sourceSize===t.size&&e.sourceMtimeMs===t.mtimeMs&&e.sourceCtimeMs===t.ctimeMs&&e.sourceDev===t.dev&&e.sourceIno===t.ino}o(I2,"sameSource");async function C2(e,t){let n=[],r=t,i=!1;for(;r>0;){let s=Math.max(0,r-o_),a=Buffer.allocUnsafe(r-s),{bytesRead:c}=await e.read(a,0,a.length,s);if(c===0)break;let l=c;if(!i){for(;l>0&&(a[l-1]===10||a[l-1]===13);)l-=1;if(l===0){r=s;continue}i=!0}let u=a.lastIndexOf(10,l-1);if(n.unshift(a.subarray(u+1,l)),u>=0)break;r=s}return Buffer.concat(n).toString("utf8").trim()}o(C2,"readLastNonEmptyLine");async function s_(e,t=!1){let n;try{n=await Ff.open(e,"r");let r=await n.stat(),i=[],s=0,a=0,c=r.size;for(;;){let m=r.size-a;if(m<=0)break;let h=Buffer.allocUnsafe(Math.min(o_,m)),{bytesRead:g}=await n.read(h,0,h.length,a);if(g===0)break;let S=h.subarray(0,g),T=S.indexOf(10),x=T>=0?S.subarray(0,T):S;if(i.push(x),s+=x.length,T>=0){c=a+T;break}a+=g}if(s===0)return;let l=Buffer.concat(i,s).toString("utf8").trim(),u=r.size<=c+1?l:await C2(n,r.size),d={sourceSize:r.size,sourceMtimeMs:r.mtimeMs,sourceCtimeMs:r.ctimeMs,sourceDev:r.dev,sourceIno:r.ino},p=await n.stat();return I2(d,p)?{line:l,tailLine:u,...d}:void 0}catch(r){if(t)throw r;return}finally{await n?.close()}}o(s_,"readSessionEnvelope");function r_(e,t){return t._type!=="meta_update"?e:{...e,...typeof t.title=="string"?{title:t.title}:{},...typeof t.activeMessageCount=="number"&&t.activeMessageCount>=0?{activeMessageCount:t.activeMessageCount}:{},...Array.isArray(t.uiHistory)?{uiHistory:t.uiHistory}:{},...typeof t.scope=="string"?{scope:t.scope}:{},...rn(t.lastMessageAt)!==void 0?{lastMessageAt:t.lastMessageAt}:{}}}o(r_,"applyMetaUpdate");function Xg(e){try{let t=JSON.parse(e);return t!==null&&typeof t=="object"?{valid:!0,value:t}:{valid:!0}}catch{return{valid:!1}}}o(Xg,"parseJsonRecord");async function T2(e,t,n){let r=Xg(n);if(r.valid)return r.value===void 0?t:r_(t,r.value);let i=(await Ff.readFile(e,"utf8")).split(`
|
|
91
|
+
`);for(let s=i.length-1;s>=0;s-=1){let a=i[s]?.trim();if(!a)continue;let c=Xg(a);if(c.valid&&c.value?._type==="meta_update")return r_(t,c.value)}return t}o(T2,"applyEffectiveTailMetadata");async function Yg(e){let t=await s_(e,!0);if(!t)return;let n=Xg(t.line);if(!n.valid)throw new Error("Malformed Session metadata");if(!(!n.value||n.value._type!=="meta"))return a_(e,n.value,t.tailLine)}o(Yg,"readEffectiveSessionMetadata");async function a_(e,t,n){let r=await T2(e,t,n);if(rn(r.lastMessageAt)!==void 0)return r;let i=Xg(n).value,s=i?._type==="lineage_entry"&&i.entry!==null&&typeof i.entry=="object"?i.entry:void 0,a=s?.type==="message"&&s.message!==null&&typeof s.message=="object"?s.message:s===void 0?i:void 0;if(a?._synthetic===!0||a?.role!=="user"&&a?.role!=="assistant"||s!==void 0&&r.activeEntryId!==void 0&&r.activeEntryId!==s.id)return r;let c=rn(a.timestamp)??(s?.sourceEntryId===void 0?rn(s?.timestamp):void 0);return c===void 0?r:{...r,lastMessageAt:c}}o(a_,"effectiveEnvelopeMetadata");async function v2(e,t){if(typeof t.activeMessageCount=="number"&&t.activeMessageCount>=0)return Ji(t.activeMessageCount,t.uiHistory);let n=(await Ff.readFile(e,"utf8")).trim();if(!n)return 0;let r=typeof t.extensionRecordCount=="number"&&t.extensionRecordCount>0?t.extensionRecordCount:0;return Ji(Math.max(0,n.split(`
|
|
92
|
+
`).length-1-r),t.uiHistory)}o(v2,"readMessageCount");function b2(e){if(e.runtimeInfo===null||typeof e.runtimeInfo!="object")return;let t=e.runtimeInfo;return{...typeof t.canonicalRepoRoot=="string"?{canonicalRepoRoot:t.canonicalRepoRoot}:{},...typeof t.workspaceRoot=="string"?{workspaceRoot:t.workspaceRoot}:{},...typeof t.surface=="string"?{surface:t.surface}:{}}}o(b2,"runtimeSummary");async function i_(e,t,n){let r=await s_(e);if(!r?.line)return{};let i={name:Ti.basename(e),sourceSize:r.sourceSize,sourceMtimeMs:r.sourceMtimeMs,sourceCtimeMs:r.sourceCtimeMs,sourceDev:r.sourceDev,sourceIno:r.sourceIno};try{let s=JSON.parse(r.line);if(s===null||typeof s!="object")return{source:i};let a=await a_(e,s,r.tailLine);if(a._type!=="meta")return{source:i,matchesProject:!1};let c=n||x2(a,t);if(!c||a.scope==="managed-task-worker")return{source:i,matchesProject:c};let l=await v2(e,a);if(l<=0)return{source:i,matchesProject:c};let u=typeof a.createdAt=="string"?a.createdAt:void 0,d=b2(a);return{source:i,matchesProject:c,candidate:{id:Ti.basename(e,".jsonl"),title:typeof a.title=="string"?a.title:"",msgCount:l,...u!==void 0?{createdAt:u}:{},...rn(a.lastMessageAt)!==void 0?{lastMessageAt:a.lastMessageAt}:{},...d?.surface!==void 0?{surface:d.surface}:{},...u!==void 0?{createdAtMs:Date.parse(u)}:{},sourceSize:r.sourceSize,sourceMtimeMs:r.sourceMtimeMs,sourceCtimeMs:r.sourceCtimeMs,sourceDev:r.sourceDev,sourceIno:r.sourceIno}}}catch{return{source:i}}}o(i_,"readResumeCandidate");async function R2(e,t){let n=e.sessionsDir??m2(),{canonicalProjectRoot:r,compatibleRoots:i}=await JI(e.projectRoot),s=Ti.join(n,Br(r).key),a=i.map(x=>Ti.join(n,Br(x).key)),c=await w2(s,r),l=!1;if(!c)try{l=!await Pg(s)}catch{}let u;if(c)try{u=await Bf(s)}catch(x){XI("read",x)}let d=await y2(n,s,u!==void 0,c&&u!==void 0,a),p=u?.map(S2)??[],m=[],h=[],g=!0,S=new Set(p.map(x=>x.id));for(let x=0;x<d.length;x+=zg){let I=d.slice(x,x+zg),v=await Promise.all(I.map(k=>i_(k.filePath,[r,...i],k.trustedProjectDir)));for(let k=0;k<v.length;k+=1){let _=v[k],H=I[k],$=H!==void 0&&Ja(Ti.dirname(H.filePath))===Ja(s);$&&(_?.source&&h.push(_.source),(_?.source===void 0||_.matchesProject!==!0)&&(g=!1));let P=_?.candidate;u===void 0&&$&&P?.sourceSize!==void 0&&P.sourceMtimeMs!==void 0&&P.sourceCtimeMs!==void 0&&P.sourceDev!==void 0&&P.sourceIno!==void 0&&m.push({...P,sourceSize:P.sourceSize,sourceMtimeMs:P.sourceMtimeMs,sourceCtimeMs:P.sourceCtimeMs,sourceDev:P.sourceDev,sourceIno:P.sourceIno}),P&&!S.has(P.id)&&(S.add(P.id),p.push(P))}}if(t&&l&&g){let x=[];try{x=await qg(Ti.join(s,"archived"))}catch(I){g=!1,YI("legacy archived-session certification",I)}for(let I=0;I<x.length;I+=zg)if((await Promise.all(x.slice(I,I+zg).map(k=>i_(k,[r,...i],!1)))).some(k=>k.source===void 0||k.matchesProject!==!0)){g=!1;break}}let T=c;if(t&&l&&g)try{await Kl(s,Br(r)),T=!0}catch(x){XI("project identity publication",x)}if(t&&u===void 0&&T)try{await n_(s,m,h)}catch(x){XI("rebuild",x)}return p.sort(qa),p.slice(0,e.limit??Number.MAX_SAFE_INTEGER).map(({createdAtMs:x,sourceSize:I,sourceMtimeMs:v,sourceCtimeMs:k,sourceDev:_,sourceIno:H,...$})=>$)}o(R2,"scanResumeSessions");async function c_(e){await R2(e,!0)}o(c_,"maintainProjectResumeIndex");async function JI(e){let t=await aR({cwd:e}),n=t.canonicalRoot,r=[];try{r=sR(n)}catch(s){YI("linked-worktree discovery",s)}let i=[t.workspaceRoot,...r].filter((s,a,c)=>{let l=Ja(s);return l!==Ja(n)&&c.findIndex(u=>Ja(u)===l)===a});return{canonicalProjectRoot:n,compatibleRoots:i}}o(JI,"resolveSessionDiscoveryRoots");var E2=[10,25,50,100],ry=6e4,M2=ry+5e3,A2=15e3,rC=".location-topology",_2=".location-topology.lock",iy=".location-index",P2=64*1024,u_=256*1024,M_=256,QI=0,iC=class extends Error{static{o(this,"ActorSnapshotSaveCancelledError")}attemptId;code="actor_snapshot_save_cancelled";constructor(t){super(`Actor snapshot save ${t} was cancelled before canonical commit.`),this.attemptId=t,this.name="ActorSnapshotSaveCancelledError"}};function Jg(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}o(Jg,"deferredValue");function vr(e){return Math.max(0,vi.now()-e)}o(vr,"elapsedMs");function L2(e){return JSON.parse(JSON.stringify(e))}o(L2,"jsonPersistedValue");var oC=class{static{o(this,"ActorSaveLifecycleState")}attempt;queueObserver;canonicalObserver;attemptId;startedAt=vi.now();dequeued=Jg();eligible=Jg();canonical=Jg();completion=Jg();timings={};cancelled;phaseValue="queued";activeStage="storageQueue";activeStageStartedAt=this.startedAt;failedStage;fileLockStartedAt=this.startedAt;committedAt;canonicalOutcome="pending";completionOutcome="pending";constructor(t,n){this.attemptId=`${t}:${n}:${Zl()}`,this.cancelled=new iC(this.attemptId),this.attempt=this.createAttempt(),this.queueObserver={onDequeued:o(()=>this.onDequeued(),"onDequeued"),beforeFileLock:o(()=>this.beforeFileLock(),"beforeFileLock"),onFileLockAcquired:o(()=>this.onFileLockAcquired(),"onFileLockAcquired"),onFileLockSettled:o(()=>this.onFileLockSettled(),"onFileLockSettled")},this.canonicalObserver={beforeCommit:o(()=>this.beforeCommit(),"beforeCommit"),afterCommit:o(()=>this.afterCommit(),"afterCommit"),beginTiming:o(r=>this.beginTiming(r),"beginTiming"),recordTiming:o((r,i)=>this.recordTiming(r,i),"recordTiming")},this.dequeued.promise.catch(()=>{}),this.eligible.promise.catch(()=>{}),this.canonical.promise.catch(()=>{}),this.completion.promise.catch(()=>{})}settleCompletion(t){t.then(()=>{this.completionOutcome="succeeded",this.recordCompletionTimings(),this.completion.resolve(void 0)},n=>{this.completionOutcome="failed",this.activeStage!==void 0&&this.timings[this.activeStage]===void 0&&this.recordTiming(this.activeStage,vr(this.activeStageStartedAt)),this.phaseValue==="committed"?this.failedStage??=this.activeStage??"postCommit":this.rejectBeforeCommit(n),this.recordCompletionTimings(),this.completion.reject(n)})}createAttempt(){return{dequeued:this.dequeued.promise,eligible:this.eligible.promise,canonical:this.canonical.promise,completion:this.completion.promise,phase:o(()=>this.phaseValue,"phase"),cancelBeforeCommit:o(()=>this.cancelBeforeCommit(),"cancelBeforeCommit"),diagnostics:o(()=>this.diagnostics(),"diagnostics")}}markCommitNotObserved(t){this.phaseValue==="commit_inflight"&&(this.phaseValue="not_committed",this.canonicalOutcome="not_committed",this.rejectBeforeCommit(t))}markCommitObservedByReadback(){this.phaseValue==="commit_inflight"&&(this.failedStage??="rename",this.afterCommit("committed_by_readback"))}cancelBeforeCommit(){return this.phaseValue!=="queued"&&this.phaseValue!=="precommit"?!1:(this.failedStage??=this.activeStage,this.phaseValue="not_committed",this.canonicalOutcome="not_committed",this.rejectBeforeCommit(this.cancelled),!0)}onDequeued(){this.recordTiming("storageQueue",vr(this.startedAt)),this.dequeued.resolve(void 0)}beforeFileLock(){if(this.phaseValue==="not_committed")throw this.cancelled;this.beginTiming("fileLock"),this.fileLockStartedAt=vi.now()}onFileLockAcquired(){if(this.recordTiming("fileLock",vr(this.fileLockStartedAt)),this.phaseValue==="not_committed")throw this.cancelled;this.phaseValue="precommit",this.eligible.resolve(void 0)}onFileLockSettled(){this.timings.fileLock===void 0&&this.recordTiming("fileLock",vr(this.fileLockStartedAt))}beforeCommit(){if(this.phaseValue!=="precommit")throw this.cancelled;this.phaseValue="commit_inflight",this.canonicalOutcome="ambiguous"}afterCommit(t="committed"){this.phaseValue!=="committed"&&(this.phaseValue="committed",this.canonicalOutcome=t,this.beginTiming("postCommit"),this.committedAt=vi.now(),this.canonical.resolve(void 0))}recordCompletionTimings(){this.committedAt!==void 0&&this.recordTiming("postCommit",vr(this.committedAt)),this.recordTiming("total",vr(this.startedAt)),this.activeStage=void 0}rejectBeforeCommit(t){this.failedStage??=this.activeStage,this.phaseValue!=="commit_inflight"&&(this.phaseValue="not_committed",this.canonicalOutcome="not_committed"),this.dequeued.reject(t),this.eligible.reject(t),this.canonical.reject(t)}beginTiming(t){this.activeStage=t,this.activeStageStartedAt=vi.now()}recordTiming(t,n){this.timings[t]=n}diagnostics(){return{attemptId:this.attemptId,phase:this.phaseValue,...this.activeStage!==void 0?{activeStage:this.activeStage}:{},...this.activeStage!==void 0?{activeStageElapsedMs:vr(this.activeStageStartedAt)}:{},...this.failedStage!==void 0?{failedStage:this.failedStage}:{},canonicalOutcome:this.canonicalOutcome,completionOutcome:this.completionOutcome,timingsMs:{...this.timings}}}};function O2(e,t){return new oC(e,t)}o(O2,"createActorSaveLifecycle");function $s(e){let t=e??A2;if(!Number.isSafeInteger(t)||t<=0)throw new Error("Session read timeoutMs must be a positive safe integer");return t}o($s,"normalizeSessionReadTimeout");function Pn(e){if(e?.aborted)throw new Ie("read_cancelled","Session history read cancelled")}o(Pn,"throwIfSessionReadAborted");function Gf(e,t){Pn(e.signal);let n=$s(e.timeoutMs);if(!(Date.now()-t<n))throw new Ie("read_timeout",`Session history read timed out after ${n}ms`)}o(Gf,"assertSessionReadBudget");async function Qa(e,t){let n=$s(t.timeoutMs),r,i;try{return await Promise.race([e,new Promise((s,a)=>{r=setTimeout(()=>a(new Ie("read_timeout",`Session history read timed out after ${n}ms`)),n),t.signal!==void 0&&(i=o(()=>a(new Ie("read_cancelled","Session history read cancelled")),"abort"),t.signal.addEventListener("abort",i,{once:!0}))})])}finally{r!==void 0&&clearTimeout(r),i!==void 0&&t.signal?.removeEventListener("abort",i)}}o(Qa,"raceSessionRead");async function Qg(e,t){for(let n=0;;n+=1)try{await Oe.rename(e,t);return}catch(r){let i=E2[n];if(i===void 0||!$2(r))throw r;await new Promise(s=>setTimeout(s,i))}}o(Qg,"replaceSessionFile");function $2(e){if(!(e instanceof Error)||!("code"in e))return!1;let t=e.code;return t==="EPERM"||t==="EBUSY"||t==="EACCES"}o($2,"isTransientRenameError");function N2(e){return!lt(e)||e._type!=="meta_update"?!1:(e.title===void 0||typeof e.title=="string")&&(e.tag===void 0||typeof e.tag=="string")&&(e.activeEntryId===void 0||typeof e.activeEntryId=="string"||e.activeEntryId===null)&&(e.activeMessageCount===void 0||typeof e.activeMessageCount=="number")&&(e.uiHistory===void 0||Array.isArray(e.uiHistory))&&(e.scope===void 0||typeof e.scope=="string")&&(e.lastMessageAt===void 0||rn(e.lastMessageAt)!==void 0)&&(e.lineageIdentityFilterHash===void 0||typeof e.lineageIdentityFilterHash=="string"&&/^[a-f0-9]{64}$/.test(e.lineageIdentityFilterHash))}o(N2,"isPersistedMetaUpdateLine");function A_(e){if(!Array.isArray(e))return;let t=e.filter(xg).map(n=>n.type==="tool_group"?{...n,tools:n.tools.map(r=>({...r}))}:{...n});return t.length>0?t:void 0}o(A_,"normalizeKodaXSessionUiHistory");var Ie=class extends Error{static{o(this,"SessionReadError")}code;constructor(t,n){super(n),this.code=t,this.name="SessionReadError"}};function d_(e,t){let n=Bc(e,t);if(!(n.at(-1)?.id!==t||n[0]?.parentId!==null))return n.every((r,i)=>i===0||r.parentId===n[i-1].id)?n:void 0}o(d_,"completeLineageBoundaryPath");function eu(e,t){let n=Wo("sha256").update(t,"utf8").digest("hex");return V.join(e,".write-locks",`${n}.lock`)}o(eu,"sessionWriteLockPath");function Qi(e){return V.join(e,_2)}o(Qi,"sessionLocationTopologyLockPath");function __(e,t){let n=Wo("sha256").update(t,"utf8").digest("hex");return V.join(e,iy,`${n}.json`)}o(__,"sessionLocationHintPath");function P_(e,t){return`${eu(e,t)}.queue`}o(P_,"sessionWriteQueuePath");function uC(e){return V.join(e,".write-locks")}o(uC,"sessionGlobalWriteBoundaryPath");function ZI(e){let t=uC(e);try{let n=Wo("sha256"),r=ft.readdirSync(t,{withFileTypes:!0}).filter(i=>i.isDirectory()&&i.name.endsWith(".lock.queue")).sort((i,s)=>i.name.localeCompare(s.name));for(let i of r){let s=ec(ft.statSync(V.join(t,i.name),{bigint:!0}));n.update(i.name),n.update("\0"),n.update(s.dev.toString()),n.update("\0"),n.update(s.ino.toString()),n.update("\0"),n.update(s.size.toString()),n.update("\0"),n.update(s.mtimeNs.toString()),n.update("\0"),n.update(s.ctimeNs.toString()),n.update(`
|
|
93
|
+
`)}return n.digest("hex")}catch(n){return n.code==="ENOENT"?Wo("sha256").digest("hex"):void 0}}o(ZI,"sessionWriterTopologyDigestSync");function Fo(e,t){let n=[eu(e,t),Qi(e),V.join(e,".migration-lock"),V.join(e,".migration-journal.jsonl")].find(r=>ft.existsSync(r));if(n!==void 0)throw new Ie("data_changed",`Session data changed during the read boundary: ${V.basename(n)}`)}o(Fo,"assertStableSessionReadBoundary");async function L_(e,t){let n=eu(e,t);ft.existsSync(n)&&await Nw(n);let r=Qi(e);ft.existsSync(r)&&await Nw(r,{requireKnownOwner:!0}),Fo(e,t)}o(L_,"prepareStableSessionReadBoundary");function eC(e){let t=[V.join(e,".migration-lock"),V.join(e,".migration-journal.jsonl")].find(n=>ft.existsSync(n));if(t!==void 0)throw new Ie("data_changed",`Session layout migration is active: ${V.basename(t)}`)}o(eC,"assertSessionMigrationInactive");function f_(e){try{return ft.statSync(e).isFile()?"present":"missing"}catch(t){let n=t.code;return n==="ENOENT"||n==="ENOTDIR"?"missing":"unverifiable"}}o(f_,"inspectSessionCandidate");async function tC(e){try{return(await Oe.stat(e)).isFile()?"present":"missing"}catch(t){let n=t.code;return n==="ENOENT"||n==="ENOTDIR"?"missing":"unverifiable"}}o(tC,"inspectSessionCandidateAsync");function oy(e,t){return new Ie("data_changed",`Session candidate could not be verified for ${e}: ${V.basename(t)}`)}o(oy,"inaccessibleSessionCandidate");async function p_(e,t){let n=[],r=V.join(e,`${t}.jsonl`),i=f_(r);if(i==="present"&&n.push(r),i==="unverifiable")throw oy(t,r);let s=[];try{s=await Oe.readdir(e,{withFileTypes:!0})}catch(a){if(a.code!=="ENOENT")throw oy(t,e)}for(let a of s){if(!a.isDirectory()||a.name.startsWith("."))continue;let c=V.join(e,a.name);for(let l of[V.join(c,`${t}.jsonl`),V.join(c,"archived",`${t}.jsonl`)]){let u=f_(l);if(u==="present"&&n.push(l),u==="unverifiable")throw oy(t,l)}}return n.sort()}o(p_,"findStableSessionCandidates");async function D2(e,t){let n;try{n=await Oe.open(t,"r")}catch(r){if(r.code==="ENOENT")return null;throw r}try{let r=await n.stat({bigint:!0}),i=await n.readFile(),s=await n.stat({bigint:!0}),a=ec(r),c=ec(s);if(!bi(a,c)||BigInt(i.length)!==c.size)throw new Ie("data_changed",`Session file changed while reading: ${V.basename(t)}`);return{file:{kind:e,path:t,bytes:i,modifiedAt:new Date(Number(c.mtimeNs/1000000n)).toISOString()},identity:c}}catch(r){throw r.code==="ENOENT"?new Ie("data_changed",`Session file changed while reading: ${V.basename(t)}`):r}finally{await n.close()}}o(D2,"readStableBundleFile");function ec(e){return{dev:e.dev,ino:e.ino,size:e.size,mtimeNs:e.mtimeNs,ctimeNs:e.ctimeNs}}o(ec,"stableFileIdentity");function m_(e){return{dev:e.dev.toString(),ino:e.ino.toString(),size:e.size.toString(),mtimeNs:e.mtimeNs.toString(),ctimeNs:e.ctimeNs.toString()}}o(m_,"persistStableFileIdentity");function h_(e){if(!(!lt(e)||!["dev","ino","size","mtimeNs","ctimeNs"].every(n=>typeof e[n]=="string"&&/^\d+$/.test(e[n]))))return{dev:BigInt(e.dev),ino:BigInt(e.ino),size:BigInt(e.size),mtimeNs:BigInt(e.mtimeNs),ctimeNs:BigInt(e.ctimeNs)}}o(h_,"parsePersistedStableFileIdentity");function bi(e,t){return e.dev===t.dev&&e.ino===t.ino&&e.size===t.size&&e.mtimeNs===t.mtimeNs&&e.ctimeNs===t.ctimeNs}o(bi,"sameStableFileIdentity");function sC(e,t){return e===null||t===null?e===t:bi(e,t)}o(sC,"sameOptionalStableFileIdentity");function Os(e,t){return bi(e.root,t.root)&&e.epoch===t.epoch&&e.writerScope===t.writerScope&&sC(e.writerIdentity,t.writerIdentity)&&sC(e.activeWriterIdentity,t.activeWriterIdentity)}o(Os,"sameSessionTopologyIdentity");function B2(e,t){return bi(e.root,t.root)&&e.epoch===t.epoch&&e.writerScope===t.writerScope&&sC(e.writerIdentity,t.writerIdentity)}o(B2,"sameSessionTopologyWithoutActiveWriter");function H2(e,t){return e===null||t===null?e===t:Os(e,t)}o(H2,"sameOptionalSessionTopologyIdentity");function F2(e,t,n){if(V.isAbsolute(n))return;let i=n.replace(/\\/g,"/").split("/"),s=`${t}.jsonl`;if(!(i.length===1&&i[0]===s||i.length===2&&!i[0].startsWith(".")&&i[1]===s||i.length===3&&!i[0].startsWith(".")&&i[1]==="archived"&&i[2]===s)||i.some(u=>u===".."||u===""))return;let c=V.resolve(e),l=V.resolve(e,...i);return l.startsWith(`${c}${V.sep}`)?l:void 0}o(F2,"resolvePersistedSessionLocationPath");async function W2(e,t){let n;try{n=await Oe.open(__(e,t),"r");let r=(await n.stat()).size;if(r>P2)return;let i=Buffer.allocUnsafe(r),s=0;for(;s<r;){let{bytesRead:d}=await n.read(i,s,r-s,s);if(d===0)return;s+=d}let a=JSON.parse(i.toString("utf8"));if(!lt(a)||a.version!==1||a.id!==t||!Array.isArray(a.filePaths)||a.filePaths.length===0||a.filePaths.length>16||!lt(a.topology)||a.topology.epoch!==null&&typeof a.topology.epoch!="string")return;let c=h_(a.topology.root),l=a.topology.writerIdentity===null?null:h_(a.topology.writerIdentity);if(c===void 0||l===void 0)return;let u=a.filePaths.flatMap(d=>{if(typeof d!="string")return[];let p=F2(e,t,d);return p===void 0?[]:[p]});return u.length!==a.filePaths.length||new Set(u).size!==u.length?void 0:{filePaths:u,topology:{root:c,epoch:a.topology.epoch,writerScope:"session",writerIdentity:l,activeWriterIdentity:null}}}catch(r){if(r.code==="ENOENT"||r instanceof SyntaxError)return;throw r}finally{await n?.close()}}o(W2,"readSessionLocationHint");async function Zg(e,t,n="session"){let r=await Kr(e);if(r===null)return null;let i=await Kr(n==="session"?P_(e,t):uC(e)),s=n==="session"?await Kr(eu(e,t)):null;try{return{root:r,epoch:(await Oe.readFile(V.join(e,rC),"utf8")).trim(),writerScope:n,writerIdentity:i,activeWriterIdentity:s}}catch(a){if(a.code==="ENOENT")return{root:r,epoch:null,writerScope:n,writerIdentity:i,activeWriterIdentity:s};throw a}}o(Zg,"statSessionTopologyIdentity");async function Kr(e){try{return ec(await Oe.stat(e,{bigint:!0}))}catch(t){if(t.code==="ENOENT")return null;throw t}}o(Kr,"statStableFileIdentity");function O_(e,t){return oA(t.map(n=>({kind:n.kind,relativePath:V.relative(e,n.path).replace(/\\/g,"/"),bytes:n.bytes})))}o(O_,"createStableBundleSourceRevisionState");function dC(e,t){let n=Wo("sha256");n.update("kodax-session-bundle-boundary-v1\0");for(let r of t){if(r===null)continue;let i=V.relative(e,r.file.path).replace(/\\/g,"/"),s=r.identity;n.update(`${r.file.kind}:${i}:`),n.update([s.dev,s.ino,s.size,s.mtimeNs,s.ctimeNs].map(a=>a.toString()).join(":"))}return`sha256:${n.digest("hex")}`}o(dC,"createStableBundleBoundaryRevision");async function aC(e,t,n,r,i=!1,s){Pn(r),i||Fo(e,t);let a=V.dirname(n),c=[{kind:"main",filePath:n},{kind:"islands",filePath:V.join(a,`${t}.islands.jsonl`)},{kind:"legacy_archive",filePath:V.join(a,`${t}.archive.jsonl`)}],l=[];for(let p of c)if(Pn(r),p.kind==="main"&&s!==void 0){let m=await Kr(p.filePath);if(m===null||m.size!==BigInt(s.length))throw new Ie("data_changed","Session main file changed after append");l.push({identity:m,file:{kind:"main",path:p.filePath,bytes:s,modifiedAt:new Date(Number(m.mtimeNs/1000000n)).toISOString()}})}else l.push(await D2(p.kind,p.filePath));if(l[0]===null)throw new Ie("data_changed","Session main file moved during the read boundary");i||Fo(e,t);for(let p=0;p<c.length;p+=1){Pn(r);let m=await Kr(c[p].filePath),h=l[p];if(h===null&&m!==null||h!==null&&(m===null||!bi(h.identity,m)))throw new Ie("data_changed",`Session file changed during the read boundary: ${V.basename(c[p].filePath)}`)}i||Fo(e,t);let u=l.flatMap(p=>p===null?[]:[p.file]),d=O_(e,u);return{candidates:[n],files:u,sourceRevision:Es(d),sourceRevisionState:d,boundaryRevision:dC(e,l)}}o(aC,"readStableSessionBundleAtPath");async function Za(e,t,n,r=!1){return(await jf(e,t,n,r)).revision}o(Za,"readStableSessionBundleBoundaryAtPath");async function jf(e,t,n,r=!1){return $_(e,t,n,r,async i=>i)}o(jf,"readStableSessionBundleBoundarySnapshotAtPath");async function $_(e,t,n,r,i){r||Fo(e,t);let s=V.dirname(n),a=[{kind:"main",filePath:n},{kind:"islands",filePath:V.join(s,`${t}.islands.jsonl`)},{kind:"legacy_archive",filePath:V.join(s,`${t}.archive.jsonl`)}],c=[];for(let u of a){let d=await Kr(u.filePath);c.push(d===null?null:{identity:d,file:{kind:u.kind,path:u.filePath,bytes:Buffer.alloc(0),modifiedAt:""}})}if(c[0]===null)throw new Ie("data_changed","Session main file moved during the read boundary");r||Fo(e,t);let l=await i({revision:dC(e,c),identities:c.map(u=>u?.identity??null)});for(let u=0;u<a.length;u+=1){let d=await Kr(a[u].filePath),p=c[u];if(p===null&&d!==null||p!==null&&(d===null||!bi(p.identity,d)))throw new Ie("data_changed",`Session file changed during the read boundary: ${V.basename(a[u].filePath)}`)}return r||Fo(e,t),l}o($_,"withStableSessionBundleBoundaryAtPath");function j2(e,t,n){let r=e.identities[0],i=t.identities[0];return r==null||i===null||i===void 0||r.dev!==i.dev||r.ino!==i.ino||i.size!==r.size+BigInt(n)?!1:[1,2].every(s=>{let a=e.identities[s]??null,c=t.identities[s]??null;return a===null?c===null:c!==null&&bi(a,c)})}o(j2,"isExpectedAppendBoundaryTransition");async function N_(e,t,n){let r=V.resolve(e);Pn(n),await L_(r,t);let i=await p_(r,t);if(i.length!==1){let c=O_(r,[]);return{candidates:i,files:[],sourceRevision:Es(c),sourceRevisionState:c,boundaryRevision:dC(r,[])}}let s=await aC(r,t,i[0],n);Pn(n);let a=await p_(r,t);if(a.length!==i.length||a.some((c,l)=>c!==i[l]))throw new Ie("data_changed","Session location changed during the read boundary");return s}o(N_,"readStableSessionBundleFiles");function jt(e,t,n){Ge({source:"repl:session-storage",level:e,message:t,...n!==void 0?{detail:n}:{}})}o(jt,"reportStorageDiagnostic");function g_(e,t){t!==0&&jt("warn",`Skipped ${t} malformed session record(s) from ${V.basename(e)}.`)}o(g_,"warnMalformedSessionData");function Ho(e){jt("info",e)}o(Ho,"writeStorageNotice");function nC(e){return{_type:"extension_record",...e}}o(nC,"toExtensionRecordLine");function y_(e){return{_type:"lineage_entry",entry:e}}o(y_,"toLineageEntryLine");function w_(e){return{_type:"artifact_ledger_entry",entry:e}}o(w_,"toArtifactLedgerLine");function U2(e){switch(e.type){case"message":case"branch_summary":return 1;case"compaction":return e.reason==="rewind"?0:1+(e.postCompactAttachments?.length??0);case"archive_marker":return 0;case"label":case"rewind_marker":case"client_notice":case"memory_outcome_digest":case"memory_review_receipt":case"goal":return;default:return e}}o(U2,"activeMessageContribution");function V2(e,t,n,r){if(e===void 0)return;let i=new Map(n.map(l=>[l.id,l])),s=new Set,a=r,c=0;for(;a!==e;){if(a===null||s.has(a))return;s.add(a);let l=i.get(a);if(l===void 0)return;let u=U2(l);if(u===void 0)return;c+=u,a=l.parentId}if(!n.some(l=>l.type==="message"&&!s.has(l.id)))return t+c}o(V2,"activeMessageCountAfterAppend");function S_(e,t){let n=new Set;for(let r of e){if(t.has(r.id)||n.has(r.id))return!0;n.add(r.id)}return!1}o(S_,"hasTailIdCollision");function cC(e){return[e.kind,e.sourceTool??"",e.action??"",e.target].join("::")}o(cC,"artifactLedgerDedupKey");function G2(e,t){if(t.size+e.length>M_)return!0;let n=new Set;for(let r of e){let i=cC(r);if(t.has(i)||n.has(i))return!0;n.add(i)}return!1}o(G2,"hasArtifactTailConflict");function ey(e){return Wo("sha256").update("kodax-conversation-identity-filter-authority-v1\0").update(e,"utf8").digest("hex")}o(ey,"conversationIdentityFilterHash");function K2(e,t,n,r){if(e===void 0)return!1;let i=e,s=new Set;for(let a of t){if(a.type!=="message"||a.parentId!==i||a.logicalId!==void 0&&a.logicalId!==a.id||a.sourceEntryId!==void 0||SA(r,a.id)||s.has(a.id))return!1;s.add(a.id),i=a.id}return n===i}o(K2,"isLinearPreparedMessageTail");function z2(e){return lt(e)&&e._type==="extension_record"&&UM(e)}o(z2,"isPersistedExtensionRecordLine");function q2(e){return lt(e)&&typeof e.id=="string"&&(e.parentId===null||typeof e.parentId=="string")&&typeof e.timestamp=="string"&&typeof e.type=="string"&&(e.logicalId===void 0||typeof e.logicalId=="string")&&(e.sourceEntryId===void 0||typeof e.sourceEntryId=="string")}o(q2,"hasEntryBase");function D_(e){if(!q2(e))return!1;let t=e;switch(t.type){case"message":return mI(t.message);case"compaction":return typeof t.summary=="string"&&(t.firstKeptEntryId===void 0||typeof t.firstKeptEntryId=="string")&&(t.tokensBefore===void 0||typeof t.tokensBefore=="number");case"branch_summary":return typeof t.summary=="string"&&(t.fromId===void 0||typeof t.fromId=="string")&&(t.details===void 0||Po(t.details));case"label":return typeof t.targetId=="string"&&(t.label===void 0||typeof t.label=="string");case"archive_marker":return typeof t.archiveBatchId=="string"&&typeof t.archivedEntryCount=="number"&&typeof t.summary=="string";case"rewind_marker":return typeof t.targetId=="string"&&(t.fromId===void 0||typeof t.fromId=="string")&&typeof t.truncatedCount=="number"&&typeof t.summary=="string";case"client_notice":return typeof t.source=="string"&&typeof t.content=="string"&&(t.turnId===void 0||typeof t.turnId=="string")&&(t.payload===void 0||Po(t.payload));case"goal":return typeof t.event=="string";case"memory_outcome_digest":return lt(t.digest)&&typeof t.digest.id=="string"&&typeof t.digest.reviewKey=="string"&&typeof t.digest.sessionId=="string"&&typeof t.digest.branchId=="string"&&Number.isSafeInteger(t.digest.sequence)&&(t.jobId===void 0||typeof t.jobId=="string");case"memory_review_receipt":return typeof t.reviewKey=="string"&&Array.isArray(t.proposalIds)&&t.proposalIds.every(n=>typeof n=="string")&&(t.status==="completed"||t.status==="no_action")&&typeof t.completedAt=="string"&&(t.jobId===void 0||typeof t.jobId=="string");default:return!1}}o(D_,"isKodaXSessionEntry");function X2(e){return lt(e)&&e._type==="lineage_entry"&&D_(e.entry)}o(X2,"isPersistedLineageEntryLine");function Y2(e){return lt(e)&&e._type==="archived_entry"&&typeof e.archiveBatchId=="string"&&D_(e.entry)}o(Y2,"isPersistedArchivedEntryLine");function x_(e){return typeof e=="string"||e===null?e:void 0}o(x_,"archivedEntryAnchor");function Ns(e){return e.type!=="message"?!1:e.message.content==="[compacted]"?!0:Array.isArray(e.message.content)&&e.message.content.length===1&&e.message.content[0]?.type==="text"&&e.message.content[0].text==="[compacted]"}o(Ns,"isCompactedPlaceholder");function J2(e,t){let n=new Map;for(let r of e)n.set(r.id,r);for(let r of t){let i=n.get(r.id);(!i||Ns(i))&&n.set(r.id,r)}return[...n.values()]}o(J2,"mergeConcurrentLineageEntries");function Uf(e,t,n,r){if(!n||!r||n===r||!t.has(n)||!t.has(r))return;let i=e.get(n)??new Set;i.add(r),e.set(n,i)}o(Uf,"addOrderingEdge");function Q2(e,t,n){let r=new Set,i;for(let s of n)!t.has(s)||r.has(s)||(Uf(e,t,i,s),i=s,r.add(s))}o(Q2,"addSequenceEdges");function I_(e,t){let n=e.length;for(e.push(t);n>0;){let r=Math.floor((n-1)/2);if(e[r]<=t)break;e[n]=e[r],n=r}e[n]=t}o(I_,"pushMin");function Z2(e){let t=e[0],n=e.pop();if(t===void 0||n===void 0||e.length===0)return t;let r=0;for(;;){let i=r*2+1;if(i>=e.length)break;let s=i+1,a=s<e.length&&e[s]<e[i]?s:i;if(e[a]>=n)break;e[r]=e[a],r=a}return e[r]=n,t}o(Z2,"popMin");function C_(e,t){let n=new Map(e.map(r=>[r,0]));for(let r of t.values())for(let i of r)n.set(i,(n.get(i)??0)+1);return n}o(C_,"orderingIndegrees");function T_(e,t,n,r){for(;e.length>0;){let i=Z2(e),s=t[i];if(!n.has(s)&&r(s))return i}}o(T_,"popEligibleIndex");function eV(e,t,n){let r=e.find(a=>!t.has(a));if(!r)return;let i=new Set,s=r;for(;s&&!t.has(s);){if(i.has(s))return s;i.add(s),s=n.get(s)}}o(eV,"findParentCycleNode");function v_(e,t,n,r,i){for(let s of t.get(e)??[]){if(r.has(s))continue;let a=n.get(s)??0;a<=0||(n.set(s,a-1),a===1&&i(s))}}o(v_,"releaseOrderingTargets");function tV(e,t,n,r){let i=new Map(e.map((m,h)=>[m,h])),s=C_(e,t),a=C_(e,n),c=[],l=[],u=new Set,d=[],p=o(m=>{s.get(m)===0&&I_(l,i.get(m)),s.get(m)===0&&a.get(m)===0&&I_(c,i.get(m))},"queueIfReady");for(let m of e)p(m);for(;d.length<e.length;){let m=T_(c,e,u,g=>s.get(g)===0&&a.get(g)===0);if(m??=T_(l,e,u,g=>s.get(g)===0),m===void 0){let g=eV(e,u,r);if(!g)break;s.set(g,0),p(g);continue}let h=e[m];u.add(h),d.push(h),v_(h,t,s,u,p),v_(h,n,a,u,p)}return d}o(tV,"stablePriorityTopologicalOrder");function Wf(e,t){let n=new Map,r=new Map,i=[];for(let p of e){let m=r.get(p.entry.id);m||i.push(p.entry.id),(!m||nV(p,m))&&r.set(p.entry.id,p)}for(let[p,m]of r)n.set(p,m.entry);for(let p of t){let m=n.get(p.id);m||i.push(p.id),(!m||!Ns(p))&&n.set(p.id,p)}let s=new Set(n.keys()),a=new Map;Q2(a,s,t.map(p=>p.id));let c=new Set(t.filter(p=>!Ns(p)).map(p=>p.id)),l=new Map;for(let p of e){let m=`${p.streamId}:${p.archiveBatchId}`;if(!(r.get(p.entry.id)===p&&!c.has(p.entry.id))){l.delete(m);continue}Uf(a,s,l.get(m),p.entry.id),l.set(m,p.entry.id),Uf(a,s,p.previousEntryId,p.entry.id),Uf(a,s,p.entry.id,p.nextEntryId)}let u=new Map,d=new Map;for(let p of n.values())Uf(u,s,p.parentId,p.id),p.parentId&&s.has(p.parentId)&&p.parentId!==p.id&&d.set(p.id,p.parentId);return tV(i,u,a,d).map(p=>n.get(p))}o(Wf,"mergeFullLineageEntries");function nV(e,t){let n=!Ns(e.entry),r=!Ns(t.entry);return n!==r?n:e.streamId!==t.streamId?e.streamId<t.streamId:!0}o(nV,"shouldPreferArchivedRecord");function rV(e,t){let n=e.lineage,r=t.lineage,i=n&&r?{...n,entries:J2(r.entries,n.entries)}:n??r,s=new Map;for(let c of t.artifactLedger??[])s.set(c.id,c);for(let c of e.artifactLedger??[])s.set(c.id,c);let a=new Map;for(let c of t.extensionRecords??[])a.set(c.id,c);for(let c of e.extensionRecords??[])a.set(c.id,c);return{...e,...i?{lineage:i}:{},...e.artifactLedger!==void 0||t.artifactLedger!==void 0?{artifactLedger:[...s.values()]}:{},...e.extensionRecords!==void 0||t.extensionRecords!==void 0?{extensionRecords:[...a.values()]}:{}}}o(rV,"mergeConcurrentAppendData");function iV(e,t,n){let r=n.map(d=>d.entry),i=oV(e,t)?aV(t,e):e,s=new Set(Bc(i).map(d=>d.id)),a=new Map(r.map(d=>[d.id,d])),c=new Map;for(let d of r)Ns(d)||c.set(d.id,d);for(let d of t?.entries??[])Ns(d)||c.set(d.id,d);let l=[],u=new Set;for(let d of i.entries){if(a.has(d.id)&&!s.has(d.id))continue;let p=Ns(d)?c.get(d.id):void 0,m=p?.type==="message"&&d.type==="message"?{...d,message:p.message}:d;l.push(m),u.add(d.id)}for(let d of t?.entries??[])(d.type==="archive_marker"||d.type==="memory_outcome_digest"||d.type==="memory_review_receipt"||d.type==="client_notice")&&!u.has(d.id)&&(l.push(d),u.add(d.id));return{...i,entries:l}}o(iV,"reconcileCompactionLineage");function oV(e,t){if(t===void 0)return!1;let n=new Set(e.entries.map(r=>r.id));return t.entries.some(r=>sV(r)&&!n.has(r.id))}o(oV,"persistedTopologySupersedesIncoming");function sV(e){return e.type==="compaction"||e.type==="rewind_marker"}o(sV,"isTopologyEntry");function aV(e,t){let n=[...e.entries],r=new Set(n.map(i=>i.id));for(let i of t.entries)!r.has(i.id)&&cV(i)&&(n.push(i),r.add(i.id));return{...e,entries:n}}o(aV,"mergeContextSilentLineageEntries");function cV(e){return e.type==="archive_marker"||e.type==="label"||e.type==="goal"||e.type==="client_notice"||e.type==="memory_outcome_digest"||e.type==="memory_review_receipt"}o(cV,"isContextSilentLineageEntry");function lV(e){return lt(e)&&typeof e.id=="string"&&typeof e.kind=="string"&&typeof e.target=="string"&&typeof e.timestamp=="string"&&(e.sourceTool===void 0||typeof e.sourceTool=="string")&&(e.action===void 0||typeof e.action=="string")&&(e.displayTarget===void 0||typeof e.displayTarget=="string")&&(e.summary===void 0||typeof e.summary=="string")&&(e.sessionEntryId===void 0||typeof e.sessionEntryId=="string")&&(e.metadata===void 0||Po(e.metadata))}o(lV,"isKodaXSessionArtifactLedgerEntry");function uV(e){return lt(e)&&e._type==="artifact_ledger_entry"&&lV(e.entry)}o(uV,"isPersistedArtifactLedgerLine");function Vf(e){return lt(e)&&(e.canonicalRepoRoot===void 0||typeof e.canonicalRepoRoot=="string")&&(e.workspaceRoot===void 0||typeof e.workspaceRoot=="string")&&(e.executionCwd===void 0||typeof e.executionCwd=="string")&&(e.branch===void 0||typeof e.branch=="string")&&(e.workspaceKind===void 0||e.workspaceKind==="detected"||e.workspaceKind==="managed")&&(e.sandboxWorktreeRoots===void 0||Array.isArray(e.sandboxWorktreeRoots)&&e.sandboxWorktreeRoots.every(t=>typeof t=="string"))}o(Vf,"isKodaXSessionRuntimeInfo");function dV(e){for(let t=e.length-1;t>=0;t-=1){let n=e[t];if(n&&n.type!=="label"&&n.type!=="goal"&&n.type!=="client_notice"&&n.type!=="rewind_marker")return n.id}return null}o(dV,"getLastNavigableEntryId");var fV="1970-01-01T00:00:00.000Z";function pV(e){let t=e.meta?.id??Wo("sha256").update(e.rawContent).digest("hex"),n=e.meta?.createdAt??fV,r=null,i=e.legacyMessages.map((s,a)=>{let l=`entry_${Wo("sha256").update("kodax-legacy-lineage-v1\0").update(`${t}\0${a}:`).update(JSON.stringify(s)).digest("hex").slice(0,12)}`,u={type:"message",id:l,parentId:r,logicalId:l,timestamp:s.timestamp??n,message:structuredClone(s)};return r=l,u});return{version:2,activeEntryId:r,entries:i}}o(pV,"buildDeterministicLegacyLineage");function mV(e){return e.lineageEntries.length>0?{version:2,activeEntryId:e.meta?.activeEntryId??dV(e.lineageEntries),entries:e.lineageEntries}:e.legacyMessages.length===0?e.meta?.lineageVersion===2?{version:2,activeEntryId:e.meta.activeEntryId??null,entries:[]}:void 0:pV(e)}o(mV,"buildLineage");function b_(e){return typeof e=="string"?`t:${e}`:`j:${JSON.stringify(e)}`}o(b_,"serializeMessageContentForCompare");function hV(e,t){return e===t?!0:e.role===t.role&&e._synthetic===!0==(t._synthetic===!0)&&b_(e.content)===b_(t.content)}o(hV,"sameMessageByContent");function gV(e,t){if(e.lineage)return e.lineage;if(t){let n=Yt(t),r=e.messages;if(r.length<=n.length&&r.every((s,a)=>hV(s,n[a])))return t}return it(e.messages,t)}o(gV,"resolveSnapshotLineage");function R_(e,t){let n=mV(e),r=n?Yt(n):[...e.legacyMessages];return{createdAt:e.meta?.createdAt,filePath:t,...e.mainIdentity!==void 0?{mainIdentity:e.mainIdentity}:{},activeMessageCount:r.length,...e.meta?.lineageIdentityFilterHash!==void 0?{lineageIdentityFilterHash:e.meta.lineageIdentityFilterHash}:{},data:{messages:r,lastMessageAt:rn(e.meta?.lastMessageAt),title:e.meta?.title??"",gitRoot:e.meta?.gitRoot??"",tag:typeof e.meta?.tag=="string"?e.meta.tag:void 0,runtimeInfo:Vf(e.meta?.runtimeInfo)?{...e.meta.runtimeInfo}:void 0,scope:e.meta?.scope??"user",uiHistory:A_(e.meta?.uiHistory),...GM(e.meta?.errorMetadata)?{errorMetadata:{...e.meta.errorMetadata}}:{},extensionState:VM(e.meta?.extensionState)?e.meta?.extensionState:void 0,extensionRecords:e.extensionRecords.map(i=>({...i})),lineage:n,artifactLedger:e.artifactLedger.map(i=>({...i,metadata:i.metadata?structuredClone(i.metadata):void 0})),actorSnapshot:e.meta?.actorSnapshot?structuredClone(e.meta.actorSnapshot):void 0}}}o(R_,"buildSessionData");function Ql(e){let t=structuredClone(e);return t.lineage&&(t.messages=Yt(t.lineage)),t}o(Ql,"cloneSessionDataForRead");function yV(e,t,n,r,i){return{_type:"meta",title:t.title,id:e,gitRoot:t.gitRoot,tag:t.tag,runtimeInfo:t.runtimeInfo?{...t.runtimeInfo}:void 0,createdAt:r??new Date().toISOString(),lastMessageAt:Gl(n?.entries??[],t.lastMessageAt),scope:t.scope??"user",uiHistory:t.uiHistory,errorMetadata:t.errorMetadata,extensionState:t.extensionState,extensionRecordCount:t.extensionRecords?.length??0,artifactLedgerCount:t.artifactLedger?.length??0,actorSnapshot:t.actorSnapshot?structuredClone(t.actorSnapshot):void 0,lineageVersion:n?.version,activeEntryId:n?.activeEntryId,lineageEntryCount:n?.entries.length??0,activeMessageCount:n?us(n):t.messages.length,lineageIdentityFilterHash:i}}o(yV,"createSessionMeta");function ty(e,t,n,r,i,s){return{id:e,title:t,msgCount:n,...r!==void 0?{createdAt:r}:{},...s!==void 0?{lastMessageAt:s}:{},...i!==void 0?{surface:i}:{}}}o(ty,"createResumeIndexEntry");async function ny(e,t=!1,n){let r=n,i;if(r===void 0)try{let l=await Kr(e);r=await Oe.readFile(e,"utf-8");let u=await Kr(e);if(i=l!==null&&u!==null&&bi(l,u)?u:void 0,t&&i===void 0)throw new Ie("data_changed",`Session data changed while reading ${V.basename(e)}; re-read the Session.`)}catch(l){if(l?.code==="ENOENT")return null;throw l}let s=r.trim();if(!s)return null;let a={legacyMessages:[],lineageEntries:[],artifactLedger:[],extensionRecords:[],malformedCount:0,rawContent:r,...i!==void 0?{mainIdentity:i}:{}},c=s.split(`
|
|
94
|
+
`);for(let l=0;l<c.length;l+=1)if(c[l].trim().length!==0)try{let u=JSON.parse(c[l]);if(l===0&<(u)&&u._type==="meta"){if(t&&u.lineageVersion!==void 0&&u.lineageVersion!==2)throw new Ie("version_incompatible",`Unsupported Session lineage version in ${V.basename(e)}: ${String(u.lineageVersion)}`);a.meta=u;continue}if(N2(u)){a.meta&&(u.title!==void 0&&(a.meta.title=u.title),u.tag!==void 0&&(a.meta.tag=u.tag),u.activeEntryId!==void 0&&(a.meta.activeEntryId=u.activeEntryId),u.activeMessageCount!==void 0&&(a.meta.activeMessageCount=u.activeMessageCount),u.uiHistory!==void 0&&(a.meta.uiHistory=A_(u.uiHistory)),u.scope!==void 0&&(a.meta.scope=u.scope),u.lineageIdentityFilterHash!==void 0&&(a.meta.lineageIdentityFilterHash=u.lineageIdentityFilterHash),u.lastMessageAt!==void 0&&(a.meta.lastMessageAt=u.lastMessageAt));continue}if(X2(u)){a.lineageEntries.push(u.entry);continue}if(uV(u)){a.artifactLedger.push(u.entry);continue}if(z2(u)){a.extensionRecords.push({id:u.id,extensionId:u.extensionId,type:u.type,ts:u.ts,data:u.data,dedupeKey:u.dedupeKey});continue}if(mI(u)){a.legacyMessages.push(u);continue}if(t)throw new Ie("version_incompatible",`Unsupported Session record at ${V.basename(e)}:${l+1}`);a.malformedCount+=1}catch(u){if(u instanceof Ie)throw u;if(t)throw new Ie("data_corrupt",`Malformed Session record at ${V.basename(e)}:${l+1}`);a.malformedCount+=1}return a}o(ny,"readPersistedSessionFile");var lC=65536;async function B_(e,t){let n=await Oe.open(e,"r");try{let r=[],i=0;for(;;){Pn(t);let a=Buffer.allocUnsafe(lC),{bytesRead:c}=await n.read(a,0,a.length,i);if(c===0)break;let l=a.subarray(0,c),u=l.indexOf(10);if(r.push(u<0?l:l.subarray(0,u)),u>=0)break;i+=c}if(r.length===0)throw new Ie("data_corrupt","Session metadata is empty");let s;try{s=JSON.parse(Buffer.concat(r).toString("utf8").trim())}catch(a){throw new Ie("data_corrupt",`Session metadata is invalid: ${a instanceof Error?a.message:String(a)}`)}return!lt(s)||s._type!=="meta"?{}:s}finally{await n.close()}}o(B_,"readSessionMetadata");async function wV(e){let t=await B_(e),n=Vf(t.runtimeInfo)?t.runtimeInfo:void 0;return{...n?.surface!==void 0?{surface:n.surface}:{},...n?.profileId!==void 0?{profileId:n.profileId}:{}}}o(wV,"readConversationPageAdmission");async function SV(e){let t;try{t=await Oe.open(e,"r");let n=Buffer.allocUnsafe(lC),{bytesRead:r}=await t.read(n,0,lC,0);if(r===0)return null;let i=n.toString("utf8",0,r),s=i.indexOf(`
|
|
95
95
|
`);if(s>=0)return i.slice(0,s).trim();let a=await Oe.readFile(e,"utf-8"),c=a.indexOf(`
|
|
96
96
|
`);return(c>=0?a.slice(0,c):a).trim()}catch{return null}finally{await t?.close()}}o(SV,"readSessionFirstLine");async function k_(e){try{let t=(await Oe.readFile(e,"utf-8")).trim();return t?t.split(`
|
|
97
|
-
`).length:0}catch{return 0}}o(k_,"countSessionLines");var E_=new Map;function xV(e){let t=E_.get(e);return t===void 0&&(t=new Map,E_.set(e,t)),t}o(xV,"processSessionLocationIndex");var Ri=class{static{o(this,"FileSessionStorage")}actorSnapshotEligibilityTimeoutMs=M2;sessionsDir;configHome;sessionLocations;verifiedLocationMisses=new Map;drafts=new Map;hostCwd;emitMismatchWarnings;constructor(t){this.sessionsDir=V.resolve(t?.sessionsDir??fs),this.configHome=V.resolve(t?.configHome??tS),this.sessionLocations=xV(this.sessionsDir),this.hostCwd=t?.cwd,this.emitMismatchWarnings=t?.emitMismatchWarnings??!1}getSessionsDir(){return this.sessionsDir}currentPreparedSessionAppend(t){let n=this.appendState.get(t);return n===void 0||n.filePath===void 0||n.mainIdentity===void 0||n.lineageIdentityFilter===void 0||n.lineageIdentityFilterHash===void 0||n.bundleBoundaryRevision===void 0||n.artifactCount>M_||n.artifactEntryIds.size!==n.artifactCount||n.artifactDedupKeys.size!==n.artifactCount||n.extensionRecordIds.size!==n.extensionCount?null:{sessionId:t,revision:n.appendRevision,lineageCount:n.lineageCount,artifactCount:n.artifactCount,extensionCount:n.extensionCount,activeEntryId:n.activeEntryId??null,...n.tag!==void 0?{tag:n.tag}:{}}}async prepareSessionAppend(t){let n=this.currentPreparedSessionAppend(t);if(n!==null)return n;let r=this.appendState.get(t);if(r?.filePath===void 0||r.mainIdentity===void 0)return null;let i=r.appendRevision;try{let s=await Ul(r.filePath);if(s===void 0)return null;let a=await Wf(this.sessionsDir,t,r.filePath),c=this.appendState.get(t),l=a.identities[0];return c===void 0||c.appendRevision!==i||c.mainIdentity===void 0||l===null||l===void 0||!bi(c.mainIdentity,l)||s.boundaryRevision!==a.revision||ey(s.identityFilter)!==c.lineageIdentityFilterHash?null:(c.lineageIdentityFilter=s.identityFilter,c.bundleBoundaryRevision=a.revision,this.currentPreparedSessionAppend(t))}catch(s){if(s instanceof Ie&&s.code==="data_changed")return null;throw s}}indexSessionLocations(t,n,r){let i=n&&r!==void 0,s=new Map;for(let a of t){let c=V.basename(a,".jsonl"),l=s.get(c)??[];l.push(a),s.set(c,l)}for(let[a,c]of s){let l=[...new Set(c)].sort();if(i){this.sessionLocations.set(a,l.length===1?{kind:"located",filePath:l[0],globallyVerified:!0,topologyIdentity:r}:{kind:"ambiguous",filePaths:l});continue}let u=this.sessionLocations.get(a),d=[...new Set([...l,...u?.kind==="located"?[u.filePath]:u?.filePaths??[]])].filter(m=>St.existsSync(m)).sort();if(d.length===0){this.sessionLocations.delete(a);continue}let p=u?.kind==="located"&&u.filePath===d[0]&&this.isLocationGloballyVerified(a);this.sessionLocations.set(a,d.length===1?{kind:"located",filePath:d[0],globallyVerified:p,...p&&u?.kind==="located"?{topologyIdentity:u.topologyIdentity}:{}}:{kind:"ambiguous",filePaths:d})}}beginSessionLocationTraversal(){let t=!0;try{St.mkdirSync(V.join(this.sessionsDir,iy),{recursive:!0})}catch(n){t=!1,jt("warn","Unable to prepare the durable Session location index.",n)}return{topologyBefore:t?this.readSessionTopologyIdentitySync("","global"):void 0,writerTopologyDigestBefore:t?QI(this.sessionsDir):void 0,topologyMutationBefore:!t||St.existsSync(Ho(this.sessionsDir))}}completeSessionLocationTraversal(t,n,r){let i=this.readSessionTopologyIdentitySync("","global"),s=QI(this.sessionsDir);if(!(r&&!t.topologyMutationBefore&&!St.existsSync(Ho(this.sessionsDir))&&t.topologyBefore!==void 0&&t.writerTopologyDigestBefore!==void 0&&i!==void 0&&s!==void 0&&Os(t.topologyBefore,i)&&t.writerTopologyDigestBefore===s)){this.indexSessionLocations(n,!1);return}let c=new Map;for(let p of n){let m=V.basename(p,".jsonl"),h=c.get(m)??[];h.push(p),c.set(m,h)}let l=new Map;for(let p of c.keys()){let m=this.readSessionTopologyIdentitySync(p);if(m===void 0){this.indexSessionLocations(n,!1);return}l.set(p,m)}let u=this.readSessionTopologyIdentitySync("","global");if(!(u!==void 0&&i!==void 0&&!St.existsSync(Ho(this.sessionsDir))&&Os(i,u))){this.indexSessionLocations(n,!1);return}for(let[p,m]of c)this.indexSessionLocations(m,!0,l.get(p))}writeQueues=new Map;serializedWrite(t,n,r){let i=this.writeQueues.get(t)??Promise.resolve(),s=o(async()=>{r?.onDequeued(),r?.beforeFileLock();try{await gm(this.sessionWriteLockPath(t),async()=>{r?.onFileLockAcquired(),ZI(this.sessionsDir),await n()},ry)}finally{r?.onFileLockSettled()}this.refreshSelfVerifiedLocationTopology(t),await this.persistSessionLocationHint(t)},"locked"),a=i.then(s,s);this.writeQueues.set(t,a);let c=o(()=>{this.writeQueues.get(t)===a&&this.writeQueues.delete(t)},"retire");return a.then(c,c),a}async awaitOwnWrites(t,n,r){for(;;){Gf(n,r);let i=this.writeQueues.get(t);if(!i)return;await i}}refreshSelfVerifiedLocationTopology(t){let n=this.sessionLocations.get(t);if(n?.kind!=="located"||!n.globallyVerified||n.topologyIdentity?.writerScope!=="session"||n.topologyIdentity.activeWriterIdentity===null)return;let r=n.topologyIdentity,i=this.readSessionTopologyIdentitySync(t);i===void 0||i.activeWriterIdentity!==null||!B2(r,i)||this.sessionLocations.set(t,{kind:"located",filePath:n.filePath,globallyVerified:!0,topologyIdentity:i})}sessionWriteLockPath(t){return Zl(this.sessionsDir,t)}async persistSessionLocationHint(t){let n=__(this.sessionsDir,t);try{let r=this.sessionLocations.get(t);if(r===void 0){await Oe.rm(n,{force:!0});return}if(r.kind!=="located"||!r.globallyVerified){await Oe.rm(n,{force:!0});return}let i=[r.filePath];if((await Promise.all(i.map(eC))).some(p=>p!=="present"))return;await Oe.mkdir(V.dirname(n),{recursive:!0});let a=await Zg(this.sessionsDir,t);if(a===null||a.activeWriterIdentity!==null||St.existsSync(Ho(this.sessionsDir))||r.topologyIdentity===void 0||!Os(r.topologyIdentity,a))return;let c=i.map(p=>V.relative(this.sessionsDir,p).replace(/\\/g,"/")),l={version:1,id:t,filePaths:c,topology:{root:m_(a.root),epoch:a.epoch,writerIdentity:a.writerIdentity===null?null:m_(a.writerIdentity)}},u=`${n}.${process.pid}.${Ql()}.tmp`,d;try{d=await Oe.open(u,"wx"),await d.writeFile(JSON.stringify(l),"utf8"),await d.sync(),await d.close(),d=void 0,await Qg(u,n)}finally{await d?.close().catch(()=>{}),await Oe.rm(u,{force:!0})}this.sessionLocations.set(t,{kind:"located",filePath:i[0],globallyVerified:!0,topologyIdentity:a})}catch(r){jt("warn",`Unable to update the Session location hint for ${t}.`,r)}}async resolveSessionLocationHint(t,n){let r;try{r=await W2(this.sessionsDir,t)}catch(l){jt("warn",`Unable to read the Session location hint for ${t}.`,l);return}if(r===void 0||St.existsSync(Ho(this.sessionsDir)))return;let i=await Zg(this.sessionsDir,t);if(i===null||i.activeWriterIdentity!==null||!Os(r.topology,i))return;let s=await Promise.all(r.filePaths.map(eC)),a=s.findIndex(l=>l==="unverifiable");if(a>=0&&n)throw oy(t,r.filePaths[a]);if(s.some(l=>l!=="present"))return;if(r.filePaths.length===1)return this.sessionLocations.set(t,{kind:"located",filePath:r.filePaths[0],globallyVerified:!0,topologyIdentity:i}),r.filePaths[0];let c=[...r.filePaths].sort();if(this.sessionLocations.set(t,{kind:"ambiguous",filePaths:c}),n)throw new Ie("data_changed",`Ambiguous Session id ${t} has multiple persisted main files`);return this.resolveAmbiguousSessionLocation(t,c)}appendState=new Map;lineageIdentityFilterHashes=new Map;projectJsonWritten=new Map;migrationPromise;ensureMigrated(){if(!this.migrationPromise){let t;t=qa(this.sessionsDir).catch(n=>{throw this.migrationPromise===t&&(this.migrationPromise=void 0),n}),this.migrationPromise=t}return this.migrationPromise}syncAppendState(t,n,r,i){let s=this.appendState.get(t);this.appendState.set(t,{appendRevision:Ql(),lineageCount:n.lineage?.entries.length??s?.lineageCount??0,artifactCount:n.artifactLedger?.length??s?.artifactCount??0,extensionCount:n.extensionRecords?.length??s?.extensionCount??0,activeEntryId:n.lineage===void 0?s?.activeEntryId:n.lineage.activeEntryId,activeMessageCount:i??(n.lineage?us(n.lineage):n.messages.length),presentationOnlyHistoryCount:n.uiHistory===void 0?s?.presentationOnlyHistoryCount??0:Ji(0,n.uiHistory),lineageIdentityFilter:void 0,lineageIdentityFilterHash:this.lineageIdentityFilterHashes.get(t),bundleBoundaryRevision:void 0,artifactEntryIds:n.artifactLedger?new Set(n.artifactLedger.map(a=>a.id)):s?.artifactEntryIds??new Set,artifactDedupKeys:n.artifactLedger?new Set(n.artifactLedger.map(aC)):s?.artifactDedupKeys??new Set,extensionRecordIds:n.extensionRecords?new Set(n.extensionRecords.map(a=>a.id)):s?.extensionRecordIds??new Set,tag:n.tag!==void 0?n.tag:s?.tag,scope:n.scope??s?.scope,surface:n.runtimeInfo?.surface??s?.surface,lastMessageAt:Vl(n.lineage?.entries??[],n.lastMessageAt??s?.lastMessageAt),projectCanonicalRoot:ti(n).canonicalRoot??s?.projectCanonicalRoot,filePath:r?.filePath??s?.filePath,mainIdentity:r?.mainIdentity})}async syncAppendStateFromFile(t,n,r,i){this.syncAppendState(t,n,{filePath:r,mainIdentity:await Kr(r)??void 0},i)}legacyFlatPath(t){return V.join(this.sessionsDir,`${t}.jsonl`)}legacyFlatArchivePath(t){return V.join(this.sessionsDir,`${t}.archive.jsonl`)}projectDir(t){return V.join(this.sessionsDir,t)}resolveWriteDir(t,n){let r=this.sessionLocations.get(t);if(r?.kind==="located"){let s=V.dirname(r.filePath);if(s!==this.sessionsDir)return V.basename(s)==="archived"?V.dirname(s):s}let i=ti(n);return this.projectDir(i.key)}isLocationGloballyVerified(t){return this.verifiedLocationTopology(t)!==void 0}verifiedLocationTopology(t){let n=this.sessionLocations.get(t);if(n?.kind!=="located"||!n.globallyVerified||n.topologyIdentity===void 0)return;let r=this.readSessionTopologyIdentitySync(t,n.topologyIdentity.writerScope);return r!==void 0&&Os(n.topologyIdentity,r)?n.topologyIdentity:void 0}verifiedMissingLocationTopology(t){let n=this.verifiedLocationMisses.get(t);if(n===void 0)return;let r=this.readSessionTopologyIdentitySync(t,n.writerScope);if(r!==void 0&&Os(n,r))return n;this.verifiedLocationMisses.delete(t)}assertLocationTopologyUnchanged(t,n){Fo(this.sessionsDir,t);let r=n===void 0?void 0:this.readSessionTopologyIdentitySync(t,n.writerScope);if(n===void 0||r===void 0||!Os(n,r))throw new Ie("data_changed",`Session location topology changed during the read boundary for ${t}`)}readSessionTopologyIdentitySync(t,n="session"){try{let r=Za(St.statSync(this.sessionsDir,{bigint:!0})),i;try{i=Za(St.statSync(n==="session"?P_(this.sessionsDir,t):lC(this.sessionsDir),{bigint:!0}))}catch(a){if(a.code!=="ENOENT")return;i=null}let s=null;if(n==="session")try{s=Za(St.statSync(Zl(this.sessionsDir,t),{bigint:!0}))}catch(a){if(a.code!=="ENOENT")return}try{return{root:r,epoch:St.readFileSync(V.join(this.sessionsDir,nC),"utf8").trim(),writerScope:n,writerIdentity:i,activeWriterIdentity:s}}catch(a){return a.code==="ENOENT"?{root:r,epoch:null,writerScope:n,writerIdentity:i,activeWriterIdentity:s}:void 0}}catch{return}}async advanceSessionLocationTopology(){let t=V.join(this.sessionsDir,nC),n=`${t}.${process.pid}.${Date.now()}.${JI++}.tmp`,r;try{r=await Oe.open(n,"wx"),await r.writeFile(`${Ql()}
|
|
98
|
-
`,"utf8"),await r.sync(),await r.close(),r=void 0,await Qg(n,t)}finally{await r?.close().catch(()=>{}),await Oe.unlink(n).catch(i=>{if(i.code!=="ENOENT")throw i})}}withSessionLocationTopologyChange(t,n){return
|
|
97
|
+
`).length:0}catch{return 0}}o(k_,"countSessionLines");var E_=new Map;function xV(e){let t=E_.get(e);return t===void 0&&(t=new Map,E_.set(e,t)),t}o(xV,"processSessionLocationIndex");var Ri=class{static{o(this,"FileSessionStorage")}actorSnapshotEligibilityTimeoutMs=M2;sessionsDir;configHome;sessionLocations;verifiedLocationMisses=new Map;drafts=new Map;hostCwd;emitMismatchWarnings;constructor(t){this.sessionsDir=V.resolve(t?.sessionsDir??fs),this.configHome=V.resolve(t?.configHome??nS),this.sessionLocations=xV(this.sessionsDir),this.hostCwd=t?.cwd,this.emitMismatchWarnings=t?.emitMismatchWarnings??!1}getSessionsDir(){return this.sessionsDir}currentPreparedSessionAppend(t){let n=this.appendState.get(t);return n===void 0||n.filePath===void 0||n.mainIdentity===void 0||n.lineageIdentityFilter===void 0||n.lineageIdentityFilterHash===void 0||n.bundleBoundaryRevision===void 0||n.artifactCount>M_||n.artifactEntryIds.size!==n.artifactCount||n.artifactDedupKeys.size!==n.artifactCount||n.extensionRecordIds.size!==n.extensionCount?null:{sessionId:t,revision:n.appendRevision,lineageCount:n.lineageCount,artifactCount:n.artifactCount,extensionCount:n.extensionCount,activeEntryId:n.activeEntryId??null,...n.tag!==void 0?{tag:n.tag}:{}}}async prepareSessionAppend(t){let n=this.currentPreparedSessionAppend(t);if(n!==null)return n;let r=this.appendState.get(t);if(r?.filePath===void 0||r.mainIdentity===void 0)return null;let i=r.appendRevision;try{let s=await Vl(r.filePath);if(s===void 0)return null;let a=await jf(this.sessionsDir,t,r.filePath),c=this.appendState.get(t),l=a.identities[0];return c===void 0||c.appendRevision!==i||c.mainIdentity===void 0||l===null||l===void 0||!bi(c.mainIdentity,l)||s.boundaryRevision!==a.revision||ey(s.identityFilter)!==c.lineageIdentityFilterHash?null:(c.lineageIdentityFilter=s.identityFilter,c.bundleBoundaryRevision=a.revision,this.currentPreparedSessionAppend(t))}catch(s){if(s instanceof Ie&&s.code==="data_changed")return null;throw s}}indexSessionLocations(t,n,r){let i=n&&r!==void 0,s=new Map;for(let a of t){let c=V.basename(a,".jsonl"),l=s.get(c)??[];l.push(a),s.set(c,l)}for(let[a,c]of s){let l=[...new Set(c)].sort();if(i){this.sessionLocations.set(a,l.length===1?{kind:"located",filePath:l[0],globallyVerified:!0,topologyIdentity:r}:{kind:"ambiguous",filePaths:l});continue}let u=this.sessionLocations.get(a),d=[...new Set([...l,...u?.kind==="located"?[u.filePath]:u?.filePaths??[]])].filter(m=>ft.existsSync(m)).sort();if(d.length===0){this.sessionLocations.delete(a);continue}let p=u?.kind==="located"&&u.filePath===d[0]&&this.isLocationGloballyVerified(a);this.sessionLocations.set(a,d.length===1?{kind:"located",filePath:d[0],globallyVerified:p,...p&&u?.kind==="located"?{topologyIdentity:u.topologyIdentity}:{}}:{kind:"ambiguous",filePaths:d})}}beginSessionLocationTraversal(){let t=!0;try{ft.mkdirSync(V.join(this.sessionsDir,iy),{recursive:!0})}catch(n){t=!1,jt("warn","Unable to prepare the durable Session location index.",n)}return{topologyBefore:t?this.readSessionTopologyIdentitySync("","global"):void 0,writerTopologyDigestBefore:t?ZI(this.sessionsDir):void 0,topologyMutationBefore:!t||ft.existsSync(Qi(this.sessionsDir))}}completeSessionLocationTraversal(t,n,r){let i=this.readSessionTopologyIdentitySync("","global"),s=ZI(this.sessionsDir);if(!(r&&!t.topologyMutationBefore&&!ft.existsSync(Qi(this.sessionsDir))&&t.topologyBefore!==void 0&&t.writerTopologyDigestBefore!==void 0&&i!==void 0&&s!==void 0&&Os(t.topologyBefore,i)&&t.writerTopologyDigestBefore===s)){this.indexSessionLocations(n,!1);return}let c=new Map;for(let p of n){let m=V.basename(p,".jsonl"),h=c.get(m)??[];h.push(p),c.set(m,h)}let l=new Map;for(let p of c.keys()){let m=this.readSessionTopologyIdentitySync(p);if(m===void 0){this.indexSessionLocations(n,!1);return}l.set(p,m)}let u=this.readSessionTopologyIdentitySync("","global");if(!(u!==void 0&&i!==void 0&&!ft.existsSync(Qi(this.sessionsDir))&&Os(i,u))){this.indexSessionLocations(n,!1);return}for(let[p,m]of c)this.indexSessionLocations(m,!0,l.get(p))}writeQueues=new Map;serializedWrite(t,n,r){let i=this.writeQueues.get(t)??Promise.resolve(),s=o(async()=>{r?.onDequeued(),r?.beforeFileLock();try{await hm(this.sessionWriteLockPath(t),async()=>{r?.onFileLockAcquired(),eC(this.sessionsDir),await n()},ry)}finally{r?.onFileLockSettled()}this.refreshSelfVerifiedLocationTopology(t),await this.persistSessionLocationHint(t)},"locked"),a=i.then(s,s);this.writeQueues.set(t,a);let c=o(()=>{this.writeQueues.get(t)===a&&this.writeQueues.delete(t)},"retire");return a.then(c,c),a}async awaitOwnWrites(t,n,r){for(;;){Gf(n,r);let i=this.writeQueues.get(t);if(!i)return;await i}}refreshSelfVerifiedLocationTopology(t){let n=this.sessionLocations.get(t);if(n?.kind!=="located"||!n.globallyVerified||n.topologyIdentity?.writerScope!=="session"||n.topologyIdentity.activeWriterIdentity===null)return;let r=n.topologyIdentity,i=this.readSessionTopologyIdentitySync(t);i===void 0||i.activeWriterIdentity!==null||!B2(r,i)||this.sessionLocations.set(t,{kind:"located",filePath:n.filePath,globallyVerified:!0,topologyIdentity:i})}sessionWriteLockPath(t){return eu(this.sessionsDir,t)}async persistSessionLocationHint(t){let n=__(this.sessionsDir,t);try{let r=this.sessionLocations.get(t);if(r===void 0){await Oe.rm(n,{force:!0});return}if(r.kind!=="located"||!r.globallyVerified){await Oe.rm(n,{force:!0});return}let i=[r.filePath];if((await Promise.all(i.map(tC))).some(p=>p!=="present"))return;await Oe.mkdir(V.dirname(n),{recursive:!0});let a=await Zg(this.sessionsDir,t);if(a===null||a.activeWriterIdentity!==null||ft.existsSync(Qi(this.sessionsDir))||r.topologyIdentity===void 0||!Os(r.topologyIdentity,a))return;let c=i.map(p=>V.relative(this.sessionsDir,p).replace(/\\/g,"/")),l={version:1,id:t,filePaths:c,topology:{root:m_(a.root),epoch:a.epoch,writerIdentity:a.writerIdentity===null?null:m_(a.writerIdentity)}},u=`${n}.${process.pid}.${Zl()}.tmp`,d;try{d=await Oe.open(u,"wx"),await d.writeFile(JSON.stringify(l),"utf8"),await d.sync(),await d.close(),d=void 0,await Qg(u,n)}finally{await d?.close().catch(()=>{}),await Oe.rm(u,{force:!0})}this.sessionLocations.set(t,{kind:"located",filePath:i[0],globallyVerified:!0,topologyIdentity:a})}catch(r){jt("warn",`Unable to update the Session location hint for ${t}.`,r)}}async resolveSessionLocationHint(t,n){let r;try{r=await W2(this.sessionsDir,t)}catch(l){jt("warn",`Unable to read the Session location hint for ${t}.`,l);return}if(r===void 0||ft.existsSync(Qi(this.sessionsDir)))return;let i=await Zg(this.sessionsDir,t);if(i===null||i.activeWriterIdentity!==null||!Os(r.topology,i))return;let s=await Promise.all(r.filePaths.map(tC)),a=s.findIndex(l=>l==="unverifiable");if(a>=0&&n)throw oy(t,r.filePaths[a]);if(s.some(l=>l!=="present"))return;if(r.filePaths.length===1)return this.sessionLocations.set(t,{kind:"located",filePath:r.filePaths[0],globallyVerified:!0,topologyIdentity:i}),r.filePaths[0];let c=[...r.filePaths].sort();if(this.sessionLocations.set(t,{kind:"ambiguous",filePaths:c}),n)throw new Ie("data_changed",`Ambiguous Session id ${t} has multiple persisted main files`);return this.resolveAmbiguousSessionLocation(t,c)}appendState=new Map;lineageIdentityFilterHashes=new Map;projectJsonWritten=new Map;migrationPromise;ensureMigrated(){if(!this.migrationPromise){let t;t=Xa(this.sessionsDir).catch(n=>{throw this.migrationPromise===t&&(this.migrationPromise=void 0),n}),this.migrationPromise=t}return this.migrationPromise}syncAppendState(t,n,r,i){let s=this.appendState.get(t);this.appendState.set(t,{appendRevision:Zl(),lineageCount:n.lineage?.entries.length??s?.lineageCount??0,artifactCount:n.artifactLedger?.length??s?.artifactCount??0,extensionCount:n.extensionRecords?.length??s?.extensionCount??0,activeEntryId:n.lineage===void 0?s?.activeEntryId:n.lineage.activeEntryId,activeMessageCount:i??(n.lineage?us(n.lineage):n.messages.length),presentationOnlyHistoryCount:n.uiHistory===void 0?s?.presentationOnlyHistoryCount??0:Ji(0,n.uiHistory),lineageIdentityFilter:void 0,lineageIdentityFilterHash:this.lineageIdentityFilterHashes.get(t),bundleBoundaryRevision:void 0,artifactEntryIds:n.artifactLedger?new Set(n.artifactLedger.map(a=>a.id)):s?.artifactEntryIds??new Set,artifactDedupKeys:n.artifactLedger?new Set(n.artifactLedger.map(cC)):s?.artifactDedupKeys??new Set,extensionRecordIds:n.extensionRecords?new Set(n.extensionRecords.map(a=>a.id)):s?.extensionRecordIds??new Set,tag:n.tag!==void 0?n.tag:s?.tag,scope:n.scope??s?.scope,surface:n.runtimeInfo?.surface??s?.surface,lastMessageAt:Gl(n.lineage?.entries??[],n.lastMessageAt??s?.lastMessageAt),projectCanonicalRoot:ti(n).canonicalRoot??s?.projectCanonicalRoot,filePath:r?.filePath??s?.filePath,mainIdentity:r?.mainIdentity})}async syncAppendStateFromFile(t,n,r,i){this.syncAppendState(t,n,{filePath:r,mainIdentity:await Kr(r)??void 0},i)}legacyFlatPath(t){return V.join(this.sessionsDir,`${t}.jsonl`)}legacyFlatArchivePath(t){return V.join(this.sessionsDir,`${t}.archive.jsonl`)}projectDir(t){return V.join(this.sessionsDir,t)}resolveWriteDir(t,n){let r=this.sessionLocations.get(t);if(r?.kind==="located"){let s=V.dirname(r.filePath);if(s!==this.sessionsDir)return V.basename(s)==="archived"?V.dirname(s):s}let i=ti(n);return this.projectDir(i.key)}isLocationGloballyVerified(t){return this.verifiedLocationTopology(t)!==void 0}verifiedLocationTopology(t){let n=this.sessionLocations.get(t);if(n?.kind!=="located"||!n.globallyVerified||n.topologyIdentity===void 0)return;let r=this.readSessionTopologyIdentitySync(t,n.topologyIdentity.writerScope);return r!==void 0&&Os(n.topologyIdentity,r)?n.topologyIdentity:void 0}verifiedMissingLocationTopology(t){let n=this.verifiedLocationMisses.get(t);if(n===void 0)return;let r=this.readSessionTopologyIdentitySync(t,n.writerScope);if(r!==void 0&&Os(n,r))return n;this.verifiedLocationMisses.delete(t)}assertLocationTopologyUnchanged(t,n){Fo(this.sessionsDir,t);let r=n===void 0?void 0:this.readSessionTopologyIdentitySync(t,n.writerScope);if(n===void 0||r===void 0||!Os(n,r))throw new Ie("data_changed",`Session location topology changed during the read boundary for ${t}`)}readSessionTopologyIdentitySync(t,n="session"){try{let r=ec(ft.statSync(this.sessionsDir,{bigint:!0})),i;try{i=ec(ft.statSync(n==="session"?P_(this.sessionsDir,t):uC(this.sessionsDir),{bigint:!0}))}catch(a){if(a.code!=="ENOENT")return;i=null}let s=null;if(n==="session")try{s=ec(ft.statSync(eu(this.sessionsDir,t),{bigint:!0}))}catch(a){if(a.code!=="ENOENT")return}try{return{root:r,epoch:ft.readFileSync(V.join(this.sessionsDir,rC),"utf8").trim(),writerScope:n,writerIdentity:i,activeWriterIdentity:s}}catch(a){return a.code==="ENOENT"?{root:r,epoch:null,writerScope:n,writerIdentity:i,activeWriterIdentity:s}:void 0}}catch{return}}async advanceSessionLocationTopology(){let t=V.join(this.sessionsDir,rC),n=`${t}.${process.pid}.${Date.now()}.${QI++}.tmp`,r;try{r=await Oe.open(n,"wx"),await r.writeFile(`${Zl()}
|
|
98
|
+
`,"utf8"),await r.sync(),await r.close(),r=void 0,await Qg(n,t)}finally{await r?.close().catch(()=>{}),await Oe.unlink(n).catch(i=>{if(i.code!=="ENOENT")throw i})}}withSessionLocationTopologyChange(t,n){return hm(Qi(this.sessionsDir),async()=>(await this.advanceSessionLocationTopology(),n?.(),t()),ry)}writeFilePath(t,n){return V.join(this.resolveWriteDir(t,n),`${t}.jsonl`)}async resolveSessionLocation(t,n=!1){n&&await L_(this.sessionsDir,t);let r=this.sessionLocations.get(t);if(r?.kind==="located"&&ft.existsSync(r.filePath)&&(!n||this.isLocationGloballyVerified(t)))return r.filePath;if(r?.kind==="ambiguous"){let h=r.filePaths.filter(g=>ft.existsSync(g));if(h.length===r.filePaths.length){if(n)throw new Ie("data_changed",`Ambiguous Session id ${t} has multiple persisted main files`);return this.resolveAmbiguousSessionLocation(t,h)}}let i=await this.resolveSessionLocationHint(t,n);if(i!==void 0)return i;let s=!0;try{await Oe.mkdir(V.join(this.sessionsDir,iy),{recursive:!0})}catch(h){s=!1,jt("warn",`Unable to prepare the durable Session location index for ${t}.`,h)}let a=this.legacyFlatPath(t),c;try{c=await Zg(this.sessionsDir,t)}catch{s=!1}let l=[];try{l=await Oe.readdir(this.sessionsDir,{withFileTypes:!0})}catch(h){h.code!=="ENOENT"&&(s=!1),l=[]}let u=[a];for(let h of l)!h.isDirectory()||h.name.startsWith(".")||u.push(V.join(this.sessionsDir,h.name,`${t}.jsonl`),V.join(this.sessionsDir,h.name,"archived",`${t}.jsonl`));let d=[],p=48;for(let h=0;h<u.length;h+=p){let g=u.slice(h,h+p),S=await Promise.all(g.map(tC));for(let[T,x]of S.entries()){let I=g[T];x==="present"&&d.push(I),x==="unverifiable"&&(s=!1)}}d.sort();let m;try{m=await Zg(this.sessionsDir,t)}catch{s=!1}if(s=s&&c!==void 0&&m!==void 0&&H2(c,m),n&&!s)throw new Ie("data_changed",`Session location topology could not be verified for ${t}`);if(n&&Fo(this.sessionsDir,t),d.length===0)return this.sessionLocations.delete(t),s&&m!==null&&m!==void 0?this.verifiedLocationMisses.set(t,m):this.verifiedLocationMisses.delete(t),await this.persistSessionLocationHint(t),null;if(this.verifiedLocationMisses.delete(t),d.length===1)return this.sessionLocations.set(t,{kind:"located",filePath:d[0],globallyVerified:s,...s&&m!==null&&m!==void 0?{topologyIdentity:m}:{}}),await this.persistSessionLocationHint(t),d[0];if(this.sessionLocations.set(t,{kind:"ambiguous",filePaths:d}),await this.persistSessionLocationHint(t),n)throw new Ie("data_changed",`Ambiguous Session id ${t} has multiple persisted main files`);return this.resolveAmbiguousSessionLocation(t,d)}async resolveAmbiguousSessionLocation(t,n){if(this.hostCwd){let r=await Hi({cwd:this.hostCwd}),i=await ps(this.hostCwd),s=this.projectDir(ti({gitRoot:i??void 0,runtimeInfo:r}).key),a=n.find(c=>{let l=V.dirname(c);return l===s||V.basename(l)==="archived"&&V.dirname(l)===s});if(a)return a}return Ho(`[KodaX] Ambiguous session id ${t} found in ${n.length} projects; ${this.hostCwd?"no current-project match \u2014 ":""}returning the first match. Specify projectKey to disambiguate.`),n[0]}async readSession(t,n={}){let r=this.drafts.get(t);if(r)return{data:Ql(r),filePath:this.writeFilePath(t,r),activeMessageCount:r.messages.length};n.migrate!==!1&&await this.ensureMigrated();let i=await this.resolveSessionLocation(t,n.strict===!0);if(!i)return null;let s=n.strict===!0?this.verifiedLocationTopology(t):void 0,a=await ny(i,n.strict===!0);if(!a)return null;n.strict===!0&&this.assertLocationTopologyUnchanged(t,s),g_(i,a.malformedCount);let c=R_(a,i);return c.lineageIdentityFilterHash===void 0?this.lineageIdentityFilterHashes.delete(t):this.lineageIdentityFilterHashes.set(t,c.lineageIdentityFilterHash),c}async readArchivedEntries(t,n,r=!1,i){let s=n??await this.resolveSessionLocation(t);if(!s)return[];let a=V.dirname(s),c=[V.join(a,`${t}.islands.jsonl`),V.join(a,`${t}.archive.jsonl`)],l=[];for(let u=0;u<c.length;u+=1){let d=c[u],p;if(i?.has(d)){let g=i.get(d);if(g==null)continue;p=g}else try{p=await Oe.readFile(d,"utf-8")}catch(g){if(g.code==="ENOENT")continue;throw g}let m=p.split(/\r?\n/),h=-1;for(let g=m.length-1;g>=0;g-=1)if((m[g]??"").trim().length>0){h=g;break}for(let g=0;g<m.length;g+=1){let S=m[g]??"";if(S.trim())try{let T=JSON.parse(S);if(Y2(T)){let x=T;l.push({...T,previousEntryId:x_(x.previousEntryId),nextEntryId:x_(x.nextEntryId),streamId:u})}else{if(lt(T)&&T._type==="archive_batch")continue;if(r)throw new Ie("version_incompatible",`Unsupported island sidecar record at ${V.basename(d)}:${g+1}`)}}catch(T){if(T instanceof Ie)throw T;if(r)throw new Ie("data_corrupt",`Malformed island sidecar record at ${V.basename(d)}:${g+1}`);jt("warn",g===h?`Ignored incomplete island sidecar tail ${V.basename(d)}:${g+1}.`:`Skipped malformed island sidecar record ${V.basename(d)}:${g+1}.`,T)}}}return l}async completeConversationLineage(t,n,r){let i=await this.readArchivedEntries(t,n);return i.length===0?r:{...r,entries:Wf(i,r.entries)}}async appendIslandArchive(t,n,r,i,s,a){if(r.length===0)return;let c=a?V.dirname(a):this.resolveWriteDir(t,n);await Oe.mkdir(c,{recursive:!0});let l=V.join(c,`${t}.islands.jsonl`),u=new Map(s.map((p,m)=>[p.id,m])),d=await Oe.open(l,"a");try{await d.write(JSON.stringify({_type:"archive_batch",archiveBatchId:i,sessionId:t,archivedAt:new Date().toISOString(),entryCount:r.length})+`
|
|
99
99
|
`);for(let p of r){let m=u.get(p.id);await d.write(JSON.stringify({_type:"archived_entry",archiveBatchId:i,...m===void 0?{}:{previousEntryId:s[m-1]?.id??null,nextEntryId:s[m+1]?.id??null},entry:p})+`
|
|
100
|
-
`)}await d.sync()}finally{await d.close()}}async ensureProjectJson(t,n,r){if(n.canonicalRoot===null)return;let i=this.projectJsonWritten.get(t);if(i===n.canonicalRoot)return;if(i!==void 0)throw new Ie("data_changed",`Refusing to change the cached project identity for ${t}`);let s=V.join(t,"project.json"),a;try{a=await Pg(t)}catch(c){let l=c instanceof Error?c.message:String(c);throw new Ie("data_changed",`Unable to validate ${s}: ${l}`)}if(!a){let c=o(p=>p.endsWith(".jsonl")&&!p.endsWith(".archive.jsonl")&&!p.endsWith(".islands.jsonl")&&!p.startsWith("."),"isMainSessionFile"),u=(await Oe.readdir(t,{withFileTypes:!0})).some(p=>p.isFile()&&c(p.name)),d=!1;try{d=(await Oe.readdir(V.join(t,"archived"),{withFileTypes:!0})).some(p=>p.isFile()&&c(p.name))}catch(p){if(p.code!=="ENOENT"){let m=p instanceof Error?p.message:String(p);throw new Ie("data_changed",`Unable to inspect ${t}: ${m}`)}}if(u||d){let p=[t,V.join(t,"archived")],m=[];for(let h of p)try{for(let g of await Oe.readdir(h,{withFileTypes:!0}))g.isFile()&&c(g.name)&&m.push(V.join(h,g.name))}catch(g){if(g.code!=="ENOENT")throw g}for(let h=0;h<m.length;h+=48)if((await Promise.all(m.slice(h,h+48).map(async S=>{let T=await SV(S);if(!T)return r!==void 0&&V.basename(t)===n.key&&V.resolve(S)===V.resolve(r);try{let x=JSON.parse(T);if(!lt(x)||x._type!=="meta")return!1;let I=ti({gitRoot:typeof x.gitRoot=="string"?x.gitRoot:void 0,runtimeInfo:Vf(x.runtimeInfo)?x.runtimeInfo:void 0});return I.key===n.key&&I.canonicalRoot===n.canonicalRoot}catch{return!1}}))).some(S=>!S))throw new Ie("data_changed",`Refusing to claim a mixed or unverifiable project bucket at ${s}`)}}try{await
|
|
100
|
+
`)}await d.sync()}finally{await d.close()}}async ensureProjectJson(t,n,r){if(n.canonicalRoot===null)return;let i=this.projectJsonWritten.get(t);if(i===n.canonicalRoot)return;if(i!==void 0)throw new Ie("data_changed",`Refusing to change the cached project identity for ${t}`);let s=V.join(t,"project.json"),a;try{a=await Pg(t)}catch(c){let l=c instanceof Error?c.message:String(c);throw new Ie("data_changed",`Unable to validate ${s}: ${l}`)}if(!a){let c=o(p=>p.endsWith(".jsonl")&&!p.endsWith(".archive.jsonl")&&!p.endsWith(".islands.jsonl")&&!p.startsWith("."),"isMainSessionFile"),u=(await Oe.readdir(t,{withFileTypes:!0})).some(p=>p.isFile()&&c(p.name)),d=!1;try{d=(await Oe.readdir(V.join(t,"archived"),{withFileTypes:!0})).some(p=>p.isFile()&&c(p.name))}catch(p){if(p.code!=="ENOENT"){let m=p instanceof Error?p.message:String(p);throw new Ie("data_changed",`Unable to inspect ${t}: ${m}`)}}if(u||d){let p=[t,V.join(t,"archived")],m=[];for(let h of p)try{for(let g of await Oe.readdir(h,{withFileTypes:!0}))g.isFile()&&c(g.name)&&m.push(V.join(h,g.name))}catch(g){if(g.code!=="ENOENT")throw g}for(let h=0;h<m.length;h+=48)if((await Promise.all(m.slice(h,h+48).map(async S=>{let T=await SV(S);if(!T)return r!==void 0&&V.basename(t)===n.key&&V.resolve(S)===V.resolve(r);try{let x=JSON.parse(T);if(!lt(x)||x._type!=="meta")return!1;let I=ti({gitRoot:typeof x.gitRoot=="string"?x.gitRoot:void 0,runtimeInfo:Vf(x.runtimeInfo)?x.runtimeInfo:void 0});return I.key===n.key&&I.canonicalRoot===n.canonicalRoot}catch{return!1}}))).some(S=>!S))throw new Ie("data_changed",`Refusing to claim a mixed or unverifiable project bucket at ${s}`)}}try{await Kl(t,n)}catch(c){let l=c instanceof Error?c.message:String(c);throw new Ie("data_changed",`Unable to publish ${s}: ${l}`)}this.projectJsonWritten.set(t,n.canonicalRoot)}async rebuildConversationCache(t,n,r,i,s=[]){try{let a=await this.readArchivedEntries(t,n,!0),c=a.length===0?r:{...r,entries:Wf(a,r.entries)},l=await aC(this.sessionsDir,t,n,void 0,!0),u=Dg(Ka(c,l.sourceRevision),c,t,s);if(await kA(n,l.boundaryRevision,l.sourceRevisionState,u,c,i))return;await LI(n,l.boundaryRevision,l.sourceRevisionState,u,c,i,u_)}catch(a){try{await Tr(n)}catch(c){jt("warn",`Unable to invalidate Conversation page cache for ${t}.`,new AggregateError([a,c]));return}jt("warn",`Unable to prepare Conversation pages for ${t}; reads will use the canonical fallback.`,a)}}async updateConversationCacheAfterAppend(t,n,r,i,s,a,c){try{let l=await Vl(n),u=l?.boundaryRevision===r.revision?MA(l,i,s,a):void 0;if(l===void 0||u===void 0){l!==void 0&&await Tr(n);return}let d=sA(l.sourceRevisionState,V.relative(this.sessionsDir,n).replace(/\\/g,"/"),Buffer.from(c,"utf8"));if(d===void 0){await Tr(n);return}let p=await jf(this.sessionsDir,t,n,!0);if(!j2(r,p,Buffer.byteLength(c,"utf8"))){await Tr(n);return}await EA(n,l,p.revision,d,u,s,a)}catch(l){jt("warn",`Unable to extend Conversation page cache for ${t}; invalidating it.`,l);try{await Tr(n)}catch(u){jt("warn",`Unable to invalidate Conversation page cache for ${t}.`,new AggregateError([l,u]))}}}async writeSessionInternal(t,n,r,i,s=this.verifiedLocationTopology(t),a,c){let l=i?V.dirname(i):this.resolveWriteDir(t,n),u=i??V.join(l,`${t}.jsonl`),d=V.basename(l)==="archived"?V.dirname(l):l,p=ti(n),m=this.appendState.get(t)?.projectCanonicalRoot;if(i!==void 0&&m!==void 0&&p.canonicalRoot!==null&&m!==p.canonicalRoot)throw new Ie("data_changed",`Refusing to move Session ${t} across cached project identities`);await Oe.mkdir(l,{recursive:!0}),await this.ensureProjectJson(d,p,u);let h=`${u}.${process.pid}.${Date.now()}.${QI++}.tmp`,g=n.lineage??it(n.messages),S=a===void 0?void 0:Mg(a),T=S===void 0?void 0:ey(S),x=yV(t,n,g,r,T),I=Vg(u),v=V.basename(V.dirname(u))!=="archived",k=Ji(x.activeMessageCount??0,x.uiHistory),_=v&&x.scope!=="managed-task-worker"&&k>0,H=ty(t,x.title,k,x.createdAt,x.runtimeInfo?.surface,x.lastMessageAt);if(_)try{await Kg(I,H)}catch(N){jt("warn",`Unable to prepare the resume index for ${t}.`,N)}let $=this.legacyFlatPath(t),P=!ft.existsSync(u)||$!==u&&ft.existsSync($),z=o(async()=>{try{c?.beginTiming("tempWrite");let N=vi.now(),q=await Oe.open(h,"w");try{try{await q.write(JSON.stringify(x)+`
|
|
101
101
|
`);for(let ee of g.entries)await q.write(JSON.stringify(y_(ee))+`
|
|
102
102
|
`);for(let ee of n.artifactLedger??[])await q.write(JSON.stringify(w_(ee))+`
|
|
103
|
-
`);for(let ee of n.extensionRecords??[])await q.write(JSON.stringify(
|
|
104
|
-
`)}finally{c?.recordTiming("tempWrite",vr(N))}c?.beginTiming("fsync");let ae=vi.now();try{await q.sync()}finally{c?.recordTiming("fsync",vr(ae))}}finally{await q.close()}c?.beginTiming("rename"),c?.beforeCommit();let B=vi.now();try{await Qg(h,u)}finally{c?.recordTiming("rename",vr(B))}if(c?.afterCommit(),$!==u&&
|
|
105
|
-
`}${JSON.stringify(
|
|
106
|
-
`,s=`${t}.${
|
|
103
|
+
`);for(let ee of n.extensionRecords??[])await q.write(JSON.stringify(nC(ee))+`
|
|
104
|
+
`)}finally{c?.recordTiming("tempWrite",vr(N))}c?.beginTiming("fsync");let ae=vi.now();try{await q.sync()}finally{c?.recordTiming("fsync",vr(ae))}}finally{await q.close()}c?.beginTiming("rename"),c?.beforeCommit();let B=vi.now();try{await Qg(h,u)}finally{c?.recordTiming("rename",vr(B))}if(c?.afterCommit(),$!==u&&ft.existsSync($)){await Oe.unlink($).catch(()=>{});let ae=this.legacyFlatArchivePath(t);ft.existsSync(ae)&&await Oe.rename(ae,V.join(d,`${t}.islands.jsonl`)).catch(()=>{})}}finally{ft.existsSync(h)&&await Oe.unlink(h).catch(()=>{})}},"write");if(P){c?.beginTiming("topology");let N=vi.now(),q=!1;try{await this.withSessionLocationTopologyChange(z,()=>{q=!0,c?.recordTiming("topology",vr(N))})}finally{q||c?.recordTiming("topology",vr(N))}}else await z();try{await Hf(I,H,_)}catch(N){jt("warn",`Unable to refresh the resume index for ${t}.`,N)}a===void 0?await Tr(u):await this.rebuildConversationCache(t,u,a,n.runtimeInfo,n.extensionRecords);let J=[u];$!==u&&ft.existsSync($)&&J.push($);let L=this.readSessionTopologyIdentitySync(t),W=s!==void 0&&L!==void 0;return this.verifiedLocationMisses.delete(t),this.sessionLocations.set(t,J.length===1?{kind:"located",filePath:u,globallyVerified:W,...W?{topologyIdentity:L}:{}}:{kind:"ambiguous",filePaths:J.sort()}),T===void 0?this.lineageIdentityFilterHashes.delete(t):this.lineageIdentityFilterHashes.set(t,T),u}async mergeAndWriteInternal(t,n,r=!1){let i=await this.readSession(t),s=i===null?this.verifiedMissingLocationTopology(t):this.verifiedLocationTopology(t),a={...n,lastMessageAt:i?.data.lastMessageAt??n.lastMessageAt,scope:n.scope??i?.data.scope??"user",uiHistory:n.uiHistory??i?.data.uiHistory,extensionState:n.extensionState??i?.data.extensionState,artifactLedger:n.artifactLedger??i?.data.artifactLedger,actorSnapshot:i?.data.actorSnapshot??n.actorSnapshot,extensionRecords:WA(t,i?.data.extensionRecords,n.extensionRecords),runtimeInfo:n.runtimeInfo===void 0?i?.data.runtimeInfo:{...n.runtimeInfo,...i?.data.runtimeInfo?.sessionPromotion?.sessionId!==t?{}:{sessionPromotion:i.data.runtimeInfo.sessionPromotion},...i?.data.runtimeInfo?.temporary===!0?{temporary:!0}:{},...!r&&i?.data.runtimeInfo?.sandboxWorktreeRoots!==void 0?{sandboxWorktreeRoots:i.data.runtimeInfo.sandboxWorktreeRoots}:{}},errorMetadata:Object.prototype.hasOwnProperty.call(n,"errorMetadata")?n.errorMetadata:i?.data.errorMetadata,tag:i?.data.runtimeInfo?.sessionPromotion?.sessionId===t?i.data.runtimeInfo.sessionPromotion.tag:n.tag??i?.data.tag,lineage:gV(n,i?.data.lineage)};if(this.isDraft(t)&&!a.messages.some(m=>m.role==="user"&&(typeof m.content=="string"?m.content.trim().length>0:m.content.some(h=>h.type==="image"||h.type==="text"&&h.text.trim().length>0)))){this.drafts.set(t,structuredClone(a));return}if(i!==null){let m=ti(i.data),h=ti(a);if(m.canonicalRoot!==null&&h.canonicalRoot!==null&&m.canonicalRoot!==h.canonicalRoot)throw new Ie("data_changed",`Refusing to move Session ${t} across project identities during an in-place save`)}let c=await this.readArchivedEntries(t),l=iV(a.lineage,i?.data.lineage,c),u=Cb(l);await this.appendIslandArchive(t,a,u.archivedEntries,u.archiveBatchId,l.entries,i?.filePath);let d={...a,lineage:u.slimmedLineage,lastMessageAt:Gl(l.entries,a.lastMessageAt)},p=await this.writeSessionInternal(t,d,i?.createdAt,i?.filePath,s,l);this.drafts.delete(t),await this.syncAppendStateFromFile(t,{...a,lineage:l},p)}async appendSessionDelta(t,n){await this.ensureMigrated(),await this.serializedWrite(t,async()=>{let r=this.appendState.get(t),i=r?.filePath===void 0?null:await Kr(r.filePath);if(!(r!==void 0&&(r.mainIdentity===void 0||i===null||!bi(r.mainIdentity,i)))){await this.mergeAndWriteInternal(t,n);return}let a=await this.readSession(t);await this.mergeAndWriteInternal(t,a?rV(n,a.data):n)})}async confirmIdentityAlias(t,n,r){let i=structuredClone(n);await this.ensureMigrated();let s=await this.resolveSessionLocation(t,!0);if(s===null)throw new Error(`Session ${t} was not found.`);let a;if(await this.serializedWrite(t,async()=>{if(await this.resolveSessionLocation(t)!==s)throw new Ie("data_changed","Session moved before identity confirmation.");let c=await this.readFullSnapshotAtPath(t,s,void 0,!0);if(c?.lineage==null)throw new Error("Identity confirmation requires complete lineage.");if(this.assertActorFileOwner(c.data.actorSnapshot,r),c.data.actorSnapshot?.turns.some(d=>d.state==="accepted"||d.state==="running"))throw new Error("Cannot confirm historical identity while a turn is active.");let l=c.data.extensionRecords??[],u=FA(t,i,c.lineage,l);if(l.some(d=>d.id===u.id)){a=u;return}if(c.sourceRevision!==i.expectedSourceRevision)throw new Ie("data_changed","Session changed before identity confirmation; reload before retrying.");await this.appendIdentityRepairRecord(s,u),a=u,this.appendState.delete(t);try{await Tr(s)}catch(d){jt("warn",`Unable to remove stale Conversation cache for ${t}.`,d)}}),a===void 0)throw new Error("Identity confirmation did not commit.");return a}async appendIdentityRepairRecord(t,n){let r=await Oe.readFile(t),i=`${r.at(-1)===10?"":`
|
|
105
|
+
`}${JSON.stringify(nC(n))}
|
|
106
|
+
`,s=`${t}.${Zl()}.tmp`;try{let a=await Oe.open(s,"wx");try{await a.writeFile(Buffer.concat([r,Buffer.from(i)])),await a.sync()}finally{await a.close()}await Qg(s,t)}finally{await Oe.rm(s,{force:!0})}}async appendPreparedSessionTail(t,n){let r=structuredClone(n);await this.ensureMigrated();let i,s=!1;try{await this.serializedWrite(t,async()=>{let a=this.appendState.get(t),c=r.baseline;if(a===void 0||c.sessionId!==t||a.appendRevision!==c.revision||a.lineageCount!==c.lineageCount||a.artifactCount!==c.artifactCount||a.extensionCount!==c.extensionCount||(a.activeEntryId??null)!==c.activeEntryId||a.tag!==c.tag)throw new Ie("data_changed",`Prepared Session append boundary changed for ${t}; reload before retrying`);let l=r.lineageEntries,u=r.artifactEntries??[],d=r.extensionRecords??[];if(d.some(Ya))throw new Ie("data_changed","Identity repair records require a full projection rebuild.");if(a.lineageIdentityFilter===void 0||a.lineageIdentityFilterHash===void 0||ey(a.lineageIdentityFilter)!==a.lineageIdentityFilterHash||a.bundleBoundaryRevision===void 0||!K2(a.activeEntryId,l,r.activeEntryId,a.lineageIdentityFilter)||S_(u,a.artifactEntryIds)||G2(u,a.artifactDedupKeys)||S_(d,a.extensionRecordIds))throw new Ie("data_changed",`Prepared Session tail for ${t} is not a new linear append; use appendSessionDelta()`);let p=V2(a.activeEntryId,a.activeMessageCount,l,r.activeEntryId);if(p===void 0)throw new Ie("data_changed",`Prepared Session tail for ${t} is not a linear append; use appendSessionDelta()`);let m=a.filePath===void 0?null:await Kr(a.filePath);if(a.filePath===void 0||a.mainIdentity===void 0||m===null||!bi(a.mainIdentity,m))throw new Ie("data_changed",`Persisted Session changed after the prepared append boundary for ${t}`);let h=await jf(this.sessionsDir,t,a.filePath,!0);if(h.revision!==a.bundleBoundaryRevision)throw new Ie("data_changed",`Persisted Session bundle changed after the prepared append boundary for ${t}`);let g=[];for(let L of l)g.push(JSON.stringify(y_(L)));for(let L of u)g.push(JSON.stringify(w_(L)));for(let L of d)g.push(JSON.stringify(nC(L)));let S=kI(a.lineageIdentityFilter,l),T=ey(S),x={_type:"meta_update",lastMessageAt:Gl(l,a.lastMessageAt),title:r.title,activeEntryId:r.activeEntryId,activeMessageCount:p,...r.uiHistory!==void 0?{uiHistory:[...r.uiHistory]}:{},...r.scope!==void 0?{scope:r.scope}:{},lineageIdentityFilterHash:T};g.push(JSON.stringify(x));let I=`
|
|
107
107
|
${g.join(`
|
|
108
|
-
`)}`,v=r.scope??a.scope??"user",k=V.basename(V.dirname(a.filePath))!=="archived",_=r.uiHistory===void 0?a.presentationOnlyHistoryCount:Ji(0,r.uiHistory),H=p+_,$=k&&v!=="managed-task-worker"&&H>0,P=Vg(a.filePath),z=ty(t,r.title,H,void 0,a.surface,x.lastMessageAt);if($)try{await Kg(P,z)}catch(L){jt("warn",`Unable to prepare the resume index for ${t}.`,L)}await Oe.appendFile(a.filePath,I,"utf-8"),s=!0;try{await Bf(P,z,$)}catch(L){jt("warn",`Unable to refresh the resume index for ${t}.`,L)}await this.updateConversationCacheAfterAppend(t,a.filePath,h,a.activeEntryId,l,r.activeEntryId,I);for(let L of u)a.artifactEntryIds.add(L.id);for(let L of u)a.artifactDedupKeys.add(aC(L));for(let L of d)a.extensionRecordIds.add(L.id);let J=await Wf(this.sessionsDir,t,a.filePath,!0);this.appendState.set(t,{...a,appendRevision:Ql(),lineageCount:a.lineageCount+l.length,artifactCount:a.artifactCount+u.length,extensionCount:a.extensionCount+d.length,activeEntryId:r.activeEntryId,activeMessageCount:p,lastMessageAt:x.lastMessageAt,presentationOnlyHistoryCount:_,scope:v,lineageIdentityFilter:S,lineageIdentityFilterHash:T,bundleBoundaryRevision:J.revision,mainIdentity:await Kr(a.filePath)??void 0}),this.lineageIdentityFilterHashes.set(t,T),i=this.currentPreparedSessionAppend(t)??void 0})}catch(a){if(!s)throw a;return this.appendState.delete(t),jt("error",`Prepared Session tail for ${t} committed, but its successor boundary could not be prepared; reload before the next append.`,a),null}return i??null}isDraft(t){return this.drafts.has(t)}async createDraft(t,n){await this.serializedWrite(t,async()=>{if(this.drafts.has(t)||await this.readSession(t)!==null)throw Object.assign(new Error(`Session already exists: ${t}`),{code:"conflict"});this.drafts.set(t,structuredClone({...n,lineage:it(n.messages,n.lineage)}))})}async save(t,n){await this.serializedWrite(t,async()=>{await this.mergeAndWriteInternal(t,n)})}async createGenerated(t,n){await this.serializedWrite(t,async()=>{await Oe.mkdir(V.join(this.sessionsDir,iy),{recursive:!0});let r=this.writeFilePath(t,n);if(St.existsSync(r)||St.existsSync(this.legacyFlatPath(t)))throw Object.assign(new Error(`Session already exists: ${t}`),{code:"conflict"});await this.writeSessionInternal(t,n,void 0,r,void 0,n.lineage??it(n.messages));let i=this.readSessionTopologyIdentitySync(t);i!==void 0&&this.sessionLocations.set(t,{kind:"located",filePath:r,globallyVerified:!0,topologyIdentity:i}),await this.syncAppendStateFromFile(t,n,r)})}async mutateUiHistory(t,n){let r=!1;return await this.serializedWrite(t,async()=>{let i=await this.readSession(t);if(i===null)return;r=!0;let s=n(i.data.uiHistory??[],i.data);await this.mergeAndWriteInternal(t,{...i.data,uiHistory:s})}),r}async appendSessionRecords(t,n){let r=structuredClone(n),i=!1;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(s===null)return;i=!0;let a=new Map((s.data.extensionRecords??[]).map(c=>[c.id,c]));for(let c of r)a.set(c.id,c);await this.mergeAndWriteInternal(t,{...s.data,extensionRecords:[...a.values()]})}),i}async mutateLineage(t,n){let r=!1;return await this.serializedWrite(t,async()=>{let i=await this.readSession(t);if(i===null)return;r=!0;let s=i.data.lineage??it(i.data.messages),a=n(s);a!==s&&await this.mergeAndWriteInternal(t,{...i.data,lineage:a})}),r}async mutateRuntimeInfo(t,n){let r=!1;return await this.serializedWrite(t,async()=>{let i=await this.readSession(t);if(i===null)return;r=!0;let s=i.data.runtimeInfo===void 0?void 0:structuredClone(i.data.runtimeInfo),a=n(s);await this.mergeAndWriteInternal(t,{...i.data,runtimeInfo:a},!0)}),r}async promoteOwned(t,n,r){let i=structuredClone(r),s=!1;return await this.serializedWrite(t,async()=>{let a=await this.readSession(t);if(a===null)return;this.assertActorFileOwner(a.data.actorSnapshot,n);let c=db(t,a.data,i);c!==a.data&&await this.mergeAndWriteInternal(t,c),s=!0}),s}beginActorSnapshotSave(t,n,r){let i=O2(t,n.revision),s=this.serializedWrite(t,async()=>{i.canonicalObserver.beginTiming("readCas");let a=vi.now(),c;try{let m=await this.readSession(t);if(!m)throw new Error(`Session not found: ${t}`);let h=m.data.actorSnapshot?.revision??0;if(h!==r)throw new vb(r,h,t);c=m}finally{i.canonicalObserver.recordTiming("readCas",vr(a))}let l={...c.data,actorSnapshot:structuredClone(n)};if(this.isDraft(t)){i.canonicalObserver.beforeCommit(),this.drafts.set(t,structuredClone(l)),i.canonicalObserver.afterCommit();return}i.canonicalObserver.beginTiming("lineage");let u=vi.now(),d;try{d=l.lineage===void 0?void 0:await this.completeConversationLineage(t,c.filePath,l.lineage)}finally{i.canonicalObserver.recordTiming("lineage",vr(u))}let p;try{p=await this.writeSessionInternal(t,l,c.createdAt,c.filePath,void 0,d,i.canonicalObserver)}catch(m){let h=m;if(i.attempt.phase()==="commit_inflight")try{let g=await this.readSession(t),S=g?.data.actorSnapshot,T=g?.data.actorSnapshot?.revision??0;k2(S,L2(n))?i.markCommitObservedByReadback():T===r?i.markCommitNotObserved(m):h=new AggregateError([m,new Error(`Actor snapshot readback observed revision ${T}; expected prior ${r} or exact target ${n.revision}.`)],"Actor snapshot replacement result is ambiguous.")}catch(g){h=new AggregateError([m,g],"Actor snapshot replacement failed and canonical readback was unavailable.")}throw h}await this.syncAppendStateFromFile(t,l,p)},i.queueObserver);return i.settleCompletion(s),i.attempt}async saveActorSnapshot(t,n,r){await this.beginActorSnapshotSave(t,n,r).completion}async peek(t){let n=await this.readSession(t,{migrate:!1});return n?Jl(n.data):null}async readActorSnapshot(t,n={}){return(await this.readActorMetadata(t,n))?.actorSnapshot}async listActiveSessionIds(){ZI(this.sessionsDir);let t={topologyBefore:this.readSessionTopologyIdentitySync("","global"),writerTopologyDigestBefore:QI(this.sessionsDir),topologyMutationBefore:St.existsSync(Ho(this.sessionsDir))},n;try{n=await Oe.readdir(this.sessionsDir,{withFileTypes:!0})}catch(c){if(c.code==="ENOENT")return[...this.drafts.keys()];throw c}let r=[],i=[...this.drafts.keys()],s=o((c,l,u)=>{for(let d of l)!d.endsWith(".jsonl")||d.startsWith(".")||d.endsWith(".islands.jsonl")||d.endsWith(".archive.jsonl")||(r.push(V.join(c,d)),!u&&!d.startsWith("archived-")&&i.push(V.basename(d,".jsonl")))},"collect");s(this.sessionsDir,n.filter(c=>c.isFile()).map(c=>c.name),!1),await Promise.all(n.filter(c=>c.isDirectory()&&!c.name.startsWith(".")).map(async c=>{let l=V.join(this.sessionsDir,c.name),u=c.name==="archived";if(s(l,await Oe.readdir(l),u),u)return;let d=V.join(l,"archived");try{s(d,await Oe.readdir(d),!0)}catch(p){if(p.code!=="ENOENT")throw p}})),this.completeSessionLocationTraversal(t,r,!0);let a=this.readSessionTopologyIdentitySync("","global");if(ZI(this.sessionsDir),t.topologyMutationBefore||t.topologyBefore===void 0||a===void 0||St.existsSync(Ho(this.sessionsDir))||t.topologyBefore.root.dev!==a.root.dev||t.topologyBefore.root.ino!==a.root.ino||t.topologyBefore.epoch!==a.epoch)throw new Ie("data_changed","Session inventory changed during preflight");return[...new Set(i)]}async readActorMetadata(t,n={}){Pn(n.signal),Uf(n.timeoutMs);let r=Date.now();return Ja((async()=>{await this.awaitOwnWrites(t,n,r),Pn(n.signal);let i=this.drafts.get(t);if(i)return{id:t,runtimeInfo:structuredClone(i.runtimeInfo),actorSnapshot:structuredClone(i.actorSnapshot)};let s=await this.resolveSessionLocation(t,!0);if(Pn(n.signal),s===null)return;let a=this.verifiedLocationTopology(t),c=await $_(this.sessionsDir,t,s,!1,()=>B_(s,n.signal));if(Pn(n.signal),this.assertLocationTopologyUnchanged(t,a),c._type!=="meta")throw new Ie("data_corrupt","Session metadata is missing");if(c.lineageVersion!==void 0&&c.lineageVersion!==2)throw new Ie("version_incompatible","Unsupported Session lineage version");let l=c.actorSnapshot,u=Vf(c.runtimeInfo)?c.runtimeInfo:void 0;if(l===void 0)return{id:t,runtimeInfo:u};if(!lt(l)||l.schemaVersion!==1&&l.schemaVersion!==2)throw new Ie("version_incompatible","Unsupported Actor snapshot schema");if(!Array.isArray(l.actors)||!l.actors.every(d=>lt(d)&&typeof d.path=="string"&&(d.currentTurnId===void 0||typeof d.currentTurnId=="string")))throw new Ie("data_corrupt","Invalid Actor metadata");if(l.schemaVersion===2&&l.owner!==void 0){let d=l.owner;if(!lt(d)||typeof d.ownerId!="string"||typeof d.runtimeId!="string"||!Number.isSafeInteger(d.pid)||d.pid<=0||typeof d.startedAt!="string")throw new Ie("data_corrupt","Invalid Actor owner metadata")}return{id:t,runtimeInfo:u,actorSnapshot:structuredClone(l)}})(),n)}async read(t,n={}){Pn(n.signal),Uf(n.timeoutMs);let r=Date.now(),i=await Ja((async()=>(await this.awaitOwnWrites(t,n,r),this.readSession(t,{migrate:!1,strict:!0})))(),n);return i?Jl(i.data):null}async readConversationPageCache(t,n,r={}){Pn(r.signal);let i=(async()=>{let s=await this.resolveSessionLocation(t,!0);if(s===null)return null;let a=this.verifiedLocationTopology(t);try{let c=await Qa(this.sessionsDir,t,s),l=await vA(s,c,{...n,signal:r.signal}),u=await Qa(this.sessionsDir,t,s);if(this.assertLocationTopologyUnchanged(t,a),c!==u)throw new Bt("Conversation history changed during paging");if(l===null&&n.expectedRevision!==void 0)throw new Bt("Conversation history changed; request a fresh page");return l}catch(c){if(c instanceof Bt){if(n.expectedRevision===void 0)return null;throw new Ie("data_changed",c.message)}throw c}})();return Ja(i,r)}async readConversationPageBoundary(t,n={}){Pn(n.signal);let r=(async()=>{let i=await this.resolveSessionLocation(t,!0);if(i===null)return null;let s=this.verifiedLocationTopology(t),a=await Qa(this.sessionsDir,t,i),c=await wV(i),l=await Qa(this.sessionsDir,t,i);if(this.assertLocationTopologyUnchanged(t,s),a!==l)throw new Ie("data_changed","Session changed while validating a Conversation page boundary");return{boundaryRevision:l,admission:c}})();return Ja(r,n)}async prepareConversationPageCache(t,n,r,i,s,a,c={}){Pn(c.signal);let l=await this.resolveSessionLocation(t,!0);if(l===null)throw new Ie("data_changed","Session moved before page preparation");await Ja(this.serializedWrite(t,async()=>{if(Pn(c.signal),await Qa(this.sessionsDir,t,l,!0)!==s)throw new Ie("data_changed","Session changed before page preparation");await PI(l,s,a,n,r,i,u_)}),c)}async readConversationPageCacheChunk(t,n,r={}){Pn(r.signal);let i=(async()=>{let s=await this.resolveSessionLocation(t,!0);if(s===null)return null;let a=this.verifiedLocationTopology(t);try{let c=await Qa(this.sessionsDir,t,s),l=await bA(s,c,{...n,signal:r.signal}),u=await Qa(this.sessionsDir,t,s);if(this.assertLocationTopologyUnchanged(t,a),c!==u||l===null)throw new Bt("Conversation history changed; request a fresh page");if(l===void 0)throw new Error(`Transcript entry index is out of range: ${n.entryIndex}`);return l}catch(c){throw c instanceof Bt?new Ie("data_changed",c.message):c}})();return Ja(i,r)}async readFullSnapshot(t,n={}){Pn(n.signal),Uf(n.timeoutMs);let r=Date.now(),i=(async()=>{await this.awaitOwnWrites(t,n,r);let s=this.drafts.get(t);if(s){let c=`draft:${t}:${Wo("sha256").update(JSON.stringify(s)).digest("hex")}`;return{data:Jl(s),lineage:structuredClone(s.lineage??null),sourceRevision:c,boundaryRevision:c,sourceRevisionState:{version:1,files:[]}}}let a=await this.resolveSessionLocation(t,!0);return a===null?null:this.readFullSnapshotAtPath(t,a,n.signal,!1)})();return Ja(i,n)}async readFullSnapshotAtPath(t,n,r,i){let s=this.verifiedLocationTopology(t),a=await sC(this.sessionsDir,t,n,r,i),c=a.files.find(S=>S.kind==="main");if(c===void 0)throw new Ie("data_changed","Session main file moved during the read boundary");let l=await ny(c.path,!0,c.bytes.toString("utf8"));if(l===null)return null;let u=R_(l,c.path),d=V.dirname(c.path),p=new Map([[V.join(d,`${t}.islands.jsonl`),null],[V.join(d,`${t}.archive.jsonl`),null]]);for(let S of a.files)S.kind!=="main"&&p.set(S.path,S.bytes.toString("utf8"));let m=await this.readArchivedEntries(t,c.path,!0,p),h=Ff(m,u.data.lineage?.entries??[]),g=u.data.lineage===void 0?h.length===0?null:{version:2,activeEntryId:null,entries:h}:{...u.data.lineage,entries:h};return i||this.assertLocationTopologyUnchanged(t,s),{data:Jl(u.data),lineage:g,sourceRevision:a.sourceRevision,sourceRevisionState:a.sourceRevisionState,boundaryRevision:a.boundaryRevision}}async load(t){let n=this.drafts.get(t);if(n)return Jl(n);let r=await this.readSession(t);if(!r)return null;this.syncAppendState(t,r.data,{filePath:r.filePath,mainIdentity:r.mainIdentity},r.activeMessageCount);let{data:i}=r,s=this.legacyFlatPath(t);if(this.emitMismatchWarnings){let a=await ps(this.hostCwd),c=await Hi({cwd:this.hostCwd}),l=Xn(i);(c.canonicalRepoRoot&&l?.canonicalRepoRoot&&!rS(c,l)||a&&i.gitRoot&&a!==i.gitRoot&&!rS(c,{canonicalRepoRoot:i.gitRoot}))&&(Bo(l_.yellow(`
|
|
109
|
-
[Warning] Session project mismatch:`)),c.workspaceRoot&&
|
|
110
|
-
`))}if(i.errorMetadata?.consecutiveErrors&&i.errorMetadata.consecutiveErrors>0){let a=i,c=!1;return await this.serializedWrite(t,async()=>{let l=await this.readSession(t);if(!l){a=null;return}a=l.data;let u=l.data.actorSnapshot;if(u?.schemaVersion===2&&u.owner!==void 0||u?.turns.some(g=>g.state==="accepted"||g.state==="running")){this.syncAppendState(t,l.data,{filePath:l.filePath,mainIdentity:l.mainIdentity});return}if(!l.data.errorMetadata?.consecutiveErrors||l.data.errorMetadata.consecutiveErrors<=0){this.syncAppendState(t,l.data,{filePath:l.filePath,mainIdentity:l.mainIdentity});return}let d=mb(l.data.messages);if(d===l.data.messages){this.syncAppendState(t,l.data,{filePath:l.filePath,mainIdentity:l.mainIdentity});return}let p={...l.data,messages:d,errorMetadata:{...l.data.errorMetadata,consecutiveErrors:0},lineage:it(d,l.data.lineage)},m=await this.completeConversationLineage(t,l.filePath,p.lineage),h=await this.writeSessionInternal(t,p,l.createdAt,l.filePath,void 0,m);await this.syncAppendStateFromFile(t,p,h),a=p,c=!0}),c&&Bo(l_.cyan("[Session Recovery] Attempted cleanup of incomplete tool calls from previous session")),a}return g_(s,0),i}async has(t){try{return await this.ensureMigrated(),await this.resolveSessionLocation(t)!==null}catch(n){return jt("warn",`Unable to locate Session ${t}.`,n),!1}}async isArchived(t){await this.ensureMigrated();let n=await this.resolveSessionLocation(t);return n!==null&&V.basename(V.dirname(n))==="archived"}async getLineage(t){return(await this.readSession(t))?.data.lineage??null}async loadFullLineage(t){let n=this.drafts.get(t);return n?structuredClone(n.lineage??null):(await this.ensureMigrated(),gm(this.sessionWriteLockPath(t),async()=>{let r=await this.readSession(t);if(!r?.data.lineage)return null;let i=await this.readArchivedEntries(t,r.filePath);return i.length===0?r.data.lineage:{...r.data.lineage,entries:Ff(i,r.data.lineage.entries)}},ry))}async setActiveEntry(t,n,r){let i=null;return await Bw({configHome:this.configHome,sessionId:t},async s=>this.serializedWrite(t,async()=>{let a=await this.readSession(t);if(!a?.data.lineage)return;let c=Bc(a.data.lineage,n,r);if(!c)return;await s(Fw(c));let l={...a.data,messages:Yt(c),lineage:c,uiHistory:[]},u=await this.completeConversationLineage(t,a.filePath,c),d=await this.writeSessionInternal(t,l,a.createdAt,a.filePath,void 0,u);await this.syncAppendStateFromFile(t,l,d),i=l})),i}async rewind(t,n,r){let i=null;return await Bw({configHome:this.configHome,sessionId:t},async s=>this.serializedWrite(t,async()=>{let a=await this.readSession(t);if(!a?.data.lineage)return;let c=r?.historyBoundary,l=c===void 0?void 0:await this.readFullSnapshotAtPath(t,a.filePath,void 0,!0);if(l!==void 0&&l?.sourceRevision!==c?.sourceRevision)throw new Ie("data_changed",`Conversation history boundary is stale for ${t}`);let u=l?.lineage??a.data.lineage;if(u===null)return;let d=n??Fc(u);if(!d)return;let p=l===void 0?void 0:d_(u,d);if(l!==void 0&&p===void 0)return;let h=Wc(p===void 0?u:{version:2,activeEntryId:d,entries:p},d);if(!h)return;let g=h.entries.at(-1);if(g?.type!=="rewind_marker")return;let S=u.entries.findIndex(L=>L.id===d);if(S<0)return;let{fromId:T,...x}=g,I={...x,...u.activeEntryId!==null?{fromId:u.activeEntryId}:{},truncatedCount:u.entries.length-S-1},v={...h,entries:[...h.entries.slice(0,-1),I]};await s(Fw(v));let k=await this.readArchivedEntries(t,a.filePath),_=l?.lineage?.entries??(k.length===0?a.data.lineage.entries:Ff(k,a.data.lineage.entries)),H=new Set(v.entries.map(L=>L.id)),$=a.data.lineage.entries.filter(L=>!H.has(L.id)),P={...a.data,messages:Yt(v),lineage:v,uiHistory:[]};await this.appendIslandArchive(t,P,$,I.id,[..._,I],a.filePath);let z=await this.completeConversationLineage(t,a.filePath,v),J=await this.writeSessionInternal(t,P,a.createdAt,a.filePath,void 0,z);await this.syncAppendStateFromFile(t,P,J),i=P})),i}async setLabel(t,n,r){let i=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=Hc(s.data.lineage,n,r);if(!a)return;let c={...s.data,lineage:a},l=await this.completeConversationLineage(t,s.filePath,a),u=await this.writeSessionInternal(t,c,s.createdAt,s.filePath,void 0,l);await this.syncAppendStateFromFile(t,c,u),i=c}),i}async fork(t,n,r){let i=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=r?.historyBoundary,c=a===void 0?void 0:await this.readFullSnapshotAtPath(t,s.filePath,void 0,!0);if(c!==void 0&&c?.sourceRevision!==a?.sourceRevision)throw new Ie("data_changed",`Conversation history boundary is stale for ${t}`);if(a!==void 0&&c===null)return;let l=c?.lineage??s.data.lineage;if(l===null)return;let u=c!==void 0&&n!==void 0?d_(l,n):void 0;if(c!==void 0&&(n===void 0||u===void 0))return;let d=Date.now();if(r?.before===!0&&c===void 0)throw new Error("Fork before requires a canonical history boundary.");let p=r?.before===!0?u?.at(-2)?.id:n,m=c===void 0?yo(l,n):c===null?null:p===void 0?it([]):ZM(l,p,c.sourceRevision,()=>Gf({},d));if(!m)return;let h=r?.sessionId??await jc(),g={lastMessageAt:Vl(m.entries,void 0,l.entries),messages:Yt(m),title:r?.title??s.data.title,gitRoot:s.data.gitRoot,tag:s.data.tag,runtimeInfo:s.data.runtimeInfo?{...s.data.runtimeInfo}:void 0,uiHistory:s.data.uiHistory?s.data.uiHistory.map(S=>({...S})):void 0,extensionState:s.data.extensionState?structuredClone(s.data.extensionState):void 0,artifactLedger:s.data.artifactLedger?structuredClone(s.data.artifactLedger):void 0,extensionRecords:s.data.extensionRecords?structuredClone(s.data.extensionRecords):void 0,lineage:m};await this.writeSessionInternal(h,g,void 0,void 0,void 0,m),i={sessionId:h,data:g}}),i}async list(t,n){await this.ensureMigrated(),await Oe.mkdir(this.sessionsDir,{recursive:!0});let r=t&&t.trim()?t:void 0,i=r!==void 0||this.hostCwd!==void 0,s=r??(this.hostCwd?await ps(this.hostCwd):null),a=i?await Hi({cwd:s??this.hostCwd??process.cwd()}):void 0,c=a?.canonicalRepoRoot??s??this.hostCwd,l=c?await YI(c):void 0,u=l?[l.canonicalProjectRoot,...l.compatibleRoots]:[],d=i?void 0:this.beginSessionLocationTraversal(),p=await Oe.readdir(this.sessionsDir,{withFileTypes:!0}),m=[],h=new Map,g=[],T=(a===void 0?void 0:ti({gitRoot:s??void 0,runtimeInfo:a}))?.key,x=o(L=>L.endsWith(".archive.jsonl")||L.endsWith(".islands.jsonl"),"isSidecar"),I=T!==void 0?[...new Set([T,...u.map(L=>Br(L).key)])]:p.filter(L=>L.isDirectory()&&!L.name.startsWith(".")).map(L=>L.name),v=!i,k=o(async L=>{try{return{files:await Oe.readdir(L),complete:!0}}catch(W){return{files:[],complete:W.code==="ENOENT"}}},"readDirectory"),_=48;for(let L=0;L<I.length;L+=_){let W=await Promise.all(I.slice(L,L+_).map(async N=>{let q=this.projectDir(N),[B,ae,ee]=await Promise.all([k(q),k(V.join(q,"archived")),Df(q).catch(C=>{jt("warn",`Unable to read the resume index in ${N}.`,C)})]),ie=ee;return ie===void 0&&c&&N===T&&(await c_({sessionsDir:this.sessionsDir,projectRoot:c}),ie=await Df(q).catch(C=>{jt("warn",`Unable to read the rebuilt resume index in ${N}.`,C)})),{projectDir:q,active:B,archived:ae,resumeEntries:ie}}));for(let N of W){let q=new Map(N.resumeEntries?.map(B=>[B.id,B])??[]);(!N.active.complete||!N.archived.complete)&&(v=!1);for(let B of N.active.files){if(!B.endsWith(".jsonl")||x(B))continue;let ae=V.join(N.projectDir,B);g.push(ae),m.push({path:ae,archived:!1});let ee=q.get(V.basename(B,".jsonl"));ee!==void 0&&h.set(ae,ee)}for(let B of N.archived.files){if(!B.endsWith(".jsonl")||x(B))continue;let ae=V.join(N.projectDir,"archived",B);g.push(ae),n?.includeArchived&&m.push({path:ae,archived:!0})}}}for(let L of p)if(L.isFile()&&L.name.endsWith(".jsonl")&&!x(L.name)&&!L.name.startsWith("archived-")&&!L.name.startsWith(".")){let W=V.join(this.sessionsDir,L.name);g.push(W),m.push({path:W,archived:!1})}d===void 0?this.indexSessionLocations(g,!1):this.completeSessionLocationTraversal(d,g,v);let H=[],$=o(async(L,W)=>{try{let N=await Yg(L);if(!N)return null;if(lt(N)&&N._type==="meta"){let B=typeof N.gitRoot=="string"?N.gitRoot:"",ae=Vf(N.runtimeInfo)?N.runtimeInfo:void 0,ee=N.scope==="managed-task-worker"?"managed-task-worker":"user";if(a!==void 0&&T!==void 0&&!Zc({gitRoot:B||void 0,runtimeInfo:ae},[a.canonicalRepoRoot,a.workspaceRoot,a.executionCwd,s,...u].filter(X=>typeof X=="string"&&X.length>0))||ee!=="user")return null;let ie=typeof N.extensionRecordCount=="number"&&N.extensionRecordCount>0?N.extensionRecordCount:0,C=typeof N.activeMessageCount=="number"&&N.activeMessageCount>=0?N.activeMessageCount:Math.max(0,await k_(L)-1-ie),Te=W?void 0:h.get(L),Fe=Te?.msgCount??Ji(C,N.uiHistory);if(!W&&Te===void 0&&Fe===0){let Ce=await ny(L),X=Ce?.meta?.activeMessageCount;Fe=Ji(typeof X=="number"?X:0,Ce?.meta?.uiHistory)}return{id:V.basename(L,".jsonl"),title:Te?.title??(typeof N.title=="string"?N.title:""),msgCount:Fe,...typeof N.tag=="string"?{tag:N.tag}:{},createdAt:typeof N.createdAt=="string"?N.createdAt:void 0,lastMessageAt:Te?.lastMessageAt??rn(N.lastMessageAt),runtimeInfo:ae?{...ae}:B?{canonicalRepoRoot:B}:void 0,...W?{archived:!0}:{}}}let q=await k_(L);return{id:V.basename(L,".jsonl"),title:"",msgCount:q,...W?{archived:!0}:{}}}catch{return null}},"parseSessionFile"),P=48,z=new Set;for(let L=0;L<m.length;L+=P){let W=await Promise.all(m.slice(L,L+P).map(N=>$(N.path,N.archived)));for(let N of W)N&&!z.has(N.id)&&(z.add(N.id),H.push(N))}let J=n?.limit??10;return H.sort(za).slice(0,J).map(({id:L,title:W,msgCount:N,tag:q,runtimeInfo:B,createdAt:ae,lastMessageAt:ee,archived:ie})=>({id:L,title:W,msgCount:N,...q!==void 0?{tag:q}:{},...B?{runtimeInfo:B}:{},...ae!==void 0?{createdAt:ae}:{},...ee!==void 0?{lastMessageAt:ee}:{},...ie?{archived:!0}:{}}))}async archive(t){return this.archiveWithActorOwner(t)}async archiveOwned(t,n){return this.archiveWithActorOwner(t,n)}sessionConversationCacheMainPaths(t,n){let r=V.dirname(n),i=V.basename(r)==="archived"?V.join(V.dirname(r),`${t}.jsonl`):V.join(r,"archived",`${t}.jsonl`);return[n,i,this.legacyFlatPath(t)]}async removeSessionConversationCaches(t,n){let r=new Set;for(let i of this.sessionConversationCacheMainPaths(t,n)){let s=V.resolve(i);r.has(s)||(r.add(s),await Tr(i))}}async removeResumeMembership(t,n){try{await Bf(Vg(n),ty(t,"",0),!1)}catch(r){jt("warn",`Unable to remove ${t} from the resume index.`,r)}}async archiveWithActorOwner(t,n){await this.ensureMigrated();let r=!1;return await this.serializedWrite(t,async()=>{let i=await this.readSession(t);if(!i)return;this.assertActorFileOwner(i.data.actorSnapshot,n);let s=V.dirname(i.filePath);if(V.basename(s)==="archived"){for(let d of this.sessionConversationCacheMainPaths(t,i.filePath).slice(1))await Tr(d);await this.removeResumeMembership(t,i.filePath),r=!0;return}let a=this.verifiedLocationTopology(t),c=V.join(s,"archived");await this.removeSessionConversationCaches(t,i.filePath),await this.withSessionLocationTopologyChange(()=>this.movePair(t,s,c)),await this.removeResumeMembership(t,i.filePath);let l=this.readSessionTopologyIdentitySync(t),u=a!==void 0&&l!==void 0;this.sessionLocations.set(t,{kind:"located",filePath:V.join(c,`${t}.jsonl`),globallyVerified:u,...u?{topologyIdentity:l}:{}}),await this.rebuildConversationCache(t,V.join(c,`${t}.jsonl`),i.data.lineage??it(i.data.messages),i.data.runtimeInfo,i.data.extensionRecords),r=!0}),r}async unarchive(t){return this.unarchiveWithActorOwner(t)}async unarchiveOwned(t,n){return this.unarchiveWithActorOwner(t,n)}async unarchiveWithActorOwner(t,n){await this.ensureMigrated();let r=!1;return await this.serializedWrite(t,async()=>{let i=await this.readSession(t);if(!i)return;this.assertActorFileOwner(i.data.actorSnapshot,n);let s=V.dirname(i.filePath);if(V.basename(s)!=="archived"){for(let g of this.sessionConversationCacheMainPaths(t,i.filePath).slice(1))await Tr(g);r=!0;return}let a=this.verifiedLocationTopology(t),c=V.dirname(s),l=i.data.lineage?us(i.data.lineage):i.data.messages.length,u=Ji(l,i.data.uiHistory),d=i.data.scope!=="managed-task-worker"&&u>0,p=ty(t,i.data.title,u,i.createdAt,i.data.runtimeInfo?.surface);if(d)try{await Kg(c,p)}catch(g){jt("warn",`Unable to prepare the resume index for ${t}.`,g)}await this.removeSessionConversationCaches(t,i.filePath),await this.withSessionLocationTopologyChange(()=>this.movePair(t,s,c));try{await Bf(c,p,d)}catch(g){jt("warn",`Unable to refresh the resume index for ${t}.`,g)}let m=this.readSessionTopologyIdentitySync(t),h=a!==void 0&&m!==void 0;this.sessionLocations.set(t,{kind:"located",filePath:V.join(c,`${t}.jsonl`),globallyVerified:h,...h?{topologyIdentity:m}:{}}),await this.rebuildConversationCache(t,V.join(c,`${t}.jsonl`),i.data.lineage??it(i.data.messages),i.data.runtimeInfo,i.data.extensionRecords),r=!0}),r}async movePair(t,n,r){let i=[`${t}.jsonl`,`${t}.islands.jsonl`,`${t}.archive.jsonl`];for(let c of i)if(St.existsSync(V.join(r,c)))throw new Error(`Refusing to overwrite existing Session archive file: ${c}`);await Oe.mkdir(r,{recursive:!0});let s=i.filter(c=>St.existsSync(V.join(n,c))),a=[];try{for(let c of s){let l=V.join(n,c);await Oe.rename(l,V.join(r,c)),a.push(c)}}catch(c){let l=[];for(let u of a.reverse())try{await Oe.rename(V.join(r,u),V.join(n,u))}catch(d){l.push(d)}throw l.length>0?new AggregateError([c,...l],`Session ${t} move failed and rollback was incomplete.`):c}}async removeFileSetAtomically(t,n){let r=[];try{for(let i of[...new Set(n)]){let s=`${i}.${process.pid}.${Date.now()}.${JI++}.deleting.tmp`;try{await Oe.rename(i,s),r.push({source:i,tombstone:s})}catch(a){if(a.code!=="ENOENT")throw a}}}catch(i){let s=[];for(let a of r.reverse())try{await Oe.rename(a.tombstone,a.source)}catch(c){s.push(c)}throw s.length>0?new AggregateError([i,...s],`Session ${t} deletion failed and rollback was incomplete.`):i}for(let i of r)try{await Oe.unlink(i.tombstone)}catch(s){jt("warn",`Session ${t} was deleted, but a recoverable tombstone could not be removed.`,s)}return r.length}assertActorFileOwner(t,n){if(n!==void 0){if(t?.schemaVersion!==2||t.owner?.ownerId!==n)throw new Ww(t?.schemaVersion===2?t.owner?.runtimeId:void 0,t?.revision??0,!1);return}if(t?.schemaVersion===2&&t.owner)throw new Ww(t.owner.runtimeId,t.revision,!1);if(t?.turns.some(r=>r.state==="accepted"||r.state==="running"))throw new bb(t.revision)}async delete(t){return this.deleteWithActorOwner(t)}async deleteOwned(t,n){if(n.trim().length===0)throw new Error("Actor owner ID is required for owned Session deletion.");return this.deleteWithActorOwner(t,n)}async deleteWithActorOwner(t,n){await this.ensureMigrated(),await this.serializedWrite(t,async()=>{let r=await this.readSession(t);if(!r||(this.assertActorFileOwner(r.data.actorSnapshot,n),this.drafts.delete(t)))return;let i=r.filePath,s=[],a=o(l=>{s.includes(l)||s.push(l)},"addTarget");a(i.replace(/\.jsonl$/,".archive.jsonl")),a(i.replace(/\.jsonl$/,".islands.jsonl")),a(this.legacyFlatArchivePath(t)),a(this.legacyFlatPath(t));let c=s.indexOf(i);c>=0&&s.splice(c,1),s.push(i),await this.removeSessionConversationCaches(t,i),await this.withSessionLocationTopologyChange(()=>this.removeFileSetAtomically(t,s)),await this.removeResumeMembership(t,i),this.sessionLocations.delete(t)})}async deleteAll(t){let n=t??(this.hostCwd?await ps(this.hostCwd):null),r=await this.list(n??void 0,{limit:Number.MAX_SAFE_INTEGER});for(let i of r)await this.delete(i.id)}async cleanupOldSessions(t){if(!Number.isFinite(t)||t<=0)return 0;await this.ensureMigrated();let n=0,r=[],i=Date.now()-t*24*60*60*1e3,s=o(async a=>{let c=V.basename(a);if(!c.endsWith(".jsonl")||c.endsWith(".archive.jsonl")||c.endsWith(".islands.jsonl"))return;let l=c.slice(0,-6);try{await this.serializedWrite(l,async()=>{if((await Oe.stat(a)).mtimeMs>=i)return;let d=await ny(a),p=d?.meta?.actorSnapshot;!d?.meta||p!==void 0&&(p.schemaVersion===2&&p.owner!==void 0||p.turns.some(m=>m.state==="accepted"||m.state==="running"))||(await this.removeSessionConversationCaches(l,a),n+=await this.withSessionLocationTopologyChange(()=>this.removeFileSetAtomically(l,[a.replace(/\.jsonl$/,".archive.jsonl"),a.replace(/\.jsonl$/,".islands.jsonl"),a])),this.sessionLocations.delete(l))})}catch(u){r.push(u)}},"unlinkSessionIfOld");try{await Oe.mkdir(this.sessionsDir,{recursive:!0});let a=await Oe.readdir(this.sessionsDir,{withFileTypes:!0});for(let c of a){let l=V.join(this.sessionsDir,c.name);if(c.isFile()){await s(l);continue}if(!c.isDirectory()||c.name.startsWith("."))continue;let u=[];try{u=await Oe.readdir(l,{withFileTypes:!0})}catch{continue}for(let d of u){let p=V.join(l,d.name);if(d.isFile())await s(p);else if(d.isDirectory()&&d.name==="archived"){let m=[];try{m=await Oe.readdir(p)}catch{continue}for(let h of m)await s(V.join(p,h))}}}}catch(a){r.push(a)}if(r.length>0)throw new AggregateError(r,"One or more Session retention cleanups failed.");return n}};import{jsxs as ec,jsx as eu}from"react/jsx-runtime";import{useEffect as IV,useMemo as CV,useRef as TV,useState as sy}from"react";var vV=40;function bV(){let e="\u280B\u2819\u2839\u2838\u283C\u2834\u2826\u2827\u2807\u280F",[t,n]=sy(0);return IV(()=>{let r=setInterval(()=>n(i=>(i+1)%e.length),120);return()=>clearInterval(r)},[]),ec(M,{children:[e[t]," Loading selected session..."]})}o(bV,"SelectionLoadingIndicator");function RV(e,t){let n=t.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return n.length===0?[...e]:e.filter(r=>{let i=[r.title,r.id,r.surface??"",r.createdAt??"",r.lastMessageAt??"",String(r.msgCount)].join(" ").toLocaleLowerCase();return n.every(s=>i.includes(s))})}o(RV,"filterSessionPickerItems");function kV(e,t,n){let r=Math.max(1,n),i=e.length===0?0:Math.max(0,Math.min(t,e.length-1)),s=Math.floor(i/r)*r;return{items:e.slice(s,s+r),selectedIndex:i,pageStart:s,pageIndex:Math.floor(s/r),pageCount:Math.max(1,Math.ceil(e.length/r))}}o(kV,"buildSessionPickerPage");function EV(e){if(!e)return"unknown time";let t=new Date(e);if(Number.isNaN(t.getTime()))return e;let n=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0");return`${n}-${r}-${i} ${s}:${a}`}o(EV,"formatTimestamp");function MV({sessions:e,onSelect:t,onSelectionError:n,onCancel:r,pageSize:i=8}){let{exit:s}=qi(),[a,c]=sy(""),[l,u]=sy(0),[d,p]=sy(!1),m=TV(!1),h=CV(()=>RV(e,a),[e,a]),g=kV(h,l,i),S=h[g.selectedIndex];return Il((T,x)=>{if(!m.current){if(x.escape||x.ctrl&&T==="c"){r(),s();return}if(x.return){let I=h[g.selectedIndex];I&&(m.current=!0,p(!0),(async()=>{await new Promise(v=>setTimeout(v,vV));try{await t(I)}catch(v){n(v)}finally{s()}})());return}if(x.upArrow)u(I=>Math.max(0,I-1));else if(x.downArrow)u(I=>Math.min(Math.max(0,h.length-1),I+1));else if(x.pageUp)u(I=>Math.max(0,I-i));else if(x.pageDown)u(I=>Math.min(Math.max(0,h.length-1),I+i));else if(x.home)u(0);else if(x.end)u(Math.max(0,h.length-1));else if(x.tab){let I=h[g.selectedIndex];I&&(c(I.title),u(0))}else x.backspace||x.delete?(c(I=>I.slice(0,-1)),u(0)):T&&!x.ctrl&&!x.meta&&!x.super&&(c(I=>I+T),u(0))}}),ec(O,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,children:[eu(M,{bold:!0,color:"cyan",children:"Resume a session"}),ec(M,{children:["Search: ",eu(M,{color:"yellow",children:a||"type to filter"})]}),eu(M,{dimColor:!0,children:d?eu(bV,{}):"\u2191/\u2193 select \xB7 PgUp/PgDn page \xB7 Tab complete \xB7 Enter resume \xB7 Esc cancel"}),ec(O,{flexDirection:"column",marginTop:1,children:[g.items.length===0?eu(M,{color:"yellow",children:"No matching sessions."}):null,g.items.map((T,x)=>{let v=g.pageStart+x===g.selectedIndex,k=T.title.trim()||"Untitled session",_=T.surface?` \xB7 ${T.surface}`:"";return ec(M,{color:v?"cyan":void 0,bold:v,children:[v?"\u276F":" "," ",k," \xB7 ",T.msgCount," msgs",_," \xB7 ",EV(T.lastMessageAt??T.createdAt)," \xB7 ",T.id.slice(0,8)]},T.id)})]}),ec(M,{dimColor:!0,children:[h.length," matches \xB7 Page ",g.pageIndex+1,"/",g.pageCount]}),ec(M,{dimColor:!0,children:["Selected ID: ",S?.id??"none"]})]})}o(MV,"SessionPicker");async function AV(e,t={}){if(process.stdin.isTTY!==!0||process.stdout.isTTY!==!0)throw new Error("Searchable session resume requires an interactive terminal. Pass an exact session ID or title to -r/--resume instead.");let n,r=!1,i=!1,s=!1,a,c=sl()==="ink",l=Math.max(4,Math.min(12,(process.stdout.rows??24)-8)),u=Sl(eu(MV,{sessions:e,pageSize:l,onSelect:o(async d=>{n=d,await t.prepareSelection?.(d),s=!0},"onSelect"),onSelectionError:o(d=>{i=!0,a=d},"onSelectionError"),onCancel:o(()=>{r=!0},"onCancel")}),{stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,exitOnCtrlC:!1,patchConsole:!1,preserveRawModeOnUnmount:o(()=>c&&s,"preserveRawModeOnUnmount")});try{await u.waitUntilExit()}finally{u.unmount(),u.cleanup()}if(i)throw a;if(!n&&!r)throw new Error("Session picker exited unexpectedly before selection or cancellation.");return n}o(AV,"runSessionPicker");import br from"chalk";var H_=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],F_=["\x1B[36m","\x1B[35m","\x1B[34m"],zf=null,tu=!1;function Kf(){let e=0,t=0,n=!1,r="Thinking...",i=o(()=>{if(n)return;let c=F_[t%F_.length],l="\x1B[0m",u=H_[e%H_.length];process.stdout.write(`\r${c}${u}${l} ${r}`)},"renderFrame"),s=setInterval(()=>{e++,e%10===0&&t++,i()},80);i();let a={stop:o(()=>{n||(n=!0,clearInterval(s),process.stdout.write("\r\x1B[K"))},"stop"),isStopped:o(()=>n,"isStopped"),updateText:o(c=>{r=c},"updateText")};return zf=a,a}o(Kf,"startWaitingDots");function dC(e=!0){let t=null,n=0,r=new Map,i,s=o(u=>u?.contextKind!=="child"&&!u?.childAgentId&&!u?.workflowCorrelation?.workflowRunId&&!u?.workflowCorrelation?.childAgentId,"isPrimary"),a=o(u=>s(u)&&(!i||!u?.providerRequestId||u.providerRequestId===i),"isCurrentStream"),c=!1;return{onOutputSegmentStart:o((u,d)=>{!s(d)||u.providerRequestId===i||(i=u.providerRequestId,n=0,r.clear())},"onOutputSegmentStart"),onSessionStart:o(u=>{console.log(e?br.cyan(`[KodaX] Provider: ${u.provider} | Session: ${u.sessionId}`):br.cyan(`[KodaX] Provider: ${u.provider}`))},"onSessionStart"),onTextDelta:o(u=>{t&&(t.stop(),t=null),n=0,process.stdout.write(u),c=!0},"onTextDelta"),onThinkingDelta:o((u,d)=>{a(d)&&(n+=u.length,t||(t=Kf()),t.updateText(`Thinking... (~${yn(or(n))} tokens)`))},"onThinkingDelta"),onThinkingEnd:o(u=>{if(t&&(t.stop(),t=null),u){let d=u.replace(/\n/g," "),p=d.length>100?d.slice(0,100)+"...":d;console.log(br.dim(`[Thinking] ${p}`))}},"onThinkingEnd"),onToolUseStart:o(u=>{t||(tu||(process.stdout.write(`
|
|
111
|
-
`),
|
|
112
|
-
`),
|
|
108
|
+
`)}`,v=r.scope??a.scope??"user",k=V.basename(V.dirname(a.filePath))!=="archived",_=r.uiHistory===void 0?a.presentationOnlyHistoryCount:Ji(0,r.uiHistory),H=p+_,$=k&&v!=="managed-task-worker"&&H>0,P=Vg(a.filePath),z=ty(t,r.title,H,void 0,a.surface,x.lastMessageAt);if($)try{await Kg(P,z)}catch(L){jt("warn",`Unable to prepare the resume index for ${t}.`,L)}await Oe.appendFile(a.filePath,I,"utf-8"),s=!0;try{await Hf(P,z,$)}catch(L){jt("warn",`Unable to refresh the resume index for ${t}.`,L)}await this.updateConversationCacheAfterAppend(t,a.filePath,h,a.activeEntryId,l,r.activeEntryId,I);for(let L of u)a.artifactEntryIds.add(L.id);for(let L of u)a.artifactDedupKeys.add(cC(L));for(let L of d)a.extensionRecordIds.add(L.id);let J=await jf(this.sessionsDir,t,a.filePath,!0);this.appendState.set(t,{...a,appendRevision:Zl(),lineageCount:a.lineageCount+l.length,artifactCount:a.artifactCount+u.length,extensionCount:a.extensionCount+d.length,activeEntryId:r.activeEntryId,activeMessageCount:p,lastMessageAt:x.lastMessageAt,presentationOnlyHistoryCount:_,scope:v,lineageIdentityFilter:S,lineageIdentityFilterHash:T,bundleBoundaryRevision:J.revision,mainIdentity:await Kr(a.filePath)??void 0}),this.lineageIdentityFilterHashes.set(t,T),i=this.currentPreparedSessionAppend(t)??void 0})}catch(a){if(!s)throw a;return this.appendState.delete(t),jt("error",`Prepared Session tail for ${t} committed, but its successor boundary could not be prepared; reload before the next append.`,a),null}return i??null}isDraft(t){return this.drafts.has(t)}async createDraft(t,n){await this.serializedWrite(t,async()=>{if(this.drafts.has(t)||await this.readSession(t)!==null)throw Object.assign(new Error(`Session already exists: ${t}`),{code:"conflict"});this.drafts.set(t,structuredClone({...n,lineage:it(n.messages,n.lineage)}))})}async save(t,n){await this.serializedWrite(t,async()=>{await this.mergeAndWriteInternal(t,n)})}async createGenerated(t,n){await this.serializedWrite(t,async()=>{await Oe.mkdir(V.join(this.sessionsDir,iy),{recursive:!0});let r=this.writeFilePath(t,n);if(ft.existsSync(r)||ft.existsSync(this.legacyFlatPath(t)))throw Object.assign(new Error(`Session already exists: ${t}`),{code:"conflict"});await this.writeSessionInternal(t,n,void 0,r,void 0,n.lineage??it(n.messages));let i=this.readSessionTopologyIdentitySync(t);i!==void 0&&this.sessionLocations.set(t,{kind:"located",filePath:r,globallyVerified:!0,topologyIdentity:i}),await this.syncAppendStateFromFile(t,n,r)})}async mutateUiHistory(t,n){let r=!1;return await this.serializedWrite(t,async()=>{let i=await this.readSession(t);if(i===null)return;r=!0;let s=n(i.data.uiHistory??[],i.data);await this.mergeAndWriteInternal(t,{...i.data,uiHistory:s})}),r}async appendSessionRecords(t,n){let r=structuredClone(n),i=!1;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(s===null)return;i=!0;let a=new Map((s.data.extensionRecords??[]).map(c=>[c.id,c]));for(let c of r)a.set(c.id,c);await this.mergeAndWriteInternal(t,{...s.data,extensionRecords:[...a.values()]})}),i}async mutateLineage(t,n){let r=!1;return await this.serializedWrite(t,async()=>{let i=await this.readSession(t);if(i===null)return;r=!0;let s=i.data.lineage??it(i.data.messages),a=n(s);a!==s&&await this.mergeAndWriteInternal(t,{...i.data,lineage:a})}),r}async mutateRuntimeInfo(t,n){let r=!1;return await this.serializedWrite(t,async()=>{let i=await this.readSession(t);if(i===null)return;r=!0;let s=i.data.runtimeInfo===void 0?void 0:structuredClone(i.data.runtimeInfo),a=n(s);await this.mergeAndWriteInternal(t,{...i.data,runtimeInfo:a},!0)}),r}async promoteOwned(t,n,r){let i=structuredClone(r),s=!1;return await this.serializedWrite(t,async()=>{let a=await this.readSession(t);if(a===null)return;this.assertActorFileOwner(a.data.actorSnapshot,n);let c=fb(t,a.data,i);c!==a.data&&await this.mergeAndWriteInternal(t,c),s=!0}),s}beginActorSnapshotSave(t,n,r){let i=O2(t,n.revision),s=this.serializedWrite(t,async()=>{i.canonicalObserver.beginTiming("readCas");let a=vi.now(),c;try{let m=await this.readSession(t);if(!m)throw new Error(`Session not found: ${t}`);let h=m.data.actorSnapshot?.revision??0;if(h!==r)throw new vb(r,h,t);c=m}finally{i.canonicalObserver.recordTiming("readCas",vr(a))}let l={...c.data,actorSnapshot:structuredClone(n)};if(this.isDraft(t)){i.canonicalObserver.beforeCommit(),this.drafts.set(t,structuredClone(l)),i.canonicalObserver.afterCommit();return}i.canonicalObserver.beginTiming("lineage");let u=vi.now(),d;try{d=l.lineage===void 0?void 0:await this.completeConversationLineage(t,c.filePath,l.lineage)}finally{i.canonicalObserver.recordTiming("lineage",vr(u))}let p;try{p=await this.writeSessionInternal(t,l,c.createdAt,c.filePath,void 0,d,i.canonicalObserver)}catch(m){let h=m;if(i.attempt.phase()==="commit_inflight")try{let g=await this.readSession(t),S=g?.data.actorSnapshot,T=g?.data.actorSnapshot?.revision??0;k2(S,L2(n))?i.markCommitObservedByReadback():T===r?i.markCommitNotObserved(m):h=new AggregateError([m,new Error(`Actor snapshot readback observed revision ${T}; expected prior ${r} or exact target ${n.revision}.`)],"Actor snapshot replacement result is ambiguous.")}catch(g){h=new AggregateError([m,g],"Actor snapshot replacement failed and canonical readback was unavailable.")}throw h}await this.syncAppendStateFromFile(t,l,p)},i.queueObserver);return i.settleCompletion(s),i.attempt}async saveActorSnapshot(t,n,r){await this.beginActorSnapshotSave(t,n,r).completion}async peek(t){let n=await this.readSession(t,{migrate:!1});return n?Ql(n.data):null}async readActorSnapshot(t,n={}){return(await this.readActorMetadata(t,n))?.actorSnapshot}async listActiveSessionIds(){eC(this.sessionsDir);let t={topologyBefore:this.readSessionTopologyIdentitySync("","global"),writerTopologyDigestBefore:ZI(this.sessionsDir),topologyMutationBefore:ft.existsSync(Qi(this.sessionsDir))},n;try{n=await Oe.readdir(this.sessionsDir,{withFileTypes:!0})}catch(c){if(c.code==="ENOENT")return[...this.drafts.keys()];throw c}let r=[],i=[...this.drafts.keys()],s=o((c,l,u)=>{for(let d of l)!d.endsWith(".jsonl")||d.startsWith(".")||d.endsWith(".islands.jsonl")||d.endsWith(".archive.jsonl")||(r.push(V.join(c,d)),!u&&!d.startsWith("archived-")&&i.push(V.basename(d,".jsonl")))},"collect");s(this.sessionsDir,n.filter(c=>c.isFile()).map(c=>c.name),!1),await Promise.all(n.filter(c=>c.isDirectory()&&!c.name.startsWith(".")).map(async c=>{let l=V.join(this.sessionsDir,c.name),u=c.name==="archived";if(s(l,await Oe.readdir(l),u),u)return;let d=V.join(l,"archived");try{s(d,await Oe.readdir(d),!0)}catch(p){if(p.code!=="ENOENT")throw p}})),this.completeSessionLocationTraversal(t,r,!0);let a=this.readSessionTopologyIdentitySync("","global");if(eC(this.sessionsDir),t.topologyMutationBefore||t.topologyBefore===void 0||a===void 0||ft.existsSync(Qi(this.sessionsDir))||t.topologyBefore.root.dev!==a.root.dev||t.topologyBefore.root.ino!==a.root.ino||t.topologyBefore.epoch!==a.epoch)throw new Ie("data_changed","Session inventory changed during preflight");return[...new Set(i)]}async readActorMetadata(t,n={}){Pn(n.signal),$s(n.timeoutMs);let r=Date.now();return Qa((async()=>{await this.awaitOwnWrites(t,n,r),Pn(n.signal);let i=this.drafts.get(t);if(i)return{id:t,runtimeInfo:structuredClone(i.runtimeInfo),actorSnapshot:structuredClone(i.actorSnapshot)};let s=await this.resolveSessionLocation(t,!0);if(Pn(n.signal),s===null)return;let a=this.verifiedLocationTopology(t),c=await $_(this.sessionsDir,t,s,!1,()=>B_(s,n.signal));if(Pn(n.signal),this.assertLocationTopologyUnchanged(t,a),c._type!=="meta")throw new Ie("data_corrupt","Session metadata is missing");if(c.lineageVersion!==void 0&&c.lineageVersion!==2)throw new Ie("version_incompatible","Unsupported Session lineage version");let l=c.actorSnapshot,u=Vf(c.runtimeInfo)?c.runtimeInfo:void 0;if(l===void 0)return{id:t,runtimeInfo:u};if(!lt(l)||l.schemaVersion!==1&&l.schemaVersion!==2)throw new Ie("version_incompatible","Unsupported Actor snapshot schema");if(!Array.isArray(l.actors)||!l.actors.every(d=>lt(d)&&typeof d.path=="string"&&(d.currentTurnId===void 0||typeof d.currentTurnId=="string")))throw new Ie("data_corrupt","Invalid Actor metadata");if(l.schemaVersion===2&&l.owner!==void 0){let d=l.owner;if(!lt(d)||typeof d.ownerId!="string"||typeof d.runtimeId!="string"||!Number.isSafeInteger(d.pid)||d.pid<=0||typeof d.startedAt!="string")throw new Ie("data_corrupt","Invalid Actor owner metadata")}return{id:t,runtimeInfo:u,actorSnapshot:structuredClone(l)}})(),n)}async read(t,n={}){Pn(n.signal),$s(n.timeoutMs);let r=Date.now(),i=await Qa((async()=>(await this.awaitOwnWrites(t,n,r),this.readSession(t,{migrate:!1,strict:!0})))(),n);return i?Ql(i.data):null}async readConversationPageCache(t,n,r={}){Pn(r.signal),$s(r.timeoutMs);let i=Date.now(),s=(async()=>{await this.awaitOwnWrites(t,r,i);let a=await this.resolveSessionLocation(t,!0);if(a===null)return null;let c=this.verifiedLocationTopology(t);try{let l=await Za(this.sessionsDir,t,a),u=await vA(a,l,{...n,signal:r.signal}),d=await Za(this.sessionsDir,t,a);if(this.assertLocationTopologyUnchanged(t,c),l!==d)throw new Bt("Conversation history changed during paging");if(u===null&&n.expectedRevision!==void 0)throw new Bt("Conversation history changed; request a fresh page");return u}catch(l){if(l instanceof Bt){if(n.expectedRevision===void 0)return null;throw new Ie("data_changed",l.message)}throw l}})();return Qa(s,r)}async readConversationPageBoundary(t,n={}){Pn(n.signal),$s(n.timeoutMs);let r=Date.now(),i=(async()=>{await this.awaitOwnWrites(t,n,r);let s=await this.resolveSessionLocation(t,!0);if(s===null)return null;let a=this.verifiedLocationTopology(t),c=await Za(this.sessionsDir,t,s),l=await wV(s),u=await Za(this.sessionsDir,t,s);if(this.assertLocationTopologyUnchanged(t,a),c!==u)throw new Ie("data_changed","Session changed while validating a Conversation page boundary");return{boundaryRevision:u,admission:l}})();return Qa(i,n)}async prepareConversationPageCache(t,n,r,i,s,a,c={}){Pn(c.signal);let l=await this.resolveSessionLocation(t,!0);if(l===null)throw new Ie("data_changed","Session moved before page preparation");await Qa(this.serializedWrite(t,async()=>{if(Pn(c.signal),await Za(this.sessionsDir,t,l,!0)!==s)throw new Ie("data_changed","Session changed before page preparation");await LI(l,s,a,n,r,i,u_)}),c)}async readConversationPageCacheChunk(t,n,r={}){Pn(r.signal),$s(r.timeoutMs);let i=Date.now(),s=(async()=>{await this.awaitOwnWrites(t,r,i);let a=await this.resolveSessionLocation(t,!0);if(a===null)return null;let c=this.verifiedLocationTopology(t);try{let l=await Za(this.sessionsDir,t,a),u=await bA(a,l,{...n,signal:r.signal}),d=await Za(this.sessionsDir,t,a);if(this.assertLocationTopologyUnchanged(t,c),l!==d||u===null)throw new Bt("Conversation history changed; request a fresh page");if(u===void 0)throw new Error(`Transcript entry index is out of range: ${n.entryIndex}`);return u}catch(l){throw l instanceof Bt?new Ie("data_changed",l.message):l}})();return Qa(s,r)}async readFullSnapshot(t,n={}){Pn(n.signal),$s(n.timeoutMs);let r=Date.now(),i=(async()=>{await this.awaitOwnWrites(t,n,r);let s=this.drafts.get(t);if(s){let c=`draft:${t}:${Wo("sha256").update(JSON.stringify(s)).digest("hex")}`;return{data:Ql(s),lineage:structuredClone(s.lineage??null),sourceRevision:c,boundaryRevision:c,sourceRevisionState:{version:1,files:[]}}}let a=await this.resolveSessionLocation(t,!0);return a===null?null:this.readFullSnapshotAtPath(t,a,n.signal,!1)})();return Qa(i,n)}async readFullSnapshotAtPath(t,n,r,i){let s=this.verifiedLocationTopology(t),a=await aC(this.sessionsDir,t,n,r,i),c=a.files.find(S=>S.kind==="main");if(c===void 0)throw new Ie("data_changed","Session main file moved during the read boundary");let l=await ny(c.path,!0,c.bytes.toString("utf8"));if(l===null)return null;let u=R_(l,c.path),d=V.dirname(c.path),p=new Map([[V.join(d,`${t}.islands.jsonl`),null],[V.join(d,`${t}.archive.jsonl`),null]]);for(let S of a.files)S.kind!=="main"&&p.set(S.path,S.bytes.toString("utf8"));let m=await this.readArchivedEntries(t,c.path,!0,p),h=Wf(m,u.data.lineage?.entries??[]),g=u.data.lineage===void 0?h.length===0?null:{version:2,activeEntryId:null,entries:h}:{...u.data.lineage,entries:h};return i||this.assertLocationTopologyUnchanged(t,s),{data:Ql(u.data),lineage:g,sourceRevision:a.sourceRevision,sourceRevisionState:a.sourceRevisionState,boundaryRevision:a.boundaryRevision}}async load(t){let n=this.drafts.get(t);if(n)return Ql(n);let r=await this.readSession(t);if(!r)return null;this.syncAppendState(t,r.data,{filePath:r.filePath,mainIdentity:r.mainIdentity},r.activeMessageCount);let{data:i}=r,s=this.legacyFlatPath(t);if(this.emitMismatchWarnings){let a=await ps(this.hostCwd),c=await Hi({cwd:this.hostCwd}),l=Xn(i);(c.canonicalRepoRoot&&l?.canonicalRepoRoot&&!iS(c,l)||a&&i.gitRoot&&a!==i.gitRoot&&!iS(c,{canonicalRepoRoot:i.gitRoot}))&&(Ho(l_.yellow(`
|
|
109
|
+
[Warning] Session project mismatch:`)),c.workspaceRoot&&Ho(` Current workspace: ${c.workspaceRoot}`),l?.workspaceRoot&&Ho(` Session workspace: ${l.workspaceRoot}`),c.canonicalRepoRoot&&Ho(` Current repo: ${c.canonicalRepoRoot}`),l?.canonicalRepoRoot?Ho(` Session repo: ${l.canonicalRepoRoot}`):i.gitRoot&&Ho(` Session repo: ${i.gitRoot}`),Ho(` Continuing anyway...
|
|
110
|
+
`))}if(i.errorMetadata?.consecutiveErrors&&i.errorMetadata.consecutiveErrors>0){let a=i,c=!1;return await this.serializedWrite(t,async()=>{let l=await this.readSession(t);if(!l){a=null;return}a=l.data;let u=l.data.actorSnapshot;if(u?.schemaVersion===2&&u.owner!==void 0||u?.turns.some(g=>g.state==="accepted"||g.state==="running")){this.syncAppendState(t,l.data,{filePath:l.filePath,mainIdentity:l.mainIdentity});return}if(!l.data.errorMetadata?.consecutiveErrors||l.data.errorMetadata.consecutiveErrors<=0){this.syncAppendState(t,l.data,{filePath:l.filePath,mainIdentity:l.mainIdentity});return}let d=hb(l.data.messages);if(d===l.data.messages){this.syncAppendState(t,l.data,{filePath:l.filePath,mainIdentity:l.mainIdentity});return}let p={...l.data,messages:d,errorMetadata:{...l.data.errorMetadata,consecutiveErrors:0},lineage:it(d,l.data.lineage)},m=await this.completeConversationLineage(t,l.filePath,p.lineage),h=await this.writeSessionInternal(t,p,l.createdAt,l.filePath,void 0,m);await this.syncAppendStateFromFile(t,p,h),a=p,c=!0}),c&&Ho(l_.cyan("[Session Recovery] Attempted cleanup of incomplete tool calls from previous session")),a}return g_(s,0),i}async has(t){try{return await this.ensureMigrated(),await this.resolveSessionLocation(t)!==null}catch(n){return jt("warn",`Unable to locate Session ${t}.`,n),!1}}async isArchived(t){await this.ensureMigrated();let n=await this.resolveSessionLocation(t);return n!==null&&V.basename(V.dirname(n))==="archived"}async getLineage(t){return(await this.readSession(t))?.data.lineage??null}async loadFullLineage(t){let n=this.drafts.get(t);return n?structuredClone(n.lineage??null):(await this.ensureMigrated(),hm(this.sessionWriteLockPath(t),async()=>{let r=await this.readSession(t);if(!r?.data.lineage)return null;let i=await this.readArchivedEntries(t,r.filePath);return i.length===0?r.data.lineage:{...r.data.lineage,entries:Wf(i,r.data.lineage.entries)}},ry))}async setActiveEntry(t,n,r){let i=null;return await Dw({configHome:this.configHome,sessionId:t},async s=>this.serializedWrite(t,async()=>{let a=await this.readSession(t);if(!a?.data.lineage)return;let c=Hc(a.data.lineage,n,r);if(!c)return;await s(Hw(c));let l={...a.data,messages:Yt(c),lineage:c,uiHistory:[]},u=await this.completeConversationLineage(t,a.filePath,c),d=await this.writeSessionInternal(t,l,a.createdAt,a.filePath,void 0,u);await this.syncAppendStateFromFile(t,l,d),i=l})),i}async rewind(t,n,r){let i=null;return await Dw({configHome:this.configHome,sessionId:t},async s=>this.serializedWrite(t,async()=>{let a=await this.readSession(t);if(!a?.data.lineage)return;let c=r?.historyBoundary,l=c===void 0?void 0:await this.readFullSnapshotAtPath(t,a.filePath,void 0,!0);if(l!==void 0&&l?.sourceRevision!==c?.sourceRevision)throw new Ie("data_changed",`Conversation history boundary is stale for ${t}`);let u=l?.lineage??a.data.lineage;if(u===null)return;let d=n??Wc(u);if(!d)return;let p=l===void 0?void 0:d_(u,d);if(l!==void 0&&p===void 0)return;let h=jc(p===void 0?u:{version:2,activeEntryId:d,entries:p},d);if(!h)return;let g=h.entries.at(-1);if(g?.type!=="rewind_marker")return;let S=u.entries.findIndex(L=>L.id===d);if(S<0)return;let{fromId:T,...x}=g,I={...x,...u.activeEntryId!==null?{fromId:u.activeEntryId}:{},truncatedCount:u.entries.length-S-1},v={...h,entries:[...h.entries.slice(0,-1),I]};await s(Hw(v));let k=await this.readArchivedEntries(t,a.filePath),_=l?.lineage?.entries??(k.length===0?a.data.lineage.entries:Wf(k,a.data.lineage.entries)),H=new Set(v.entries.map(L=>L.id)),$=a.data.lineage.entries.filter(L=>!H.has(L.id)),P={...a.data,messages:Yt(v),lineage:v,uiHistory:[]};await this.appendIslandArchive(t,P,$,I.id,[..._,I],a.filePath);let z=await this.completeConversationLineage(t,a.filePath,v),J=await this.writeSessionInternal(t,P,a.createdAt,a.filePath,void 0,z);await this.syncAppendStateFromFile(t,P,J),i=P})),i}async setLabel(t,n,r){let i=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=Fc(s.data.lineage,n,r);if(!a)return;let c={...s.data,lineage:a},l=await this.completeConversationLineage(t,s.filePath,a),u=await this.writeSessionInternal(t,c,s.createdAt,s.filePath,void 0,l);await this.syncAppendStateFromFile(t,c,u),i=c}),i}async fork(t,n,r){let i=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=r?.historyBoundary,c=a===void 0?void 0:await this.readFullSnapshotAtPath(t,s.filePath,void 0,!0);if(c!==void 0&&c?.sourceRevision!==a?.sourceRevision)throw new Ie("data_changed",`Conversation history boundary is stale for ${t}`);if(a!==void 0&&c===null)return;let l=c?.lineage??s.data.lineage;if(l===null)return;let u=c!==void 0&&n!==void 0?d_(l,n):void 0;if(c!==void 0&&(n===void 0||u===void 0))return;let d=Date.now();if(r?.before===!0&&c===void 0)throw new Error("Fork before requires a canonical history boundary.");let p=r?.before===!0?u?.at(-2)?.id:n,m=c===void 0?wo(l,n):c===null?null:p===void 0?it([]):ZM(l,p,c.sourceRevision,()=>Gf({},d));if(!m)return;let h=r?.sessionId??await Uc(),g={lastMessageAt:Gl(m.entries,void 0,l.entries),messages:Yt(m),title:r?.title??s.data.title,gitRoot:s.data.gitRoot,tag:s.data.tag,runtimeInfo:s.data.runtimeInfo?{...s.data.runtimeInfo}:void 0,uiHistory:s.data.uiHistory?s.data.uiHistory.map(S=>({...S})):void 0,extensionState:s.data.extensionState?structuredClone(s.data.extensionState):void 0,artifactLedger:s.data.artifactLedger?structuredClone(s.data.artifactLedger):void 0,extensionRecords:s.data.extensionRecords?structuredClone(s.data.extensionRecords):void 0,lineage:m};await this.writeSessionInternal(h,g,void 0,void 0,void 0,m),i={sessionId:h,data:g}}),i}async list(t,n){await this.ensureMigrated(),await Oe.mkdir(this.sessionsDir,{recursive:!0});let r=t&&t.trim()?t:void 0,i=r!==void 0||this.hostCwd!==void 0,s=r??(this.hostCwd?await ps(this.hostCwd):null),a=i?await Hi({cwd:s??this.hostCwd??process.cwd()}):void 0,c=a?.canonicalRepoRoot??s??this.hostCwd,l=c?await JI(c):void 0,u=l?[l.canonicalProjectRoot,...l.compatibleRoots]:[],d=i?void 0:this.beginSessionLocationTraversal(),p=await Oe.readdir(this.sessionsDir,{withFileTypes:!0}),m=[],h=new Map,g=[],T=(a===void 0?void 0:ti({gitRoot:s??void 0,runtimeInfo:a}))?.key,x=o(L=>L.endsWith(".archive.jsonl")||L.endsWith(".islands.jsonl"),"isSidecar"),I=T!==void 0?[...new Set([T,...u.map(L=>Br(L).key)])]:p.filter(L=>L.isDirectory()&&!L.name.startsWith(".")).map(L=>L.name),v=!i,k=o(async L=>{try{return{files:await Oe.readdir(L),complete:!0}}catch(W){return{files:[],complete:W.code==="ENOENT"}}},"readDirectory"),_=48;for(let L=0;L<I.length;L+=_){let W=await Promise.all(I.slice(L,L+_).map(async N=>{let q=this.projectDir(N),[B,ae,ee]=await Promise.all([k(q),k(V.join(q,"archived")),Bf(q).catch(C=>{jt("warn",`Unable to read the resume index in ${N}.`,C)})]),ie=ee;return ie===void 0&&c&&N===T&&(await c_({sessionsDir:this.sessionsDir,projectRoot:c}),ie=await Bf(q).catch(C=>{jt("warn",`Unable to read the rebuilt resume index in ${N}.`,C)})),{projectDir:q,active:B,archived:ae,resumeEntries:ie}}));for(let N of W){let q=new Map(N.resumeEntries?.map(B=>[B.id,B])??[]);(!N.active.complete||!N.archived.complete)&&(v=!1);for(let B of N.active.files){if(!B.endsWith(".jsonl")||x(B))continue;let ae=V.join(N.projectDir,B);g.push(ae),m.push({path:ae,archived:!1});let ee=q.get(V.basename(B,".jsonl"));ee!==void 0&&h.set(ae,ee)}for(let B of N.archived.files){if(!B.endsWith(".jsonl")||x(B))continue;let ae=V.join(N.projectDir,"archived",B);g.push(ae),n?.includeArchived&&m.push({path:ae,archived:!0})}}}for(let L of p)if(L.isFile()&&L.name.endsWith(".jsonl")&&!x(L.name)&&!L.name.startsWith("archived-")&&!L.name.startsWith(".")){let W=V.join(this.sessionsDir,L.name);g.push(W),m.push({path:W,archived:!1})}d===void 0?this.indexSessionLocations(g,!1):this.completeSessionLocationTraversal(d,g,v);let H=[],$=o(async(L,W)=>{try{let N=await Yg(L);if(!N)return null;if(lt(N)&&N._type==="meta"){let B=typeof N.gitRoot=="string"?N.gitRoot:"",ae=Vf(N.runtimeInfo)?N.runtimeInfo:void 0,ee=N.scope==="managed-task-worker"?"managed-task-worker":"user";if(a!==void 0&&T!==void 0&&!el({gitRoot:B||void 0,runtimeInfo:ae},[a.canonicalRepoRoot,a.workspaceRoot,a.executionCwd,s,...u].filter(X=>typeof X=="string"&&X.length>0))||ee!=="user")return null;let ie=typeof N.extensionRecordCount=="number"&&N.extensionRecordCount>0?N.extensionRecordCount:0,C=typeof N.activeMessageCount=="number"&&N.activeMessageCount>=0?N.activeMessageCount:Math.max(0,await k_(L)-1-ie),Te=W?void 0:h.get(L),Fe=Te?.msgCount??Ji(C,N.uiHistory);if(!W&&Te===void 0&&Fe===0){let Ce=await ny(L),X=Ce?.meta?.activeMessageCount;Fe=Ji(typeof X=="number"?X:0,Ce?.meta?.uiHistory)}return{id:V.basename(L,".jsonl"),title:Te?.title??(typeof N.title=="string"?N.title:""),msgCount:Fe,...typeof N.tag=="string"?{tag:N.tag}:{},createdAt:typeof N.createdAt=="string"?N.createdAt:void 0,lastMessageAt:Te?.lastMessageAt??rn(N.lastMessageAt),runtimeInfo:ae?{...ae}:B?{canonicalRepoRoot:B}:void 0,...W?{archived:!0}:{}}}let q=await k_(L);return{id:V.basename(L,".jsonl"),title:"",msgCount:q,...W?{archived:!0}:{}}}catch{return null}},"parseSessionFile"),P=48,z=new Set;for(let L=0;L<m.length;L+=P){let W=await Promise.all(m.slice(L,L+P).map(N=>$(N.path,N.archived)));for(let N of W)N&&!z.has(N.id)&&(z.add(N.id),H.push(N))}let J=n?.limit??10;return H.sort(qa).slice(0,J).map(({id:L,title:W,msgCount:N,tag:q,runtimeInfo:B,createdAt:ae,lastMessageAt:ee,archived:ie})=>({id:L,title:W,msgCount:N,...q!==void 0?{tag:q}:{},...B?{runtimeInfo:B}:{},...ae!==void 0?{createdAt:ae}:{},...ee!==void 0?{lastMessageAt:ee}:{},...ie?{archived:!0}:{}}))}async archive(t){return this.archiveWithActorOwner(t)}async archiveOwned(t,n){return this.archiveWithActorOwner(t,n)}sessionConversationCacheMainPaths(t,n){let r=V.dirname(n),i=V.basename(r)==="archived"?V.join(V.dirname(r),`${t}.jsonl`):V.join(r,"archived",`${t}.jsonl`);return[n,i,this.legacyFlatPath(t)]}async removeSessionConversationCaches(t,n){let r=new Set;for(let i of this.sessionConversationCacheMainPaths(t,n)){let s=V.resolve(i);r.has(s)||(r.add(s),await Tr(i))}}async removeResumeMembership(t,n){try{await Hf(Vg(n),ty(t,"",0),!1)}catch(r){jt("warn",`Unable to remove ${t} from the resume index.`,r)}}async archiveWithActorOwner(t,n){await this.ensureMigrated();let r=!1;return await this.serializedWrite(t,async()=>{let i=await this.readSession(t);if(!i)return;this.assertActorFileOwner(i.data.actorSnapshot,n);let s=V.dirname(i.filePath);if(V.basename(s)==="archived"){for(let d of this.sessionConversationCacheMainPaths(t,i.filePath).slice(1))await Tr(d);await this.removeResumeMembership(t,i.filePath),r=!0;return}let a=this.verifiedLocationTopology(t),c=V.join(s,"archived");await this.removeSessionConversationCaches(t,i.filePath),await this.withSessionLocationTopologyChange(()=>this.movePair(t,s,c)),await this.removeResumeMembership(t,i.filePath);let l=this.readSessionTopologyIdentitySync(t),u=a!==void 0&&l!==void 0;this.sessionLocations.set(t,{kind:"located",filePath:V.join(c,`${t}.jsonl`),globallyVerified:u,...u?{topologyIdentity:l}:{}}),await this.rebuildConversationCache(t,V.join(c,`${t}.jsonl`),i.data.lineage??it(i.data.messages),i.data.runtimeInfo,i.data.extensionRecords),r=!0}),r}async unarchive(t){return this.unarchiveWithActorOwner(t)}async unarchiveOwned(t,n){return this.unarchiveWithActorOwner(t,n)}async unarchiveWithActorOwner(t,n){await this.ensureMigrated();let r=!1;return await this.serializedWrite(t,async()=>{let i=await this.readSession(t);if(!i)return;this.assertActorFileOwner(i.data.actorSnapshot,n);let s=V.dirname(i.filePath);if(V.basename(s)!=="archived"){for(let g of this.sessionConversationCacheMainPaths(t,i.filePath).slice(1))await Tr(g);r=!0;return}let a=this.verifiedLocationTopology(t),c=V.dirname(s),l=i.data.lineage?us(i.data.lineage):i.data.messages.length,u=Ji(l,i.data.uiHistory),d=i.data.scope!=="managed-task-worker"&&u>0,p=ty(t,i.data.title,u,i.createdAt,i.data.runtimeInfo?.surface);if(d)try{await Kg(c,p)}catch(g){jt("warn",`Unable to prepare the resume index for ${t}.`,g)}await this.removeSessionConversationCaches(t,i.filePath),await this.withSessionLocationTopologyChange(()=>this.movePair(t,s,c));try{await Hf(c,p,d)}catch(g){jt("warn",`Unable to refresh the resume index for ${t}.`,g)}let m=this.readSessionTopologyIdentitySync(t),h=a!==void 0&&m!==void 0;this.sessionLocations.set(t,{kind:"located",filePath:V.join(c,`${t}.jsonl`),globallyVerified:h,...h?{topologyIdentity:m}:{}}),await this.rebuildConversationCache(t,V.join(c,`${t}.jsonl`),i.data.lineage??it(i.data.messages),i.data.runtimeInfo,i.data.extensionRecords),r=!0}),r}async movePair(t,n,r){let i=[`${t}.jsonl`,`${t}.islands.jsonl`,`${t}.archive.jsonl`];for(let c of i)if(ft.existsSync(V.join(r,c)))throw new Error(`Refusing to overwrite existing Session archive file: ${c}`);await Oe.mkdir(r,{recursive:!0});let s=i.filter(c=>ft.existsSync(V.join(n,c))),a=[];try{for(let c of s){let l=V.join(n,c);await Oe.rename(l,V.join(r,c)),a.push(c)}}catch(c){let l=[];for(let u of a.reverse())try{await Oe.rename(V.join(r,u),V.join(n,u))}catch(d){l.push(d)}throw l.length>0?new AggregateError([c,...l],`Session ${t} move failed and rollback was incomplete.`):c}}async removeFileSetAtomically(t,n){let r=[];try{for(let i of[...new Set(n)]){let s=`${i}.${process.pid}.${Date.now()}.${QI++}.deleting.tmp`;try{await Oe.rename(i,s),r.push({source:i,tombstone:s})}catch(a){if(a.code!=="ENOENT")throw a}}}catch(i){let s=[];for(let a of r.reverse())try{await Oe.rename(a.tombstone,a.source)}catch(c){s.push(c)}throw s.length>0?new AggregateError([i,...s],`Session ${t} deletion failed and rollback was incomplete.`):i}for(let i of r)try{await Oe.unlink(i.tombstone)}catch(s){jt("warn",`Session ${t} was deleted, but a recoverable tombstone could not be removed.`,s)}return r.length}assertActorFileOwner(t,n){if(n!==void 0){if(t?.schemaVersion!==2||t.owner?.ownerId!==n)throw new Fw(t?.schemaVersion===2?t.owner?.runtimeId:void 0,t?.revision??0,!1);return}if(t?.schemaVersion===2&&t.owner)throw new Fw(t.owner.runtimeId,t.revision,!1);if(t?.turns.some(r=>r.state==="accepted"||r.state==="running"))throw new bb(t.revision)}async delete(t){return this.deleteWithActorOwner(t)}async deleteOwned(t,n){if(n.trim().length===0)throw new Error("Actor owner ID is required for owned Session deletion.");return this.deleteWithActorOwner(t,n)}async deleteWithActorOwner(t,n){await this.ensureMigrated(),await this.serializedWrite(t,async()=>{let r=await this.readSession(t);if(!r||(this.assertActorFileOwner(r.data.actorSnapshot,n),this.drafts.delete(t)))return;let i=r.filePath,s=[],a=o(l=>{s.includes(l)||s.push(l)},"addTarget");a(i.replace(/\.jsonl$/,".archive.jsonl")),a(i.replace(/\.jsonl$/,".islands.jsonl")),a(this.legacyFlatArchivePath(t)),a(this.legacyFlatPath(t));let c=s.indexOf(i);c>=0&&s.splice(c,1),s.push(i),await this.removeSessionConversationCaches(t,i),await this.withSessionLocationTopologyChange(()=>this.removeFileSetAtomically(t,s)),await this.removeResumeMembership(t,i),this.sessionLocations.delete(t)})}async deleteAll(t){let n=t??(this.hostCwd?await ps(this.hostCwd):null),r=await this.list(n??void 0,{limit:Number.MAX_SAFE_INTEGER});for(let i of r)await this.delete(i.id)}async cleanupOldSessions(t){if(!Number.isFinite(t)||t<=0)return 0;await this.ensureMigrated();let n=0,r=[],i=Date.now()-t*24*60*60*1e3,s=o(async a=>{let c=V.basename(a);if(!c.endsWith(".jsonl")||c.endsWith(".archive.jsonl")||c.endsWith(".islands.jsonl"))return;let l=c.slice(0,-6);try{await this.serializedWrite(l,async()=>{if((await Oe.stat(a)).mtimeMs>=i)return;let d=await ny(a),p=d?.meta?.actorSnapshot;!d?.meta||p!==void 0&&(p.schemaVersion===2&&p.owner!==void 0||p.turns.some(m=>m.state==="accepted"||m.state==="running"))||(await this.removeSessionConversationCaches(l,a),n+=await this.withSessionLocationTopologyChange(()=>this.removeFileSetAtomically(l,[a.replace(/\.jsonl$/,".archive.jsonl"),a.replace(/\.jsonl$/,".islands.jsonl"),a])),this.sessionLocations.delete(l))})}catch(u){r.push(u)}},"unlinkSessionIfOld");try{await Oe.mkdir(this.sessionsDir,{recursive:!0});let a=await Oe.readdir(this.sessionsDir,{withFileTypes:!0});for(let c of a){let l=V.join(this.sessionsDir,c.name);if(c.isFile()){await s(l);continue}if(!c.isDirectory()||c.name.startsWith("."))continue;let u=[];try{u=await Oe.readdir(l,{withFileTypes:!0})}catch{continue}for(let d of u){let p=V.join(l,d.name);if(d.isFile())await s(p);else if(d.isDirectory()&&d.name==="archived"){let m=[];try{m=await Oe.readdir(p)}catch{continue}for(let h of m)await s(V.join(p,h))}}}}catch(a){r.push(a)}if(r.length>0)throw new AggregateError(r,"One or more Session retention cleanups failed.");return n}};import{jsxs as tc,jsx as tu}from"react/jsx-runtime";import{useEffect as IV,useMemo as CV,useRef as TV,useState as sy}from"react";var vV=40;function bV(){let e="\u280B\u2819\u2839\u2838\u283C\u2834\u2826\u2827\u2807\u280F",[t,n]=sy(0);return IV(()=>{let r=setInterval(()=>n(i=>(i+1)%e.length),120);return()=>clearInterval(r)},[]),tc(M,{children:[e[t]," Loading selected session..."]})}o(bV,"SelectionLoadingIndicator");function RV(e,t){let n=t.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return n.length===0?[...e]:e.filter(r=>{let i=[r.title,r.id,r.surface??"",r.createdAt??"",r.lastMessageAt??"",String(r.msgCount)].join(" ").toLocaleLowerCase();return n.every(s=>i.includes(s))})}o(RV,"filterSessionPickerItems");function kV(e,t,n){let r=Math.max(1,n),i=e.length===0?0:Math.max(0,Math.min(t,e.length-1)),s=Math.floor(i/r)*r;return{items:e.slice(s,s+r),selectedIndex:i,pageStart:s,pageIndex:Math.floor(s/r),pageCount:Math.max(1,Math.ceil(e.length/r))}}o(kV,"buildSessionPickerPage");function EV(e){if(!e)return"unknown time";let t=new Date(e);if(Number.isNaN(t.getTime()))return e;let n=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0");return`${n}-${r}-${i} ${s}:${a}`}o(EV,"formatTimestamp");function MV({sessions:e,onSelect:t,onSelectionError:n,onCancel:r,pageSize:i=8}){let{exit:s}=qi(),[a,c]=sy(""),[l,u]=sy(0),[d,p]=sy(!1),m=TV(!1),h=CV(()=>RV(e,a),[e,a]),g=kV(h,l,i),S=h[g.selectedIndex];return Cl((T,x)=>{if(!m.current){if(x.escape||x.ctrl&&T==="c"){r(),s();return}if(x.return){let I=h[g.selectedIndex];I&&(m.current=!0,p(!0),(async()=>{await new Promise(v=>setTimeout(v,vV));try{await t(I)}catch(v){n(v)}finally{s()}})());return}if(x.upArrow)u(I=>Math.max(0,I-1));else if(x.downArrow)u(I=>Math.min(Math.max(0,h.length-1),I+1));else if(x.pageUp)u(I=>Math.max(0,I-i));else if(x.pageDown)u(I=>Math.min(Math.max(0,h.length-1),I+i));else if(x.home)u(0);else if(x.end)u(Math.max(0,h.length-1));else if(x.tab){let I=h[g.selectedIndex];I&&(c(I.title),u(0))}else x.backspace||x.delete?(c(I=>I.slice(0,-1)),u(0)):T&&!x.ctrl&&!x.meta&&!x.super&&(c(I=>I+T),u(0))}}),tc(O,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,children:[tu(M,{bold:!0,color:"cyan",children:"Resume a session"}),tc(M,{children:["Search: ",tu(M,{color:"yellow",children:a||"type to filter"})]}),tu(M,{dimColor:!0,children:d?tu(bV,{}):"\u2191/\u2193 select \xB7 PgUp/PgDn page \xB7 Tab complete \xB7 Enter resume \xB7 Esc cancel"}),tc(O,{flexDirection:"column",marginTop:1,children:[g.items.length===0?tu(M,{color:"yellow",children:"No matching sessions."}):null,g.items.map((T,x)=>{let v=g.pageStart+x===g.selectedIndex,k=T.title.trim()||"Untitled session",_=T.surface?` \xB7 ${T.surface}`:"";return tc(M,{color:v?"cyan":void 0,bold:v,children:[v?"\u276F":" "," ",k," \xB7 ",T.msgCount," msgs",_," \xB7 ",EV(T.lastMessageAt??T.createdAt)," \xB7 ",T.id.slice(0,8)]},T.id)})]}),tc(M,{dimColor:!0,children:[h.length," matches \xB7 Page ",g.pageIndex+1,"/",g.pageCount]}),tc(M,{dimColor:!0,children:["Selected ID: ",S?.id??"none"]})]})}o(MV,"SessionPicker");async function AV(e,t={}){if(process.stdin.isTTY!==!0||process.stdout.isTTY!==!0)throw new Error("Searchable session resume requires an interactive terminal. Pass an exact session ID or title to -r/--resume instead.");let n,r=!1,i=!1,s=!1,a,c=al()==="ink",l=Math.max(4,Math.min(12,(process.stdout.rows??24)-8)),u=xl(tu(MV,{sessions:e,pageSize:l,onSelect:o(async d=>{n=d,await t.prepareSelection?.(d),s=!0},"onSelect"),onSelectionError:o(d=>{i=!0,a=d},"onSelectionError"),onCancel:o(()=>{r=!0},"onCancel")}),{stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,exitOnCtrlC:!1,patchConsole:!1,preserveRawModeOnUnmount:o(()=>c&&s,"preserveRawModeOnUnmount")});try{await u.waitUntilExit()}finally{u.unmount(),u.cleanup()}if(i)throw a;if(!n&&!r)throw new Error("Session picker exited unexpectedly before selection or cancellation.");return n}o(AV,"runSessionPicker");import br from"chalk";var H_=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],F_=["\x1B[36m","\x1B[35m","\x1B[34m"],zf=null,nu=!1;function Kf(){let e=0,t=0,n=!1,r="Thinking...",i=o(()=>{if(n)return;let c=F_[t%F_.length],l="\x1B[0m",u=H_[e%H_.length];process.stdout.write(`\r${c}${u}${l} ${r}`)},"renderFrame"),s=setInterval(()=>{e++,e%10===0&&t++,i()},80);i();let a={stop:o(()=>{n||(n=!0,clearInterval(s),process.stdout.write("\r\x1B[K"))},"stop"),isStopped:o(()=>n,"isStopped"),updateText:o(c=>{r=c},"updateText")};return zf=a,a}o(Kf,"startWaitingDots");function fC(e=!0){let t=null,n=0,r=new Map,i,s=o(u=>u?.contextKind!=="child"&&!u?.childAgentId&&!u?.workflowCorrelation?.workflowRunId&&!u?.workflowCorrelation?.childAgentId,"isPrimary"),a=o(u=>s(u)&&(!i||!u?.providerRequestId||u.providerRequestId===i),"isCurrentStream"),c=!1;return{onOutputSegmentStart:o((u,d)=>{!s(d)||u.providerRequestId===i||(i=u.providerRequestId,n=0,r.clear())},"onOutputSegmentStart"),onSessionStart:o(u=>{console.log(e?br.cyan(`[KodaX] Provider: ${u.provider} | Session: ${u.sessionId}`):br.cyan(`[KodaX] Provider: ${u.provider}`))},"onSessionStart"),onTextDelta:o(u=>{t&&(t.stop(),t=null),n=0,process.stdout.write(u),c=!0},"onTextDelta"),onThinkingDelta:o((u,d)=>{a(d)&&(n+=u.length,t||(t=Kf()),t.updateText(`Thinking... (~${yn(or(n))} tokens)`))},"onThinkingDelta"),onThinkingEnd:o(u=>{if(t&&(t.stop(),t=null),u){let d=u.replace(/\n/g," "),p=d.length>100?d.slice(0,100)+"...":d;console.log(br.dim(`[Thinking] ${p}`))}},"onThinkingEnd"),onToolUseStart:o(u=>{t||(nu||(process.stdout.write(`
|
|
111
|
+
`),nu=!0),t=Kf()),t.updateText(`Executing ${u.name}...`)},"onToolUseStart"),onToolInputDelta:o((u,d,p)=>{if(!a(p))return;let m=p?.toolId?JSON.stringify([p.providerRequestId,p.toolId]):void 0,h=m?(r.get(m)??0)+d.length:void 0;m&&h!==void 0&&r.set(m,h);let g=h===void 0?"":` (~${yn(or(h))} tokens)`;t&&!t.isStopped()?t.updateText(`Receiving ${u}...${g}`):(!t||t.isStopped())&&(nu||(process.stdout.write(`
|
|
112
|
+
`),nu=!0,c=!1),t=Kf(),t.updateText(`Receiving ${u}...${g}`))},"onToolInputDelta"),onToolResult:o((u,d)=>{r.delete(JSON.stringify([d?.providerRequestId,u.id])),t&&(t.stop(),t=null),console.log(br.green(`[Result] ${u.content.slice(0,300)}${u.content.length>300?"...":""}`))},"onToolResult"),onRepoIntelligenceTrace:o(u=>{t&&(t.stop(),t=null),console.log(br.dim(`[RepoIntel] ${u.summary}`))},"onRepoIntelligenceTrace"),onStreamEnd:o(u=>{a(u)&&(r.clear(),n=0,zf&&!zf.isStopped()&&zf.stop(),zf=null,nu=!1,c&&(console.log(),c=!1),(!t||t.isStopped())&&(t=Kf(),t.updateText("Processing...")))},"onStreamEnd"),onIterationStart:o((u,d)=>{i=void 0,r.clear(),n=0,t&&!t.isStopped()&&t.stop(),nu=!1,c=!1,console.log(br.magenta(`
|
|
113
113
|
[Assistant]`)),t=Kf()},"onIterationStart"),onCompactStart:o(()=>{console.log(br.dim(`
|
|
114
114
|
[KodaX] Compacting context...`))},"onCompactStart"),onCompact:o(u=>{console.log(br.dim(`[KodaX] Compaction finished (${u} tokens).`))},"onCompact"),onCompactEnd:o(()=>{},"onCompactEnd"),onOutputNotice:o(()=>{t&&(t.stop(),t=null),process.stdout.write(br.yellow(`
|
|
115
115
|
[KodaX] The provider declined to answer.
|
|
116
116
|
`))},"onOutputNotice"),onRetry:o((u,d,p)=>{console.log(br.yellow(`[KodaX] Retry ${d}/${p}: ${u}`))},"onRetry"),onProviderRecovery:o(u=>{let d=u.recoveryAction==="non_streaming_fallback"?"switching to non-streaming fallback":u.recoveryAction==="manual_continue"?"awaiting manual continue":`recovering ${u.attempt}/${u.maxAttempts}`;console.log(br.yellow(`[KodaX] ${d} (${u.errorClass}, ${u.stage})`))},"onProviderRecovery"),onComplete:o(()=>{t&&(t.stop(),t=null),console.log(br.green(`
|
|
117
117
|
[KodaX] Done!`))},"onComplete"),onError:o(u=>{t&&(t.stop(),t=null),console.log(br.red(`
|
|
118
118
|
[Error] ${u.message}`))},"onError"),onScoutSuspiciousCompletion:o(u=>{console.log(br.yellow(`
|
|
119
|
-
[Scout] Completion marked uncertain \u2014 signals: ${u.signals.join(", ")}. Verify the result before continuing.`))},"onScoutSuspiciousCompletion"),beforeToolExecute:o(async(u,d)=>!0,"beforeToolExecute")}}o(
|
|
120
|
-
`)}o(At,"writeJsonLine");function _V(e,t){return{type:"error",name:e.name,message:e.message,stack:e.stack,...xn(t)}}o(_V,"serializeError");function PV(e={}){let t=e.stdout??process.stdout,n=e.stderr??process.stderr;return{onSessionStart:o(r=>{At(t,{type:"session.start",provider:r.provider,sessionId:r.sessionId,...
|
|
119
|
+
[Scout] Completion marked uncertain \u2014 signals: ${u.signals.join(", ")}. Verify the result before continuing.`))},"onScoutSuspiciousCompletion"),beforeToolExecute:o(async(u,d)=>!0,"beforeToolExecute")}}o(fC,"createCliEvents");function xn(e){return{...e?.sessionId!==void 0?{sessionId:e.sessionId}:{},...e?.seq!==void 0?{seq:e.seq}:{},...e?.turnId!==void 0?{turnId:e.turnId}:{},...e?.deliveryId!==void 0?{deliveryId:e.deliveryId}:{},...e?.timestamp!==void 0?{timestamp:e.timestamp}:{},...e?.workflowCorrelation!==void 0?{workflowCorrelation:e.workflowCorrelation}:{},...e?.childAgentId!==void 0?{childAgentId:e.childAgentId}:{},...e?.childAgentName!==void 0?{childAgentName:e.childAgentName}:{},...e?.parentToolId!==void 0?{parentToolId:e.parentToolId}:{},...e?.liveOnly!==void 0?{liveOnly:e.liveOnly}:{}}}o(xn,"activityMetaFields");function ru(e){return{...e.sessionId!==void 0?{sessionId:e.sessionId}:{},...e.seq!==void 0?{seq:e.seq}:{},...e.turnId!==void 0?{turnId:e.turnId}:{},...e.deliveryId!==void 0?{deliveryId:e.deliveryId}:{},...e.timestamp!==void 0?{timestamp:e.timestamp}:{}}}o(ru,"liveMetaFields");function At(e,t){e.write(`${JSON.stringify(t)}
|
|
120
|
+
`)}o(At,"writeJsonLine");function _V(e,t){return{type:"error",name:e.name,message:e.message,stack:e.stack,...xn(t)}}o(_V,"serializeError");function PV(e={}){let t=e.stdout??process.stdout,n=e.stderr??process.stderr;return{onSessionStart:o(r=>{At(t,{type:"session.start",provider:r.provider,sessionId:r.sessionId,...ru(r)})},"onSessionStart"),onTurnStarted:o(r=>{At(t,{type:"turn.started",...r})},"onTurnStarted"),onTurnCompleted:o(r=>{At(t,{type:"turn.completed",...r})},"onTurnCompleted"),onTurnFailed:o(r=>{At(t,{type:"turn.failed",...r})},"onTurnFailed"),onIterationStart:o((r,i,s)=>{At(t,{type:"iteration.start",iter:r,maxIter:i,...xn(s)})},"onIterationStart"),onIterationEnd:o(r=>{At(t,{type:"iteration.end",iter:r.iter,maxIter:r.maxIter,tokenCount:r.tokenCount,tokenSource:r.tokenSource,usage:r.usage,contextTokenSnapshot:r.contextTokenSnapshot,...r.scope!==void 0?{scope:r.scope}:{},...ru(r)})},"onIterationEnd"),onTextDelta:o((r,i)=>{At(t,{type:"text.delta",text:r,...xn(i)})},"onTextDelta"),onThinkingDelta:o((r,i)=>{At(t,{type:"thinking.delta",text:r,...xn(i)})},"onThinkingDelta"),onThinkingEnd:o((r,i)=>{At(t,{type:"thinking.end",thinking:r,...xn(i)})},"onThinkingEnd"),onToolUseStart:o((r,i)=>{At(t,{type:"tool.start",id:r.id,name:r.name,input:r.input,...xn(i)})},"onToolUseStart"),onToolInputDelta:o((r,i,s)=>{At(t,{type:"tool.input.delta",toolName:r,partialJson:i,toolId:s?.toolId,...xn(s)})},"onToolInputDelta"),onToolResult:o((r,i)=>{At(t,{type:"tool.result",id:r.id,name:r.name,content:r.content,...xn(i)})},"onToolResult"),onStreamEnd:o(r=>{At(t,{type:"stream.end",...xn(r)})},"onStreamEnd"),onCompactStart:o(r=>{At(t,{type:"compact.start",...xn(r)})},"onCompactStart"),onCompact:o((r,i)=>{At(t,{type:"compact.finish",estimatedTokens:r,...xn(i)})},"onCompact"),onCompactStats:o(r=>{At(t,{type:"compact.stats",tokensBefore:r.tokensBefore,tokensAfter:r.tokensAfter,...ru(r)})},"onCompactStats"),onCompactEnd:o(r=>{At(t,{type:"compact.end",...xn(r)})},"onCompactEnd"),onOutputNotice:o((r,i)=>{At(t,{type:"output.notice",...r,...xn(i),...i?.providerRequestId?{providerRequestId:i.providerRequestId}:{}})},"onOutputNotice"),onRetry:o((r,i,s,a)=>{At(t,{type:"retry",reason:r,attempt:i,maxAttempts:s,...xn(a)})},"onRetry"),onProviderRecovery:o((r,i)=>{At(t,{type:"provider.recovery",stage:r.stage,reasonCode:r.errorClass,attempt:r.attempt,maxAttempts:r.maxAttempts,delayMs:r.delayMs,nextAt:Date.now()+r.delayMs,recoveryAction:r.recoveryAction,fallbackUsed:r.fallbackUsed,...xn(i)})},"onProviderRecovery"),onProviderRateLimit:o((r,i,s,a)=>{At(t,{type:"provider.rate_limit",attempt:r,maxRetries:i,delayMs:s,...xn(a)})},"onProviderRateLimit"),onRepoIntelligenceTrace:o(r=>{At(t,{type:"repo_intelligence.trace",stage:r.stage,summary:r.summary,capability:r.capability,trace:r.trace,...ru(r)})},"onRepoIntelligenceTrace"),onToolProgress:o((r,i)=>{At(t,{type:"tool.progress",id:r.id,message:r.message,...xn(i)})},"onToolProgress"),onToolSandboxObservation:o((r,i)=>{At(t,{type:"tool.sandbox",id:r.id,observation:r.observation,...xn(i)})},"onToolSandboxObservation"),onManagedTaskStatus:o(r=>{At(t,{type:"managed_task.status",agentMode:r.agentMode,harnessProfile:r.harnessProfile,phase:r.phase,activeWorkerId:r.activeWorkerId,activeWorkerTitle:r.activeWorkerTitle,childFanoutClass:r.childFanoutClass,childFanoutCount:r.childFanoutCount,currentRound:r.currentRound,maxRounds:r.maxRounds,note:r.note,detailNote:r.detailNote,globalWorkBudget:r.globalWorkBudget,budgetUsage:r.budgetUsage,budgetApprovalRequired:r.budgetApprovalRequired,...ru(r)})},"onManagedTaskStatus"),onScoutSuspiciousCompletion:o(r=>{At(t,{type:"scout.suspicious_completion",confidence:r.confidence,signals:r.signals,sessionId:r.sessionId,lastTextPreview:r.lastTextPreview,...ru(r)})},"onScoutSuspiciousCompletion"),onComplete:o(r=>{At(t,{type:"complete",...xn(r)})},"onComplete"),onError:o((r,i)=>{At(n,_V(r,i))},"onError")}}o(PV,"createJsonEvents");import{jsx as Yn,jsxs as Rr}from"react/jsx-runtime";import{useMemo as qf}from"react";function W_(e){switch(e){case K.Scheduled:return"\u25CB";case K.Validating:return"\u25D0";case K.AwaitingApproval:return"\u23F8";case K.Executing:return"\u25CF";case K.Success:return"\u2713";case K.Error:return"\u2717";case K.Cancelled:return"\u2298";default:return"?"}}o(W_,"getStatusIcon");function j_(e,t){switch(e){case K.Scheduled:case K.Validating:return t.colors.dim;case K.AwaitingApproval:return t.colors.accent;case K.Executing:return t.colors.primary;case K.Success:return t.colors.success??t.colors.primary;case K.Error:return t.colors.error;case K.Cancelled:return t.colors.dim;default:return t.colors.text}}o(j_,"getStatusColor");function LV(e,t){if(!t)return"";let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}o(LV,"formatDuration");function OV(e){if(!e)return"";let t=JSON.stringify(e);return t.length<=50?t:t.slice(0,47)+"..."}o(OV,"formatInputSummary");var $V=o(({status:e,theme:t})=>{let n=t??qf(()=>ye("dark"),[]),r=W_(e),i=j_(e,n);return Yn(M,{color:i,children:r})},"ToolStatusBadge"),U_=o(({progress:e,width:t=20,theme:n})=>{let r=n??qf(()=>ye("dark"),[]),i=Math.max(0,Math.min(100,e)),s=Math.round(i/100*t),a=t-s,c="\u2588".repeat(s),l="\u2591".repeat(a);return Rr(O,{children:[Yn(M,{color:r.colors.primary,children:c}),Yn(M,{dimColor:!0,children:l}),Rr(M,{children:[" ",i,"%"]})]})},"ToolProgressBar"),V_=o(({tool:e,collapsed:t=!1,theme:n})=>{let r=n??qf(()=>ye("dark"),[]),i=W_(e.status),s=j_(e.status,r),a=OV(e.input),c=LV(e.startTime,e.endTime);return t?Rr(O,{children:[Rr(M,{color:s,children:[i," "]}),Yn(M,{color:r.colors.text,children:e.name})]}):Rr(O,{flexDirection:"column",marginLeft:2,children:[Rr(O,{children:[Rr(M,{color:s,children:[i," "]}),Yn(M,{color:r.colors.text,bold:!0,children:e.name}),a&&Rr(M,{dimColor:!0,children:[" ",a]})]}),e.progress!==void 0&&e.status===K.Executing&&Yn(O,{marginLeft:2,children:Yn(U_,{progress:e.progress,theme:r})}),e.progressLines&&e.progressLines.length>0&&e.status===K.Executing&&Yn(O,{flexDirection:"column",marginLeft:2,children:e.progressLines.slice(-5).map((l,u)=>Yn(M,{dimColor:!0,children:l},u))}),e.error&&Yn(O,{marginLeft:2,children:Yn(M,{color:r.colors.error,children:e.error})}),c&&e.status!==K.Executing&&Yn(O,{marginLeft:2,children:Rr(M,{dimColor:!0,children:["Completed in ",c]})})]})},"ToolCallDisplay"),NV=o(({tools:e,collapsed:t=!1,title:n,theme:r})=>{let i=r??qf(()=>ye("dark"),[]);if(e.length===0)return null;let s=qf(()=>{let c={[K.Scheduled]:0,[K.Validating]:0,[K.AwaitingApproval]:0,[K.Executing]:0,[K.Success]:0,[K.Error]:0,[K.Cancelled]:0};for(let l of e)c[l.status]++;return c},[e]),a=n??"Tools";if(t){let c=s[K.Success],l=s[K.Error],u=s[K.Executing]+s[K.Scheduled]+s[K.Validating];return Yn(O,{flexDirection:"column",marginBottom:1,children:Rr(O,{children:[Yn(M,{color:i.colors.accent,bold:!0,children:a}),Rr(M,{dimColor:!0,children:[" ","(",e.length," tools",c>0&&`, ${c} succeeded`,l>0&&`, ${l} failed`,u>0&&`, ${u} running`,")"]})]})})}return Rr(O,{flexDirection:"column",marginBottom:1,children:[Rr(O,{children:[Yn(M,{color:i.colors.accent,bold:!0,children:a}),Rr(M,{dimColor:!0,children:[" ","(",e.length," ",e.length===1?"tool":"tools",")"]})]}),e.map(c=>Yn(V_,{tool:c,theme:i},c.id))]})},"ToolGroup");import{jsxs as G_,jsx as DV}from"react/jsx-runtime";var BV=o(({pendingInputs:e})=>{let t=CM(e);if(!t)return null;let n=ye("dark");return G_(O,{children:[G_(M,{color:n.colors.hint,children:["\u23F3"," "]}),DV(M,{color:n.colors.dim,children:t})]})},"PendingInputsIndicator");var Xf=class{static{o(this,"ConsoleCapturer")}captured=[];originalLog=null;start(){this.captured=[],this.originalLog=console.log,console.log=(...t)=>{let n=t.map(r=>typeof r=="string"?r:String(r)).join(" ");this.captured.push(n)}}stop(){return this.originalLog!==null&&(console.log=this.originalLog,this.originalLog=null),this.captured}getCaptured(){return[...this.captured]}clear(){this.captured=[]}};async function HV(e){let t=new Xf;t.start();try{let n=await e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}o(HV,"withCapture");function FV(e){let t=new Xf;t.start();try{let n=e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}o(FV,"withCaptureSync");import{jsx as xe,jsxs as kr,Fragment as Tz}from"react/jsx-runtime";async function ay(e,t){if(!e.readHistory)throw new Error("Host history unavailable");let n=await e.readHistory(t,{limit:20}),r=n.items.map(i=>`${i.type}: ${i.text.replace(/\s+/g," ").slice(0,60)}`);for(let i of n.oversized){let s=await e.readHistoryEntry?.(t,i.itemId,{offset:0});r.push(s?s.text.replace(/\s+/g," ").slice(0,60)+"...":"[History entry unavailable]")}return{success:!0,message:r.length?`Conversation History:
|
|
121
121
|
`+r.join(`
|
|
122
|
-
`):"[No conversation history]"}}o(ay,"readClientHistoryPreview");function Yf(e){return{canonicalRepoRoot:e.gitRoot,workspaceRoot:e.workspaceRoot,executionCwd:e.executionCwd??e.workspaceRoot??e.gitRoot,branch:e.branch,workspaceKind:e.workspaceKind,surface:e.surface}}o(Yf,"clientSessionRuntimeInfo");async function ru(e,t){if(!e.read||!e.getSettings)throw new Error("Host Session reads unavailable");let n=await e.read(t);if(n.archived)throw new Error(`Session is archived: ${t}`);let r=await e.getSettings(t);return{session:n,settings:r}}o(ru,"readClientSession");function cy(e,t){e.sessionId=t.id,e.title=t.title,e.messages=[],e.uiHistory=[],e.lineage=void 0,e.artifactLedger=void 0,e.extensionState=void 0,e.extensionRecords=void 0,e.extensionStateDirty=!1,e.extensionRecordsDirty=!1,e.sessionSnapshotDirty=!1,e.contextTokenSnapshot=void 0,e.runtimeInfo=Yf(t),e.gitRoot=t.workspaceRoot??t.gitRoot,e.lastAccessed=new Date().toISOString()}o(cy,"applyClientSessionMetadata");import VO,{useState as et,useCallback as Y,useRef as he,useEffect as Ke,useLayoutEffect as vz,useMemo as be}from"react";import{useCallback as J_,useLayoutEffect as jV,useRef as hC,useState as UV}from"react";var Jf=class extends Error{static{o(this,"BrowseRevisionChangedError")}};function z_(e){return e.type==="tool_group"?e.tools.map(t=>`tool:${t.id}`):e.inputId?[`input:${e.inputId}`]:e.outputId?[`${e.type}:${e.outputId}`]:e.historyItemId?[`history:${e.historyItemId}`]:[]}o(z_,"sourceKeys");function Ds(e,t){let n=e.filter(r=>z_(r).includes(t));return n.length===1?n[0]:void 0}o(Ds,"anchorItem");function fC(e,t){return e.itemId===t||e.itemIds?.includes(t)===!0}o(fC,"hasItem");function pC(e,t,n,r="top"){for(let i=0;i<t.length-n;i++){let s=r==="top"?n+i:t.length-1-i,a=t[s];if(r==="bottom"&&!a.text.trim())continue;let c=(r==="bottom"?[...e].reverse():e).find(p=>fC(a,p.id)),l=c&&z_(c).find(p=>Ds(e,p));if(!c||!l)continue;let u=a.contentOffset??-1,d=u<0?t.findIndex(p=>fC(p,c.id)):s;return{source:l,character:u,screenRow:d-n}}}o(pC,"capturePromptBrowseAnchor");function q_(e,t,n){let r=Ds(e,n.source);if(!r||!mC(r,n))return;let i;for(let s=0;s<t.length;s++){let a=t[s];if(fC(a,r.id)){if(n.character<0)return Math.max(0,s-n.screenRow);if(a.contentOffset!==void 0){if(a.contentOffset>n.character)break;i=s}}}return i===void 0?void 0:Math.max(0,i-n.screenRow)}o(q_,"resolvePromptBrowseAnchor");function mC(e,t){return t.character<0||e.type==="tool_group"||t.character>=(e.textOffset??0)&&t.character<(e.textOffset??0)+e.text.length}o(mC,"coversAnchor");function Ns(e){return e.flatMap(t=>Ha(t.items).map(n=>({...n,historyItemId:n.id})))}o(Ns,"mapPages");function Qf(e){let t=e.flatMap(n=>n.items);return e.length<=4&&t.length<=800&&t.reduce((n,r)=>n+r.text.length+(r.tool?.inputText?.length??0),0)<=2e6}o(Qf,"withinBudget");async function X_(e,t,n,r,i,s="older"){let a=new AbortController,c=i?AbortSignal.any([i,a.signal]):a.signal;c.throwIfAborted();let l=setTimeout(()=>a.abort(new Error("Saved history read timed out.")),15e3),u=o(()=>{},"onAbort");try{return await new Promise((d,p)=>{u=o(()=>p(c.reason),"onAbort"),c.addEventListener("abort",u,{once:!0}),K_(e,t,n,r,c,s).catch(m=>{if(!r||!(m instanceof Jf||typeof m=="object"&&m!==null&&"code"in m&&m.code==="resync_required"))throw m;return K_(e,t,n,void 0,c,"older",128)}).then(d,p)})}finally{clearTimeout(l),c.removeEventListener("abort",u)}}o(X_,"readPromptBrowseWindow");async function K_(e,t,n,r,i,s,a=4){if(!e.readHistory)throw new Error("Saved history is unavailable.");if(s==="newer"&&r)return WV(e,t,n,r,i);let c=[...r?.pages??[]],l=[...r?.pageCursors??[]],u=[...r?.newerCursors??[]],d=r?.nextCursor,p=r?.revision,m=new Set;for(let h=0;h<a;h++){i?.throwIfAborted();let g=await e.readHistory(t,{cursor:d,limit:40});if(i?.throwIfAborted(),p??=g.revision,g.revision!==p)throw new Jf("Saved history changed. Press End, then scroll up to refresh.");if(d!==void 0&&g.nextCursor===d)throw new Error("Saved history paging did not advance.");for(c.unshift(g),l.unshift(d);!Qf(c)&&c.length>1;){let T=c.slice(0,-1);if(r&&!Ds(Ns(T),n.source))break;if(u.length>=128)throw new Error("History navigation limit reached. Press End to return to latest.");u.push(l.pop()),c=T}if(!Qf(c))throw new Error("Saved history exceeds the browse window budget.");let S=Ds(Ns(c),n.source);if(S){if(c=await Y_(e,t,c,S,i),!mC(Ds(Ns(c),n.source),n))throw new Error("Saved preview does not contain this reading position. Press End to return to latest.");return{pages:c,pageCursors:l,newerCursors:u,items:Ns(c),revision:p,nextCursor:g.nextCursor}}if(d=g.nextCursor,d===void 0||m.has(d))break;m.add(d)}throw new Error("The visible position is unavailable in saved history. Press End to return to live output.")}o(K_,"readPromptBrowsePages");async function WV(e,t,n,r,i){if(!r.newerCursors.length||!e.readHistory)return r;let s=[...r.newerCursors],a=s.pop();i?.throwIfAborted();let c=await e.readHistory(t,{cursor:a,limit:40});if(i?.throwIfAborted(),c.revision!==r.revision)throw new Jf("Saved history changed. Press End, then scroll up to refresh.");let l=[...r.pages,c],u=[...r.pageCursors,a];for(;!Qf(l)&&l.length>1;){let p=l.slice(1);if(!Ds(Ns(p),n.source))break;l=p,u.shift()}let d=Ds(Ns(l),n.source);if(!Qf(l)||!d)throw new Error("Cannot load newer history while preserving the visible position.");if(l=await Y_(e,t,l,d,i),!mC(Ds(Ns(l),n.source),n))throw new Error("Saved preview does not contain this reading position. Press End to return to latest.");return{pages:l,pageCursors:u,newerCursors:s,items:Ns(l),revision:r.revision,nextCursor:l[0]?.nextCursor}}o(WV,"readNewerWindow");async function Y_(e,t,n,r,i){if(r.type==="tool_group"||!r.totalTextLength||r.totalTextLength>1e6)return n;let s=e.readHistoryEntry;if(!s)throw new Error("Saved text is unavailable.");let a=await Nc(l=>s(t,r.id,{offset:l}),r.id,{length:r.totalTextLength,signal:i});i?.throwIfAborted();let c=n.map(l=>({...l,items:l.items.map(u=>u.id===r.id?{...u,text:a,textOffset:0,totalTextLength:void 0}:u)}));return Qf(c)?c:n}o(Y_,"hydrateAnchor");function Q_(e,t,n){let[r,i]=UV(null),s=hC(r),a=hC(null),c=hC(0),l=J_(()=>{c.current++,a.current?.abort(),a.current=null,s.current=null,i(null)},[]);jV(()=>(l(),l),[t,n,e,l]);let u=J_((d,p,m,h="older")=>{if(!n||!e||!t||a.current)return;let g=s.current??{snapshot:d,hint:"Browsing saved content \xB7 End: latest"};if(s.current=g,i(g),!m||h==="older"&&g.window&&!g.window.nextCursor)return;if(!p){i({...g,hint:"Cannot locate this position in saved history \xB7 End: latest"});return}let S=new AbortController;a.current=S;let T=c.current;i({...g,hint:`Loading ${h==="older"?"earlier":"newer"} history \xB7 End: latest`}),X_(e,t,p,g.window,S.signal,h).then(x=>{if(c.current!==T||S.signal.aborted)return;let I=x.items.some(k=>k.totalTextLength!==void 0),v={window:x,anchor:p,hint:I?"Saved previews \xB7 Ctrl+O: full transcript \xB7 \u2191: earlier \xB7 End: latest":"Browsing saved content \xB7 \u2191: earlier \xB7 End: latest",snapshot:{...g.snapshot,items:x.items,isLoading:!1,isThinking:!1,currentResponse:"",thinkingContent:"",activeToolCalls:[],currentTool:void 0,iterationHistory:[],managedLiveEvents:[],isCompacting:!1,lastLiveActivityLabel:void 0}};s.current=v,i(v)}).catch(x=>{if(c.current!==T||S.signal.aborted)return;let I=x instanceof Error?x.message:String(x);i({...g,hint:`${I} \xB7 \u2191: retry \xB7 End: latest`})}).finally(()=>{a.current===S&&(a.current=null)})},[n,e,t]);return{display:r,browse:u,reset:l,loading:o(()=>a.current!==null,"loading")}}o(Q_,"usePromptHistoryBrowse");import{useCallback as VV,useEffect as Z_,useRef as gC,useState as GV}from"react";function eP(e,t,n){let[r,i]=GV(),s=gC(Promise.resolve()),a=gC(0),c=gC(void 0),l=VV(()=>{c.current?.abort(),i(void 0)},[]);return Z_(()=>{let d=new AbortController;return c.current=d,s.current=Promise.resolve(),i(void 0),()=>d.abort()},[n]),Z_(()=>{if(!r||r.pending)return;let d=setTimeout(()=>i(p=>p===r?void 0:p),2e3);return()=>clearTimeout(d)},[r]),{cycle:o(()=>{let d=c.current;if(!d||d.signal.aborted)return Promise.resolve();let p=++a.current;i({text:"Updating effort\u2026",pending:!0});let m=o(async()=>{if(d.signal.aborted)return;let h;try{h=await e(d.signal)}catch(g){h={success:!1,message:`Host effort selection failed: ${String(g)}`}}d.signal.aborted||(p===a.current&&i(h?.success?{text:h.message}:void 0),h&&!h.success&&await t(h.message??"Host effort selection failed"))},"write");return s.current=s.current.then(m,m),s.current},"cycle"),cancel:l,notice:r}}o(eP,"useEffortShortcut");function jo(e,t,n={}){let{settings:r,contextBudget:i}=t,s={...r,...Object.fromEntries(Object.entries(n).map(([l,u])=>[l,u??void 0]))},a=r.provider??i?.provider,c=Object.fromEntries(Object.entries({provider:a,model:r.model??i?.model,effort:r.effort,effortOverride:r.effort!==void 0,thinking:r.thinking,reasoningMode:r.reasoningMode,agentMode:r.agentMode,workMode:r.workMode??"coding",permissionMode:r.permissionMode,repoIntelligenceMode:r.repoIntelligenceMode,repoIntelligenceTrace:r.repoIntelligenceTrace}).filter(([l,u])=>(u!==void 0||l==="effort"||l==="model"&&a!==void 0&&a!==e.provider)&&!Object.hasOwn(n,l==="effortOverride"?"effort":l)));return Object.entries(c).every(([l,u])=>Object.is(e[l],u))&&JSON.stringify(e.hostSettings)===JSON.stringify(s)?e:{...e,...c,hostSettings:s}}o(jo,"applyClientSessionViewSettings");function cr(e,t){return{provider:e.provider,model:e.model??null,effort:e.effort??null,thinking:e.thinking,reasoningMode:e.reasoningMode,agentMode:e.agentMode,...e.workMode!==void 0?{workMode:e.workMode}:{},permissionMode:So(e.permissionMode),maxIter:t??null,repoIntelligenceMode:e.repoIntelligenceMode??null,repoIntelligenceTrace:e.repoIntelligenceTrace??null}}o(cr,"clientSessionSettings");function iu(e,t,n=[]){return Object.fromEntries(Object.entries(t).filter(([r,i])=>n.includes(r)||!Object.is(e[r],i)))}o(iu,"changedClientSessionSettings");import{jsx as Qi,Fragment as KV,jsxs as ly}from"react/jsx-runtime";var yC=" | ",tP=o(({searchActive:e=!1,selectionActive:t=!1,showAllActive:n=!1,searchQuery:r="",searchCurrent:i=0,searchCount:s=0,searchDetailText:a,pendingLiveUpdates:c=0,secondaryText:l,noticeText:u})=>{let d=ye("dark"),p=r.trim(),m=a?.trim(),h=l?.trim(),g=u?.trim(),S=e?p?`Search /${p}`:"Search":"Transcript",T=e?`Enter jump | n/N next/prev | Ctrl+E ${n?"collapse":"show all"} | Esc close | Ctrl+O/q back`:t?`PgUp/PgDn page | j/k scroll | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | Esc clear focus | Ctrl+O/q back`:`PgUp/PgDn page | j/k scroll | \u2190/\u2192 select | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | s dump | Ctrl+O/q/Esc back`,x=c>0?c===1?"1 new update":`${c} new updates`:void 0,I=e&&s>0?`${Math.max(0,i)}/${s}`:void 0,v=e&&m||h,k=!!(v||g);return ly(O,{flexDirection:"column",children:[ly(O,{paddingX:1,children:[Qi(M,{color:d.colors.dim,children:S}),Qi(M,{dimColor:!0,children:yC}),Qi(M,{color:d.colors.dim,children:T}),I||x?Qi(O,{flexGrow:1}):null,I?ly(KV,{children:[Qi(M,{dimColor:!0,children:I}),x?Qi(M,{dimColor:!0,children:yC}):null]}):null,x?Qi(M,{color:d.colors.accent,bold:!0,children:x}):null]}),k?ly(O,{paddingX:1,children:[v?Qi(M,{color:d.colors.dim,children:v}):null,v&&g?Qi(M,{dimColor:!0,children:yC}):null,g?Qi(M,{color:d.colors.accent,bold:!0,children:g}):null]}):null]})},"TranscriptModeFooter");import{jsx as zV,jsxs as qV}from"react/jsx-runtime";var nP=o(({banner:e,...t})=>qV(O,{flexDirection:"column",children:[e,zV(Ba,{...t,animateSpinners:!1,showFullThinking:!1,showDetailedTools:!1,showLiveProgressRows:!1})]}),"PromptTranscriptSurface");import{jsx as XV,jsxs as YV}from"react/jsx-runtime";var rP=o(({banner:e,windowed:t=!1,showDetailedTools:n=!1,showAllContent:r=!1,...i})=>YV(O,{flexDirection:"column",children:[e,XV(Kx,{...i,chromeMode:"hidden",windowed:t,showFullThinking:!0,showDetailedTools:n,showAllContent:r,showLiveProgressRows:!0})]}),"TranscriptModeSurface");import{jsx as iP,jsxs as JV}from"react/jsx-runtime";var oP=o(({text:e,tone:t="success",pending:n=!1})=>{let r=e?.trim();if(!r)return null;let i=ye("dark"),s=t==="warning"?i.colors.warning:i.colors.accent,a=t==="warning"?"!":"\u2713";return iP(O,{paddingX:1,backgroundColor:i.colors.inputBackground,children:JV(M,{color:s,children:[n?iP(Ir,{color:s}):a," ",r]})})},"ClipboardToastSurface");import{jsx as Bs,Fragment as QV,jsxs as wC}from"react/jsx-runtime";var ZV=" \u23BF ";function eG(e){let t=ye("dark");switch(e){case"cyan":return t.colors.primary;case"green":return t.colors.success;case"red":return t.colors.error;default:return t.colors.dim}}o(eG,"resolveSymbolColor");var tG=o(({row:e})=>{let t=eG(e.symbolColor),n=e.kind!=="item";return wC(O,{flexDirection:"row",children:[Bs(M,{color:t,bold:e.isActive,children:e.symbol}),Bs(M,{children:" "}),Bs(M,{dimColor:n,bold:e.isActive,strikethrough:e.isStrikethrough,children:e.text}),e.evaluatorBadge?wC(QV,{children:[Bs(M,{children:" "}),Bs(M,{dimColor:!0,children:e.evaluatorBadge})]}):null]})},"TodoListRow"),sP=o(({viewModel:e})=>{if(!e.shouldRender||e.rows.length===0)return null;let t=ye("dark").colors.dim;return wC(O,{flexDirection:"row",children:[Bs(M,{color:t,children:ZV}),Bs(O,{flexDirection:"column",flexGrow:1,children:e.rows.map((n,r)=>Bs(tG,{row:n},`${n.kind}-${n.id??r}`))})]})},"TodoListSurface");import{jsx as Zf,jsxs as nG}from"react/jsx-runtime";var aP=uR;function rG(e){let t=ye("dark");switch(e){case"cyan":return t.colors.primary;case"green":return t.colors.success;case"red":return t.colors.error;default:return t.colors.dim}}o(rG,"resolveSymbolColor");var iG=o(({row:e})=>{let t=rG(e.symbolColor);return nG(O,{flexDirection:"row",children:[Zf(O,{width:aP,flexShrink:0,children:Zf(M,{color:t,bold:e.isActive,wrap:"truncate",children:dR(e.symbol,aP)})}),Zf(M,{color:e.kind==="hint"?ye("dark").colors.dim:void 0,bold:e.isActive,wrap:"truncate",children:e.text})]})},"WorkflowRunRow");function cP(e){return!e.shouldRender||e.rows.length===0?0:e.rows.length}o(cP,"measureWorkflowRunSurfaceRows");var lP=o(({viewModel:e})=>!e.shouldRender||e.rows.length===0?null:Zf(O,{flexDirection:"column",flexGrow:1,children:e.rows.map((t,n)=>Zf(iG,{row:t},`${t.kind}-${t.id??n}`))}),"WorkflowRunSurface");var uP=6;var oG=1;function dP(e){return Re("todo.progress",{completed:e.completedCount,total:e.totalCount})}o(dP,"formatTodoPlanProgressText");function fP(e){if(!e.shouldRender||e.rows.length===0)return[];let t=[Re("todo.transcript.progress",{completed:e.completedCount,total:e.totalCount})];for(let n of e.rows){let r=n.evaluatorBadge?` ${n.evaluatorBadge}`:"";t.push(`${n.symbol} ${n.text}${r}`)}return t}o(fP,"formatTodoPlanViewModelForTranscript");var pP="\u2610",sG="\u25CF",mP="\u2713",aG="\u2717",cG="\u2298",lG="\u2612";function uG(e){switch(e){case"in_progress":return{symbol:sG,color:"cyan"};case"completed":return{symbol:mP,color:"green"};case"failed":return{symbol:aG,color:"red"};case"skipped":return{symbol:cG,color:"gray"};case"cancelled":return{symbol:lG,color:"gray"};default:return{symbol:pP,color:"dim"}}}o(uG,"symbolForStatus");function dG(e){for(let t=0;t<e.length;t++)if(e[t].status==="in_progress")return t;for(let t=0;t<e.length;t++)if(e[t].status==="pending")return t;for(let t=e.length-1;t>=0;t--)if(e[t].status==="completed")return t;return 0}o(dG,"pickAnchorIndex");function fG(e){let{symbol:t,color:n}=uG(e.status),r=e.status==="failed"&&e.note?`${e.subject} (${e.note})`:e.subject,i=e.status==="cancelled",s=e.evaluator?`[${e.evaluator}]`:void 0;return{kind:"item",id:e.id,symbol:t,symbolColor:n,text:r,isActive:e.status==="in_progress",isStrikethrough:i,evaluatorBadge:s}}o(fG,"buildItemRow");function pG(e){return{kind:"summary_done",symbol:mP,symbolColor:"green",text:Re("todo.summary.done",{count:e}),isActive:!1,summaryCount:e}}o(pG,"buildDoneSummary");function SC(e){return{kind:"summary_pending",symbol:pP,symbolColor:"dim",text:Re("todo.summary.more",{count:e}),isActive:!1,summaryCount:e}}o(SC,"buildPendingSummary");function mG(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].status==="failed"&&!t.has(n))return n;return-1}o(mG,"pickFailedToPromote");function hG(e,t){let n=e.length;if(n===0)return{visibleIdx:[],hiddenCompletedCount:0,hiddenPendingCount:0};let r=4,i=Math.max(0,t-1),s=Math.min(n,i+r);s-i<r&&i>0&&(i=Math.max(0,s-r)),s-i<r&&s<n&&(s=Math.min(n,i+r));let a=[];for(let u=i;u<s;u++)a.push(u);let c=0,l=0;for(let u=0;u<i;u++)e[u].status==="completed"&&c++;for(let u=s;u<n;u++){let d=e[u].status;(d==="pending"||d==="in_progress")&&l++}return{visibleIdx:a,hiddenCompletedCount:c,hiddenPendingCount:l}}o(hG,"decideWindow");function hP(e,t){let n=e.length,r=e.reduce((h,g)=>g.status==="completed"?h+1:h,0),i=o((h,g)=>({shouldRender:g,rows:h,completedCount:r,totalCount:n}),"baseVm");if(n<oG)return i([],!1);t.now,t.lastAllCompletedAt;let s=dG(e),a=hG(e,s),c=new Set(a.visibleIdx),l=mG(e,c),u=[...a.visibleIdx],d=a.hiddenCompletedCount,p=a.hiddenPendingCount;if(l>=0){let h=-1;for(let g=u.length-1;g>=0;g--){let S=u[g];if(S!==s&&e[S].status==="pending"){h=g;break}}if(h>=0){let g=u[h];u[h]=l,p+=1,u.sort((x,I)=>x-I);let S=u[0],T=0;for(let x=0;x<S;x++)e[x].status==="completed"&&T++;d=T}}let m=[];d>0&&m.push(pG(d));for(let h of u)m.push(fG(e[h]));if(p>0&&m.push(SC(p)),m.length>uP)for(;m.length>uP;){let h=!1;for(let g=m.length-1;g>=0;g--){let S=m[g];if(S.kind==="item"&&!S.isActive){m.splice(g,1);let T=m[m.length-1];if(T&&T.kind==="summary_pending"){let x=(T.summaryCount??0)+1;m[m.length-1]=SC(x)}else m.push(SC(1));h=!0;break}}if(!h)break}return i(m,!0)}o(hP,"buildTodoPlanViewModel");function gP(e){let t=[];e.isHistorySearchActive?t.push({id:"search",label:"Search",accent:!0}):e.isTranscriptMode&&t.push({id:"transcript",label:"Transcript"}),e.pendingInputCount>0&&t.push({id:"queue",label:`Queue ${e.pendingInputCount}`}),e.buffering==="buffered-fallback"&&(e.isHistorySearchActive||e.isTranscriptMode)&&t.push({id:"buffered",label:"Buffered"}),e.isTranscriptMode&&e.pendingLiveUpdates>0&&t.push({id:"updates",label:e.pendingLiveUpdates===1?"1 update":`${e.pendingLiveUpdates} updates`,accent:!0});let n=[],r=[...t,...n].map(i=>i.label.trim()).filter(Boolean).join(" | ");return{leftItems:t,rightItems:n,summary:r}}o(gP,"buildFooterHeaderViewModel");import xG from"chalk";import{useEffect as gG,useCallback as yG,useRef as wG}from"react";var uy=class e{static{o(this,"ShortcutsRegistry")}static instance=null;shortcuts=new Map;static getInstance(){return e.instance||(e.instance=new e),e.instance}static resetInstance(){e.instance=null}register(t){let n=this.shortcuts.get(t.id);this.shortcuts.set(t.id,{definition:t,effectiveBindings:n?.effectiveBindings??t.defaultBindings,handler:n?.handler})}registerAll(t){for(let n of t)this.register(n)}unregister(t){return this.shortcuts.delete(t)}setHandler(t,n){let r=this.shortcuts.get(t);r&&(r.handler=n)}findMatchingShortcut(t,n){let r=null,i=-1/0;for(let s of this.shortcuts.values()){let a=s.definition.context;a!=="global"&&a!==n||this.matchesBinding(t,s.effectiveBindings)&&s.handler&&s.definition.priority>i&&(i=s.definition.priority,r=s)}return r}matchesBinding(t,n){for(let r of n){let i=this.normalizeKeyName(t.name),s=this.normalizeKeyName(r.key);if(i===s){let a=(r.ctrl??!1)===t.ctrl,c=(r.shift??!1)===t.shift,l=(r.meta??!1)===t.meta;if(a&&c&&l)return!0}}return!1}normalizeKeyName(t){let n={return:"enter",esc:"escape",del:"delete",backspace:"backspace"," ":"space"},r=t.toLowerCase();return n[r]??r}executeShortcut(t,n){let r=this.findMatchingShortcut(t,n);return r?.handler?r.handler(t)===!0:!1}getAllShortcuts(){return Array.from(this.shortcuts.values())}getShortcutsByCategory(t){return this.getAllShortcuts().filter(n=>n.definition.category===t)}getShortcutsByContext(t){return this.getAllShortcuts().filter(n=>{let r=n.definition.context;return r==="global"||r===t})}formatBinding(t){let n=[];t.ctrl&&n.push("Ctrl"),t.meta&&n.push("Alt"),t.shift&&n.push("Shift");let r=t.key.length===1?t.key.toUpperCase():t.key;return n.push(r),n.join("+")}formatBindings(t){return t.map(n=>this.formatBinding(n)).join(" or ")}},Zi=o(()=>uy.getInstance(),"getShortcutsRegistry");function Hs(e,t,n={}){let{context:r,isActive:i=!0}=n,s=Zi(),a=wG(t);a.current=t,gG(()=>(s.setHandler(e,u=>a.current(u)),()=>{s.setHandler(e,void 0)}),[s,e]);let c=yG(u=>{if(!i)return!1;let p=s.getAllShortcuts().find(S=>S.definition.id===e);if(!p)return!1;let m=r??p.definition.context,h=m==="global"?"input":m,g=s.findMatchingShortcut(u,h);return g&&g.definition.id===e?a.current(u)===!0:!1},[s,e,i,r]),l=SG(e,s);Wr(c,{isActive:i,priority:l})}o(Hs,"useShortcut");function SG(e,t){let r=t.getAllShortcuts().find(i=>i.definition.id===e);return r?r.definition.priority:0}o(SG,"getShortcutPriority");var yP={off:0,minimal:1,low:2,medium:3,high:4,xhigh:5,max:6,auto:7};function xC(e,t){let n=e.indexOf(t);if(n!==-1)return n;let r=yP[t];if(r===void 0)return-1;let i=-1,s=-1;for(let a=0;a<e.length;a++){let c=yP[e[a]];c===void 0||c>r||c>s&&(s=c,i=a)}return i}o(xC,"nearestCycleIndex");function IC({currentConfig:e,setCurrentConfig:t,isLoading:n,abort:r,stopThinking:i,clearThinkingContent:s,setCurrentTool:a,setIsLoading:c,onToggleHelp:l,setShowHelp:u,onSetThinking:d,onCycleThinking:p,onSetReasoningMode:m,onToggleTranscriptMode:h,onOpenTranscriptSearch:g,canOpenTranscriptSearch:S=!0,isInteractiveDialogActive:T=!1,onSetPermissionMode:x,isInputEmpty:I,onSavePermissionMode:v}){let k=o(_=>_?.name?.toLowerCase()==="c"&&_.ctrl===!0,"isCtrlCInterrupt");return Hs("interrupt",_=>k(_)&&n?(r(),i(),s(),a(void 0),c(!1),console.log(xG.yellow(`
|
|
123
|
-
[Interrupted]`)),!0):!1,{isActive:n}),
|
|
124
|
-
${u}`}),c=t.verdict.disposition==="complete"?Re("managed.completed"):t.verdict.disposition==="needs_continuation"?Re("managed.completed.continuation"):t.verdict.disposition==="blocked"?Re("managed.completed.blocked"):void 0;return[...a,...c?[`[${c}]`]:[]]}o(bP,"buildManagedTaskTranscriptItems");function RP(e){let r=e.slice(0,400).match(new RegExp("\\*\\*([^*\\n]{1,80}?)\\*\\*"))?.[1]?.trim();return r?{header:r}:{}}o(RP,"extractBoldHeader");var
|
|
125
|
-
`)}catch{}}o($G,"writeLog");function fn(e){return`${(e/1024/1024).toFixed(2)}MB`}o(fn,"formatMB");function NG(){return typeof globalThis.gc=="function"?(globalThis.gc(),!0):!1}o(NG,"tryGC");function on(e){return e?e.length*2:0}o(on,"strBytes");function
|
|
126
|
-
`))}o(gy,"memDiagSnapshot");function yy(e,t,n){let r=DG(e),i=new Set(e),s=0,a=0,c=0,l=0,u=0,d=0,p=0,m=0,h=0,g=t?.entries??[];for(let I of g)switch(I.type){case"message":h++,i.has(I.message)||(c++,a
|
|
122
|
+
`):"[No conversation history]"}}o(ay,"readClientHistoryPreview");function Yf(e){return{canonicalRepoRoot:e.gitRoot,workspaceRoot:e.workspaceRoot,executionCwd:e.executionCwd??e.workspaceRoot??e.gitRoot,branch:e.branch,workspaceKind:e.workspaceKind,surface:e.surface}}o(Yf,"clientSessionRuntimeInfo");async function iu(e,t){if(!e.read||!e.getSettings)throw new Error("Host Session reads unavailable");let n=await e.read(t);if(n.archived)throw new Error(`Session is archived: ${t}`);let r=await e.getSettings(t);return{session:n,settings:r}}o(iu,"readClientSession");function cy(e,t){e.sessionId=t.id,e.title=t.title,e.messages=[],e.uiHistory=[],e.lineage=void 0,e.artifactLedger=void 0,e.extensionState=void 0,e.extensionRecords=void 0,e.extensionStateDirty=!1,e.extensionRecordsDirty=!1,e.sessionSnapshotDirty=!1,e.contextTokenSnapshot=void 0,e.runtimeInfo=Yf(t),e.gitRoot=t.workspaceRoot??t.gitRoot,e.lastAccessed=new Date().toISOString()}o(cy,"applyClientSessionMetadata");import VO,{useState as et,useCallback as Y,useRef as he,useEffect as Ke,useLayoutEffect as vz,useMemo as be}from"react";import{useCallback as J_,useLayoutEffect as jV,useRef as gC,useState as UV}from"react";var Jf=class extends Error{static{o(this,"BrowseRevisionChangedError")}};function z_(e){return e.type==="tool_group"?e.tools.map(t=>`tool:${t.id}`):e.inputId?[`input:${e.inputId}`]:e.outputId?[`${e.type}:${e.outputId}`]:e.historyItemId?[`history:${e.historyItemId}`]:[]}o(z_,"sourceKeys");function Bs(e,t){let n=e.filter(r=>z_(r).includes(t));return n.length===1?n[0]:void 0}o(Bs,"anchorItem");function pC(e,t){return e.itemId===t||e.itemIds?.includes(t)===!0}o(pC,"hasItem");function mC(e,t,n,r="top"){for(let i=0;i<t.length-n;i++){let s=r==="top"?n+i:t.length-1-i,a=t[s];if(r==="bottom"&&!a.text.trim())continue;let c=(r==="bottom"?[...e].reverse():e).find(p=>pC(a,p.id)),l=c&&z_(c).find(p=>Bs(e,p));if(!c||!l)continue;let u=a.contentOffset??-1,d=u<0?t.findIndex(p=>pC(p,c.id)):s;return{source:l,character:u,screenRow:d-n}}}o(mC,"capturePromptBrowseAnchor");function q_(e,t,n){let r=Bs(e,n.source);if(!r||!hC(r,n))return;let i;for(let s=0;s<t.length;s++){let a=t[s];if(pC(a,r.id)){if(n.character<0)return Math.max(0,s-n.screenRow);if(a.contentOffset!==void 0){if(a.contentOffset>n.character)break;i=s}}}return i===void 0?void 0:Math.max(0,i-n.screenRow)}o(q_,"resolvePromptBrowseAnchor");function hC(e,t){return t.character<0||e.type==="tool_group"||t.character>=(e.textOffset??0)&&t.character<(e.textOffset??0)+e.text.length}o(hC,"coversAnchor");function Ds(e){return e.flatMap(t=>Fa(t.items).map(n=>({...n,historyItemId:n.id})))}o(Ds,"mapPages");function Qf(e){let t=e.flatMap(n=>n.items);return e.length<=4&&t.length<=800&&t.reduce((n,r)=>n+r.text.length+(r.tool?.inputText?.length??0),0)<=2e6}o(Qf,"withinBudget");async function X_(e,t,n,r,i,s="older"){let a=new AbortController,c=i?AbortSignal.any([i,a.signal]):a.signal;c.throwIfAborted();let l=setTimeout(()=>a.abort(new Error("Saved history read timed out.")),15e3),u=o(()=>{},"onAbort");try{return await new Promise((d,p)=>{u=o(()=>p(c.reason),"onAbort"),c.addEventListener("abort",u,{once:!0}),K_(e,t,n,r,c,s).catch(m=>{if(!r||!(m instanceof Jf||typeof m=="object"&&m!==null&&"code"in m&&m.code==="resync_required"))throw m;return K_(e,t,n,void 0,c,"older",128)}).then(d,p)})}finally{clearTimeout(l),c.removeEventListener("abort",u)}}o(X_,"readPromptBrowseWindow");async function K_(e,t,n,r,i,s,a=4){if(!e.readHistory)throw new Error("Saved history is unavailable.");if(s==="newer"&&r)return WV(e,t,n,r,i);let c=[...r?.pages??[]],l=[...r?.pageCursors??[]],u=[...r?.newerCursors??[]],d=r?.nextCursor,p=r?.revision,m=new Set;for(let h=0;h<a;h++){i?.throwIfAborted();let g=await e.readHistory(t,{cursor:d,limit:40});if(i?.throwIfAborted(),p??=g.revision,g.revision!==p)throw new Jf("Saved history changed. Press End, then scroll up to refresh.");if(d!==void 0&&g.nextCursor===d)throw new Error("Saved history paging did not advance.");for(c.unshift(g),l.unshift(d);!Qf(c)&&c.length>1;){let T=c.slice(0,-1);if(r&&!Bs(Ds(T),n.source))break;if(u.length>=128)throw new Error("History navigation limit reached. Press End to return to latest.");u.push(l.pop()),c=T}if(!Qf(c))throw new Error("Saved history exceeds the browse window budget.");let S=Bs(Ds(c),n.source);if(S){if(c=await Y_(e,t,c,S,i),!hC(Bs(Ds(c),n.source),n))throw new Error("Saved preview does not contain this reading position. Press End to return to latest.");return{pages:c,pageCursors:l,newerCursors:u,items:Ds(c),revision:p,nextCursor:g.nextCursor}}if(d=g.nextCursor,d===void 0||m.has(d))break;m.add(d)}throw new Error("The visible position is unavailable in saved history. Press End to return to live output.")}o(K_,"readPromptBrowsePages");async function WV(e,t,n,r,i){if(!r.newerCursors.length||!e.readHistory)return r;let s=[...r.newerCursors],a=s.pop();i?.throwIfAborted();let c=await e.readHistory(t,{cursor:a,limit:40});if(i?.throwIfAborted(),c.revision!==r.revision)throw new Jf("Saved history changed. Press End, then scroll up to refresh.");let l=[...r.pages,c],u=[...r.pageCursors,a];for(;!Qf(l)&&l.length>1;){let p=l.slice(1);if(!Bs(Ds(p),n.source))break;l=p,u.shift()}let d=Bs(Ds(l),n.source);if(!Qf(l)||!d)throw new Error("Cannot load newer history while preserving the visible position.");if(l=await Y_(e,t,l,d,i),!hC(Bs(Ds(l),n.source),n))throw new Error("Saved preview does not contain this reading position. Press End to return to latest.");return{pages:l,pageCursors:u,newerCursors:s,items:Ds(l),revision:r.revision,nextCursor:l[0]?.nextCursor}}o(WV,"readNewerWindow");async function Y_(e,t,n,r,i){if(r.type==="tool_group"||!r.totalTextLength||r.totalTextLength>1e6)return n;let s=e.readHistoryEntry;if(!s)throw new Error("Saved text is unavailable.");let a=await Dc(l=>s(t,r.id,{offset:l}),r.id,{length:r.totalTextLength,signal:i});i?.throwIfAborted();let c=n.map(l=>({...l,items:l.items.map(u=>u.id===r.id?{...u,text:a,textOffset:0,totalTextLength:void 0}:u)}));return Qf(c)?c:n}o(Y_,"hydrateAnchor");function Q_(e,t,n){let[r,i]=UV(null),s=gC(r),a=gC(null),c=gC(0),l=J_(()=>{c.current++,a.current?.abort(),a.current=null,s.current=null,i(null)},[]);jV(()=>(l(),l),[t,n,e,l]);let u=J_((d,p,m,h="older")=>{if(!n||!e||!t||a.current)return;let g=s.current??{snapshot:d,hint:"Browsing saved content \xB7 End: latest"};if(s.current=g,i(g),!m||h==="older"&&g.window&&!g.window.nextCursor)return;if(!p){i({...g,hint:"Cannot locate this position in saved history \xB7 End: latest"});return}let S=new AbortController;a.current=S;let T=c.current;i({...g,hint:`Loading ${h==="older"?"earlier":"newer"} history \xB7 End: latest`}),X_(e,t,p,g.window,S.signal,h).then(x=>{if(c.current!==T||S.signal.aborted)return;let I=x.items.some(k=>k.totalTextLength!==void 0),v={window:x,anchor:p,hint:I?"Saved previews \xB7 Ctrl+O: full transcript \xB7 \u2191: earlier \xB7 End: latest":"Browsing saved content \xB7 \u2191: earlier \xB7 End: latest",snapshot:{...g.snapshot,items:x.items,isLoading:!1,isThinking:!1,currentResponse:"",thinkingContent:"",activeToolCalls:[],currentTool:void 0,iterationHistory:[],managedLiveEvents:[],isCompacting:!1,lastLiveActivityLabel:void 0}};s.current=v,i(v)}).catch(x=>{if(c.current!==T||S.signal.aborted)return;let I=x instanceof Error?x.message:String(x);i({...g,hint:`${I} \xB7 \u2191: retry \xB7 End: latest`})}).finally(()=>{a.current===S&&(a.current=null)})},[n,e,t]);return{display:r,browse:u,reset:l,loading:o(()=>a.current!==null,"loading")}}o(Q_,"usePromptHistoryBrowse");import{useCallback as VV,useEffect as Z_,useRef as yC,useState as GV}from"react";function eP(e,t,n){let[r,i]=GV(),s=yC(Promise.resolve()),a=yC(0),c=yC(void 0),l=VV(()=>{c.current?.abort(),i(void 0)},[]);return Z_(()=>{let d=new AbortController;return c.current=d,s.current=Promise.resolve(),i(void 0),()=>d.abort()},[n]),Z_(()=>{if(!r||r.pending)return;let d=setTimeout(()=>i(p=>p===r?void 0:p),2e3);return()=>clearTimeout(d)},[r]),{cycle:o(()=>{let d=c.current;if(!d||d.signal.aborted)return Promise.resolve();let p=++a.current;i({text:"Updating effort\u2026",pending:!0});let m=o(async()=>{if(d.signal.aborted)return;let h;try{h=await e(d.signal)}catch(g){h={success:!1,message:`Host effort selection failed: ${String(g)}`}}d.signal.aborted||(p===a.current&&i(h?.success?{text:h.message}:void 0),h&&!h.success&&await t(h.message??"Host effort selection failed"))},"write");return s.current=s.current.then(m,m),s.current},"cycle"),cancel:l,notice:r}}o(eP,"useEffortShortcut");function jo(e,t,n={}){let{settings:r,contextBudget:i}=t,s={...r,...Object.fromEntries(Object.entries(n).map(([l,u])=>[l,u??void 0]))},a=r.provider??i?.provider,c=Object.fromEntries(Object.entries({provider:a,model:r.model??i?.model,effort:r.effort,effortOverride:r.effort!==void 0,thinking:r.thinking,reasoningMode:r.reasoningMode,agentMode:r.agentMode,workMode:r.workMode??"coding",permissionMode:r.permissionMode,repoIntelligenceMode:r.repoIntelligenceMode,repoIntelligenceTrace:r.repoIntelligenceTrace}).filter(([l,u])=>(u!==void 0||l==="effort"||l==="model"&&a!==void 0&&a!==e.provider)&&!Object.hasOwn(n,l==="effortOverride"?"effort":l)));return Object.entries(c).every(([l,u])=>Object.is(e[l],u))&&JSON.stringify(e.hostSettings)===JSON.stringify(s)?e:{...e,...c,hostSettings:s}}o(jo,"applyClientSessionViewSettings");function cr(e,t){return{provider:e.provider,model:e.model??null,effort:e.effort??null,thinking:e.thinking,reasoningMode:e.reasoningMode,agentMode:e.agentMode,...e.workMode!==void 0?{workMode:e.workMode}:{},permissionMode:xo(e.permissionMode),maxIter:t??null,repoIntelligenceMode:e.repoIntelligenceMode??null,repoIntelligenceTrace:e.repoIntelligenceTrace??null}}o(cr,"clientSessionSettings");function ou(e,t,n=[]){return Object.fromEntries(Object.entries(t).filter(([r,i])=>n.includes(r)||!Object.is(e[r],i)))}o(ou,"changedClientSessionSettings");import{jsx as Zi,Fragment as KV,jsxs as ly}from"react/jsx-runtime";var wC=" | ",tP=o(({searchActive:e=!1,selectionActive:t=!1,showAllActive:n=!1,searchQuery:r="",searchCurrent:i=0,searchCount:s=0,searchDetailText:a,pendingLiveUpdates:c=0,secondaryText:l,noticeText:u})=>{let d=ye("dark"),p=r.trim(),m=a?.trim(),h=l?.trim(),g=u?.trim(),S=e?p?`Search /${p}`:"Search":"Transcript",T=e?`Enter jump | n/N next/prev | Ctrl+E ${n?"collapse":"show all"} | Esc close | Ctrl+O/q back`:t?`PgUp/PgDn page | j/k scroll | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | Esc clear focus | Ctrl+O/q back`:`PgUp/PgDn page | j/k scroll | \u2190/\u2192 select | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | s dump | Ctrl+O/q/Esc back`,x=c>0?c===1?"1 new update":`${c} new updates`:void 0,I=e&&s>0?`${Math.max(0,i)}/${s}`:void 0,v=e&&m||h,k=!!(v||g);return ly(O,{flexDirection:"column",children:[ly(O,{paddingX:1,children:[Zi(M,{color:d.colors.dim,children:S}),Zi(M,{dimColor:!0,children:wC}),Zi(M,{color:d.colors.dim,children:T}),I||x?Zi(O,{flexGrow:1}):null,I?ly(KV,{children:[Zi(M,{dimColor:!0,children:I}),x?Zi(M,{dimColor:!0,children:wC}):null]}):null,x?Zi(M,{color:d.colors.accent,bold:!0,children:x}):null]}),k?ly(O,{paddingX:1,children:[v?Zi(M,{color:d.colors.dim,children:v}):null,v&&g?Zi(M,{dimColor:!0,children:wC}):null,g?Zi(M,{color:d.colors.accent,bold:!0,children:g}):null]}):null]})},"TranscriptModeFooter");import{jsx as zV,jsxs as qV}from"react/jsx-runtime";var nP=o(({banner:e,...t})=>qV(O,{flexDirection:"column",children:[e,zV(Ha,{...t,animateSpinners:!1,showFullThinking:!1,showDetailedTools:!1,showLiveProgressRows:!1})]}),"PromptTranscriptSurface");import{jsx as XV,jsxs as YV}from"react/jsx-runtime";var rP=o(({banner:e,windowed:t=!1,showDetailedTools:n=!1,showAllContent:r=!1,...i})=>YV(O,{flexDirection:"column",children:[e,XV(zx,{...i,chromeMode:"hidden",windowed:t,showFullThinking:!0,showDetailedTools:n,showAllContent:r,showLiveProgressRows:!0})]}),"TranscriptModeSurface");import{jsx as iP,jsxs as JV}from"react/jsx-runtime";var oP=o(({text:e,tone:t="success",pending:n=!1})=>{let r=e?.trim();if(!r)return null;let i=ye("dark"),s=t==="warning"?i.colors.warning:i.colors.accent,a=t==="warning"?"!":"\u2713";return iP(O,{paddingX:1,backgroundColor:i.colors.inputBackground,children:JV(M,{color:s,children:[n?iP(Ir,{color:s}):a," ",r]})})},"ClipboardToastSurface");import{jsx as Hs,Fragment as QV,jsxs as SC}from"react/jsx-runtime";var ZV=" \u23BF ";function eG(e){let t=ye("dark");switch(e){case"cyan":return t.colors.primary;case"green":return t.colors.success;case"red":return t.colors.error;default:return t.colors.dim}}o(eG,"resolveSymbolColor");var tG=o(({row:e})=>{let t=eG(e.symbolColor),n=e.kind!=="item";return SC(O,{flexDirection:"row",children:[Hs(M,{color:t,bold:e.isActive,children:e.symbol}),Hs(M,{children:" "}),Hs(M,{dimColor:n,bold:e.isActive,strikethrough:e.isStrikethrough,children:e.text}),e.evaluatorBadge?SC(QV,{children:[Hs(M,{children:" "}),Hs(M,{dimColor:!0,children:e.evaluatorBadge})]}):null]})},"TodoListRow"),sP=o(({viewModel:e})=>{if(!e.shouldRender||e.rows.length===0)return null;let t=ye("dark").colors.dim;return SC(O,{flexDirection:"row",children:[Hs(M,{color:t,children:ZV}),Hs(O,{flexDirection:"column",flexGrow:1,children:e.rows.map((n,r)=>Hs(tG,{row:n},`${n.kind}-${n.id??r}`))})]})},"TodoListSurface");import{jsx as Zf,jsxs as nG}from"react/jsx-runtime";var aP=uR;function rG(e){let t=ye("dark");switch(e){case"cyan":return t.colors.primary;case"green":return t.colors.success;case"red":return t.colors.error;default:return t.colors.dim}}o(rG,"resolveSymbolColor");var iG=o(({row:e})=>{let t=rG(e.symbolColor);return nG(O,{flexDirection:"row",children:[Zf(O,{width:aP,flexShrink:0,children:Zf(M,{color:t,bold:e.isActive,wrap:"truncate",children:dR(e.symbol,aP)})}),Zf(M,{color:e.kind==="hint"?ye("dark").colors.dim:void 0,bold:e.isActive,wrap:"truncate",children:e.text})]})},"WorkflowRunRow");function cP(e){return!e.shouldRender||e.rows.length===0?0:e.rows.length}o(cP,"measureWorkflowRunSurfaceRows");var lP=o(({viewModel:e})=>!e.shouldRender||e.rows.length===0?null:Zf(O,{flexDirection:"column",flexGrow:1,children:e.rows.map((t,n)=>Zf(iG,{row:t},`${t.kind}-${t.id??n}`))}),"WorkflowRunSurface");var uP=6;var oG=1;function dP(e){return Re("todo.progress",{completed:e.completedCount,total:e.totalCount})}o(dP,"formatTodoPlanProgressText");function fP(e){if(!e.shouldRender||e.rows.length===0)return[];let t=[Re("todo.transcript.progress",{completed:e.completedCount,total:e.totalCount})];for(let n of e.rows){let r=n.evaluatorBadge?` ${n.evaluatorBadge}`:"";t.push(`${n.symbol} ${n.text}${r}`)}return t}o(fP,"formatTodoPlanViewModelForTranscript");var pP="\u2610",sG="\u25CF",mP="\u2713",aG="\u2717",cG="\u2298",lG="\u2612";function uG(e){switch(e){case"in_progress":return{symbol:sG,color:"cyan"};case"completed":return{symbol:mP,color:"green"};case"failed":return{symbol:aG,color:"red"};case"skipped":return{symbol:cG,color:"gray"};case"cancelled":return{symbol:lG,color:"gray"};default:return{symbol:pP,color:"dim"}}}o(uG,"symbolForStatus");function dG(e){for(let t=0;t<e.length;t++)if(e[t].status==="in_progress")return t;for(let t=0;t<e.length;t++)if(e[t].status==="pending")return t;for(let t=e.length-1;t>=0;t--)if(e[t].status==="completed")return t;return 0}o(dG,"pickAnchorIndex");function fG(e){let{symbol:t,color:n}=uG(e.status),r=e.status==="failed"&&e.note?`${e.subject} (${e.note})`:e.subject,i=e.status==="cancelled",s=e.evaluator?`[${e.evaluator}]`:void 0;return{kind:"item",id:e.id,symbol:t,symbolColor:n,text:r,isActive:e.status==="in_progress",isStrikethrough:i,evaluatorBadge:s}}o(fG,"buildItemRow");function pG(e){return{kind:"summary_done",symbol:mP,symbolColor:"green",text:Re("todo.summary.done",{count:e}),isActive:!1,summaryCount:e}}o(pG,"buildDoneSummary");function xC(e){return{kind:"summary_pending",symbol:pP,symbolColor:"dim",text:Re("todo.summary.more",{count:e}),isActive:!1,summaryCount:e}}o(xC,"buildPendingSummary");function mG(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].status==="failed"&&!t.has(n))return n;return-1}o(mG,"pickFailedToPromote");function hG(e,t){let n=e.length;if(n===0)return{visibleIdx:[],hiddenCompletedCount:0,hiddenPendingCount:0};let r=4,i=Math.max(0,t-1),s=Math.min(n,i+r);s-i<r&&i>0&&(i=Math.max(0,s-r)),s-i<r&&s<n&&(s=Math.min(n,i+r));let a=[];for(let u=i;u<s;u++)a.push(u);let c=0,l=0;for(let u=0;u<i;u++)e[u].status==="completed"&&c++;for(let u=s;u<n;u++){let d=e[u].status;(d==="pending"||d==="in_progress")&&l++}return{visibleIdx:a,hiddenCompletedCount:c,hiddenPendingCount:l}}o(hG,"decideWindow");function hP(e,t){let n=e.length,r=e.reduce((h,g)=>g.status==="completed"?h+1:h,0),i=o((h,g)=>({shouldRender:g,rows:h,completedCount:r,totalCount:n}),"baseVm");if(n<oG)return i([],!1);t.now,t.lastAllCompletedAt;let s=dG(e),a=hG(e,s),c=new Set(a.visibleIdx),l=mG(e,c),u=[...a.visibleIdx],d=a.hiddenCompletedCount,p=a.hiddenPendingCount;if(l>=0){let h=-1;for(let g=u.length-1;g>=0;g--){let S=u[g];if(S!==s&&e[S].status==="pending"){h=g;break}}if(h>=0){let g=u[h];u[h]=l,p+=1,u.sort((x,I)=>x-I);let S=u[0],T=0;for(let x=0;x<S;x++)e[x].status==="completed"&&T++;d=T}}let m=[];d>0&&m.push(pG(d));for(let h of u)m.push(fG(e[h]));if(p>0&&m.push(xC(p)),m.length>uP)for(;m.length>uP;){let h=!1;for(let g=m.length-1;g>=0;g--){let S=m[g];if(S.kind==="item"&&!S.isActive){m.splice(g,1);let T=m[m.length-1];if(T&&T.kind==="summary_pending"){let x=(T.summaryCount??0)+1;m[m.length-1]=xC(x)}else m.push(xC(1));h=!0;break}}if(!h)break}return i(m,!0)}o(hP,"buildTodoPlanViewModel");function gP(e){let t=[];e.isHistorySearchActive?t.push({id:"search",label:"Search",accent:!0}):e.isTranscriptMode&&t.push({id:"transcript",label:"Transcript"}),e.pendingInputCount>0&&t.push({id:"queue",label:`Queue ${e.pendingInputCount}`}),e.buffering==="buffered-fallback"&&(e.isHistorySearchActive||e.isTranscriptMode)&&t.push({id:"buffered",label:"Buffered"}),e.isTranscriptMode&&e.pendingLiveUpdates>0&&t.push({id:"updates",label:e.pendingLiveUpdates===1?"1 update":`${e.pendingLiveUpdates} updates`,accent:!0});let n=[],r=[...t,...n].map(i=>i.label.trim()).filter(Boolean).join(" | ");return{leftItems:t,rightItems:n,summary:r}}o(gP,"buildFooterHeaderViewModel");import xG from"chalk";import{useEffect as gG,useCallback as yG,useRef as wG}from"react";var uy=class e{static{o(this,"ShortcutsRegistry")}static instance=null;shortcuts=new Map;static getInstance(){return e.instance||(e.instance=new e),e.instance}static resetInstance(){e.instance=null}register(t){let n=this.shortcuts.get(t.id);this.shortcuts.set(t.id,{definition:t,effectiveBindings:n?.effectiveBindings??t.defaultBindings,handler:n?.handler})}registerAll(t){for(let n of t)this.register(n)}unregister(t){return this.shortcuts.delete(t)}setHandler(t,n){let r=this.shortcuts.get(t);r&&(r.handler=n)}findMatchingShortcut(t,n){let r=null,i=-1/0;for(let s of this.shortcuts.values()){let a=s.definition.context;a!=="global"&&a!==n||this.matchesBinding(t,s.effectiveBindings)&&s.handler&&s.definition.priority>i&&(i=s.definition.priority,r=s)}return r}matchesBinding(t,n){for(let r of n){let i=this.normalizeKeyName(t.name),s=this.normalizeKeyName(r.key);if(i===s){let a=(r.ctrl??!1)===t.ctrl,c=(r.shift??!1)===t.shift,l=(r.meta??!1)===t.meta;if(a&&c&&l)return!0}}return!1}normalizeKeyName(t){let n={return:"enter",esc:"escape",del:"delete",backspace:"backspace"," ":"space"},r=t.toLowerCase();return n[r]??r}executeShortcut(t,n){let r=this.findMatchingShortcut(t,n);return r?.handler?r.handler(t)===!0:!1}getAllShortcuts(){return Array.from(this.shortcuts.values())}getShortcutsByCategory(t){return this.getAllShortcuts().filter(n=>n.definition.category===t)}getShortcutsByContext(t){return this.getAllShortcuts().filter(n=>{let r=n.definition.context;return r==="global"||r===t})}formatBinding(t){let n=[];t.ctrl&&n.push("Ctrl"),t.meta&&n.push("Alt"),t.shift&&n.push("Shift");let r=t.key.length===1?t.key.toUpperCase():t.key;return n.push(r),n.join("+")}formatBindings(t){return t.map(n=>this.formatBinding(n)).join(" or ")}},eo=o(()=>uy.getInstance(),"getShortcutsRegistry");function Fs(e,t,n={}){let{context:r,isActive:i=!0}=n,s=eo(),a=wG(t);a.current=t,gG(()=>(s.setHandler(e,u=>a.current(u)),()=>{s.setHandler(e,void 0)}),[s,e]);let c=yG(u=>{if(!i)return!1;let p=s.getAllShortcuts().find(S=>S.definition.id===e);if(!p)return!1;let m=r??p.definition.context,h=m==="global"?"input":m,g=s.findMatchingShortcut(u,h);return g&&g.definition.id===e?a.current(u)===!0:!1},[s,e,i,r]),l=SG(e,s);Wr(c,{isActive:i,priority:l})}o(Fs,"useShortcut");function SG(e,t){let r=t.getAllShortcuts().find(i=>i.definition.id===e);return r?r.definition.priority:0}o(SG,"getShortcutPriority");var yP={off:0,minimal:1,low:2,medium:3,high:4,xhigh:5,max:6,auto:7};function IC(e,t){let n=e.indexOf(t);if(n!==-1)return n;let r=yP[t];if(r===void 0)return-1;let i=-1,s=-1;for(let a=0;a<e.length;a++){let c=yP[e[a]];c===void 0||c>r||c>s&&(s=c,i=a)}return i}o(IC,"nearestCycleIndex");function CC({currentConfig:e,setCurrentConfig:t,isLoading:n,abort:r,stopThinking:i,clearThinkingContent:s,setCurrentTool:a,setIsLoading:c,onToggleHelp:l,setShowHelp:u,onSetThinking:d,onCycleThinking:p,onSetReasoningMode:m,onToggleTranscriptMode:h,onOpenTranscriptSearch:g,canOpenTranscriptSearch:S=!0,isInteractiveDialogActive:T=!1,onSetPermissionMode:x,isInputEmpty:I,onSavePermissionMode:v}){let k=o(_=>_?.name?.toLowerCase()==="c"&&_.ctrl===!0,"isCtrlCInterrupt");return Fs("interrupt",_=>k(_)&&n?(r(),i(),s(),a(void 0),c(!1),console.log(xG.yellow(`
|
|
123
|
+
[Interrupted]`)),!0):!1,{isActive:n}),Fs("showHelp",()=>T?!1:I?(l(),!0):!1,{isActive:I}),Fs("toggleThinking",()=>{if(T)return!1;if(p)return p(),u(!1),!0;let _=Qb(e.provider,e.model);if(_.length===0)return!1;let H=e.permissionMode==="plan"&&!e.effortOverride&&e.planModeEffort!==void 0?e.planModeEffort:e.effortOverride?e.effort:void 0,P=IC(_,H===void 0||H==="auto"?"auto":H==="none"?"off":H),z=_[(P+1)%_.length]??_[0],J=z==="auto"?void 0:z==="off"?"none":z,L=z!=="auto",W=z!=="off",N=z==="off"?"off":"auto";return t(q=>({...q,effort:J,effortOverride:L,thinking:W,reasoningMode:N})),gd({effort:J,thinking:W,reasoningMode:N}),m?.(N),d?.(W),u(!1),!0}),Fs("toggleTranscriptMode",()=>T?!1:(h?.(),u(!1),!0)),Fs("openTranscriptSearch",()=>T||!S?!1:(g?.(),u(!1),!0)),Fs("togglePermissionMode",()=>{if(T)return!1;let _=["plan","accept-edits","auto","full-access"],H=e.permissionMode==="auto-in-project"?"auto":e.permissionMode,P=(_.indexOf(H)+1)%_.length,z=_[P];return t(J=>({...J,permissionMode:z})),x?.(z),v?.(z),u(!1),!0}),null}o(CC,"GlobalShortcuts");function dy(e,t,n,r){if(r?.contextKind==="child")return null;let i=n?.preCompactionMessages?it([...n.preCompactionMessages],e):e;return n?.anchor?Sm(i,t,n.anchor,n.postCompactAttachments??[]):it(t,i)}o(dy,"prepareRootCompactionLineage");function wP(e,t){let n=e.loadFullLineage;if(!n)return e;let r=o(async i=>(await t(),n.call(e,i)),"guardedLoadFullLineage");return new Proxy(e,{get(i,s){if(s==="loadFullLineage")return r;let a=Reflect.get(i,s,i);return typeof a=="function"?a.bind(i):a}})}o(wP,"withSessionHistoryReadBarrier");function SP(){let e=Promise.resolve();return t=>{let n=e.then(t);return e=n.then(()=>{},()=>{}),n}}o(SP,"createConfirmationDialogQueue");import{existsSync as IG}from"node:fs";import TC from"node:path";function fy(e){let t=CG(e),n=t!==void 0&&IG(t)?t:void 0,r=jb({userConfigDir:e.userConfigDir??yo(),...e.projectRoot===void 0?{}:{projectRoot:e.projectRoot},trustProjectPolicy:t!==void 0,adminRules:e.execPolicy?.adminRules}),i={kind:"tool",name:"auto-mode",async beforeTool(u,d){return u.name!=="bash"?e.getAutoGuardrail().beforeTool?.(u,d)??{action:"block",reason:"Auto reviewer has no beforeTool hook."}:{action:"allow"}}},s={...e.shellSandbox?.processTreeContainment===void 0?{}:{processTreeContainment:e.shellSandbox.processTreeContainment},async prepare(u){if(e.shellSandbox===void 0)throw new Error("Standalone REPL has no OS sandbox provider.");return e.shellSandbox.prepare({...u,...n===void 0?{}:{trustedProjectExecPolicyPath:n}})}},a=o(()=>{let u=e.getPermissionMode();return u==="auto-in-project"?"auto":u},"resolveShellPermissionMode"),c=o(async(u,d)=>{let p=u.permissionMode??(u.reason==="direct-host"?"full-access":a()),m=await r,h=m.errors[0];if(h!==void 0)return Wb(h,p);let g=Ub(u.command,m.rules,{hostExecutable:u.executable,permissionMode:p});return g.decision==="allow"?!0:g.decision==="prompt"?u.reason==="direct-host"?zw(g,p):e.requestUserPermission(u,"exec_policy_prompt"):g.decision==="forbidden"?zw(g,p):u.reason==="direct-host"?!0:p==="accept-edits"?e.requestUserPermission(u,"mode_boundary"):p==="plan"?e.resolvePlanHostExecution?.(u)??"[Blocked] Plan mode cannot escalate this command to unsandboxed host execution.":vG(u,e.getAutoGuardrail(),d)},"authorizeShellHostExecution"),l=TG(e.trustedTextMutationHost,t);return{autoGuardrail:i,shellSandbox:s,resolveShellPermissionMode:a,authorizeShellHostExecution:c,...l===void 0?{}:{trustedTextMutationHost:l}}}o(fy,"createStandaloneShellPermissionBoundary");function CG(e){let t=e.projectRoot;return t!==void 0&&e.execPolicy?.trustedProjectRoots?.some(n=>xP(n,t))?TC.join(t,".kodax","exec-policy.jsonc"):void 0}o(CG,"trustedProjectPolicyPath");function TG(e,t){if(e===void 0||t===void 0)return e;let n=o(r=>{if(xP(r,t))throw new Rb({code:"text_mutation_policy_denied",path:r,message:`Trusted project Exec Policy is immutable for this standalone Run: ${r}`})},"assertAllowed");return{async snapshot(r){n(r.path);let i=await e.snapshot(r);return n(i.canonicalPath),i},async commit(r){return n(r.path),e.commit(r)}}}o(TG,"protectTrustedProjectPolicy");function xP(e,t){let n=TC.resolve(e),r=TC.resolve(t);return process.platform==="win32"?n.toLowerCase()===r.toLowerCase():n===r}o(xP,"sameHostPath");async function vG(e,t,n){let r=e.toolCallId;if(n===void 0||r===void 0)return"[Denied] Auto[LLM] host review requires the current tool dispatch context.";let i={id:r,name:"bash",input:{...e.toolInput,command:e.command}},s=await t.reviewHostBoundary(i,n);return s.action==="allow"?!0:`[Denied] ${"reason"in s?s.reason??"Auto[LLM] denied host execution.":"Auto[LLM] denied host execution."}`}o(vG,"reviewAutoHostBoundary");function bG(e){return Jb(e.provider,e.model,"off",{longRunning:!0})}o(bG,"evaluateSessionTransitionPolicy");function RG(e,t){let n=t.snapshot.model?`${t.snapshot.provider}:${t.snapshot.model}`:t.snapshot.provider,r=[`[Provider Guardrail] ${e} on ${n}: ${t.summary}`],i=t.issues[0]?.detail;return i&&r.push(` ${i}`),t.status==="block"?r.push(" Switch to a provider with durable full-history session semantics before continuing."):t.status==="warn"&&r.push(" Continuing with degraded session semantics."),r}o(RG,"formatSessionTransitionGuardMessage");function Uo(e,t,n){let r=bG(e);if(!r||r.status==="allow")return!0;let[i,...s]=RG(t,r);return n(r.status,i,s),r.status!=="block"}o(Uo,"enforceSessionTransitionGuard");function py(e){if(!e)return["[No session tree available for this session]"];let t=new Map(e.entries.map(d=>[d.id,d])),n=e.entries.filter(d=>["message","compaction","branch_summary","archive_marker"].includes(d.type)),r=new Set(n.map(d=>d.id)),i=new Map;for(let d of e.entries)d.type==="label"&&d.targetId&&(d.label?i.set(d.targetId,d.label):i.delete(d.targetId));let s=new Set;for(let d=e.activeEntryId;d&&!s.has(d);d=t.get(d)?.parentId??null)s.add(d);let a=new Map;for(let d of n){let p=d.parentId&&r.has(d.parentId)?d.parentId:null,m=a.get(p)??[];m.push(d),a.set(p,m)}let c=[],l=new Set,u=o((d,p)=>{for(let m of a.get(d)??[]){if(l.has(m.id))continue;l.add(m.id);let h=m.preview??"",g=i.get(m.id);c.push(`${" ".repeat(p)}${s.has(m.id)?"*":" "} ${m.id.slice(0,12)} ${m.role??m.type}: ${h.slice(0,48)}${h.length>48?"...":""}${g?` [${g}]`:""}`),u(m.id,p+1)}},"visit");return u(null,0),c}o(py,"formatClientSessionTree");function kG(e){switch(e.type){case"message":{let n=(typeof e.message.content=="string"?e.message.content:"[complex content]").replace(/\s+/g," ").trim();return`${e.message.role}: ${n.slice(0,48)}${n.length>48?"...":""}`}case"compaction":return`compaction: ${e.summary.slice(0,48)}${e.summary.length>48?"...":""}`;case"branch_summary":return`branch: ${e.summary.slice(0,48)}${e.summary.length>48?"...":""}`;case"archive_marker":return`archived: ${e.summary.slice(0,48)}${e.summary.length>48?"...":""}`;default:return e}}o(kG,"summarizeEntry");function IP(e,t,n,r){let i=t?n?"\\- ":"|- ":"",s=e.active?"*":" ",a=e.entry.id.slice(0,12),c=e.label?` [${e.label}]`:"";r.push(`${t}${i}${s} ${a} ${kG(e.entry)}${c}`);let l=t+(t?n?" ":"| ":"");e.children.forEach((u,d)=>{IP(u,l,d===e.children.length-1,r)})}o(IP,"formatNode");function my(e){let t=[];return e.forEach((n,r)=>{IP(n,"",r===e.length-1,t)}),t}o(my,"formatSessionTree");function CP(e,t){return e!==null&&e.attempt===t.attempt&&e.maxAttempts===t.maxAttempts&&e.waitMs===t.delayMs}o(CP,"isDuplicateLegacyRateLimit");function TP(e,t=240){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}o(TP,"truncateToolPreview");function vP(e,t=800){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}o(vP,"truncateToolOutputPreview");function vC(e){return e.replace(/^\[[^\]]+\]\s+/,"").replace(/^[A-Za-z][A-Za-z0-9_-]*:\s*/,"").trim()}o(vC,"stripToolRolePrefix");function bC(e){return vC(e).toLowerCase()}o(bC,"normalizeToolNameForMatch");function RC(e){return e===`[${Re("managed.completed")}]`||e===`[${Re("managed.completed.blocked")}]`||e===`[${Re("managed.completed.continuation")}]`}o(RC,"isCompletionTranscriptItem");function EG(e){return e.role==="evaluator"&&e.signal==="COMPLETE"}o(EG,"shouldFilterSidecarEvidenceEntry");function bP(e){let t=e.managedTask;if(!t)return[];let n=o(l=>{if(!e.interrupted&&!t.verdict.signalReason?.includes("Orchestration cancelled"))return!1;let u=l.signalReason?.trim()??"",d=l.summary?.trim()??"",p=l.output?.trim()??"",m=u.includes("Orchestration cancelled"),h=d.includes("Orchestration cancelled"),g=!p||d==="No textual output produced.";return l.status!=="completed"&&(m||h||g)||(m||h)&&g},"isInterruptedCancellation"),r=new Map(t.roleAssignments.map((l,u)=>[l.id,u])),i=t.verdict.decidedByAssignmentId,s=Math.max(0,...t.evidence.entries.filter(l=>l.assignmentId===i).map(l=>l.round??1)),a=[...t.evidence.entries].sort((l,u)=>{let d=(l.round??1)-(u.round??1);return d!==0?d:(r.get(l.assignmentId)??0)-(r.get(u.assignmentId)??0)}).filter(l=>!n(l)).filter(l=>!EG(l)).filter(l=>e.interrupted||!(l.assignmentId===i&&(l.round??1)===s)).map(l=>{let u=l.output?.trim()??"",d=l.summary?.trim()??"",p=u?zc(u):"",m=d?zc(d):"",h=l.role==="scout"?m?`Scout completed: ${m}`:"Scout completed.":m;return{entry:l,text:m||p||h}}).filter(({text:l})=>!!l).map(({entry:l,text:u})=>{let d=l.role==="scout"?" Preflight":(l.round??1)>1?` Round ${l.round}`:"";return`[${l.role==="evaluator"?`\u26A1 Sidecar Verifier${d}`:`${l.title??l.assignmentId}${d}`}]
|
|
124
|
+
${u}`}),c=t.verdict.disposition==="complete"?Re("managed.completed"):t.verdict.disposition==="needs_continuation"?Re("managed.completed.continuation"):t.verdict.disposition==="blocked"?Re("managed.completed.blocked"):void 0;return[...a,...c?[`[${c}]`]:[]]}o(bP,"buildManagedTaskTranscriptItems");function RP(e){let r=e.slice(0,400).match(new RegExp("\\*\\*([^*\\n]{1,80}?)\\*\\*"))?.[1]?.trim();return r?{header:r}:{}}o(RP,"extractBoldHeader");var kC=[" \u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557"," \u2588\u2588\u2551 \u2588\u2588\u2554\u255D \u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u255A\u2588\u2588\u2557\u2588\u2588\u2554\u255D"," \u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2554\u255D "," \u2588\u2588\u2554\u2550\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551 \u2588\u2588\u2554\u2588\u2588\u2557 "," \u2588\u2588\u2551 \u2588\u2588\u2557 \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u255D \u2588\u2588\u2557"," \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D"];import Ut from"chalk";import MG,{createContext as AG,useContext as _G,useState as kP,useCallback as EC}from"react";var EP=AG(null);function MC({children:e,initialContext:t="input"}){let[n,r]=kP(!1),[i,s]=kP(t);eo().registerAll(Jc);let c=EC(()=>{r(p=>!p)},[]),l=EC(()=>{let m=eo().getAllShortcuts(),h={global:[],mode:[],navigation:[],editing:[]};for(let g of m){let S=g.definition.category;h[S]||(h[S]=[]),h[S].push(g)}return h},[]),u=EC(()=>eo().getShortcutsByContext(i),[i]),d={showHelp:n,toggleHelp:c,setShowHelp:r,currentContext:i,setCurrentContext:s,getShortcutsByCategory:l,getContextShortcuts:u};return MG.createElement(EP.Provider,{value:d},e)}o(MC,"ShortcutsProvider");function AC(){let e=_G(EP);if(!e)throw new Error("useShortcutsContext must be used within a ShortcutsProvider");return e}o(AC,"useShortcutsContext");import{appendFileSync as PG,mkdirSync as LG,writeFileSync as OG}from"node:fs";import{join as AP}from"node:path";import MP from"node:v8";var LC=parseInt(process.env.KODAX_MEMORY_DIAG??"0",10),OC=LC>=1,$C=yo(),_P=AP($C,"memory-diag.log"),_C=0,PC=!1;function PP(){if(!PC)try{LG($C,{recursive:!0}),PC=!0}catch{PC=!0}}o(PP,"ensureLogDir");function $G(e){PP();try{PG(_P,e+`
|
|
125
|
+
`)}catch{}}o($G,"writeLog");function fn(e){return`${(e/1024/1024).toFixed(2)}MB`}o(fn,"formatMB");function NG(){return typeof globalThis.gc=="function"?(globalThis.gc(),!0):!1}o(NG,"tryGC");function on(e){return e?e.length*2:0}o(on,"strBytes");function nc(e,t=0){if(t>8)return 0;if(e==null)return 8;if(typeof e=="string")return e.length*2;if(typeof e=="number"||typeof e=="boolean")return 8;if(Array.isArray(e)){let n=32;for(let r of e)n+=nc(r,t+1);return n}if(typeof e=="object"){let n=64;for(let[r,i]of Object.entries(e))n+=r.length*2,n+=nc(i,t+1);return n}return 16}o(nc,"estimateJsonBytes");function LP(e){if(!e||typeof e!="object")return 64;let t=e,n=64,r=new Set(["type","text","thinking","content","partial_json","input","data","signature","path","mediaType","tool_use_id","id","name","is_error"]);if(typeof t.text=="string"&&(n+=t.text.length*2),typeof t.thinking=="string"&&(n+=t.thinking.length*2),typeof t.content=="string")n+=t.content.length*2;else if(Array.isArray(t.content))for(let i of t.content)n+=LP(i);typeof t.partial_json=="string"&&(n+=t.partial_json.length*2),typeof t.data=="string"&&(n+=t.data.length*2),typeof t.signature=="string"&&(n+=t.signature.length*2),typeof t.path=="string"&&(n+=t.path.length*2),t.input!==void 0&&(n+=nc(t.input));for(let[i,s]of Object.entries(t))r.has(i)||(n+=i.length*2+nc(s));return n}o(LP,"estimateBlockBytes");function NC(e){if(typeof e.content=="string")return e.content.length*2+64;if(Array.isArray(e.content)){let t=64;for(let n of e.content)t+=LP(n);return t}return 200}o(NC,"estimateMessageBytes");function ep(e){let t=128;switch(t+=on(e.id)+on(e.parentId??void 0)+on(e.timestamp),e.type){case"message":return t+NC(e.message);case"compaction":return t+=on(e.summary),t+=on(e.firstKeptEntryId),t+=on(e.reason),t+=on(e.artifactLedgerId),e.details!==void 0&&(t+=nc(e.details)),e.memorySeed!==void 0&&(t+=nc(e.memorySeed)),t;case"branch_summary":return t+=on(e.summary),t+=on(e.fromId),e.details!==void 0&&(t+=nc(e.details)),t;case"label":return t+=on(e.targetId),t+=on(e.label),t;case"archive_marker":return t+=on(e.archiveBatchId),t+=on(e.summary),t+=8,t;case"rewind_marker":return t+=on(e.targetId),t+=on(e.fromId),t+=on(e.summary),t+=8,t;default:return t}}o(ep,"estimateEntryBytes");function DG(e){let t={},n=[];for(let i=0;i<e.length;i++){let s=e[i],a=NC(s);n.push({index:i,role:s.role,bytes:a});let c=t[s.role]??{count:0,bytes:0};c.count++,c.bytes+=a,t[s.role]=c}return n.sort((i,s)=>s.bytes-i.bytes),{totalBytes:n.reduce((i,s)=>i+s.bytes,0),biggest:n.slice(0,5),byRole:t}}o(DG,"buildMessageBreakdown");function hy(){return OC}o(hy,"memDiagEnabled");function gy(e,t){if(!OC)return;e==="turn-start"&&_C++;let n=process.memoryUsage(),r=new Date().toISOString(),i=t.biggestMessages,s=["",`\u2550\u2550\u2550 [MEMDIAG] turn=${_C} phase=${e} @${r} \u2550\u2550\u2550`,` V8 heap: used=${fn(n.heapUsed)} total=${fn(n.heapTotal)} rss=${fn(n.rss)} ext=${fn(n.external)}`," \u2500\u2500 Data breakdown \u2500\u2500",` context.messages: ${t.messageCount} msgs, ${fn(t.messageBytes)}`,` lineage.entries: ${t.lineageEntryCount} total (msg=${t.lineageMessageEntryCount}, compact=${t.lineageCompactionCount}, branch=${t.lineageBranchSummaryCount}, label=${t.lineageLabelCount}, archive=${t.lineageArchiveMarkerCount}, rewind=${t.lineageRewindMarkerCount})`,` lineage non-message: ${fn(t.lineageNonMessageBytes)} (sidecar payloads)`,` lineage orphan messages: ${t.lineageOrphanMessageCount} msgs, ${fn(t.lineageOrphanMessageBytes)} (in lineage but not in context.messages \u2014 branches/pruned)`,` UI history: ${t.historyItemCount} items, ${fn(t.historyTextBytes)}`,` foreground turn: ${t.foregroundItemCount} items, ${fn(t.foregroundTextBytes)}`,` streaming response: ${fn(t.streamingResponseBytes)}`,` streaming thinking: ${fn(t.streamingThinkingBytes)}`,` persisted UI history: ${t.persistedUiHistoryCount} items, ${fn(t.persistedUiHistoryBytes)}`];if(i.length>0){s.push(" \u2500\u2500 Top 5 biggest messages \u2500\u2500");for(let u of i)s.push(` [${u.index}] role=${u.role} ${fn(u.bytes)}`)}let a=t.messageBytes+t.lineageNonMessageBytes+t.lineageOrphanMessageBytes+t.historyTextBytes+t.foregroundTextBytes+t.streamingResponseBytes+t.streamingThinkingBytes+t.persistedUiHistoryBytes;s.push(" \u2500\u2500 V8 heap spaces \u2500\u2500");let c=MP.getHeapSpaceStatistics();for(let u of c)u.space_used_size>1024*1024&&s.push(` ${u.space_name.padEnd(25)} used=${fn(u.space_used_size)} allocated=${fn(u.space_size)}`);if(s.push(" \u2500\u2500 Summary \u2500\u2500"),s.push(` tracked data total: ${fn(a)}`),s.push(` V8 heap used: ${fn(n.heapUsed)}`),s.push(` unaccounted (overhead): ${fn(n.heapUsed-a)}`),s.push(" (React/Ink tree, provider SDK buffers, module metadata,"),s.push(' tokenizer caches, source maps \u2014 see "Blind spots" note)'),NG()){let u=process.memoryUsage();s.push(` after forced GC: heap=${fn(u.heapUsed)} (freed ${fn(n.heapUsed-u.heapUsed)})`)}else s.push(" after forced GC: UNAVAILABLE \u2014 re-run with `node --expose-gc` to distinguish"),s.push(` "real leak" from "GC hasn't run yet".`);if(LC>=2)try{let u=AP($C,`heap-turn${_C}-${e}.heapsnapshot`);MP.writeHeapSnapshot(u),s.push(` heap snapshot: ${u}`)}catch{s.push(" heap snapshot: FAILED")}$G(s.join(`
|
|
126
|
+
`))}o(gy,"memDiagSnapshot");function yy(e,t,n){let r=DG(e),i=new Set(e),s=0,a=0,c=0,l=0,u=0,d=0,p=0,m=0,h=0,g=t?.entries??[];for(let I of g)switch(I.type){case"message":h++,i.has(I.message)||(c++,a+=NC(I.message));break;case"compaction":l++,s+=ep(I);break;case"branch_summary":u++,s+=ep(I);break;case"label":d++,s+=ep(I);break;case"archive_marker":p++,s+=ep(I);break;case"rewind_marker":m++,s+=ep(I);break}let S=0;for(let I of n.historyItems)S+=on(I.text);let T=0;for(let I of n.foregroundItems)T+=on(I.text);let x=0;for(let I of n.persistedUiHistory)x+=on(I.text);return{messageCount:e.length,messageBytes:r.totalBytes,biggestMessages:r.biggest,lineageEntryCount:g.length,lineageMessageEntryCount:h,lineageCompactionCount:l,lineageBranchSummaryCount:u,lineageLabelCount:d,lineageArchiveMarkerCount:p,lineageRewindMarkerCount:m,lineageNonMessageBytes:s,lineageOrphanMessageBytes:a,lineageOrphanMessageCount:c,historyItemCount:n.historyItems.length,historyTextBytes:S,foregroundItemCount:n.foregroundItems.length,foregroundTextBytes:T,streamingResponseBytes:on(n.streamingResponse),streamingThinkingBytes:on(n.streamingThinking),persistedUiHistoryCount:n.persistedUiHistory.length,persistedUiHistoryBytes:x}}o(yy,"buildMemDiagBreakdown");function OP(){if(OC){PP();try{let e=typeof globalThis.gc=="function",t=[`[MEMDIAG] Session started at ${new Date().toISOString()}`,`[MEMDIAG] Level=${LC} gc=${e?"available":"UNAVAILABLE (run with node --expose-gc)"}`,"[MEMDIAG] Blind spots: React/Ink trees, provider SDK buffers, WeakMap/Map caches,","[MEMDIAG] tokenizer internal state, source-map strings, native handles.",'[MEMDIAG] A large "unaccounted" number living in these buckets is expected;',"[MEMDIAG] use Level 2 (KODAX_MEMORY_DIAG=2) to dump heap snapshots for DevTools.",""].join(`
|
|
127
127
|
`);OG(_P,t+`
|
|
128
|
-
`)}catch{}}}o(OP,"memDiagReset");import BG from"node:fs";import wy from"node:path";var HG={".gif":"image/gif",".jpeg":"image/jpeg",".jpg":"image/jpeg",".png":"image/png",".webp":"image/webp"},$P=/@(?:"([^"]+)"|'([^']+)'|([^\s]+))/g;function
|
|
128
|
+
`)}catch{}}}o(OP,"memDiagReset");import BG from"node:fs";import wy from"node:path";var HG={".gif":"image/gif",".jpeg":"image/jpeg",".jpg":"image/jpeg",".png":"image/png",".webp":"image/webp"},$P=/@(?:"([^"]+)"|'([^']+)'|([^\s]+))/g;function su(e,t){let n=wy.resolve(t,e);return process.platform==="win32"?n.toLowerCase():n}o(su,"inputArtifactPathKey");function NP(e,t,n){let r=o(a=>su(a,n),"resolvePath"),i=new Set([...e.matchAll($P)].map(a=>r(a[1]??a[2]??a[3]))),s=[];for(let a of t){if(a.kind!=="image"||i.has(r(a.path)))continue;i.add(r(a.path));let c=a.path.includes('"')?"'":'"';s.push(`@${c}${a.path}${c}`)}return s.length>0?`${e}${e.endsWith(" ")||!e?"":" "}${s.join(" ")}`:e}o(NP,"restorePromptInputArtifacts");function FG(e){return HG[wy.extname(e).toLowerCase()]}o(FG,"resolveImageMediaType");var DC="[Image unavailable]";function WG(e){return""}o(WG,"buildImageAnchor");function to(e,t,n=[]){let r=[],i=[],s=new Set,a=new Map,c=new Set,l=[],u=0;for(let p of e.matchAll($P)){let m=p.index??u;l.push(e.slice(u,m));let h=p[1]??p[2]??p[3];if(!h){l.push(p[0]),u=m+p[0].length;continue}let g=wy.resolve(t,h),S=n.find(x=>x.kind==="image"&&su(x.path,t)===su(g,t)),T=(S?.kind==="image"?S.mediaType:void 0)??FG(h);if(!T){l.push(p[0]),u=m+p[0].length;continue}try{if(!BG.statSync(g).isFile()){c.has(g)||(i.push(`[Image input skipped] ${h} is not a file.`),c.add(g)),l.push(DC),u=m+p[0].length;continue}}catch{c.has(g)||(i.push(`[Image input missing] ${h} was not found from ${t}.`),c.add(g)),l.push(DC),u=m+p[0].length;continue}if(!s.has(g)){s.add(g);let x=WG(r.length+1);a.set(g,x),r.push(S??{kind:"image",path:g,mediaType:T,source:"user-inline",description:`Attached image ${wy.basename(g)}`})}l.push(a.get(g)??DC),u=m+p[0].length}l.push(e.slice(u));let d=l.join("");return{promptText:d,messageContent:_b(d,r),inputArtifacts:r,warnings:i}}o(to,"preparePromptInputArtifacts");function no(e,t){return async(...n)=>(await e(),t(...n))}o(no,"withObservedExecution");var tp="Host observation unavailable. Input not submitted; press Up to restore or edit it, then retry.",Vo=class extends Error{static{o(this,"ClientObservationUnavailableError")}constructor(){super(tp)}};function Sy(e){return["help","--help","-h"].includes(e?.[0]?.trim().toLowerCase()??"")}o(Sy,"isCommandHelp");function DP(e){let t=jG(e.stage),n=UG(e);return{type:"info",icon:"\u{1F4E1}",text:n?`[RepoIntel] ${t} \xB7 ${n}`:`[RepoIntel] ${t}`,tightSpacing:!0}}o(DP,"createRepoIntelTraceHistoryItem");function jG(e){switch(e){case"routing":return"routing";case"preturn":return"preturn";case"module":return"module";case"impact":return"impact";case"task-snapshot":return"task-snapshot";default:return String(e)}}o(jG,"stageDisplayName");function UG(e){let t=[],n=e.capability;n&&(t.push(`mode=${n.mode}`),t.push(`engine=${n.engine}`),n.status!=="ok"&&t.push(`status=${n.status}`));let r=e.trace;return r&&(r.cacheHit!==void 0&&t.push(r.cacheHit?"cache hit":"cache miss"),r.capsuleEstimatedTokens!==void 0&&t.push(`${VG(r.capsuleEstimatedTokens)} tokens`)),t.length===0&&e.summary?GG(e.summary):t.join(" \xB7 ")}o(UG,"buildRepoIntelDetailLine");function VG(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}o(VG,"formatTokens");function GG(e){return e.replace(/^stage=[^|]+\|\s*/,"").trim()}o(GG,"stripSummaryStagePrefix");function BP(e,t,n,r,i){let s=e?.gitRoot??t??void 0,a=e?.executionCwd??i??s??process.cwd();return{...e,gitRoot:s,executionCwd:a,contextTokenSnapshot:n,taskSurface:"repl",skillsPrompt:r}}o(BP,"buildManagedRunContext");var KG=["global","mode","navigation","editing"],zG={global:["showHelp","interrupt"],mode:["toggleThinking","toggleTranscriptMode","togglePermissionMode"],navigation:["openTranscriptSearch","historyUp","historyDown","moveToStart","moveToEnd"],editing:["acceptCompletion","cancelInput","newline","killLineRight","killLineLeft","deleteWordLeft"]},qG={global:"Global",mode:"Modes",navigation:"Navigation",editing:"Editing"},XG={id:"transcript",title:"Transcript",items:[{id:"mode",label:"Ctrl+O transcript mode"},{id:"search",label:"Ctrl+F search transcript"},{id:"browse",label:"PgUp/PgDn/j/k scroll"},{id:"match",label:"n/N next match"},{id:"latest",label:"End back to live"},{id:"exit",label:"q or Esc back to live"}]};function YG(e){let t=eo(),n=t.getAllShortcuts().find(i=>i.definition.id===e);if(n?.effectiveBindings?.length)return t.formatBindings(n.effectiveBindings);let r=Jc.find(i=>i.id===e);if(r?.defaultBindings?.length)return t.formatBindings(r.defaultBindings)}o(YG,"resolveShortcutBindingLabel");function JG(e){return`${YG(e.id)??e.id} ${e.name}`}o(JG,"buildMenuItemLabel");function QG(e){return eo().getAllShortcuts().find(r=>r.definition.id===e)?.definition??Jc.find(r=>r.id===e)}o(QG,"resolveShortcutDefinition");function xy(){return[...KG.map(t=>{let n=zG[t].map(r=>QG(r)).filter(r=>!!r).map(r=>({id:r.id,label:JG(r)}));return{id:t,title:qG[t],items:n}}).filter(t=>t.items.length>0),XG]}o(xy,"buildHelpMenuSections");var BC=2,HP=1,FP=4;function Ht(e,t){let n=sr(e.length>0?e.split(`
|
|
129
129
|
`):[""],Math.max(1,t),0,0);return Math.max(1,n.visualLines.length)}o(Ht,"wrapLineCount");function ZG(e,t,n=">"){let r=n.length+1,i=Math.max(20,t-r),s=sr(e.length>0?e.split(`
|
|
130
|
-
`):[""],i,0,0);return Math.max(1,s.visualLines.length)+2}o(ZG,"calculateInputPromptRows");function WP(e){let{terminalRows:t,terminalWidth:n,windowedTranscript:r=!1,inputText:i,inputPrompt:s=">",footerHeaderText:a,activitySummary:c,pendingInputSummary:l,stashNoticeSummary:u,notificationSummary:d,statusNoticeSummary:p,workStripText:m,suggestionsReserved:h,suggestionsMode:g="inline",showHelp:S,statusBarText:T,confirmPrompt:x,confirmInstruction:I,uiRequest:v,dialogMode:k="inline",historySearch:_,maxVisibleSelectOptions:H=5,reviewHint:$,todoSurfaceRows:P=0,workflowSurfaceRows:z=0,childActivitySurfaceRows:J=0,activityBarVisible:L=!1}=e,W=Math.max(0,Math.floor(P)),N=Math.max(0,Math.floor(z)),q=Math.max(0,Math.floor(J)),B=a?Ht(a,Math.max(1,n-2)):0,ae=c?Ht(c,Math.max(1,n-2)):0,ee=L?1:ae,ie=l?Ht(l,Math.max(1,n-2)):0,C=u?Ht(u,Math.max(1,n-2)):0,Te=d?Ht(d,Math.max(1,n-2)):0,Fe=p?Ht(p,Math.max(1,n-2)):0,Ce=m?Ht(m,Math.max(1,n-2)):0,X=ZG(i,n,s),re=h?8:0,je=S?HP+FP+xy().reduce((Ze,Lt)=>Ze+Ht(Lt.title,Math.max(1,n-
|
|
130
|
+
`):[""],i,0,0);return Math.max(1,s.visualLines.length)+2}o(ZG,"calculateInputPromptRows");function WP(e){let{terminalRows:t,terminalWidth:n,windowedTranscript:r=!1,inputText:i,inputPrompt:s=">",footerHeaderText:a,activitySummary:c,pendingInputSummary:l,stashNoticeSummary:u,notificationSummary:d,statusNoticeSummary:p,workStripText:m,suggestionsReserved:h,suggestionsMode:g="inline",showHelp:S,statusBarText:T,confirmPrompt:x,confirmInstruction:I,uiRequest:v,dialogMode:k="inline",historySearch:_,maxVisibleSelectOptions:H=5,reviewHint:$,todoSurfaceRows:P=0,workflowSurfaceRows:z=0,childActivitySurfaceRows:J=0,activityBarVisible:L=!1}=e,W=Math.max(0,Math.floor(P)),N=Math.max(0,Math.floor(z)),q=Math.max(0,Math.floor(J)),B=a?Ht(a,Math.max(1,n-2)):0,ae=c?Ht(c,Math.max(1,n-2)):0,ee=L?1:ae,ie=l?Ht(l,Math.max(1,n-2)):0,C=u?Ht(u,Math.max(1,n-2)):0,Te=d?Ht(d,Math.max(1,n-2)):0,Fe=p?Ht(p,Math.max(1,n-2)):0,Ce=m?Ht(m,Math.max(1,n-2)):0,X=ZG(i,n,s),re=h?8:0,je=S?HP+FP+xy().reduce((Ze,Lt)=>Ze+Ht(Lt.title,Math.max(1,n-BC))+Ht(Lt.items.map(mt=>mt.label).join(" | "),Math.max(1,n-BC)),0):0,Tt=Ht(T,Math.max(1,n-2)),vt=0;if(x&&I){let Ze=Math.max(1,n-4);vt=3+Ht(`[Confirm] ${x}`,Ze)+Ht(I,Ze)}let De=0,Ee=0;if(v){let Ze=Math.max(1,n-4);v.kind==="select"?(Ee=Math.min(H,v.options.length),De=3+Ht(`[Select] ${v.title}`,Ze)+v.options.slice(0,Ee).reduce((Lt,mt,rt)=>Lt+Ht(`${rt+1}. ${mt.label}${mt.description?` - ${mt.description}`:""}`,Ze),0)+(v.options.length>Ee?2:0)+Ht(`Choice: ${v.buffer||"(type a number)"}`,Ze)+1+(v.error?Ht(v.error,Ze):0)):De=3+Ht(`[Input] ${v.prompt}`,Ze)+(v.defaultValue!==void 0?Ht(`Default: ${v.defaultValue}`,Ze):0)+Ht(`Value: ${v.buffer||"(type your response)"}`,Ze)+1+(v.error?Ht(v.error,Ze):0)}let ce=0;if(_){let Ze=Math.max(1,n-4);ce=3+Ht(`Query: ${_.query||"(type to search)"}`,Ze)+(_.matchCount===0?Ht("No matches yet",Ze):Ht(`${Math.max(1,_.matchCount)} matches`,Ze)+Ht(_.selectedExcerpt||"",Ze))+1}let oe=$?Ht($,Math.max(1,n-2)):0,Me=B+ee+N+W+q+ie+C+Te+X+je+Fe+oe+(g==="inline"?re:0)+(k==="inline"?vt+De+ce:0),Ae=(g==="overlay"?re:0)+(k==="overlay"?vt+De+ce:0),ze=Me+Ce+Tt,pt=Math.max(1,t-ze);return{messageRows:pt,reservedBottomRows:ze,headerRows:B,activityRows:ee,pendingInputRows:ie,stashNoticeRows:C,notificationRows:Te,workStripRows:Ce,inputRows:X,suggestionsRows:re,helpRows:je,statusNoticeRows:Fe,statusRows:Tt,confirmRows:vt,uiRequestRows:De,historySearchRows:ce,footerRows:Me,overlayRows:Ae,visibleSelectOptions:Ee,reviewHintRows:oe,todoSurfaceRows:W,workflowSurfaceRows:N,childActivitySurfaceRows:q,slots:[{name:"transcript",rows:pt},{name:"footer",rows:Me},{name:"overlay",rows:Ae},{name:"status",rows:Tt},{name:"task-bar",rows:Ce}]}}o(WP,"calculateViewportBudget");function jP(e,t={}){let n=cl(e,{rendererMode:t.rendererMode??"owned"});return{hostProfile:e,surface:"prompt",buffering:n.bufferingMode,ownsViewportByDefault:n.ownsViewportByDefault,supportsMouseTracking:n.supportsMouseTracking,supportsFullscreenLayout:n.supportsFullscreenLayout,supportsOverlaySurface:n.supportsOverlaySurface,supportsSelection:n.supportsSelection,supportsCopyOnSelect:n.supportsCopyOnSelect,supportsWheelHistory:n.supportsWheelHistory,supportsViewportChrome:n.supportsViewportChrome,supportsSearchViewport:n.supportsSearchViewport,supportsStickyPrompt:n.supportsStickyPrompt,scrollAnchor:0,jumpToLatestAvailable:!1,stickyPromptVisible:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}o(jP,"createTranscriptDisplayState");function UP(e){return{...e,surface:"transcript",jumpToLatestAvailable:e.pendingLiveUpdates>0}}o(UP,"enterTranscriptMode");function VP(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}o(VP,"exitTranscriptMode");function GP(e,t){let n=Math.max(0,t);return{...e,pendingLiveUpdates:n,jumpToLatestAvailable:e.surface==="transcript"?n>0:e.scrollAnchor>0}}o(GP,"setTranscriptPendingLiveUpdates");function KP(e,t){let n=Math.max(0,t);return{...e,scrollAnchor:n,jumpToLatestAvailable:e.surface==="transcript"?e.pendingLiveUpdates>0:n>0}}o(KP,"setTranscriptScrollAnchor");function zP(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}o(zP,"jumpTranscriptToLatest");function qP(e,t){return{...e,stickyPromptVisible:t}}o(qP,"setTranscriptStickyPromptVisible");function au(e,t){return{...e,selectedItemId:t,selectionMode:t?"message":"none"}}o(au,"setTranscriptSelectedItem");function XP(e,t){return{...e,surface:"transcript",searchMode:"history",searchAnchorItemId:t?.anchorItemId??e.selectedItemId??e.searchAnchorItemId,currentMatchIndex:Math.max(0,t?.initialMatchIndex??e.currentMatchIndex),jumpToLatestAvailable:e.pendingLiveUpdates>0}}o(XP,"openTranscriptSearch");function YP(e){return{...e,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0}}o(YP,"closeTranscriptSearch");function JP(e,t){return{...e,currentMatchIndex:Math.max(-1,t)}}o(JP,"setTranscriptSearchMatchIndex");function QP(e){return e.supportsFullscreenLayout&&e.ownsViewportByDefault}o(QP,"shouldWindowTranscript");function ZP(e){return e.surface==="transcript"}o(ZP,"shouldPauseLiveTranscript");function HC(e){return e.supportsSelection}o(HC,"ownsTranscriptSelectionPath");function Iy(e,t,n){if(!(!HC(e)||!n))return t.includes(n)?n:void 0}o(Iy,"resolveTranscriptSelectedItemId");function eL(e){return e.supportsSelection&&e.supportsCopyOnSelect}o(eL,"supportsPassiveTranscriptCopyOnSelect");function tL(e){if(e.surface==="transcript")return"Transcript | PgUp/PgDn page | j/k scroll | \u2190/\u2192 select | / search | n/N matches | q/Esc/Ctrl+O back"}o(tL,"buildTranscriptBrowseHint");var nL="Slash commands cannot be queued mid-task. Press Esc twice or Ctrl+C to abort the current task, then run the command.",rL="slash-guard";function FC(e){return e.trimStart().startsWith("/")}o(FC,"isSlashCommandText");var eK=`
|
|
131
131
|
|
|
132
132
|
---
|
|
133
133
|
|
|
134
|
-
`;async function iL(e){let{initialPrompt:t,runRound:n,shiftPendingPrompt:r,peekPendingPromptDelivery:i,onRoundComplete:s,onBeforeQueuedRound:a,shouldContinue:c=o(()=>!0,"shouldContinue"),shouldDrainQueuedPrompts:l=o(()=>!0,"shouldDrainQueuedPrompts")}=e,u=t,d=await n(u);for(;;){if(await s?.(d),!c(d)||!l())return d;let p=[],m;for(;;){let h=i?.();if(p.length>0&&(m==="host"||h==="host"))break;let g=r();if(g===void 0)break;let S=typeof g=="string"?g.trim():"";S.length>0&&(p.push(S),m=h)}if(p.length===0)return d;u=p.length===1?p[0]:p.join(eK),await a?.(u),d=await n(u)}}o(iL,"runQueuedPromptSequence");function sL(e){return e.itemsLength>0||e.currentResponse.length>0||e.thinkingContent.length>0||e.activeToolCallsLength>0}o(sL,"hasTranscriptInputActivity");function tK(e){return e.keyName==="mouse"&&e.hasMouse&&e.usesManagedMouseClicks&&e.supportsMouseTracking&&e.usesRendererMouseTracking}o(tK,"shouldHandleManagedTranscriptMouse");function oL(e){return e.usesManagedMouseWheel&&e.supportsWheelHistory&&e.hasTranscript}o(oL,"shouldHandleManagedTranscriptWheel");function aL(e){if(tK({keyName:e.keyName,hasMouse:e.hasMouse,usesManagedMouseClicks:e.usesManagedMouseClicks,supportsMouseTracking:e.supportsMouseTracking,usesRendererMouseTracking:e.usesRendererMouseTracking})){if(e.mouseButton!=="left")return{kind:"none"};if(e.mouseAction==="press"||e.mouseAction==="drag"||e.mouseAction==="release")return{kind:"mouse-phase",phase:e.mouseAction}}return e.keyName==="pageup"?e.hasTranscript?{kind:"scroll-by",delta:e.reviewPageSize}:{kind:"consume"}:e.keyName==="wheelup"?oL({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?{kind:"scroll-by",delta:e.reviewWheelStep}:{kind:"none"}:e.keyName==="wheeldown"?oL({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?e.historyScrollOffset===0&&!e.isBrowsingHistory?{kind:"consume"}:{kind:"scroll-by",delta:-e.reviewWheelStep}:{kind:"none"}:{kind:"none"}}o(aL,"resolveTranscriptPointerAction");function cL(e){return e.isTranscriptMode&&e.hasTextSelection}o(cL,"shouldDeferInterruptToTranscriptSelectionCopy");function lL(e){return e.hasActiveWorkflow?e.ctrl&&e.keyName==="c"?!cL({isTranscriptMode:e.isTranscriptMode,hasTextSelection:e.hasTranscriptTextSelection}):e.keyName!=="escape"||e.isTranscriptMode||e.isAwaitingUserInteraction?!1:e.isDoubleEscape&&e.isInputEmpty&&e.pendingInputCount===0:!1}o(lL,"shouldStopWorkflowFromInterruptKey");function uL(e){return e.ctrl&&e.keyName==="c"?cL({isTranscriptMode:e.isTranscriptMode,hasTextSelection:e.hasTranscriptTextSelection})?{kind:"none"}:{kind:"interrupt"}:e.keyName!=="escape"?{kind:"none"}:e.isTranscriptMode||e.isAwaitingUserInteraction?{kind:"none"}:e.isInputEmpty&&e.pendingInputCount>0?{kind:"pop-pending-input"}:e.isInputEmpty?e.isDoubleEscape?{kind:"interrupt"}:{kind:"none"}:{kind:"none"}}o(uL,"resolveStreamingInterruptAction");function dL(e){let{key:t,isTranscriptMode:n,isHistorySearchActive:r,historySearchMatchCount:i,hasTextSelection:s,hasFocusedItem:a,canCopySelectedItem:c,canCopySelectedToolInput:l,canToggleSelectedDetail:u,canCycleTranscriptSelection:d}=e;if(t.name==="pageup")return{kind:"scroll-page-up"};if(r){if(t.name==="escape")return{kind:"close-history-search"};if(t.name==="backspace")return{kind:"history-search-backspace"};if(t.name==="down")return{kind:"history-search-step",direction:"next"};if(t.name==="up")return{kind:"history-search-step",direction:"prev"};if(t.name==="enter"||t.name==="return")return{kind:"history-search-submit"};if(t.insertable&&t.sequence)return{kind:"history-search-append",text:t.sequence}}return n&&!r&&!t.ctrl&&!t.meta&&t.insertable&&t.sequence==="/"?{kind:"open-history-search"}:n&&!t.ctrl&&!t.meta&&t.name==="q"?{kind:"exit-transcript"}:n&&t.name==="escape"?s||a?{kind:"clear-selection-focus"}:{kind:"exit-transcript"}:t.name==="home"?{kind:"scroll-home"}:t.name==="pagedown"?{kind:"scroll-page-down"}:t.name==="end"?{kind:"scroll-end"}:n?t.ctrl&&!t.meta&&t.name==="e"?{kind:"toggle-show-all"}:t.name==="j"||t.name==="down"?{kind:"scroll-line-down"}:t.name==="k"||t.name==="up"?{kind:"scroll-line-up"}:!t.ctrl&&!t.meta&&t.name==="g"&&t.shift?{kind:"jump-latest"}:!t.ctrl&&!t.meta&&t.name==="g"&&!t.shift?{kind:"jump-oldest"}:t.name==="left"?d?{kind:"cycle-selection",direction:"prev"}:{kind:"none"}:t.name==="right"?d?{kind:"cycle-selection",direction:"next"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="c"?s?{kind:"copy-selection"}:c?{kind:"copy-item"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="i"?l?{kind:"copy-tool-input"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="v"?u?{kind:"toggle-detail"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="s"?{kind:"dump-to-scrollback"}:!t.ctrl&&!t.meta&&t.name==="n"?i===0?{kind:"none"}:{kind:"search-match-nav",direction:t.shift?"prev":"next"}:{kind:"none"}:{kind:"none"}}o(dL,"resolveTranscriptKeyboardAction");function fL(e){switch(e.action.kind){case"none":return!1;case"scroll-page-up":return e.hasTranscript&&(e.disarmHistorySearchSelection(),e.scrollTranscriptBy(e.pageScrollDelta)),!0;case"close-history-search":return e.closeHistorySearchSurface(),!0;case"history-search-backspace":return e.backspaceHistorySearchQuery(),!0;case"history-search-step":return e.stepHistorySearchSelection(e.action.direction),!0;case"history-search-submit":return e.submitHistorySearchSelection(),!0;case"history-search-append":return e.appendHistorySearchQuery(e.action.text),!0;case"open-history-search":return e.openHistorySearchSurface(),!0;case"clear-selection-focus":return e.clearTranscriptSelectionFocus(),!0;case"exit-transcript":return e.exitTranscriptModeSurface(),!0;case"toggle-show-all":return e.toggleTranscriptShowAll(),!0;case"scroll-home":case"jump-oldest":return e.disarmHistorySearchSelection(),e.scrollTranscriptHome(),!0;case"scroll-page-down":return e.disarmHistorySearchSelection(),e.scrollTranscriptBy(-e.pageScrollDelta),!0;case"scroll-end":return e.isTranscriptMode?(e.exitTranscriptModeSurface(),!0):(e.scrollTranscriptToBottom(),!0);case"scroll-line-down":return e.disarmHistorySearchSelection(),e.scrollTranscriptBy(-1),!0;case"scroll-line-up":return e.disarmHistorySearchSelection(),e.scrollTranscriptBy(1),!0;case"jump-latest":return e.scrollTranscriptToBottom(),!0;case"cycle-selection":return e.cycleTranscriptSelection(e.action.direction),!0;case"copy-selection":return e.copySelectedTranscriptText(),!0;case"copy-item":return e.copySelectedTranscriptItem(),!0;case"copy-tool-input":return e.copySelectedTranscriptToolInput(),!0;case"toggle-detail":return e.toggleSelectedTranscriptDetail(),!0;case"search-match-nav":return e.navigateSearchMatch(e.action.direction),!0;case"dump-to-scrollback":return e.dumpTranscriptToScrollback(),!0;default:return!1}}o(fL,"executeTranscriptKeyboardAction");function
|
|
135
|
-
`)}o(nK,"serializeToolGroup");function rK(e){switch(e.type){case"thinking":return null;case"user":return`user: ${
|
|
134
|
+
`;async function iL(e){let{initialPrompt:t,runRound:n,shiftPendingPrompt:r,peekPendingPromptDelivery:i,onRoundComplete:s,onBeforeQueuedRound:a,shouldContinue:c=o(()=>!0,"shouldContinue"),shouldDrainQueuedPrompts:l=o(()=>!0,"shouldDrainQueuedPrompts")}=e,u=t,d=await n(u);for(;;){if(await s?.(d),!c(d)||!l())return d;let p=[],m;for(;;){let h=i?.();if(p.length>0&&(m==="host"||h==="host"))break;let g=r();if(g===void 0)break;let S=typeof g=="string"?g.trim():"";S.length>0&&(p.push(S),m=h)}if(p.length===0)return d;u=p.length===1?p[0]:p.join(eK),await a?.(u),d=await n(u)}}o(iL,"runQueuedPromptSequence");function sL(e){return e.itemsLength>0||e.currentResponse.length>0||e.thinkingContent.length>0||e.activeToolCallsLength>0}o(sL,"hasTranscriptInputActivity");function tK(e){return e.keyName==="mouse"&&e.hasMouse&&e.usesManagedMouseClicks&&e.supportsMouseTracking&&e.usesRendererMouseTracking}o(tK,"shouldHandleManagedTranscriptMouse");function oL(e){return e.usesManagedMouseWheel&&e.supportsWheelHistory&&e.hasTranscript}o(oL,"shouldHandleManagedTranscriptWheel");function aL(e){if(tK({keyName:e.keyName,hasMouse:e.hasMouse,usesManagedMouseClicks:e.usesManagedMouseClicks,supportsMouseTracking:e.supportsMouseTracking,usesRendererMouseTracking:e.usesRendererMouseTracking})){if(e.mouseButton!=="left")return{kind:"none"};if(e.mouseAction==="press"||e.mouseAction==="drag"||e.mouseAction==="release")return{kind:"mouse-phase",phase:e.mouseAction}}return e.keyName==="pageup"?e.hasTranscript?{kind:"scroll-by",delta:e.reviewPageSize}:{kind:"consume"}:e.keyName==="wheelup"?oL({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?{kind:"scroll-by",delta:e.reviewWheelStep}:{kind:"none"}:e.keyName==="wheeldown"?oL({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?e.historyScrollOffset===0&&!e.isBrowsingHistory?{kind:"consume"}:{kind:"scroll-by",delta:-e.reviewWheelStep}:{kind:"none"}:{kind:"none"}}o(aL,"resolveTranscriptPointerAction");function cL(e){return e.isTranscriptMode&&e.hasTextSelection}o(cL,"shouldDeferInterruptToTranscriptSelectionCopy");function lL(e){return e.hasActiveWorkflow?e.ctrl&&e.keyName==="c"?!cL({isTranscriptMode:e.isTranscriptMode,hasTextSelection:e.hasTranscriptTextSelection}):e.keyName!=="escape"||e.isTranscriptMode||e.isAwaitingUserInteraction?!1:e.isDoubleEscape&&e.isInputEmpty&&e.pendingInputCount===0:!1}o(lL,"shouldStopWorkflowFromInterruptKey");function uL(e){return e.ctrl&&e.keyName==="c"?cL({isTranscriptMode:e.isTranscriptMode,hasTextSelection:e.hasTranscriptTextSelection})?{kind:"none"}:{kind:"interrupt"}:e.keyName!=="escape"?{kind:"none"}:e.isTranscriptMode||e.isAwaitingUserInteraction?{kind:"none"}:e.isInputEmpty&&e.pendingInputCount>0?{kind:"pop-pending-input"}:e.isInputEmpty?e.isDoubleEscape?{kind:"interrupt"}:{kind:"none"}:{kind:"none"}}o(uL,"resolveStreamingInterruptAction");function dL(e){let{key:t,isTranscriptMode:n,isHistorySearchActive:r,historySearchMatchCount:i,hasTextSelection:s,hasFocusedItem:a,canCopySelectedItem:c,canCopySelectedToolInput:l,canToggleSelectedDetail:u,canCycleTranscriptSelection:d}=e;if(t.name==="pageup")return{kind:"scroll-page-up"};if(r){if(t.name==="escape")return{kind:"close-history-search"};if(t.name==="backspace")return{kind:"history-search-backspace"};if(t.name==="down")return{kind:"history-search-step",direction:"next"};if(t.name==="up")return{kind:"history-search-step",direction:"prev"};if(t.name==="enter"||t.name==="return")return{kind:"history-search-submit"};if(t.insertable&&t.sequence)return{kind:"history-search-append",text:t.sequence}}return n&&!r&&!t.ctrl&&!t.meta&&t.insertable&&t.sequence==="/"?{kind:"open-history-search"}:n&&!t.ctrl&&!t.meta&&t.name==="q"?{kind:"exit-transcript"}:n&&t.name==="escape"?s||a?{kind:"clear-selection-focus"}:{kind:"exit-transcript"}:t.name==="home"?{kind:"scroll-home"}:t.name==="pagedown"?{kind:"scroll-page-down"}:t.name==="end"?{kind:"scroll-end"}:n?t.ctrl&&!t.meta&&t.name==="e"?{kind:"toggle-show-all"}:t.name==="j"||t.name==="down"?{kind:"scroll-line-down"}:t.name==="k"||t.name==="up"?{kind:"scroll-line-up"}:!t.ctrl&&!t.meta&&t.name==="g"&&t.shift?{kind:"jump-latest"}:!t.ctrl&&!t.meta&&t.name==="g"&&!t.shift?{kind:"jump-oldest"}:t.name==="left"?d?{kind:"cycle-selection",direction:"prev"}:{kind:"none"}:t.name==="right"?d?{kind:"cycle-selection",direction:"next"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="c"?s?{kind:"copy-selection"}:c?{kind:"copy-item"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="i"?l?{kind:"copy-tool-input"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="v"?u?{kind:"toggle-detail"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="s"?{kind:"dump-to-scrollback"}:!t.ctrl&&!t.meta&&t.name==="n"?i===0?{kind:"none"}:{kind:"search-match-nav",direction:t.shift?"prev":"next"}:{kind:"none"}:{kind:"none"}}o(dL,"resolveTranscriptKeyboardAction");function fL(e){switch(e.action.kind){case"none":return!1;case"scroll-page-up":return e.hasTranscript&&(e.disarmHistorySearchSelection(),e.scrollTranscriptBy(e.pageScrollDelta)),!0;case"close-history-search":return e.closeHistorySearchSurface(),!0;case"history-search-backspace":return e.backspaceHistorySearchQuery(),!0;case"history-search-step":return e.stepHistorySearchSelection(e.action.direction),!0;case"history-search-submit":return e.submitHistorySearchSelection(),!0;case"history-search-append":return e.appendHistorySearchQuery(e.action.text),!0;case"open-history-search":return e.openHistorySearchSurface(),!0;case"clear-selection-focus":return e.clearTranscriptSelectionFocus(),!0;case"exit-transcript":return e.exitTranscriptModeSurface(),!0;case"toggle-show-all":return e.toggleTranscriptShowAll(),!0;case"scroll-home":case"jump-oldest":return e.disarmHistorySearchSelection(),e.scrollTranscriptHome(),!0;case"scroll-page-down":return e.disarmHistorySearchSelection(),e.scrollTranscriptBy(-e.pageScrollDelta),!0;case"scroll-end":return e.isTranscriptMode?(e.exitTranscriptModeSurface(),!0):(e.scrollTranscriptToBottom(),!0);case"scroll-line-down":return e.disarmHistorySearchSelection(),e.scrollTranscriptBy(-1),!0;case"scroll-line-up":return e.disarmHistorySearchSelection(),e.scrollTranscriptBy(1),!0;case"jump-latest":return e.scrollTranscriptToBottom(),!0;case"cycle-selection":return e.cycleTranscriptSelection(e.action.direction),!0;case"copy-selection":return e.copySelectedTranscriptText(),!0;case"copy-item":return e.copySelectedTranscriptItem(),!0;case"copy-tool-input":return e.copySelectedTranscriptToolInput(),!0;case"toggle-detail":return e.toggleSelectedTranscriptDetail(),!0;case"search-match-nav":return e.navigateSearchMatch(e.action.direction),!0;case"dump-to-scrollback":return e.dumpTranscriptToScrollback(),!0;default:return!1}}o(fL,"executeTranscriptKeyboardAction");function Ws(e){let t=/\u001b\[[0-9;?]*[ -/]*[@-~]/g,n=/\u001b\][^\u0007\u001b]*(?:\u0007|\u001b\\)/g,r=/\u001b[@-_]/g;return e.replace(t,"").replace(n,"").replace(r,"")}o(Ws,"stripAnsi");function nK(e){return e.tools.map(n=>`tool: ${n.name}`).join(`
|
|
135
|
+
`)}o(nK,"serializeToolGroup");function rK(e){switch(e.type){case"thinking":return null;case"user":return`user: ${Ws(e.text)}`;case"assistant":return`assistant: ${Ws(e.text)}`;case"system":return`system: ${Ws(e.text)}`;case"info":return`info: ${Ws(e.text)}`;case"error":return`error: ${Ws(e.text)}`;case"event":return`event: ${Ws(e.text)}`;case"hint":return`hint: ${Ws(e.text)}`;case"sidecar":return`sidecar: ${Ws(e.text)}`;case"tool_group":return nK(e);default:return e}}o(rK,"serializeOne");function iK(e){let t=[];for(let n of e){let r=rK(n);r!==null&&r!==""&&t.push(r)}return t.join(`
|
|
136
136
|
|
|
137
137
|
`)}o(iK,"serializeTranscriptForScrollback");function pL(e){let{items:t,writeToScrollback:n,exitAltScreen:r,enterAltScreen:i}=e,s=iK(t);r(),s.length>0&&n(`${s}
|
|
138
|
-
`),i()}o(pL,"dumpTranscriptToNativeScrollback");var
|
|
139
|
-
`).length,i={width:n,height:r};return hL.set(e,i),i},"measureText"),FC=sK;import aK from"wrap-ansi";import cK from"cli-truncate";var gL={},lK=o((e,t,n)=>{let r=e+String(t)+String(n),i=gL[r];if(i)return i;let s=e;if(n==="wrap"&&(s=aK(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=cK(e,t,{position:a})}return gL[r]=s,s},"wrapText"),Cy=lK;var uK=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),dK=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),fK=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),SL=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),pK=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),xL=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),yL=o((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!uK(c))break;n++}let r=e.slice(t,n),i=n;for(;n<e.length;){let c=e[n];if(!dK(c))break;n++}let s=e.slice(i,n),a=e[n];if(!(a===void 0||!fK(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),wL=o((e,t,n)=>{for(let r=t;r<e.length;r++){let i=e[r];if(n&&i==="\x07"||i==="\x9C")return r+1;if(i==="\x1B"){let s=e[r+1];if(s==="\x1B"){r++;continue}if(s==="\\")return r+2}}},"findControlStringTerminatorIndex"),mK=o((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!SL(s))break;n++}let r=e.slice(t,n),i=e[n];if(!(i===void 0||!pK(i)))return{endIndex:n+1,intermediateString:r,finalCharacter:i}},"readEscapeSequence"),hK=o(e=>{switch(e){case"]":return{type:"osc",allowBellTerminator:!0};case"P":return{type:"dcs",allowBellTerminator:!1};case"^":return{type:"pm",allowBellTerminator:!1};case"_":return{type:"apc",allowBellTerminator:!1};case"X":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromEscapeIntroducer"),gK=o(e=>{switch(e){case"\x9D":return{type:"osc",allowBellTerminator:!0};case"\x90":return{type:"dcs",allowBellTerminator:!1};case"\x9E":return{type:"pm",allowBellTerminator:!1};case"\x9F":return{type:"apc",allowBellTerminator:!1};case"\x98":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromC1Introducer"),WC=o(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(xL(t))return!0;return!1},"hasAnsiControlCharacters"),cu=o((e,t,n,r)=>(r>n&&e.push({type:"text",value:t.slice(n,r)}),e.push({type:"invalid",value:t.slice(r)}),e),"malformedFromIndex"),IL=o(e=>{if(!WC(e))return[{type:"text",value:e}];let t=[],n=0;for(let r=0;r<e.length;){let i=e[r];if(i===void 0)break;if(i==="\x1B"){let a=e[r+1];if(a===void 0)return cu(t,e,n,r);if(a==="["){let u=yL(e,r+2);if(u===void 0)return cu(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,u.endIndex),parameterString:u.parameterString,intermediateString:u.intermediateString,finalCharacter:u.finalCharacter}),r=u.endIndex,n=r;continue}let c=hK(a);if(c!==void 0){let u=wL(e,r+2,c.allowBellTerminator);if(u===void 0)return cu(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:c.type,value:e.slice(r,u)}),r=u,n=r;continue}let l=mK(e,r+1);if(l===void 0){if(SL(a))return cu(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),r++,n=r;continue}r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"esc",value:e.slice(r,l.endIndex),intermediateString:l.intermediateString,finalCharacter:l.finalCharacter}),r=l.endIndex,n=r;continue}if(i==="\x9B"){let a=yL(e,r+1);if(a===void 0)return cu(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,a.endIndex),parameterString:a.parameterString,intermediateString:a.intermediateString,finalCharacter:a.finalCharacter}),r=a.endIndex,n=r;continue}let s=gK(i);if(s!==void 0){let a=wL(e,r+1,s.allowBellTerminator);if(a===void 0)return cu(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:s.type,value:e.slice(r,a)}),r=a,n=r;continue}if(i==="\x9C"){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"st",value:i}),r++,n=r;continue}if(xL(i)){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"c1",value:i}),r++,n=r;continue}r++}return n<e.length&&t.push({type:"text",value:e.slice(n)}),t},"tokenizeAnsi");var yK=/^[\d:;]*$/,wK=o(e=>{if(!WC(e))return e;let t="";for(let n of IL(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&yK.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),CL=wK;var TL=o(e=>{let t="";for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r===void 0)continue;let i="";r.nodeName==="#text"?i=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(i=TL(r)),i.length>0&&typeof r.internal_transform=="function"&&(i=r.internal_transform(i,n))),t+=i}return CL(t)},"squashTextNodes"),np=TL;var Ty=o(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:SK.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(xK.bind(null,t)),t},"createNode"),vy=o((e,t)=>{t.parentNode&&rp(t.parentNode,t),t.parentNode=e,e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount()),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&by(e)},"appendChildNode"),jC=o((e,t,n)=>{t.parentNode&&rp(t.parentNode,t),t.parentNode=e;let r=e.childNodes.indexOf(n);r>=0?(e.childNodes.splice(r,0,t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,r)):(e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&by(e)},"insertBeforeNode"),rp=o((e,t)=>{t.yogaNode&&t.parentNode?.yogaNode?.removeChild(t.yogaNode),t.parentNode=void 0;let n=e.childNodes.indexOf(t);n>=0&&e.childNodes.splice(n,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&by(e)},"removeChildNode"),UC=o((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),VC=o((e,t)=>{e.style=t},"setStyle"),vL=o(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return ip(t,e),t},"createTextNode"),xK=o(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:np(e),r=FC(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let i=e.style?.textWrap??"wrap",s=Cy(n,t,i);return FC(s)},"measureTextNode"),bL=o(e=>{if(e?.parentNode)return e.yogaNode??bL(e.parentNode)},"findClosestYogaNode"),by=o(e=>{bL(e)?.markDirty()},"markNodeAsDirty"),ip=o((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,by(e)},"setTextNodeValue");import Ve from"yoga-layout";var IK=o((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?Ve.POSITION_TYPE_ABSOLUTE:Ve.POSITION_TYPE_RELATIVE)},"applyPositionStyles"),CK=o((e,t)=>{"margin"in t&&e.setMargin(Ve.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(Ve.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(Ve.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(Ve.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(Ve.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(Ve.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(Ve.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),TK=o((e,t)=>{"padding"in t&&e.setPadding(Ve.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(Ve.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(Ve.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(Ve.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(Ve.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(Ve.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(Ve.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),vK=o((e,t)=>{"flexGrow"in t&&e.setFlexGrow(t.flexGrow??0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexWrap"in t&&(t.flexWrap==="nowrap"&&e.setFlexWrap(Ve.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(Ve.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(Ve.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(Ve.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(Ve.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(Ve.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(Ve.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(Number.NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(Ve.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(Ve.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(Ve.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(Ve.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(Ve.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(Ve.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(Ve.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(Ve.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(Ve.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(Ve.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(Ve.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(Ve.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(Ve.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(Ve.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),bK=o((e,t)=>{"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth(t.minWidth??0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight(t.minHeight??0))},"applyDimensionStyles"),RK=o((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?Ve.DISPLAY_FLEX:Ve.DISPLAY_NONE)},"applyDisplayStyles"),kK=o((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(Ve.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(Ve.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(Ve.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(Ve.EDGE_RIGHT,n)}},"applyBorderStyles"),EK=o((e,t)=>{"gap"in t&&e.setGap(Ve.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(Ve.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(Ve.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),MK=o((e,t={})=>{IK(e,t),CK(e,t),TK(e,t),vK(e,t),bK(e,t),RK(e,t),kK(e,t),EK(e,t)},"styles"),GC=MK;import AK from"node:process";var RL=o(()=>AK.env.DEV==="true","isDev");if(RL())try{await import("./devtools-MVOFT6N7.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
|
|
138
|
+
`),i()}o(pL,"dumpTranscriptToNativeScrollback");var cu={committed:[],width:0,hasBanner:!1};function mL(e,t,n){let r=e.bannerSection!==null,i=e.bannerSection!==null?[e.bannerSection,...e.finalizedSections]:[...e.finalizedSections],s=i.map(t),a={committed:s,width:e.width,hasBanner:r},c=o(d=>({plan:{kind:"rebuild",sections:i,reason:d},nextState:a}),"rebuild"),l=n.committed.length>0;if(l&&n.width!==e.width)return c("width-change");if(l&&n.hasBanner!==r)return c("banner-change");let u=Math.min(n.committed.length,s.length);for(let d=0;d<u;d++){let p=r&&d===0;if(n.committed[d].key!==s[d].key)return c(p?"banner-change":"key-order-change");if(n.committed[d].fingerprint!==s[d].fingerprint)return c(p?"banner-change":"fingerprint-change")}return s.length<n.committed.length?c("source-rewrite"):s.length===n.committed.length?{plan:{kind:"none"},nextState:a}:{plan:{kind:"append",sections:i.slice(n.committed.length)},nextState:a}}o(mL,"planInlineScrollback");import{jsx as FL}from"react/jsx-runtime";import JK from"yoga-layout";import{LegacyRoot as QK}from"react-reconciler/constants.js";import _K from"react-reconciler";import{DefaultEventPriority as PK,NoEventPriority as _L}from"react-reconciler/constants.js";import*as js from"scheduler";import kL from"yoga-layout";import{createContext as LK}from"react";import SK from"yoga-layout";import oK from"widest-line";var hL=new Map,sK=o(e=>{if(e.length===0)return{width:0,height:0};let t=hL.get(e);if(t)return t;let n=oK(e),r=e.split(`
|
|
139
|
+
`).length,i={width:n,height:r};return hL.set(e,i),i},"measureText"),WC=sK;import aK from"wrap-ansi";import cK from"cli-truncate";var gL={},lK=o((e,t,n)=>{let r=e+String(t)+String(n),i=gL[r];if(i)return i;let s=e;if(n==="wrap"&&(s=aK(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=cK(e,t,{position:a})}return gL[r]=s,s},"wrapText"),Cy=lK;var uK=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),dK=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),fK=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),SL=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),pK=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),xL=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),yL=o((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!uK(c))break;n++}let r=e.slice(t,n),i=n;for(;n<e.length;){let c=e[n];if(!dK(c))break;n++}let s=e.slice(i,n),a=e[n];if(!(a===void 0||!fK(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),wL=o((e,t,n)=>{for(let r=t;r<e.length;r++){let i=e[r];if(n&&i==="\x07"||i==="\x9C")return r+1;if(i==="\x1B"){let s=e[r+1];if(s==="\x1B"){r++;continue}if(s==="\\")return r+2}}},"findControlStringTerminatorIndex"),mK=o((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!SL(s))break;n++}let r=e.slice(t,n),i=e[n];if(!(i===void 0||!pK(i)))return{endIndex:n+1,intermediateString:r,finalCharacter:i}},"readEscapeSequence"),hK=o(e=>{switch(e){case"]":return{type:"osc",allowBellTerminator:!0};case"P":return{type:"dcs",allowBellTerminator:!1};case"^":return{type:"pm",allowBellTerminator:!1};case"_":return{type:"apc",allowBellTerminator:!1};case"X":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromEscapeIntroducer"),gK=o(e=>{switch(e){case"\x9D":return{type:"osc",allowBellTerminator:!0};case"\x90":return{type:"dcs",allowBellTerminator:!1};case"\x9E":return{type:"pm",allowBellTerminator:!1};case"\x9F":return{type:"apc",allowBellTerminator:!1};case"\x98":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromC1Introducer"),jC=o(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(xL(t))return!0;return!1},"hasAnsiControlCharacters"),lu=o((e,t,n,r)=>(r>n&&e.push({type:"text",value:t.slice(n,r)}),e.push({type:"invalid",value:t.slice(r)}),e),"malformedFromIndex"),IL=o(e=>{if(!jC(e))return[{type:"text",value:e}];let t=[],n=0;for(let r=0;r<e.length;){let i=e[r];if(i===void 0)break;if(i==="\x1B"){let a=e[r+1];if(a===void 0)return lu(t,e,n,r);if(a==="["){let u=yL(e,r+2);if(u===void 0)return lu(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,u.endIndex),parameterString:u.parameterString,intermediateString:u.intermediateString,finalCharacter:u.finalCharacter}),r=u.endIndex,n=r;continue}let c=hK(a);if(c!==void 0){let u=wL(e,r+2,c.allowBellTerminator);if(u===void 0)return lu(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:c.type,value:e.slice(r,u)}),r=u,n=r;continue}let l=mK(e,r+1);if(l===void 0){if(SL(a))return lu(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),r++,n=r;continue}r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"esc",value:e.slice(r,l.endIndex),intermediateString:l.intermediateString,finalCharacter:l.finalCharacter}),r=l.endIndex,n=r;continue}if(i==="\x9B"){let a=yL(e,r+1);if(a===void 0)return lu(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,a.endIndex),parameterString:a.parameterString,intermediateString:a.intermediateString,finalCharacter:a.finalCharacter}),r=a.endIndex,n=r;continue}let s=gK(i);if(s!==void 0){let a=wL(e,r+1,s.allowBellTerminator);if(a===void 0)return lu(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:s.type,value:e.slice(r,a)}),r=a,n=r;continue}if(i==="\x9C"){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"st",value:i}),r++,n=r;continue}if(xL(i)){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"c1",value:i}),r++,n=r;continue}r++}return n<e.length&&t.push({type:"text",value:e.slice(n)}),t},"tokenizeAnsi");var yK=/^[\d:;]*$/,wK=o(e=>{if(!jC(e))return e;let t="";for(let n of IL(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&yK.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),CL=wK;var TL=o(e=>{let t="";for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r===void 0)continue;let i="";r.nodeName==="#text"?i=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(i=TL(r)),i.length>0&&typeof r.internal_transform=="function"&&(i=r.internal_transform(i,n))),t+=i}return CL(t)},"squashTextNodes"),np=TL;var Ty=o(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:SK.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(xK.bind(null,t)),t},"createNode"),vy=o((e,t)=>{t.parentNode&&rp(t.parentNode,t),t.parentNode=e,e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount()),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&by(e)},"appendChildNode"),UC=o((e,t,n)=>{t.parentNode&&rp(t.parentNode,t),t.parentNode=e;let r=e.childNodes.indexOf(n);r>=0?(e.childNodes.splice(r,0,t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,r)):(e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&by(e)},"insertBeforeNode"),rp=o((e,t)=>{t.yogaNode&&t.parentNode?.yogaNode?.removeChild(t.yogaNode),t.parentNode=void 0;let n=e.childNodes.indexOf(t);n>=0&&e.childNodes.splice(n,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&by(e)},"removeChildNode"),VC=o((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),GC=o((e,t)=>{e.style=t},"setStyle"),vL=o(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return ip(t,e),t},"createTextNode"),xK=o(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:np(e),r=WC(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let i=e.style?.textWrap??"wrap",s=Cy(n,t,i);return WC(s)},"measureTextNode"),bL=o(e=>{if(e?.parentNode)return e.yogaNode??bL(e.parentNode)},"findClosestYogaNode"),by=o(e=>{bL(e)?.markDirty()},"markNodeAsDirty"),ip=o((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,by(e)},"setTextNodeValue");import Ve from"yoga-layout";var IK=o((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?Ve.POSITION_TYPE_ABSOLUTE:Ve.POSITION_TYPE_RELATIVE)},"applyPositionStyles"),CK=o((e,t)=>{"margin"in t&&e.setMargin(Ve.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(Ve.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(Ve.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(Ve.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(Ve.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(Ve.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(Ve.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),TK=o((e,t)=>{"padding"in t&&e.setPadding(Ve.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(Ve.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(Ve.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(Ve.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(Ve.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(Ve.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(Ve.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),vK=o((e,t)=>{"flexGrow"in t&&e.setFlexGrow(t.flexGrow??0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexWrap"in t&&(t.flexWrap==="nowrap"&&e.setFlexWrap(Ve.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(Ve.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(Ve.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(Ve.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(Ve.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(Ve.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(Ve.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(Number.NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(Ve.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(Ve.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(Ve.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(Ve.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(Ve.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(Ve.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(Ve.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(Ve.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(Ve.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(Ve.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(Ve.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(Ve.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(Ve.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(Ve.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),bK=o((e,t)=>{"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth(t.minWidth??0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight(t.minHeight??0))},"applyDimensionStyles"),RK=o((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?Ve.DISPLAY_FLEX:Ve.DISPLAY_NONE)},"applyDisplayStyles"),kK=o((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(Ve.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(Ve.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(Ve.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(Ve.EDGE_RIGHT,n)}},"applyBorderStyles"),EK=o((e,t)=>{"gap"in t&&e.setGap(Ve.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(Ve.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(Ve.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),MK=o((e,t={})=>{IK(e,t),CK(e,t),TK(e,t),vK(e,t),bK(e,t),RK(e,t),kK(e,t),EK(e,t)},"styles"),KC=MK;import AK from"node:process";var RL=o(()=>AK.env.DEV==="true","isDev");if(RL())try{await import("./devtools-MVOFT6N7.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
|
|
140
140
|
The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
|
|
141
141
|
but this failed as it was not installed. Debugging with React Devtools requires it.
|
|
142
142
|
|
|
@@ -144,51 +144,51 @@ To install use this command:
|
|
|
144
144
|
|
|
145
145
|
$ npm install --save-dev react-devtools-core
|
|
146
146
|
`.trim()+`
|
|
147
|
-
`);else throw e}var EL=o((e,t)=>{if(e===t)return;if(!e)return t;let n={},r=!1;for(let i of Object.keys(e))(!t||!Object.hasOwn(t,i))&&(n[i]=void 0,r=!0);if(t)for(let i of Object.keys(t))t[i]!==e[i]&&(n[i]=t[i],r=!0);return r?n:void 0},"diff"),ML=o(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),Ry=_L,
|
|
148
|
-
`).repeat(_);h&&(H=Ey.dim(H));let $=(
|
|
149
|
-
`).repeat(_);g&&($=Ey.dim($));let P=T?
|
|
150
|
-
`.repeat(i)+UK(t,r)}return t},"applyPaddingToText"),My=o((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===
|
|
151
|
-
`;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>My(s,{parentRole:e.internal_accessibility?.role,skipStaticElements:t.skipStaticElements})).filter(Boolean).join(r)}if(e.internal_accessibility){let{role:r,state:i}=e.internal_accessibility;if(i){let a=Object.keys(i).filter(c=>i[c]).join(", ");a&&(n=`(${a}) ${n}`)}r&&r!==t.parentRole&&(n=`${r}: ${n}`)}return n},"renderNodeToScreenReaderOutput"),
|
|
152
|
-
`))r=Math.max(r,this.getStringWidth(i));n=r,this.blockWidths.set(t,n)}return n}},
|
|
147
|
+
`);else throw e}var EL=o((e,t)=>{if(e===t)return;if(!e)return t;let n={},r=!1;for(let i of Object.keys(e))(!t||!Object.hasOwn(t,i))&&(n[i]=void 0,r=!0);if(t)for(let i of Object.keys(t))t[i]!==e[i]&&(n[i]=t[i],r=!0);return r?n:void 0},"diff"),ML=o(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),Ry=_L,zC,AL={name:void 0,version:void 0},uu=_K({getRootHostContext:o(()=>({isInsideText:!1}),"getRootHostContext"),prepareForCommit:o(()=>null,"prepareForCommit"),preparePortalMount:o(()=>null,"preparePortalMount"),clearContainer:o(()=>!1,"clearContainer"),resetAfterCommit(e){if(typeof e.onComputeLayout=="function"&&e.onComputeLayout(),e.isStaticDirty){e.isStaticDirty=!1,typeof e.onImmediateRender=="function"&&e.onImmediateRender();return}typeof e.onRender=="function"&&e.onRender()},getChildHostContext(e,t){let n=e.isInsideText,r=t==="ink-text"||t==="ink-virtual-text";return n===r?e:{isInsideText:r}},shouldSetTextContent:o(()=>!1,"shouldSetTextContent"),createInstance(e,t,n,r){if(r.isInsideText&&e==="ink-box")throw new Error("<Box> can\u2019t be nested inside <Text> component");let i=e==="ink-text"&&r.isInsideText?"ink-virtual-text":e,s=Ty(i);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){GC(s,c),s.yogaNode&&KC(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_static"){zC=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}VC(s,a,c)}return s},createTextInstance(e,t,n){if(!n.isInsideText)throw new Error(`Text string "${e}" must be rendered inside <Text> component`);return vL(e)},resetTextContent(){},hideTextInstance(e){ip(e,"")},unhideTextInstance(e,t){ip(e,t)},getPublicInstance:o(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(kL.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(kL.DISPLAY_FLEX)},appendInitialChild:vy,appendChild:vy,insertBefore:UC,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:js.unstable_scheduleCallback,cancelCallback:js.unstable_cancelCallback,shouldYield:js.unstable_shouldYield,now:js.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:o(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:o(()=>null,"getInstanceFromScope"),appendChildToContainer:vy,insertInContainerBefore:UC,removeChildFromContainer(e,t){rp(e,t),ML(t.yogaNode)},commitUpdate(e,t,n,r){zC&&e.internal_static&&(zC.isStaticDirty=!0);let i=EL(n,r),s=EL(n.style,r.style);if(!(!i&&!s)){if(i)for(let[a,c]of Object.entries(i)){if(a==="style"){GC(e,c);continue}if(a==="internal_transform"){e.internal_transform=c;continue}if(a==="internal_static"){e.internal_static=!0;continue}VC(e,a,c)}s&&e.yogaNode&&KC(e.yogaNode,s)}},commitTextUpdate(e,t,n){ip(e,n)},removeChild(e,t){rp(e,t),ML(t.yogaNode)},setCurrentUpdatePriority(e){Ry=e},getCurrentUpdatePriority:o(()=>Ry,"getCurrentUpdatePriority"),resolveUpdatePriority(){return Ry!==_L?Ry:PK},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:LK(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:AL.name,rendererVersion:AL.version});import jK from"widest-line";import UK from"indent-string";import Us from"yoga-layout";import ky from"yoga-layout";var OK=o(e=>e.getComputedWidth()-e.getComputedPadding(ky.EDGE_LEFT)-e.getComputedPadding(ky.EDGE_RIGHT)-e.getComputedBorder(ky.EDGE_LEFT)-e.getComputedBorder(ky.EDGE_RIGHT),"getMaxWidth"),PL=OK;import HK from"cli-boxes";import Ey from"chalk";import Go from"chalk";var $K=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,NK=/^ansi256\(\s?(\d+)\s?\)$/,DK=o(e=>e in Go,"isNamedColor"),BK=o((e,t,n)=>{if(!t)return e;if(DK(t)){if(n==="foreground")return Go[t](e);let r=`bg${t[0].toUpperCase()+t.slice(1)}`;return Go[r](e)}if(t.startsWith("#"))return n==="foreground"?Go.hex(t)(e):Go.bgHex(t)(e);if(t.startsWith("ansi256")){let r=NK.exec(t);if(!r)return e;let i=Number(r[1]);return n==="foreground"?Go.ansi256(i)(e):Go.bgAnsi256(i)(e)}if(t.startsWith("rgb")){let r=$K.exec(t);if(!r)return e;let i=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?Go.rgb(i,s,a)(e):Go.bgRgb(i,s,a)(e)}return e},"colorize"),rc=BK;var FK=o((e,t,n,r)=>{if(n.style.borderStyle){let i=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?HK[n.style.borderStyle]:n.style.borderStyle,c=n.style.borderTopColor??n.style.borderColor,l=n.style.borderBottomColor??n.style.borderColor,u=n.style.borderLeftColor??n.style.borderColor,d=n.style.borderRightColor??n.style.borderColor,p=n.style.borderTopDimColor??n.style.borderDimColor,m=n.style.borderBottomDimColor??n.style.borderDimColor,h=n.style.borderLeftDimColor??n.style.borderDimColor,g=n.style.borderRightDimColor??n.style.borderDimColor,S=n.style.borderTop!==!1,T=n.style.borderBottom!==!1,x=n.style.borderLeft!==!1,I=n.style.borderRight!==!1,v=i-(x?1:0)-(I?1:0),k=S?rc((x?a.topLeft:"")+a.top.repeat(v)+(I?a.topRight:""),c,"foreground"):void 0;S&&p&&(k=Ey.dim(k));let _=s;S&&(_-=1),T&&(_-=1);let H=(rc(a.left,u,"foreground")+`
|
|
148
|
+
`).repeat(_);h&&(H=Ey.dim(H));let $=(rc(a.right,d,"foreground")+`
|
|
149
|
+
`).repeat(_);g&&($=Ey.dim($));let P=T?rc((x?a.bottomLeft:"")+a.bottom.repeat(v)+(I?a.bottomRight:""),l,"foreground"):void 0;T&&m&&(P=Ey.dim(P));let z=S?1:0;k&&r.write(e,t,k,{transformers:[]}),x&&r.write(e,t+z,H,{transformers:[]}),I&&r.write(e+i-1,t+z,$,{transformers:[]}),P&&r.write(e,t+s-1,P,{transformers:[]})}},"renderBorder"),LL=FK;var WK=o((e,t,n,r)=>{if(!n.style.backgroundColor)return;let i=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=n.style.borderStyle&&n.style.borderLeft!==!1?1:0,c=n.style.borderStyle&&n.style.borderRight!==!1?1:0,l=n.style.borderStyle&&n.style.borderTop!==!1?1:0,u=n.style.borderStyle&&n.style.borderBottom!==!1?1:0,d=i-a-c,p=s-l-u;if(!(d>0&&p>0))return;let m=rc(" ".repeat(d),n.style.backgroundColor,"background");for(let h=0;h<p;h++)r.write(e+a,t+l+h,m,{transformers:[]})},"renderBackground"),OL=WK;var VK=o((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),i=n.getComputedTop();t=`
|
|
150
|
+
`.repeat(i)+UK(t,r)}return t},"applyPaddingToText"),My=o((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===Us.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=np(e);else if(e.nodeName==="ink-box"||e.nodeName==="ink-root"){let r=e.style.flexDirection==="row"||e.style.flexDirection==="row-reverse"?" ":`
|
|
151
|
+
`;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>My(s,{parentRole:e.internal_accessibility?.role,skipStaticElements:t.skipStaticElements})).filter(Boolean).join(r)}if(e.internal_accessibility){let{role:r,state:i}=e.internal_accessibility;if(i){let a=Object.keys(i).filter(c=>i[c]).join(", ");a&&(n=`(${a}) ${n}`)}r&&r!==t.parentRole&&(n=`${r}: ${n}`)}return n},"renderNodeToScreenReaderOutput"),qC=null,XC=null;function $L(){qC=null,XC=null}o($L,"resetScrollHint");function NL(){return qC}o(NL,"getScrollHint");function DL(){return XC}o(DL,"getScrollRepaint");var BL=o((e,t,n)=>{let{offsetX:r=0,offsetY:i=0,transformers:s=[],skipStaticElements:a}=n;if(a&&e.internal_static)return;let{yogaNode:c}=e;if(c){if(c.getDisplay()===Us.DISPLAY_NONE)return;let l=r+c.getComputedLeft(),u=i+c.getComputedTop(),d=s;if(typeof e.internal_transform=="function"&&(d=[e.internal_transform,...s]),e.nodeName==="ink-text"){let h=np(e);if(h.length>0){let g=jK(h),S=PL(c);if(g>S){let T=e.style.textWrap??"wrap";h=Cy(h,S,T)}h=VK(e,h),t.write(l,u,h,{transformers:d})}return}let p=!1,m=0;if(e.nodeName==="ink-box"){OL(l,u,e,t),LL(l,u,e,t);let h=e.style.overflowX??e.style.overflow,g=e.style.overflowY??e.style.overflow,S=h==="hidden"||h==="scroll",T=g==="hidden"||g==="scroll";if(g==="scroll"){let x=c.getComputedBorder(Us.EDGE_TOP),I=c.getComputedBorder(Us.EDGE_BOTTOM),v=Math.max(0,c.getComputedHeight()-x-I),k=e.attributes?.virtualScrollWindowed===!0,_=e.childNodes[0],H=Math.max(0,Math.floor(k?e.attributes?.scrollHeight??0:_?.yogaNode?.getComputedHeight()??e.attributes?.scrollHeight??0)),$=typeof e.scrollHeight=="number"?e.scrollHeight:H,P=hh({rawScrollTop:e.scrollTop??e.attributes?.scrollTop??0,contentHeight:H,viewportHeight:v,previousScrollHeight:$,stickyScroll:e.stickyScroll??!!e.attributes?.stickyScroll,clampMin:e.attributes?.scrollClampMin,clampMax:e.attributes?.scrollClampMax,virtualScrollWindowed:k,inWindowScrollTop:e.attributes?.inWindowScrollTop,previousAppliedScrollTop:e.appliedScrollTop,regionTop:u+x});e.scrollHeight=P.scrollHeight,e.scrollViewportHeight=v,e.scrollViewportTop=P.viewportTop,e.appliedScrollTop=P.appliedScrollTop,P.scrollHint&&(qC=P.scrollHint,Math.trunc(Number(e.attributes?.pendingScrollDelta??0))!==0&&(XC={top:P.scrollHint.top,bottom:P.scrollHint.bottom})),e.attributes&&e.attributes.pendingScrollDelta&&(e.attributes.pendingScrollDelta=0),e.scrollTop=P.scrollTop,m=P.scrollOffsetY}if(S||T){let x=S?l+c.getComputedBorder(Us.EDGE_LEFT):void 0,I=S?l+c.getComputedWidth()-c.getComputedBorder(Us.EDGE_RIGHT):void 0,v=T?u+c.getComputedBorder(Us.EDGE_TOP):void 0,k=T?u+c.getComputedHeight()-c.getComputedBorder(Us.EDGE_BOTTOM):void 0;t.clip({x1:x,x2:I,y1:v,y2:k}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let h of e.childNodes)BL(h,t,{offsetX:l,offsetY:u-m,transformers:d,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),YC=BL;import GK from"slice-ansi";import KK from"string-width";import{styledCharsFromTokens as zK,styledCharsToString as qK,tokenize as XK}from"@alcalzone/ansi-tokenize";var JC=class{static{o(this,"OutputCaches")}widths=new Map;blockWidths=new Map;styledChars=new Map;getStyledChars(t){let n=this.styledChars.get(t);return n===void 0&&(n=zK(XK(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=KK(t),this.widths.set(t,n)),n}getWidestLine(t){let n=this.blockWidths.get(t);if(n===void 0){let r=0;for(let i of t.split(`
|
|
152
|
+
`))r=Math.max(r,this.getStringWidth(i));n=r,this.blockWidths.set(t,n)}return n}},du=class{static{o(this,"Output")}width;height;operations=[];caches=new JC;constructor(t){let{width:n,height:r}=t;this.width=n,this.height=r}write(t,n,r,i){let{transformers:s}=i;r&&this.operations.push({type:"write",x:t,y:n,text:r,transformers:s})}clip(t){this.operations.push({type:"clip",clip:t})}unclip(){this.operations.push({type:"unclip"})}getGrid(){let t=[];for(let r=0;r<this.height;r++){let i=[];for(let s=0;s<this.width;s++)i.push({type:"char",value:" ",fullWidth:!1,styles:[]});t.push(i)}let n=[];for(let r of this.operations)if(r.type==="clip"&&n.push(r.clip),r.type==="unclip"&&n.pop(),r.type==="write"){let{text:i,transformers:s}=r,{x:a,y:c}=r,l=i.split(`
|
|
153
153
|
`),u=n.at(-1);if(u){let p=typeof u?.x1=="number"&&typeof u?.x2=="number",m=typeof u?.y1=="number"&&typeof u?.y2=="number";if(p){let h=this.caches.getWidestLine(i);if(a+h<u.x1||a>u.x2)continue}if(m){let h=l.length;if(c+h<u.y1||c>u.y2)continue}if(p&&(l=l.map(h=>{let g=a<u.x1?u.x1-a:0,S=this.caches.getStringWidth(h),T=a+S>u.x2?u.x2-a:S;return GK(h,g,T)}),a<u.x1&&(a=u.x1)),m){let h=c<u.y1?u.y1-c:0,g=l.length,S=c+g>u.y2?u.y2-c:g;l=l.slice(h,S),c<u.y1&&(c=u.y1)}}let d=0;for(let[p,m]of l.entries()){let h=t[c+d];if(!h)continue;for(let T of s)m=T(m,p);let g=this.caches.getStyledChars(m),S=a;for(let T of g){h[S]=T;let x=Math.max(1,this.caches.getStringWidth(T.value));if(x>1)for(let I=1;I<x;I++)h[S+I]={type:"char",value:"",fullWidth:!1,styles:T.styles};S+=x}d++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let i=r.filter(s=>s!==void 0);return qK(i).trimEnd()}).join(`
|
|
154
154
|
`),height:t.length}}};var YK=o((e,t,n)=>{if(e.yogaNode){if(t){let p=My(e,{skipStaticElements:!0}),m=p===""?0:p.split(`
|
|
155
155
|
`).length,h="";return e.staticNode&&(h=My(e.staticNode,{skipStaticElements:!1})),{output:p,outputHeight:m,staticOutput:h?`${h}
|
|
156
|
-
`:"",frame:void 0}}let r=new
|
|
157
|
-
`:"",frame:d}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),
|
|
158
|
-
`&&(i+=l)};let s,a=
|
|
156
|
+
`:"",frame:void 0}}let r=new du({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});$L(),YC(e,r,{skipStaticElements:!0});let i;e.staticNode?.yogaNode&&(i=new du({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),YC(e.staticNode,i,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=wh(r),l=n?.columns??e.yogaNode.getComputedWidth(),u=n?.rows??e.yogaNode.getComputedHeight(),d={screen:c,viewport:{width:l,height:u},cursor:{x:0,y:c.height,visible:!0},scrollHint:NL(),scrollRepaint:DL()};return{output:s,outputHeight:a,staticOutput:i?`${i.get().output}
|
|
157
|
+
`:"",frame:d}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),QC=YK;var ZK=o((e,t)=>{let n=t?.columns??80,r=Ty("ink-root"),i="";r.onComputeLayout=()=>{r.yogaNode.setWidth(n),r.yogaNode.calculateLayout(void 0,void 0,JK.DIRECTION_LTR)},r.onImmediateRender=()=>{let{staticOutput:l}=QC(r,!1);l&&l!==`
|
|
158
|
+
`&&(i+=l)};let s,a=uu.createContainer(r,QK,null,!1,null,"render-to-string",l=>{s??=l},()=>{},()=>{},()=>{}),c=!1;try{uu.updateContainerSync(e,a,null,()=>{}),uu.flushSyncWork();let{output:l}=QC(r,!1);if(uu.updateContainerSync(null,a,null,()=>{}),uu.flushSyncWork(),c=!0,r.yogaNode.free(),s!==void 0)throw s instanceof Error?s:new Error(String(s));let u=i.endsWith(`
|
|
159
159
|
`)?i.slice(0,-1):i;return u&&l?u+`
|
|
160
|
-
`+l:u||l}finally{if(!c&&r.yogaNode)try{r.yogaNode.freeRecursive()}catch{}}},"renderToString"),HL=ZK;var ez="\x1B[0m";function WL(e,t){if(e.length===0)return"";let n=FL(O,{flexDirection:"column",children:e.map(s=>FL(
|
|
160
|
+
`+l:u||l}finally{if(!c&&r.yogaNode)try{r.yogaNode.freeRecursive()}catch{}}},"renderToString"),HL=ZK;var ez="\x1B[0m";function WL(e,t){if(e.length===0)return"";let n=FL(O,{flexDirection:"column",children:e.map(s=>FL(Px,{section:s,theme:t.theme,animateSpinners:!1},s.key))}),r=HL(n,{columns:t.width});return(r.endsWith(`
|
|
161
161
|
`)?r.slice(0,-1):r)+ez+`
|
|
162
|
-
`}o(WL,"renderFinalizedSectionsToScrollbackText");function jL(e){return e.enabled&&!e.useRendererViewportShell&&!e.isTranscriptMode&&e.hasCommitHandle}o(jL,"isInlineLedgerActive");function UL(e){if(!e.active)return{kind:"reset"};if(!e.hasCommitHandle)return{kind:"skip"};let t=!e.wasActive,n=t?
|
|
162
|
+
`}o(WL,"renderFinalizedSectionsToScrollbackText");function jL(e){return e.enabled&&!e.useRendererViewportShell&&!e.isTranscriptMode&&e.hasCommitHandle}o(jL,"isInlineLedgerActive");function UL(e){if(!e.active)return{kind:"reset"};if(!e.hasCommitHandle)return{kind:"skip"};let t=!e.wasActive,n=t?cu:e.prior,{plan:r,nextState:i}=mL({bannerSection:e.bannerSection??null,finalizedSections:e.finalizedSections,width:e.width},e.identify??OE,n);return t?r.kind==="none"?e.forceRebuild?{kind:"commit",mode:"rebuild",sections:e.finalizedSections,nextState:i}:{kind:"noop",nextState:i}:{kind:"commit",mode:e.forceRebuild?"rebuild":"append",sections:r.sections,nextState:i}:r.kind==="none"?{kind:"noop",nextState:i}:{kind:"commit",mode:r.kind,sections:r.sections,nextState:i}}o(UL,"computeInlineLedgerStep");function VL(e,t,n){return e.kind==="noop"?{state:e.nextState,wasActive:!0,owns:n}:e.kind==="commit"?t.committed?{state:e.nextState,wasActive:!0,owns:t.hadContent}:{state:cu,wasActive:!1,owns:!0}:{state:cu,wasActive:!1,owns:n}}o(VL,"resolveInlineLedgerState");function GL(e,t){return t?{...e,staticSections:[]}:e}o(GL,"gateInlinePromptModel");function tz(e){switch(e.type){case"tool_group":return e.tools.map(t=>{let n=[t.name];return typeof t.output=="string"&&n.push(nn(t.output)),t.error&&n.push(nn(t.error)),n.join(`
|
|
163
163
|
`)}).join(`
|
|
164
|
-
`);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return nn(e.text);default:return""}}o(tz,"buildSearchText");function nz(e,t){let n=e.replace(/\s+/g," ").trim();if(!n)return"";let r=n.toLowerCase(),i=t.toLowerCase(),s=r.indexOf(i);if(s===-1)return n.slice(0,120);let a=Math.max(0,s-40),c=Math.min(n.length,s+t.length+60),l=a>0?"...":"",u=c<n.length?"...":"";return`${l}${n.slice(a,c)}${u}`}o(nz,"buildExcerpt");function KL(e){return e.map((t,n)=>({itemId:t.id,itemIndex:n,searchText:tz(t)}))}o(KL,"createTranscriptSearchIndex");function zL(e,t){let n=t.trim().toLowerCase();return n?e.flatMap(r=>{let i=r.searchText;return i.toLowerCase().includes(n)?[{itemId:r.itemId,itemIndex:r.itemIndex,excerpt:nz(i,t.trim())}]:[]}):[]}o(zL,"searchTranscriptIndex");function
|
|
164
|
+
`);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return nn(e.text);default:return""}}o(tz,"buildSearchText");function nz(e,t){let n=e.replace(/\s+/g," ").trim();if(!n)return"";let r=n.toLowerCase(),i=t.toLowerCase(),s=r.indexOf(i);if(s===-1)return n.slice(0,120);let a=Math.max(0,s-40),c=Math.min(n.length,s+t.length+60),l=a>0?"...":"",u=c<n.length?"...":"";return`${l}${n.slice(a,c)}${u}`}o(nz,"buildExcerpt");function KL(e){return e.map((t,n)=>({itemId:t.id,itemIndex:n,searchText:tz(t)}))}o(KL,"createTranscriptSearchIndex");function zL(e,t){let n=t.trim().toLowerCase();return n?e.flatMap(r=>{let i=r.searchText;return i.toLowerCase().includes(n)?[{itemId:r.itemId,itemIndex:r.itemIndex,excerpt:nz(i,t.trim())}]:[]}):[]}o(zL,"searchTranscriptIndex");function ZC(e,t,n){return e<=0?0:t<0?n==="next"?0:e-1:n==="next"?(t+1)%e:t<=0?e-1:t-1}o(ZC,"stepTranscriptSearchMatch");function qL(e,t){return e.length===0?void 0:t<0?`${e.length} transcript matches`:`${Math.min(Math.max(t,0),e.length-1)+1}/${e.length} transcript matches`}o(qL,"buildTranscriptSearchSummary");function XL(e,t,n){if(t.length===0||!n)return 0;let r=t.findIndex(a=>a.itemId===n);if(r>=0)return r;let i=e.find(a=>a.itemId===n)?.itemIndex;if(i===void 0)return 0;let s=t.findIndex(a=>a.itemIndex>=i);return s>=0?s:0}o(XL,"resolveTranscriptSearchMatchIndex");function YL(e){if(e)switch(e.type){case"assistant":return{summary:"Assistant response",kindLabel:"assistant"};case"user":return{summary:"User prompt",kindLabel:"user"};case"system":return{summary:"System note",kindLabel:"system"};case"thinking":return{summary:"Thinking trace",kindLabel:"thinking"};case"tool_group":return{summary:rz(e),kindLabel:"tool"};case"error":return{summary:"Error entry",kindLabel:"error"};case"info":return{summary:"Info note",kindLabel:"info"};case"hint":return{summary:"Hint",kindLabel:"hint"};default:return{summary:"Transcript entry",kindLabel:"entry"}}}o(YL,"buildTranscriptSelectionSummary");function rz(e){return e.tools.length===1?`Tool call: ${e.tools[0]?.name??"tool"}`:`Tool group: ${e.tools.length} calls`}o(rz,"summarizeToolGroup");function JL(e){return e.map(t=>t.id)}o(JL,"getSelectableTranscriptItemIds");function QL(e,t,n){if(e.length===0)return;if(!t)return n==="next"?e[0]:e[e.length-1];let r=e.indexOf(t);return r===-1?n==="next"?e[0]:e[e.length-1]:n==="next"?e[Math.min(e.length-1,r+1)]:e[Math.max(0,r-1)]}o(QL,"moveTranscriptSelection");function Ay(e){if(e)switch(e.type){case"tool_group":return e.tools.map(t=>{let n=[`Tool: ${t.name}`,`Status: ${t.status}`];return(t.inputText!==void 0||t.input)&&n.push(`Input: ${t.inputText??JSON.stringify(t.input)}`),typeof t.output=="string"&&t.output.trim()&&n.push(`Output: ${nn(t.output)}`),t.error&&n.push(`Error: ${nn(t.error)}`),n.join(`
|
|
165
165
|
`)}).join(`
|
|
166
166
|
|
|
167
167
|
`);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return nn(e.text);default:return}}o(Ay,"buildTranscriptCopyText");function ZL(e){if(!e||e.type!=="tool_group")return;let t=e.tools.map(n=>{if(!n.input&&n.inputText===void 0)return;let r=n.inputText??(typeof n.input=="string"?n.input:JSON.stringify(n.input,null,2));if(r?.trim())return[`Tool: ${n.name}`,r].join(`
|
|
168
168
|
`)}).filter(n=>!!n);return t.length>0?t.join(`
|
|
169
169
|
|
|
170
|
-
`):void 0}o(ZL,"buildTranscriptToolInputCopyText");import{useCallback as op,useRef as iz,useState as eO}from"react";function tO(e){let{state:t,ownsViewport:n,isAwaitingUserInteraction:r,isHistorySearchActive:i,isTranscriptMode:s,historySearchQuery:a}=e,c=tL(t),l;if(t.supportsStickyPrompt&&t.stickyPromptVisible)if(i){let d=a.trim();l={visible:!0,label:d?`Searching transcript for "${d}"`:"Searching transcript"}}else s?l={visible:!0,label:"Transcript Mode"}:r&&(l={visible:!0,label:"Interaction active"});let u;return n&&t.supportsViewportChrome&&(s&&t.pendingLiveUpdates>0?u={visible:!0,label:t.pendingLiveUpdates===1?"1 new update":`${t.pendingLiveUpdates} new updates`,hint:"Ctrl+O",tone:"accent"}:!s&&t.jumpToLatestAvailable&&(u={visible:!0,label:"Back to live",hint:"End",tone:"accent"})),{browseHintText:c,stickyHeader:l,jumpToLatest:u}}o(tO,"buildTranscriptChromeModel");function nO(e){return Math.max(1,e-2)}o(nO,"resolveTranscriptPageSize");function rO(e){return Math.max(3,Math.floor(e/4))}o(rO,"resolveTranscriptWheelStep");function oz(e,t){return Math.max(0,e+t)}o(oz,"incrementTranscriptScrollOffset");function iO(e,t,n){let r=Math.max(0,t-n);return Math.min(Math.max(0,e),r)}o(iO,"clampTranscriptScrollOffset");function oO(){let e=iz(null),[t,n]=eO(0),[r,i]=eO(!0),s=op(d=>{n(Math.max(0,d))},[]),a=op(d=>{i(d)},[]),c=op(d=>{if(e.current){e.current.scrollTo(d);return}n(Math.max(0,d)),i(d===0)},[]),l=op(d=>{if(e.current){e.current.scrollBy(d);return}n(p=>oz(p,d)),i(!1)},[]),u=op(()=>{if(e.current){e.current.scrollToBottom();return}n(0),i(!0)},[]);return{scrollRef:e,scrollOffset:t,sticky:r,setScrollOffset:n,setSticky:i,handleScrollTopChange:s,handleStickyChange:a,scrollTo:c,scrollBy:l,scrollToBottom:u}}o(oO,"useTranscriptViewportScrollController");function sO(e){let{items:t,renderModel:n,terminalWidth:r,transcriptMaxLines:i,viewportRows:s,itemId:a,visibleRows:c,expandedItemKeys:l,showDetailedTools:u=!1}=e;if(!a||c.length===0)return!1;let p=(n?.sections??
|
|
171
|
-
`)}}o(pO,"buildTranscriptScreenSelection");function mO(e){if(!e)return;let t=`${e.charCount} char${e.charCount===1?"":"s"}`;return e.rowCount<=1?`Selected ${t}`:`Selected ${t} across ${e.rowCount} lines`}o(mO,"buildTranscriptScreenSelectionSummary");function hO(e,t){return e.rows.length===0?0:t<e.topRow?1:t>e.bottomRow?-1:0}o(hO,"resolveTranscriptDragEdgeScrollDirection");var lz="Other...";function _y(e){return e?e.map(t=>({label:t.label,value:t.value,description:t.description})):[]}o(_y,"toSelectOptions");function rT(e,t){return t.kind==="input"||t.allowCustomInput===!1||e.some(n=>n.value===pr)?e:[...e,{label:t.customInputLabel??lz,value:pr}]}o(rT,"appendCustomInputOption");function iT(e){return e.question}o(iT,"getAskUserDialogTitle");function gO(e){return!!e.activity}o(gO,"shouldRenderPromptActivityInFooter");function uz(e){switch(e){case"confirm":return Re("waiting.confirm");case"select":return Re("waiting.select");case"input":return Re("waiting.input")}}o(uz,"formatPromptWaitingText");function yO(e){return e.waitingReason==="confirm"?Re("placeholder.confirm"):e.waitingReason==="select"?Re("placeholder.select"):e.waitingReason==="input"?Re("placeholder.input"):e.isLoading?e.canQueueFollowUps?Re("placeholder.queue"):Re("placeholder.busy"):Re("placeholder.idle")}o(yO,"buildPromptPlaceholderText");function wO(e){return e.isTranscriptMode?void 0:e.waitingReason?{kind:"waiting",text:uz(e.waitingReason),showSpinner:!1}:e.workflowBuilderMessage?{kind:"busy",text:e.workflowBuilderMessage,showSpinner:!0}:e.backgroundWorkflowMessage?{kind:"busy",text:e.backgroundWorkflowMessage,showSpinner:!0}:e.isLoading?{kind:"busy",text:Px({activeToolCount:e.streamingState.activeToolCalls.filter(n=>n.status===K.Executing).length,currentTool:e.streamingState.currentTool,isThinkingActive:e.streamingState.isThinking,thinkingCharCount:e.streamingState.thinkingCharCount,isCompacting:e.streamingState.isCompacting,toolInputCharCount:e.streamingState.toolInputCharCount,toolInputContent:e.streamingState.toolInputContent,managedPhase:e.managedState?.phase,managedHarnessProfile:e.managedState?.harnessProfile,managedWorkerTitle:e.managedState?.workerTitle})??"Thinking",showSpinner:!0}:void 0}o(wO,"buildPromptActivityViewModel");function SO(e,t,n){if(!e)return;let r=e.userOverrideContextWindow??e.contextWindow,i=e.reservedResponseTokens;try{let s=n(t.provider);e.userOverrideContextWindow===void 0&&(r=s?.getEffectiveContextWindow?.(t.model)??r),i=s?.getEffectiveMaxOutputTokens?.(t.model)??i}catch{}return r===e.contextWindow&&i===e.reservedResponseTokens?e:{...e,contextWindow:r,reservedResponseTokens:i}}o(SO,"resolveEffectiveCompactionInfo");function xO(e){let t=e.clientActivity,n=t?.parentContextTokens??(t?.context?.scope==="parent"?t.context.tokenCount:void 0)??e.parentContextTokens,r=t?.context?.tokenCount??t?.usage?.totalTokens,i=e.isLoading?t?.context?.tokenCount??n:e.agentMode==="sa"?n:e.parentContextTokens??n??r,s=e.isLoading?t?.context?.scope??"parent":"parent",a=e.isLoading&&t?.contextBudget?.scope===s?t.contextBudget:void 0,c=a&&i!==void 0?{currentTokens:i,contextWindow:a.contextWindow,triggerPercent:a.compaction.triggerPercent,triggerTokens:a.compaction.absoluteTriggerTokens,reservedResponseTokens:a.reservedResponseTokens,hostBudget:!0,effectiveTriggerTokens:a.compaction.triggerTokens,scope:s}:s==="parent"?e.contextUsage:void 0,l=c!==void 0,u=e.isTranscriptMode?void 0:t,d=u?.managedTask,p=d?.phase,m=d?{phase:p==="starting"||p==="routing"||p==="preflight"||p==="round"||p==="worker"||p==="upgrade"||p==="verifying"||p==="completed"?p:void 0,workerTitle:d.workerTitle,round:d.round,maxRounds:d.maximumRounds,harnessProfile:d.harnessProfile,globalWorkBudget:d.globalWorkBudget,budgetUsage:d.budgetUsage,budgetApprovalRequired:d.budgetApprovalRequired,idleWaiting:d.idleWaiting,idleWaitingPendingCount:d.pendingChildren}:e.managedState;return{sessionId:e.sessionId,hostSettings:e.hostSettings,permissionMode:e.permissionMode,agentMode:e.agentMode,workMode:e.workMode,provider:e.provider,model:e.model,currentTool:e.streamingState.currentTool,activeToolCount:e.streamingState.activeToolCalls.filter(h=>h.status===K.Executing).length,thinking:e.thinking,reasoningMode:e.reasoningMode,effort:e.effort,reasoningEffortLabel:e.reasoningEffortLabel,reasoningCapability:e.reasoningCapability,isThinkingActive:e.streamingState.isThinking,thinkingCharCount:e.streamingState.thinkingCharCount,toolInputCharCount:e.isTranscriptMode?e.streamingState.toolInputCharCount:0,toolInputContent:e.isTranscriptMode?e.streamingState.toolInputContent:"",currentIteration:u?.iteration?.current??e.streamingState.currentIteration,maxIter:u?.iteration?.maximum??e.maxIter,contextUsage:c&&i!==void 0?{...c,currentTokens:i}:c,contextTokens:!l&&i!==void 0?{currentTokens:i,scope:s}:void 0,tokenUsage:t?.usage?{input:t.usage.inputTokens,output:t.usage.outputTokens,total:t.usage.totalTokens}:void 0,learning:e.learning,isCompacting:u?.compacting??e.streamingState.isCompacting,showBusyStatus:!1,managedPhase:e.isLoading?m?.phase:void 0,managedHarnessProfile:e.isLoading?m?.harnessProfile:void 0,managedWorkerTitle:e.isLoading?m?.workerTitle:void 0,managedRound:e.isLoading?m?.round:void 0,managedMaxRounds:e.isLoading?m?.maxRounds:void 0,managedGlobalWorkBudget:e.isLoading?m?.globalWorkBudget:void 0,managedBudgetUsage:e.isLoading?m?.budgetUsage:void 0,managedBudgetApprovalRequired:e.isLoading?m?.budgetApprovalRequired:void 0,managedIdleWaiting:e.isLoading?m?.idleWaiting:void 0,managedIdleWaitingPendingCount:e.isLoading?m?.idleWaitingPendingCount:void 0}}o(xO,"buildSurfaceStatusBarProps");function IO(e){let t=BC(e.state),n=t?Iy(e.state,e.selectableItemIds,e.selectedItemId):void 0,r=n?e.selectableItemIds.indexOf(n):-1;return{selectionEnabled:t,selectedItemId:n,selectedItemIndex:r,position:n?{current:Math.max(1,r+1),total:e.selectableItemIds.length}:void 0,detailState:n&&e.isExpanded?"expanded":"compact",copyCapabilities:{message:t&&!!n,toolInput:t&&!!n&&e.selectedItemType==="tool_group",copyOnSelect:t&&eL(e.state)},toggleDetail:t&&!!n,navigationCapabilities:{selection:t&&!!n&&e.selectableItemIds.length>0}}}o(IO,"buildTranscriptSelectionRuntimeState");function CO(e){if(!(!e.runtime.selectionEnabled||!e.runtime.selectedItemId))return{itemSummary:e.itemSummary?.summary,itemKind:e.itemSummary?.kindLabel,position:e.runtime.position,detailState:e.runtime.detailState,copyCapabilities:e.runtime.copyCapabilities,toggleDetail:e.runtime.toggleDetail,navigationCapabilities:e.runtime.navigationCapabilities}}o(CO,"buildTranscriptSelectionViewModel");function TO(e){return{query:e.query,matches:e.matches,currentMatchIndex:e.currentMatchIndex,anchorItemId:e.anchorItemId,statusText:e.useOverlaySurface?void 0:e.statusText}}o(TO,"buildTranscriptSearchViewModel");function dz(e,t){return e===0?0:t<0?-1:Math.min(t,e-1)}o(dz,"clampTranscriptSearchSelectedIndex");function fz(e){return e.isHistorySearchActive?e.historySearchQuery.trim()?e.matches.length===0?"No matches yet":e.clampedSelectedIndex<0?`${e.matches.length} matches | use n/N or Enter to jump`:e.matches[e.clampedSelectedIndex]?.excerpt:"Type to search transcript":void 0}o(fz,"buildTranscriptSearchDetailText");function vO(e){let t=dz(e.matches.length,e.selectedIndex),n=qL(e.matches,t),r=fz({isHistorySearchActive:e.isHistorySearchActive,historySearchQuery:e.historySearchQuery,matches:e.matches,clampedSelectedIndex:t});return{clampedSelectedIndex:t,statusText:n,detailText:r,searchState:TO({query:e.historySearchQuery,matches:e.matches,currentMatchIndex:t,anchorItemId:e.anchorItemId,statusText:n,useOverlaySurface:e.useOverlaySurface})}}o(vO,"buildTranscriptSearchChrome");function pz(e=!1){return`\u2190/\u2192 enter select mode | Ctrl+E ${e?"collapse":"show all"} | Mouse drag selects text`}o(pz,"buildDefaultTranscriptSecondaryText");function bO(e){let t=[];return e.historySearchQuery.trim().length>0&&e.isHistorySearchActive&&e.historySearchMatchCount===0&&t.push({id:"search-empty",text:"No transcript matches yet",tone:"info"}),e.pendingInputCount>=e.maxPendingInputs&&t.push({id:"queue-full",text:`Queued follow-up limit reached (${e.maxPendingInputs})`,tone:"warning"}),t}o(bO,"buildFooterNotifications");function RO(e){let t=[];return e.historySearchQuery.trim()&&t.push(`Search: ${e.historySearchQuery.trim()}`),e.pendingInputCount>0&&t.push(`Queued follow-ups: ${e.pendingInputCount}`),t}o(RO,"buildBaseFooterNotices");function kO(e){if(e.inputText.trim()&&(e.isTranscriptMode||e.isHistorySearchActive))return"Draft preserved while viewing transcript"}o(kO,"buildStashNoticeText");function EO(e){return[...e]}o(EO,"buildPromptFooterNotices");function mz(e){let n=(e.isHistorySearchActive?[e.historySearchDetailText]:[e.selectionSummary,e.actionSummary]).filter(r=>!!(r&&r.trim().length>0));return n.length===0?pz(e.showAllActive):n.join(" | ")}o(mz,"buildTranscriptFooterSecondaryText");function hz(e){let t=[];return e&&t.push(e),t}o(hz,"buildTranscriptFooterBudgetNotices");function MO(e){let t=e.selectionState?.copyCapabilities,n=e.selectionState?.navigationCapabilities,i=mO(e.textSelection),s=e.textSelection?Ll({copyMessage:!0,copyToolInput:!1,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!1,selectionNavigation:!1,matchNavigation:!1,dismissAction:"clear"}):e.selectionState?.itemSummary?Ll({copyMessage:!!t?.message,copyToolInput:!!t?.toolInput,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!!e.selectionState?.toggleDetail,selectionNavigation:!!n?.selection,matchNavigation:!1,dismissAction:"clear"}):void 0,a=mz({isHistorySearchActive:e.isHistorySearchActive,historySearchDetailText:e.historySearchDetailText,selectionSummary:i,actionSummary:s,showAllActive:e.showAllActive,baseFooterNotices:e.baseFooterNotices});return{selectionSummary:i,actionSummary:s,secondaryText:a,budgetNotices:hz(a)}}o(MO,"buildTranscriptFooterViewModel");import{jsx as wce,jsxs as Sce}from"react/jsx-runtime";function AO(e,t){if(!(!e||!t||t<=0))switch(e){case"finding-validation":return`Validating ${t} finding${t===1?"":"s"}`;case"module-triage":return`Scanning ${t} module${t===1?"":"s"}`;case"evidence-scan":return`Parallel evidence pass (${t})`;case"hypothesis-check":return`Checking ${t} hypothesis${t===1?"":"es"}`;default:return}}o(AO,"formatAmaWorkStripText");function _O(e){return e.replace(/^\[[^\]]+\]\s*/,"").trim()}o(_O,"stripLiveActivityPrefix");function PO(e){let t=[],n=e.showPrimary??!0;if(e.isLoading&&n){let l=e.currentTool?_O(Qm(e.currentTool,e.toolInputContent??"",e.toolInputCharCount??0)):void 0,u=e.liveActivityLabel?_O(e.liveActivityLabel):void 0;e.activeWorkerTitle?t.push({id:"primary-worker",label:`${e.activeWorkerTitle} active`,accent:!0,selected:!0}):e.activePhase?t.push({id:"primary-phase",label:e.activePhase,accent:!0,selected:!0}):u?t.push({id:"primary-live-activity",label:u,accent:!0,selected:!0}):l?t.push({id:"primary-tool",label:l,accent:!0,selected:!0}):e.isThinkingActive?t.push({id:"primary-thinking",label:"Thinking",accent:!0,selected:!0}):t.push({id:"primary-generic",label:"Agent active",accent:!0,selected:!0})}e.parallelText&&t.push({id:"parallel",label:e.parallelText});let[r,i,s,...a]=t,c=[r,i,s].filter(l=>!!l);return e.isLoading?{items:c,overflowLabel:a.length>0?`+${a.length} more`:void 0,ctaHint:e.parallelText?"Ctrl+O transcript":void 0}:{items:c,overflowLabel:a.length>0?`+${a.length} more`:void 0,ctaHint:e.parallelText?"Ctrl+O transcript":void 0}}o(PO,"buildBackgroundTaskViewModel");function LO(e,t){if(!(!t||!e||e.agentMode!=="ama"))return AO(e.childFanoutClass,e.childFanoutCount)}o(LO,"buildAmaWorkStripFromStatus");function oT(e){let t=LO(e.status,e.isLoading);return{workStripText:t,backgroundTask:PO({isLoading:e.isLoading,showPrimary:!!(e.parallelTextOverride??t),activeWorkerTitle:e.status?.activeWorkerTitle,activePhase:e.status?.phase??(e.agentMode==="ama"?"AMA active":void 0),parallelText:e.parallelTextOverride??t,currentTool:e.currentTool,toolInputCharCount:e.toolInputCharCount,toolInputContent:e.toolInputContent,liveActivityLabel:e.liveActivityLabel,isThinkingActive:e.isThinkingActive})}}o(oT,"buildAmaSummaryViewModel");function aT(e){return{...e,items:[...e.items],managedLiveEvents:[...e.managedLiveEvents??[]]}}o(aT,"captureTranscriptSnapshot");function OO(e,t){let n=o(a=>["user","assistant","thinking","tool_group"].includes(a.type),"isConversationItem"),r=e.items.findIndex(a=>a.type==="user"&&a.inputId!==void 0&&t.some(c=>c.type==="user"&&c.inputId===a.inputId)),i=r<0?-1:t.findIndex(a=>a.type==="user"&&a.inputId===e.items[r]?.inputId);if(r<0){r=e.items.findIndex(c=>c.type==="tool_group"&&t.some(l=>l.type==="tool_group"&&l.tools.some(u=>c.tools.some(d=>d.id===u.id))));let a=e.items[r];a?.type==="tool_group"&&(i=t.findIndex(c=>c.type==="tool_group"&&c.tools.some(l=>a.tools.some(u=>u.id===l.id))))}if(r<0){r=e.items.findIndex(c=>e.items.filter(l=>sT(c,l)).length===1&&t.filter(l=>sT(c,l)).length===1);let a=e.items[r];a&&(i=t.findIndex(c=>sT(a,c)))}if(r<0)return t.length===0&&!e.items.some(n)?{...e,completeHistoryLoaded:!0}:void 0;let s=[...e.items.slice(0,r).filter(a=>!n(a)),...t.slice(0,i),...e.items.slice(r)];return{...e,items:s,completeHistoryLoaded:!0}}o(OO,"expandTranscriptSnapshot");function sT(e,t){return e.type==="user"&&t.type==="user"&&e.inputId===void 0&&t.inputId===void 0&&e.timestamp>0&&e.timestamp===t.timestamp&&e.text===t.text}o(sT,"matchesLegacyUserSource");function $O(e){if(!e.isTranscriptMode||!e.snapshot)return 0;let t=Math.max(0,e.currentItemsLength-e.snapshot.items.length);if(e.snapshot.observedItems&&e.currentItems){let n=new Map(e.snapshot.observedItems.map(r=>[r.id,r]));t=e.currentItems.filter(r=>{let i=n.get(r.id);return i!==r&&JSON.stringify(i)!==JSON.stringify(r)}).length}return e.isLoading!==e.snapshot.isLoading&&(t+=1),e.currentResponse!==e.snapshot.currentResponse&&(t+=1),e.thinkingContent!==e.snapshot.thinkingContent&&(t+=1),e.activeToolCallsLength!==e.snapshot.activeToolCalls.length&&(t+=1),(e.currentManagedLiveEventsLength??0)!==e.snapshot.managedLiveEvents.length&&(t+=1),t}o($O,"countPendingTranscriptUpdates");function NO(e){return e.snapshot?[...e.snapshot.items]:e.surface==="transcript"?[...e.transcriptItems]:[...e.promptItems]}o(NO,"resolveTranscriptSurfaceItems");function DO(e){let t=[];for(let n of e)switch(n.type){case"user":case"system":case"error":case"tool_group":case"event":case"info":case"sidecar":t.push({...n});break;case"assistant":case"thinking":{let{compactText:r,...i}=n;t.push(i);break}default:break}return t}o(DO,"buildPromptSurfaceItems");function BO(e,t){return e.enabled?t==="transcript"?e.transcriptShell:e.promptShell:"main-screen"}o(BO,"resolveFullscreenShellMode");function gz(e,t){return e.enabled&&BO(e,t)==="virtual"}o(gz,"shouldUseRendererViewportShell");function HO(e,t){let n=BO(e,t),r=e.enabled&&n==="virtual",i=e.enabled&&n==="virtual",s=r&&(e.mouseWheel||e.mouseClicks),a=s&&e.mouseClicks,c=i&&e.mouseWheel;return{shellMode:n,usesAlternateScreenShell:r,usesRendererViewportShell:i,usesRendererMouseTracking:s,usesManagedMouseClicks:a,usesManagedMouseWheel:c,usesManagedSelection:i,usesManagedWheelHistory:c,usesNativeMainScreenScrollback:!i}}o(HO,"resolveTranscriptInteractionPolicy");function FO(e,t,n){return gz(e,t)?t==="transcript"||n:!1}o(FO,"shouldOwnTranscriptViewport");var yz=500,wz=1,Sz=/[\p{L}\p{N}_/.\-+~\\]/u;function xz(e){return e.text===" "?"":e.text}o(xz,"normalizeTranscriptRowText");function WO(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}o(WO,"comparePoints");function cT(e){return e===""||/\s/.test(e)?0:Sz.test(e)?1:2}o(cT,"charClass");function jO(e){let t=e.timeoutMs??yz,n=e.distance??wz,r=e.time-e.previous.time<=t,i=Math.abs(e.row-e.previous.row)<=n&&Math.abs(e.column-e.previous.column)<=n,s=r&&i?Math.min(3,e.previous.count+1):1;return{time:e.time,row:e.row,column:e.column,count:s}}o(jO,"resolveTranscriptMultiClickState");function Py(e,t,n){let r=e[t.modelRowIndex];if(!r)return;let i=xz(r);if(n==="line")return{kind:n,start:{...t,column:0},end:{...t,column:Ts(i)}};let s=Ts(i);if(s===0)return{kind:n,start:{...t,column:0},end:{...t,column:0}};let a=Math.max(0,Math.min(s-1,t.column));t.column===s&&(a=s-1);let c=cT(qh(i,a)),l=a,u=a+1;for(;l>0&&cT(qh(i,l-1))===c;)l-=1;for(;u<s&&cT(qh(i,u))===c;)u+=1;return{kind:n,start:{...t,column:l},end:{...t,column:u}}}o(Py,"resolveTranscriptSelectionSpanAt");function lT(e,t){return WO(t.end,e.start)<0?{anchor:e.end,focus:t.start}:WO(t.start,e.end)>0?{anchor:e.start,focus:t.end}:{anchor:e.start,focus:e.end}}o(lT,"extendTranscriptSelectionSpan");function du(e){return{messages:e.messages,title:e.title,gitRoot:e.gitRoot??"",...e.runtimeInfo!==void 0?{runtimeInfo:e.runtimeInfo}:{},...e.tag!==void 0?{tag:e.tag}:{},...e.uiHistory!==void 0?{uiHistory:e.uiHistory}:{},...e.lineage!==void 0?{lineage:e.lineage}:{},...e.artifactLedger!==void 0?{artifactLedger:e.artifactLedger}:{},...e.extensionState!==void 0?{extensionState:e.extensionState}:{},...e.extensionRecords!==void 0?{extensionRecords:e.extensionRecords}:{}}}o(du,"buildHostSessionPayload");var Ko=o((e,t)=>JSON.stringify([e,t]),"inputKey");function UO(e,t=n=>{Ge({source:"repl:input-queue",level:"warn",message:String(n)})}){let n=new Map,r=new Set,i=new Map,s=new Map;function a(h,g,S=[],T=!1,x=process.cwd()){if(T&&S.length>0){let I=s.get(h)?.artifacts??[],v=o(k=>ou(k.path,x),"key");s.set(h,{cwd:x,artifacts:[...I.filter(k=>!S.some(_=>v(_)===v(k))),...S]})}return g}o(a,"restoreDraft");async function c(h,g=h.text){let S=s.get(h.sessionId);if(S){let v=eo(h.text,S.cwd,S.artifacts);for(let H of v.warnings)t(H);let k=o(H=>ou(H.path,S.cwd),"key"),_=new Map((h.inputArtifacts??[]).map(H=>[k(H),S.artifacts.find($=>k($)===k(H))??H]));for(let H of v.inputArtifacts)S.artifacts.some($=>k($)===k(H))&&_.set(k(H),H);h={...h,inputArtifacts:[..._.values()]}}let T=Ko(h.sessionId,h.inputId),x,I=new Promise(v=>{x=v});n.set(T,{input:h,originalText:g,state:"unknown",settled:I});try{let v=await e.submit(h),k=n.get(T);return k&&(k.state=v.state==="dropped"||v.state==="withdrawn"?"rejected":"queued"),v.state==="submitted"&&n.delete(T),(v.state==="submitted"||v.state==="queued")&&s.get(h.sessionId)===S&&s.delete(h.sessionId),v}finally{x()}}o(c,"submit");async function l(h,g,S=!1){let T=eo(h.text,g,s.get(h.sessionId)?.artifacts);for(let x of T.warnings)t(x);return c({...h,text:S?h.text:T.promptText,inputArtifacts:T.inputArtifacts},h.text)}o(l,"submitPrompt");async function u(h,g,S=process.cwd(),T=!1){let x=Ko(h,g);try{let I=n.get(x);await I?.settled;let v=n.get(x);if(I&&!v)return;if(v?.state==="rejected")return n.delete(x),a(h,v.originalText,v.input.inputArtifacts,T,S);if(v?.state==="unknown"){if(!e.readInput)throw new Error("Input acceptance is unknown; reconnect before taking it back.");let _=await e.readInput(h,g);if(!_||_.state==="dropped"||_.state==="withdrawn")return n.delete(x),i.set(x,h),a(h,v.originalText,v.input.inputArtifacts,T,S);if(_.state==="submitted"){n.delete(x);return}}let k=await e.withdraw(h,g);if(k===void 0)throw new Error("Input withdrawal was not confirmed; it may still run.");return n.delete(x),i.set(x,h),v?a(h,v.originalText,v.input.inputArtifacts,T,S):typeof k=="string"?k:a(h,NP(k.text,k.inputArtifacts??[],S),k.inputArtifacts,T,S)}finally{r.delete(x)}}o(u,"take");async function d(h,g,S=process.cwd()){let T=new Set(g);for(let k of n.values())k.input.sessionId===h&&T.add(k.input.inputId);let x=[...T].filter(k=>!r.has(Ko(h,k))&&!i.has(Ko(h,k)));x.forEach(k=>r.add(Ko(h,k)));let I=await Promise.allSettled(x.map(k=>u(h,k,S,!0))),v=[];for(let k of I)k.status==="fulfilled"&&k.value!==void 0?v.push(k.value):k.status==="rejected"&&t(k.reason);if(v.length===0&&I.some(k=>k.status==="rejected"))throw new Error("No inputs could be taken back; they may still run.");return v.length>0?v.join(`
|
|
170
|
+
`):void 0}o(ZL,"buildTranscriptToolInputCopyText");import{useCallback as op,useRef as iz,useState as eO}from"react";function tO(e){let{state:t,ownsViewport:n,isAwaitingUserInteraction:r,isHistorySearchActive:i,isTranscriptMode:s,historySearchQuery:a}=e,c=tL(t),l;if(t.supportsStickyPrompt&&t.stickyPromptVisible)if(i){let d=a.trim();l={visible:!0,label:d?`Searching transcript for "${d}"`:"Searching transcript"}}else s?l={visible:!0,label:"Transcript Mode"}:r&&(l={visible:!0,label:"Interaction active"});let u;return n&&t.supportsViewportChrome&&(s&&t.pendingLiveUpdates>0?u={visible:!0,label:t.pendingLiveUpdates===1?"1 new update":`${t.pendingLiveUpdates} new updates`,hint:"Ctrl+O",tone:"accent"}:!s&&t.jumpToLatestAvailable&&(u={visible:!0,label:"Back to live",hint:"End",tone:"accent"})),{browseHintText:c,stickyHeader:l,jumpToLatest:u}}o(tO,"buildTranscriptChromeModel");function nO(e){return Math.max(1,e-2)}o(nO,"resolveTranscriptPageSize");function rO(e){return Math.max(3,Math.floor(e/4))}o(rO,"resolveTranscriptWheelStep");function oz(e,t){return Math.max(0,e+t)}o(oz,"incrementTranscriptScrollOffset");function iO(e,t,n){let r=Math.max(0,t-n);return Math.min(Math.max(0,e),r)}o(iO,"clampTranscriptScrollOffset");function oO(){let e=iz(null),[t,n]=eO(0),[r,i]=eO(!0),s=op(d=>{n(Math.max(0,d))},[]),a=op(d=>{i(d)},[]),c=op(d=>{if(e.current){e.current.scrollTo(d);return}n(Math.max(0,d)),i(d===0)},[]),l=op(d=>{if(e.current){e.current.scrollBy(d);return}n(p=>oz(p,d)),i(!1)},[]),u=op(()=>{if(e.current){e.current.scrollToBottom();return}n(0),i(!0)},[]);return{scrollRef:e,scrollOffset:t,sticky:r,setScrollOffset:n,setSticky:i,handleScrollTopChange:s,handleStickyChange:a,scrollTo:c,scrollBy:l,scrollToBottom:u}}o(oO,"useTranscriptViewportScrollController");function sO(e){let{items:t,renderModel:n,terminalWidth:r,transcriptMaxLines:i,viewportRows:s,itemId:a,visibleRows:c,expandedItemKeys:l,showDetailedTools:u=!1}=e;if(!a||c.length===0)return!1;let p=(n?.sections??Ml(t,r,i,u,l)).find(S=>S.key===a||S.itemIds?.includes(a));if(!p||p.rows.length===0)return!1;let m=p.itemIds?p.rows.filter(S=>S.itemIds?.includes(a)):p.rows;if(m.length===0)return!1;let h=new Set(c.map(S=>S.key)),g=Math.max(0,s??0);return g>0&&m.length<=g?m.every(S=>h.has(S.key)):h.has(m[0]?.key??"")}o(sO,"isTranscriptItemVisible");function aO(e){let{items:t,renderModel:n,terminalWidth:r,transcriptMaxLines:i,viewportRows:s,itemId:a,expandedItemKeys:c,showDetailedTools:l=!1}=e,u=n?.sections??Ml(t,r,i,l,c);return jE(u,a,s)}o(aO,"resolveTranscriptSelectionOffset");function cO(e){let{items:t,renderModel:n,selectedItemId:r,terminalWidth:i=80,transcriptMaxLines:s=1e3,viewportRows:a,scrollOffset:c=0,expandedItemKeys:l,showDetailedTools:u=!1,preferViewportAnchor:d=!1}=e;if(r&&t.some(p=>p.id===r))return r;if(d&&c>0&&a&&a>0){let p=n?.sections??Ml(t,i,s,u,l),m=n?.rows??Ba(p),g=Mx(m,a,c)[0]?.key,S=g?p.find(T=>T.rows.some(x=>x.key===g)):void 0;if(S?.key)return S.key}return t[t.length-1]?.id}o(cO,"resolveTranscriptSearchAnchorItemId");function lO(e){let t=nf(e.stickyHeader),n=Ph(t,e.width),r=Math.max(0,e.topChromeRows??0);return{contentWindow:e.window,topOffsetRows:n+r,stickyHeaderRows:n,topChromeRows:r}}o(lO,"resolveTranscriptOwnedWindowGeometry");function sz(e){return e.text===" "?"":nn(e.text)}o(sz,"normalizeTranscriptRowText");function eT(e){let t=new Map;return e.forEach((n,r)=>{t.set(n.key,r)}),t}o(eT,"buildTranscriptRowIndexByKey");function az(e,t={}){let n=Math.max(0,e.indent??0),r=e.spinner&&t.animateSpinners!==!1?2:0;return 1+n+r}o(az,"resolveTranscriptTextStartColumn");function uO(e,t={}){let n=Math.max(0,t.topOffsetRows??0),r=t.rowIndexByKey??eT(t.allRows??e),i=e.map((s,a)=>{let c=sz(s),l=az(s,t),u=Ts(c);return{key:s.key,row:s,modelRowIndex:r.get(s.key)??a,screenRow:n+a+1,text:c,textLength:u,textStartColumn:l,textEndColumn:l+KE(c)}});return{rows:i,topRow:i[0]?.screenRow??n+1,bottomRow:i[i.length-1]?.screenRow??n,viewportHeight:Math.max(0,t.viewportHeight??e.length)}}o(uO,"buildTranscriptScreenBuffer");function cz(e,t){let n=Math.max(1,Math.floor(t));return zE(e.text,n-e.textStartColumn)}o(cz,"clampTextColumn");function tT(e,t){return{screenRow:e,point:{rowKey:e.key,modelRowIndex:e.modelRowIndex,column:cz(e,t)}}}o(tT,"toHit");function nT(e,t,n){let r=e.rows.find(i=>i.screenRow===t);return r?tT(r,n):void 0}o(nT,"hitTestTranscriptScreen");function rT(e,t,n){if(e.rows.length!==0)return t<=e.topRow?tT(e.rows[0],n):t>=e.bottomRow?tT(e.rows[e.rows.length-1],n):nT(e,t,n)}o(rT,"clampTranscriptScreenHit");function dO(e){return e.text===" "?"":nn(e.text)}o(dO,"normalizeTranscriptRowText");function fO(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}o(fO,"comparePoints");function pO(e,t,n,r={}){if(e.length===0)return;let[i,s]=fO(t,n)<=0?[t,n]:[n,t],a=r.selectFullRowOnCollapsed===!0,c=fO(t,n)===0,l=e[i.modelRowIndex],u=e[s.modelRowIndex];if(!l||!u)return;let d=a&&c?{...i,column:0}:i,p=a&&c?{...s,column:Ts(dO(u))}:s,m=new Map,h=[],g=0;for(let S=d.modelRowIndex;S<=p.modelRowIndex;S+=1){let T=e[S];if(!T)continue;let x=dO(T),I=Ts(x),v=S===d.modelRowIndex?d.column:0,k=S===p.modelRowIndex?p.column:I,_=Math.max(0,Math.min(v,I)),H=Math.max(_,Math.min(k,I)),$=Al(x,_,H);H>_&&(m.set(T.key,{start:_,end:H}),g+=H-_),h.push($)}if(m.size!==0)return{anchor:t,focus:n,rowRanges:m,rowCount:h.length,charCount:g,text:h.join(`
|
|
171
|
+
`)}}o(pO,"buildTranscriptScreenSelection");function mO(e){if(!e)return;let t=`${e.charCount} char${e.charCount===1?"":"s"}`;return e.rowCount<=1?`Selected ${t}`:`Selected ${t} across ${e.rowCount} lines`}o(mO,"buildTranscriptScreenSelectionSummary");function hO(e,t){return e.rows.length===0?0:t<e.topRow?1:t>e.bottomRow?-1:0}o(hO,"resolveTranscriptDragEdgeScrollDirection");var lz="Other...";function _y(e){return e?e.map(t=>({label:t.label,value:t.value,description:t.description})):[]}o(_y,"toSelectOptions");function iT(e,t){return t.kind==="input"||t.allowCustomInput===!1||e.some(n=>n.value===pr)?e:[...e,{label:t.customInputLabel??lz,value:pr}]}o(iT,"appendCustomInputOption");function oT(e){return e.question}o(oT,"getAskUserDialogTitle");function gO(e){return!!e.activity}o(gO,"shouldRenderPromptActivityInFooter");function uz(e){switch(e){case"confirm":return Re("waiting.confirm");case"select":return Re("waiting.select");case"input":return Re("waiting.input")}}o(uz,"formatPromptWaitingText");function yO(e){return e.waitingReason==="confirm"?Re("placeholder.confirm"):e.waitingReason==="select"?Re("placeholder.select"):e.waitingReason==="input"?Re("placeholder.input"):e.isLoading?e.canQueueFollowUps?Re("placeholder.queue"):Re("placeholder.busy"):Re("placeholder.idle")}o(yO,"buildPromptPlaceholderText");function wO(e){return e.isTranscriptMode?void 0:e.waitingReason?{kind:"waiting",text:uz(e.waitingReason),showSpinner:!1}:e.workflowBuilderMessage?{kind:"busy",text:e.workflowBuilderMessage,showSpinner:!0}:e.backgroundWorkflowMessage?{kind:"busy",text:e.backgroundWorkflowMessage,showSpinner:!0}:e.isLoading?{kind:"busy",text:Lx({activeToolCount:e.streamingState.activeToolCalls.filter(n=>n.status===K.Executing).length,currentTool:e.streamingState.currentTool,isThinkingActive:e.streamingState.isThinking,thinkingCharCount:e.streamingState.thinkingCharCount,isCompacting:e.streamingState.isCompacting,toolInputCharCount:e.streamingState.toolInputCharCount,toolInputContent:e.streamingState.toolInputContent,managedPhase:e.managedState?.phase,managedHarnessProfile:e.managedState?.harnessProfile,managedWorkerTitle:e.managedState?.workerTitle})??"Thinking",showSpinner:!0}:void 0}o(wO,"buildPromptActivityViewModel");function SO(e,t,n){if(!e)return;let r=e.userOverrideContextWindow??e.contextWindow,i=e.reservedResponseTokens;try{let s=n(t.provider);e.userOverrideContextWindow===void 0&&(r=s?.getEffectiveContextWindow?.(t.model)??r),i=s?.getEffectiveMaxOutputTokens?.(t.model)??i}catch{}return r===e.contextWindow&&i===e.reservedResponseTokens?e:{...e,contextWindow:r,reservedResponseTokens:i}}o(SO,"resolveEffectiveCompactionInfo");function xO(e){let t=e.clientActivity,n=t?.parentContextTokens??(t?.context?.scope==="parent"?t.context.tokenCount:void 0)??e.parentContextTokens,r=t?.context?.tokenCount??t?.usage?.totalTokens,i=e.isLoading?t?.context?.tokenCount??n:e.agentMode==="sa"?n:e.parentContextTokens??n??r,s=e.isLoading?t?.context?.scope??"parent":"parent",a=e.isLoading&&t?.contextBudget?.scope===s?t.contextBudget:void 0,c=a&&i!==void 0?{currentTokens:i,contextWindow:a.contextWindow,triggerPercent:a.compaction.triggerPercent,triggerTokens:a.compaction.absoluteTriggerTokens,reservedResponseTokens:a.reservedResponseTokens,hostBudget:!0,effectiveTriggerTokens:a.compaction.triggerTokens,scope:s}:s==="parent"?e.contextUsage:void 0,l=c!==void 0,u=e.isTranscriptMode?void 0:t,d=u?.managedTask,p=d?.phase,m=d?{phase:p==="starting"||p==="routing"||p==="preflight"||p==="round"||p==="worker"||p==="upgrade"||p==="verifying"||p==="completed"?p:void 0,workerTitle:d.workerTitle,round:d.round,maxRounds:d.maximumRounds,harnessProfile:d.harnessProfile,globalWorkBudget:d.globalWorkBudget,budgetUsage:d.budgetUsage,budgetApprovalRequired:d.budgetApprovalRequired,idleWaiting:d.idleWaiting,idleWaitingPendingCount:d.pendingChildren}:e.managedState;return{sessionId:e.sessionId,hostSettings:e.hostSettings,permissionMode:e.permissionMode,agentMode:e.agentMode,workMode:e.workMode,provider:e.provider,model:e.model,currentTool:e.streamingState.currentTool,activeToolCount:e.streamingState.activeToolCalls.filter(h=>h.status===K.Executing).length,thinking:e.thinking,reasoningMode:e.reasoningMode,effort:e.effort,reasoningEffortLabel:e.reasoningEffortLabel,reasoningCapability:e.reasoningCapability,isThinkingActive:e.streamingState.isThinking,thinkingCharCount:e.streamingState.thinkingCharCount,toolInputCharCount:e.isTranscriptMode?e.streamingState.toolInputCharCount:0,toolInputContent:e.isTranscriptMode?e.streamingState.toolInputContent:"",currentIteration:u?.iteration?.current??e.streamingState.currentIteration,maxIter:u?.iteration?.maximum??e.maxIter,contextUsage:c&&i!==void 0?{...c,currentTokens:i}:c,contextTokens:!l&&i!==void 0?{currentTokens:i,scope:s}:void 0,tokenUsage:t?.usage?{input:t.usage.inputTokens,output:t.usage.outputTokens,total:t.usage.totalTokens}:void 0,learning:e.learning,isCompacting:u?.compacting??e.streamingState.isCompacting,showBusyStatus:!1,managedPhase:e.isLoading?m?.phase:void 0,managedHarnessProfile:e.isLoading?m?.harnessProfile:void 0,managedWorkerTitle:e.isLoading?m?.workerTitle:void 0,managedRound:e.isLoading?m?.round:void 0,managedMaxRounds:e.isLoading?m?.maxRounds:void 0,managedGlobalWorkBudget:e.isLoading?m?.globalWorkBudget:void 0,managedBudgetUsage:e.isLoading?m?.budgetUsage:void 0,managedBudgetApprovalRequired:e.isLoading?m?.budgetApprovalRequired:void 0,managedIdleWaiting:e.isLoading?m?.idleWaiting:void 0,managedIdleWaitingPendingCount:e.isLoading?m?.idleWaitingPendingCount:void 0}}o(xO,"buildSurfaceStatusBarProps");function IO(e){let t=HC(e.state),n=t?Iy(e.state,e.selectableItemIds,e.selectedItemId):void 0,r=n?e.selectableItemIds.indexOf(n):-1;return{selectionEnabled:t,selectedItemId:n,selectedItemIndex:r,position:n?{current:Math.max(1,r+1),total:e.selectableItemIds.length}:void 0,detailState:n&&e.isExpanded?"expanded":"compact",copyCapabilities:{message:t&&!!n,toolInput:t&&!!n&&e.selectedItemType==="tool_group",copyOnSelect:t&&eL(e.state)},toggleDetail:t&&!!n,navigationCapabilities:{selection:t&&!!n&&e.selectableItemIds.length>0}}}o(IO,"buildTranscriptSelectionRuntimeState");function CO(e){if(!(!e.runtime.selectionEnabled||!e.runtime.selectedItemId))return{itemSummary:e.itemSummary?.summary,itemKind:e.itemSummary?.kindLabel,position:e.runtime.position,detailState:e.runtime.detailState,copyCapabilities:e.runtime.copyCapabilities,toggleDetail:e.runtime.toggleDetail,navigationCapabilities:e.runtime.navigationCapabilities}}o(CO,"buildTranscriptSelectionViewModel");function TO(e){return{query:e.query,matches:e.matches,currentMatchIndex:e.currentMatchIndex,anchorItemId:e.anchorItemId,statusText:e.useOverlaySurface?void 0:e.statusText}}o(TO,"buildTranscriptSearchViewModel");function dz(e,t){return e===0?0:t<0?-1:Math.min(t,e-1)}o(dz,"clampTranscriptSearchSelectedIndex");function fz(e){return e.isHistorySearchActive?e.historySearchQuery.trim()?e.matches.length===0?"No matches yet":e.clampedSelectedIndex<0?`${e.matches.length} matches | use n/N or Enter to jump`:e.matches[e.clampedSelectedIndex]?.excerpt:"Type to search transcript":void 0}o(fz,"buildTranscriptSearchDetailText");function vO(e){let t=dz(e.matches.length,e.selectedIndex),n=qL(e.matches,t),r=fz({isHistorySearchActive:e.isHistorySearchActive,historySearchQuery:e.historySearchQuery,matches:e.matches,clampedSelectedIndex:t});return{clampedSelectedIndex:t,statusText:n,detailText:r,searchState:TO({query:e.historySearchQuery,matches:e.matches,currentMatchIndex:t,anchorItemId:e.anchorItemId,statusText:n,useOverlaySurface:e.useOverlaySurface})}}o(vO,"buildTranscriptSearchChrome");function pz(e=!1){return`\u2190/\u2192 enter select mode | Ctrl+E ${e?"collapse":"show all"} | Mouse drag selects text`}o(pz,"buildDefaultTranscriptSecondaryText");function bO(e){let t=[];return e.historySearchQuery.trim().length>0&&e.isHistorySearchActive&&e.historySearchMatchCount===0&&t.push({id:"search-empty",text:"No transcript matches yet",tone:"info"}),e.pendingInputCount>=e.maxPendingInputs&&t.push({id:"queue-full",text:`Queued follow-up limit reached (${e.maxPendingInputs})`,tone:"warning"}),t}o(bO,"buildFooterNotifications");function RO(e){let t=[];return e.historySearchQuery.trim()&&t.push(`Search: ${e.historySearchQuery.trim()}`),e.pendingInputCount>0&&t.push(`Queued follow-ups: ${e.pendingInputCount}`),t}o(RO,"buildBaseFooterNotices");function kO(e){if(e.inputText.trim()&&(e.isTranscriptMode||e.isHistorySearchActive))return"Draft preserved while viewing transcript"}o(kO,"buildStashNoticeText");function EO(e){return[...e]}o(EO,"buildPromptFooterNotices");function mz(e){let n=(e.isHistorySearchActive?[e.historySearchDetailText]:[e.selectionSummary,e.actionSummary]).filter(r=>!!(r&&r.trim().length>0));return n.length===0?pz(e.showAllActive):n.join(" | ")}o(mz,"buildTranscriptFooterSecondaryText");function hz(e){let t=[];return e&&t.push(e),t}o(hz,"buildTranscriptFooterBudgetNotices");function MO(e){let t=e.selectionState?.copyCapabilities,n=e.selectionState?.navigationCapabilities,i=mO(e.textSelection),s=e.textSelection?Ol({copyMessage:!0,copyToolInput:!1,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!1,selectionNavigation:!1,matchNavigation:!1,dismissAction:"clear"}):e.selectionState?.itemSummary?Ol({copyMessage:!!t?.message,copyToolInput:!!t?.toolInput,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!!e.selectionState?.toggleDetail,selectionNavigation:!!n?.selection,matchNavigation:!1,dismissAction:"clear"}):void 0,a=mz({isHistorySearchActive:e.isHistorySearchActive,historySearchDetailText:e.historySearchDetailText,selectionSummary:i,actionSummary:s,showAllActive:e.showAllActive,baseFooterNotices:e.baseFooterNotices});return{selectionSummary:i,actionSummary:s,secondaryText:a,budgetNotices:hz(a)}}o(MO,"buildTranscriptFooterViewModel");import{jsx as wce,jsxs as Sce}from"react/jsx-runtime";function AO(e,t){if(!(!e||!t||t<=0))switch(e){case"finding-validation":return`Validating ${t} finding${t===1?"":"s"}`;case"module-triage":return`Scanning ${t} module${t===1?"":"s"}`;case"evidence-scan":return`Parallel evidence pass (${t})`;case"hypothesis-check":return`Checking ${t} hypothesis${t===1?"":"es"}`;default:return}}o(AO,"formatAmaWorkStripText");function _O(e){return e.replace(/^\[[^\]]+\]\s*/,"").trim()}o(_O,"stripLiveActivityPrefix");function PO(e){let t=[],n=e.showPrimary??!0;if(e.isLoading&&n){let l=e.currentTool?_O(Qm(e.currentTool,e.toolInputContent??"",e.toolInputCharCount??0)):void 0,u=e.liveActivityLabel?_O(e.liveActivityLabel):void 0;e.activeWorkerTitle?t.push({id:"primary-worker",label:`${e.activeWorkerTitle} active`,accent:!0,selected:!0}):e.activePhase?t.push({id:"primary-phase",label:e.activePhase,accent:!0,selected:!0}):u?t.push({id:"primary-live-activity",label:u,accent:!0,selected:!0}):l?t.push({id:"primary-tool",label:l,accent:!0,selected:!0}):e.isThinkingActive?t.push({id:"primary-thinking",label:"Thinking",accent:!0,selected:!0}):t.push({id:"primary-generic",label:"Agent active",accent:!0,selected:!0})}e.parallelText&&t.push({id:"parallel",label:e.parallelText});let[r,i,s,...a]=t,c=[r,i,s].filter(l=>!!l);return e.isLoading?{items:c,overflowLabel:a.length>0?`+${a.length} more`:void 0,ctaHint:e.parallelText?"Ctrl+O transcript":void 0}:{items:c,overflowLabel:a.length>0?`+${a.length} more`:void 0,ctaHint:e.parallelText?"Ctrl+O transcript":void 0}}o(PO,"buildBackgroundTaskViewModel");function LO(e,t){if(!(!t||!e||e.agentMode!=="ama"))return AO(e.childFanoutClass,e.childFanoutCount)}o(LO,"buildAmaWorkStripFromStatus");function sT(e){let t=LO(e.status,e.isLoading);return{workStripText:t,backgroundTask:PO({isLoading:e.isLoading,showPrimary:!!(e.parallelTextOverride??t),activeWorkerTitle:e.status?.activeWorkerTitle,activePhase:e.status?.phase??(e.agentMode==="ama"?"AMA active":void 0),parallelText:e.parallelTextOverride??t,currentTool:e.currentTool,toolInputCharCount:e.toolInputCharCount,toolInputContent:e.toolInputContent,liveActivityLabel:e.liveActivityLabel,isThinkingActive:e.isThinkingActive})}}o(sT,"buildAmaSummaryViewModel");function cT(e){return{...e,items:[...e.items],managedLiveEvents:[...e.managedLiveEvents??[]]}}o(cT,"captureTranscriptSnapshot");function OO(e,t){let n=o(a=>["user","assistant","thinking","tool_group"].includes(a.type),"isConversationItem"),r=e.items.findIndex(a=>a.type==="user"&&a.inputId!==void 0&&t.some(c=>c.type==="user"&&c.inputId===a.inputId)),i=r<0?-1:t.findIndex(a=>a.type==="user"&&a.inputId===e.items[r]?.inputId);if(r<0){r=e.items.findIndex(c=>c.type==="tool_group"&&t.some(l=>l.type==="tool_group"&&l.tools.some(u=>c.tools.some(d=>d.id===u.id))));let a=e.items[r];a?.type==="tool_group"&&(i=t.findIndex(c=>c.type==="tool_group"&&c.tools.some(l=>a.tools.some(u=>u.id===l.id))))}if(r<0){r=e.items.findIndex(c=>e.items.filter(l=>aT(c,l)).length===1&&t.filter(l=>aT(c,l)).length===1);let a=e.items[r];a&&(i=t.findIndex(c=>aT(a,c)))}if(r<0)return t.length===0&&!e.items.some(n)?{...e,completeHistoryLoaded:!0}:void 0;let s=[...e.items.slice(0,r).filter(a=>!n(a)),...t.slice(0,i),...e.items.slice(r)];return{...e,items:s,completeHistoryLoaded:!0}}o(OO,"expandTranscriptSnapshot");function aT(e,t){return e.type==="user"&&t.type==="user"&&e.inputId===void 0&&t.inputId===void 0&&e.timestamp>0&&e.timestamp===t.timestamp&&e.text===t.text}o(aT,"matchesLegacyUserSource");function $O(e){if(!e.isTranscriptMode||!e.snapshot)return 0;let t=Math.max(0,e.currentItemsLength-e.snapshot.items.length);if(e.snapshot.observedItems&&e.currentItems){let n=new Map(e.snapshot.observedItems.map(r=>[r.id,r]));t=e.currentItems.filter(r=>{let i=n.get(r.id);return i!==r&&JSON.stringify(i)!==JSON.stringify(r)}).length}return e.isLoading!==e.snapshot.isLoading&&(t+=1),e.currentResponse!==e.snapshot.currentResponse&&(t+=1),e.thinkingContent!==e.snapshot.thinkingContent&&(t+=1),e.activeToolCallsLength!==e.snapshot.activeToolCalls.length&&(t+=1),(e.currentManagedLiveEventsLength??0)!==e.snapshot.managedLiveEvents.length&&(t+=1),t}o($O,"countPendingTranscriptUpdates");function NO(e){return e.snapshot?[...e.snapshot.items]:e.surface==="transcript"?[...e.transcriptItems]:[...e.promptItems]}o(NO,"resolveTranscriptSurfaceItems");function DO(e){let t=[];for(let n of e)switch(n.type){case"user":case"system":case"error":case"tool_group":case"event":case"info":case"sidecar":t.push({...n});break;case"assistant":case"thinking":{let{compactText:r,...i}=n;t.push(i);break}default:break}return t}o(DO,"buildPromptSurfaceItems");function BO(e,t){return e.enabled?t==="transcript"?e.transcriptShell:e.promptShell:"main-screen"}o(BO,"resolveFullscreenShellMode");function gz(e,t){return e.enabled&&BO(e,t)==="virtual"}o(gz,"shouldUseRendererViewportShell");function HO(e,t){let n=BO(e,t),r=e.enabled&&n==="virtual",i=e.enabled&&n==="virtual",s=r&&(e.mouseWheel||e.mouseClicks),a=s&&e.mouseClicks,c=i&&e.mouseWheel;return{shellMode:n,usesAlternateScreenShell:r,usesRendererViewportShell:i,usesRendererMouseTracking:s,usesManagedMouseClicks:a,usesManagedMouseWheel:c,usesManagedSelection:i,usesManagedWheelHistory:c,usesNativeMainScreenScrollback:!i}}o(HO,"resolveTranscriptInteractionPolicy");function FO(e,t,n){return gz(e,t)?t==="transcript"||n:!1}o(FO,"shouldOwnTranscriptViewport");var yz=500,wz=1,Sz=/[\p{L}\p{N}_/.\-+~\\]/u;function xz(e){return e.text===" "?"":e.text}o(xz,"normalizeTranscriptRowText");function WO(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}o(WO,"comparePoints");function lT(e){return e===""||/\s/.test(e)?0:Sz.test(e)?1:2}o(lT,"charClass");function jO(e){let t=e.timeoutMs??yz,n=e.distance??wz,r=e.time-e.previous.time<=t,i=Math.abs(e.row-e.previous.row)<=n&&Math.abs(e.column-e.previous.column)<=n,s=r&&i?Math.min(3,e.previous.count+1):1;return{time:e.time,row:e.row,column:e.column,count:s}}o(jO,"resolveTranscriptMultiClickState");function Py(e,t,n){let r=e[t.modelRowIndex];if(!r)return;let i=xz(r);if(n==="line")return{kind:n,start:{...t,column:0},end:{...t,column:Ts(i)}};let s=Ts(i);if(s===0)return{kind:n,start:{...t,column:0},end:{...t,column:0}};let a=Math.max(0,Math.min(s-1,t.column));t.column===s&&(a=s-1);let c=lT(qh(i,a)),l=a,u=a+1;for(;l>0&&lT(qh(i,l-1))===c;)l-=1;for(;u<s&&lT(qh(i,u))===c;)u+=1;return{kind:n,start:{...t,column:l},end:{...t,column:u}}}o(Py,"resolveTranscriptSelectionSpanAt");function uT(e,t){return WO(t.end,e.start)<0?{anchor:e.end,focus:t.start}:WO(t.start,e.end)>0?{anchor:e.start,focus:t.end}:{anchor:e.start,focus:e.end}}o(uT,"extendTranscriptSelectionSpan");function fu(e){return{messages:e.messages,title:e.title,gitRoot:e.gitRoot??"",...e.runtimeInfo!==void 0?{runtimeInfo:e.runtimeInfo}:{},...e.tag!==void 0?{tag:e.tag}:{},...e.uiHistory!==void 0?{uiHistory:e.uiHistory}:{},...e.lineage!==void 0?{lineage:e.lineage}:{},...e.artifactLedger!==void 0?{artifactLedger:e.artifactLedger}:{},...e.extensionState!==void 0?{extensionState:e.extensionState}:{},...e.extensionRecords!==void 0?{extensionRecords:e.extensionRecords}:{}}}o(fu,"buildHostSessionPayload");var Ko=o((e,t)=>JSON.stringify([e,t]),"inputKey");function UO(e,t=n=>{Ge({source:"repl:input-queue",level:"warn",message:String(n)})}){let n=new Map,r=new Set,i=new Map,s=new Map;function a(h,g,S=[],T=!1,x=process.cwd()){if(T&&S.length>0){let I=s.get(h)?.artifacts??[],v=o(k=>su(k.path,x),"key");s.set(h,{cwd:x,artifacts:[...I.filter(k=>!S.some(_=>v(_)===v(k))),...S]})}return g}o(a,"restoreDraft");async function c(h,g=h.text){let S=s.get(h.sessionId);if(S){let v=to(h.text,S.cwd,S.artifacts);for(let H of v.warnings)t(H);let k=o(H=>su(H.path,S.cwd),"key"),_=new Map((h.inputArtifacts??[]).map(H=>[k(H),S.artifacts.find($=>k($)===k(H))??H]));for(let H of v.inputArtifacts)S.artifacts.some($=>k($)===k(H))&&_.set(k(H),H);h={...h,inputArtifacts:[..._.values()]}}let T=Ko(h.sessionId,h.inputId),x,I=new Promise(v=>{x=v});n.set(T,{input:h,originalText:g,state:"unknown",settled:I});try{let v=await e.submit(h),k=n.get(T);return k&&(k.state=v.state==="dropped"||v.state==="withdrawn"?"rejected":"queued"),v.state==="submitted"&&n.delete(T),(v.state==="submitted"||v.state==="queued")&&s.get(h.sessionId)===S&&s.delete(h.sessionId),v}finally{x()}}o(c,"submit");async function l(h,g,S=!1){let T=to(h.text,g,s.get(h.sessionId)?.artifacts);for(let x of T.warnings)t(x);return c({...h,text:S?h.text:T.promptText,inputArtifacts:T.inputArtifacts},h.text)}o(l,"submitPrompt");async function u(h,g,S=process.cwd(),T=!1){let x=Ko(h,g);try{let I=n.get(x);await I?.settled;let v=n.get(x);if(I&&!v)return;if(v?.state==="rejected")return n.delete(x),a(h,v.originalText,v.input.inputArtifacts,T,S);if(v?.state==="unknown"){if(!e.readInput)throw new Error("Input acceptance is unknown; reconnect before taking it back.");let _=await e.readInput(h,g);if(!_||_.state==="dropped"||_.state==="withdrawn")return n.delete(x),i.set(x,h),a(h,v.originalText,v.input.inputArtifacts,T,S);if(_.state==="submitted"){n.delete(x);return}}let k=await e.withdraw(h,g);if(k===void 0)throw new Error("Input withdrawal was not confirmed; it may still run.");return n.delete(x),i.set(x,h),v?a(h,v.originalText,v.input.inputArtifacts,T,S):typeof k=="string"?k:a(h,NP(k.text,k.inputArtifacts??[],S),k.inputArtifacts,T,S)}finally{r.delete(x)}}o(u,"take");async function d(h,g,S=process.cwd()){let T=new Set(g);for(let k of n.values())k.input.sessionId===h&&T.add(k.input.inputId);let x=[...T].filter(k=>!r.has(Ko(h,k))&&!i.has(Ko(h,k)));x.forEach(k=>r.add(Ko(h,k)));let I=await Promise.allSettled(x.map(k=>u(h,k,S,!0))),v=[];for(let k of I)k.status==="fulfilled"&&k.value!==void 0?v.push(k.value):k.status==="rejected"&&t(k.reason);if(v.length===0&&I.some(k=>k.status==="rejected"))throw new Error("No inputs could be taken back; they may still run.");return v.length>0?v.join(`
|
|
172
172
|
---
|
|
173
|
-
`):void 0}o(d,"pull");async function p(h,g){let S=[...g].reverse().find(T=>!r.has(Ko(h,T))&&!i.has(Ko(h,T)));S&&(r.add(Ko(h,S)),await u(h,S))}o(p,"discardNewest");async function m(h,g){let S=new Set(g),T=new Set(g.map(x=>Ko(h,x)));for(let[x,I]of i)I===h&&!T.has(x)&&i.delete(x);if(e.readInput)for(let[x,I]of n){let v=I.input.inputId;if(I.input.sessionId!==h||I.state!=="queued"||S.has(v)||r.has(x))continue;(await e.readInput(h,v))?.state==="submitted"&&n.delete(x)}}return o(m,"observeQueue"),{submit:c,submitPrompt:l,pull:d,discardNewest:p,observeQueue:m}}o(UO,"createClientInputQueue");var bz=500;function
|
|
174
|
-
`).trimEnd();return t.trim().length>0?t:void 0}o(
|
|
173
|
+
`):void 0}o(d,"pull");async function p(h,g){let S=[...g].reverse().find(T=>!r.has(Ko(h,T))&&!i.has(Ko(h,T)));S&&(r.add(Ko(h,S)),await u(h,S))}o(p,"discardNewest");async function m(h,g){let S=new Set(g),T=new Set(g.map(x=>Ko(h,x)));for(let[x,I]of i)I===h&&!T.has(x)&&i.delete(x);if(e.readInput)for(let[x,I]of n){let v=I.input.inputId;if(I.input.sessionId!==h||I.state!=="queued"||S.has(v)||r.has(x))continue;(await e.readInput(h,v))?.state==="submitted"&&n.delete(x)}}return o(m,"observeQueue"),{submit:c,submitPrompt:l,pull:d,discardNewest:p,observeQueue:m}}o(UO,"createClientInputQueue");var bz=500;function ic(e){Ge({source:"repl:session-persistence",level:"error",message:"Failed to persist interactive Session state in the background.",detail:e})}o(ic,"reportBackgroundSessionPersistenceError");function Rz(e){let t=[{label:"Acknowledge notification",value:"acknowledge"}];return e.lifecycle==="ready"?t.push({label:"Review",value:"review"},{label:"Review & Trust",value:"trust"},{label:"Snooze for 24 hours",value:"snooze"},{label:"Reject",value:"reject"}):e.lifecycle==="active_learned"?t.push({label:"Disable",value:"disable"},{label:"Promote to user catalog",value:"promote"}):e.lifecycle==="quarantined"&&t.push({label:"Rollback",value:"rollback"},{label:"Disable",value:"disable"}),t}o(Rz,"learningCenterActions");function kz(e){let t=new Map;for(let n of e)t.set(n.slug,(t.get(n.slug)??0)+1);return e.map(n=>{let r=(t.get(n.slug)??0)>1?` \xB7 ${n.capabilityId}`:"";return{label:`${n.displayName} \xB7 ${n.carrier} \xB7 ${n.lifecycle}${r}`,value:n.capabilityId}})}o(kz,"buildLearningCenterOptions");async function Ez(e,t,n){n==="acknowledge"?await e.acknowledge(t):n==="snooze"?await e.snooze(t,new Date(Date.now()+1440*6e4).toISOString()):n==="reject"?await e.reject(t):n==="disable"?await e.disable(t):n==="rollback"?await e.rollback(t):n==="promote"?await e.promote(t,"user"):n==="review"?await e.review(t):n==="trust"&&await e.trust(t)}o(Ez,"applyLearningCenterAction");function Mz(e){return typeof e.appendSessionDelta=="function"}o(Mz,"hasAppendSessionDelta");function Ly(e,t){let n=t.runtimeSessionSnapshot;n&&("extensionState"in n&&(e.extensionState=n.extensionState?structuredClone(n.extensionState):{},e.extensionStateDirty=!0),"extensionRecords"in n&&(e.extensionRecords=n.extensionRecords?.map(r=>({...r}))??[],e.extensionRecordsDirty=!0))}o(Ly,"applyRuntimeSessionSnapshot");function GO(e){let t=e;return typeof t.prepareSessionAppend=="function"&&typeof t.appendPreparedSessionTail=="function"&&typeof t.appendSessionDelta=="function"}o(GO,"hasPreparedSessionAppend");function Az(e,t,n){if(n||e.lineage===void 0||e.lineage.entries.length<t.lineageCount||e.artifactLedger!==void 0&&e.artifactLedger.length<t.artifactCount||e.artifactLedger===void 0&&t.artifactCount>0||e.extensionRecords!==void 0&&t.extensionCount>0||e.tag!==t.tag||e.extensionState!==void 0||e.actorSnapshot!==void 0||Object.prototype.hasOwnProperty.call(e,"errorMetadata"))return;let r=e.lineage.entries.slice(t.lineageCount),i=t.activeEntryId;for(let s of r){if(s.type!=="message"||s.parentId!==i)return;i=s.id}if(e.lineage.activeEntryId===i)return{baseline:t,title:e.title,activeEntryId:e.lineage.activeEntryId,lineageEntries:r,artifactEntries:e.artifactLedger?.slice(t.artifactCount),extensionRecords:e.extensionRecords?.slice(t.extensionCount),...e.uiHistory!==void 0?{uiHistory:e.uiHistory}:{},...e.scope!==void 0?{scope:e.scope}:{}}}o(Az,"createPreparedSessionTail");async function _z(e,t,n,r){let i=GO(e)?await e.prepareSessionAppend(t):null,s=i===null?void 0:Az(n,i,r);if(GO(e)&&s!==void 0)try{await e.appendPreparedSessionTail(t,s);return}catch(a){if(!(a instanceof Ie)||a.code!=="data_changed")throw a;await e.appendSessionDelta(t,n);return}if(Mz(e)){await e.appendSessionDelta(t,n);return}await e.save(t,n)}o(_z,"persistHostSessionPayload");var Pz=12,sp=8e3,Lz="Do not try to modify files while planning. Finish the plan first, then call exit_plan_mode with the finalized plan \u2014 the user will review and approve or reject.";function dT(e,t){if(So(e))return[t.getGuardrail()]}o(dT,"buildAutoModeGuardrails");function Oz(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:e.thinking===!0||t.thinking===!0?"auto":"off"}o(Oz,"resolveInitialReasoningMode");function fT(e){return nn(e.map(t=>typeof t=="string"?t:String(t)).join(" "))}o(fT,"formatCapturedConsoleOutput");function pT(e){let t=e.map(nn).join(`
|
|
174
|
+
`).trimEnd();return t.trim().length>0?t:void 0}o(pT,"joinCapturedConsoleOutput");function $z(e){let t=e.split(/\r?\n/).map(s=>s.trim()).filter(Boolean);if(t.length===0)return;if(t.length===1)return t[0];let[n,r]=t,i=n.startsWith("[")?`${n} ${r}`:`${n} / ${r}`;return i.length>220?`${i.slice(0,217)}...`:i}o($z,"buildManagedTranscriptCompactText");function KO(e){let t=$z(e);return{type:"event",icon:RC(e)?"\u2713":">",text:e,...t&&t!==e?{compactText:t}:{}}}o(KO,"toManagedTranscriptEventItem");function zo(e){switch(e.type){case"assistant":return{type:"assistant",text:e.text,timestamp:e.timestamp,...e.compactText?{compactText:e.compactText}:{}};case"thinking":return{type:"thinking",text:e.text,timestamp:e.timestamp,...e.compactText?{compactText:e.compactText}:{}};case"event":return{type:"event",text:e.text,timestamp:e.timestamp,...e.icon?{icon:e.icon}:{},...e.compactText?{compactText:e.compactText}:{}};case"info":return{type:"info",text:e.text,timestamp:e.timestamp,...e.icon?{icon:e.icon}:{},...e.compactText?{compactText:e.compactText}:{}};case"error":return{type:"error",text:e.text,timestamp:e.timestamp};case"system":return{type:"system",text:e.text,timestamp:e.timestamp};case"hint":return{type:"hint",text:e.text,timestamp:e.timestamp};case"sidecar":return{type:"sidecar",text:e.text,timestamp:e.timestamp,...e.verdict?{verdict:e.verdict}:{},...e.delivery?{delivery:e.delivery}:{}};case"tool_group":return{type:"tool_group",tools:e.tools,timestamp:e.timestamp};case"user":return{type:"user",text:e.text,timestamp:e.timestamp};default:return e}}o(zo,"toCreatableHistoryItem");function Nz(e){return e.map(t=>({...zo(t),isSessionUiOnly:!0}))}o(Nz,"buildFailedManagedForegroundPersistenceItems");function Dz(e,t){return e>0||t>0}o(Dz,"shouldPersistSessionSnapshot");function Bz(e,t){return!!e||t>0}o(Bz,"shouldCommitFailedManagedForeground");function Hz(e){let t;return async()=>{if(t===void 0){e.finalizeOrphanedTools(),e.flushText();let n=e.readItems();if(n.length===0)return!1;e.markUserItemsCommitted(n),t=e.stage(Nz(n)),e.clear()}return await e.persist(t),t=void 0,!0}}o(Hz,"createFailedManagedForegroundCommitter");async function Fz(e){try{await e.commit()}finally{e.cleanup()}}o(Fz,"commitFailedManagedForegroundBeforeCleanup");function hT(e){return qb(e)?"":zc(e).trim()}o(hT,"sanitizeInterruptedAssistantText");function Wz(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}o(Wz,"escapeRegExpLiteral");function jz(e,t){let n=t?.trim();return n?e.replace(new RegExp(`^\\[${Wz(n)}\\]\\s*`),""):e}o(jz,"stripManagedWorkerPrefix");function zO(e,t){let n=zc(e);return jz(n,t).trim().length>0}o(zO,"hasSubstantiveManagedAssistantText");function Uz(e,t){return e?t||e.trim().length>0:!1}o(Uz,"shouldAppendManagedAssistantTextDelta");function Vz(e,t,n){if(n==="append")return[...e];let r=new Set(t.filter(i=>i!==void 0));return r.size===0?[...e]:e.filter(i=>!r.has(i.id))}o(Vz,"discardReplacedOutputSegmentItems");function Gz(e,t,n){let r=Rm(e,{type:"segment.started",...t}).state;return r!==e&&n(r),r}o(Gz,"applyDistinctOutputSegmentStart");function Kz(e){e.stopThinking(),e.clearToolInputContent(),e.clearCurrentTool(),e.resetLiveToolCalls(),e.clearLiveActivityLabel()}o(Kz,"applyProviderRecoveryTransientReset");function qO(e){return!!(e?.activeWorkerId&&!e.childFanoutClass&&(e.phase==="preflight"||e.phase==="worker"))}o(qO,"isForegroundManagedStreamingStatus");function zz(e,t,n){let r=[],i=n?.infoItems??[],s=gT({thinking:e,toolCalls:n?.toolCalls,toolNames:n?.toolNames});for(let c of i){let l=c.trim();l&&r.push({type:"info",text:l})}r.push(...s);let a=hT(t);return a&&r.push({type:"assistant",text:`${a}
|
|
175
175
|
|
|
176
|
-
[Interrupted]`}),r}o(zz,"buildInterruptedPersistenceItems");function
|
|
177
|
-
`):[""],Math.max(1,e.terminalWidth),0,0);return h.visualLines.length>0?h.visualLines:[""]},"wrapBannerLine"),p=o((m,h,g)=>{d(h).forEach((S,T)=>{u.push({key:`${m}-${T}`,text:S,...g})})},"pushLineRows");return RC.forEach((m,h)=>{p(`banner-logo-${h}`,m,{color:"primary"})}),p("banner-tagline",s,{color:"primary"}),p("banner-version",a,{color:"text",bold:!0}),c&&p("banner-compaction",c,{color:"text"}),p("banner-session",l,{color:"text"}),u.push({key:"banner-blank",text:" "}),{key:"banner",rows:u}}o(tq,"buildBannerTranscriptSection");function JO(e,t){return t?{...e,sections:[t,...e.sections],rows:[...t.rows,...e.rows]}:e}o(JO,"prependTranscriptSection");var nq=process.env.KODAX_INLINE_LEDGER!=="0";function QO(e,t){process.env.KODAX_INLINE_LEDGER_DEBUG==="1"&&Ge({source:"repl:inline-ledger",level:"debug",message:`${e}; rebuilding on next change.`,...t!==void 0?{detail:t}:{}})}o(QO,"reportInlineLedgerFailure");var rq=o(({options:e,config:t,context:n,startupRuntimeInfo:r,storage:i,autoModeSettings:s,rendererMode:a,fullscreenPolicy:c,onExit:l,compactionInfo:u,autoModeBootstrap:d,setCurrentConfigRef:p,teamModeHandle:m})=>{let{exit:h}=qi(),{stdout:g}=zi(),S=g.rows??24,{stdin:T,setRawMode:x,isRawModeSupported:I}=Jd(),v=vl(),{history:k}=mf(),_=VO.useRef(null),H=VO.useRef(Bb()),{addHistoryItem:$,addHistoryItems:P,replaceHistoryItems:z,clearHistory:J,setSessionId:L}=hf(),[W,N]=et(null),[q,B]=et(null),ae=he(async()=>!1),ee=he(null),ie=he({entries:new Map});Ke(()=>{let f=e.clientPlane;if(!f)return;let y=n.sessionId,w=!1,b,R,E=0,D=!1,j,Q,te,We=o(()=>j||(R!==void 0&&clearTimeout(R),j=f.observe(y,me=>{if(w||n.sessionId!==y||me.session.id!==y)return;D=!0,ee.current=me,N(me);let Pe=Cr(me);if(Q!==Pe){let Ue=me.runs.find(dt=>dt.runId===Q);Ue&&te?.settled({phase:Ue.phase},Ue.runId),te?.close(),Q=Pe,te=Pe?_l({plane:f,sessionId:y,onStopState:am.onStopState,onStopControl:o(dt=>{ac.current=dt,Jo.current=ge.current??dt},"onStopControl")},()=>Q):void 0}z(Ha(me.items,{activeRunId:Cr(me),memo:ie.current}))},{onStatus:o(me=>{w||n.sessionId!==y||(me.state==="closed"&&(D=!1,b=void 0),B(me))},"onStatus")}).then(me=>{if(w){me();return}b=me,E=0}).catch(me=>{w||(D=!1,B({state:"closed",reason:"unavailable",message:me instanceof Error?me.message:String(me)}),E+=1,E<=5&&(R=setTimeout(()=>{We()},Math.min(1e3*E,5e3))))}).finally(()=>{j=void 0}),j),"observe");return ae.current=async()=>(!D&&!w&&await We(),D&&!w&&n.sessionId===y),We(),()=>{w=!0,b?.(),te?.close(),R!==void 0&&clearTimeout(R),ee.current=null,N(null),B(null)}},[e.clientPlane,n.sessionId,z]);let C=he(null),Te=he(new Map),[Fe,Ce]=et([]),X=Y((f,y)=>{let w=o(()=>{Ce(b=>b.length===0?b:b.filter(R=>Date.now()-R.at<sp))},"expire");Ce(b=>b.some(R=>R.id===f)?b:[...b.filter(R=>Date.now()-R.at<sp),{id:f,text:y,at:Date.now()}]),setTimeout(w,sp+250)},[]),re=Y(async()=>{if(!(!e.clientPlane||await ae.current()))throw X("observation-unavailable",tp),new Vo},[e.clientPlane,X]),je=be(()=>e.clientPlane?UO(e.clientPlane,f=>{let y=f instanceof Error?f.message:String(f);Ge({source:"repl:input-queue",level:"warn",message:y}),X(`queue-${Date.now()}`,y)}):void 0,[e.clientPlane,X]),Tt=JSON.stringify((W?.queue??[]).map(f=>f.inputId));Ke(()=>{let f=JSON.parse(Tt);je?.observeQueue(n.sessionId,f).catch(y=>{Ge({source:"repl:input-queue",level:"warn",message:"Could not resolve consumed input state.",detail:y})})},[je,n.sessionId,Tt]),Ke(()=>{let f=e.clientPlane;if(!f||q?.state==="interrupted")return;let y=q?.state==="live"?W?.interactions??[]:[],w=new Set(y.map(b=>b.requestId));for(let[b,R]of Te.current)w.has(b)||(Te.current.delete(b),R.abort());Fe.some(b=>Date.now()-b.at>=sp)&&Ce(b=>b.filter(R=>Date.now()-R.at<sp));for(let b of y){if(Te.current.has(b.requestId))continue;let R=C.current;if(!R)continue;let E=new AbortController;Te.current.set(b.requestId,E),pf(f,b,R,E.signal).then(D=>{D||E.signal.aborted||(Te.current.delete(b.requestId),E.abort())}).catch(()=>{E.signal.aborted||(Te.current.delete(b.requestId),E.abort(),X(`interaction-${b.requestId}`,"Answer delivery failed \u2014 the question will re-open or resolve Host-side."))})}},[W,q,e.clientPlane,Fe.length,X]);let vt=he(k),De=he(YO(k));Ke(()=>{vt.current=k,De.current=YO(k)},[k]),Ke(()=>{OP()},[]),Ke(()=>{xR()},[]);let Ee=g.columns||80,ce=xf(),oe=e.clientPlane?[...W?.queue.map(f=>f.text)??[],...ce.pendingInputs]:ce.pendingInputs,Me=he(ce);Ke(()=>{Me.current=ce},[ce]);let{startStreaming:Ae,stopStreaming:ze,abort:ft,startThinking:Vt,appendThinkingChars:Ze,appendThinkingContent:Lt,stopThinking:pt,clearThinkingContent:rt,setCurrentTool:tt,appendToolInputChars:io,appendToolInputContent:Er,clearToolInputContent:kt,clearResponse:mt,appendResponse:li,getSignal:zr,getFullResponse:Ln,getThinkingContent:we,startNewIteration:Ye,clearIterationHistory:Xt,startCompacting:ut,stopCompacting:bt,setMaxIter:Jn,addPendingInput:Gt,removeLastPendingInput:qr,peekPendingInputDelivery:Yo,shiftPendingInput:Vs,consumePendingInputs:Uy,capturePendingInputCancellation:mu}=If(),Jo=he(void 0),ac=he(void 0),ge=he(void 0),[hu,Fn]=et(!1),Qt=e.clientPlane&&W?.session.id===n.sessionId?W:null,Gs=Qt?Cr(Qt):void 0,at=hu||Gs!==void 0,[G,ki]=et(t),gu=be(()=>xa({provider:G.provider,model:G.model,effort:G.effort,effortOverride:G.effortOverride,permissionMode:G.permissionMode,planModeEffort:G.planModeEffort,thinking:G.thinking,reasoningMode:G.reasoningMode}),[G.provider,G.model,G.effort,G.effortOverride,G.permissionMode,G.planModeEffort,G.thinking,G.reasoningMode]),Ks=gu.configuredEffort,oo=gu.runtimeEffort,yu=be(()=>({...G,effort:Ks}),[G,Ks]),A=be(()=>e.clientPlane?W?.contextBudget?{contextWindow:W.contextBudget.contextWindow,reservedResponseTokens:W.contextBudget.reservedResponseTokens,triggerPercent:W.contextBudget.compaction.triggerPercent,triggerTokens:W.contextBudget.compaction.absoluteTriggerTokens,enabled:W.contextBudget.compaction.enabled}:void 0:SO(u,{provider:G.provider,model:G.model},ua),[e.clientPlane,W?.contextBudget,u,G.provider,G.model]),[F,ne]=et(!0),[Z,Se]=et(!0),[le,Je]=et(0),[$e,ke]=et(!1),pn=$e||Gs!==void 0,[Mr,Qn]=et(void 0),[Xr,ur]=et([]),sn=he(!1),ui=Y(()=>{sn.current=!0,ur(iR)},[]),[fp,Ar]=et(null),wu=he(!1),H$=be(()=>va(),[]),Su=he(null),pp=he(null),Vy=he(Promise.resolve()),mp=he(null),zs=he({requested:!1,uiHistoryOverride:void 0}),cc=he(null),xu=he(!1),Iu=he(null);Ke(()=>{let f=e.learning;if(!f)return;let y=!0,w,b,R=0,E=0,D=1e3,j=o(Pe=>{Ge({source:"repl:learning",level:"warn",message:"Failed to refresh the Learning Center snapshot.",detail:Pe instanceof Error?Pe.message:String(Pe)})},"reportRefreshFailure"),Q=o(Pe=>{if(Pe.kind!=="ready"&&Pe.kind!=="activated"&&Pe.kind!=="attention")return;let Ue=Pe.kind==="ready"?"is ready for review":Pe.kind==="activated"?"became active":"requires attention";ur(dt=>[{id:Pe.eventId,text:`A learned ${Pe.carrier} ${Ue}: ${Pe.displayName} [/learn]`,tone:Pe.kind==="activated"?"accent":"warning"},...dt.filter(Nt=>Nt.id!==Pe.eventId)].slice(0,2))},"showEvent"),te=o((Pe,Ue)=>{if(!y||Pe!==R)return;R+=1,w?.close(),j(Ue);let dt=typeof Ue=="object"&&Ue!==null&&"code"in Ue&&Ue.code==="daemon_upgrade_required";ur(Nt=>[{id:"learning-observation-error",tone:"warning",text:dt?"Learning Center updates require a Host upgrade and restart. [/learn]":"Learning Center updates interrupted; reconnecting. [/learn]"},...Nt.filter(En=>En.id!=="learning-observation-error")].slice(0,2)),!dt&&(b=setTimeout(me,D),D=Math.min(D*2,1e4))},"recoverObservation"),We=o(Pe=>{D=1e3,ur(dt=>dt.filter(Nt=>Nt.id!=="learning-observation-error"));let Ue=Dm(Pe);if(Ue&&!sn.current){let dt=Pe.attention>0||Pe.ready>0?"warning":"accent";ur(Nt=>[{id:"learning-recovery",text:Ue,tone:dt},...Nt.filter(En=>En.id!=="learning-recovery")].slice(0,2))}},"showRecovery"),me=o(()=>{if(!y)return;let Pe=++R,Ue=!0,dt=!1,Nt=!1,En=[],ct=o(()=>y&&Pe===R,"current"),Si=o(Mn=>te(Pe,Mn),"failed"),nd=o(async()=>{if(dt=!0,!(Nt||Ue)){Nt=!0;try{for(;dt&&ct();){dt=!1;let Mn=await f.getSnapshot();if(!ct())return;E=Math.max(E,Mn.revision),Qn(fe=>fe&&fe.revision>Mn.revision?fe:Mn)}}finally{Nt=!1}}},"refresh"),rd=f.subscribe(Mn=>{if(ct()){if(Ue){En.push(Mn);return}Mn.sequence<=E||(Q(Mn),nd().catch(Si))}},{afterRevision:E},Si);w=rd,ct()||rd.close(),(async()=>{if(await rd.ready,!ct())return;let Mn=await f.getSnapshot();if(ct()){E=Math.max(E,Mn.revision),Qn(fe=>fe&&fe.revision>Mn.revision?fe:Mn),We(Mn),Ue=!1;for(let fe of En)fe.sequence>E&&Q(fe);En.length>0&&await nd()}})().catch(Si)},"open");return me(),()=>{y=!1,b&&clearTimeout(b),w?.close()}},[e.learning]);let[Cu,Tu]=et(!0),[hp,vu]=et(""),[ot,Ei]=et(()=>jP(H$,{rendererMode:a})),[an,gp]=et(!1),[F$,W$]=et(0),{scrollRef:j$,scrollOffset:In,sticky:Gy,setScrollOffset:U$,handleScrollTopChange:V$,handleStickyChange:G$,scrollTo:bu,scrollBy:Ru,scrollToBottom:Qo}=oO(),Ky=he(null),yp=he(null),ku=he([]),Eu=he([]),lc=he(null),di=he(null),MT=he({time:0,row:-1,column:-1,count:0}),[wp,zy]=et(void 0),[so,qy]=et(void 0),[Sp,AT]=et(void 0),[On,K$]=et(()=>new Set),[_r,Mu]=et(null),[z$,_T]=et(null),[PT,xp]=et(null),se=be(()=>{if(!e.clientPlane)return PT;let f=Qt?.activity?.managedTask;if(!f)return null;let y=f.phase,w=y==="starting"||y==="routing"||y==="preflight"||y==="round"||y==="worker"||y==="upgrade"||y==="verifying"||y==="completed"?y:void 0;return{agentMode:G.agentMode,harnessProfile:f.harnessProfile,phase:w,activeWorkerId:f.workerId,activeWorkerTitle:f.workerTitle,childFanoutClass:f.childFanoutClass,childFanoutCount:f.fanoutCount,currentRound:f.round,maxRounds:f.maximumRounds,globalWorkBudget:f.globalWorkBudget,budgetUsage:f.budgetUsage,budgetApprovalRequired:f.budgetApprovalRequired,idleWaiting:f.idleWaiting,idleWaitingPendingCount:f.pendingChildren}},[e.clientPlane,Qt?.activity?.managedTask,G.agentMode,PT]),[Xy,uc]=et(null),[q$,LT]=et(null),Yy=Qt?.activity?.workflow?oS(Qt.activity.workflow):q$,dc=he(null),Au=Y(f=>{dc.current=f,LT(f)},[]),Jy=Y(f=>{let y=f(dc.current);dc.current=y,LT(y)},[]),fc=Y((f,y)=>{let w=dc.current;return w?.status!=="running"||!OR(f,w.runId)?!1:(Au({...w,message:y}),!0)},[Au]),Qy=Y(f=>{if(f.status==="running"){Au({runId:f.runId,workflow:f.workflow,status:f.status,...f.phase!==void 0?{phase:f.phase}:{},...f.phaseIndex!==void 0?{phaseIndex:f.phaseIndex}:{},...f.phaseTotal!==void 0?{phaseTotal:f.phaseTotal}:{},...f.startedAt!==void 0?{startedAt:f.startedAt}:{},...f.elapsedMs!==void 0?{elapsedMs:f.elapsedMs}:{},activeAgents:f.activeAgents,totalSpawned:f.totalSpawned,...f.plannedAgents!==void 0?{plannedAgents:f.plannedAgents}:{},...f.agentCap!==void 0?{agentCap:f.agentCap}:{},...f.tokenBudgetSpent!==void 0?{tokenBudgetSpent:f.tokenBudgetSpent}:{},...f.tokenBudgetTotal!==void 0?{tokenBudgetTotal:f.tokenBudgetTotal}:{},completedAgents:f.completedAgents,failedAgents:f.failedAgents,stoppedAgents:f.stoppedAgents,...f.message!==void 0?{message:f.message}:{},...f.locale!==void 0?{locale:f.locale}:{}});return}Jy(y=>y?.runId===f.runId?null:y)},[Au,Jy]),X$=Y(f=>{let y=f.type==="workflow_updated"?f.message:void 0,w=Gc(f.snapshot.goal,f.snapshot.workflowName,f.snapshot.displayName,f.snapshot.latestMessage,y);Qy(oS(f.snapshot,y===void 0?{locale:w}:{locale:w,message:y}))},[Qy]),[Y$,fi]=et([]),Ip=e.clientPlane?Qt?.activity?.todos??[]:Y$,pc=be(()=>{for(let f of Ip)if(f.status==="in_progress"){if(f.activeForm&&f.activeForm.length>0)return f.activeForm;if(f.subject&&f.subject.length>0)return f.subject}},[Ip]),[xX,_u]=et([]),[Pu,J$]=et([]),[Cp,Zt]=et(void 0),[qs,Lu]=et(void 0),Ft=he(null),Tp=he(null),Xs=he([]),mc=he([]),$n=he([]),Zy=he(new Set),_t=he({}),Ot=he({activeToolGroupTools:[]}),Ys=he(Ow()),Js=he({}),OT=he(0),Ou=he({itemId:void 0,kind:"thinking",pendingText:""}),pi=he(null),Q$=80,Z$=20,eN=he(null),$u=be(()=>[...k,...Pu],[k,Pu]),ew=be(()=>{let f=BE($u,eN,WE($u));return f===0?$u:$u.slice(f)},[$u]),vp=be(()=>HE(ew,Z$),[ew]),Zo=ew,Wn=he(null),Mi=he(null),Ai=he([]),jn=he([]),[hc,tN]=et([]),ao=he([]),[nN,rN]=et([]),tw=e.clientPlane?Qt?.activity?.children??[]:nN,Nu=he([]),Yr=Y(f=>{ao.current=f,tN(f)},[]),gc=Y(f=>{Nu.current=f,rN(f)},[]),nw=Y(()=>{gc([])},[gc]),$T=Y(f=>{if(!Ad(f))return!1;let y=zm(f),w=Nu.current.filter(b=>b.id!==y);return w.length===Nu.current.length||gc(w),!0},[gc]),Pr=Y((f,y,w,b)=>{if(!Ad(f))return!1;let R=zm(f),E=Nu.current.find(me=>me.id===R);if(b?.skipIfExisting&&E?.kind===y||mS(E?.kind,y))return!0;let D=b?.append&&E?.kind===y?`${E.detail}${w}`:w||E?.detail||"running",j={id:R,label:dS(f),source:fS(f),status:"running",kind:y,detail:Km(D),startedAt:E?.startedAt??Date.now()},Q=Nu.current,te=Q.findIndex(me=>me.id===R),We=te>=0?Q.map((me,Pe)=>Pe===te?j:me):[...Q,j].slice(0,Pz);return gc(We),!0},[gc]),NT=Y(f=>{Xs.current=f,_u(f)},[]),yc=Y(f=>{$n.current=f,J$(f)},[]),bp=Y(f=>{let y=f([...$n.current]);yc(y)},[yc]),DT=Y(f=>{f.length!==0&&yc([...$n.current,...f])},[yc]),Rp=Y(f=>{let y=Ot.current,w=y.activeToolGroupTools.some(b=>b.status===K.Executing);Ot.current={...f?.clearOwner?{}:{workerId:y.workerId,workerTitle:y.workerTitle},...w?{activeToolGroupItemId:y.activeToolGroupItemId,activeToolGroupTools:y.activeToolGroupTools}:{activeToolGroupTools:[]}},f?.clearOwner&&(_t.current={})},[]),wc=Y(f=>{for(let y of f)y.type==="user"&&typeof y.id=="string"&&Zy.current.add(y.id)},[]),Qs=Y(()=>{Ou.current={itemId:void 0,kind:"thinking",pendingText:""},pi.current&&(clearTimeout(pi.current),pi.current=null);let f=Jx($n.current,Zy.current);if(f.length>0){for(let y of f)Zy.current.add(y.id);cc.current?.(f.map(y=>zo(y)))}Rp({clearOwner:!0}),yc([])},[Rp,yc]),kp=Y(f=>(OT.current+=1,`managed-foreground-${f}-${OT.current}`),[]),Un=Y(f=>(DT([f]),f.id),[DT]),Cn=Y((f,y)=>{_t.current.workerId?Un({id:`${y}-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:f.type,text:f.text,...f.icon?{icon:f.icon}:{},...f.tightSpacing?{tightSpacing:!0}:{},timestamp:Date.now()}):$(f)},[$,Un]),_i=Y(async f=>{if(!f)return;if(!e.clientPlane?.appendNotice){Cn({type:"info",text:f},"command");return}let y=n.sessionId;try{await e.clientPlane.appendNotice(y,{content:f,source:"repl:command"})}catch(w){X(`command-notice-${y}-${Date.now()}`,`${f}
|
|
178
|
-
[Could not save command feedback: ${w instanceof Error?w.message:String(w)}]`)}},[n,e.clientPlane,Cn,X]),co=Y((f,y)=>{if(!f)return;let w;return bp(b=>b.map(R=>R.id!==f?R:(w=y(R),w))),w},[bp]),Sc=Y((f,y)=>{let w=Ot.current;if(w.activeKind===f){if(f==="thinking"&&w.activeThinkingItemId)return w.activeThinkingItemId;if(f==="assistant"&&w.activeAssistantItemId)return w.activeAssistantItemId;if(f==="tool_group"&&w.activeToolGroupItemId)return w.activeToolGroupItemId}let b=Date.now(),R=y?.trim()?`[${y.trim()}] `:"",E=w.activeToolGroupTools.some(j=>j.status===K.Executing);if(f==="thinking"){let j=Un({id:kp("thinking"),type:"thinking",timestamp:b,text:R});return Ot.current={...Ot.current,activeKind:"thinking",activeThinkingItemId:j,currentTurnThinkingItemId:j,activeAssistantItemId:void 0,...E?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},j}if(f==="assistant"){let j=Un({id:kp("assistant"),type:"assistant",timestamp:b,text:R});return Ot.current={...Ot.current,activeKind:"assistant",activeThinkingItemId:void 0,activeAssistantItemId:j,...E?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},j}let D=Un({id:kp("tool_group"),type:"tool_group",timestamp:b,tools:[]});return Ot.current={...Ot.current,activeKind:"tool_group",activeThinkingItemId:void 0,activeAssistantItemId:void 0,activeToolGroupItemId:D,activeToolGroupTools:[]},D},[Un,kp]),Vn=Y(()=>{pi.current&&(clearTimeout(pi.current),pi.current=null);let f=Ou.current;if(!f.pendingText||!f.itemId)return;let y=f.pendingText,w=f.itemId,b=f.kind;f.pendingText="",co(w,R=>R.type!==b?R:{...R,text:`${R.text}${y}`})},[co]),BT=Y(()=>{pi.current||(pi.current=setTimeout(Vn,Q$))},[Vn]),rw=Y((f,y)=>{if(!y)return;let w=Ot.current;if(f==="assistant"&&!Uz(y,w.activeKind==="assistant"&&!!w.activeAssistantItemId))return;let b=w.workerTitle,R=Sc(f,b),E=Ou.current;E.itemId===R&&E.kind===f?E.pendingText+=y:(Vn(),E.itemId=R,E.kind=f,E.pendingText=y),BT()},[Sc,Vn,BT]),HT=Y(f=>{Ys.current=Gz(Ys.current,f,y=>{if(_t.current.workerId){Vn();let R=Js.current;f.mode==="replace"&&bp(D=>Vz(D,[R.assistantItemId,R.thinkingItemId],f.mode));let E=Ot.current;Ot.current={...E,activeKind:E.activeKind==="tool_group"?"tool_group":void 0,activeAssistantItemId:void 0,activeThinkingItemId:void 0,currentTurnThinkingItemId:void 0},Ou.current={itemId:void 0,kind:"thinking",pendingText:""},Js.current={providerRequestId:f.providerRequestId};return}mt(),rt();let w=$w(y,"assistant"),b=$w(y,"thinking");w&&li(w),b&&(Vt(),Ze(b.length),Lt(b))})},[li,Ze,Lt,mt,rt,Vn,bp,Vt]),FT=Y(f=>{let y=f.trim();if(!y)return;let w=Ou.current;w.kind==="thinking"&&w.pendingText&&(w.pendingText="",pi.current&&(clearTimeout(pi.current),pi.current=null));let b=Ot.current.workerTitle?.trim(),R=b?`[${b}] ${y}`:y,E=Ot.current.currentTurnThinkingItemId;if(E){co(E,j=>j.type==="thinking"?{...j,text:R}:j);return}let D=Sc("thinking",Ot.current.workerTitle);co(D,j=>j.type==="thinking"?{...j,text:R}:j)},[Sc,co]),mi=Y(f=>{Vn();let y=Ot.current;if(y.activeToolGroupItemId&&y.activeToolGroupTools.some(D=>D.id===f.id)){let D=y.activeToolGroupTools.map(Q=>Q.id===f.id?f:Q),j=D.every(Q=>Q.status===K.Success||Q.status===K.Error||Q.status===K.Cancelled);Ot.current={...y,...j?{activeToolGroupItemId:void 0,activeToolGroupTools:[]}:{activeToolGroupTools:D}},co(y.activeToolGroupItemId,Q=>Q.type==="tool_group"?{...Q,tools:D}:Q);return}let w=$n.current;for(let D=w.length-1;D>=0;D-=1){let j=w[D];if(j.type!=="tool_group"||!j.tools.some(te=>te.id===f.id))continue;let Q=j.tools.map(te=>te.id===f.id?f:te);co(j.id,te=>te.type==="tool_group"?{...te,tools:Q}:te);return}let b=Sc("tool_group",y.workerTitle),E=y.activeKind==="tool_group"&&y.activeToolGroupItemId===b?y.activeToolGroupTools.some(D=>D.id===f.id)?y.activeToolGroupTools.map(D=>D.id===f.id?f:D):[...y.activeToolGroupTools,f]:[f];Ot.current={...Ot.current,activeKind:"tool_group",activeToolGroupItemId:b,activeToolGroupTools:E},co(b,D=>D.type==="tool_group"?{...D,tools:E}:D)},[Sc,co,Vn]),iN=Y(f=>{Vn();let y=Ot.current,w=y.activeToolGroupTools.some(E=>E.status===K.Executing),b=ao.current.filter(E=>E.status===K.Executing),R=new Set(b.map(E=>E.id));Ot.current={workerId:f?.workerId,workerTitle:f?.workerTitle,...w?{activeToolGroupItemId:y.activeToolGroupItemId,activeToolGroupTools:y.activeToolGroupTools}:{activeToolGroupTools:[]}},_t.current={workerId:f?.workerId,workerTitle:f?.workerTitle},Ai.current=[],jn.current=jn.current.filter(E=>R.has(E.id)),Yr(b),kt(),tt(void 0),pt(),rt(),mt(),Zt(void 0)},[Vn,kt,mt,rt,tt,Yr,Zt,pt]),oN=Y(f=>{if(f.length===0)return[];let y=[],w=[...Xs.current],b=[...mc.current];for(let R of f){let E=R.item,D=w.findIndex(j=>j.id===E.id);if(D>=0){let j=w[D];eh(j,E)||(w=w.map((Q,te)=>te===D?{...E,timestamp:j.timestamp}:Q))}else w=[...w,E].slice(-12),y.push(E);if(R.persistToHistory){let j=b.findIndex(Q=>Q.id===E.id);if(j>=0){let Q=b[j];eh(Q,E)||(b=b.map((te,We)=>We===j?{...E,timestamp:Q.timestamp}:te))}else b=[...b,E].slice(-48)}}return mc.current=b,(y.length>0||w.some((R,E)=>!eh(R,Xs.current[E]??R)||R.id!==Xs.current[E]?.id))&&NT(w),y},[NT]),Ep=Y(f=>{if(jn.current.findIndex(w=>w.id===f.id)===-1){jn.current=[...jn.current,f];return}jn.current=jn.current.map(w=>w.id===f.id?f:w)},[]),es=Y(f=>{let y=ao.current.filter(w=>w.status===K.Executing);if(y.length!==0){if(f){let w=vC(f);for(let b=y.length-1;b>=0;b-=1){let R=y[b];if(vC(R.name)===w)return R}}return y[y.length-1]}},[]),xc=Y(()=>{let f=es();tt(f?TC(f.name):void 0)},[es,tt]),WT=Y(f=>(Ep(f),Yr([...ao.current.filter(y=>y.id!==f.id),f]),xc(),f),[Yr,xc,Ep]),Ic=Y((f,y)=>{let w=ao.current.find(R=>R.id===f);if(!w)return null;let b=y(w);return Ep(b),Yr(ao.current.map(R=>R.id===f?b:R)),xc(),b},[Yr,xc,Ep]),jT=Y((f,y,w)=>{if(f){let R=Ic(f,w);if(R)return R}let b=es(y);return b?Ic(b.id,w):null},[es,Ic]),Mp=Y((f,y,w,b,R)=>{let E=f??es(R)?.id;return E?Ic(E,D=>({...D,status:y,endTime:Date.now(),error:w,output:b})):null},[es,Ic]),Du=Y((f,y)=>{let w=Date.now(),b=new Map;for(let R of ao.current){if(R.status!==K.Executing)continue;let E=y(R);b.set(R.id,{...R,status:f,endTime:w,...E})}return b.size===0?[]:(jn.current=jn.current.map(R=>b.get(R.id)??R),Yr(ao.current.map(R=>b.get(R.id)??R)),xc(),[...b.values()])},[Yr,xc]),ts=Y(()=>{Yr([])},[Yr]),{showHelp:UT,toggleHelp:sN,setShowHelp:VT}=MC(),aN=Y(f=>{vu(f),Tu(f.trim().length===0)},[]),Cc=$a(),GT=be(()=>Cc?Cc.state.visible&&Cc.suggestions.length>0:!1,[Cc]),[Bu,KT]=et(!1),zT=he(le),Zs=Y(()=>{Wn.current&&(clearTimeout(Wn.current),Wn.current=null),Mi.current&&(clearTimeout(Mi.current),Mi.current=null)},[]);Ke(()=>{GT&&!Bu&&KT(!0)},[GT,Bu]),Ke(()=>{le!==zT.current&&(zT.current=le,Bu&&KT(!1))},[le,Bu]);let[ht,Tc]=et(null),Jr=he(null),cN=he(SP()),[Qe,Lr]=et(null),Pi=he(null),Ap=he(Qe);Ap.current=Qe;let[Zn,vc]=et(""),[_p,hi]=et(0),iw=he(""),Hu=he(void 0),qT=be(()=>{if(!A)return;let{contextWindow:f,triggerPercent:y,triggerTokens:w,reservedResponseTokens:b}=A;return{currentTokens:fp??n.contextTokenSnapshot?.currentTokens??da(n.messages),contextWindow:f,triggerPercent:y,triggerTokens:w,reservedResponseTokens:b,...e.clientPlane?{hostBudget:!0,effectiveTriggerTokens:W?.contextBudget?.compaction.triggerTokens}:{}}},[n.messages,n.contextTokenSnapshot,A,fp,e.clientPlane,W?.contextBudget]),Fu=be(()=>{if(!ht)return;let f=new Set(ht.runtimeGrantSuggestions?.map(b=>b.kind)??[]);if(f.has("persistent"))return Re("confirm.instruction.runtime_persistent");if(f.has("session"))return Re("confirm.instruction.runtime_session");if(ht.runtimeGrantSuggestions!==void 0)return Re("confirm.instruction.basic");let y=!!ht.input._alwaysConfirm,w=G.permissionMode==="accept-edits"&&!y;return y?Re("confirm.instruction.protected"):w?Re("confirm.instruction.always"):Re("confirm.instruction.basic")},[ht,G.permissionMode]),Kt=ot.searchMode==="history",ue=ot.surface==="transcript",Li=!!ht||!!Qe||Kt,mn=ue?an?RE:1e3:12,ns=HO(c,ot.surface),XT=ns.shellMode,ow=ns.usesAlternateScreenShell,ea=ns.usesRendererViewportShell,Pp=ns.usesRendererMouseTracking,YT=ns.usesManagedMouseClicks,JT=ns.usesManagedMouseWheel,sw=ns.usesManagedSelection,en=FO(c,ot.surface,QP(ot)),Lp=ZP(ot),st=Q_(e.clientPlane,n.sessionId,!ue&&en&&a==="owned"),Op=Bu&&!ue,QT=Y(()=>{let f=e.clientPlane&&W?Ha(W.items,{activeRunId:Cr(W),memo:ie.current}):Zo;return aT({sessionId:n.sessionId,items:f,...e.clientPlane?{observedItems:f}:{},managedLiveEvents:[],isLoading:at,isThinking:ce.isThinking,thinkingCharCount:ce.thinkingCharCount,thinkingContent:ce.thinkingContent,currentResponse:ce.currentResponse,currentTool:ce.currentTool,activeToolCalls:hc,toolInputCharCount:ce.toolInputCharCount,toolInputContent:ce.toolInputContent,lastLiveActivityLabel:Cp,workStripText:qs,iterationHistory:ce.iterationHistory,currentIteration:W?.activity?.iteration?.current??ce.currentIteration,maxIter:W?.activity?.iteration?.maximum??W?.settings.maxIter??e.maxIter??ce.maxIter,isCompacting:W?.activity?.compacting??ce.isCompacting})},[Zo,e.clientPlane,n.sessionId,W,at,ce.isThinking,ce.thinkingCharCount,ce.thinkingContent,ce.currentResponse,ce.currentTool,hc,ce.toolInputCharCount,ce.toolInputContent,Cp,qs,ce.iterationHistory,ce.currentIteration,ce.maxIter,e.maxIter,ce.isCompacting]);Ke(()=>{if(e.clientPlane&&W?.session.id!==n.sessionId){Mu(null);return}if(ue){Mu(f=>f?.sessionId===n.sessionId?f:QT());return}Mu(null)},[QT,ue,n.sessionId,e.clientPlane,W?.session.id]);let Wu=be(()=>$O({isTranscriptMode:ue,snapshot:_r,currentItemsLength:Zo.length,currentItems:Zo,currentManagedLiveEventsLength:0,isLoading:at,currentResponse:ce.currentResponse,thinkingContent:ce.thinkingContent,activeToolCallsLength:hc.length}),[hc.length,at,ue,Zo.length,Zo,ce.currentResponse,ce.thinkingContent,_r]),hn=ue?_r:null,aw=be(()=>DO(vp),[vp]),lN=be(()=>!!(Pu.length>0||qO(se)),[Pu.length,se]),$p=Pu.length>0,Gn=c.streamingPreview&&lN,rs=be(()=>NO({surface:"transcript",snapshot:hn,promptItems:vp,transcriptItems:Zo}),[hn,vp,Zo]),ju=be(()=>{if(!ue||an)return rs;let f=FE(rs,DE);if(f.length===rs.length)return rs;let y=rs.length-f.length;return[VE(y,f[0]?.timestamp),...f]},[rs,ue,an]),zt=hn?.isLoading??at,$t=c.streamingPreview?{isThinking:Gn?!1:ce.isThinking,thinkingCharCount:Gn?0:ce.thinkingCharCount,thinkingContent:Gn?"":ce.thinkingContent,currentResponse:Gn?"":ce.currentResponse,currentTool:Gn?void 0:ce.currentTool,activeToolCalls:Gn?[]:hc,toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:Gn?Cp:void 0,iterationHistory:[],currentIteration:ce.currentIteration,isCompacting:!1}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:ce.currentIteration,isCompacting:!1},Be=c.streamingPreview?{isThinking:Gn?!1:hn?.isThinking??ce.isThinking,thinkingCharCount:Gn?0:hn?.thinkingCharCount??ce.thinkingCharCount,thinkingContent:Gn?"":hn?.thinkingContent??ce.thinkingContent,currentResponse:Gn?"":hn?.currentResponse??ce.currentResponse,currentTool:Gn?void 0:hn?.currentTool??ce.currentTool,activeToolCalls:Gn?[]:hn?.activeToolCalls??hc,toolInputCharCount:Gn?0:hn?.toolInputCharCount??ce.toolInputCharCount,toolInputContent:Gn?"":hn?.toolInputContent??ce.toolInputContent,managedLiveEvents:[],lastLiveActivityLabel:hn?.lastLiveActivityLabel??Cp,iterationHistory:Gn?[]:hn?.iterationHistory??ce.iterationHistory,currentIteration:hn?.currentIteration??ce.currentIteration,isCompacting:hn?.isCompacting??ce.isCompacting}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:hn?.currentIteration??ce.currentIteration,isCompacting:!1},gi=ue?so:wp,ZT=!!wp,Np=Y(()=>aT({items:aw,managedLiveEvents:[],isLoading:at,isThinking:$t.isThinking,thinkingCharCount:$t.thinkingCharCount,thinkingContent:$t.thinkingContent,currentResponse:$t.currentResponse,currentTool:$t.currentTool,activeToolCalls:$t.activeToolCalls,toolInputCharCount:$t.toolInputCharCount,toolInputContent:$t.toolInputContent,lastLiveActivityLabel:$t.lastLiveActivityLabel,iterationHistory:$t.iterationHistory,currentIteration:$t.currentIteration,isCompacting:$t.isCompacting}),[at,aw,$t.activeToolCalls,$t.currentIteration,$t.currentResponse,$t.currentTool,$t.isCompacting,$t.isThinking,$t.iterationHistory,$t.lastLiveActivityLabel,$t.thinkingCharCount,$t.thinkingContent,$t.toolInputCharCount,$t.toolInputContent]);Ke(()=>{if(!ZT){_T(null);return}_T(f=>f??Np())},[Np,ZT]);let Kn=st.display?.snapshot??z$,yi=Kn?.items??aw,er=Kn?.isLoading??at,Rt=Kn?{isThinking:Kn.isThinking,thinkingCharCount:Kn.thinkingCharCount,thinkingContent:Kn.thinkingContent,currentResponse:Kn.currentResponse,currentTool:Kn.currentTool,activeToolCalls:Kn.activeToolCalls,toolInputCharCount:Kn.toolInputCharCount,toolInputContent:Kn.toolInputContent,managedLiveEvents:Kn.managedLiveEvents,lastLiveActivityLabel:Kn.lastLiveActivityLabel,iterationHistory:Kn.iterationHistory,currentIteration:Kn.currentIteration,isCompacting:Kn.isCompacting}:$t,tr=ue?ju:yi,Oi=ue?zt:er,It=ue?Be:Rt,ev=er&&!Rt.currentResponse&&!Rt.thinkingContent&&Rt.activeToolCalls.length===0,uN=cf(Yy?.status==="running"),Tn=be(()=>pR(Yy,Date.now()),[Yy,uN]),tv=Tn.shouldRender?`Workflow ${Tn.workflow}${Tn.phase?` - ${Tn.phase}`:""}`:void 0,lo=be(()=>hP(Ip,{now:Date.now(),lastAllCompletedAt:null}),[Ip]),nv=S<=20?1:uS,dN=cf(tw.length>0),cw=be(()=>NR(tw,nv,Date.now()),[nv,tw,dN]),rv=$R({isTranscriptMode:ue,isLoading:at,hasWorkflowLiveSurface:Tn.shouldRender,childActivityVisible:cw.shouldRender}),bc=be(()=>{if(!ue)return[];let f=[];return f.push(...fR(Tn)),at&&lo.shouldRender&&f.push(...fP(lo)),f},[ue,at,lo,Tn]),ta=be(()=>({config:yu,sessionId:n.sessionId,workingDir:e.context?.executionCwd||e.context?.gitRoot||n.runtimeInfo?.executionCwd||n.gitRoot||process.cwd(),terminalWidth:Ee,compactionInfo:A??void 0}),[A,n.sessionId,yu,n.runtimeInfo?.executionCwd,e.context?.gitRoot,e.context?.executionCwd,Ee]),is=be(()=>c.enabled&&Z&&(ue||!st.display||st.display.window!==void 0&&st.display.window.nextCursor===void 0)?tq(ta):void 0,[ta,c.enabled,Z,ue,st.display]),iv=he(au),ov=he(!1),lw=he(!1),Rc=jL({enabled:nq,useRendererViewportShell:ea,isTranscriptMode:ue,hasCommitHandle:typeof La(g)?.commitInlineScrollback=="function"}),Uu=be(()=>Uh({items:yi,viewportWidth:Ee,maxLines:mn,showDetailedTools:!1,showAllContent:!1,windowed:!1}),[yi,Ee,mn]),na=be(()=>{let f=Vh({activeItems:Uu.activeItems,viewportWidth:Ee,isLoading:er,maxLines:mn,isThinking:Rt.isThinking,thinkingCharCount:Rt.thinkingCharCount,thinkingContent:Rt.thinkingContent,streamingResponse:Rt.currentResponse,currentTool:Rt.currentTool,activeToolCalls:Rt.activeToolCalls,toolInputCharCount:Rt.toolInputCharCount,toolInputContent:Rt.toolInputContent,iterationHistory:Rt.iterationHistory,currentIteration:Rt.currentIteration,isCompacting:Rt.isCompacting,managedAgentMode:G.agentMode,managedPhase:er?se?.phase:void 0,managedHarnessProfile:er?se?.harnessProfile:void 0,managedWorkerTitle:er?se?.activeWorkerTitle:void 0,managedRound:er?se?.currentRound:void 0,managedMaxRounds:er?se?.maxRounds:void 0,managedGlobalWorkBudget:er?se?.globalWorkBudget:void 0,managedBudgetUsage:er?se?.budgetUsage:void 0,managedBudgetApprovalRequired:er?se?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Rt.lastLiveActivityLabel,currentTodoActiveForm:pc,showFullThinking:!1,showDetailedTools:!1,showAllContent:!1,showLiveProgressRows:ev}),y=_E(Uu,f,is);return GL(y,Rc)},[G.agentMode,Rc,er,Rt.activeToolCalls,Rt.currentIteration,Rt.currentTool,Rt.isCompacting,Rt.currentResponse,Rt.isThinking,Rt.iterationHistory,Rt.lastLiveActivityLabel,Rt.thinkingCharCount,Rt.thinkingContent,Rt.toolInputCharCount,Rt.toolInputContent,se?.activeWorkerTitle,se?.budgetApprovalRequired,se?.budgetUsage,se?.currentRound,se?.globalWorkBudget,se?.harnessProfile,se?.maxRounds,se?.phase,ev,Uu,is,Ee,mn,pc]),uw=be(()=>Uh({items:ju,viewportWidth:Ee,maxLines:mn,showDetailedTools:an,showAllContent:an,showFullThinking:!0,windowed:!1}),[ju,Ee,mn,an]),Dp=be(()=>{if(!ue||ea)return;let f=Vh({activeItems:uw.activeItems,viewportWidth:Ee,isLoading:zt,maxLines:mn,isThinking:Be.isThinking,thinkingCharCount:Be.thinkingCharCount,thinkingContent:Be.thinkingContent,streamingResponse:Be.currentResponse,currentTool:Be.currentTool,activeToolCalls:Be.activeToolCalls,toolInputCharCount:Be.toolInputCharCount,toolInputContent:Be.toolInputContent,iterationHistory:Be.iterationHistory,currentIteration:Be.currentIteration,isCompacting:Be.isCompacting,managedAgentMode:G.agentMode,managedPhase:zt?se?.phase:void 0,managedHarnessProfile:zt?se?.harnessProfile:void 0,managedWorkerTitle:zt?se?.activeWorkerTitle:void 0,managedRound:zt?se?.currentRound:void 0,managedMaxRounds:zt?se?.maxRounds:void 0,managedGlobalWorkBudget:zt?se?.globalWorkBudget:void 0,managedBudgetUsage:zt?se?.budgetUsage:void 0,managedBudgetApprovalRequired:zt?se?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Be.lastLiveActivityLabel,liveStatusLines:bc,currentTodoActiveForm:pc,showFullThinking:!0,showDetailedTools:an,showAllContent:an,showLiveProgressRows:!$p,expandedItemKeys:On});return JO(kx(Gh(uw,f)),is)},[G.agentMode,On,$p,is,ue,se?.activeWorkerTitle,se?.budgetApprovalRequired,se?.budgetUsage,se?.currentRound,se?.globalWorkBudget,se?.harnessProfile,se?.maxRounds,se?.phase,Ee,zt,mn,uw,Be.activeToolCalls,Be.currentIteration,Be.currentResponse,Be.currentTool,Be.isCompacting,Be.isThinking,Be.iterationHistory,Be.lastLiveActivityLabel,Be.thinkingCharCount,Be.thinkingContent,Be.toolInputCharCount,Be.toolInputContent,an,bc,ea,pc]),Vu=be(()=>{if(en)return ue?JO(Kh({items:tr,viewportWidth:Ee,isLoading:Oi,maxLines:mn,isThinking:It.isThinking,thinkingCharCount:It.thinkingCharCount,thinkingContent:It.thinkingContent,streamingResponse:It.currentResponse,currentTool:It.currentTool,activeToolCalls:It.activeToolCalls,toolInputCharCount:It.toolInputCharCount,toolInputContent:It.toolInputContent,iterationHistory:It.iterationHistory,currentIteration:It.currentIteration,isCompacting:It.isCompacting,managedAgentMode:G.agentMode,managedPhase:Oi?se?.phase:void 0,managedHarnessProfile:Oi?se?.harnessProfile:void 0,managedWorkerTitle:Oi?se?.activeWorkerTitle:void 0,managedRound:Oi?se?.currentRound:void 0,managedMaxRounds:Oi?se?.maxRounds:void 0,managedGlobalWorkBudget:Oi?se?.globalWorkBudget:void 0,managedBudgetUsage:Oi?se?.budgetUsage:void 0,managedBudgetApprovalRequired:Oi?se?.budgetApprovalRequired:void 0,lastLiveActivityLabel:It.lastLiveActivityLabel,liveStatusLines:bc,currentTodoActiveForm:pc,windowed:!0,showFullThinking:ue,showDetailedTools:an,showAllContent:an,showLiveProgressRows:ue&&!$p,expandedItemKeys:ue?On:void 0}),is):kx(na)},[G.agentMode,Oi,tr,$p,is,It.activeToolCalls,It.currentIteration,It.currentResponse,It.currentTool,It.isCompacting,It.isThinking,It.iterationHistory,It.lastLiveActivityLabel,It.thinkingCharCount,It.thinkingContent,It.toolInputCharCount,It.toolInputContent,On,ue,se?.activeWorkerTitle,se?.budgetApprovalRequired,se?.budgetUsage,se?.currentRound,se?.globalWorkBudget,se?.harnessProfile,se?.maxRounds,se?.phase,na,at,ue,Ee,mn,en,bc,an,pc]),vn=be(()=>Vu??Dp,[Vu,Dp]),Gu=be(()=>oT({status:se,isLoading:at,agentMode:G.agentMode}),[G.agentMode,at,se]).workStripText,Ku=hn?.workStripText??qs,kc=be(()=>oT({status:se,isLoading:at,agentMode:G.agentMode,parallelTextOverride:Ku}),[G.agentMode,Ku,at,se]),ra=be(()=>JL(tr).filter(f=>f!==zh),[tr]),Et=be(()=>Iy(ot,ra,ot.selectedItemId),[ra,ot]),cn=be(()=>tr.find(f=>f.id===Et),[tr,Et]),sv=be(()=>({...ot,supportsSelection:ot.supportsSelection&&en,supportsCopyOnSelect:ot.supportsCopyOnSelect&&en}),[ot,en]),Qr=be(()=>IO({state:sv,selectableItemIds:ra,selectedItemId:Et,selectedItemType:cn?.type,isExpanded:Et?On.has(Et):!1}),[On,ra,cn?.type,Et,sv]),av=Qr.selectionEnabled,cv=Qr.copyCapabilities.copyOnSelect,TX=Qr.selectedItemIndex,lv=be(()=>YL(cn),[cn]),Bp=be(()=>KL(rs.filter(f=>!Mx(f))),[rs]),bn=be(()=>zL(Bp,Zn),[Bp,Zn]),Hp=be(()=>vO({isHistorySearchActive:Kt,historySearchQuery:Zn,matches:bn,selectedIndex:_p,anchorItemId:ot.searchAnchorItemId,useOverlaySurface:ot.supportsOverlaySurface&&ot.supportsSearchViewport&&en}),[bn,Zn,_p,Kt,ot.searchAnchorItemId,ot.supportsOverlaySurface,ot.supportsSearchViewport,en]),os=Hp.clampedSelectedIndex,uv=Hp.statusText,dw=Hp.detailText,dv=Hp.searchState,vX=Qr.detailState==="expanded",Fp=Qr.selectionEnabled&&ra.length>0&&!gi,Ec=Qr.copyCapabilities.message,Wp=Qr.copyCapabilities.toolInput,jp=Qr.toggleDetail;Ke(()=>{if(Gu){if(Mi.current&&(clearTimeout(Mi.current),Mi.current=null),qs===Gu)return;if(qs){Wn.current&&(clearTimeout(Wn.current),Wn.current=null),Lu(Gu);return}Wn.current&&clearTimeout(Wn.current),Wn.current=setTimeout(()=>{Lu(Gu),Wn.current=null},400);return}if(!qs){Wn.current&&(clearTimeout(Wn.current),Wn.current=null);return}Wn.current&&(clearTimeout(Wn.current),Wn.current=null),Mi.current&&clearTimeout(Mi.current),Mi.current=setTimeout(()=>{Lu(void 0),Mi.current=null},300)},[Zs,Gu,qs]),Ke(()=>()=>{Zs()},[Zs]);let ss=be(()=>({...tO({state:ot,ownsViewport:en,isAwaitingUserInteraction:Li,isHistorySearchActive:Kt,isTranscriptMode:ue,historySearchQuery:Zn}),...st.display?{browseHintText:st.display.hint,jumpToLatest:{visible:!0,label:"Back to live",hint:"End",tone:"accent"}}:{}}),[Zn,Li,Kt,ue,ot,en,st.display]);Ke(()=>{Ei(f=>{let y=KP(f,In);return y=GP(y,Wu),y=qP(y,c.enabled&&en?!Gy||Kt||Li:ue||Kt||Li),y=JP(y,os),y})},[os,c.enabled,In,Li,Kt,ue,Wu,en,Gy]),Ke(()=>{_p!==os&&hi(os)},[os,_p]),Ke(()=>{if(!Kt){iw.current=Zn;return}if(Zn===iw.current)return;iw.current=Zn;let f=XL(Bp,bn,ot.searchAnchorItemId);hi(f)},[bn,Zn,Kt,ot.searchAnchorItemId,Bp]);let Nn=st.display?$t:Rt,fv=ue?Be:{isThinking:Nn.isThinking,thinkingCharCount:Nn.thinkingCharCount,currentTool:Nn.currentTool,activeToolCalls:Nn.activeToolCalls,toolInputCharCount:Nn.toolInputCharCount,toolInputContent:Nn.toolInputContent,currentIteration:Nn.currentIteration,isCompacting:Nn.isCompacting},zu=ue?zt:st.display?at:er,Rn=he(Promise.resolve()),Zr=he({sessionId:n.sessionId,patch:cr(G,e.maxIter)});Ke(()=>{if(e.sessionCommands?.read)return;let f=n.sessionId,y={...cr(G,e.maxIter),autoModeClassifierModel:s.classifierModel??null},w=Zr.current,b=w.sessionId===f?iu(w.patch,y):y;if(Object.keys(b).length===0)return;let R=o(async()=>{e.clientPlane?.updateSettings?await e.clientPlane.updateSettings(f,b):await e.runtimeAutoModeControl?.syncSettings?.(f,So(G.permissionMode),s),Zr.current={sessionId:f,patch:y}},"write");Rn.current=Rn.current.then(R,R),Rn.current.catch(E=>Ge({source:"repl:settings",level:"error",message:"Session settings could not be synchronized.",detail:E}))},[s,n.sessionId,G.provider,G.model,G.effort,G.effortOverride,G.planModeEffort,G.thinking,G.reasoningMode,G.agentMode,G.permissionMode,e.clientPlane,e.maxIter,e.runtimeAutoModeControl]);let Up=be(()=>xO({sessionId:n.sessionId,hostSettings:G.hostSettings,permissionMode:G.permissionMode,agentMode:G.agentMode,workMode:G.workMode,provider:G.provider,model:G.model??(e.clientPlane?"\u2014":Sa(G.provider)??G.provider),thinking:G.thinking,reasoningMode:G.reasoningMode,effort:Ks,reasoningEffortLabel:Xc({provider:G.provider,model:G.model,effort:Ks,effortOverride:G.effortOverride,thinking:G.thinking,reasoningMode:G.reasoningMode}),isTranscriptMode:ue,streamingState:fv,clientActivity:W?.session.id===n.sessionId?W.activity:void 0,parentContextTokens:W?.session.id===n.sessionId?W.parentContextTokens:void 0,maxIter:hn?.maxIter??W?.settings.maxIter??e.maxIter??ce.maxIter,contextUsage:qT,learning:Mr,isLoading:zu,managedState:{phase:se?.phase,harnessProfile:se?.harnessProfile,workerTitle:se?.activeWorkerTitle,round:se?.currentRound,maxRounds:se?.maxRounds,globalWorkBudget:se?.globalWorkBudget,budgetUsage:se?.budgetUsage,budgetApprovalRequired:se?.budgetApprovalRequired,idleWaiting:se?.idleWaiting,idleWaitingPendingCount:se?.idleWaitingPendingCount}}),[n.sessionId,G.hostSettings,G.permissionMode,G.agentMode,G.workMode,G.provider,G.model,G.thinking,G.reasoningMode,G.effortOverride,Ks,ue,fv,hn?.maxIter,W,e.maxIter,ce.maxIter,qT,Mr,zu,se?.phase,se?.harnessProfile,se?.activeWorkerTitle,se?.currentRound,se?.maxRounds,se?.globalWorkBudget,se?.budgetUsage,se?.budgetApprovalRequired,se?.idleWaiting,se?.idleWaitingPendingCount]),fw=ht?"confirm":Qe?.kind,pw=Gs&&Qt?.activity?.runId===Gs?Qt.activity.streaming:void 0,pv=be(()=>{let f=wO({isTranscriptMode:ue,isLoading:zu,streamingState:Nn,managedState:zu?{phase:se?.phase,harnessProfile:se?.harnessProfile,workerTitle:se?.activeWorkerTitle}:void 0,waitingReason:fw,workflowBuilderMessage:Xy??void 0,backgroundWorkflowMessage:tv});return f?.kind!=="busy"||!pw||Lp||Xy||(Qt?.activity?.compacting??Nn.isCompacting)?f:{...f,text:Qh(pw)}},[pw,Lp,Qt?.activity?.compacting,Nn.activeToolCalls,Nn.currentTool,Nn.isCompacting,Nn.isThinking,Nn.thinkingCharCount,Nn.toolInputCharCount,Nn.toolInputContent,ue,se?.activeWorkerTitle,se?.harnessProfile,se?.phase,fw,zu,Xy,tv]),uo=gO({activity:pv})?pv:void 0,mv=uo?.text,hv=!!uo,gv=he(!1);Ke(()=>{gv.current&&!at&&fi(f=>f.length>0?[]:f),gv.current=at},[at]);let mw=be(()=>Zh(Up),[Up]),yv=be(()=>mw,[mw]),wv=yv.text,fN=be(()=>TM(oe),[oe]),hw=be(()=>gP({isHistorySearchActive:Kt,isTranscriptMode:ue,pendingInputCount:oe.length,buffering:ot.buffering,pendingLiveUpdates:Wu}),[Kt,ue,Wu,oe.length,ot.buffering]),Sv=hw.leftItems,xv=hw.rightItems,Iv=hw.summary,Vp=be(()=>RO({historySearchQuery:Zn,pendingInputCount:oe.length}),[Zn,oe.length]),Gp=be(()=>{let f=bO({historySearchQuery:Zn,isHistorySearchActive:Kt,historySearchMatchCount:bn.length,pendingInputCount:oe.length,maxPendingInputs:5}),y=q?.state==="interrupted"?"Host observation interrupted; displayed state may be outdated.":q?.state==="closed"&&q.reason==="unavailable"?"Host observation unavailable; displayed state may be outdated.":void 0;return[...f,...Xr,...Fe,...y?[{id:"host-observation",text:y}]:[]]},[bn.length,Zn,Kt,Xr,Fe,q,oe.length]),Cv=be(()=>Gp.map(f=>f.text).join(" | "),[Gp]),Kp=be(()=>kO({inputText:hp,isTranscriptMode:ue,isHistorySearchActive:Kt}),[hp,Kt,ue]),Tv=ot.supportsOverlaySurface&&ot.supportsSearchViewport&&en,zp=be(()=>CO({runtime:Qr,itemSummary:lv}),[lv,Qr]),gw=be(()=>EO(Vp),[Vp]),vv=be(()=>MO({textSelection:gi,selectionState:zp,isHistorySearchActive:Kt,historySearchDetailText:dw,historySearchHasMatches:!!uv&&bn.length>0,showAllActive:an,baseFooterNotices:Vp}),[gi,Vp,dw,bn.length,uv,Kt,an,zp]),pN=vv.secondaryText,mN=vv.budgetNotices,bv=ue?mN:gw,Rv=S,kv=ue?"":hp,Ev=ue?void 0:fN,Mv=Ku,Av=ue?!1:UT,_v=Tn.shouldRender?cP(Tn):0,Pv=at&&lo.shouldRender?lo.rows.length:0,Lv=rv?sI(cw):0,Wt=be(()=>WP({terminalRows:Rv,terminalWidth:Ee,windowedTranscript:ea,inputText:kv,footerHeaderText:Iv,activitySummary:ue?void 0:mv,activityBarVisible:ue?!1:hv,workflowSurfaceRows:ue?0:_v,childActivitySurfaceRows:ue?0:Lv,todoSurfaceRows:ue?0:Pv,pendingInputSummary:Ev,stashNoticeSummary:Kp,notificationSummary:Cv,statusNoticeSummary:bv.join(" | "),workStripText:Mv,suggestionsReserved:Op,suggestionsMode:"inline",showHelp:Av,statusBarText:wv,confirmPrompt:ht?.prompt,confirmInstruction:Fu,dialogMode:"inline",reviewHint:c.enabled&&en?void 0:ss.browseHintText,uiRequest:Qe?Qe.kind==="select"?{kind:"select",title:Qe.title,options:Qe.options.map(f=>({label:f.label,description:f.description})),buffer:Qe.buffer,error:Qe.error}:{kind:"input",prompt:Qe.prompt,defaultValue:Qe.secret?void 0:Qe.defaultValue,buffer:Qe.secret&&Qe.buffer?"\u2022\u2022\u2022\u2022":Qe.buffer,error:Qe.error}:null}),[Rv,Ee,kv,Iv,mv,hv,ue,_v,Lv,Pv,Ev,Kp,Cv,bv,Mv,Op,Tv,Av,wv,ht,Fu,c.enabled,ss.browseHintText,en,Qe]),yw=be(()=>{if(!Rc)return{model:na,committedSections:[]};let{committedSections:f,liveRows:y}=PE(Uu.staticSections,na.rows,na.previewRows,Wt.messageRows);return{model:{...na,staticSections:[],rows:y,previewRows:[]},committedSections:f}},[Rc,na,Uu.staticSections,Wt.messageRows]),Ov=yw.model;Ke(()=>{let f=La(g),y=typeof f?.commitInlineScrollback=="function",w=UL({active:Rc,hasCommitHandle:y,wasActive:ov.current,forceRebuild:lw.current,prior:iv.current,finalizedSections:yw.committedSections,bannerSection:is,width:Ee,identify:LE}),b=!1,R=!1;if(w.kind==="commit"){let D=w.sections.flatMap(Q=>Q.rows),j=WL(D.length>0?[{key:"il-delta",rows:D}]:[],{width:Ee,theme:ye("dark")});if(R=j.length>0,w.mode==="append"&&!j)QO("empty-append-text");else try{f?.commitInlineScrollback?.({mode:w.mode,text:j}),b=!0}catch(Q){QO("commit-threw",Q)}}let E=VL(w,{committed:b,hadContent:R},lw.current);iv.current=E.state,ov.current=E.wasActive,lw.current=E.owns},[Rc,yw.committedSections,is,Ee,g]);let hN=be(()=>xe(eI,{reserveSpace:Op,width:Ee,hidden:ue,mode:"inline"}),[Op,Ee,ue,Tv]),qu=be(()=>nO(Wt.messageRows),[Wt.messageRows]),$v=be(()=>rO(qu),[qu]),Mc=!Lp&&c.transcriptSpinnerAnimation,ia=vn?vn.rows.length+vn.previewRows.length:F$,Nv=he(st.display?.anchor),Dv=he({width:Ee,rows:vn?.rows,items:yi,viewportRows:Wt.messageRows});vz(()=>{let f=Dv.current;if(Dv.current={width:Ee,rows:vn?.rows,items:yi,viewportRows:Wt.messageRows},!st.display||!vn)return;let y=st.display.anchor,w=y!==Nv.current?y:f.rows&&(f.width!==Ee||f.viewportRows!==Wt.messageRows)?pC(f.items,f.rows,Math.max(0,f.rows.length-f.viewportRows-In)):void 0;if(!w)return;Nv.current=y;let b=q_(yi,vn.rows,w);b!==void 0&&bu(Math.max(0,vn.rows.length-Wt.messageRows-b))},[st.display,vn,yi,Wt.messageRows,Ee,In,bu]);let qp=Y(f=>{if(ue||!en||a!=="owned"||!e.clientPlane){Ru(f);return}let y=f<0&&In+f<=0;if(y&&!st.display?.window?.newerCursors.length){st.reset(),Qo();return}if(st.loading())return;let w=Math.max(0,ia-Wt.messageRows),b=Math.max(0,Math.min(w,In+f));if(f>0||y){let R=vn?.rows??Eu.current,E=pC(yi,R,Math.max(0,R.length-Wt.messageRows-b),f<0?"bottom":"top");st.browse(Np(),E,f<0||b===w,f<0?"newer":"older")}Ru(f)},[ue,en,a,e.clientPlane,In,ia,Wt.messageRows,vn,yi,Np,st,Ru,Qo]),Xp=Y(f=>{vn||W$(f.scrollHeight)},[vn]),Xu=Y(f=>lO({window:f,stickyHeader:ss.stickyHeader,width:Ee,topChromeRows:0}),[Ee,ss.stickyHeader]),Ac=Y((f=ku.current,y=Eu.current,w=Ky.current?Xu(Ky.current):yp.current)=>{if(!w||f.length===0){lc.current=null;return}yp.current=w,lc.current=uO(f,{allRows:y,rowIndexByKey:ZC(y),topOffsetRows:w.topOffsetRows,viewportHeight:w.contentWindow.viewportHeight,animateSpinners:Mc})},[Xu,Mc]),Yu=Y(()=>{let f=yp.current;return f?.contentWindow.viewportHeight&&f.contentWindow.viewportHeight>0?f.contentWindow.viewportHeight:Wt.messageRows},[Wt.messageRows]),gN=Y(f=>{Ky.current=f;let y=Xu(f);yp.current=y,Ac(ku.current,Eu.current,y)},[Ac,Xu]),Yp=Y(f=>{ku.current=f.rows,Eu.current=f.allRows,Ac(f.rows,f.allRows)},[Ac]),kn=Y(()=>{di.current=null,zy(void 0),qy(void 0)},[]),ww=Y(()=>{kn(),Ei(f=>su(f,void 0))},[kn]);Ke(()=>{Ac()},[Ac]),Ke(()=>{U$(f=>iO(f,ia,Wt.messageRows))},[ia,Wt.messageRows]),Ke(()=>{if(!Sp)return;let f=setTimeout(()=>{AT(void 0)},2e3);return()=>{clearTimeout(f)}},[Sp]);let tn=Y((f,y="success")=>{let w=f?.trim();w&&AT({text:w,tone:y})},[]);Ke(()=>e.subscribeTransientNotices?.(f=>{tn(f.text,f.tone)}),[e.subscribeTransientNotices,tn]);let yN=Y(f=>{tn(f,"warning")},[tn]),$i=Y((f,y)=>{let w=y instanceof Error?y.message:String(y);return`${f}: ${w}`},[]),_c=he(void 0),Ju=he({sessionId:n.sessionId,isTranscriptMode:ue,selectedItemId:ot.selectedItemId,historyScrollOffset:In,expandedTranscriptItemIds:On,activeTextSelection:gi,snapshot:_r});Ju.current={sessionId:n.sessionId,isTranscriptMode:ue,selectedItemId:ot.selectedItemId,historyScrollOffset:In,expandedTranscriptItemIds:On,activeTextSelection:gi,snapshot:_r},Ke(()=>()=>_c.current?.abort(),[n.sessionId,ue,_r,Et]);let Jp=Y(async()=>{let f=e.clientPlane;if(!f||_r?.completeHistoryLoaded)return!0;if(!_r)return!1;_c.current?.abort();let y=new AbortController;_c.current=y;let w=Ju.current;tn("Loading complete saved history\u2026");try{let[b,R]=await Promise.all([eM(f,w.sessionId,y.signal),Wx(f,w.sessionId,_r.items,y.signal)]),E=Ju.current;if(y.signal.aborted||E.sessionId!==w.sessionId||!E.isTranscriptMode||E.snapshot!==w.snapshot)return!1;if(E.selectedItemId!==w.selectedItemId||E.historyScrollOffset!==w.historyScrollOffset||E.expandedTranscriptItemIds!==w.expandedTranscriptItemIds||E.activeTextSelection!==w.activeTextSelection)return tn("Your current selection was kept. Open complete history again when ready.","warning"),!1;let D=OO({..._r,items:R},b);return D?(Mu(j=>j===w.snapshot?D:j),tn("Showing complete saved history. Esc returns to current output."),!0):(tn("Older history could not be loaded without changing this view. Reopen transcript to try again.","warning"),!1)}catch(b){return y.signal.aborted||tn($i("Complete history unavailable",b),"warning"),!1}},[e.clientPlane,n.sessionId,_r,tn,$i]),Qp=Y(async f=>{let y=f??gi;if(!y)return!1;let w=y.text.trimEnd();if(!w)return!1;try{return await Td(w,{terminalWrite:v}),tn(`Copied ${y.rowCount} selected line${y.rowCount===1?"":"s"} to clipboard.`,"success"),!0}catch(b){return tn($i("Failed to copy transcript selection",b),"warning"),!1}},[gi,$i,tn,v]),Pc=Y(f=>{if(!f||sO({items:tr,renderModel:vn,terminalWidth:Ee,transcriptMaxLines:mn,viewportRows:Yu(),itemId:f,visibleRows:ku.current,expandedItemKeys:On,showDetailedTools:!1}))return;let y=aO({items:tr,renderModel:vn,terminalWidth:Ee,transcriptMaxLines:mn,viewportRows:Yu(),itemId:f,expandedItemKeys:On,showDetailedTools:!1});bu(y)},[tr,Ee,mn,vn,On,Yu,bu,ku]),Bv=Y(f=>{Ei(y=>su(y,f)),f&&Pc(f)},[Pc]),Sw=Y(f=>{f&&Pc(f)},[Pc]),Hv=Y(f=>{if(!Fp)return;let y=QL(ra,Et,f);y&&Bv(y)},[Fp,ra,Et,Bv]),Lc=Y(async f=>{let y=e.clientPlane;if(!y)return f;_c.current?.abort();let w=new AbortController;_c.current=w;let b=Ju.current;try{let[R]=await Wx(y,b.sessionId,[f],w.signal),E=Ju.current;return w.signal.aborted||E.sessionId!==b.sessionId||!E.isTranscriptMode||E.snapshot!==b.snapshot||E.selectedItemId!==b.selectedItemId||E.historyScrollOffset!==b.historyScrollOffset||E.activeTextSelection!==b.activeTextSelection||E.expandedTranscriptItemIds!==b.expandedTranscriptItemIds?void 0:R}catch(R){if(w.signal.aborted)return;throw R}},[e.clientPlane]),Fv=Y(async()=>{if(!jp||!Et)return;let f=cn;if(e.clientPlane&&f&&!On.has(f.id))try{let y=await Lc(f);if(!y)return;Mu(w=>w!==_r||w===null?w:{...w,items:w.items.map(b=>b.id===f.id?y:b)})}catch(y){tn($i("Full entry unavailable",y),"warning");return}K$(y=>{let w=new Set(y);return w.has(Et)?w.delete(Et):w.add(Et),w}),Pc(Et)},[Pc,jp,Et,cn,e.clientPlane,On,_r,Lc,tn,$i]),Wv=Y(async()=>{if(!(!Ec||!cn))try{let f=Ay(cn),y=cn.totalTextLength!==void 0||cn.totalInputLength!==void 0||jx(f??"");if(y){let w=await Lc(cn);if(!w)return;if(f=Ay(w),jx(f??""))throw new Error("Full transcript content is unavailable.")}if(!f)return;await Td(f,{terminalWrite:v}),tn(y?"Copied the complete transcript entry to clipboard.":"Copied selected transcript entry to clipboard.","success")}catch(f){tn($i("Failed to copy transcript entry",f),"warning")}},[$i,Ec,n.sessionId,e.clientPlane,Lc,cn,tn,v]),jv=Y(async()=>{if(!(!Wp||!cn))try{let f=e.clientPlane&&cn.totalInputLength!==void 0?await Lc(cn):cn;if(!f)return;let y=ZL(f);if(!y)return;await Td(y,{terminalWrite:v}),tn("Copied selected tool args to clipboard.","success")}catch(f){tn($i("Failed to copy tool args",f),"warning")}},[$i,Wp,n.sessionId,e.clientPlane,Lc,cn,tn,v]),Qu=Y(()=>Eu.current,[]),Uv=Y((f,y)=>{if(!c.enabled||!en)return;let w=lc.current;return w?tT(w,f,y):void 0},[c.enabled,en]),Oc=Y((f,y,w)=>{let b=Qu(),R=pO(b,f,y,{animateSpinners:Mc,selectFullRowOnCollapsed:w?.selectFullRowOnCollapsed});ue?qy(R):zy(R);let E=b[Math.max(0,Math.min(y.modelRowIndex,b.length-1))];return w?.updateSelectedItem&&E?.itemId&&Ei(D=>su(D,E.itemId)),R},[ue,Qu,Mc]),Vv=Y((f,y)=>{if(!f)return;di.current=null;let w={...f,focus:y?.focusPoint??f.focus};if(!(w.mode!=="char"||w.didDrag)){kn();return}let R=Oc(w.anchor,w.focus,{selectFullRowOnCollapsed:!1,updateSelectedItem:!1});if(!R){kn();return}return y?.copySelection!==!1&&Qp(R),R},[kn,Qp,Oc]),xw=Y(()=>{if(!ue||!tr.length||ht||Qe)return;gp(!0),kn();let f=cO({items:tr,selectedItemId:Et,renderModel:vn,terminalWidth:Ee,transcriptMaxLines:mn,viewportRows:Yu(),scrollOffset:In,expandedItemKeys:On,showDetailedTools:!1,preferViewportAnchor:!0});Ei(y=>XP(y,{anchorItemId:f,initialMatchIndex:0})),vc(""),hi(0),Jp()},[ht,Jp,tr,On,In,ue,Et,vn,Ee,mn,Qe,Yu,kn]),Iw=Y(()=>{Ei(f=>YP(f)),vc(""),hi(0),kn()},[kn]),Zp=Y(()=>{!Kt||bn.length===0||hi(-1)},[bn.length,Kt]),Gv=be(()=>{if(!ht)return null;if(ht.tool==="exit_plan_mode"){let f=typeof ht.input.plan=="string"?ht.input.plan:void 0;return{prompt:ht.prompt.split(`
|
|
179
|
-
`,1)[0]??ht.prompt,instruction:Fu,planContent:f}}return{prompt:ht.prompt,instruction:Fu}},[Fu,ht]),Kv=be(()=>Qe?Qe.kind==="select"?{kind:"select",title:Qe.title,options:Qe.options,buffer:Qe.buffer,error:Qe.error,visibleSelectOptions:Wt.visibleSelectOptions,focusedIndex:Qe.focusedIndex,selectedIndices:Qe.selectedIndices,multiSelect:Qe.multiSelect}:{kind:"input",prompt:Qe.prompt,defaultValue:Qe.defaultValue,secret:Qe.secret,buffer:Qe.buffer,error:Qe.error}:null,[Qe,Wt.visibleSelectOptions]),wN=be(()=>xe(nI,{confirm:Gv,request:Kv}),[Gv,Kv]),{cycle:SN,cancel:zv,notice:qv}=eP(TN,_i,n.sessionId),Cw=be(()=>{let f=qv??Sp;if(f)return xe(oP,{...f})},[Sp,qv]),Tw=be(()=>{if(Cw)return xe(O,{flexDirection:"column",width:"100%",children:Cw})},[Cw]),em=Y(()=>{Ei(f=>zP(VP(f))),gp(!1),Qo(),vc(""),hi(0),kn()},[kn,Qo]),Xv=Y(()=>{ue&&(gp(f=>!f),an?_c.current?.abort():Jp())},[ue,an,Jp]),xN=Y(()=>{if(ue){em();return}gp(!1),Ei(f=>UP(f)),vc(""),hi(0),kn()},[kn,em,ue]);Ke(()=>{av||!ot.selectedItemId||Ei(f=>su(f,void 0))},[av,ot.selectedItemId]),Ke(()=>{if(!ue||!Ec||!cv){Hu.current=void 0;return}if(so||!Et||!cn)return;if(!Hu.current){Hu.current=Et;return}if(Hu.current===Et)return;Hu.current=Et;let f=Ay(cn);f&&Td(f,{terminalWrite:v}).catch(()=>{})},[ue,cn,Et,Ec,cv,so,v]),Ke(()=>{if(g?.isTTY!==!0)return;let f=La(g);f?.setShellMode?.(XT,Pp),ow||f?.setAltScreenActive?.(!1)},[XT,g,ow,Pp]);let IN=be(()=>wP(i,()=>Vy.current),[i]),Le=he({...e,thinking:G.thinking,reasoningMode:G.reasoningMode,effort:oo,agentMode:G.agentMode,workMode:G.workMode,workflowRunsBaseDir:cs("workflow-runs",Br(process.cwd()).key),context:{...e.context,gitRoot:n.gitRoot??void 0,executionCwd:n.runtimeInfo?.executionCwd??n.gitRoot??process.cwd(),repoIntelligenceMode:G.repoIntelligenceMode,repoIntelligenceTrace:G.repoIntelligenceTrace,toolConstructionMode:!0},session:{...e.session,id:n.sessionId,storage:IN,persistedByHost:!0},guardrails:uT(G.permissionMode,d)});Ke(()=>{Le.current.effort=oo},[oo]);let oa=Y(f=>{let y=f.workspaceRoot??void 0;n.runtimeInfo=f,n.gitRoot=y,Le.current.context={...Le.current.context,gitRoot:y,executionCwd:f.executionCwd??y??process.cwd()}},[n]),zn=he(G.permissionMode),Yv=he(0);Ke(()=>{zn.current=G.permissionMode},[G.permissionMode]);let CN=be(()=>ms(),[]),tm=he(CN),qe=he(G);Ke(()=>{Cc?.getProvider().updateOptions({hostArguments:e.catalog?{catalog:e.catalog,selection:o(()=>qe.current,"selection")}:void 0})},[Cc?.getProvider,e.catalog]),Ke(()=>{qe.current=G},[G]),Ke(()=>{if(!e.clientPlane||W?.session.id!==n.sessionId)return;let f=Zr.current,y=Rn.current,w=!0,b=o(()=>{if(!w||y!==Rn.current)return;let R=f.sessionId===Zr.current.sessionId?iu(f.patch,Zr.current.patch):{},E=jo(qe.current,W,R);E!==qe.current&&(Zr.current={sessionId:n.sessionId,patch:{...Zr.current.patch,...cr(E,e.maxIter)}},qe.current=E,zn.current=E.permissionMode,ki(E))},"apply");return y.then(b,b),()=>{w=!1}},[W,n.sessionId,e.clientPlane,e.maxIter]);let nm=he(null);nm.current===null&&(nm.current=Pm({getProvider:o(()=>ua(qe.current.provider),"getProvider"),getModel:o(()=>qe.current.model??"","getModel")}));let fo=Y(async(f,y,w)=>{w?.throwIfAborted();let b=e.clientPlane;if(b?.updateSettings){let R=n.sessionId,E=iu(cr(qe.current,e.maxIter),cr(f,e.maxIter),y),D=o(async()=>{w?.aborted||(await b.updateSettings(R,E),!w?.aborted&&(Zr.current={sessionId:R,patch:{...Zr.current.patch,...E}}))},"write");Rn.current=Rn.current.then(D,D),await Rn.current}w?.throwIfAborted(),qe.current=f,ki(f)},[n.sessionId,e.clientPlane,e.maxIter]);async function TN(f){let y=qe.current;try{let w=await e.catalog.reasoningEfforts({provider:y.provider,model:y.model});if(f.throwIfAborted(),!w.length)return;let b=y.permissionMode==="plan"&&!y.effortOverride&&y.planModeEffort!==void 0?y.planModeEffort:y.effortOverride?y.effort:void 0,R=xC(w,b==="none"?"off":b??"auto"),E=w[(R+1)%w.length],D=await oR([E],{config:e.config,catalog:e.catalog,setEffort:o(async j=>fo({...qe.current,effort:j,effortOverride:j!==void 0},["effort"],f),"setEffort"),setReasoningMode:o(async j=>fo({...qe.current,reasoningMode:j,thinking:j!=="off"},["reasoningMode","thinking"],f),"setReasoningMode")},y);return D.success?{success:!0,message:`Effort: ${E==="off"?"none":E}`}:D}catch(w){return{success:!1,message:`Host effort selection failed: ${String(w)}`}}}o(TN,"selectNextHostEffort");let rm=Y(async f=>{let y=So(f),w=++Yv.current;if(e.clientPlane?.updateSettings){let R=e.clientPlane,E=n.sessionId,D={permissionMode:y},j=o(async()=>{await R.updateSettings(E,D),Zr.current={sessionId:E,patch:{...Zr.current.patch,...D}}},"write");Rn.current=Rn.current.then(j,j),await Rn.current}else await e.runtimeAutoModeControl?.syncSettings?.(n.sessionId,y,s);if(w!==Yv.current)return;ki(R=>({...R,permissionMode:y})),zn.current=y;let b=xa({provider:qe.current.provider,model:qe.current.model,effort:qe.current.effort,effortOverride:qe.current.effortOverride,permissionMode:y,planModeEffort:qe.current.planModeEffort,thinking:qe.current.thinking,reasoningMode:qe.current.reasoningMode});Le.current={...Le.current,effort:b.runtimeEffort,guardrails:uT(y,d)}},[d,s,n.sessionId,e.clientPlane,e.maxIter,e.runtimeAutoModeControl]),Jv=he(ce.pendingInputs),Pt=he(!1),Qv=he(0),vw=he(null),Zu=he(0),im=Y(()=>{if(xu.current)return;let f=Tp.current?.trim(),y=vt.current.length>0?vt.current[vt.current.length-1]:void 0,w=y&&"text"in y&&typeof y.text=="string"?y.text.trim():void 0,R=$n.current.length>0?[...$n.current.map(E=>zo(E)),...f&&f!==w?[{type:"info",text:f}]:[]]:[...$n.current.map(E=>zo(E)),...zz(we(),Ln(),{toolCalls:jn.current,toolNames:Ai.current,infoItems:f&&f!==w?[f]:[]})];R.length!==0&&(xu.current=!0,wc($n.current),cc.current?.(R))},[Ln,we,wc]);Ke(()=>{Jv.current=ce.pendingInputs},[ce.pendingInputs]);let Zv=Y(()=>{Pt.current=!0,ft(),ze(),pt(),rt(),kt(),mt(),tt(void 0),ts(),Zt(void 0),Qs(),Xs.current=[],mc.current=[],Ft.current=null,Tp.current=null,_u([]),xp(null),uc(null),Zs(),Lu(void 0),Fn(!1),g?.isTTY===!0&&La(g)?.clear?.()},[ft,mt,rt,kt,Zs,ts,Qs,tt,_u,Fn,Zt,ze,pt,g]),om=Y(f=>{if(Jo.current){let b=mu();return Jo.current.request().then(()=>b()).catch(R=>{Ge({source:"repl:stop",level:"error",message:R instanceof Error?R.message:String(R)})}),!0}let y=dc.current,w=e.workflows;return!y||!w?!1:((async()=>{let b=await w.get(y.runId);if(!n.sessionId||b?.hostMetadata?.ownerSessionId!==n.sessionId)throw new Error("Stop the workflow from the Session that owns it.");let R=await w.stop(y.runId,{sessionId:n.sessionId});Cn({type:"info",text:R?`Stop requested for workflow ${y.runId}; waiting for cleanup.`:`Workflow ${y.runId} did not accept the stop request.`},"workflow-stop")})().catch(b=>{Cn({type:"info",text:b instanceof Error?b.message:String(b)},"workflow-stop")}),!0)},[mu,n.sessionId,Cn,e.workflows]);Ke(()=>{if(!Tn.shouldRender)return;let f=o(()=>{om("stopped by Ctrl+C")},"handleSigint");return process.on("SIGINT",f),()=>{process.off("SIGINT",f)}},[om,Tn.shouldRender]),Wr(hr.Critical,f=>{let y=f.name==="escape",w=Date.now(),b=y&&!ue&&!Li&&Cu&&oe.length===0&&(at||Tn.shouldRender),R=b&&(f.meta===!0||w-Qv.current<bz);if(Qv.current=b?w:0,lL({keyName:f.name,ctrl:!!f.ctrl,isTranscriptMode:ue,isAwaitingUserInteraction:Li,isInputEmpty:Cu,isDoubleEscape:R,pendingInputCount:oe.length,hasTranscriptTextSelection:!!so,hasActiveWorkflow:Tn.shouldRender}))return om(f.ctrl?"stopped by Ctrl+C":"stopped by Escape");if(!at)return!1;switch(uL({keyName:f.name,ctrl:!!f.ctrl,isTranscriptMode:ue,isAwaitingUserInteraction:Li,isInputEmpty:Cu,isDoubleEscape:R,pendingInputCount:oe.length,hasTranscriptTextSelection:!!so}).kind){case"interrupt":if(Jo.current){let D=mu();return Jo.current.request().then(()=>D()).catch(j=>{Ge({source:"repl:stop",level:"error",message:j instanceof Error?j.message:String(j)})}),!0}return im(),Zv(),$({type:"info",text:Re("cancellationRequested")}),!0;case"pop-pending-input":return ce.pendingInputs.length>0?(qr(),!0):(je?.discardNewest(n.sessionId,(W?.queue??[]).map(D=>D.inputId)).catch(D=>{X(`withdraw-${Date.now()}`,`Withdraw failed \u2014 the queued input may still run. ${D instanceof Error?D.message:String(D)}`)}),!0);default:break}return!1},[at,ue,Li,Cu,oe.length,ce.pendingInputs.length,W,je,n.sessionId,X,qr,im,Zv,mu,$,om,so,Tn.shouldRender]),Wr(hr.Critical,f=>{let y=sL({itemsLength:tr.length,currentResponse:It.currentResponse,thinkingContent:It.thinkingContent,activeToolCallsLength:It.activeToolCalls.length}),w=aL({keyName:f.name,hasTranscript:y,historyScrollOffset:In,isBrowsingHistory:!ue&&st.display!==null,reviewPageSize:qu,reviewWheelStep:$v,hasMouse:!!f.mouse,mouseButton:f.mouse?.button,mouseAction:f.mouse?.action,usesManagedMouseClicks:YT,supportsMouseTracking:ot.supportsMouseTracking,usesRendererMouseTracking:Pp,usesManagedMouseWheel:JT,supportsWheelHistory:ot.supportsWheelHistory});if(w.kind==="mouse-phase"){let R=f.mouse;if(!R)return!1;w.phase==="press"&&di.current&&Vv(di.current);let E=Uv(R.row,R.column);if(w.phase==="press"){if(!E||!y)return gi||Et?(ww(),!0):(kn(),!1);let D=jO({previous:MT.current,time:Date.now(),row:R.row,column:R.column});MT.current=D;let j=D.count>=3?"line":D.count===2?"word":"char";if(Zp(),Ei(Q=>su(Q,void 0)),ue?qy(void 0):zy(void 0),j!=="char"){let Q=Py(Qu(),E.point,j);if(Q)return di.current={anchor:Q.start,focus:Q.end,didDrag:!1,mode:j,anchorSpan:Q},Oc(Q.start,Q.end,{updateSelectedItem:!1}),!0}return di.current={anchor:E.point,focus:E.point,didDrag:!1,mode:"char"},!0}if(!di.current)return!1;if(w.phase==="drag"){let D=lc.current,j=D?hO(D,R.row):0;j!==0&&Ru(j);let Q=E??(D?nT(D,R.row,R.column):void 0);if(!Q)return!1;let te=di.current;if(te.mode!=="char"&&te.anchorSpan){let We=Py(Qu(),Q.point,te.mode);if(!We)return!1;let me=lT(te.anchorSpan,We);return di.current={...te,anchor:me.anchor,focus:me.focus,didDrag:!0},Oc(me.anchor,me.focus,{updateSelectedItem:!1}),!0}return di.current={...te,focus:Q.point,didDrag:!0},Oc(te.anchor,Q.point,{updateSelectedItem:!1}),!0}if(w.phase==="release"){let D=di.current,j=D.focus,te=(E??(lc.current?nT(lc.current,R.row,R.column):void 0))?.point??j;if(D.mode!=="char"&&D.anchorSpan){let We=Py(Qu(),te,D.mode);if(We){let me=lT(D.anchorSpan,We);D.anchor=me.anchor,te=me.focus}}return Vv(D,{focusPoint:te}),!0}}if(w.kind==="scroll-by")return Zp(),qp(w.delta),!0;if(w.kind==="consume")return!0;let b=dL({key:f,isTranscriptMode:ue,isHistorySearchActive:Kt,historySearchMatchCount:bn.length,hasTextSelection:!!gi,hasFocusedItem:!!Et,canCopySelectedItem:Ec,canCopySelectedToolInput:Wp,canToggleSelectedDetail:jp,canCycleTranscriptSelection:Fp});return fL({action:b,hasTranscript:y,isTranscriptMode:ue,pageScrollDelta:qu,disarmHistorySearchSelection:Zp,scrollTranscriptBy:qp,closeHistorySearchSurface:Iw,backspaceHistorySearchQuery:o(()=>{vc(R=>R.slice(0,-1)),hi(0)},"backspaceHistorySearchQuery"),stepHistorySearchSelection:o(R=>{hi(E=>QC(bn.length,E,R))},"stepHistorySearchSelection"),submitHistorySearchSelection:o(()=>{let R=bn[os];R&&(Sw(R.itemId),Iw())},"submitHistorySearchSelection"),appendHistorySearchQuery:o(R=>{vc(E=>E+R),hi(0)},"appendHistorySearchQuery"),openHistorySearchSurface:xw,clearTranscriptSelectionFocus:ww,exitTranscriptModeSurface:em,toggleTranscriptShowAll:Xv,scrollTranscriptHome:o(()=>{qp(Math.max(1,ia))},"scrollTranscriptHome"),scrollTranscriptToBottom:o(()=>{st.reset(),Qo(),kn()},"scrollTranscriptToBottom"),cycleTranscriptSelection:Hv,copySelectedTranscriptText:o(()=>{Qp()},"copySelectedTranscriptText"),copySelectedTranscriptItem:o(()=>{Wv()},"copySelectedTranscriptItem"),copySelectedTranscriptToolInput:o(()=>{jv()},"copySelectedTranscriptToolInput"),toggleSelectedTranscriptDetail:Fv,navigateSearchMatch:o(R=>{hi(E=>{let D=QC(bn.length,E,R),j=bn[D];return j&&Sw(j.itemId),D})},"navigateSearchMatch"),dumpTranscriptToScrollback:o(()=>{pL({items:tr.filter(R=>!Mx(R)),exitAltScreen:o(()=>{v(hl({mouseTracking:!0}))},"exitAltScreen"),writeToScrollback:o(R=>{v(R)},"writeToScrollback"),enterAltScreen:o(()=>{v(Ch({mouseTracking:!0,clearOnEnter:!1}))},"enterAltScreen")})},"dumpTranscriptToScrollback")})},[ue,tr,It.currentResponse,It.thinkingContent,It.activeToolCalls,In,ia,qu,$v,qp,st.display,st.reset,Et,ww,em,Xv,ot,Ru,bu,Qo,Fp,os,kn,Qp,bn,xw,Iw,Zp,Hv,Ec,Wv,Wp,jv,jp,Fv,Sw,gi,Uv,ot.supportsMouseTracking,so,YT,JT,sw,ea,Pp,Oc,Wt.messageRows]),Wr(f=>{if(!ht)return!1;let y=f.sequence.trim().toLowerCase(),w=ht.runtimeGrantSuggestions?.find(Q=>Q.kind==="session"),b=ht.runtimeGrantSuggestions?.find(Q=>Q.kind==="persistent"),R=!!ht.input._alwaysConfirm,E=ht.runtimeGrantSuggestions!==void 0,D=b!==void 0||!E&&G.permissionMode==="accept-edits"&&!R,j=o(Q=>{let te=`${Re("dialog.confirm")} ${ht.prompt}
|
|
180
|
-
\u2192 ${Re(`confirm.result.${Q}`)}`;!!_t.current.workerId?Un({id:`confirm-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"info",text:te,timestamp:Date.now()}):$({type:"info",text:te})},"recordConfirmResult");return y==="y"||y==="yes"?(j("approved"),Tc(null),Jr.current?.({confirmed:!0}),Jr.current=null,!0):w&&(y==="s"||y==="session")?(j("approved_session"),Tc(null),Jr.current?.({confirmed:!0,runtimeGrantKind:"session"}),Jr.current=null,!0):D&&(y==="a"||y==="always")?(j("approved_always"),Tc(null),Jr.current?.(b?{confirmed:!0,runtimeGrantKind:"persistent"}:{confirmed:!0,always:!0}),Jr.current=null,!0):y==="n"||y==="no"||f.name==="escape"?(j("denied"),Tc(null),Jr.current?.({confirmed:!1}),Jr.current=null,!0):f.insertable||f.name==="return"},{isActive:!!ht,priority:hr.Critical});let sm=Y(f=>{Lr(null),Pi.current?.(f),Pi.current=null},[]),po=Y((f,y,w,b,R)=>y.length===0||R?.aborted?Promise.resolve(void 0):new Promise(E=>{let D=o(te=>{R?.removeEventListener("abort",j),Pi.current===D&&(Pi.current=null),E(te)},"settle"),j=o(()=>{Pi.current===D&&(Lr(null),D(void 0))},"onAbort");Pi.current=D,R?.addEventListener("abort",j,{once:!0});let Q=b?.defaultValue===void 0?-1:y.findIndex(te=>te.value===b.defaultValue);Lr({kind:"select",title:f,options:y,buffer:"",focusedIndex:Math.max(0,Q),selectedIndices:w===!0&&Q>=0?[Q]:[],multiSelect:w,minSelections:b?.minSelections,maxSelections:b?.maxSelections})}),[]),vN=Y((f,y)=>po(f,y.map(w=>({label:w,value:w}))).then(w=>Array.isArray(w)?w[0]:w),[po]),bN=Y(async f=>{let y=e.learning;if(!y){ur([{id:"learning-center-unavailable",text:"Learning Center is unavailable in this runtime.",tone:"warning"}]);return}let w=f;if(!w){let D=await y.list({limit:200});if(D.items.length===0){ur([{id:"learning-center-empty",text:"Learning Center has no learned capabilities.",tone:"accent"}]);return}let j=await po("Learning Center \u2014 type to search",kz(D.items));w=Array.isArray(j)?j[0]:j}if(!w)return;let b=await y.get(w),R=await po(`${b.displayName} \xB7 ${b.carrier} \xB7 ${b.lifecycle}`,Rz(b)),E=Array.isArray(R)?R[0]:R;E&&(await Ez(y,b.capabilityId,E),Qn(await y.getSnapshot()))},[e.learning,po]),eb=Y(async f=>{let y=f.options?_y(f.options):[],w=await po(iT(f),y,!1);return w===void 0?mr:Array.isArray(w)?w[0]??mr:w},[po]);Ke(()=>{let f=!1;return(async()=>{let{bindAskUserForConstruction:y}=await import("./construction-bootstrap-HCRLORKG.js");f||y(eb)})(),()=>{f=!0,(async()=>{let{bindAskUserForConstruction:y}=await import("./construction-bootstrap-HCRLORKG.js");y(null)})()}},[eb]);let sa=Y((f,y,w,b=!1)=>w?.aborted?Promise.resolve(void 0):new Promise(R=>{let E=o(j=>{w?.removeEventListener("abort",D),Pi.current===E&&(Pi.current=null),R(Array.isArray(j)?j[0]:j)},"settle"),D=o(()=>{Pi.current===E&&(Lr(null),E(void 0))},"onAbort");Pi.current=E,w?.addEventListener("abort",D,{once:!0}),Lr({kind:"input",prompt:f,defaultValue:b?void 0:y,secret:b,buffer:""})}),[]);Wr(f=>{let y=Ap.current;if(!y)return!1;if(f.name==="escape")return sm(void 0),!0;if(y.kind==="select"){let w=y.options.length;if(f.name==="up"||f.sequence==="k")return Lr(b=>b&&b.kind==="select"?{...b,focusedIndex:(b.focusedIndex-1+w)%w,error:void 0}:b),!0;if(f.name==="down"||f.sequence==="j")return Lr(b=>b&&b.kind==="select"?{...b,focusedIndex:(b.focusedIndex+1)%w,error:void 0}:b),!0;if(f.sequence===" "&&y.multiSelect)return Lr(b=>{if(!b||b.kind!=="select")return b;let R=b.focusedIndex,E=b.selectedIndices.includes(R)?b.selectedIndices.filter(D=>D!==R):[...b.selectedIndices,R];return{...b,selectedIndices:E,error:void 0}}),!0;if(f.name==="return"){let b=Ap.current;if(!b||b.kind!=="select")return!1;if(b.multiSelect){let R=b.selectedIndices.length,{minSelections:E,maxSelections:D}=b,j=R===0&&E!==0?Re("select.multiselect_empty"):E!==void 0&&R<E?Re("select.multiselect_min",{min:String(E)}):D!==void 0&&R>D?Re("select.multiselect_max",{max:String(D)}):void 0;if(j!==void 0)return Lr(te=>te&&te.kind==="select"?{...te,error:j}:te),!0;let Q=b.selectedIndices.slice().sort((te,We)=>te-We).map(te=>b.options[te]?.value).filter(te=>typeof te=="string"&&te.length>0);sm(Q)}else sm(b.options[b.focusedIndex]?.value);return!0}if(/^[1-9]$/.test(f.sequence)){let b=Number.parseInt(f.sequence,10)-1;if(b>=0&&b<w)return y.multiSelect?Lr(R=>{if(!R||R.kind!=="select")return R;let E=R.selectedIndices.includes(b)?R.selectedIndices.filter(D=>D!==b):[...R.selectedIndices,b];return{...R,focusedIndex:b,selectedIndices:E,error:void 0}}):Lr(R=>R&&R.kind==="select"?{...R,focusedIndex:b,error:void 0}:R),!0}return!1}if(f.name==="return"){let w=Ap.current;if(!w||w.kind!=="input")return!1;let b=w.buffer.trim();return sm(b===""?w.defaultValue??void 0:b),!0}return f.name==="backspace"||f.name==="delete"?(Lr(w=>w&&w.kind==="input"?{...w,buffer:w.buffer.slice(0,-1),error:void 0}:w),!0):(f.insertable||f.isPasted===!0)&&!f.ctrl&&!f.meta?(Lr(w=>w&&w.kind==="input"?{...w,buffer:w.buffer+f.sequence,error:void 0}:w),!0):!1},{isActive:!!Qe,priority:hr.Critical}),Ke(()=>{if(k.length===0){if(n.uiHistory?.length){let f=ji(n.uiHistory);f.length!==n.uiHistory.length&&(n.uiHistory=f),P($d({messages:n.messages,uiHistory:f}));return}n.messages.length>0&&P($d({messages:n.messages}))}},[n.messages,n.uiHistory,k.length,P]);let bw=he(!1);Ke(()=>{let f=!0;return bw.current=!1,ym(n.gitRoot).finally(()=>{f&&(bw.current=!0)}),()=>{f=!1}},[n.gitRoot]),Ke(()=>{process.env.KODAX_PREWARM_REPO_INTELLIGENCE!=="0"&&Eb({executionCwd:n.runtimeInfo?.executionCwd??n.gitRoot??process.cwd(),gitRoot:n.gitRoot??void 0},{mode:G.repoIntelligenceMode})},[n.gitRoot,n.runtimeInfo?.executionCwd,G.repoIntelligenceMode]);let as=Y(()=>({onOutputSegmentStart:o((f,y)=>{Pt.current||Ad(y)||HT(f)},"onOutputSegmentStart"),onMemoryOutcomeDigest:o((f,y)=>{if(f.sessionId!==n.sessionId){e.events?.onMemoryOutcomeDigest?.(f,y);return}n.lineage=Tm(n.lineage??it(n.messages),f,y?.jobId)},"onMemoryOutcomeDigest"),onMemoryReviewReceipt:o(f=>{if(f.sessionId!==void 0&&f.sessionId!==n.sessionId){e.events?.onMemoryReviewReceipt?.(f);return}n.lineage=vm(n.lineage??it(n.messages),f)},"onMemoryReviewReceipt"),onMemoryNotice:o(f=>{if(f.sessionId!==void 0&&f.sessionId!==n.sessionId){e.events?.onMemoryNotice?.(f);return}let y=n.lineage??it(n.messages),w=bm(y,{...f,createdAt:new Date().toISOString()});n.lineage=w,w!==y&&$({type:"info",text:`[memory] ${f.summaries.slice(0,3).join("; ")}`}),e.events?.onMemoryNotice?.(f)},"onMemoryNotice"),onThinkingDelta:o((f,y)=>{if(Pt.current||Pr(y,"thinking",f,{append:!0}))return;if(y?.providerRequestId!==void 0){let R=lm(Ys.current,{type:"thinking.delta",providerRequestId:y.providerRequestId,text:f});if(Ys.current=R.state,!R.accepted)return}ce.currentTool&&(tt(void 0),kt());let{header:w}=RP(we()+f),b=w?`[Thinking: ${w}]`:"[Thinking]";Zt(Zm(Ft.current?.activeWorkerTitle?`[${Ft.current.activeWorkerTitle}] ${b}`:b,Ft.current?.activeWorkerTitle)),Ze(f.length),Lt(f),_t.current.workerId&&(rw("thinking",f),Js.current={...Js.current,thinkingItemId:Ot.current.activeThinkingItemId})},"onThinkingDelta"),onThinkingEnd:o((f,y)=>{if(Pt.current||Pr(y,"thinking",f))return;let w=we(),b=DR(w,f);b&&b!==w&&(rt(),Vt(),Ze(b.length),Lt(b)),_t.current.workerId&&FT(b),pt()},"onThinkingEnd"),onTextDelta:o((f,y)=>{if(!Pt.current&&!Pr(y,"assistant",f,{append:!0})){if(y?.providerRequestId!==void 0){let w=lm(Ys.current,{type:"assistant.delta",providerRequestId:y.providerRequestId,text:f});if(Ys.current=w.state,!w.accepted)return}ce.currentTool&&(tt(void 0),kt()),pt(),Zt(void 0),li(f),_t.current.workerId&&(rw("assistant",f),Js.current={...Js.current,assistantItemId:Ot.current.activeAssistantItemId})}},"onTextDelta"),onToolUseStart:o((f,y)=>{if(Pt.current||Pr(y,"tool",pS(f.name,f.input)))return;Ai.current.includes(f.name)||(Ai.current=[...Ai.current,f.name]);let w=Ft.current?.activeWorkerTitle?`[${Ft.current.activeWorkerTitle}] `:"",b={id:f.id,name:`${w}${f.name}`,status:K.Executing,startTime:Date.now(),input:f.input};WT(b),_t.current.workerId&&mi(b),Zt(xo(b,Ft.current?.activeWorkerTitle))},"onToolUseStart"),onToolInputDelta:o((f,y,w)=>{if(Pt.current||Pr(w,"tool",f,{skipIfExisting:!0}))return;io(y.length),Er(y);let b=jT(w?.toolId,f,R=>{let E=R.preview??"",D=TP(`${E}${y}`);return{...R,preview:D||void 0,input:R.input?D?{...R.input,preview:D}:{...R.input}:D?{preview:D}:void 0}});b&&(_t.current.workerId&&mi(b),Zt(xo(b,Ft.current?.activeWorkerTitle)))},"onToolInputDelta"),onToolResult:o((f,y)=>{if(Pt.current||Pr(y,"tool",`${f.name} completed`))return;let w=typeof f.content=="string"?f.content:String(f.content??""),b=vP(w);if(/^\[(?:Tool Error|Error)\]/.test(w)){let E=Mp(f.id,K.Error,b,b,f.name);E&&(_t.current.workerId&&mi(E),Zt(xo(E,Ft.current?.activeWorkerTitle)));return}if(/^\[(?:Cancelled|Blocked)\]/.test(w)){let E=Mp(f.id,K.Cancelled,void 0,b,f.name);E&&(_t.current.workerId&&mi(E),Zt(xo(E,Ft.current?.activeWorkerTitle)));return}let R=Mp(f.id,K.Success,void 0,b||void 0,f.name);R&&(_t.current.workerId&&mi(R),Zt(xo(R,Ft.current?.activeWorkerTitle)))},"onToolResult"),onToolProgress:o((f,y)=>{if(Pt.current||Pr(y,"progress",f.message))return;let w=f.message.length>100?f.message.slice(0,97)+"...":f.message,b=Ic(f.id,R=>({...R,preview:w,progressLines:[...(R.progressLines??[]).slice(-4),w]}));b&&_t.current.workerId&&mi(b),Zt(w)},"onToolProgress"),onStreamEnd:o(f=>{if(Pt.current||Ad(f))return;let y=Du(K.Cancelled,()=>({error:"Stream ended before the tool completed.",output:void 0})),w=y[y.length-1];_t.current.workerId&&y.forEach(b=>mi(b)),w&&Zt(xo(w,Ft.current?.activeWorkerTitle)),pt(),kt(),tt(void 0)},"onStreamEnd"),onChildActivityEnd:o(f=>{$T(f)},"onChildActivityEnd"),hasPendingInputs:o(()=>Jv.current.length>0,"hasPendingInputs"),onMidTurnUserMessages:o(f=>{if(!Pt.current)for(let y of f){let w=y.trim();w&&(_t.current.workerId?Un({id:`mid-turn-user-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"user",text:w,timestamp:Date.now()}):$({type:"user",text:w}))}},"onMidTurnUserMessages"),onError:o(f=>{let y=kb(f);if(y.category===od.USER_ABORT)return;let w=es();w?.name&&Zt(xo(w,Ft.current?.activeWorkerTitle));let b=Du(K.Error,()=>({error:f.message,output:void 0})),R=b[b.length-1];_t.current.workerId&&b.forEach(We=>mi(We)),R&&Zt(xo(R,Ft.current?.activeWorkerTitle));let j=[`\u274C API Error (${["Transient","Permanent","Tool Call ID","User Abort"][y.category]||"Unknown"}): ${f.message}`];y.shouldCleanup&&j.push(" \u{1F9F9} Cleaned incomplete tool calls"),y.category===od.PERMANENT?(j.push(" \u{1F4A1} This error requires manual intervention. Please check:"),f.message.includes("auth")||f.message.includes("401")?(j.push(" - Your API key is valid"),j.push(" - Run /config to check provider settings")):f.message.includes("400")?(j.push(" - The request parameters are correct"),j.push(" - Try restarting the conversation")):j.push(" - The error details above")):y.category===od.TRANSIENT?j.push(" \u23F3 Retries exhausted. Press Enter to continue the conversation"):y.category===od.TOOL_CALL_ID&&j.push(" \u2705 Session cleaned, ready to continue");let Q=j.join(`
|
|
181
|
-
`);!!_t.current.workerId?Un({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:Q,timestamp:Date.now()}):$({type:"error",text:Q})},"onError"),onOutputNotice:o((f,y)=>{if(Pt.current)return;let w="[Model] The provider declined to answer.";
|
|
176
|
+
[Interrupted]`}),r}o(zz,"buildInterruptedPersistenceItems");function gT({thinking:e,response:t,toolCalls:n,toolNames:r}){let i=[],s=e?.trim()??"",a=t?.trim()??"",c=n&&n.length>0?[...n]:[],l=r&&r.length>0?[...r]:[];return s&&i.push({type:"thinking",text:s}),c.length>0?i.push({type:"tool_group",tools:c}):!s&&!a&&l.length>0&&i.push({type:"info",icon:"*",text:`Tools: ${l.join(", ")}`}),a&&i.push({type:"assistant",text:a}),i}o(gT,"buildRoundHistoryItems");var qz=20,Xz="Session ended before the tool completed.";function Yz(e){switch(e.status){case K.Success:return{status:"success"};case K.Error:return{status:"error"};case K.Cancelled:return{status:"cancelled"};case K.AwaitingApproval:case K.Scheduled:case K.Validating:case K.Executing:return{status:"cancelled",error:Xz};default:return e.status}}o(Yz,"toPersistedToolStatus");function Jz(e){if(!e.id||!e.name)return;let t=Yz(e),n=t.status==="success"?Yw(e.output):void 0,r=t.status==="error"||t.status==="cancelled"?Xw(e.error??Yw(e.output)??t.error??""):void 0,i=Gb(e.input);return{id:e.id,name:e.name,status:t.status,...i?{input:i}:{},...typeof e.preview=="string"&&e.preview.trim().length>0?{preview:Xw(e.preview.trim(),500)}:{},...n&&n.trim().length>0?{output:n}:{},...r&&r.trim().length>0?{error:r}:{},...typeof e.startTime=="number"?{startTime:e.startTime}:{},...typeof e.endTime=="number"?{endTime:e.endTime}:{}}}o(Jz,"toPersistedToolCall");function Qz(e){let t=e.tools.slice(0,qz).map(Jz).filter(r=>!!r),n=yT(e);return t.length>0?{type:"tool_group",tools:t,...n===void 0?{}:{timestamp:n}}:void 0}o(Qz,"toPersistedToolGroup");function yT(e){return e.timestamp!==void 0&&Number.isFinite(e.timestamp)&&e.timestamp>=0?e.timestamp:void 0}o(yT,"persistedHistoryTimestamp");function ZO(e){if(e.type==="tool_group")return Qz(e);let t="text"in e&&typeof e.text=="string"?e.text.trimEnd():"";if(!t)return;if(e.type==="sidecar"){let a=e.delivery==="budget-exhausted"?"budget-exhausted":e.verdict,c=yT(e);return{type:"sidecar",text:t,icon:a,sidecarVerdict:e.verdict,sidecarDelivery:e.delivery,...c===void 0?{}:{timestamp:c},...e.isSessionUiOnly===!0?{presentationOnly:!0}:{}}}let n="icon"in e&&typeof e.icon=="string"&&e.icon.length>0?e.icon:void 0,r="compactText"in e&&typeof e.compactText=="string"&&e.compactText.length>0?e.compactText.trimEnd():void 0,i=yT(e),s=e.isSessionUiOnly===!0?{presentationOnly:!0}:{};return{type:e.type,text:t,...i===void 0?{}:{timestamp:i},...s,...n?{icon:n}:{},...r?{compactText:r}:{}}}o(ZO,"toPersistedUiHistoryItem");var XO=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1",Zz=process.env.KODAX_SCROLL_OVERSCAN==="1"?80:void 0;function YO(e){return ji(e.map(t=>ZO(t)).filter(t=>!!t))}o(YO,"serializeUiHistorySnapshot");function eq(e){return e.map(t=>ZO(t)).filter(t=>!!t)}o(eq,"serializeCreatableHistoryItems");function ap(e,t){return t.length===0?ji(e):ji([...e,...eq(t)])}o(ap,"appendPersistedUiHistorySnapshot");function pu(e,t,n){console.log((e==="block"?Ut.red:Ut.yellow)(t)),n.forEach(r=>console.log(Ut.dim(r)))}o(pu,"logSessionTransitionGuard");var mT=o(({config:e,sessionId:t,workingDir:n,compactionInfo:r})=>{let i=ye("dark"),s=e.model??xa(e.provider)??e.provider,a=Yc({provider:e.provider,model:e.model,effort:e.effort,effortOverride:e.effortOverride,thinking:e.thinking,reasoningMode:e.reasoningMode}),c=r?Math.round(r.contextWindow/1e3):0,l=r?ff(r.contextWindow,r.triggerPercent,r.triggerTokens):void 0;return kr(O,{flexDirection:"column",marginBottom:1,children:[kC.map((u,d)=>xe(M,{color:i.colors.primary,children:u},d)),kr(O,{children:[xe(M,{color:i.colors.primary,children:" \u258E "}),xe(M,{color:i.colors.primary,children:"AI Coding Agent \xB7 Minimalist & Intelligent"})]}),kr(O,{children:[xe(M,{color:i.colors.success,children:" \u258E "}),kr(M,{bold:!0,color:i.colors.text,children:["v",Xc]}),xe(M,{dimColor:!0,children:" \xB7 "}),kr(M,{color:i.colors.success,children:[e.provider,"/",s]}),xe(M,{dimColor:!0,children:` \xB7 effort:${a}`}),xe(M,{dimColor:!0,children:" \xB7 "}),xe(M,{color:i.colors.primary,children:e.agentMode.toUpperCase()}),xe(M,{dimColor:!0,children:" / "}),xe(M,{color:i.colors.accent,children:e.permissionMode})]}),r&&kr(O,{children:[xe(M,{color:i.colors.accent,children:" \u258E "}),xe(M,{color:i.colors.text,children:`ctx ${c}k \xB7 compaction `}),xe(M,{color:r.enabled?i.colors.success:i.colors.text,children:r.enabled?"on":"off"}),xe(M,{color:i.colors.text,children:` \xB7 ${l}`})]}),kr(O,{children:[xe(M,{color:i.colors.secondary,children:" \u258E "}),xe(M,{color:i.colors.text,children:"session "}),xe(M,{color:i.colors.primary,children:t}),xe(M,{color:i.colors.text,children:" \xB7 "}),xe(M,{color:i.colors.text,children:n})]})]})},"Banner");function tq(e){let t=e.config.model??xa(e.config.provider)??e.config.provider,n=Yc({provider:e.config.provider,model:e.config.model,effort:e.config.effort,effortOverride:e.config.effortOverride,thinking:e.config.thinking,reasoningMode:e.config.reasoningMode}),r=e.compactionInfo?Math.round(e.compactionInfo.contextWindow/1e3):0,i=e.compactionInfo?ff(e.compactionInfo.contextWindow,e.compactionInfo.triggerPercent,e.compactionInfo.triggerTokens):void 0,s=" \u258E AI Coding Agent \xB7 Minimalist & Intelligent",a=` \u258E v${Xc} \xB7 ${e.config.provider}/${t} \xB7 effort:${n} \xB7 ${e.config.agentMode.toUpperCase()} / ${e.config.permissionMode}`,c=e.compactionInfo?` \u258E ctx ${r}k \xB7 compaction ${e.compactionInfo.enabled?"on":"off"} \xB7 ${i}`:void 0,l=` \u258E session ${e.sessionId} \xB7 ${e.workingDir}`,u=[],d=o(m=>{let h=sr(m.length>0?m.split(`
|
|
177
|
+
`):[""],Math.max(1,e.terminalWidth),0,0);return h.visualLines.length>0?h.visualLines:[""]},"wrapBannerLine"),p=o((m,h,g)=>{d(h).forEach((S,T)=>{u.push({key:`${m}-${T}`,text:S,...g})})},"pushLineRows");return kC.forEach((m,h)=>{p(`banner-logo-${h}`,m,{color:"primary"})}),p("banner-tagline",s,{color:"primary"}),p("banner-version",a,{color:"text",bold:!0}),c&&p("banner-compaction",c,{color:"text"}),p("banner-session",l,{color:"text"}),u.push({key:"banner-blank",text:" "}),{key:"banner",rows:u}}o(tq,"buildBannerTranscriptSection");function JO(e,t){return t?{...e,sections:[t,...e.sections],rows:[...t.rows,...e.rows]}:e}o(JO,"prependTranscriptSection");var nq=process.env.KODAX_INLINE_LEDGER!=="0";function QO(e,t){process.env.KODAX_INLINE_LEDGER_DEBUG==="1"&&Ge({source:"repl:inline-ledger",level:"debug",message:`${e}; rebuilding on next change.`,...t!==void 0?{detail:t}:{}})}o(QO,"reportInlineLedgerFailure");var rq=o(({options:e,config:t,context:n,startupRuntimeInfo:r,storage:i,autoModeSettings:s,rendererMode:a,fullscreenPolicy:c,onExit:l,compactionInfo:u,autoModeBootstrap:d,setCurrentConfigRef:p,teamModeHandle:m})=>{let{exit:h}=qi(),{stdout:g}=zi(),S=g.rows??24,{stdin:T,setRawMode:x,isRawModeSupported:I}=Qd(),v=bl(),{history:k}=hf(),_=VO.useRef(null),H=VO.useRef(Bb()),{addHistoryItem:$,addHistoryItems:P,replaceHistoryItems:z,clearHistory:J,setSessionId:L}=gf(),[W,N]=et(null),[q,B]=et(null),ae=he(async()=>!1),ee=he(null),ie=he({entries:new Map});Ke(()=>{let f=e.clientPlane;if(!f)return;let y=n.sessionId,w=!1,b,R,E=0,D=!1,j,Q,te,We=o(()=>j||(R!==void 0&&clearTimeout(R),j=f.observe(y,me=>{if(w||n.sessionId!==y||me.session.id!==y)return;D=!0,ee.current=me,N(me);let Pe=Cr(me);if(Q!==Pe){let Ue=me.runs.find(dt=>dt.runId===Q);Ue&&te?.settled({phase:Ue.phase},Ue.runId),te?.close(),Q=Pe,te=Pe?Pl({plane:f,sessionId:y,onStopState:am.onStopState,onStopControl:o(dt=>{cc.current=dt,Jo.current=ge.current??dt},"onStopControl")},()=>Q):void 0}z(Fa(me.items,{activeRunId:Cr(me),memo:ie.current}))},{onStatus:o(me=>{w||n.sessionId!==y||(me.state==="closed"&&(D=!1,b=void 0),B(me))},"onStatus")}).then(me=>{if(w){me();return}b=me,E=0}).catch(me=>{w||(D=!1,B({state:"closed",reason:"unavailable",message:me instanceof Error?me.message:String(me)}),E+=1,E<=5&&(R=setTimeout(()=>{We()},Math.min(1e3*E,5e3))))}).finally(()=>{j=void 0}),j),"observe");return ae.current=async()=>(!D&&!w&&await We(),D&&!w&&n.sessionId===y),We(),()=>{w=!0,b?.(),te?.close(),R!==void 0&&clearTimeout(R),ee.current=null,N(null),B(null)}},[e.clientPlane,n.sessionId,z]);let C=he(null),Te=he(new Map),[Fe,Ce]=et([]),X=Y((f,y)=>{let w=o(()=>{Ce(b=>b.length===0?b:b.filter(R=>Date.now()-R.at<sp))},"expire");Ce(b=>b.some(R=>R.id===f)?b:[...b.filter(R=>Date.now()-R.at<sp),{id:f,text:y,at:Date.now()}]),setTimeout(w,sp+250)},[]),re=Y(async()=>{if(!(!e.clientPlane||await ae.current()))throw X("observation-unavailable",tp),new Vo},[e.clientPlane,X]),je=be(()=>e.clientPlane?UO(e.clientPlane,f=>{let y=f instanceof Error?f.message:String(f);Ge({source:"repl:input-queue",level:"warn",message:y}),X(`queue-${Date.now()}`,y)}):void 0,[e.clientPlane,X]),Tt=JSON.stringify((W?.queue??[]).map(f=>f.inputId));Ke(()=>{let f=JSON.parse(Tt);je?.observeQueue(n.sessionId,f).catch(y=>{Ge({source:"repl:input-queue",level:"warn",message:"Could not resolve consumed input state.",detail:y})})},[je,n.sessionId,Tt]),Ke(()=>{let f=e.clientPlane;if(!f||q?.state==="interrupted")return;let y=q?.state==="live"?W?.interactions??[]:[],w=new Set(y.map(b=>b.requestId));for(let[b,R]of Te.current)w.has(b)||(Te.current.delete(b),R.abort());Fe.some(b=>Date.now()-b.at>=sp)&&Ce(b=>b.filter(R=>Date.now()-R.at<sp));for(let b of y){if(Te.current.has(b.requestId))continue;let R=C.current;if(!R)continue;let E=new AbortController;Te.current.set(b.requestId,E),mf(f,b,R,E.signal).then(D=>{D||E.signal.aborted||(Te.current.delete(b.requestId),E.abort())}).catch(()=>{E.signal.aborted||(Te.current.delete(b.requestId),E.abort(),X(`interaction-${b.requestId}`,"Answer delivery failed \u2014 the question will re-open or resolve Host-side."))})}},[W,q,e.clientPlane,Fe.length,X]);let vt=he(k),De=he(YO(k));Ke(()=>{vt.current=k,De.current=YO(k)},[k]),Ke(()=>{OP()},[]),Ke(()=>{xR()},[]);let Ee=g.columns||80,ce=If(),oe=e.clientPlane?[...W?.queue.map(f=>f.text)??[],...ce.pendingInputs]:ce.pendingInputs,Me=he(ce);Ke(()=>{Me.current=ce},[ce]);let{startStreaming:Ae,stopStreaming:ze,abort:pt,startThinking:Vt,appendThinkingChars:Ze,appendThinkingContent:Lt,stopThinking:mt,clearThinkingContent:rt,setCurrentTool:tt,appendToolInputChars:oo,appendToolInputContent:Er,clearToolInputContent:kt,clearResponse:ht,appendResponse:li,getSignal:zr,getFullResponse:Ln,getThinkingContent:we,startNewIteration:Ye,clearIterationHistory:Xt,startCompacting:ut,stopCompacting:bt,setMaxIter:Jn,addPendingInput:Gt,removeLastPendingInput:qr,peekPendingInputDelivery:Yo,shiftPendingInput:Gs,consumePendingInputs:Uy,capturePendingInputCancellation:hu}=Cf(),Jo=he(void 0),cc=he(void 0),ge=he(void 0),[gu,Fn]=et(!1),Qt=e.clientPlane&&W?.session.id===n.sessionId?W:null,Ks=Qt?Cr(Qt):void 0,at=gu||Ks!==void 0,[G,ki]=et(t),yu=be(()=>Ia({provider:G.provider,model:G.model,effort:G.effort,effortOverride:G.effortOverride,permissionMode:G.permissionMode,planModeEffort:G.planModeEffort,thinking:G.thinking,reasoningMode:G.reasoningMode}),[G.provider,G.model,G.effort,G.effortOverride,G.permissionMode,G.planModeEffort,G.thinking,G.reasoningMode]),zs=yu.configuredEffort,so=yu.runtimeEffort,wu=be(()=>({...G,effort:zs}),[G,zs]),A=be(()=>e.clientPlane?W?.contextBudget?{contextWindow:W.contextBudget.contextWindow,reservedResponseTokens:W.contextBudget.reservedResponseTokens,triggerPercent:W.contextBudget.compaction.triggerPercent,triggerTokens:W.contextBudget.compaction.absoluteTriggerTokens,enabled:W.contextBudget.compaction.enabled}:void 0:SO(u,{provider:G.provider,model:G.model},fa),[e.clientPlane,W?.contextBudget,u,G.provider,G.model]),[F,ne]=et(!0),[Z,Se]=et(!0),[le,Je]=et(0),[$e,ke]=et(!1),pn=$e||Ks!==void 0,[Mr,Qn]=et(void 0),[Xr,ur]=et([]),sn=he(!1),ui=Y(()=>{sn.current=!0,ur(iR)},[]),[fp,Ar]=et(null),Su=he(!1),H$=be(()=>ba(),[]),xu=he(null),pp=he(null),Vy=he(Promise.resolve()),mp=he(null),qs=he({requested:!1,uiHistoryOverride:void 0}),lc=he(null),Iu=he(!1),Cu=he(null);Ke(()=>{let f=e.learning;if(!f)return;let y=!0,w,b,R=0,E=0,D=1e3,j=o(Pe=>{Ge({source:"repl:learning",level:"warn",message:"Failed to refresh the Learning Center snapshot.",detail:Pe instanceof Error?Pe.message:String(Pe)})},"reportRefreshFailure"),Q=o(Pe=>{if(Pe.kind!=="ready"&&Pe.kind!=="activated"&&Pe.kind!=="attention")return;let Ue=Pe.kind==="ready"?"is ready for review":Pe.kind==="activated"?"became active":"requires attention";ur(dt=>[{id:Pe.eventId,text:`A learned ${Pe.carrier} ${Ue}: ${Pe.displayName} [/learn]`,tone:Pe.kind==="activated"?"accent":"warning"},...dt.filter(Nt=>Nt.id!==Pe.eventId)].slice(0,2))},"showEvent"),te=o((Pe,Ue)=>{if(!y||Pe!==R)return;R+=1,w?.close(),j(Ue);let dt=typeof Ue=="object"&&Ue!==null&&"code"in Ue&&Ue.code==="daemon_upgrade_required";ur(Nt=>[{id:"learning-observation-error",tone:"warning",text:dt?"Learning Center updates require a Host upgrade and restart. [/learn]":"Learning Center updates interrupted; reconnecting. [/learn]"},...Nt.filter(En=>En.id!=="learning-observation-error")].slice(0,2)),!dt&&(b=setTimeout(me,D),D=Math.min(D*2,1e4))},"recoverObservation"),We=o(Pe=>{D=1e3,ur(dt=>dt.filter(Nt=>Nt.id!=="learning-observation-error"));let Ue=Dm(Pe);if(Ue&&!sn.current){let dt=Pe.attention>0||Pe.ready>0?"warning":"accent";ur(Nt=>[{id:"learning-recovery",text:Ue,tone:dt},...Nt.filter(En=>En.id!=="learning-recovery")].slice(0,2))}},"showRecovery"),me=o(()=>{if(!y)return;let Pe=++R,Ue=!0,dt=!1,Nt=!1,En=[],ct=o(()=>y&&Pe===R,"current"),Si=o(Mn=>te(Pe,Mn),"failed"),rd=o(async()=>{if(dt=!0,!(Nt||Ue)){Nt=!0;try{for(;dt&&ct();){dt=!1;let Mn=await f.getSnapshot();if(!ct())return;E=Math.max(E,Mn.revision),Qn(fe=>fe&&fe.revision>Mn.revision?fe:Mn)}}finally{Nt=!1}}},"refresh"),id=f.subscribe(Mn=>{if(ct()){if(Ue){En.push(Mn);return}Mn.sequence<=E||(Q(Mn),rd().catch(Si))}},{afterRevision:E},Si);w=id,ct()||id.close(),(async()=>{if(await id.ready,!ct())return;let Mn=await f.getSnapshot();if(ct()){E=Math.max(E,Mn.revision),Qn(fe=>fe&&fe.revision>Mn.revision?fe:Mn),We(Mn),Ue=!1;for(let fe of En)fe.sequence>E&&Q(fe);En.length>0&&await rd()}})().catch(Si)},"open");return me(),()=>{y=!1,b&&clearTimeout(b),w?.close()}},[e.learning]);let[Tu,vu]=et(!0),[hp,bu]=et(""),[ot,Ei]=et(()=>jP(H$,{rendererMode:a})),[an,gp]=et(!1),[F$,W$]=et(0),{scrollRef:j$,scrollOffset:In,sticky:Gy,setScrollOffset:U$,handleScrollTopChange:V$,handleStickyChange:G$,scrollTo:Ru,scrollBy:ku,scrollToBottom:Qo}=oO(),Ky=he(null),yp=he(null),Eu=he([]),Mu=he([]),uc=he(null),di=he(null),AT=he({time:0,row:-1,column:-1,count:0}),[wp,zy]=et(void 0),[ao,qy]=et(void 0),[Sp,_T]=et(void 0),[On,K$]=et(()=>new Set),[_r,Au]=et(null),[z$,PT]=et(null),[LT,xp]=et(null),se=be(()=>{if(!e.clientPlane)return LT;let f=Qt?.activity?.managedTask;if(!f)return null;let y=f.phase,w=y==="starting"||y==="routing"||y==="preflight"||y==="round"||y==="worker"||y==="upgrade"||y==="verifying"||y==="completed"?y:void 0;return{agentMode:G.agentMode,harnessProfile:f.harnessProfile,phase:w,activeWorkerId:f.workerId,activeWorkerTitle:f.workerTitle,childFanoutClass:f.childFanoutClass,childFanoutCount:f.fanoutCount,currentRound:f.round,maxRounds:f.maximumRounds,globalWorkBudget:f.globalWorkBudget,budgetUsage:f.budgetUsage,budgetApprovalRequired:f.budgetApprovalRequired,idleWaiting:f.idleWaiting,idleWaitingPendingCount:f.pendingChildren}},[e.clientPlane,Qt?.activity?.managedTask,G.agentMode,LT]),[Xy,dc]=et(null),[q$,OT]=et(null),Yy=Qt?.activity?.workflow?sS(Qt.activity.workflow):q$,fc=he(null),_u=Y(f=>{fc.current=f,OT(f)},[]),Jy=Y(f=>{let y=f(fc.current);fc.current=y,OT(y)},[]),pc=Y((f,y)=>{let w=fc.current;return w?.status!=="running"||!OR(f,w.runId)?!1:(_u({...w,message:y}),!0)},[_u]),Qy=Y(f=>{if(f.status==="running"){_u({runId:f.runId,workflow:f.workflow,status:f.status,...f.phase!==void 0?{phase:f.phase}:{},...f.phaseIndex!==void 0?{phaseIndex:f.phaseIndex}:{},...f.phaseTotal!==void 0?{phaseTotal:f.phaseTotal}:{},...f.startedAt!==void 0?{startedAt:f.startedAt}:{},...f.elapsedMs!==void 0?{elapsedMs:f.elapsedMs}:{},activeAgents:f.activeAgents,totalSpawned:f.totalSpawned,...f.plannedAgents!==void 0?{plannedAgents:f.plannedAgents}:{},...f.agentCap!==void 0?{agentCap:f.agentCap}:{},...f.tokenBudgetSpent!==void 0?{tokenBudgetSpent:f.tokenBudgetSpent}:{},...f.tokenBudgetTotal!==void 0?{tokenBudgetTotal:f.tokenBudgetTotal}:{},completedAgents:f.completedAgents,failedAgents:f.failedAgents,stoppedAgents:f.stoppedAgents,...f.message!==void 0?{message:f.message}:{},...f.locale!==void 0?{locale:f.locale}:{}});return}Jy(y=>y?.runId===f.runId?null:y)},[_u,Jy]),X$=Y(f=>{let y=f.type==="workflow_updated"?f.message:void 0,w=Kc(f.snapshot.goal,f.snapshot.workflowName,f.snapshot.displayName,f.snapshot.latestMessage,y);Qy(sS(f.snapshot,y===void 0?{locale:w}:{locale:w,message:y}))},[Qy]),[Y$,fi]=et([]),Ip=e.clientPlane?Qt?.activity?.todos??[]:Y$,mc=be(()=>{for(let f of Ip)if(f.status==="in_progress"){if(f.activeForm&&f.activeForm.length>0)return f.activeForm;if(f.subject&&f.subject.length>0)return f.subject}},[Ip]),[xX,Pu]=et([]),[Lu,J$]=et([]),[Cp,Zt]=et(void 0),[Xs,Ou]=et(void 0),Ft=he(null),Tp=he(null),Ys=he([]),hc=he([]),$n=he([]),Zy=he(new Set),_t=he({}),Ot=he({activeToolGroupTools:[]}),Js=he(Ww()),Qs=he({}),$T=he(0),$u=he({itemId:void 0,kind:"thinking",pendingText:""}),pi=he(null),Q$=80,Z$=20,eN=he(null),Nu=be(()=>[...k,...Lu],[k,Lu]),ew=be(()=>{let f=BE(Nu,eN,WE(Nu));return f===0?Nu:Nu.slice(f)},[Nu]),vp=be(()=>HE(ew,Z$),[ew]),Zo=ew,Wn=he(null),Mi=he(null),Ai=he([]),jn=he([]),[gc,tN]=et([]),co=he([]),[nN,rN]=et([]),tw=e.clientPlane?Qt?.activity?.children??[]:nN,Du=he([]),Yr=Y(f=>{co.current=f,tN(f)},[]),yc=Y(f=>{Du.current=f,rN(f)},[]),nw=Y(()=>{yc([])},[yc]),NT=Y(f=>{if(!_d(f))return!1;let y=zm(f),w=Du.current.filter(b=>b.id!==y);return w.length===Du.current.length||yc(w),!0},[yc]),Pr=Y((f,y,w,b)=>{if(!_d(f))return!1;let R=zm(f),E=Du.current.find(me=>me.id===R);if(b?.skipIfExisting&&E?.kind===y||hS(E?.kind,y))return!0;let D=b?.append&&E?.kind===y?`${E.detail}${w}`:w||E?.detail||"running",j={id:R,label:fS(f),source:pS(f),status:"running",kind:y,detail:Km(D),startedAt:E?.startedAt??Date.now()},Q=Du.current,te=Q.findIndex(me=>me.id===R),We=te>=0?Q.map((me,Pe)=>Pe===te?j:me):[...Q,j].slice(0,Pz);return yc(We),!0},[yc]),DT=Y(f=>{Ys.current=f,Pu(f)},[]),wc=Y(f=>{$n.current=f,J$(f)},[]),bp=Y(f=>{let y=f([...$n.current]);wc(y)},[wc]),BT=Y(f=>{f.length!==0&&wc([...$n.current,...f])},[wc]),Rp=Y(f=>{let y=Ot.current,w=y.activeToolGroupTools.some(b=>b.status===K.Executing);Ot.current={...f?.clearOwner?{}:{workerId:y.workerId,workerTitle:y.workerTitle},...w?{activeToolGroupItemId:y.activeToolGroupItemId,activeToolGroupTools:y.activeToolGroupTools}:{activeToolGroupTools:[]}},f?.clearOwner&&(_t.current={})},[]),Sc=Y(f=>{for(let y of f)y.type==="user"&&typeof y.id=="string"&&Zy.current.add(y.id)},[]),Zs=Y(()=>{$u.current={itemId:void 0,kind:"thinking",pendingText:""},pi.current&&(clearTimeout(pi.current),pi.current=null);let f=Qx($n.current,Zy.current);if(f.length>0){for(let y of f)Zy.current.add(y.id);lc.current?.(f.map(y=>zo(y)))}Rp({clearOwner:!0}),wc([])},[Rp,wc]),kp=Y(f=>($T.current+=1,`managed-foreground-${f}-${$T.current}`),[]),Un=Y(f=>(BT([f]),f.id),[BT]),Cn=Y((f,y)=>{_t.current.workerId?Un({id:`${y}-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:f.type,text:f.text,...f.icon?{icon:f.icon}:{},...f.tightSpacing?{tightSpacing:!0}:{},timestamp:Date.now()}):$(f)},[$,Un]),_i=Y(async f=>{if(!f)return;if(!e.clientPlane?.appendNotice){Cn({type:"info",text:f},"command");return}let y=n.sessionId;try{await e.clientPlane.appendNotice(y,{content:f,source:"repl:command"})}catch(w){X(`command-notice-${y}-${Date.now()}`,`${f}
|
|
178
|
+
[Could not save command feedback: ${w instanceof Error?w.message:String(w)}]`)}},[n,e.clientPlane,Cn,X]),lo=Y((f,y)=>{if(!f)return;let w;return bp(b=>b.map(R=>R.id!==f?R:(w=y(R),w))),w},[bp]),xc=Y((f,y)=>{let w=Ot.current;if(w.activeKind===f){if(f==="thinking"&&w.activeThinkingItemId)return w.activeThinkingItemId;if(f==="assistant"&&w.activeAssistantItemId)return w.activeAssistantItemId;if(f==="tool_group"&&w.activeToolGroupItemId)return w.activeToolGroupItemId}let b=Date.now(),R=y?.trim()?`[${y.trim()}] `:"",E=w.activeToolGroupTools.some(j=>j.status===K.Executing);if(f==="thinking"){let j=Un({id:kp("thinking"),type:"thinking",timestamp:b,text:R});return Ot.current={...Ot.current,activeKind:"thinking",activeThinkingItemId:j,currentTurnThinkingItemId:j,activeAssistantItemId:void 0,...E?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},j}if(f==="assistant"){let j=Un({id:kp("assistant"),type:"assistant",timestamp:b,text:R});return Ot.current={...Ot.current,activeKind:"assistant",activeThinkingItemId:void 0,activeAssistantItemId:j,...E?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},j}let D=Un({id:kp("tool_group"),type:"tool_group",timestamp:b,tools:[]});return Ot.current={...Ot.current,activeKind:"tool_group",activeThinkingItemId:void 0,activeAssistantItemId:void 0,activeToolGroupItemId:D,activeToolGroupTools:[]},D},[Un,kp]),Vn=Y(()=>{pi.current&&(clearTimeout(pi.current),pi.current=null);let f=$u.current;if(!f.pendingText||!f.itemId)return;let y=f.pendingText,w=f.itemId,b=f.kind;f.pendingText="",lo(w,R=>R.type!==b?R:{...R,text:`${R.text}${y}`})},[lo]),HT=Y(()=>{pi.current||(pi.current=setTimeout(Vn,Q$))},[Vn]),rw=Y((f,y)=>{if(!y)return;let w=Ot.current;if(f==="assistant"&&!Uz(y,w.activeKind==="assistant"&&!!w.activeAssistantItemId))return;let b=w.workerTitle,R=xc(f,b),E=$u.current;E.itemId===R&&E.kind===f?E.pendingText+=y:(Vn(),E.itemId=R,E.kind=f,E.pendingText=y),HT()},[xc,Vn,HT]),FT=Y(f=>{Js.current=Gz(Js.current,f,y=>{if(_t.current.workerId){Vn();let R=Qs.current;f.mode==="replace"&&bp(D=>Vz(D,[R.assistantItemId,R.thinkingItemId],f.mode));let E=Ot.current;Ot.current={...E,activeKind:E.activeKind==="tool_group"?"tool_group":void 0,activeAssistantItemId:void 0,activeThinkingItemId:void 0,currentTurnThinkingItemId:void 0},$u.current={itemId:void 0,kind:"thinking",pendingText:""},Qs.current={providerRequestId:f.providerRequestId};return}ht(),rt();let w=jw(y,"assistant"),b=jw(y,"thinking");w&&li(w),b&&(Vt(),Ze(b.length),Lt(b))})},[li,Ze,Lt,ht,rt,Vn,bp,Vt]),WT=Y(f=>{let y=f.trim();if(!y)return;let w=$u.current;w.kind==="thinking"&&w.pendingText&&(w.pendingText="",pi.current&&(clearTimeout(pi.current),pi.current=null));let b=Ot.current.workerTitle?.trim(),R=b?`[${b}] ${y}`:y,E=Ot.current.currentTurnThinkingItemId;if(E){lo(E,j=>j.type==="thinking"?{...j,text:R}:j);return}let D=xc("thinking",Ot.current.workerTitle);lo(D,j=>j.type==="thinking"?{...j,text:R}:j)},[xc,lo]),mi=Y(f=>{Vn();let y=Ot.current;if(y.activeToolGroupItemId&&y.activeToolGroupTools.some(D=>D.id===f.id)){let D=y.activeToolGroupTools.map(Q=>Q.id===f.id?f:Q),j=D.every(Q=>Q.status===K.Success||Q.status===K.Error||Q.status===K.Cancelled);Ot.current={...y,...j?{activeToolGroupItemId:void 0,activeToolGroupTools:[]}:{activeToolGroupTools:D}},lo(y.activeToolGroupItemId,Q=>Q.type==="tool_group"?{...Q,tools:D}:Q);return}let w=$n.current;for(let D=w.length-1;D>=0;D-=1){let j=w[D];if(j.type!=="tool_group"||!j.tools.some(te=>te.id===f.id))continue;let Q=j.tools.map(te=>te.id===f.id?f:te);lo(j.id,te=>te.type==="tool_group"?{...te,tools:Q}:te);return}let b=xc("tool_group",y.workerTitle),E=y.activeKind==="tool_group"&&y.activeToolGroupItemId===b?y.activeToolGroupTools.some(D=>D.id===f.id)?y.activeToolGroupTools.map(D=>D.id===f.id?f:D):[...y.activeToolGroupTools,f]:[f];Ot.current={...Ot.current,activeKind:"tool_group",activeToolGroupItemId:b,activeToolGroupTools:E},lo(b,D=>D.type==="tool_group"?{...D,tools:E}:D)},[xc,lo,Vn]),iN=Y(f=>{Vn();let y=Ot.current,w=y.activeToolGroupTools.some(E=>E.status===K.Executing),b=co.current.filter(E=>E.status===K.Executing),R=new Set(b.map(E=>E.id));Ot.current={workerId:f?.workerId,workerTitle:f?.workerTitle,...w?{activeToolGroupItemId:y.activeToolGroupItemId,activeToolGroupTools:y.activeToolGroupTools}:{activeToolGroupTools:[]}},_t.current={workerId:f?.workerId,workerTitle:f?.workerTitle},Ai.current=[],jn.current=jn.current.filter(E=>R.has(E.id)),Yr(b),kt(),tt(void 0),mt(),rt(),ht(),Zt(void 0)},[Vn,kt,ht,rt,tt,Yr,Zt,mt]),oN=Y(f=>{if(f.length===0)return[];let y=[],w=[...Ys.current],b=[...hc.current];for(let R of f){let E=R.item,D=w.findIndex(j=>j.id===E.id);if(D>=0){let j=w[D];eh(j,E)||(w=w.map((Q,te)=>te===D?{...E,timestamp:j.timestamp}:Q))}else w=[...w,E].slice(-12),y.push(E);if(R.persistToHistory){let j=b.findIndex(Q=>Q.id===E.id);if(j>=0){let Q=b[j];eh(Q,E)||(b=b.map((te,We)=>We===j?{...E,timestamp:Q.timestamp}:te))}else b=[...b,E].slice(-48)}}return hc.current=b,(y.length>0||w.some((R,E)=>!eh(R,Ys.current[E]??R)||R.id!==Ys.current[E]?.id))&&DT(w),y},[DT]),Ep=Y(f=>{if(jn.current.findIndex(w=>w.id===f.id)===-1){jn.current=[...jn.current,f];return}jn.current=jn.current.map(w=>w.id===f.id?f:w)},[]),es=Y(f=>{let y=co.current.filter(w=>w.status===K.Executing);if(y.length!==0){if(f){let w=bC(f);for(let b=y.length-1;b>=0;b-=1){let R=y[b];if(bC(R.name)===w)return R}}return y[y.length-1]}},[]),Ic=Y(()=>{let f=es();tt(f?vC(f.name):void 0)},[es,tt]),jT=Y(f=>(Ep(f),Yr([...co.current.filter(y=>y.id!==f.id),f]),Ic(),f),[Yr,Ic,Ep]),Cc=Y((f,y)=>{let w=co.current.find(R=>R.id===f);if(!w)return null;let b=y(w);return Ep(b),Yr(co.current.map(R=>R.id===f?b:R)),Ic(),b},[Yr,Ic,Ep]),UT=Y((f,y,w)=>{if(f){let R=Cc(f,w);if(R)return R}let b=es(y);return b?Cc(b.id,w):null},[es,Cc]),Mp=Y((f,y,w,b,R)=>{let E=f??es(R)?.id;return E?Cc(E,D=>({...D,status:y,endTime:Date.now(),error:w,output:b})):null},[es,Cc]),Bu=Y((f,y)=>{let w=Date.now(),b=new Map;for(let R of co.current){if(R.status!==K.Executing)continue;let E=y(R);b.set(R.id,{...R,status:f,endTime:w,...E})}return b.size===0?[]:(jn.current=jn.current.map(R=>b.get(R.id)??R),Yr(co.current.map(R=>b.get(R.id)??R)),Ic(),[...b.values()])},[Yr,Ic]),ts=Y(()=>{Yr([])},[Yr]),{showHelp:VT,toggleHelp:sN,setShowHelp:GT}=AC(),aN=Y(f=>{bu(f),vu(f.trim().length===0)},[]),Tc=Na(),KT=be(()=>Tc?Tc.state.visible&&Tc.suggestions.length>0:!1,[Tc]),[Hu,zT]=et(!1),qT=he(le),ea=Y(()=>{Wn.current&&(clearTimeout(Wn.current),Wn.current=null),Mi.current&&(clearTimeout(Mi.current),Mi.current=null)},[]);Ke(()=>{KT&&!Hu&&zT(!0)},[KT,Hu]),Ke(()=>{le!==qT.current&&(qT.current=le,Hu&&zT(!1))},[le,Hu]);let[gt,vc]=et(null),Jr=he(null),cN=he(SP()),[Qe,Lr]=et(null),Pi=he(null),Ap=he(Qe);Ap.current=Qe;let[Zn,bc]=et(""),[_p,hi]=et(0),iw=he(""),Fu=he(void 0),XT=be(()=>{if(!A)return;let{contextWindow:f,triggerPercent:y,triggerTokens:w,reservedResponseTokens:b}=A;return{currentTokens:fp??n.contextTokenSnapshot?.currentTokens??da(n.messages),contextWindow:f,triggerPercent:y,triggerTokens:w,reservedResponseTokens:b,...e.clientPlane?{hostBudget:!0,effectiveTriggerTokens:W?.contextBudget?.compaction.triggerTokens}:{}}},[n.messages,n.contextTokenSnapshot,A,fp,e.clientPlane,W?.contextBudget]),Wu=be(()=>{if(!gt)return;let f=new Set(gt.runtimeGrantSuggestions?.map(b=>b.kind)??[]);if(f.has("persistent"))return Re("confirm.instruction.runtime_persistent");if(f.has("session"))return Re("confirm.instruction.runtime_session");if(gt.runtimeGrantSuggestions!==void 0)return Re("confirm.instruction.basic");let y=!!gt.input._alwaysConfirm,w=G.permissionMode==="accept-edits"&&!y;return y?Re("confirm.instruction.protected"):w?Re("confirm.instruction.always"):Re("confirm.instruction.basic")},[gt,G.permissionMode]),Kt=ot.searchMode==="history",ue=ot.surface==="transcript",Li=!!gt||!!Qe||Kt,mn=ue?an?RE:1e3:12,ns=HO(c,ot.surface),YT=ns.shellMode,ow=ns.usesAlternateScreenShell,ta=ns.usesRendererViewportShell,Pp=ns.usesRendererMouseTracking,JT=ns.usesManagedMouseClicks,QT=ns.usesManagedMouseWheel,sw=ns.usesManagedSelection,en=FO(c,ot.surface,QP(ot)),Lp=ZP(ot),st=Q_(e.clientPlane,n.sessionId,!ue&&en&&a==="owned"),Op=Hu&&!ue,ZT=Y(()=>{let f=e.clientPlane&&W?Fa(W.items,{activeRunId:Cr(W),memo:ie.current}):Zo;return cT({sessionId:n.sessionId,items:f,...e.clientPlane?{observedItems:f}:{},managedLiveEvents:[],isLoading:at,isThinking:ce.isThinking,thinkingCharCount:ce.thinkingCharCount,thinkingContent:ce.thinkingContent,currentResponse:ce.currentResponse,currentTool:ce.currentTool,activeToolCalls:gc,toolInputCharCount:ce.toolInputCharCount,toolInputContent:ce.toolInputContent,lastLiveActivityLabel:Cp,workStripText:Xs,iterationHistory:ce.iterationHistory,currentIteration:W?.activity?.iteration?.current??ce.currentIteration,maxIter:W?.activity?.iteration?.maximum??W?.settings.maxIter??e.maxIter??ce.maxIter,isCompacting:W?.activity?.compacting??ce.isCompacting})},[Zo,e.clientPlane,n.sessionId,W,at,ce.isThinking,ce.thinkingCharCount,ce.thinkingContent,ce.currentResponse,ce.currentTool,gc,ce.toolInputCharCount,ce.toolInputContent,Cp,Xs,ce.iterationHistory,ce.currentIteration,ce.maxIter,e.maxIter,ce.isCompacting]);Ke(()=>{if(e.clientPlane&&W?.session.id!==n.sessionId){Au(null);return}if(ue){Au(f=>f?.sessionId===n.sessionId?f:ZT());return}Au(null)},[ZT,ue,n.sessionId,e.clientPlane,W?.session.id]);let ju=be(()=>$O({isTranscriptMode:ue,snapshot:_r,currentItemsLength:Zo.length,currentItems:Zo,currentManagedLiveEventsLength:0,isLoading:at,currentResponse:ce.currentResponse,thinkingContent:ce.thinkingContent,activeToolCallsLength:gc.length}),[gc.length,at,ue,Zo.length,Zo,ce.currentResponse,ce.thinkingContent,_r]),hn=ue?_r:null,aw=be(()=>DO(vp),[vp]),lN=be(()=>!!(Lu.length>0||qO(se)),[Lu.length,se]),$p=Lu.length>0,Gn=c.streamingPreview&&lN,rs=be(()=>NO({surface:"transcript",snapshot:hn,promptItems:vp,transcriptItems:Zo}),[hn,vp,Zo]),Uu=be(()=>{if(!ue||an)return rs;let f=FE(rs,DE);if(f.length===rs.length)return rs;let y=rs.length-f.length;return[VE(y,f[0]?.timestamp),...f]},[rs,ue,an]),zt=hn?.isLoading??at,$t=c.streamingPreview?{isThinking:Gn?!1:ce.isThinking,thinkingCharCount:Gn?0:ce.thinkingCharCount,thinkingContent:Gn?"":ce.thinkingContent,currentResponse:Gn?"":ce.currentResponse,currentTool:Gn?void 0:ce.currentTool,activeToolCalls:Gn?[]:gc,toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:Gn?Cp:void 0,iterationHistory:[],currentIteration:ce.currentIteration,isCompacting:!1}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:ce.currentIteration,isCompacting:!1},Be=c.streamingPreview?{isThinking:Gn?!1:hn?.isThinking??ce.isThinking,thinkingCharCount:Gn?0:hn?.thinkingCharCount??ce.thinkingCharCount,thinkingContent:Gn?"":hn?.thinkingContent??ce.thinkingContent,currentResponse:Gn?"":hn?.currentResponse??ce.currentResponse,currentTool:Gn?void 0:hn?.currentTool??ce.currentTool,activeToolCalls:Gn?[]:hn?.activeToolCalls??gc,toolInputCharCount:Gn?0:hn?.toolInputCharCount??ce.toolInputCharCount,toolInputContent:Gn?"":hn?.toolInputContent??ce.toolInputContent,managedLiveEvents:[],lastLiveActivityLabel:hn?.lastLiveActivityLabel??Cp,iterationHistory:Gn?[]:hn?.iterationHistory??ce.iterationHistory,currentIteration:hn?.currentIteration??ce.currentIteration,isCompacting:hn?.isCompacting??ce.isCompacting}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:hn?.currentIteration??ce.currentIteration,isCompacting:!1},gi=ue?ao:wp,ev=!!wp,Np=Y(()=>cT({items:aw,managedLiveEvents:[],isLoading:at,isThinking:$t.isThinking,thinkingCharCount:$t.thinkingCharCount,thinkingContent:$t.thinkingContent,currentResponse:$t.currentResponse,currentTool:$t.currentTool,activeToolCalls:$t.activeToolCalls,toolInputCharCount:$t.toolInputCharCount,toolInputContent:$t.toolInputContent,lastLiveActivityLabel:$t.lastLiveActivityLabel,iterationHistory:$t.iterationHistory,currentIteration:$t.currentIteration,isCompacting:$t.isCompacting}),[at,aw,$t.activeToolCalls,$t.currentIteration,$t.currentResponse,$t.currentTool,$t.isCompacting,$t.isThinking,$t.iterationHistory,$t.lastLiveActivityLabel,$t.thinkingCharCount,$t.thinkingContent,$t.toolInputCharCount,$t.toolInputContent]);Ke(()=>{if(!ev){PT(null);return}PT(f=>f??Np())},[Np,ev]);let Kn=st.display?.snapshot??z$,yi=Kn?.items??aw,er=Kn?.isLoading??at,Rt=Kn?{isThinking:Kn.isThinking,thinkingCharCount:Kn.thinkingCharCount,thinkingContent:Kn.thinkingContent,currentResponse:Kn.currentResponse,currentTool:Kn.currentTool,activeToolCalls:Kn.activeToolCalls,toolInputCharCount:Kn.toolInputCharCount,toolInputContent:Kn.toolInputContent,managedLiveEvents:Kn.managedLiveEvents,lastLiveActivityLabel:Kn.lastLiveActivityLabel,iterationHistory:Kn.iterationHistory,currentIteration:Kn.currentIteration,isCompacting:Kn.isCompacting}:$t,tr=ue?Uu:yi,Oi=ue?zt:er,It=ue?Be:Rt,tv=er&&!Rt.currentResponse&&!Rt.thinkingContent&&Rt.activeToolCalls.length===0,uN=lf(Yy?.status==="running"),Tn=be(()=>pR(Yy,Date.now()),[Yy,uN]),nv=Tn.shouldRender?`Workflow ${Tn.workflow}${Tn.phase?` - ${Tn.phase}`:""}`:void 0,uo=be(()=>hP(Ip,{now:Date.now(),lastAllCompletedAt:null}),[Ip]),rv=S<=20?1:dS,dN=lf(tw.length>0),cw=be(()=>NR(tw,rv,Date.now()),[rv,tw,dN]),iv=$R({isTranscriptMode:ue,isLoading:at,hasWorkflowLiveSurface:Tn.shouldRender,childActivityVisible:cw.shouldRender}),Rc=be(()=>{if(!ue)return[];let f=[];return f.push(...fR(Tn)),at&&uo.shouldRender&&f.push(...fP(uo)),f},[ue,at,uo,Tn]),na=be(()=>({config:wu,sessionId:n.sessionId,workingDir:e.context?.executionCwd||e.context?.gitRoot||n.runtimeInfo?.executionCwd||n.gitRoot||process.cwd(),terminalWidth:Ee,compactionInfo:A??void 0}),[A,n.sessionId,wu,n.runtimeInfo?.executionCwd,e.context?.gitRoot,e.context?.executionCwd,Ee]),is=be(()=>c.enabled&&Z&&(ue||!st.display||st.display.window!==void 0&&st.display.window.nextCursor===void 0)?tq(na):void 0,[na,c.enabled,Z,ue,st.display]),ov=he(cu),sv=he(!1),lw=he(!1),kc=jL({enabled:nq,useRendererViewportShell:ta,isTranscriptMode:ue,hasCommitHandle:typeof Oa(g)?.commitInlineScrollback=="function"}),Vu=be(()=>Uh({items:yi,viewportWidth:Ee,maxLines:mn,showDetailedTools:!1,showAllContent:!1,windowed:!1}),[yi,Ee,mn]),ra=be(()=>{let f=Vh({activeItems:Vu.activeItems,viewportWidth:Ee,isLoading:er,maxLines:mn,isThinking:Rt.isThinking,thinkingCharCount:Rt.thinkingCharCount,thinkingContent:Rt.thinkingContent,streamingResponse:Rt.currentResponse,currentTool:Rt.currentTool,activeToolCalls:Rt.activeToolCalls,toolInputCharCount:Rt.toolInputCharCount,toolInputContent:Rt.toolInputContent,iterationHistory:Rt.iterationHistory,currentIteration:Rt.currentIteration,isCompacting:Rt.isCompacting,managedAgentMode:G.agentMode,managedPhase:er?se?.phase:void 0,managedHarnessProfile:er?se?.harnessProfile:void 0,managedWorkerTitle:er?se?.activeWorkerTitle:void 0,managedRound:er?se?.currentRound:void 0,managedMaxRounds:er?se?.maxRounds:void 0,managedGlobalWorkBudget:er?se?.globalWorkBudget:void 0,managedBudgetUsage:er?se?.budgetUsage:void 0,managedBudgetApprovalRequired:er?se?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Rt.lastLiveActivityLabel,currentTodoActiveForm:mc,showFullThinking:!1,showDetailedTools:!1,showAllContent:!1,showLiveProgressRows:tv}),y=_E(Vu,f,is);return GL(y,kc)},[G.agentMode,kc,er,Rt.activeToolCalls,Rt.currentIteration,Rt.currentTool,Rt.isCompacting,Rt.currentResponse,Rt.isThinking,Rt.iterationHistory,Rt.lastLiveActivityLabel,Rt.thinkingCharCount,Rt.thinkingContent,Rt.toolInputCharCount,Rt.toolInputContent,se?.activeWorkerTitle,se?.budgetApprovalRequired,se?.budgetUsage,se?.currentRound,se?.globalWorkBudget,se?.harnessProfile,se?.maxRounds,se?.phase,tv,Vu,is,Ee,mn,mc]),uw=be(()=>Uh({items:Uu,viewportWidth:Ee,maxLines:mn,showDetailedTools:an,showAllContent:an,showFullThinking:!0,windowed:!1}),[Uu,Ee,mn,an]),Dp=be(()=>{if(!ue||ta)return;let f=Vh({activeItems:uw.activeItems,viewportWidth:Ee,isLoading:zt,maxLines:mn,isThinking:Be.isThinking,thinkingCharCount:Be.thinkingCharCount,thinkingContent:Be.thinkingContent,streamingResponse:Be.currentResponse,currentTool:Be.currentTool,activeToolCalls:Be.activeToolCalls,toolInputCharCount:Be.toolInputCharCount,toolInputContent:Be.toolInputContent,iterationHistory:Be.iterationHistory,currentIteration:Be.currentIteration,isCompacting:Be.isCompacting,managedAgentMode:G.agentMode,managedPhase:zt?se?.phase:void 0,managedHarnessProfile:zt?se?.harnessProfile:void 0,managedWorkerTitle:zt?se?.activeWorkerTitle:void 0,managedRound:zt?se?.currentRound:void 0,managedMaxRounds:zt?se?.maxRounds:void 0,managedGlobalWorkBudget:zt?se?.globalWorkBudget:void 0,managedBudgetUsage:zt?se?.budgetUsage:void 0,managedBudgetApprovalRequired:zt?se?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Be.lastLiveActivityLabel,liveStatusLines:Rc,currentTodoActiveForm:mc,showFullThinking:!0,showDetailedTools:an,showAllContent:an,showLiveProgressRows:!$p,expandedItemKeys:On});return JO(Ex(Gh(uw,f)),is)},[G.agentMode,On,$p,is,ue,se?.activeWorkerTitle,se?.budgetApprovalRequired,se?.budgetUsage,se?.currentRound,se?.globalWorkBudget,se?.harnessProfile,se?.maxRounds,se?.phase,Ee,zt,mn,uw,Be.activeToolCalls,Be.currentIteration,Be.currentResponse,Be.currentTool,Be.isCompacting,Be.isThinking,Be.iterationHistory,Be.lastLiveActivityLabel,Be.thinkingCharCount,Be.thinkingContent,Be.toolInputCharCount,Be.toolInputContent,an,Rc,ta,mc]),Gu=be(()=>{if(en)return ue?JO(Kh({items:tr,viewportWidth:Ee,isLoading:Oi,maxLines:mn,isThinking:It.isThinking,thinkingCharCount:It.thinkingCharCount,thinkingContent:It.thinkingContent,streamingResponse:It.currentResponse,currentTool:It.currentTool,activeToolCalls:It.activeToolCalls,toolInputCharCount:It.toolInputCharCount,toolInputContent:It.toolInputContent,iterationHistory:It.iterationHistory,currentIteration:It.currentIteration,isCompacting:It.isCompacting,managedAgentMode:G.agentMode,managedPhase:Oi?se?.phase:void 0,managedHarnessProfile:Oi?se?.harnessProfile:void 0,managedWorkerTitle:Oi?se?.activeWorkerTitle:void 0,managedRound:Oi?se?.currentRound:void 0,managedMaxRounds:Oi?se?.maxRounds:void 0,managedGlobalWorkBudget:Oi?se?.globalWorkBudget:void 0,managedBudgetUsage:Oi?se?.budgetUsage:void 0,managedBudgetApprovalRequired:Oi?se?.budgetApprovalRequired:void 0,lastLiveActivityLabel:It.lastLiveActivityLabel,liveStatusLines:Rc,currentTodoActiveForm:mc,windowed:!0,showFullThinking:ue,showDetailedTools:an,showAllContent:an,showLiveProgressRows:ue&&!$p,expandedItemKeys:ue?On:void 0}),is):Ex(ra)},[G.agentMode,Oi,tr,$p,is,It.activeToolCalls,It.currentIteration,It.currentResponse,It.currentTool,It.isCompacting,It.isThinking,It.iterationHistory,It.lastLiveActivityLabel,It.thinkingCharCount,It.thinkingContent,It.toolInputCharCount,It.toolInputContent,On,ue,se?.activeWorkerTitle,se?.budgetApprovalRequired,se?.budgetUsage,se?.currentRound,se?.globalWorkBudget,se?.harnessProfile,se?.maxRounds,se?.phase,ra,at,ue,Ee,mn,en,Rc,an,mc]),vn=be(()=>Gu??Dp,[Gu,Dp]),Ku=be(()=>sT({status:se,isLoading:at,agentMode:G.agentMode}),[G.agentMode,at,se]).workStripText,zu=hn?.workStripText??Xs,Ec=be(()=>sT({status:se,isLoading:at,agentMode:G.agentMode,parallelTextOverride:zu}),[G.agentMode,zu,at,se]),ia=be(()=>JL(tr).filter(f=>f!==zh),[tr]),Et=be(()=>Iy(ot,ia,ot.selectedItemId),[ia,ot]),cn=be(()=>tr.find(f=>f.id===Et),[tr,Et]),av=be(()=>({...ot,supportsSelection:ot.supportsSelection&&en,supportsCopyOnSelect:ot.supportsCopyOnSelect&&en}),[ot,en]),Qr=be(()=>IO({state:av,selectableItemIds:ia,selectedItemId:Et,selectedItemType:cn?.type,isExpanded:Et?On.has(Et):!1}),[On,ia,cn?.type,Et,av]),cv=Qr.selectionEnabled,lv=Qr.copyCapabilities.copyOnSelect,TX=Qr.selectedItemIndex,uv=be(()=>YL(cn),[cn]),Bp=be(()=>KL(rs.filter(f=>!Ax(f))),[rs]),bn=be(()=>zL(Bp,Zn),[Bp,Zn]),Hp=be(()=>vO({isHistorySearchActive:Kt,historySearchQuery:Zn,matches:bn,selectedIndex:_p,anchorItemId:ot.searchAnchorItemId,useOverlaySurface:ot.supportsOverlaySurface&&ot.supportsSearchViewport&&en}),[bn,Zn,_p,Kt,ot.searchAnchorItemId,ot.supportsOverlaySurface,ot.supportsSearchViewport,en]),os=Hp.clampedSelectedIndex,dv=Hp.statusText,dw=Hp.detailText,fv=Hp.searchState,vX=Qr.detailState==="expanded",Fp=Qr.selectionEnabled&&ia.length>0&&!gi,Mc=Qr.copyCapabilities.message,Wp=Qr.copyCapabilities.toolInput,jp=Qr.toggleDetail;Ke(()=>{if(Ku){if(Mi.current&&(clearTimeout(Mi.current),Mi.current=null),Xs===Ku)return;if(Xs){Wn.current&&(clearTimeout(Wn.current),Wn.current=null),Ou(Ku);return}Wn.current&&clearTimeout(Wn.current),Wn.current=setTimeout(()=>{Ou(Ku),Wn.current=null},400);return}if(!Xs){Wn.current&&(clearTimeout(Wn.current),Wn.current=null);return}Wn.current&&(clearTimeout(Wn.current),Wn.current=null),Mi.current&&clearTimeout(Mi.current),Mi.current=setTimeout(()=>{Ou(void 0),Mi.current=null},300)},[ea,Ku,Xs]),Ke(()=>()=>{ea()},[ea]);let ss=be(()=>({...tO({state:ot,ownsViewport:en,isAwaitingUserInteraction:Li,isHistorySearchActive:Kt,isTranscriptMode:ue,historySearchQuery:Zn}),...st.display?{browseHintText:st.display.hint,jumpToLatest:{visible:!0,label:"Back to live",hint:"End",tone:"accent"}}:{}}),[Zn,Li,Kt,ue,ot,en,st.display]);Ke(()=>{Ei(f=>{let y=KP(f,In);return y=GP(y,ju),y=qP(y,c.enabled&&en?!Gy||Kt||Li:ue||Kt||Li),y=JP(y,os),y})},[os,c.enabled,In,Li,Kt,ue,ju,en,Gy]),Ke(()=>{_p!==os&&hi(os)},[os,_p]),Ke(()=>{if(!Kt){iw.current=Zn;return}if(Zn===iw.current)return;iw.current=Zn;let f=XL(Bp,bn,ot.searchAnchorItemId);hi(f)},[bn,Zn,Kt,ot.searchAnchorItemId,Bp]);let Nn=st.display?$t:Rt,pv=ue?Be:{isThinking:Nn.isThinking,thinkingCharCount:Nn.thinkingCharCount,currentTool:Nn.currentTool,activeToolCalls:Nn.activeToolCalls,toolInputCharCount:Nn.toolInputCharCount,toolInputContent:Nn.toolInputContent,currentIteration:Nn.currentIteration,isCompacting:Nn.isCompacting},qu=ue?zt:st.display?at:er,Rn=he(Promise.resolve()),Zr=he({sessionId:n.sessionId,patch:cr(G,e.maxIter)});Ke(()=>{if(e.sessionCommands?.read)return;let f=n.sessionId,y={...cr(G,e.maxIter),autoModeClassifierModel:s.classifierModel??null},w=Zr.current,b=w.sessionId===f?ou(w.patch,y):y;if(Object.keys(b).length===0)return;let R=o(async()=>{e.clientPlane?.updateSettings?await e.clientPlane.updateSettings(f,b):await e.runtimeAutoModeControl?.syncSettings?.(f,xo(G.permissionMode),s),Zr.current={sessionId:f,patch:y}},"write");Rn.current=Rn.current.then(R,R),Rn.current.catch(E=>Ge({source:"repl:settings",level:"error",message:"Session settings could not be synchronized.",detail:E}))},[s,n.sessionId,G.provider,G.model,G.effort,G.effortOverride,G.planModeEffort,G.thinking,G.reasoningMode,G.agentMode,G.permissionMode,e.clientPlane,e.maxIter,e.runtimeAutoModeControl]);let Up=be(()=>xO({sessionId:n.sessionId,hostSettings:G.hostSettings,permissionMode:G.permissionMode,agentMode:G.agentMode,workMode:G.workMode,provider:G.provider,model:G.model??(e.clientPlane?"\u2014":xa(G.provider)??G.provider),thinking:G.thinking,reasoningMode:G.reasoningMode,effort:zs,reasoningEffortLabel:Yc({provider:G.provider,model:G.model,effort:zs,effortOverride:G.effortOverride,thinking:G.thinking,reasoningMode:G.reasoningMode}),isTranscriptMode:ue,streamingState:pv,clientActivity:W?.session.id===n.sessionId?W.activity:void 0,parentContextTokens:W?.session.id===n.sessionId?W.parentContextTokens:void 0,maxIter:hn?.maxIter??W?.settings.maxIter??e.maxIter??ce.maxIter,contextUsage:XT,learning:Mr,isLoading:qu,managedState:{phase:se?.phase,harnessProfile:se?.harnessProfile,workerTitle:se?.activeWorkerTitle,round:se?.currentRound,maxRounds:se?.maxRounds,globalWorkBudget:se?.globalWorkBudget,budgetUsage:se?.budgetUsage,budgetApprovalRequired:se?.budgetApprovalRequired,idleWaiting:se?.idleWaiting,idleWaitingPendingCount:se?.idleWaitingPendingCount}}),[n.sessionId,G.hostSettings,G.permissionMode,G.agentMode,G.workMode,G.provider,G.model,G.thinking,G.reasoningMode,G.effortOverride,zs,ue,pv,hn?.maxIter,W,e.maxIter,ce.maxIter,XT,Mr,qu,se?.phase,se?.harnessProfile,se?.activeWorkerTitle,se?.currentRound,se?.maxRounds,se?.globalWorkBudget,se?.budgetUsage,se?.budgetApprovalRequired,se?.idleWaiting,se?.idleWaitingPendingCount]),fw=gt?"confirm":Qe?.kind,pw=Ks&&Qt?.activity?.runId===Ks?Qt.activity.streaming:void 0,mv=be(()=>{let f=wO({isTranscriptMode:ue,isLoading:qu,streamingState:Nn,managedState:qu?{phase:se?.phase,harnessProfile:se?.harnessProfile,workerTitle:se?.activeWorkerTitle}:void 0,waitingReason:fw,workflowBuilderMessage:Xy??void 0,backgroundWorkflowMessage:nv});return f?.kind!=="busy"||!pw||Lp||Xy||(Qt?.activity?.compacting??Nn.isCompacting)?f:{...f,text:Qh(pw)}},[pw,Lp,Qt?.activity?.compacting,Nn.activeToolCalls,Nn.currentTool,Nn.isCompacting,Nn.isThinking,Nn.thinkingCharCount,Nn.toolInputCharCount,Nn.toolInputContent,ue,se?.activeWorkerTitle,se?.harnessProfile,se?.phase,fw,qu,Xy,nv]),fo=gO({activity:mv})?mv:void 0,hv=fo?.text,gv=!!fo,yv=he(!1);Ke(()=>{yv.current&&!at&&fi(f=>f.length>0?[]:f),yv.current=at},[at]);let mw=be(()=>Zh(Up),[Up]),wv=be(()=>mw,[mw]),Sv=wv.text,fN=be(()=>TM(oe),[oe]),hw=be(()=>gP({isHistorySearchActive:Kt,isTranscriptMode:ue,pendingInputCount:oe.length,buffering:ot.buffering,pendingLiveUpdates:ju}),[Kt,ue,ju,oe.length,ot.buffering]),xv=hw.leftItems,Iv=hw.rightItems,Cv=hw.summary,Vp=be(()=>RO({historySearchQuery:Zn,pendingInputCount:oe.length}),[Zn,oe.length]),Gp=be(()=>{let f=bO({historySearchQuery:Zn,isHistorySearchActive:Kt,historySearchMatchCount:bn.length,pendingInputCount:oe.length,maxPendingInputs:5}),y=q?.state==="interrupted"?"Host observation interrupted; displayed state may be outdated.":q?.state==="closed"&&q.reason==="unavailable"?"Host observation unavailable; displayed state may be outdated.":void 0;return[...f,...Xr,...Fe,...y?[{id:"host-observation",text:y}]:[]]},[bn.length,Zn,Kt,Xr,Fe,q,oe.length]),Tv=be(()=>Gp.map(f=>f.text).join(" | "),[Gp]),Kp=be(()=>kO({inputText:hp,isTranscriptMode:ue,isHistorySearchActive:Kt}),[hp,Kt,ue]),vv=ot.supportsOverlaySurface&&ot.supportsSearchViewport&&en,zp=be(()=>CO({runtime:Qr,itemSummary:uv}),[uv,Qr]),gw=be(()=>EO(Vp),[Vp]),bv=be(()=>MO({textSelection:gi,selectionState:zp,isHistorySearchActive:Kt,historySearchDetailText:dw,historySearchHasMatches:!!dv&&bn.length>0,showAllActive:an,baseFooterNotices:Vp}),[gi,Vp,dw,bn.length,dv,Kt,an,zp]),pN=bv.secondaryText,mN=bv.budgetNotices,Rv=ue?mN:gw,kv=S,Ev=ue?"":hp,Mv=ue?void 0:fN,Av=zu,_v=ue?!1:VT,Pv=Tn.shouldRender?cP(Tn):0,Lv=at&&uo.shouldRender?uo.rows.length:0,Ov=iv?aI(cw):0,Wt=be(()=>WP({terminalRows:kv,terminalWidth:Ee,windowedTranscript:ta,inputText:Ev,footerHeaderText:Cv,activitySummary:ue?void 0:hv,activityBarVisible:ue?!1:gv,workflowSurfaceRows:ue?0:Pv,childActivitySurfaceRows:ue?0:Ov,todoSurfaceRows:ue?0:Lv,pendingInputSummary:Mv,stashNoticeSummary:Kp,notificationSummary:Tv,statusNoticeSummary:Rv.join(" | "),workStripText:Av,suggestionsReserved:Op,suggestionsMode:"inline",showHelp:_v,statusBarText:Sv,confirmPrompt:gt?.prompt,confirmInstruction:Wu,dialogMode:"inline",reviewHint:c.enabled&&en?void 0:ss.browseHintText,uiRequest:Qe?Qe.kind==="select"?{kind:"select",title:Qe.title,options:Qe.options.map(f=>({label:f.label,description:f.description})),buffer:Qe.buffer,error:Qe.error}:{kind:"input",prompt:Qe.prompt,defaultValue:Qe.secret?void 0:Qe.defaultValue,buffer:Qe.secret&&Qe.buffer?"\u2022\u2022\u2022\u2022":Qe.buffer,error:Qe.error}:null}),[kv,Ee,Ev,Cv,hv,gv,ue,Pv,Ov,Lv,Mv,Kp,Tv,Rv,Av,Op,vv,_v,Sv,gt,Wu,c.enabled,ss.browseHintText,en,Qe]),yw=be(()=>{if(!kc)return{model:ra,committedSections:[]};let{committedSections:f,liveRows:y}=PE(Vu.staticSections,ra.rows,ra.previewRows,Wt.messageRows);return{model:{...ra,staticSections:[],rows:y,previewRows:[]},committedSections:f}},[kc,ra,Vu.staticSections,Wt.messageRows]),$v=yw.model;Ke(()=>{let f=Oa(g),y=typeof f?.commitInlineScrollback=="function",w=UL({active:kc,hasCommitHandle:y,wasActive:sv.current,forceRebuild:lw.current,prior:ov.current,finalizedSections:yw.committedSections,bannerSection:is,width:Ee,identify:LE}),b=!1,R=!1;if(w.kind==="commit"){let D=w.sections.flatMap(Q=>Q.rows),j=WL(D.length>0?[{key:"il-delta",rows:D}]:[],{width:Ee,theme:ye("dark")});if(R=j.length>0,w.mode==="append"&&!j)QO("empty-append-text");else try{f?.commitInlineScrollback?.({mode:w.mode,text:j}),b=!0}catch(Q){QO("commit-threw",Q)}}let E=VL(w,{committed:b,hadContent:R},lw.current);ov.current=E.state,sv.current=E.wasActive,lw.current=E.owns},[kc,yw.committedSections,is,Ee,g]);let hN=be(()=>xe(tI,{reserveSpace:Op,width:Ee,hidden:ue,mode:"inline"}),[Op,Ee,ue,vv]),Xu=be(()=>nO(Wt.messageRows),[Wt.messageRows]),Nv=be(()=>rO(Xu),[Xu]),Ac=!Lp&&c.transcriptSpinnerAnimation,oa=vn?vn.rows.length+vn.previewRows.length:F$,Dv=he(st.display?.anchor),Bv=he({width:Ee,rows:vn?.rows,items:yi,viewportRows:Wt.messageRows});vz(()=>{let f=Bv.current;if(Bv.current={width:Ee,rows:vn?.rows,items:yi,viewportRows:Wt.messageRows},!st.display||!vn)return;let y=st.display.anchor,w=y!==Dv.current?y:f.rows&&(f.width!==Ee||f.viewportRows!==Wt.messageRows)?mC(f.items,f.rows,Math.max(0,f.rows.length-f.viewportRows-In)):void 0;if(!w)return;Dv.current=y;let b=q_(yi,vn.rows,w);b!==void 0&&Ru(Math.max(0,vn.rows.length-Wt.messageRows-b))},[st.display,vn,yi,Wt.messageRows,Ee,In,Ru]);let qp=Y(f=>{if(ue||!en||a!=="owned"||!e.clientPlane){ku(f);return}let y=f<0&&In+f<=0;if(y&&!st.display?.window?.newerCursors.length){st.reset(),Qo();return}if(st.loading())return;let w=Math.max(0,oa-Wt.messageRows),b=Math.max(0,Math.min(w,In+f));if(f>0||y){let R=vn?.rows??Mu.current,E=mC(yi,R,Math.max(0,R.length-Wt.messageRows-b),f<0?"bottom":"top");st.browse(Np(),E,f<0||b===w,f<0?"newer":"older")}ku(f)},[ue,en,a,e.clientPlane,In,oa,Wt.messageRows,vn,yi,Np,st,ku,Qo]),Xp=Y(f=>{vn||W$(f.scrollHeight)},[vn]),Yu=Y(f=>lO({window:f,stickyHeader:ss.stickyHeader,width:Ee,topChromeRows:0}),[Ee,ss.stickyHeader]),_c=Y((f=Eu.current,y=Mu.current,w=Ky.current?Yu(Ky.current):yp.current)=>{if(!w||f.length===0){uc.current=null;return}yp.current=w,uc.current=uO(f,{allRows:y,rowIndexByKey:eT(y),topOffsetRows:w.topOffsetRows,viewportHeight:w.contentWindow.viewportHeight,animateSpinners:Ac})},[Yu,Ac]),Ju=Y(()=>{let f=yp.current;return f?.contentWindow.viewportHeight&&f.contentWindow.viewportHeight>0?f.contentWindow.viewportHeight:Wt.messageRows},[Wt.messageRows]),gN=Y(f=>{Ky.current=f;let y=Yu(f);yp.current=y,_c(Eu.current,Mu.current,y)},[_c,Yu]),Yp=Y(f=>{Eu.current=f.rows,Mu.current=f.allRows,_c(f.rows,f.allRows)},[_c]),kn=Y(()=>{di.current=null,zy(void 0),qy(void 0)},[]),ww=Y(()=>{kn(),Ei(f=>au(f,void 0))},[kn]);Ke(()=>{_c()},[_c]),Ke(()=>{U$(f=>iO(f,oa,Wt.messageRows))},[oa,Wt.messageRows]),Ke(()=>{if(!Sp)return;let f=setTimeout(()=>{_T(void 0)},2e3);return()=>{clearTimeout(f)}},[Sp]);let tn=Y((f,y="success")=>{let w=f?.trim();w&&_T({text:w,tone:y})},[]);Ke(()=>e.subscribeTransientNotices?.(f=>{tn(f.text,f.tone)}),[e.subscribeTransientNotices,tn]);let yN=Y(f=>{tn(f,"warning")},[tn]),$i=Y((f,y)=>{let w=y instanceof Error?y.message:String(y);return`${f}: ${w}`},[]),Pc=he(void 0),Qu=he({sessionId:n.sessionId,isTranscriptMode:ue,selectedItemId:ot.selectedItemId,historyScrollOffset:In,expandedTranscriptItemIds:On,activeTextSelection:gi,snapshot:_r});Qu.current={sessionId:n.sessionId,isTranscriptMode:ue,selectedItemId:ot.selectedItemId,historyScrollOffset:In,expandedTranscriptItemIds:On,activeTextSelection:gi,snapshot:_r},Ke(()=>()=>Pc.current?.abort(),[n.sessionId,ue,_r,Et]);let Jp=Y(async()=>{let f=e.clientPlane;if(!f||_r?.completeHistoryLoaded)return!0;if(!_r)return!1;Pc.current?.abort();let y=new AbortController;Pc.current=y;let w=Qu.current;tn("Loading complete saved history\u2026");try{let[b,R]=await Promise.all([eM(f,w.sessionId,y.signal),jx(f,w.sessionId,_r.items,y.signal)]),E=Qu.current;if(y.signal.aborted||E.sessionId!==w.sessionId||!E.isTranscriptMode||E.snapshot!==w.snapshot)return!1;if(E.selectedItemId!==w.selectedItemId||E.historyScrollOffset!==w.historyScrollOffset||E.expandedTranscriptItemIds!==w.expandedTranscriptItemIds||E.activeTextSelection!==w.activeTextSelection)return tn("Your current selection was kept. Open complete history again when ready.","warning"),!1;let D=OO({..._r,items:R},b);return D?(Au(j=>j===w.snapshot?D:j),tn("Showing complete saved history. Esc returns to current output."),!0):(tn("Older history could not be loaded without changing this view. Reopen transcript to try again.","warning"),!1)}catch(b){return y.signal.aborted||tn($i("Complete history unavailable",b),"warning"),!1}},[e.clientPlane,n.sessionId,_r,tn,$i]),Qp=Y(async f=>{let y=f??gi;if(!y)return!1;let w=y.text.trimEnd();if(!w)return!1;try{return await vd(w,{terminalWrite:v}),tn(`Copied ${y.rowCount} selected line${y.rowCount===1?"":"s"} to clipboard.`,"success"),!0}catch(b){return tn($i("Failed to copy transcript selection",b),"warning"),!1}},[gi,$i,tn,v]),Lc=Y(f=>{if(!f||sO({items:tr,renderModel:vn,terminalWidth:Ee,transcriptMaxLines:mn,viewportRows:Ju(),itemId:f,visibleRows:Eu.current,expandedItemKeys:On,showDetailedTools:!1}))return;let y=aO({items:tr,renderModel:vn,terminalWidth:Ee,transcriptMaxLines:mn,viewportRows:Ju(),itemId:f,expandedItemKeys:On,showDetailedTools:!1});Ru(y)},[tr,Ee,mn,vn,On,Ju,Ru,Eu]),Hv=Y(f=>{Ei(y=>au(y,f)),f&&Lc(f)},[Lc]),Sw=Y(f=>{f&&Lc(f)},[Lc]),Fv=Y(f=>{if(!Fp)return;let y=QL(ia,Et,f);y&&Hv(y)},[Fp,ia,Et,Hv]),Oc=Y(async f=>{let y=e.clientPlane;if(!y)return f;Pc.current?.abort();let w=new AbortController;Pc.current=w;let b=Qu.current;try{let[R]=await jx(y,b.sessionId,[f],w.signal),E=Qu.current;return w.signal.aborted||E.sessionId!==b.sessionId||!E.isTranscriptMode||E.snapshot!==b.snapshot||E.selectedItemId!==b.selectedItemId||E.historyScrollOffset!==b.historyScrollOffset||E.activeTextSelection!==b.activeTextSelection||E.expandedTranscriptItemIds!==b.expandedTranscriptItemIds?void 0:R}catch(R){if(w.signal.aborted)return;throw R}},[e.clientPlane]),Wv=Y(async()=>{if(!jp||!Et)return;let f=cn;if(e.clientPlane&&f&&!On.has(f.id))try{let y=await Oc(f);if(!y)return;Au(w=>w!==_r||w===null?w:{...w,items:w.items.map(b=>b.id===f.id?y:b)})}catch(y){tn($i("Full entry unavailable",y),"warning");return}K$(y=>{let w=new Set(y);return w.has(Et)?w.delete(Et):w.add(Et),w}),Lc(Et)},[Lc,jp,Et,cn,e.clientPlane,On,_r,Oc,tn,$i]),jv=Y(async()=>{if(!(!Mc||!cn))try{let f=Ay(cn),y=cn.totalTextLength!==void 0||cn.totalInputLength!==void 0||Ux(f??"");if(y){let w=await Oc(cn);if(!w)return;if(f=Ay(w),Ux(f??""))throw new Error("Full transcript content is unavailable.")}if(!f)return;await vd(f,{terminalWrite:v}),tn(y?"Copied the complete transcript entry to clipboard.":"Copied selected transcript entry to clipboard.","success")}catch(f){tn($i("Failed to copy transcript entry",f),"warning")}},[$i,Mc,n.sessionId,e.clientPlane,Oc,cn,tn,v]),Uv=Y(async()=>{if(!(!Wp||!cn))try{let f=e.clientPlane&&cn.totalInputLength!==void 0?await Oc(cn):cn;if(!f)return;let y=ZL(f);if(!y)return;await vd(y,{terminalWrite:v}),tn("Copied selected tool args to clipboard.","success")}catch(f){tn($i("Failed to copy tool args",f),"warning")}},[$i,Wp,n.sessionId,e.clientPlane,Oc,cn,tn,v]),Zu=Y(()=>Mu.current,[]),Vv=Y((f,y)=>{if(!c.enabled||!en)return;let w=uc.current;return w?nT(w,f,y):void 0},[c.enabled,en]),$c=Y((f,y,w)=>{let b=Zu(),R=pO(b,f,y,{animateSpinners:Ac,selectFullRowOnCollapsed:w?.selectFullRowOnCollapsed});ue?qy(R):zy(R);let E=b[Math.max(0,Math.min(y.modelRowIndex,b.length-1))];return w?.updateSelectedItem&&E?.itemId&&Ei(D=>au(D,E.itemId)),R},[ue,Zu,Ac]),Gv=Y((f,y)=>{if(!f)return;di.current=null;let w={...f,focus:y?.focusPoint??f.focus};if(!(w.mode!=="char"||w.didDrag)){kn();return}let R=$c(w.anchor,w.focus,{selectFullRowOnCollapsed:!1,updateSelectedItem:!1});if(!R){kn();return}return y?.copySelection!==!1&&Qp(R),R},[kn,Qp,$c]),xw=Y(()=>{if(!ue||!tr.length||gt||Qe)return;gp(!0),kn();let f=cO({items:tr,selectedItemId:Et,renderModel:vn,terminalWidth:Ee,transcriptMaxLines:mn,viewportRows:Ju(),scrollOffset:In,expandedItemKeys:On,showDetailedTools:!1,preferViewportAnchor:!0});Ei(y=>XP(y,{anchorItemId:f,initialMatchIndex:0})),bc(""),hi(0),Jp()},[gt,Jp,tr,On,In,ue,Et,vn,Ee,mn,Qe,Ju,kn]),Iw=Y(()=>{Ei(f=>YP(f)),bc(""),hi(0),kn()},[kn]),Zp=Y(()=>{!Kt||bn.length===0||hi(-1)},[bn.length,Kt]),Kv=be(()=>{if(!gt)return null;if(gt.tool==="exit_plan_mode"){let f=typeof gt.input.plan=="string"?gt.input.plan:void 0;return{prompt:gt.prompt.split(`
|
|
179
|
+
`,1)[0]??gt.prompt,instruction:Wu,planContent:f}}return{prompt:gt.prompt,instruction:Wu}},[Wu,gt]),zv=be(()=>Qe?Qe.kind==="select"?{kind:"select",title:Qe.title,options:Qe.options,buffer:Qe.buffer,error:Qe.error,visibleSelectOptions:Wt.visibleSelectOptions,focusedIndex:Qe.focusedIndex,selectedIndices:Qe.selectedIndices,multiSelect:Qe.multiSelect}:{kind:"input",prompt:Qe.prompt,defaultValue:Qe.defaultValue,secret:Qe.secret,buffer:Qe.buffer,error:Qe.error}:null,[Qe,Wt.visibleSelectOptions]),wN=be(()=>xe(rI,{confirm:Kv,request:zv}),[Kv,zv]),{cycle:SN,cancel:qv,notice:Xv}=eP(TN,_i,n.sessionId),Cw=be(()=>{let f=Xv??Sp;if(f)return xe(oP,{...f})},[Sp,Xv]),Tw=be(()=>{if(Cw)return xe(O,{flexDirection:"column",width:"100%",children:Cw})},[Cw]),em=Y(()=>{Ei(f=>zP(VP(f))),gp(!1),Qo(),bc(""),hi(0),kn()},[kn,Qo]),Yv=Y(()=>{ue&&(gp(f=>!f),an?Pc.current?.abort():Jp())},[ue,an,Jp]),xN=Y(()=>{if(ue){em();return}gp(!1),Ei(f=>UP(f)),bc(""),hi(0),kn()},[kn,em,ue]);Ke(()=>{cv||!ot.selectedItemId||Ei(f=>au(f,void 0))},[cv,ot.selectedItemId]),Ke(()=>{if(!ue||!Mc||!lv){Fu.current=void 0;return}if(ao||!Et||!cn)return;if(!Fu.current){Fu.current=Et;return}if(Fu.current===Et)return;Fu.current=Et;let f=Ay(cn);f&&vd(f,{terminalWrite:v}).catch(()=>{})},[ue,cn,Et,Mc,lv,ao,v]),Ke(()=>{if(g?.isTTY!==!0)return;let f=Oa(g);f?.setShellMode?.(YT,Pp),ow||f?.setAltScreenActive?.(!1)},[YT,g,ow,Pp]);let IN=be(()=>wP(i,()=>Vy.current),[i]),Le=he({...e,thinking:G.thinking,reasoningMode:G.reasoningMode,effort:so,agentMode:G.agentMode,workMode:G.workMode,workflowRunsBaseDir:cs("workflow-runs",Br(process.cwd()).key),context:{...e.context,gitRoot:n.gitRoot??void 0,executionCwd:n.runtimeInfo?.executionCwd??n.gitRoot??process.cwd(),repoIntelligenceMode:G.repoIntelligenceMode,repoIntelligenceTrace:G.repoIntelligenceTrace,toolConstructionMode:!0},session:{...e.session,id:n.sessionId,storage:IN,persistedByHost:!0},guardrails:dT(G.permissionMode,d)});Ke(()=>{Le.current.effort=so},[so]);let sa=Y(f=>{let y=f.workspaceRoot??void 0;n.runtimeInfo=f,n.gitRoot=y,Le.current.context={...Le.current.context,gitRoot:y,executionCwd:f.executionCwd??y??process.cwd()}},[n]),zn=he(G.permissionMode),Jv=he(0);Ke(()=>{zn.current=G.permissionMode},[G.permissionMode]);let CN=be(()=>ms(),[]),tm=he(CN),qe=he(G);Ke(()=>{Tc?.getProvider().updateOptions({hostArguments:e.catalog?{catalog:e.catalog,selection:o(()=>qe.current,"selection")}:void 0})},[Tc?.getProvider,e.catalog]),Ke(()=>{qe.current=G},[G]),Ke(()=>{if(!e.clientPlane||W?.session.id!==n.sessionId)return;let f=Zr.current,y=Rn.current,w=!0,b=o(()=>{if(!w||y!==Rn.current)return;let R=f.sessionId===Zr.current.sessionId?ou(f.patch,Zr.current.patch):{},E=jo(qe.current,W,R);E!==qe.current&&(Zr.current={sessionId:n.sessionId,patch:{...Zr.current.patch,...cr(E,e.maxIter)}},qe.current=E,zn.current=E.permissionMode,ki(E))},"apply");return y.then(b,b),()=>{w=!1}},[W,n.sessionId,e.clientPlane,e.maxIter]);let nm=he(null);nm.current===null&&(nm.current=Pm({getProvider:o(()=>fa(qe.current.provider),"getProvider"),getModel:o(()=>qe.current.model??"","getModel")}));let po=Y(async(f,y,w)=>{w?.throwIfAborted();let b=e.clientPlane;if(b?.updateSettings){let R=n.sessionId,E=ou(cr(qe.current,e.maxIter),cr(f,e.maxIter),y),D=o(async()=>{w?.aborted||(await b.updateSettings(R,E),!w?.aborted&&(Zr.current={sessionId:R,patch:{...Zr.current.patch,...E}}))},"write");Rn.current=Rn.current.then(D,D),await Rn.current}w?.throwIfAborted(),qe.current=f,ki(f)},[n.sessionId,e.clientPlane,e.maxIter]);async function TN(f){let y=qe.current;try{let w=await e.catalog.reasoningEfforts({provider:y.provider,model:y.model});if(f.throwIfAborted(),!w.length)return;let b=y.permissionMode==="plan"&&!y.effortOverride&&y.planModeEffort!==void 0?y.planModeEffort:y.effortOverride?y.effort:void 0,R=IC(w,b==="none"?"off":b??"auto"),E=w[(R+1)%w.length],D=await oR([E],{config:e.config,catalog:e.catalog,setEffort:o(async j=>po({...qe.current,effort:j,effortOverride:j!==void 0},["effort"],f),"setEffort"),setReasoningMode:o(async j=>po({...qe.current,reasoningMode:j,thinking:j!=="off"},["reasoningMode","thinking"],f),"setReasoningMode")},y);return D.success?{success:!0,message:`Effort: ${E==="off"?"none":E}`}:D}catch(w){return{success:!1,message:`Host effort selection failed: ${String(w)}`}}}o(TN,"selectNextHostEffort");let rm=Y(async f=>{let y=xo(f),w=++Jv.current;if(e.clientPlane?.updateSettings){let R=e.clientPlane,E=n.sessionId,D={permissionMode:y},j=o(async()=>{await R.updateSettings(E,D),Zr.current={sessionId:E,patch:{...Zr.current.patch,...D}}},"write");Rn.current=Rn.current.then(j,j),await Rn.current}else await e.runtimeAutoModeControl?.syncSettings?.(n.sessionId,y,s);if(w!==Jv.current)return;ki(R=>({...R,permissionMode:y})),zn.current=y;let b=Ia({provider:qe.current.provider,model:qe.current.model,effort:qe.current.effort,effortOverride:qe.current.effortOverride,permissionMode:y,planModeEffort:qe.current.planModeEffort,thinking:qe.current.thinking,reasoningMode:qe.current.reasoningMode});Le.current={...Le.current,effort:b.runtimeEffort,guardrails:dT(y,d)}},[d,s,n.sessionId,e.clientPlane,e.maxIter,e.runtimeAutoModeControl]),Qv=he(ce.pendingInputs),Pt=he(!1),Zv=he(0),vw=he(null),ed=he(0),im=Y(()=>{if(Iu.current)return;let f=Tp.current?.trim(),y=vt.current.length>0?vt.current[vt.current.length-1]:void 0,w=y&&"text"in y&&typeof y.text=="string"?y.text.trim():void 0,R=$n.current.length>0?[...$n.current.map(E=>zo(E)),...f&&f!==w?[{type:"info",text:f}]:[]]:[...$n.current.map(E=>zo(E)),...zz(we(),Ln(),{toolCalls:jn.current,toolNames:Ai.current,infoItems:f&&f!==w?[f]:[]})];R.length!==0&&(Iu.current=!0,Sc($n.current),lc.current?.(R))},[Ln,we,Sc]);Ke(()=>{Qv.current=ce.pendingInputs},[ce.pendingInputs]);let eb=Y(()=>{Pt.current=!0,pt(),ze(),mt(),rt(),kt(),ht(),tt(void 0),ts(),Zt(void 0),Zs(),Ys.current=[],hc.current=[],Ft.current=null,Tp.current=null,Pu([]),xp(null),dc(null),ea(),Ou(void 0),Fn(!1),g?.isTTY===!0&&Oa(g)?.clear?.()},[pt,ht,rt,kt,ea,ts,Zs,tt,Pu,Fn,Zt,ze,mt,g]),om=Y(f=>{if(Jo.current){let b=hu();return Jo.current.request().then(()=>b()).catch(R=>{Ge({source:"repl:stop",level:"error",message:R instanceof Error?R.message:String(R)})}),!0}let y=fc.current,w=e.workflows;return!y||!w?!1:((async()=>{let b=await w.get(y.runId);if(!n.sessionId||b?.hostMetadata?.ownerSessionId!==n.sessionId)throw new Error("Stop the workflow from the Session that owns it.");let R=await w.stop(y.runId,{sessionId:n.sessionId});Cn({type:"info",text:R?`Stop requested for workflow ${y.runId}; waiting for cleanup.`:`Workflow ${y.runId} did not accept the stop request.`},"workflow-stop")})().catch(b=>{Cn({type:"info",text:b instanceof Error?b.message:String(b)},"workflow-stop")}),!0)},[hu,n.sessionId,Cn,e.workflows]);Ke(()=>{if(!Tn.shouldRender)return;let f=o(()=>{om("stopped by Ctrl+C")},"handleSigint");return process.on("SIGINT",f),()=>{process.off("SIGINT",f)}},[om,Tn.shouldRender]),Wr(hr.Critical,f=>{let y=f.name==="escape",w=Date.now(),b=y&&!ue&&!Li&&Tu&&oe.length===0&&(at||Tn.shouldRender),R=b&&(f.meta===!0||w-Zv.current<bz);if(Zv.current=b?w:0,lL({keyName:f.name,ctrl:!!f.ctrl,isTranscriptMode:ue,isAwaitingUserInteraction:Li,isInputEmpty:Tu,isDoubleEscape:R,pendingInputCount:oe.length,hasTranscriptTextSelection:!!ao,hasActiveWorkflow:Tn.shouldRender}))return om(f.ctrl?"stopped by Ctrl+C":"stopped by Escape");if(!at)return!1;switch(uL({keyName:f.name,ctrl:!!f.ctrl,isTranscriptMode:ue,isAwaitingUserInteraction:Li,isInputEmpty:Tu,isDoubleEscape:R,pendingInputCount:oe.length,hasTranscriptTextSelection:!!ao}).kind){case"interrupt":if(Jo.current){let D=hu();return Jo.current.request().then(()=>D()).catch(j=>{Ge({source:"repl:stop",level:"error",message:j instanceof Error?j.message:String(j)})}),!0}return im(),eb(),$({type:"info",text:Re("cancellationRequested")}),!0;case"pop-pending-input":return ce.pendingInputs.length>0?(qr(),!0):(je?.discardNewest(n.sessionId,(W?.queue??[]).map(D=>D.inputId)).catch(D=>{X(`withdraw-${Date.now()}`,`Withdraw failed \u2014 the queued input may still run. ${D instanceof Error?D.message:String(D)}`)}),!0);default:break}return!1},[at,ue,Li,Tu,oe.length,ce.pendingInputs.length,W,je,n.sessionId,X,qr,im,eb,hu,$,om,ao,Tn.shouldRender]),Wr(hr.Critical,f=>{let y=sL({itemsLength:tr.length,currentResponse:It.currentResponse,thinkingContent:It.thinkingContent,activeToolCallsLength:It.activeToolCalls.length}),w=aL({keyName:f.name,hasTranscript:y,historyScrollOffset:In,isBrowsingHistory:!ue&&st.display!==null,reviewPageSize:Xu,reviewWheelStep:Nv,hasMouse:!!f.mouse,mouseButton:f.mouse?.button,mouseAction:f.mouse?.action,usesManagedMouseClicks:JT,supportsMouseTracking:ot.supportsMouseTracking,usesRendererMouseTracking:Pp,usesManagedMouseWheel:QT,supportsWheelHistory:ot.supportsWheelHistory});if(w.kind==="mouse-phase"){let R=f.mouse;if(!R)return!1;w.phase==="press"&&di.current&&Gv(di.current);let E=Vv(R.row,R.column);if(w.phase==="press"){if(!E||!y)return gi||Et?(ww(),!0):(kn(),!1);let D=jO({previous:AT.current,time:Date.now(),row:R.row,column:R.column});AT.current=D;let j=D.count>=3?"line":D.count===2?"word":"char";if(Zp(),Ei(Q=>au(Q,void 0)),ue?qy(void 0):zy(void 0),j!=="char"){let Q=Py(Zu(),E.point,j);if(Q)return di.current={anchor:Q.start,focus:Q.end,didDrag:!1,mode:j,anchorSpan:Q},$c(Q.start,Q.end,{updateSelectedItem:!1}),!0}return di.current={anchor:E.point,focus:E.point,didDrag:!1,mode:"char"},!0}if(!di.current)return!1;if(w.phase==="drag"){let D=uc.current,j=D?hO(D,R.row):0;j!==0&&ku(j);let Q=E??(D?rT(D,R.row,R.column):void 0);if(!Q)return!1;let te=di.current;if(te.mode!=="char"&&te.anchorSpan){let We=Py(Zu(),Q.point,te.mode);if(!We)return!1;let me=uT(te.anchorSpan,We);return di.current={...te,anchor:me.anchor,focus:me.focus,didDrag:!0},$c(me.anchor,me.focus,{updateSelectedItem:!1}),!0}return di.current={...te,focus:Q.point,didDrag:!0},$c(te.anchor,Q.point,{updateSelectedItem:!1}),!0}if(w.phase==="release"){let D=di.current,j=D.focus,te=(E??(uc.current?rT(uc.current,R.row,R.column):void 0))?.point??j;if(D.mode!=="char"&&D.anchorSpan){let We=Py(Zu(),te,D.mode);if(We){let me=uT(D.anchorSpan,We);D.anchor=me.anchor,te=me.focus}}return Gv(D,{focusPoint:te}),!0}}if(w.kind==="scroll-by")return Zp(),qp(w.delta),!0;if(w.kind==="consume")return!0;let b=dL({key:f,isTranscriptMode:ue,isHistorySearchActive:Kt,historySearchMatchCount:bn.length,hasTextSelection:!!gi,hasFocusedItem:!!Et,canCopySelectedItem:Mc,canCopySelectedToolInput:Wp,canToggleSelectedDetail:jp,canCycleTranscriptSelection:Fp});return fL({action:b,hasTranscript:y,isTranscriptMode:ue,pageScrollDelta:Xu,disarmHistorySearchSelection:Zp,scrollTranscriptBy:qp,closeHistorySearchSurface:Iw,backspaceHistorySearchQuery:o(()=>{bc(R=>R.slice(0,-1)),hi(0)},"backspaceHistorySearchQuery"),stepHistorySearchSelection:o(R=>{hi(E=>ZC(bn.length,E,R))},"stepHistorySearchSelection"),submitHistorySearchSelection:o(()=>{let R=bn[os];R&&(Sw(R.itemId),Iw())},"submitHistorySearchSelection"),appendHistorySearchQuery:o(R=>{bc(E=>E+R),hi(0)},"appendHistorySearchQuery"),openHistorySearchSurface:xw,clearTranscriptSelectionFocus:ww,exitTranscriptModeSurface:em,toggleTranscriptShowAll:Yv,scrollTranscriptHome:o(()=>{qp(Math.max(1,oa))},"scrollTranscriptHome"),scrollTranscriptToBottom:o(()=>{st.reset(),Qo(),kn()},"scrollTranscriptToBottom"),cycleTranscriptSelection:Fv,copySelectedTranscriptText:o(()=>{Qp()},"copySelectedTranscriptText"),copySelectedTranscriptItem:o(()=>{jv()},"copySelectedTranscriptItem"),copySelectedTranscriptToolInput:o(()=>{Uv()},"copySelectedTranscriptToolInput"),toggleSelectedTranscriptDetail:Wv,navigateSearchMatch:o(R=>{hi(E=>{let D=ZC(bn.length,E,R),j=bn[D];return j&&Sw(j.itemId),D})},"navigateSearchMatch"),dumpTranscriptToScrollback:o(()=>{pL({items:tr.filter(R=>!Ax(R)),exitAltScreen:o(()=>{v(gl({mouseTracking:!0}))},"exitAltScreen"),writeToScrollback:o(R=>{v(R)},"writeToScrollback"),enterAltScreen:o(()=>{v(Ch({mouseTracking:!0,clearOnEnter:!1}))},"enterAltScreen")})},"dumpTranscriptToScrollback")})},[ue,tr,It.currentResponse,It.thinkingContent,It.activeToolCalls,In,oa,Xu,Nv,qp,st.display,st.reset,Et,ww,em,Yv,ot,ku,Ru,Qo,Fp,os,kn,Qp,bn,xw,Iw,Zp,Fv,Mc,jv,Wp,Uv,jp,Wv,Sw,gi,Vv,ot.supportsMouseTracking,ao,JT,QT,sw,ta,Pp,$c,Wt.messageRows]),Wr(f=>{if(!gt)return!1;let y=f.sequence.trim().toLowerCase(),w=gt.runtimeGrantSuggestions?.find(Q=>Q.kind==="session"),b=gt.runtimeGrantSuggestions?.find(Q=>Q.kind==="persistent"),R=!!gt.input._alwaysConfirm,E=gt.runtimeGrantSuggestions!==void 0,D=b!==void 0||!E&&G.permissionMode==="accept-edits"&&!R,j=o(Q=>{let te=`${Re("dialog.confirm")} ${gt.prompt}
|
|
180
|
+
\u2192 ${Re(`confirm.result.${Q}`)}`;!!_t.current.workerId?Un({id:`confirm-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"info",text:te,timestamp:Date.now()}):$({type:"info",text:te})},"recordConfirmResult");return y==="y"||y==="yes"?(j("approved"),vc(null),Jr.current?.({confirmed:!0}),Jr.current=null,!0):w&&(y==="s"||y==="session")?(j("approved_session"),vc(null),Jr.current?.({confirmed:!0,runtimeGrantKind:"session"}),Jr.current=null,!0):D&&(y==="a"||y==="always")?(j("approved_always"),vc(null),Jr.current?.(b?{confirmed:!0,runtimeGrantKind:"persistent"}:{confirmed:!0,always:!0}),Jr.current=null,!0):y==="n"||y==="no"||f.name==="escape"?(j("denied"),vc(null),Jr.current?.({confirmed:!1}),Jr.current=null,!0):f.insertable||f.name==="return"},{isActive:!!gt,priority:hr.Critical});let sm=Y(f=>{Lr(null),Pi.current?.(f),Pi.current=null},[]),mo=Y((f,y,w,b,R)=>y.length===0||R?.aborted?Promise.resolve(void 0):new Promise(E=>{let D=o(te=>{R?.removeEventListener("abort",j),Pi.current===D&&(Pi.current=null),E(te)},"settle"),j=o(()=>{Pi.current===D&&(Lr(null),D(void 0))},"onAbort");Pi.current=D,R?.addEventListener("abort",j,{once:!0});let Q=b?.defaultValue===void 0?-1:y.findIndex(te=>te.value===b.defaultValue);Lr({kind:"select",title:f,options:y,buffer:"",focusedIndex:Math.max(0,Q),selectedIndices:w===!0&&Q>=0?[Q]:[],multiSelect:w,minSelections:b?.minSelections,maxSelections:b?.maxSelections})}),[]),vN=Y((f,y)=>mo(f,y.map(w=>({label:w,value:w}))).then(w=>Array.isArray(w)?w[0]:w),[mo]),bN=Y(async f=>{let y=e.learning;if(!y){ur([{id:"learning-center-unavailable",text:"Learning Center is unavailable in this runtime.",tone:"warning"}]);return}let w=f;if(!w){let D=await y.list({limit:200});if(D.items.length===0){ur([{id:"learning-center-empty",text:"Learning Center has no learned capabilities.",tone:"accent"}]);return}let j=await mo("Learning Center \u2014 type to search",kz(D.items));w=Array.isArray(j)?j[0]:j}if(!w)return;let b=await y.get(w),R=await mo(`${b.displayName} \xB7 ${b.carrier} \xB7 ${b.lifecycle}`,Rz(b)),E=Array.isArray(R)?R[0]:R;E&&(await Ez(y,b.capabilityId,E),Qn(await y.getSnapshot()))},[e.learning,mo]),tb=Y(async f=>{let y=f.options?_y(f.options):[],w=await mo(oT(f),y,!1);return w===void 0?mr:Array.isArray(w)?w[0]??mr:w},[mo]);Ke(()=>{let f=!1;return(async()=>{let{bindAskUserForConstruction:y}=await import("./construction-bootstrap-OAZKGI5Y.js");f||y(tb)})(),()=>{f=!0,(async()=>{let{bindAskUserForConstruction:y}=await import("./construction-bootstrap-OAZKGI5Y.js");y(null)})()}},[tb]);let aa=Y((f,y,w,b=!1)=>w?.aborted?Promise.resolve(void 0):new Promise(R=>{let E=o(j=>{w?.removeEventListener("abort",D),Pi.current===E&&(Pi.current=null),R(Array.isArray(j)?j[0]:j)},"settle"),D=o(()=>{Pi.current===E&&(Lr(null),E(void 0))},"onAbort");Pi.current=E,w?.addEventListener("abort",D,{once:!0}),Lr({kind:"input",prompt:f,defaultValue:b?void 0:y,secret:b,buffer:""})}),[]);Wr(f=>{let y=Ap.current;if(!y)return!1;if(f.name==="escape")return sm(void 0),!0;if(y.kind==="select"){let w=y.options.length;if(f.name==="up"||f.sequence==="k")return Lr(b=>b&&b.kind==="select"?{...b,focusedIndex:(b.focusedIndex-1+w)%w,error:void 0}:b),!0;if(f.name==="down"||f.sequence==="j")return Lr(b=>b&&b.kind==="select"?{...b,focusedIndex:(b.focusedIndex+1)%w,error:void 0}:b),!0;if(f.sequence===" "&&y.multiSelect)return Lr(b=>{if(!b||b.kind!=="select")return b;let R=b.focusedIndex,E=b.selectedIndices.includes(R)?b.selectedIndices.filter(D=>D!==R):[...b.selectedIndices,R];return{...b,selectedIndices:E,error:void 0}}),!0;if(f.name==="return"){let b=Ap.current;if(!b||b.kind!=="select")return!1;if(b.multiSelect){let R=b.selectedIndices.length,{minSelections:E,maxSelections:D}=b,j=R===0&&E!==0?Re("select.multiselect_empty"):E!==void 0&&R<E?Re("select.multiselect_min",{min:String(E)}):D!==void 0&&R>D?Re("select.multiselect_max",{max:String(D)}):void 0;if(j!==void 0)return Lr(te=>te&&te.kind==="select"?{...te,error:j}:te),!0;let Q=b.selectedIndices.slice().sort((te,We)=>te-We).map(te=>b.options[te]?.value).filter(te=>typeof te=="string"&&te.length>0);sm(Q)}else sm(b.options[b.focusedIndex]?.value);return!0}if(/^[1-9]$/.test(f.sequence)){let b=Number.parseInt(f.sequence,10)-1;if(b>=0&&b<w)return y.multiSelect?Lr(R=>{if(!R||R.kind!=="select")return R;let E=R.selectedIndices.includes(b)?R.selectedIndices.filter(D=>D!==b):[...R.selectedIndices,b];return{...R,focusedIndex:b,selectedIndices:E,error:void 0}}):Lr(R=>R&&R.kind==="select"?{...R,focusedIndex:b,error:void 0}:R),!0}return!1}if(f.name==="return"){let w=Ap.current;if(!w||w.kind!=="input")return!1;let b=w.buffer.trim();return sm(b===""?w.defaultValue??void 0:b),!0}return f.name==="backspace"||f.name==="delete"?(Lr(w=>w&&w.kind==="input"?{...w,buffer:w.buffer.slice(0,-1),error:void 0}:w),!0):(f.insertable||f.isPasted===!0)&&!f.ctrl&&!f.meta?(Lr(w=>w&&w.kind==="input"?{...w,buffer:w.buffer+f.sequence,error:void 0}:w),!0):!1},{isActive:!!Qe,priority:hr.Critical}),Ke(()=>{if(k.length===0){if(n.uiHistory?.length){let f=ji(n.uiHistory);f.length!==n.uiHistory.length&&(n.uiHistory=f),P(Nd({messages:n.messages,uiHistory:f}));return}n.messages.length>0&&P(Nd({messages:n.messages}))}},[n.messages,n.uiHistory,k.length,P]);let bw=he(!1);Ke(()=>{let f=!0;return bw.current=!1,gm(n.gitRoot).finally(()=>{f&&(bw.current=!0)}),()=>{f=!1}},[n.gitRoot]),Ke(()=>{process.env.KODAX_PREWARM_REPO_INTELLIGENCE!=="0"&&Eb({executionCwd:n.runtimeInfo?.executionCwd??n.gitRoot??process.cwd(),gitRoot:n.gitRoot??void 0},{mode:G.repoIntelligenceMode})},[n.gitRoot,n.runtimeInfo?.executionCwd,G.repoIntelligenceMode]);let as=Y(()=>({onOutputSegmentStart:o((f,y)=>{Pt.current||_d(y)||FT(f)},"onOutputSegmentStart"),onMemoryOutcomeDigest:o((f,y)=>{if(f.sessionId!==n.sessionId){e.events?.onMemoryOutcomeDigest?.(f,y);return}n.lineage=Cm(n.lineage??it(n.messages),f,y?.jobId)},"onMemoryOutcomeDigest"),onMemoryReviewReceipt:o(f=>{if(f.sessionId!==void 0&&f.sessionId!==n.sessionId){e.events?.onMemoryReviewReceipt?.(f);return}n.lineage=Tm(n.lineage??it(n.messages),f)},"onMemoryReviewReceipt"),onMemoryNotice:o(f=>{if(f.sessionId!==void 0&&f.sessionId!==n.sessionId){e.events?.onMemoryNotice?.(f);return}let y=n.lineage??it(n.messages),w=vm(y,{...f,createdAt:new Date().toISOString()});n.lineage=w,w!==y&&$({type:"info",text:`[memory] ${f.summaries.slice(0,3).join("; ")}`}),e.events?.onMemoryNotice?.(f)},"onMemoryNotice"),onThinkingDelta:o((f,y)=>{if(Pt.current||Pr(y,"thinking",f,{append:!0}))return;if(y?.providerRequestId!==void 0){let R=Rm(Js.current,{type:"thinking.delta",providerRequestId:y.providerRequestId,text:f});if(Js.current=R.state,!R.accepted)return}ce.currentTool&&(tt(void 0),kt());let{header:w}=RP(we()+f),b=w?`[Thinking: ${w}]`:"[Thinking]";Zt(Zm(Ft.current?.activeWorkerTitle?`[${Ft.current.activeWorkerTitle}] ${b}`:b,Ft.current?.activeWorkerTitle)),Ze(f.length),Lt(f),_t.current.workerId&&(rw("thinking",f),Qs.current={...Qs.current,thinkingItemId:Ot.current.activeThinkingItemId})},"onThinkingDelta"),onThinkingEnd:o((f,y)=>{if(Pt.current||Pr(y,"thinking",f))return;let w=we(),b=DR(w,f);b&&b!==w&&(rt(),Vt(),Ze(b.length),Lt(b)),_t.current.workerId&&WT(b),mt()},"onThinkingEnd"),onTextDelta:o((f,y)=>{if(!Pt.current&&!Pr(y,"assistant",f,{append:!0})){if(y?.providerRequestId!==void 0){let w=Rm(Js.current,{type:"assistant.delta",providerRequestId:y.providerRequestId,text:f});if(Js.current=w.state,!w.accepted)return}ce.currentTool&&(tt(void 0),kt()),mt(),Zt(void 0),li(f),_t.current.workerId&&(rw("assistant",f),Qs.current={...Qs.current,assistantItemId:Ot.current.activeAssistantItemId})}},"onTextDelta"),onToolUseStart:o((f,y)=>{if(Pt.current||Pr(y,"tool",mS(f.name,f.input)))return;Ai.current.includes(f.name)||(Ai.current=[...Ai.current,f.name]);let w=Ft.current?.activeWorkerTitle?`[${Ft.current.activeWorkerTitle}] `:"",b={id:f.id,name:`${w}${f.name}`,status:K.Executing,startTime:Date.now(),input:f.input};jT(b),_t.current.workerId&&mi(b),Zt(Io(b,Ft.current?.activeWorkerTitle))},"onToolUseStart"),onToolInputDelta:o((f,y,w)=>{if(Pt.current||Pr(w,"tool",f,{skipIfExisting:!0}))return;oo(y.length),Er(y);let b=UT(w?.toolId,f,R=>{let E=R.preview??"",D=TP(`${E}${y}`);return{...R,preview:D||void 0,input:R.input?D?{...R.input,preview:D}:{...R.input}:D?{preview:D}:void 0}});b&&(_t.current.workerId&&mi(b),Zt(Io(b,Ft.current?.activeWorkerTitle)))},"onToolInputDelta"),onToolResult:o((f,y)=>{if(Pt.current||Pr(y,"tool",`${f.name} completed`))return;let w=typeof f.content=="string"?f.content:String(f.content??""),b=vP(w);if(/^\[(?:Tool Error|Error)\]/.test(w)){let E=Mp(f.id,K.Error,b,b,f.name);E&&(_t.current.workerId&&mi(E),Zt(Io(E,Ft.current?.activeWorkerTitle)));return}if(/^\[(?:Cancelled|Blocked)\]/.test(w)){let E=Mp(f.id,K.Cancelled,void 0,b,f.name);E&&(_t.current.workerId&&mi(E),Zt(Io(E,Ft.current?.activeWorkerTitle)));return}let R=Mp(f.id,K.Success,void 0,b||void 0,f.name);R&&(_t.current.workerId&&mi(R),Zt(Io(R,Ft.current?.activeWorkerTitle)))},"onToolResult"),onToolProgress:o((f,y)=>{if(Pt.current||Pr(y,"progress",f.message))return;let w=f.message.length>100?f.message.slice(0,97)+"...":f.message,b=Cc(f.id,R=>({...R,preview:w,progressLines:[...(R.progressLines??[]).slice(-4),w]}));b&&_t.current.workerId&&mi(b),Zt(w)},"onToolProgress"),onStreamEnd:o(f=>{if(Pt.current||_d(f))return;let y=Bu(K.Cancelled,()=>({error:"Stream ended before the tool completed.",output:void 0})),w=y[y.length-1];_t.current.workerId&&y.forEach(b=>mi(b)),w&&Zt(Io(w,Ft.current?.activeWorkerTitle)),mt(),kt(),tt(void 0)},"onStreamEnd"),onChildActivityEnd:o(f=>{NT(f)},"onChildActivityEnd"),hasPendingInputs:o(()=>Qv.current.length>0,"hasPendingInputs"),onMidTurnUserMessages:o(f=>{if(!Pt.current)for(let y of f){let w=y.trim();w&&(_t.current.workerId?Un({id:`mid-turn-user-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"user",text:w,timestamp:Date.now()}):$({type:"user",text:w}))}},"onMidTurnUserMessages"),onError:o(f=>{let y=kb(f);if(y.category===sd.USER_ABORT)return;let w=es();w?.name&&Zt(Io(w,Ft.current?.activeWorkerTitle));let b=Bu(K.Error,()=>({error:f.message,output:void 0})),R=b[b.length-1];_t.current.workerId&&b.forEach(We=>mi(We)),R&&Zt(Io(R,Ft.current?.activeWorkerTitle));let j=[`\u274C API Error (${["Transient","Permanent","Tool Call ID","User Abort"][y.category]||"Unknown"}): ${f.message}`];y.shouldCleanup&&j.push(" \u{1F9F9} Cleaned incomplete tool calls"),y.category===sd.PERMANENT?(j.push(" \u{1F4A1} This error requires manual intervention. Please check:"),f.message.includes("auth")||f.message.includes("401")?(j.push(" - Your API key is valid"),j.push(" - Run /config to check provider settings")):f.message.includes("400")?(j.push(" - The request parameters are correct"),j.push(" - Try restarting the conversation")):j.push(" - The error details above")):y.category===sd.TRANSIENT?j.push(" \u23F3 Retries exhausted. Press Enter to continue the conversation"):y.category===sd.TOOL_CALL_ID&&j.push(" \u2705 Session cleaned, ready to continue");let Q=j.join(`
|
|
181
|
+
`);!!_t.current.workerId?Un({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:Q,timestamp:Date.now()}):$({type:"error",text:Q})},"onError"),onOutputNotice:o((f,y)=>{if(Pt.current)return;let w="[Model] The provider declined to answer.";pc(y,w)||Pr(y,"progress",w)||(_t.current.workerId?Un({type:"info",text:w,id:`output-notice-${y?.providerRequestId??Date.now()}`,timestamp:Date.now()}):$({type:"info",text:w}))},"onOutputNotice"),onRetry:o((f,y,w,b)=>{if(Pt.current)return;let R=Md(f,y,w);if(pc(b,R.text)||Pr(b,"progress",R.text))return;!!_t.current.workerId?Un({...R,id:`retry-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()}):$(R)},"onRetry"),onProviderRecovery:o((f,y)=>{if(Pt.current)return;let w=Ad(f);if(pc(y,w.text)||Pr(y,"progress",w.text))return;let b=!!_t.current.workerId;Kz({clearResponse:ht,clearThinkingContent:rt,stopThinking:mt,clearToolInputContent:kt,clearCurrentTool:o(()=>tt(void 0),"clearCurrentTool"),resetLiveToolCalls:ts,clearLiveActivityLabel:o(()=>Zt(void 0),"clearLiveActivityLabel")}),b?Un({...w,id:`recovery-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()}):$(w)},"onProviderRecovery"),onManagedTaskStatus:o(f=>{if(Pt.current)return;let y=_t.current;if(qO(f)){if(y.workerId&&y.workerId!==f.activeWorkerId)iN({workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle});else if(y.workerId!==f.activeWorkerId){let D=Ot.current,j=D.activeToolGroupTools.some(Q=>Q.status===K.Executing);Ot.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle,...j?{activeToolGroupItemId:D.activeToolGroupItemId,activeToolGroupTools:D.activeToolGroupTools}:{activeToolGroupTools:[]}},_t.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle}}}Ft.current=f,xp(f);let w=IS(f);oN(w);let b=Ta(f),E=Ta(f,{expanded:!0})??b;E&&(Tp.current=E)},"onManagedTaskStatus"),onProviderRateLimit:o((f,y,w,b)=>{if(Pt.current)return;let R=vw.current;if(vw.current=null,CP(R,{attempt:f,maxAttempts:y,delayMs:w}))return;let E=`[Rate Limit] Retrying in ${w/1e3}s (${f}/${y})...`;pc(b,E)||Pr(b,"progress",E)||Cn({type:"info",icon:"\u23F3",text:E},"ratelimit")},"onProviderRateLimit"),onRetryAfter:o((f,y)=>{if(Pt.current)return;vw.current={attempt:f.attempt,maxAttempts:f.maxAttempts,waitMs:f.waitMs};let w=Math.round(f.waitMs/1e3),b=f.source==="exponential-backoff"?"no-header \u2192 backoff":f.source,E=`[${f.reason==="overloaded"?"Overloaded":"Rate limited"}] (${f.provider}) \u2014 retrying in ${w}s [${b}] (${f.attempt}/${f.maxAttempts})`;pc(y,E)||Pr(y,"progress",E)||Cn({type:"info",icon:"\u23F3",text:E},"ratelimit")},"onRetryAfter"),onReasoningEffortRejected:o(f=>{if(!e.clientPlane&&f.cacheScope!==void 0&&Ow(f.provider,f.model,f.effort,"observed",new Date().toISOString(),void 0,f.cacheScope),e.clientPlane||f.cacheScope!==void 0){Cn({type:"info",icon:"\u26A0",text:`[${f.provider}/${f.model} rejected effort "${f.effort}"; Host capability learning governs subsequent requests.]`},"ratelimit");return}Ow(f.provider,f.model,f.effort,"observed",new Date().toISOString());let w=Ia({provider:f.provider,model:f.model,effort:qe.current.effort,effortOverride:qe.current.effortOverride,permissionMode:qe.current.permissionMode,planModeEffort:qe.current.planModeEffort,thinking:qe.current.thinking,reasoningMode:qe.current.reasoningMode}).runtimeEffort;ki(b=>({...b,effort:w,effortOverride:w!==void 0})),gd({effort:w}),Le.current.effort=w,Cn({type:"info",icon:"\u26A0",text:`[${f.provider}/${f.model} \u4E0D\u652F\u6301 effort "${f.effort}",\u5DF2\u8BB0\u5F55;\u540E\u7EED\u4E0D\u518D\u63D0\u4F9B\u8BE5\u6863${w?`,\u5DF2\u5207\u5230 ${w}`:""}]`},"ratelimit")},"onReasoningEffortRejected"),onRepoIntelligenceTrace:o(f=>{Pt.current||Cn(DP(f),"repointel-trace")},"onRepoIntelligenceTrace"),onTodoUpdate:o(f=>{Pt.current||fi(f)},"onTodoUpdate"),onScoutSuspiciousCompletion:o(f=>{Pt.current||XO&&Cn({type:"info",icon:"\u26A0",text:`[Scout] Completion marked uncertain \u2014 signals: ${f.signals.join(", ")}. Verify the result before continuing.`},"scout-uncertain")},"onScoutSuspiciousCompletion"),onIterationStart:o((f,y)=>{if(Pt.current)return;if(y&&Jn(y),Ft.current?.globalWorkBudget){let te={...Ft.current,budgetUsage:Math.min(Ft.current.globalWorkBudget,(Ft.current.budgetUsage??0)+1)};Ft.current=te,xp(te)}let w=f>1?we().trim():"",b=f>1?hT(Ln()):"",R=f>1?[...Ai.current]:[],E=f>1?[...jn.current]:[],D=!!_t.current.workerId;Ye(f),D&&Rp({clearOwner:!1});let j=co.current.filter(te=>te.status===K.Executing),Q=new Set(j.map(te=>te.id));if(Ai.current=[],jn.current=jn.current.filter(te=>Q.has(te.id)),Yr(j),kt(),tt(void 0),Zt(Zm(Ft.current?.activeWorkerTitle?`[Thinking] [${Ft.current.activeWorkerTitle}]`:void 0,Ft.current?.activeWorkerTitle)),Vt(),f>1&&!D){let te=gT({thinking:w,response:b,toolCalls:E,toolNames:R});lc.current?lc.current(te):P([...te])}},"onIterationStart"),beforeToolExecute:o(async(f,y)=>{let w=zn.current,b=fd(w),R=tm.current,E=n.gitRoot;if(w==="full-access"||So(w))return!0;if(Hb(H.current,f,y))return`[Skipped] Previously denied operation. ${Fb(H.current)}`;if(w==="plan"){let D=ds(f,y,E??n.runtimeInfo?.executionCwd??process.cwd(),n.runtimeInfo?.executionCwd??E??process.cwd());if(D!==null)return`${D} ${Lz}`}if(f==="bash")return!0;if(f==="bash"){let D=y.command??"";if(ya(D,E??process.cwd(),n.runtimeInfo?.executionCwd??E??process.cwd()))return!0}if(f==="bash"){let D=y.command??"",j=Db(D);if(j.level==="dangerous"){let Q=await ho(f,{...y,_dangerousCommand:!0});return Q.confirmed?Q.confirmed:(H.current=Kw(H.current,f,y,j.reason),`[Blocked] Dangerous command requires confirmation: ${j.reason}`)}}if(E){let D=!1;if(ha.has(f)){let j=y.path;j&&ad(j,E)&&(D=!0)}if(f==="bash"){let j=y.command;j&&Vw(j,E)&&(D=!0)}if(D){let j=await ho(f,{...y,_alwaysConfirm:!0});if(zn.current==="plan"&&(ha.has(f)||f==="undo"))return!1;if(zn.current==="plan"&&f==="bash"){let Q=y.command??"";if(km(Q))return!1}return j.confirmed}}if(b.has(f)){if(w==="accept-edits"&&f==="bash"&&await ga(f,y,R,nm.current??void 0))return!0;let D=await ho(f,y);if(zn.current==="plan"&&(ha.has(f)||f==="undo"))return!1;if(zn.current==="plan"&&f==="bash"){let j=y.command??"";if(km(j))return!1}if(!D.confirmed)return $({type:"info",text:Re("cancelled")}),H.current=Kw(H.current,f,y),!1;D.always&&w==="accept-edits"&&(Qc(f,y,!1),tm.current=ms())}return!0},"beforeToolExecute"),askUser:o(async(f,y,w)=>{let b=iT(f.options?_y(f.options):[],f),R=await mo(oT(f),b,f.multiSelect,{minSelections:f.minSelections,maxSelections:f.maxSelections,defaultValue:f.default},w?.signal);if(R===void 0)return mr;if(R===pr){let E=await aa(f.customInputPrompt??f.question,f.customInputDefault,w?.signal);return E===void 0?mr:{kind:"customInput",value:E}}if(Array.isArray(R)&&R.includes(pr)){let E=await aa(f.customInputPrompt??f.question,f.customInputDefault,w?.signal);return E===void 0?mr:R.map(D=>D===pr?{kind:"customInput",value:E}:D)}return R},"askUser"),exitPlanMode:o(async f=>zn.current!=="plan"?"not-in-plan-mode":(await ho("exit_plan_mode",{plan:f})).confirmed?(rm("accept-edits"),!0):!1,"exitPlanMode"),askUserMulti:o(async(f,y,w)=>{let b=f.questions,R={},E=0;for(;E<b.length;){let D=b[E],j=iT(_y(D.options),D);E>0&&j.push({label:Re("select.back_prev"),value:pa});let Q=`[${E+1}/${b.length}] ${D.question}`,te=await mo(Q,j,D.multiSelect,{minSelections:D.minSelections,maxSelections:D.maxSelections,defaultValue:D.default},w?.signal);if(te===void 0)return;if(!Array.isArray(te)&&te===pa){E--;continue}if(!Array.isArray(te)&&te===pr){let We=await aa(D.customInputPrompt??D.question,D.customInputDefault,w?.signal);if(We===void 0)return;R[D.question]={kind:"customInput",value:We},E++;continue}if(Array.isArray(te)&&te.includes(pr)){let We=await aa(D.customInputPrompt??D.question,D.customInputDefault,w?.signal);if(We===void 0)return;R[D.question]=te.map(me=>me===pr?{kind:"customInput",value:We}:me),E++;continue}R[D.question]=te,E++}return R},"askUserMulti"),askUserInput:o(async(f,y,w)=>aa(f.question,f.default,w?.signal),"askUserInput"),onCompactStart:o(()=>{ut()},"onCompactStart"),onCompactStats:o(f=>{xu.current=f.tokensBefore,Ar(f.tokensAfter)},"onCompactStats"),onCompactedMessages:o(async(f,y,w)=>{let b=dy(n.lineage,f,y,w);if(!b)return;n.messages=f,y?.artifactLedger&&y.artifactLedger.length>0&&(n.artifactLedger=ma(n.artifactLedger??[],y.artifactLedger),n.sessionSnapshotDirty=!0),n.lineage=b;let R=da(f);n.contextTokenSnapshot={currentTokens:R,baselineEstimatedTokens:R,source:"estimate"},Ci(n),Ar(R);let E=pp.current;if(!E)throw new Error("Ink REPL compaction persistence is not initialized.");try{await E(),n.lineage===b&&(n.lineage=xm(b))}catch(D){throw Ge({source:"repl:compaction",level:"error",message:"Failed to durably persist compacted session history.",detail:D}),D}},"onCompactedMessages"),onCompact:o(f=>{bt();let y=xu.current??f;xu.current=null;let w=Math.round(y/1e3);Cn({type:"info",icon:"\u2728",text:`Context auto-compacted (was ~${w}k tokens)`},"compact")},"onCompact"),onCompactEnd:o(()=>{xu.current=null,bt()},"onCompactEnd"),onIterationEnd:o(f=>{f.scope!=="worker"&&(n.contextTokenSnapshot=f.contextTokenSnapshot),Ar(f.tokenCount)},"onIterationEnd")}),[Ze,Lt,mt,li,tt,oo,Er,kt,Ye,Vt,G,n,ut,bt,$,rt,we,Ln,Rp,Zt,rw,WT,mi,FT,jT,UT,Mp,Bu,es,ts,Yr,NT,pc,Pr,Cn,ce.currentTool]),ho=o((f,y,w,b)=>{let R=kR(f,y),E=w?.map(Q=>Q.label)??[],D=w===void 0?[]:[lS,...E.map(Q=>`Runtime scope: ${Q}`)],j=D.length>0?`${R}
|
|
182
182
|
${D.join(`
|
|
183
|
-
`)}`:R;return cN.current(()=>b?.aborted?Promise.resolve({confirmed:!1}):(Vn(),new Promise(Q=>{let te=o(me=>{b?.removeEventListener("abort",We),Jr.current===te&&(Jr.current=null),Q(me)},"settle"),We=o(()=>{Jr.current===te&&(
|
|
183
|
+
`)}`:R;return cN.current(()=>b?.aborted?Promise.resolve({confirmed:!1}):(Vn(),new Promise(Q=>{let te=o(me=>{b?.removeEventListener("abort",We),Jr.current===te&&(Jr.current=null),Q(me)},"settle"),We=o(()=>{Jr.current===te&&(vc(null),te({confirmed:!1}))},"onAbort");Jr.current=te,b?.addEventListener("abort",We,{once:!0}),vc({tool:f,input:y,prompt:j,...w!==void 0?{runtimeGrantSuggestions:w}:{}})})))},"showConfirmDialog");C.current={question:o((f,y)=>as().askUser(f,void 0,y===void 0?void 0:{signal:y}),"question"),questionMulti:o((f,y)=>as().askUserMulti(f,void 0,y===void 0?void 0:{signal:y}),"questionMulti"),questionInput:o((f,y)=>as().askUserInput(f,void 0,y===void 0?void 0:{signal:y}),"questionInput"),permission:o((f,y)=>ho(f.toolName,{...f.inputPreview!==void 0?{input:f.inputPreview}:{},...f.plan!==void 0?{plan:f.plan}:{},...f.reason!==void 0?{_reason:f.reason}:{},...f.executionCwd!==void 0?{_executionCwd:f.executionCwd}:{},...f.risk!==void 0?{_runtimeRisk:f.risk}:{}},f.grantSuggestions??[],y),"permission")},Ke(()=>{p(G)},[G,p]),Ke(()=>{let f=o(()=>as(),"resolve");return $w({askUser:o((y,w)=>{let b=f().askUser;if(!b)throw new Error("askUser surface unavailable");return b(y,void 0,w)},"askUser"),askUserMulti:o(async(y,w)=>{let b=f().askUserMulti;return b?b(y,void 0,w):void 0},"askUserMulti"),askUserInput:o(async(y,w)=>{let b=f().askUserInput;return b?b(y,void 0,w):void 0},"askUserInput")}),()=>$w(void 0)},[as]);let am={onStopControl:o(f=>{ge.current=f,Jo.current=f??cc.current},"onStopControl"),onStopState:o((f,y)=>{let w=f==="rejected"?`${Re("cancellationRejected")} ${y??""}`:f==="confirmed"?`${Re("cancellationConfirmed")} ${y??""}`:f==="accepted"?Re("cancellationAccepted"):Re("cancellationRequested");Cn({type:"info",text:w},"runtime-stop")},"onStopState")},wi=o(async(f,y,w=n.lineage?Yt(n.lineage,n.lineage.activeEntryId):n.messages,b,R=y)=>{if(e.clientPlane){if(await Rn.current,await re(),f.toolInvocation){let me=e.clientPlane,Pe=await me.executeTool({sessionId:n.sessionId,inputId:bs(),...f.toolInvocation,rawInput:R});return Ll({plane:me,sessionId:n.sessionId,runId:Pe.runId,abortSignal:zr(),...am,getDisplayedRunId:o(()=>ee.current?.session.id===n.sessionId?Cr(ee.current):void 0,"getDisplayedRunId")})}return await pf({...am,plane:e.clientPlane,submit:je?me=>je.submit(me,R):void 0,sessionId:n.sessionId,prompt:y,abortSignal:zr(),getDisplayedRunId:o(()=>ee.current?.session.id===n.sessionId?Cr(ee.current):void 0,"getDisplayedRunId"),...b!==void 0&&b.length>0?{inputArtifacts:b}:{}})}d.resetTurn(),Js.current=Ww(),Qs.current={};let E={...as(),getCostReport:_,onWorkflowProcessEvent:X$,onWorkflowAgentDigest:o(({runId:me,event:Pe})=>{let Ue=Pe.data??{},dt=typeof Ue.summary=="string"?Ue.summary:void 0,Nt=typeof Ue.name=="string"?Ue.name:void 0,En=fc.current,ct=dt!==void 0||Nt!==void 0?Kc(dt,Nt):En?.runId===me?En.locale??"en":"en",Si=ld(Pe,ct,me);Si&&(_t.current.workerId?Un({id:`wf-digest-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"assistant",text:Si,timestamp:Date.now()}):dr([{type:"assistant",text:Si}]))},"onWorkflowAgentDigest")},j=od(n.gitRoot).getSystemPromptSnippet(),Q=BP(f.context,n.gitRoot,n.contextTokenSnapshot,j,n.runtimeInfo?.executionCwd);b&&b.length>0&&(Q.inputArtifacts=[...b]),Q.planModeBlockCheck=(me,Pe)=>zn.current!=="plan"?null:ds(me,Pe,n.gitRoot??n.runtimeInfo?.executionCwd??process.cwd());let te=fy({getPermissionMode:o(()=>zn.current,"getPermissionMode"),getAutoGuardrail:d.getGuardrail,shellSandbox:Q.shellSandbox,trustedTextMutationHost:Q.trustedTextMutationHost,userConfigDir:Q.configHome,projectRoot:n.gitRoot??n.runtimeInfo?.executionCwd??process.cwd(),execPolicy:e.execPolicy,resolvePlanHostExecution:o(me=>ya(me.command,n.gitRoot??process.cwd(),n.runtimeInfo?.executionCwd??n.gitRoot??process.cwd())?!0:"[Blocked] Plan mode cannot escalate this command to unsandboxed host execution.","resolvePlanHostExecution"),requestUserPermission:o(async(me,Pe)=>{let Ue={...me.toolInput,command:me.command},dt=zn.current;if(Pe==="mode_boundary"&&dt==="accept-edits"&&await ga("bash",Ue,tm.current,nm.current??void 0))return!0;let Nt=await ho("bash",Ue,void 0,zr());return Nt.confirmed&&Nt.always&&Pe==="mode_boundary"&&zn.current==="accept-edits"&&(Qc("bash",Ue,!1),tm.current=ms()),Nt.confirmed},"requestUserPermission")}),We={...f,guardrails:So(zn.current)?[te.autoGuardrail]:void 0,session:{...f.session,initialMessages:w,initialExtensionState:n.extensionState??{},initialExtensionRecords:n.extensionRecords??[]},context:te===void 0?Q:{...Q,shellSandbox:te.shellSandbox,authorizeShellHostExecution:te.authorizeShellHostExecution,...te.trustedTextMutationHost===void 0?{}:{trustedTextMutationHost:te.trustedTextMutationHost}},events:E,abortSignal:zr()};try{return We.toolInvocation?await Mm(We,We.toolInvocation,y):await cd(We,y)}finally{Mb()}},"runAgentRound"),Or=Y(f=>{let y=it([...f],n.lineage);return n.lineage=y,y},[n]),nb=e.sessionCommands!==void 0,td=Y(async f=>{if(nb)return;let y=ji(f??De.current);if(!Dz(n.messages.length,y.length))return;let w=Sa(n.messages);De.current=y,n.title=w,n.uiHistory=y;let b=n.lineage??Or(n.messages);n.lineage=b;let R={...n.extensionStateDirty?{extensionState:n.extensionState??{}}:{},...n.extensionRecordsDirty?{extensionRecords:n.extensionRecords??[]}:{}},E=fu({messages:n.messages,title:w,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Le.current.session?.tag,uiHistory:y,lineage:b,artifactLedger:n.artifactLedger,...R});await _z(i,n.sessionId,E,n.sessionSnapshotDirty===!0),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.sessionSnapshotDirty=!1,hy()&&gy("persist",yy(n.messages,b,{historyItems:vt.current,foregroundItems:$n.current,streamingResponse:Me.current.currentResponse,streamingThinking:Me.current.thinkingContent,persistedUiHistory:De.current}))},[n,Or,i]),Rw=Y(()=>{if(mp.current)return mp.current;let f=(async()=>{try{for(;qs.current.requested;){qs.current.requested=!1;let y=qs.current.uiHistoryOverride;qs.current.uiHistoryOverride=void 0,await td(y)}}finally{mp.current=null,qs.current.requested&&Rw().catch(ic)}})();return mp.current=f,Vy.current=f,f},[td]),Ni=Y(f=>{if(f!==void 0){let y=ji(f);De.current=y,qs.current.uiHistoryOverride=y}return qs.current.requested=!0,Rw()},[Rw]),RN=Y(async()=>{if(qv(),Cu.current)return Cu.current;let f=(async()=>{Pt.current=!0,pt(),ze(),mt(),rt(),kt(),ht(),tt(void 0),Fn(!1),await Vy.current.catch(ic),await pp.current?.().catch(ic),ne(!1),I&&T?.isRaw&&x(!1),T?.pause?.(),T?.unref?.(),h(),l()})();return Cu.current=f.finally(()=>{Cu.current=null}),Cu.current},[pt,qv,ht,rt,kt,h,I,l,tt,Fn,x,T,ze,mt]);Ke(()=>(pp.current=Ni,()=>{pp.current=null}),[Ni]);let kw=Y(f=>{if(f.length===0)return;let y=ap(De.current,f);De.current=y,Ni(y).catch(ic)},[Ni]),dr=Y(f=>{f.length!==0&&(P([...f]),kw(f))},[P,kw]),Nc=Y(f=>{f.length!==0&&(P([...f]),De.current=ap(De.current,f))},[P]);Ke(()=>(lc.current=dr,()=>{lc.current=null}),[dr]);let rb=Y(async f=>{Vn(),n.messages=f.messages,n.contextTokenSnapshot=f.contextTokenSnapshot,Ly(n,f),Or(f.messages);let y=f.success===!1&&!f.interrupted,w=we().trim(),b=zb(f.messages,Ln(),f.managedTask?.verdict.summary,f.lastText),R=Ot.current.workerTitle,E=[...$n.current],D=E.length>0;Sc(E);let j=D&&E.some(ct=>ct.type==="assistant"&&"text"in ct&&zO(String(ct.text??""),R)),Q=E.filter(ct=>ct.type!=="assistant"||!("text"in ct)||zO(String(ct.text??""),R)),te=!y&&b&&!j,We=[...hc.current],me=bP(f),Pe=y?[]:We.length===0?XO?me:me.filter(ct=>!RC(ct)):[],Ue=D?[]:gT({thinking:w,response:void 0,toolCalls:jn.current,toolNames:Ai.current}),dt=[...Q.map(ct=>zo(ct)),...Ue,...y?[]:We.map(ct=>zo(ct)),...Pe.map(ct=>KO(ct)),...te?[{type:"assistant",text:f.interrupted?`${b}
|
|
184
184
|
|
|
185
|
-
[Interrupted]`:b}]:!b&&!j&&!f.interrupted&&!y?[{type:"info",text:"[No response text was produced for this round]"}]:[]],Nt=ap(De.current,dt);rt(),
|
|
185
|
+
[Interrupted]`:b}]:!b&&!j&&!f.interrupted&&!y?[{type:"info",text:"[No response text was produced for this round]"}]:[]],Nt=ap(De.current,dt);rt(),ht();let En=[...Q.map(ct=>zo(ct)),...Ue,...y?[]:[...Pe.map(ct=>KO(ct)),...We.map(ct=>zo(ct))],...te?[{type:"assistant",text:f.interrupted?`${b}
|
|
186
186
|
|
|
187
|
-
[Interrupted]`:b}]:!b&&!j&&!f.interrupted&&!y?[{type:"info",text:"[No response text was produced for this round]"}]:[]];e.clientPlane||P(En),Ai.current=[],jn.current=[],ts(),kt(),tt(void 0),Zt(void 0),
|
|
187
|
+
[Interrupted]`:b}]:!b&&!j&&!f.interrupted&&!y?[{type:"info",text:"[No response text was produced for this round]"}]:[]];e.clientPlane||P(En),Ai.current=[],jn.current=[],ts(),kt(),tt(void 0),Zt(void 0),Zs(),Ys.current=[],hc.current=[],Pu([]),Xt(),Ni(Nt).catch(ic)},[P,Xt,kt,ht,rt,n,Vn,Ln,we,Ni,Or,ts,Zs,e.clientPlane,tt,Zt,ce.currentIteration]),ca=Y(async f=>{let y=f.trim();y&&($({type:"user",text:y}),Je(w=>w+1),Ci(n))},[$,n]),la=Y(async f=>{if(e.clientPlane)return;let y=n.contextTokenSnapshot,w;try{w=await Cd(f,{workingDirectory:Le.current.context?.executionCwd??process.cwd(),projectRoot:n.gitRoot??void 0,sessionId:n.sessionId,environment:{},executeDynamicContext:n.skillDynamicContext?.execute,disableDynamicContext:n.skillDynamicContext?.disable})}catch(R){if(!(R instanceof Zc))throw R;let E=`[${R.message}]`;return $({type:"info",text:E}),Td({success:!1,lastText:E,signal:"BLOCKED",signalReason:R.message,messages:[...n.messages],sessionId:n.sessionId},y)}if(!w){let R=FC(f)?hs(f.trim()):null;if(!R)return;let D=`[Unknown command: /${R.skillInvocation?.name??R.command}. Type /help for available commands]`;return Td({success:!0,lastText:D,messages:[...n.messages,{role:"user",content:f},{role:"assistant",content:D}],sessionId:n.sessionId},y)}let b=await Hl({...Le.current,provider:G.provider,thinking:G.thinking,reasoningMode:G.reasoningMode},w,f,R=>$({type:"info",text:R}),e.clientPlane!==void 0);if(b.mode==="manual"||!b.prompt||!b.options)return b.manualOutput&&$({type:"info",text:b.manualOutput}),await b.finalize(),Td({success:!1,lastText:"",signal:"BLOCKED",signalReason:b.manualOutput??"Queued Skill invocation was blocked.",messages:[...n.messages],sessionId:n.sessionId},y);try{let R=b.mode==="fork"?[]:n.lineage?Yt(n.lineage,n.lineage.activeEntryId):n.messages,E=await wi(b.options,b.prompt,R,void 0,f);if(await b.finalize(),b.mode!=="fork")return E;let D=E.messages.find(Q=>Q.role==="user"),j=E.messages.slice().reverse().find(Q=>Q.role==="assistant");return Td({...E,messages:[...n.messages,...D?[D]:[],...j?[j]:[]]},y)}catch(R){throw await b.finalize(R instanceof Error?R:new Error(String(R))),R}},[$,n,G.provider,G.reasoningMode,G.thinking,wi,e.clientPlane]),ua=Y(async(f,y)=>{let w=ed.current;Pt.current=!1,Iu.current=!1,ke(!0);try{return await iL({initialPrompt:f,runRound:y,shiftPendingPrompt:Gs,peekPendingPromptDelivery:Yo,onRoundComplete:o(async b=>{ed.current===w&&await rb(b)},"onRoundComplete"),onBeforeQueuedRound:o(async b=>{Pt.current=!1,Iu.current=!1,await ca(b)},"onBeforeQueuedRound"),shouldContinue:o(b=>!Pt.current&&b.success!==!1,"shouldContinue"),shouldDrainQueuedPrompts:o(()=>Su.current?Me.current.pendingInputs.length===0?(Su.current=!1,!0):!1:!0,"shouldDrainQueuedPrompts")})}finally{ke(!1)}},[Yo,rb,Gs,ca]),nd=o(async f=>{try{await Rn.current}catch(R){Ge({source:"repl:settings",level:"warn",message:"Previous settings write failed; reading the selected Session from Host.",detail:String(R)})}let y=f!==n.sessionId;if(!e.sessionCommands?.read){let R=await i.load(f);if(!R)throw new Error(`Session not found: ${f}`);n.messages=R.messages,n.uiHistory=Co(R.uiHistory),n.lineage=R.lineage,n.title=R.title,n.sessionId=f,n.artifactLedger=R.artifactLedger,n.extensionState=R.extensionState?structuredClone(R.extensionState):void 0,n.extensionRecords=R.extensionRecords?.map(E=>({...E})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.contextTokenSnapshot=void 0,sa(Xn(R)??n.runtimeInfo??{}),Le.current.session={...Le.current.session,id:f,tag:R.tag},De.current=n.uiHistory??[],st.reset(),J(),Ar(null),fi([]),Rd()?.reset(),L(f),m?.writer.update({sessionId:f});return}let w=await iu(e.sessionCommands,f);cy(n,w.session),sa(n.runtimeInfo),Zr.current={sessionId:f,patch:{}};let b=jo(qe.current,{settings:w.settings});qe.current=b,ki(b),Le.current.session={...Le.current.session,id:f,tag:w.session.tag},De.current=[],Ar(null),y&&(st.reset(),J()),fi([]),Rd()?.reset(),L(f),m?.writer.update({sessionId:f})},"refreshHostSession"),ib=Y(async f=>{if(!e.sessionCommands&&n.messages.length===0)return"empty";if(!Uo(G,"Recovering into a new session",pu))return"blocked";if(e.sessionCommands){let me=await e.sessionCommands.recover({sessionId:n.sessionId,...f!==void 0&&f.length>0?{reason:f}:{}});if(me===void 0)return"failed";await nd(me),await _i(`Recovered into session: ${me}`);let Pe=Vc(f);if(Pe.length>0)try{await ca(Pe),await ua(Pe,async Ue=>{let dt=await la(Ue);if(dt)return dt;let Nt=to(Ue,Le.current.context?.executionCwd??process.cwd());for(let En of Nt.warnings)$({type:"info",text:En});return wi(Le.current,Nt.promptText,n.messages,Nt.inputArtifacts,f)})}catch(Ue){let dt=Ue instanceof Error?Ue.message:String(Ue);return dr([{type:"error",text:`[Recover failed] ${dt}`}]),"failed"}return"recovered"}let w=n.sessionId,b=n.lineage??Or(n.messages);n.lineage=b;let R=n.artifactLedger?structuredClone(n.artifactLedger):void 0,E=bm({sourceSessionId:w,messages:n.messages,lineage:b,artifactLedger:R,reason:"provider session recovery"}),D=n.title||Sa(n.messages);await i.save(n.sessionId,fu({messages:n.messages,title:D,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Le.current.session?.tag,uiHistory:De.current,lineage:b,artifactLedger:R,extensionState:n.extensionState,extensionRecords:n.extensionRecords}));let j=Ua(),Q=it(E.messages);await i.save(j,fu({messages:E.messages,title:E.title,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Le.current.session?.tag,uiHistory:[],lineage:Q,artifactLedger:R}));let te=new Date().toISOString();n.sessionId=j,n.messages=E.messages,n.uiHistory=[],n.title=E.title,n.contextTokenSnapshot=void 0,n.lineage=Q,n.artifactLedger=R,n.extensionState=void 0,n.extensionRecords=void 0,n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.sessionSnapshotDirty=!1,n.createdAt=te,n.lastAccessed=te,De.current=[],Le.current.session={...Le.current.session,id:j},Ar(null),st.reset(),J(),fi([]),Rd()?.reset(),L(j),m?.writer.update({sessionId:j}),Nc([{type:"info",text:`Recovered into new session ${j}
|
|
188
188
|
Source session saved: ${w}
|
|
189
|
-
Raw provider history was not replayed.`}]),await i.save(j,
|
|
189
|
+
Raw provider history was not replayed.`}]),await i.save(j,fu({messages:n.messages,title:n.title,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Le.current.session?.tag,uiHistory:De.current,lineage:n.lineage,artifactLedger:n.artifactLedger}));let We=Vc(f);try{await ca(We),await ua(We,async me=>{let Pe=await la(me);if(Pe)return Pe;let Ue=to(me,Le.current.context?.executionCwd??process.cwd());for(let dt of Ue.warnings)$({type:"info",text:dt});return wi(Le.current,Ue.promptText,n.messages,Ue.inputArtifacts,f)})}catch(me){let Pe=me instanceof Error?me.message:String(me);return dr([{type:"error",text:`[Recover failed] ${Pe}`}]),"failed"}return"recovered"},[$,dr,Nc,J,n,G,Or,ua,la,ca,_i,i,m]),kN=Y(()=>{let f=ee.current?.items??[];for(let y=f.length-1;y>=0;y-=1){let w=f[y];if(w.type==="tool")return w.tool?.status==="running"?w.tool.name:void 0}},[]),EN=Y(async(f,y="after_turn",w=!1)=>{if(!je)return;let b=n.sessionId,R=y==="redirect"&&ee.current?Cr(ee.current):void 0;try{await Rn.current,await re();let E=await je.submitPrompt({sessionId:b,text:f,inputId:bs(),delivery:y,...R!==void 0?{targetRunId:R}:{}},Le.current.context?.executionCwd??process.cwd(),w);(E.state==="dropped"||E.state==="withdrawn")&&X(`queue-rejected-${Date.now()}`,"The input was not queued. Press Up in an empty prompt to retrieve it.")}catch(E){if(E instanceof Vo)return;X(`queue-unconfirmed-${Date.now()}`,`Input acceptance could not be confirmed (${E instanceof Error?E.message:String(E)}). Its original text is retained; press Up in an empty prompt to query and take it back.`)}},[je,n.sessionId,X,re]),Ew=Y(async()=>{let f=Gs();if(!f||!f.trim())return;let y=f.trim();await ca(y),await ua(y,async w=>await la(w)??wi(Le.current,w))},[wi,ua,la,Gs,ca]),Mw=Y(f=>{let y=f[f.length-1];if(y?.role!=="assistant")return;let w=ud(y);P(w.map(wa))},[P]),ob=Y(async(f,y)=>{let w=await Hl({...Le.current,provider:G.provider,thinking:G.thinking,reasoningMode:G.reasoningMode},f,y,b=>$({type:"info",text:b}),e.clientPlane!==void 0);if(w.mode==="manual"){w.manualOutput&&$({type:"info",text:w.manualOutput}),await w.finalize();return}if(!w.prompt||!w.options){await w.finalize();return}ke(!0);try{let b=w.mode==="fork"?[]:n.lineage?Yt(n.lineage,n.lineage.activeEntryId):n.messages,R=ed.current,E=await wi(w.options,w.prompt,b,void 0,y);if(ed.current!==R)await w.finalize();else{let D=De.current,j=[];if(w.mode==="fork"){let Q=E.messages.find(We=>We.role==="user");Q&&n.messages.push(Q);let te=E.messages.slice().reverse().find(We=>We.role==="assistant");if(te){n.messages.push({role:"assistant",content:te.content}),Or(n.messages);for(let We of ud(te)){let me=wa(We);$(me),j.push(me)}}}else{n.messages=E.messages,n.contextTokenSnapshot=E.contextTokenSnapshot,Or(E.messages),Mw(E.messages);let Q=E.messages[E.messages.length-1];if(Q?.role==="assistant")for(let te of ud(Q))j.push(wa(te))}Ly(n,E),await td(ap(D,j)),hy()&&gy("round-end",yy(n.messages,n.lineage,{historyItems:vt.current,foregroundItems:$n.current,streamingResponse:Me.current.currentResponse,streamingThinking:Me.current.thinkingContent,persistedUiHistory:De.current})),await w.finalize()}}catch(b){let R=b instanceof Error?b:new Error(String(b));throw await w.finalize(R),ke(!1),R}ke(!1),await Ew()},[$,Mw,n,G.provider,G.thinking,Ew,td,Or,wi]),MN=Y(async f=>{for(let y of f.pastedContents)if(y.type==="text"&&!y.content&&y.contentHash)try{let w=await SR(y.contentHash);w&&(y.content=w)}catch{}},[]),AN=Y(async f=>{let{displayText:y,fullText:w,pastedContents:b}=f;if(!w.trim()||!F||gt||Qe)return;st.reset(),kn(),Qo();for(let fe of b){if(fe.type!=="text"||fe.content.length<1024)continue;let Ne=yR(fe.content);wR(Ne,fe.content)}if(GT(!1),at){if(!pn)return;if(oe.length>=5){Cn({type:"info",icon:"\u23F3",text:`Queued follow-up limit reached (${5}). Wait for the next round or press Esc to remove the latest item.`},"queue-limit");return}let fe=FC(w),Ne=fe?hs(w.trim()):null,fr=Ne!==null&&Ne.skillInvocation===void 0&&(e.clientPlane?await CR(Ne,n.gitRoot??void 0,e.listHostCommands):IR(Ne.command,n.gitRoot??void 0)),nr=od(n.gitRoot),rr;try{rr=fr?void 0:rR(w,gn=>nr.has(gn),bw.current)}catch(gn){if(!(gn instanceof Zc))throw gn;Cn({type:"info",icon:"\u26A0",text:gn.message},"multiple-user-skill-references");return}if(fe&&!rr){Cn({type:"info",icon:"\u26A0",text:nL},rL);return}let Di=rr?{delivery:"host"}:void 0;if(ui(),e.clientPlane){let gn=kN(),ei=gn!==void 0&&Gc(gn)?.interruptBehavior==="cancel";EN(w,ei?"redirect":"after_turn",!!rr),bu(""),vu(!0),Je(ln=>ln+1),Ci(n);return}let $r=ce.currentTool;if($r&&Gc($r)?.interruptBehavior==="cancel"){Gt(w,Di),pt({preservePendingInputs:!0}),bu(""),vu(!0),Je(ei=>ei+1),Ci(n);return}Gt(w,Di),bu(""),vu(!0),Je(gn=>gn+1),Ci(n);return}ui();let R=hT(Ln()),E=$n.current.map(fe=>zo(fe)),D=E.length>0;E.length>0&&(Sc($n.current),Nc(E)),!D&&R&&Nc([{type:"assistant",text:R+`
|
|
190
190
|
|
|
191
|
-
[Interrupted]`}]),e.clientPlane
|
|
191
|
+
[Interrupted]`}]),e.clientPlane||Nc([{type:"user",text:y}]),bu(""),vu(!0),Je(fe=>fe+1),hy()&&gy("turn-start",yy(n.messages,n.lineage,{historyItems:vt.current,foregroundItems:$n.current,streamingResponse:Me.current.currentResponse,streamingThinking:Me.current.thinkingContent,persistedUiHistory:De.current})),Fn(!0),Pt.current=!1,Iu.current=!1,++ed.current,xp(null),dc(null),Ft.current=null,Tp.current=null,Zt(void 0),Zs(),Ys.current=[],hc.current=[],Pu([]),ea(),Ou(void 0),Ai.current=[],jn.current=[],ts(),nw(),ht(),kt(),tt(void 0),Xt(),Ae(),Ci(n),await new Promise(fe=>setTimeout(fe,50));let j=o(fe=>{if(fe.stage==="started"||fe.stage==="generating"||fe.stage==="validating"||fe.stage==="ready"){dc(fe.message);return}dc(null)},"handleWorkflowBuilderEvent"),Q=Qy,te=o(fe=>{if(fe.type==="event")return;let Ne=nn(fe.text).trimEnd();if(Ne.trim()){if(fe.type==="error"){$({type:"error",text:Ne});return}if(fe.type==="assistant"){dr([{type:"assistant",text:Ne}]);return}Cn({type:"info",text:Ne},"workflow-message")}},"handleWorkflowRunMessage"),We=o(async(fe,Ne,fr)=>{if(Am({source:fe.source}).action==="none")return!1;let rr=[],Di=console.log;console.log=(...ln)=>{rr.push(fT(ln))};let $r=!1,gn=o(()=>{$r||($r=!0,n.messages.push({role:"user",content:Ne||fe.request}))},"commitWorkflowUserMessage"),ei={...fr,onWorkflowRunMessage:o(ln=>{if(fr.onWorkflowRunMessage?.(ln),ln.type!=="assistant"||ln.final!==!0)return;let U=nn(ln.text).trimEnd();U.trim()&&(gn(),n.messages.push({role:"assistant",content:U}),Or(n.messages),Ni().catch(ic),Me.current.pendingInputs.length>0&&(Su.current=!0))},"onWorkflowRunMessage")};try{let ln=await Hm({sessionId:n.sessionId,request:fe.request,callbacks:ei,approval:G.permissionMode==="plan"?"required":"silent",presentation:"agentic",sourceLabel:fe.displayName,processSource:fe.processSource??"command",...fe.builtin!==void 0?{builtin:fe.builtin}:{},onBuilderEvent:ei.onWorkflowBuilderEvent});return ln==="started"&&Me.current.pendingInputs.length>0&&(Su.current=!0),_m({outcome:ln})}finally{dc(null),console.log=Di;let ln=pT(rr.filter((U,pe,ve)=>ve.indexOf(U)===pe));ln&&$({type:"info",text:ln})}},"runWorkflowInvocation"),me=e.clientPlane?await kd(w.trim(),n.gitRoot??void 0,e.listHostCommands):hs(w.trim()),Pe;try{Pe=e.clientPlane||me||w.trim().startsWith("!")?void 0:await Cd(w.trim(),{workingDirectory:Le.current.context?.executionCwd??process.cwd(),projectRoot:n.gitRoot??void 0,sessionId:n.sessionId,environment:{},executeDynamicContext:n.skillDynamicContext?.execute,disableDynamicContext:n.skillDynamicContext?.disable})}catch(fe){if(!(fe instanceof Zc))throw fe;$({type:"info",text:`[${fe.message}]`});return}if(me||Pe){let fe=!1,Ne=o(U=>{me?.command==="workflow"&&(fe||(fe=!0,n.messages.push({role:"user",content:w.trim()})),n.messages.push({role:"assistant",content:U}),Or(n.messages),Ni().catch(ic))},"commitSlashWorkflowFinalMessage"),fr={getRuntimeStatus:e.getRuntimeStatus,getSessionStatus:e.sessionCommands?.read?async()=>({messageCount:(await e.sessionCommands.read(n.sessionId)).msgCount,tokens:ee.current?.session.id===n.sessionId?ee.current.parentContextTokens:void 0}):void 0,validateSetupA2AConfig:e.validateSetupA2AConfig,prepareSetupSandbox:e.prepareSetupSandbox,inspectSandbox:e.inspectSandbox,learning:e.learning,getLearningSummary:e.learning?()=>e.learning.getSnapshot():void 0,openLearningCenter:bN,workflows:e.workflows?{...e.workflows,start:no(re,e.workflows.start.bind(e.workflows)),resume:no(re,e.workflows.resume.bind(e.workflows))}:void 0,commandClient:e.commandClient?{...e.commandClient,execute:o(async U=>{if(!Sy(U.args))try{await re()}catch(pe){if(!(pe instanceof Vo))throw pe;return{kind:"completed",success:!1,message:pe.message}}return e.commandClient.execute(U)},"execute")}:void 0,listHostCommands:e.listHostCommands,inspectExtensions:e.inspectExtensions,mcp:e.mcp,config:e.config,catalog:e.catalog,providerCapabilities:e.providerCapabilities,startReview:e.startReview?no(re,U=>e.startReview(U)):void 0,reviewAgentsLean:e.reviewAgentsLean?no(re,U=>e.reviewAgentsLean(U)):void 0,goal:e.goal,compactSession:e.compactSession,memory:e.memory,refreshSessionLineage:e.sessionCommands?.read?void 0:async()=>await i.getLineage?.(n.sessionId)??void 0,exit:RN,saveSession:o(async()=>{if(!nb&&n.messages.length>0){let U=Sa(n.messages);n.title=U;let pe=n.lineage??Or(n.messages);n.lineage=pe,await i.save(n.sessionId,fu({messages:n.messages,title:U,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Le.current.session?.tag,uiHistory:De.current,lineage:pe,artifactLedger:n.artifactLedger,extensionState:n.extensionState,extensionRecords:n.extensionRecords})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.sessionSnapshotDirty=!1}},"saveSession"),startNewSession:o(async()=>{let U=Ua();e.sessionCommands&&(await e.sessionCommands.create({sessionId:U,title:"REPL Session",gitRoot:r.workspaceRoot??void 0,projectPath:r.executionCwd??r.workspaceRoot??process.cwd(),surface:"repl"}),await e.clientPlane?.updateSettings?.(U,cr(qe.current,e.maxIter)));let pe=new Date().toISOString();n.sessionId=U,n.title="",n.uiHistory=[],n.contextTokenSnapshot=void 0,n.lineage=void 0,n.artifactLedger=void 0,n.extensionState=void 0,n.extensionRecords=void 0,n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.sessionSnapshotDirty=!1,De.current=[],n.createdAt=pe,n.lastAccessed=pe,sa(r),Le.current.session={...Le.current.session,id:U},Ar(null),st.reset(),J(),fi([]),Rd()?.reset(),L(U),m?.writer.update({sessionId:U})},"startNewSession"),loadSession:o(async U=>{if(e.sessionCommands?.read)return Uo(G,"Resuming a saved session",pu)?(await nd(U),await _i(`Session loaded: ${U}`),"loaded"):"blocked";let pe=await i.load(U);if(pe){if(!Uo(G,"Resuming a saved session",pu))return"blocked";let ir=await Hi({cwd:process.cwd()}),Dn=Xn(pe),qn=Dn??ir;return Dn?.workspaceRoot&&!Bm(Dn)&&(qn=ir),await Rn.current,await e.clientPlane?.updateSettings?.(U,{...cr(qe.current,e.maxIter),autoModeClassifierModel:s.classifierModel??null}),n.messages=pe.messages,n.uiHistory=Co(pe.uiHistory),n.lineage=pe.lineage,n.artifactLedger=pe.artifactLedger,n.extensionState=pe.extensionState?structuredClone(pe.extensionState):void 0,n.extensionRecords=pe.extensionRecords?.map(go=>({...go})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=pe.title,n.sessionId=U,n.contextTokenSnapshot=void 0,sa(qn),n.sessionSnapshotDirty=JSON.stringify(qn)!==JSON.stringify(Dn),Le.current.session={...Le.current.session,id:U,tag:pe.tag},De.current=n.uiHistory??[],Ar(null),st.reset(),J(),fi([]),L(U),m?.writer.update({sessionId:U}),console.log(Ut.green(`[Session loaded: ${U}]`)),"loaded"}return"missing"},"loadSession"),listSessions:o(async()=>{let U=e.sessionCommands?.list?await e.sessionCommands.list({projectRoot:n.gitRoot??n.runtimeInfo?.executionCwd??process.cwd(),scope:"user",limit:10}):await i.list(n.gitRoot??void 0);if(e.sessionCommands?.list)return{success:!0,message:U.length?`Recent Sessions:
|
|
192
192
|
`+U.map(pe=>`${pe.id} (${pe.msgCount} messages) ${pe.title.slice(0,40)}`).join(`
|
|
193
193
|
`):"[No saved sessions]"};if(U.length===0){console.log(Ut.dim(`
|
|
194
194
|
[No saved sessions]`));return}console.log(Ut.bold(`
|
|
@@ -196,57 +196,57 @@ Recent Sessions:
|
|
|
196
196
|
`));for(let pe of U.slice(0,10))console.log(` ${Ut.cyan(pe.id)} ${Ut.dim(`(${pe.msgCount} messages)`)} ${pe.title.slice(0,40)}`);console.log()},"listSessions"),clearHistory:o(()=>{n.uiHistory=[],st.reset(),J(),fi([])},"clearHistory"),printHistory:o(async()=>{if(e.clientPlane?.readHistory)return ay(e.clientPlane,n.sessionId);if(n.messages.length===0){console.log(Ut.dim(`
|
|
197
197
|
[No conversation history]`));return}console.log(Ut.bold(`
|
|
198
198
|
Conversation History:
|
|
199
|
-
`));let U=n.messages.slice(-20);for(let pe=0;pe<U.length;pe++){let ve=U[pe],ir=Ut.cyan(ve.role.padEnd(10)),Dn=
|
|
200
|
-
[${ve.diagnostic}]`))},"switchProvider"),setEffort:o(async U=>{await
|
|
199
|
+
`));let U=n.messages.slice(-20);for(let pe=0;pe<U.length;pe++){let ve=U[pe],ir=Ut.cyan(ve.role.padEnd(10)),Dn=dd(ve.content),qn=Dn.slice(0,60).replace(/\n/g," "),go=Dn.length>60?"...":"";console.log(` ${(pe+1).toString().padStart(2)}. ${ir} ${qn}${go}`)}console.log()},"printHistory"),switchProvider:o(async(U,pe)=>{let ve=e.clientPlane?{runtimeEffort:qe.current.effort,diagnostic:void 0}:Ia({provider:U,model:pe,effort:qe.current.effort,effortOverride:qe.current.effortOverride,permissionMode:qe.current.permissionMode,planModeEffort:qe.current.planModeEffort,thinking:qe.current.thinking,reasoningMode:qe.current.reasoningMode});await po({...qe.current,provider:U,model:pe},["provider","model"]),Le.current.provider=U,Le.current.model=pe,Le.current.effort=ve.runtimeEffort,ve.diagnostic&&console.log(Ut.yellow(`
|
|
200
|
+
[${ve.diagnostic}]`))},"switchProvider"),setEffort:o(async U=>{await po({...qe.current,effort:U,effortOverride:U!==void 0},["effort"])},"setEffort"),setReasoningMode:o(async U=>{let pe=U!=="off";await po({...qe.current,thinking:pe,reasoningMode:U},["reasoningMode","thinking"]),Le.current.thinking=pe,Le.current.reasoningMode=U},"setReasoningMode"),setAgentMode:o(async U=>{await po({...qe.current,agentMode:U},["agentMode"]),Le.current.agentMode=U},"setAgentMode"),setWorkMode:o(async U=>{if(at)throw new Error("Wait for the active Run to settle before switching work mode.");if(!e.clientPlane?.updateSettings)throw new Error("Work mode switching requires a Session settings host.");await po({...qe.current,workMode:U},["workMode"]),Le.current.workMode=U},"setWorkMode"),setPermissionMode:rm,setRepoIntelligenceRuntime:o(async U=>{if(e.clientPlane){await po({...qe.current,...U.mode!==void 0?{repoIntelligenceMode:U.mode}:{},...U.trace!==void 0?{repoIntelligenceTrace:U.trace}:{}},[...U.mode!==void 0?["repoIntelligenceMode"]:[],...U.trace!==void 0?["repoIntelligenceTrace"]:[]]);return}ki(pe=>({...pe,...U.mode!==void 0?{repoIntelligenceMode:U.mode}:{},...U.trace!==void 0?{repoIntelligenceTrace:U.trace}:{}})),U.mode!==void 0&&(process.env.KODAX_REPO_INTELLIGENCE=U.mode,Le.current.context={...Le.current.context,repoIntelligenceMode:U.mode}),U.trace!==void 0&&(U.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,Le.current.context={...Le.current.context,repoIntelligenceTrace:U.trace})},"setRepoIntelligenceRuntime"),deleteSession:o(async U=>{if(e.sessionCommands){await e.sessionCommands.delete(U);return}await i.delete?.(U)},"deleteSession"),deleteAllSessions:o(async()=>{if(e.sessionCommands){await e.sessionCommands.deleteAll({...n.gitRoot!==void 0?{gitRoot:n.gitRoot}:{}});return}await i.deleteAll?.(n.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:o(async()=>{if(e.sessionCommands?.readLineage){let ve=py(await e.sessionCommands.readLineage(n.sessionId));await _i(`Session Tree:
|
|
201
201
|
`+ve.join(`
|
|
202
202
|
`));return}let U=await i.getLineage?.(n.sessionId);if(!U){console.log(Ut.dim(`
|
|
203
|
-
[No session tree available for this session]`));return}let pe=my(
|
|
203
|
+
[No session tree available for this session]`));return}let pe=my(Im(U));console.log(Ut.bold(`
|
|
204
204
|
Session Tree:
|
|
205
|
-
`)),pe.forEach(ve=>console.log(` ${ve}`)),console.log()},"printSessionTree"),switchSessionBranch:o(async U=>{if(!Uo(G,"Switching session branches",
|
|
205
|
+
`)),pe.forEach(ve=>console.log(` ${ve}`)),console.log()},"printSessionTree"),switchSessionBranch:o(async U=>{if(!Uo(G,"Switching session branches",pu))return"blocked";if(e.sessionCommands)return await e.sessionCommands.setActiveEntry({sessionId:n.sessionId,selector:U,summarizeCurrentBranch:!0})?(await nd(n.sessionId),await _i(`Session switched: ${n.sessionId}`),"switched"):"missing";let ve=await i.setActiveEntry?.(n.sessionId,U,{summarizeCurrentBranch:!0});if(!ve)return"missing";n.messages=ve.messages,n.uiHistory=Co(ve.uiHistory),n.lineage=ve.lineage,n.artifactLedger=ve.artifactLedger,n.extensionState=ve.extensionState?structuredClone(ve.extensionState):void 0,n.extensionRecords=ve.extensionRecords?.map(qn=>({...qn})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=ve.title,n.contextTokenSnapshot=void 0;let ir=Xn(ve),Dn=ir??n.runtimeInfo??r;return sa(Dn),n.sessionSnapshotDirty=JSON.stringify(Dn)!==JSON.stringify(ir),De.current=n.uiHistory??[],Ar(null),st.reset(),J(),fi([]),console.log(Ut.green(`
|
|
206
206
|
[Switched to tree entry: ${U}]`)),console.log(Ut.dim(` Messages: ${ve.messages.length}`)),"switched"},"switchSessionBranch"),labelSessionBranch:o(async(U,pe)=>{if(e.sessionCommands){if(!await e.sessionCommands.setLabel({sessionId:n.sessionId,selector:U,...pe!==void 0?{label:pe}:{}}))return!1;await e.sessionCommands.readLineage?.(n.sessionId);let qn=pe&&pe.trim()?`checkpoint label set: ${pe.trim()}`:"checkpoint label cleared";return console.log(Ut.green(`
|
|
207
207
|
[${qn}]`)),!0}let ve=await i.setLabel?.(n.sessionId,U,pe);if(!ve)return!1;n.lineage=ve.lineage;let ir=pe&&pe.trim()?`checkpoint label set: ${pe.trim()}`:"checkpoint label cleared";return console.log(Ut.green(`
|
|
208
|
-
[${ir}]`)),!0},"labelSessionBranch"),forkSession:o(async U=>{if(!Uo(G,"Forking a session branch",
|
|
209
|
-
[Forked session: ${ve.sessionId}]`)),console.log(Ut.dim(` Messages: ${ve.data.messages.length}`)),"forked"},"forkSession"),recoverSession:
|
|
210
|
-
[Rewound session${U?` to ${U}`:" to previous turn"}]`)),console.log(Ut.dim(` Messages: ${ve.messages.length}`)),"rewound"},"rewindSession"),getCostReport:o(()=>e.clientPlane?ee.current?.session.id===n.sessionId?ee.current.activity?.costReport??null:null:_.current?.()??null,"getCostReport"),getAutoModeStats:o(async()=>{if(
|
|
208
|
+
[${ir}]`)),!0},"labelSessionBranch"),forkSession:o(async U=>{if(!Uo(G,"Forking a session branch",pu))return"blocked";if(e.sessionCommands){let go=await e.sessionCommands.fork({sessionId:n.sessionId,...U!==void 0?{selector:U}:{}});return go===void 0?"failed":(await nd(go),await _i(`Session forked: ${go}`),"forked")}let ve=await i.fork?.(n.sessionId,U);if(!ve)return"failed";n.sessionId=ve.sessionId,n.messages=ve.data.messages,n.uiHistory=Co(ve.data.uiHistory),n.lineage=ve.data.lineage,n.artifactLedger=ve.data.artifactLedger,n.extensionState=ve.data.extensionState?structuredClone(ve.data.extensionState):void 0,n.extensionRecords=ve.data.extensionRecords?.map(go=>({...go})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=ve.data.title,n.contextTokenSnapshot=void 0;let ir=Xn(ve.data),Dn=ir??n.runtimeInfo??r;sa(Dn),n.sessionSnapshotDirty=JSON.stringify(Dn)!==JSON.stringify(ir),De.current=n.uiHistory??[];let qn=new Date().toISOString();return n.createdAt=qn,n.lastAccessed=qn,Le.current.session={...Le.current.session,id:ve.sessionId,tag:ve.data.tag},Ar(null),st.reset(),J(),fi([]),L(ve.sessionId),m?.writer.update({sessionId:ve.sessionId}),console.log(Ut.green(`
|
|
209
|
+
[Forked session: ${ve.sessionId}]`)),console.log(Ut.dim(` Messages: ${ve.data.messages.length}`)),"forked"},"forkSession"),recoverSession:ib,rewindSession:o(async U=>{if(!Uo(G,"Rewinding session",pu))return"blocked";if(e.sessionCommands)return await e.sessionCommands.rewind({sessionId:n.sessionId,expectedHead:e.sessionCommands.readLineage?(await e.sessionCommands.readLineage(n.sessionId))?.activeEntryId??null:n.lineage?.activeEntryId??null,...U!==void 0?{selector:U}:{}})?(await nd(n.sessionId),await _i(`Session rewound: ${n.sessionId}`),"rewound"):"failed";let ve=await i.rewind?.(n.sessionId,U);if(!ve)return"failed";n.messages=ve.messages,n.uiHistory=Co(ve.uiHistory),n.lineage=ve.lineage,n.artifactLedger=ve.artifactLedger,n.extensionState=ve.extensionState?structuredClone(ve.extensionState):void 0,n.extensionRecords=ve.extensionRecords?.map(qn=>({...qn})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=ve.title,n.contextTokenSnapshot=void 0;let ir=Xn(ve),Dn=ir??n.runtimeInfo??r;return sa(Dn),n.sessionSnapshotDirty=JSON.stringify(Dn)!==JSON.stringify(ir),De.current=n.uiHistory??[],Ar(null),st.reset(),J(),fi([]),console.log(Ut.green(`
|
|
210
|
+
[Rewound session${U?` to ${U}`:" to previous turn"}]`)),console.log(Ut.dim(` Messages: ${ve.messages.length}`)),"rewound"},"rewindSession"),getCostReport:o(()=>e.clientPlane?ee.current?.session.id===n.sessionId?ee.current.activity?.costReport??null:null:_.current?.()??null,"getCostReport"),getAutoModeStats:o(async()=>{if(So(zn.current))return e.runtimeAutoModeControl?e.runtimeAutoModeControl.getStats(n.sessionId):d.getGuardrail().getStats()},"getAutoModeStats"),createKodaXOptions:o(()=>({...Le.current,provider:G.provider,model:G.model,effort:so,thinking:G.thinking,reasoningMode:G.reasoningMode,agentMode:G.agentMode,guardrails:dT(zn.current,d),events:as()}),"createKodaXOptions"),executeToolInvocation:o(async(U,pe)=>{let ve=await wi({...Le.current,toolInvocation:U},pe);return n.messages=ve.messages,n.lineage=it(ve.messages,n.lineage),Ly(n,ve),ve},"executeToolInvocation"),reloadAgentsFiles:o(async()=>await Ab({cwd:process.cwd(),projectRoot:n.gitRoot??void 0}),"reloadAgentsFiles"),startCompacting:o(()=>{ut()},"startCompacting"),stopCompacting:o(()=>{bt()},"stopCompacting"),onCompactStats:o(U=>{xu.current=U.tokensBefore,Ar(U.tokensAfter)},"onCompactStats"),confirm:o(async U=>(await ho("confirm",{_alwaysConfirm:!0,_message:U})).confirmed,"confirm"),onWorkflowBuilderEvent:j,onWorkflowRunMessage:o(U=>{if(te(U),U.type!=="assistant"||U.final!==!0)return;let pe=nn(U.text).trimEnd();pe.trim()&&Ne(pe)},"onWorkflowRunMessage"),onWorkflowRunUpdate:Q,ui:{secret:o(U=>aa(U,void 0,void 0,!0),"secret"),select:o(async(U,pe)=>vN(U,pe),"select"),confirm:o(async U=>(await ho("confirm",{_alwaysConfirm:!0,_message:U})).confirmed,"confirm"),input:o(async(U,pe)=>aa(U,pe),"input")}},nr=[],rr=console.log;console.log=(...U)=>{nr.push(fT(U))};let Di=Pe,$r,gn,ei=n.sessionId;try{if(e.clientPlane){let pe=Rn.current;try{await pe}catch(ve){Ge({source:"repl:settings",level:"warn",message:"Previous settings write failed; command will use Host state.",detail:String(ve)}),Rn.current===pe&&(Rn.current=Promise.resolve())}}let U=me?await tl(me,n,fr,G,w.trim()):void 0;typeof U=="object"&&U!==null&&"invocation"in U&&(Di=U.invocation),typeof U=="object"&&U!==null&&"workflow"in U&&($r=U.workflow),typeof U=="object"&&U!==null&&(gn=U.startedRunId,U.message&&nr.push(U.message))}finally{dc(null),console.log=rr}let ln=pT(nr);if(ln)if(e.clientPlane?.appendNotice){let U=me&&!gn&&!Di&&!$r&&n.sessionId===ei?`${y}
|
|
211
211
|
|
|
212
|
-
`:"";await _i(U+ln)}else $({type:"info",text:ln});if(gn&&e.clientPlane){ke(!0);try{await
|
|
212
|
+
`:"";await _i(U+ln)}else $({type:"info",text:ln});if(gn&&e.clientPlane){ke(!0);try{await Ll({...am,plane:e.clientPlane,sessionId:n.sessionId,runId:gn,abortSignal:zr(),getDisplayedRunId:o(()=>ee.current?.session.id===n.sessionId?Cr(ee.current):void 0,"getDisplayedRunId")})}catch(U){$({type:"error",text:U instanceof Error?U.message:String(U)})}finally{ke(!1),Fn(!1),ze(),rt()}return}if($r){try{await We($r,w.trim(),fr)}finally{Me.current.pendingInputs.length>0&&(Su.current=!0),Fn(!1),ze(),rt()}return}if(Di){Fn(!1),ze(),Fn(!0),Ae(),Vt();try{await ob(Di,w.trim())}catch(U){let pe=U instanceof Error?U:new Error(String(U)),ve=pe.name==="AbortError"||pe.message.includes("aborted")||pe.message.includes("ABORTED");console.log=rr,ve?im():dr([{type:"error",text:pe.message}])}finally{Fn(!1),ze(),rt()}return}Fn(!1),ze();return}let Ue=await pI(w.trim(),{execute:o(async fe=>{let Ne=await wi({...Le.current,toolInvocation:{name:"bash",input:{command:fe}}},`!${fe}`);return n.messages=Ne.messages,n.lineage=it(Ne.messages,n.lineage),Ly(n,Ne),Ne},"execute"),onOutput:o(fe=>dr([{type:"info",text:fe}]),"onOutput")});if(w.trim().startsWith("!")&&bf(Ue)){Fn(!1),ze();return}let dt=Le.current.context?.executionCwd??process.cwd(),Nt=o(fe=>{fe.length!==0&&dr(fe.map(Ne=>({type:"info",text:Ne})))},"emitArtifactWarnings");Vt();let En=[],ct=console.log;console.log=(...fe)=>{En.push(fT(fe))};let Si=!1,rd=o(()=>{if(Pt.current)return;let fe=Bu(K.Cancelled,()=>({error:"Run ended before the tool result was observed.",output:void 0}));fe.length>0&&_t.current.workerId&&fe.forEach(Ne=>mi(Ne))},"finalizeOrphanedManagedTools"),id=Hz({finalizeOrphanedTools:rd,flushText:Vn,readItems:o(()=>$n.current,"readItems"),markUserItemsCommitted:Sc,stage:o(fe=>{let Ne=ap(De.current,fe);return De.current=Ne,P([...fe]),Ne},"stage"),persist:Ni,clear:Zs}),Mn=o(async()=>{Si&&await id()&&(Si=!1)},"commitFailedManagedForeground");try{await ua(Ue,async fe=>{let Ne=await la(fe);if(Ne)return Ne;let fr=to(fe,Le.current.context?.executionCwd??process.cwd());return Nt(fr.warnings),wi(Le.current,fr.promptText,n.messages,fr.inputArtifacts,fe===Ue?w:fe)})}catch(fe){let Ne=fe instanceof Error?fe:new Error(String(fe));if(Ne.name==="AbortError"||Ne.message.includes("aborted")||Ne.message.includes("ABORTED"))console.log=ct,im();else{let nr=Ne.message;Ne.message.includes("rate limit")||Ne.message.includes("Rate limit")?nr=`[Rate Limit] ${Ne.message}
|
|
213
213
|
Suggestion: Wait a moment and try again, or switch provider with /mode`:Ne.message.includes("API key")||Ne.message.includes("not configured")?nr=`[Configuration Error] ${Ne.message}
|
|
214
214
|
Suggestion: Set the required API key environment variable`:Ne.message.includes("network")||Ne.message.includes("ECONNREFUSED")||Ne.message.includes("ETIMEDOUT")?nr=`[Network Error] ${Ne.message}
|
|
215
215
|
Suggestion: Check your internet connection`:(Ne.message.includes("token")||Ne.message.includes("context too long"))&&(nr=`[Context Error] ${Ne.message}
|
|
216
|
-
Suggestion: Use /clear to start fresh`),console.log=ct;let rr=Bz(_t.current.workerId,$n.current.length);if(rr?(Vn(),Un({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:nr,timestamp:Date.now()}),Si=!0):dr([{type:"error",text:nr}]),Wm({error:Ne,messageCount:n.messages.length})){let $r={type:"info",text:
|
|
216
|
+
Suggestion: Use /clear to start fresh`),console.log=ct;let rr=Bz(_t.current.workerId,$n.current.length);if(rr?(Vn(),Un({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:nr,timestamp:Date.now()}),Si=!0):dr([{type:"error",text:nr}]),Wm({error:Ne,messageCount:n.messages.length})){let $r={type:"info",text:bd};if(rr?Un({id:`recover-hint-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,...$r,timestamp:Date.now()}):dr([$r]),await Mn(),(await ho("confirm",{_alwaysConfirm:!0,_message:Fm})).confirmed)try{await ib(Ue)}catch(ei){let ln=ei instanceof Error?ei.message:String(ei);dr([{type:"error",text:`[Recover failed] ${ln}`}])}}await Mn()}}finally{if(console.log=ct,En.length>0){let fe=En.filter((fr,nr,rr)=>rr.indexOf(fr)===nr),Ne=pT(fe);Ne&&$({type:"info",text:Ne})}rd(),await Fz({commit:Mn,cleanup:o(()=>{Fn(!1),ze(),ht(),nw(),rt();let fe=da(n.messages);n.contextTokenSnapshot={currentTokens:fe,baselineEstimatedTokens:fe,source:"estimate"},Ar(fe)},"cleanup")})}},[F,n,G,pn,ce.pendingInputs.length,i,gt,Qe,h,l,$,_i,J,st.reset,kn,Qo,Ae,ze,ht,as,ob,zr,Ln,we,Un,Zs,Vn,Sc,Nc,dr,Mw,td,Ni,kw,Or,ua,la,Ew,ut,bt,ts,nw,Bu,mi,ea,ui,_u,Jy,po,rm]),sb=Tn.shouldRender?xe(O,{paddingX:1,children:xe(lP,{viewModel:Tn})}):void 0,ab=at&&uo.shouldRender?xe(O,{paddingX:1,children:xe(sP,{viewModel:uo})}):void 0,cb=iv?xe(O,{paddingX:1,children:xe(cI,{viewModel:cw})}):void 0,_N=sb||ab||cb?kr(O,{flexDirection:"column",children:[ab,sb,cb]}):void 0,lb=Tn.shouldRender?Tn.counterText:void 0,PN=xe(cg,{left:xe(sg,{items:xv}),right:xe(ag,{items:Iv}),queued:xe(oI,{pendingInputs:oe}),stashNotice:xe(hg,{text:Kp}),notifications:xe(mg,{notifications:Gp}),inlineNotices:gw.length>0?xe(sI,{notices:gw}):void 0,activityBar:fo?kr(O,{paddingX:1,flexDirection:"row",children:[kr(O,{flexGrow:1,children:[fo?.showSpinner?xe(Ir,{color:ye("dark").colors.accent}):null,fo?kr(M,{color:fo.kind==="waiting"?ye("dark").colors.warning:ye("dark").colors.accent,wrap:"truncate",children:[fo.showSpinner?" ":"",fo.text]}):null,fo?.showSpinner&&ce.roundStartedAt!=null?xe(gE,{roundStartedAt:ce.roundStartedAt,charCount:ce.currentResponse.length,theme:ye("dark")}):null]}),lb?xe(M,{dimColor:!0,wrap:"truncate",children:lb}):at&&uo.shouldRender?xe(M,{dimColor:!0,wrap:"truncate",children:dP(uo)}):null]}):void 0,todoSurface:_N,composer:xe(qx,{sessionId:n.sessionId,initialValue:hp,onSubmit:AN,onHistoryRecall:MN,onPopPendingInputs:o(()=>{let f=Uy();return f.length>0?f.join(`
|
|
217
217
|
---
|
|
218
|
-
`):je?.pull(n.sessionId,(W?.queue??[]).map(y=>y.inputId),Le.current.context?.executionCwd??process.cwd())},"onPopPendingInputs"),prompt:">",placeholder:yO({isLoading:at,canQueueFollowUps:pn,waitingReason:fw}),focus:!ht&&!Qe&&!Kt,cwd:process.cwd(),gitRoot:e.context?.gitRoot||n.gitRoot,onInputChange:aN,onPasteFallback:yN}),inlineSuggestions:hN,helpSurface:UT?xe(Xx,{sections:xy()}):void 0,taskBar:Ku?xe(gg,{items:kc.backgroundTask.items,overflowLabel:kc.backgroundTask.overflowLabel,ctaHint:kc.backgroundTask.ctaHint,showSpinner:at}):void 0,statusLine:xe(O,{children:xe(Al,{...Up,viewModel:yv})}),inlineDialogs:wN}),LN=xe(cg,{left:xe(sg,{items:Sv}),right:xe(ag,{items:xv}),stashNotice:xe(hg,{text:Kp}),notifications:xe(mg,{notifications:Gp}),composer:xe(tP,{searchActive:Kt,selectionActive:!!(gi||Et),showAllActive:an,searchQuery:Zn,searchCurrent:bn.length>0?os+1:0,searchCount:bn.length,searchDetailText:dw,pendingLiveUpdates:Wu,secondaryText:pN}),taskBar:Ku?xe(gg,{items:kc.backgroundTask.items,overflowLabel:kc.backgroundTask.overflowLabel,ctaHint:kc.backgroundTask.ctaHint,showSpinner:zt}):void 0,statusLine:xe(O,{children:xe(Al,{...Up,viewModel:mw})})}),Aw=Y(f=>xe(nP,{banner:f?.bannerVisible?xe(pT,{...ta}):void 0,items:yi,isLoading:er,viewportRows:Wt.messageRows,viewportWidth:Ee,scrollOffset:In,windowed:!!f?.rendererWindow,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Vu:Ov,maxLines:mn,selectedTextRanges:sw?wp?.rowRanges:void 0,onMetricsChange:Xp,onVisibleRowsChange:Yp}),[ta,yi,er,Xp,Yp,In,Ov,Ee,mn,wp?.rowRanges,Wt.messageRows,sw]),_w=Y(f=>xe(rP,{banner:f?.bannerVisible?xe(pT,{...ta}):void 0,items:ju,browse:{hintText:ss.browseHintText},selection:zp,search:dv,isLoading:zt,isThinking:Be.isThinking,thinkingCharCount:Be.thinkingCharCount,thinkingContent:Be.thinkingContent,streamingResponse:Be.currentResponse,currentTool:Be.currentTool,activeToolCalls:Be.activeToolCalls,toolInputCharCount:Be.toolInputCharCount,toolInputContent:Be.toolInputContent,iterationHistory:Be.iterationHistory,currentIteration:Be.currentIteration,isCompacting:Be.isCompacting,agentMode:G.agentMode,managedPhase:zt?se?.phase:void 0,managedHarnessProfile:zt?se?.harnessProfile:void 0,managedWorkerTitle:zt?se?.activeWorkerTitle:void 0,managedRound:zt?se?.currentRound:void 0,managedMaxRounds:zt?se?.maxRounds:void 0,managedGlobalWorkBudget:zt?se?.globalWorkBudget:void 0,managedBudgetUsage:zt?se?.budgetUsage:void 0,managedBudgetApprovalRequired:zt?se?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Be.lastLiveActivityLabel,liveStatusLines:bc,viewportRows:Wt.messageRows,viewportWidth:Ee,scrollOffset:In,windowed:!!f?.windowed,animateSpinners:!!f?.rendererWindow&&Mc,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Vu:Dp,maxLines:mn,showDetailedTools:an,showAllContent:an,selectedItemId:Qr.selectionEnabled?Et:void 0,selectedTextRanges:so?.rowRanges,expandedItemKeys:Qr.selectionEnabled?On:void 0,onMetricsChange:Xp,onVisibleRowsChange:Yp}),[ta,G.agentMode,zt,On,c.transcriptSpinnerAnimation,Xp,Yp,In,Lp,se?.activeWorkerTitle,se?.budgetApprovalRequired,se?.budgetUsage,se?.currentRound,se?.globalWorkBudget,se?.harnessProfile,se?.maxRounds,se?.phase,Vu,Dp,ss.browseHintText,Et,zp,Ee,Mc,ju,mn,Be.activeToolCalls,Be.currentIteration,Be.currentResponse,Be.currentTool,Be.isCompacting,Be.isThinking,Be.iterationHistory,Be.lastLiveActivityLabel,Be.thinkingCharCount,Be.thinkingContent,Be.toolInputCharCount,Be.toolInputContent,bc,so?.rowRanges,dv,an,Wt.messageRows]),ON=ue?_w({bannerVisible:!1,windowed:!0}):Aw({bannerVisible:!1}),lb=ue?LN:PN,$N=c.enabled&&ea,ub=kr(O,{flexDirection:"column",width:Ee,flexShrink:0,flexGrow:$N?1:0,children:[xe(IC,{currentConfig:G,onCycleThinking:e.config?()=>{SN()}:void 0,setCurrentConfig:ki,isLoading:at,abort:ft,stopThinking:pt,clearThinkingContent:rt,setCurrentTool:tt,setIsLoading:Fn,onToggleHelp:sN,setShowHelp:VT,onSetThinking:o(f=>{Le.current.thinking=f},"onSetThinking"),onSetReasoningMode:o(f=>{Le.current.reasoningMode=f,Le.current.thinking=f!=="off"},"onSetReasoningMode"),onToggleTranscriptMode:xN,onOpenTranscriptSearch:xw,canOpenTranscriptSearch:ue&&!ht&&!Qe,isInteractiveDialogActive:!!(ht||Qe),onSetPermissionMode:o(f=>{rm(f)},"onSetPermissionMode"),isInputEmpty:Cu,onSavePermissionMode:nR}),Z&&(c.enabled?null:xe(xl,{items:[1],children:o(()=>xe(pT,{...ta},"banner"),"children")})),ea?xe(Ux,{width:Ee,stickyHeader:ss.stickyHeader,jumpToLatest:ss.jumpToLatest,transcript:!c.enabled||!en?ue?_w({bannerVisible:!1}):Aw({bannerVisible:!1}):void 0,renderTranscriptWindow:c.enabled&&en?f=>(()=>{let w=Xu(f).contentWindow;return ue?_w({bannerVisible:!1,windowed:!0,rendererWindow:w}):Aw({bannerVisible:!1,rendererWindow:w})})():void 0,overlay:Tw,scrollTop:In,scrollHeight:ia,viewportHeight:Wt.messageRows,stickyScroll:!ue&&!st.display&&!Li&&Gy,overscanRows:Zz,scrollRef:j$,onWindowChange:gN,onScrollTopChange:V$,onStickyChange:G$,footer:lb}):kr(Tz,{children:[kr(O,{flexDirection:"column",flexGrow:1,children:[ON,Tw?xe(O,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:Tw}):null]}),lb]})]});return ow?xe(ox,{mouseTracking:ns.usesRendererMouseTracking,children:ub}):ub},"InkREPLInner"),iq=o(e=>{let t=process.cwd(),n=e.options?.context?.gitRoot??void 0;return xe(dg,{children:xe(yg,{getPendingInputAgentId:o(()=>um(e.context.sessionId,"/root"),"getPendingInputAgentId"),children:xe($h,{children:xe(EC,{children:xe(gx,{cwd:t,gitRoot:n,listHostCommands:e.options.listHostCommands,children:xe(rq,{...e})})})})})})},"InkREPL");function oq(){return process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function"}o(oq,"isRawModeSupported");async function yT(e){if(!oq())throw new jw("Interactive mode requires a TTY with raw mode support.",['kodax -p "your task" # Run a single task',"kodax -c # Continue last session","kodax -r # Resume session"]);let t=e.storage??new Hl,n=va(),r=ba(),i=Ra(n,r),{prepareRuntimeConfig:s}=await import("./utils-WGRFGT7S.js"),{loadCompactionConfig:a}=await import("./compaction-config-NKDAUZNH.js"),{resolveProvider:c}=await import("./dist-NTS7CJG3.js"),l=s(),u=gd({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,configuredProvider:l.provider,defaultProvider:cm}),d=yd({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,explicitModel:e.model,configuredProvider:l.provider,configuredModel:l.model}),p=Oz(e,l),m=wd({explicitEffort:e.effort,environmentEffort:process.env.KODAX_EFFORT,configuredEffort:l.effort}),h=$m(e,l,process.env.KODAX_EFFORT),g="ama",S=p!=="off",T=fd(l.permissionMode,"accept-edits")??"accept-edits",x=Em(),I=l.repoIntelligenceTrace===!0,v={provider:u,model:d,effort:m,effortOverride:h,planModeEffort:l.planModeEffort,thinking:S,reasoningMode:p,agentMode:g,workMode:e.workMode,permissionMode:T,repoIntelligenceMode:x.mode,repoIntelligenceTrace:I},k=e.session?.id,_=[],H,$,P,z,J,L="",W=await Hi({cwd:process.cwd()}),N=W.workspaceRoot??void 0,q=W,B=N,ae=hm({meta:{cwd:process.cwd(),startedAt:Date.now()}});if(ae){let X=o(()=>{ae.shutdown()},"teamModeCleanup");process.on("exit",X),process.on("SIGTERM",X)}try{let{bootstrapConstructionRuntime:X}=await import("./construction-bootstrap-HCRLORKG.js"),re=await X(N??process.cwd());if(re.loaded>0||re.failed>0||re.tampered>0){let je=re.failed>0?`; ${re.failed} failed`:"",Tt=re.tampered>0?`; ${re.tampered} skipped due to manifest contentHash mismatch \u2014 re-stage and re-activate to re-approve`:"";Ge({source:"repl:construction",level:re.failed>0||re.tampered>0?"warn":"info",message:`Rehydrated ${re.loaded} active tool(s)${je}${Tt}.`})}if(re.markdownLoaded>0||re.markdownFailures.length>0){Ge({source:"repl:agents",level:re.markdownFailures.length>0?"warn":"info",message:`Loaded ${re.markdownLoaded} markdown agent(s).`});for(let je of re.markdownFailures)Ge({source:"repl:agents",level:"warn",message:`Skipped markdown agent ${je.path}: ${je.reason}`})}}catch(X){Ge({source:"repl:construction",level:"warn",message:`Bootstrap failed: ${X.message}. Self-construction disabled this session.`})}let ee;try{let X=await a(N),re=c(u);ee={contextWindow:X.contextWindow??re.getContextWindow?.()??2e5,triggerPercent:X.triggerPercent,triggerTokens:X.triggerTokens,enabled:X.enabled,reservedResponseTokens:re.getEffectiveMaxOutputTokens?.(d),userOverrideContextWindow:X.contextWindow}}catch{}let ie;if(e.sessionCommands?.read){if(k=e.session?.id??(e.session?.resume||e.session?.autoResume?(await e.sessionCommands.list({projectRoot:N??process.cwd(),scope:"user",limit:Number.MAX_SAFE_INTEGER})).find(X=>X.msgCount>0)?.id:void 0),k){let X=await ru(e.sessionCommands,k);L=X.session.title,q=Yf(X.session),B=X.session.workspaceRoot??X.session.gitRoot,v=jo(v,{settings:X.settings}),e={...e,session:{...e.session,id:k,tag:X.session.tag}}}}else if(e.session?.id){let X=await t.load(e.session.id);X&&(_=X.messages,H=Io(X.uiHistory),$=X.lineage,P=X.artifactLedger,z=X.extensionState,J=X.extensionRecords,L=X.title,k=e.session.id,q=Xn(X)??W,B=q.workspaceRoot??void 0,e={...e,session:{...e.session??{},id:k,tag:X.tag}},ie=`[Session loaded: ${k}]`)}else if(e.session?.resume||e.session?.autoResume){let X=e.sessionCommands?.list?(await e.sessionCommands.list({projectRoot:N??process.cwd(),scope:"user",limit:Number.MAX_SAFE_INTEGER})).find(re=>re.msgCount>0):await bf(t,N);if(X){let re=await t.load(X.id);re&&(_=re.messages,H=Io(re.uiHistory),$=re.lineage,P=re.artifactLedger,z=re.extensionState,J=re.extensionRecords,L=re.title,k=X.id,q=Xn(re)??W,B=q.workspaceRoot??void 0,e={...e,session:{...e.session??{},id:k,tag:re.tag}},ie=`[Continuing session: ${X.id}]`)}}let C=await Cf({sessionId:k,gitRoot:B,runtimeInfo:q,existingMessages:_,existingUiHistory:H,existingLineage:$,existingArtifactLedger:P,existingExtensionState:z,existingExtensionRecords:J});C.title=L,k===void 0&&e.sessionCommands&&await e.sessionCommands.create({sessionId:C.sessionId,title:C.title,gitRoot:C.gitRoot,projectPath:C.runtimeInfo?.executionCwd??C.gitRoot??process.cwd(),surface:"repl"}),e.sessionCommands?.read?(e.initialClientSettings&&Object.keys(e.initialClientSettings).length&&await e.clientPlane?.updateSettings?.(C.sessionId,e.initialClientSettings),v=jo(v,{settings:await e.sessionCommands.getSettings(C.sessionId)})):await e.clientPlane?.updateSettings?.(C.sessionId,cr(v,e.maxIter)),e={...e,context:{...e.context,gitRoot:C.gitRoot??void 0,executionCwd:C.runtimeInfo?.executionCwd??C.gitRoot??process.cwd()}},ae?.writer.update({sessionId:C.sessionId});let Te={current:v},Fe=xd(),Ce=await Tf({projectRoot:N??process.cwd(),executionCwd:q.executionCwd??N??process.cwd(),getCurrentProviderName:o(()=>Te.current.provider,"getCurrentProviderName"),getCurrentModel:o(()=>Te.current.model,"getCurrentModel"),getCurrentPermissionMode:o(()=>Te.current.permissionMode,"getCurrentPermissionMode"),autoModeSettings:Fe,log:o((X,re)=>{Ge({source:"repl:auto-mode",level:X==="warn"?"warn":"info",message:re})},"log"),extraCollectors:[Sd]});try{let X=process.stdout,re=process.stdin,je=!1;e.onBeforeRender?.(),ie&&process.stdout.write(`${Ut.green(ie)}
|
|
219
|
-
`);let{waitUntilExit:Tt,cleanup:vt}=
|
|
220
|
-
[Exiting KodaX...]`));let De=e.hardExitOnClose??process.env.VITEST!=="true";if(je&&De){let Ee=process.exitCode??0,ce=!1,oe=o(()=>{ce||(ce=!0,process.exit(Ee))},"requestProcessExit");setTimeout(oe,0).unref?.(),X.write("",oe);return}}catch(X){throw X instanceof Error&&X.message.includes("Raw mode")?new
|
|
218
|
+
`):je?.pull(n.sessionId,(W?.queue??[]).map(y=>y.inputId),Le.current.context?.executionCwd??process.cwd())},"onPopPendingInputs"),prompt:">",placeholder:yO({isLoading:at,canQueueFollowUps:pn,waitingReason:fw}),focus:!gt&&!Qe&&!Kt,cwd:process.cwd(),gitRoot:e.context?.gitRoot||n.gitRoot,onInputChange:aN,onPasteFallback:yN}),inlineSuggestions:hN,helpSurface:VT?xe(Yx,{sections:xy()}):void 0,taskBar:zu?xe(gg,{items:Ec.backgroundTask.items,overflowLabel:Ec.backgroundTask.overflowLabel,ctaHint:Ec.backgroundTask.ctaHint,showSpinner:at}):void 0,statusLine:xe(O,{children:xe(_l,{...Up,viewModel:wv})}),inlineDialogs:wN}),LN=xe(cg,{left:xe(sg,{items:xv}),right:xe(ag,{items:Iv}),stashNotice:xe(hg,{text:Kp}),notifications:xe(mg,{notifications:Gp}),composer:xe(tP,{searchActive:Kt,selectionActive:!!(gi||Et),showAllActive:an,searchQuery:Zn,searchCurrent:bn.length>0?os+1:0,searchCount:bn.length,searchDetailText:dw,pendingLiveUpdates:ju,secondaryText:pN}),taskBar:zu?xe(gg,{items:Ec.backgroundTask.items,overflowLabel:Ec.backgroundTask.overflowLabel,ctaHint:Ec.backgroundTask.ctaHint,showSpinner:zt}):void 0,statusLine:xe(O,{children:xe(_l,{...Up,viewModel:mw})})}),Aw=Y(f=>xe(nP,{banner:f?.bannerVisible?xe(mT,{...na}):void 0,items:yi,isLoading:er,viewportRows:Wt.messageRows,viewportWidth:Ee,scrollOffset:In,windowed:!!f?.rendererWindow,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Gu:$v,maxLines:mn,selectedTextRanges:sw?wp?.rowRanges:void 0,onMetricsChange:Xp,onVisibleRowsChange:Yp}),[na,yi,er,Xp,Yp,In,$v,Ee,mn,wp?.rowRanges,Wt.messageRows,sw]),_w=Y(f=>xe(rP,{banner:f?.bannerVisible?xe(mT,{...na}):void 0,items:Uu,browse:{hintText:ss.browseHintText},selection:zp,search:fv,isLoading:zt,isThinking:Be.isThinking,thinkingCharCount:Be.thinkingCharCount,thinkingContent:Be.thinkingContent,streamingResponse:Be.currentResponse,currentTool:Be.currentTool,activeToolCalls:Be.activeToolCalls,toolInputCharCount:Be.toolInputCharCount,toolInputContent:Be.toolInputContent,iterationHistory:Be.iterationHistory,currentIteration:Be.currentIteration,isCompacting:Be.isCompacting,agentMode:G.agentMode,managedPhase:zt?se?.phase:void 0,managedHarnessProfile:zt?se?.harnessProfile:void 0,managedWorkerTitle:zt?se?.activeWorkerTitle:void 0,managedRound:zt?se?.currentRound:void 0,managedMaxRounds:zt?se?.maxRounds:void 0,managedGlobalWorkBudget:zt?se?.globalWorkBudget:void 0,managedBudgetUsage:zt?se?.budgetUsage:void 0,managedBudgetApprovalRequired:zt?se?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Be.lastLiveActivityLabel,liveStatusLines:Rc,viewportRows:Wt.messageRows,viewportWidth:Ee,scrollOffset:In,windowed:!!f?.windowed,animateSpinners:!!f?.rendererWindow&&Ac,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Gu:Dp,maxLines:mn,showDetailedTools:an,showAllContent:an,selectedItemId:Qr.selectionEnabled?Et:void 0,selectedTextRanges:ao?.rowRanges,expandedItemKeys:Qr.selectionEnabled?On:void 0,onMetricsChange:Xp,onVisibleRowsChange:Yp}),[na,G.agentMode,zt,On,c.transcriptSpinnerAnimation,Xp,Yp,In,Lp,se?.activeWorkerTitle,se?.budgetApprovalRequired,se?.budgetUsage,se?.currentRound,se?.globalWorkBudget,se?.harnessProfile,se?.maxRounds,se?.phase,Gu,Dp,ss.browseHintText,Et,zp,Ee,Ac,Uu,mn,Be.activeToolCalls,Be.currentIteration,Be.currentResponse,Be.currentTool,Be.isCompacting,Be.isThinking,Be.iterationHistory,Be.lastLiveActivityLabel,Be.thinkingCharCount,Be.thinkingContent,Be.toolInputCharCount,Be.toolInputContent,Rc,ao?.rowRanges,fv,an,Wt.messageRows]),ON=ue?_w({bannerVisible:!1,windowed:!0}):Aw({bannerVisible:!1}),ub=ue?LN:PN,$N=c.enabled&&ta,db=kr(O,{flexDirection:"column",width:Ee,flexShrink:0,flexGrow:$N?1:0,children:[xe(CC,{currentConfig:G,onCycleThinking:e.config?()=>{SN()}:void 0,setCurrentConfig:ki,isLoading:at,abort:pt,stopThinking:mt,clearThinkingContent:rt,setCurrentTool:tt,setIsLoading:Fn,onToggleHelp:sN,setShowHelp:GT,onSetThinking:o(f=>{Le.current.thinking=f},"onSetThinking"),onSetReasoningMode:o(f=>{Le.current.reasoningMode=f,Le.current.thinking=f!=="off"},"onSetReasoningMode"),onToggleTranscriptMode:xN,onOpenTranscriptSearch:xw,canOpenTranscriptSearch:ue&&!gt&&!Qe,isInteractiveDialogActive:!!(gt||Qe),onSetPermissionMode:o(f=>{rm(f)},"onSetPermissionMode"),isInputEmpty:Tu,onSavePermissionMode:nR}),Z&&(c.enabled?null:xe(Il,{items:[1],children:o(()=>xe(mT,{...na},"banner"),"children")})),ta?xe(Vx,{width:Ee,stickyHeader:ss.stickyHeader,jumpToLatest:ss.jumpToLatest,transcript:!c.enabled||!en?ue?_w({bannerVisible:!1}):Aw({bannerVisible:!1}):void 0,renderTranscriptWindow:c.enabled&&en?f=>(()=>{let w=Yu(f).contentWindow;return ue?_w({bannerVisible:!1,windowed:!0,rendererWindow:w}):Aw({bannerVisible:!1,rendererWindow:w})})():void 0,overlay:Tw,scrollTop:In,scrollHeight:oa,viewportHeight:Wt.messageRows,stickyScroll:!ue&&!st.display&&!Li&&Gy,overscanRows:Zz,scrollRef:j$,onWindowChange:gN,onScrollTopChange:V$,onStickyChange:G$,footer:ub}):kr(Tz,{children:[kr(O,{flexDirection:"column",flexGrow:1,children:[ON,Tw?xe(O,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:Tw}):null]}),ub]})]});return ow?xe(sx,{mouseTracking:ns.usesRendererMouseTracking,children:db}):db},"InkREPLInner"),iq=o(e=>{let t=process.cwd(),n=e.options?.context?.gitRoot??void 0;return xe(dg,{children:xe(yg,{getPendingInputAgentId:o(()=>lm(e.context.sessionId,"/root"),"getPendingInputAgentId"),children:xe($h,{children:xe(MC,{children:xe(yx,{cwd:t,gitRoot:n,listHostCommands:e.options.listHostCommands,children:xe(rq,{...e})})})})})})},"InkREPL");function oq(){return process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function"}o(oq,"isRawModeSupported");async function wT(e){if(!oq())throw new Uw("Interactive mode requires a TTY with raw mode support.",['kodax -p "your task" # Run a single task',"kodax -c # Continue last session","kodax -r # Resume session"]);let t=e.storage??new Fl,n=ba(),r=Ra(),i=ka(n,r),{prepareRuntimeConfig:s}=await import("./utils-2QNMYRGA.js"),{loadCompactionConfig:a}=await import("./compaction-config-ECMOFP5H.js"),{resolveProvider:c}=await import("./dist-5J53DGAO.js"),l=s(),u=yd({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,configuredProvider:l.provider,defaultProvider:cm}),d=wd({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,explicitModel:e.model,configuredProvider:l.provider,configuredModel:l.model}),p=Oz(e,l),m=Sd({explicitEffort:e.effort,environmentEffort:process.env.KODAX_EFFORT,configuredEffort:l.effort}),h=$m(e,l,process.env.KODAX_EFFORT),g="ama",S=p!=="off",T=pd(l.permissionMode,"accept-edits")??"accept-edits",x=Em(),I=l.repoIntelligenceTrace===!0,v={provider:u,model:d,effort:m,effortOverride:h,planModeEffort:l.planModeEffort,thinking:S,reasoningMode:p,agentMode:g,workMode:e.workMode,permissionMode:T,repoIntelligenceMode:x.mode,repoIntelligenceTrace:I},k=e.session?.id,_=[],H,$,P,z,J,L="",W=await Hi({cwd:process.cwd()}),N=W.workspaceRoot??void 0,q=W,B=N,ae=mm({meta:{cwd:process.cwd(),startedAt:Date.now()}});if(ae){let X=o(()=>{ae.shutdown()},"teamModeCleanup");process.on("exit",X),process.on("SIGTERM",X)}try{let{bootstrapConstructionRuntime:X}=await import("./construction-bootstrap-OAZKGI5Y.js"),re=await X(N??process.cwd());if(re.loaded>0||re.failed>0||re.tampered>0){let je=re.failed>0?`; ${re.failed} failed`:"",Tt=re.tampered>0?`; ${re.tampered} skipped due to manifest contentHash mismatch \u2014 re-stage and re-activate to re-approve`:"";Ge({source:"repl:construction",level:re.failed>0||re.tampered>0?"warn":"info",message:`Rehydrated ${re.loaded} active tool(s)${je}${Tt}.`})}if(re.markdownLoaded>0||re.markdownFailures.length>0){Ge({source:"repl:agents",level:re.markdownFailures.length>0?"warn":"info",message:`Loaded ${re.markdownLoaded} markdown agent(s).`});for(let je of re.markdownFailures)Ge({source:"repl:agents",level:"warn",message:`Skipped markdown agent ${je.path}: ${je.reason}`})}}catch(X){Ge({source:"repl:construction",level:"warn",message:`Bootstrap failed: ${X.message}. Self-construction disabled this session.`})}let ee;try{let X=await a(N),re=c(u);ee={contextWindow:X.contextWindow??re.getContextWindow?.()??2e5,triggerPercent:X.triggerPercent,triggerTokens:X.triggerTokens,enabled:X.enabled,reservedResponseTokens:re.getEffectiveMaxOutputTokens?.(d),userOverrideContextWindow:X.contextWindow}}catch{}let ie;if(e.sessionCommands?.read){if(k=e.session?.id??(e.session?.resume||e.session?.autoResume?(await e.sessionCommands.list({projectRoot:N??process.cwd(),scope:"user",limit:Number.MAX_SAFE_INTEGER})).find(X=>X.msgCount>0)?.id:void 0),k){let X=await iu(e.sessionCommands,k);L=X.session.title,q=Yf(X.session),B=X.session.workspaceRoot??X.session.gitRoot,v=jo(v,{settings:X.settings}),e={...e,session:{...e.session,id:k,tag:X.session.tag}}}}else if(e.session?.id){let X=await t.load(e.session.id);X&&(_=X.messages,H=Co(X.uiHistory),$=X.lineage,P=X.artifactLedger,z=X.extensionState,J=X.extensionRecords,L=X.title,k=e.session.id,q=Xn(X)??W,B=q.workspaceRoot??void 0,e={...e,session:{...e.session??{},id:k,tag:X.tag}},ie=`[Session loaded: ${k}]`)}else if(e.session?.resume||e.session?.autoResume){let X=e.sessionCommands?.list?(await e.sessionCommands.list({projectRoot:N??process.cwd(),scope:"user",limit:Number.MAX_SAFE_INTEGER})).find(re=>re.msgCount>0):await Rf(t,N);if(X){let re=await t.load(X.id);re&&(_=re.messages,H=Co(re.uiHistory),$=re.lineage,P=re.artifactLedger,z=re.extensionState,J=re.extensionRecords,L=re.title,k=X.id,q=Xn(re)??W,B=q.workspaceRoot??void 0,e={...e,session:{...e.session??{},id:k,tag:re.tag}},ie=`[Continuing session: ${X.id}]`)}}let C=await Tf({sessionId:k,gitRoot:B,runtimeInfo:q,existingMessages:_,existingUiHistory:H,existingLineage:$,existingArtifactLedger:P,existingExtensionState:z,existingExtensionRecords:J});C.title=L,k===void 0&&e.sessionCommands&&await e.sessionCommands.create({sessionId:C.sessionId,title:C.title,gitRoot:C.gitRoot,projectPath:C.runtimeInfo?.executionCwd??C.gitRoot??process.cwd(),surface:"repl"}),e.sessionCommands?.read?(e.initialClientSettings&&Object.keys(e.initialClientSettings).length&&await e.clientPlane?.updateSettings?.(C.sessionId,e.initialClientSettings),v=jo(v,{settings:await e.sessionCommands.getSettings(C.sessionId)})):await e.clientPlane?.updateSettings?.(C.sessionId,cr(v,e.maxIter)),e={...e,context:{...e.context,gitRoot:C.gitRoot??void 0,executionCwd:C.runtimeInfo?.executionCwd??C.gitRoot??process.cwd()}},ae?.writer.update({sessionId:C.sessionId});let Te={current:v},Fe=Id(),Ce=await vf({projectRoot:N??process.cwd(),executionCwd:q.executionCwd??N??process.cwd(),getCurrentProviderName:o(()=>Te.current.provider,"getCurrentProviderName"),getCurrentModel:o(()=>Te.current.model,"getCurrentModel"),getCurrentPermissionMode:o(()=>Te.current.permissionMode,"getCurrentPermissionMode"),autoModeSettings:Fe,log:o((X,re)=>{Ge({source:"repl:auto-mode",level:X==="warn"?"warn":"info",message:re})},"log"),extraCollectors:[xd]});try{let X=process.stdout,re=process.stdin,je=!1;e.onBeforeRender?.(),ie&&process.stdout.write(`${Ut.green(ie)}
|
|
219
|
+
`);let{waitUntilExit:Tt,cleanup:vt}=xl(xe(iq,{options:e,config:v,context:C,startupRuntimeInfo:W,storage:t,autoModeSettings:Ed(Fe),compactionInfo:ee,rendererMode:r,fullscreenPolicy:i,autoModeBootstrap:Ce,setCurrentConfigRef:o(Ee=>{Te.current=Ee},"setCurrentConfigRef"),teamModeHandle:ae,onExit:o(()=>{je=!0},"onExit")}),{stdout:X,stdin:re,exitOnCtrlC:!1,patchConsole:!1,maxFps:30,shellMode:i.enabled?i.promptShell:"main-screen"});await Tt(),vt(),ae?.shutdown(),re.isTTY===!0&&typeof re.setRawMode=="function"&&re.isRaw&&re.setRawMode(!1),re.pause?.(),re.unref?.(),je&&console.log(Ut.dim(`
|
|
220
|
+
[Exiting KodaX...]`));let De=e.hardExitOnClose??process.env.VITEST!=="true";if(je&&De){let Ee=process.exitCode??0,ce=!1,oe=o(()=>{ce||(ce=!0,process.exit(Ee))},"requestProcessExit");setTimeout(oe,0).unref?.(),X.write("",oe);return}}catch(X){throw X instanceof Error&&X.message.includes("Raw mode")?new Uw("Interactive mode failed to start.",['kodax -p "your task" # Run a single task',"kodax -c # Continue last session"]):X}}o(wT,"runInkInteractiveMode");import{createHash as sq}from"node:crypto";async function Oy(e,t,n,r,i="text",s){if(!e)throw new Error("Complete console output is unavailable.");return Dc(a=>e(t,{offset:a,part:i}),t,{offset:n,length:r,...s?{version:s}:{}})}o(Oy,"readClassicItemRange");var e$=100;function aq(e){let t=e.replace(/\n/g," ");return t.length>e$?`${t.slice(0,e$)}...`:t}o(aq,"thinkingPreview");function $y(e){return sq("sha256").update(e,"utf16le")}o($y,"assistantDigest");function Ny(e,t){let n=!1,r=new Map,i=new Map,s=new Map,a=new Map,c=o(h=>JSON.stringify([h.sidecar?.verdict,h.sidecar?.delivery]),"sidecarState"),l=new Set,u,d,p=new Set,m=o((h,g)=>{e(g),r.set(h.id,h.text.length)},"printOnce");return async(h,g)=>{g?.compacting&&d!==g.runId&&e("info:[KodaX] Compacting context..."),d=g?.compacting?g.runId:void 0;let S=g?.streaming,T=S?JSON.stringify([g.runId,S.providerRequestId]):void 0;if(T!==u&&(u=T,p.clear()),S){let I=JSON.stringify([S.kind,S.kind==="thinking"?S.itemId:S.callId??S.toolName]);p.has(I)||(p.add(I),e(`info:${Qh(S)}`))}if(!n){n=!0;for(let I of h)r.set(I.id,I.totalTextLength??I.text.length),I.type==="assistant"&&(i.set(I.id,I),I.textOffset||s.set(I.id,$y(I.text))),I.type==="sidecar"&&a.set(I.id,c(I)),I.type==="tool"&&(l.add(`${I.id}:start`),I.tool!==void 0&&I.tool.status!=="running"&&I.tool.status!=="awaiting_approval"&&l.add(`${I.id}:done`));return}let x=new Set(h.map(I=>I.id));for(let I of r.keys())x.has(I)||(r.delete(I),a.delete(I),i.delete(I),s.delete(I));for(let I of l){let v=I.slice(0,I.lastIndexOf(":"));x.has(v)||l.delete(I)}for(let I of h){if(I.type==="assistant"){let v=r.get(I.id)??0,k=I.totalTextLength??I.text.length,_=I.textOffset??0,H=i.get(I.id),$=Math.max(_,H?.textOffset??0),P=Math.min(k,v),z=H!==void 0&&((I.textRevision??0)!==(H.textRevision??0)||k<v||P>$&&I.text.slice($-_,P-_)!==H.text.slice($-(H.textOffset??0),P-(H.textOffset??0))),J=_>0&&H!==void 0&&I.outputState!==H.outputState;if(z||J){let L=_>0?await Oy(t,I.id,0,k,"text",I):I.text,W=s.get(I.id);k>=v&&W!==void 0&&$y(L.slice(0,v)).digest("hex")===W.copy().digest("hex")?k>v&&e(`assistant:${L.slice(v)}`):e(`assistant:
|
|
221
221
|
[Updated response]
|
|
222
222
|
${L}`),s.set(I.id,$y(L)),r.set(I.id,k)}else if(k>v){let L=v<_?await Oy(t,I.id,v,k,"text",I):I.text.slice(v-_);e(`assistant:${L}`);let W=s.get(I.id)??(v===0?$y(""):void 0);W&&(W.update(L,"utf16le"),s.set(I.id,W)),r.set(I.id,k)}i.set(I.id,I);continue}if(I.type==="tool"&&I.tool){if(I.tool.status==="running"||I.tool.status==="awaiting_approval"){if(!l.has(`${I.id}:start`)){let v=I.tool.totalInputLength!==void 0?await Oy(t,I.id,0,I.tool.totalInputLength,"input"):I.tool.inputText??"";l.add(`${I.id}:start`),m(I,`tool:\u25B6 ${I.tool.name} ${v}`.trimEnd())}continue}if(l.add(`${I.id}:start`),!l.has(`${I.id}:done`)){let v=I.totalTextLength!==void 0?await Oy(t,I.id,0,I.totalTextLength):I.text;l.add(`${I.id}:done`);let k=I.tool.status==="error"?"\u2717":I.tool.status==="cancelled"?"\u2022":"\u2713";m(I,`tool:${k} ${I.tool.name} ${v}`.trimEnd())}continue}if(I.type==="sidecar"){let v=c(I);if(a.get(I.id)===v)continue;let k=I.sidecar?.delivery==="budget-exhausted"?"budget exhausted":I.sidecar?.verdict;m(I,`sidecar:Sidecar Verifier${k?` \u2014 ${k}`:""}
|
|
223
|
-
${I.text}`),a.set(I.id,v);continue}if(!r.has(I.id)){if(I.type==="thinking"){m(I,`thinking:[Thinking] ${aq(I.text)}`);continue}if(I.type==="user"){r.set(I.id,I.text.length);continue}m(I,`${I.type}:${I.text}`)}}}}o(Ny,"createClassicPlaneDisplayDiffer");async function
|
|
224
|
-
`)),a=n.differ??Ny(m=>{r||s(m)},(m,h)=>e.readItem(t,m,h)),c=new Map,l=o(()=>{for(let m of c.values())m.abort();c.clear()},"closeDialogs"),u=Promise.resolve(),d=n.displayQueue??{pending:Promise.resolve()},p=await e.observe(t,m=>{if(!i())return;n.onView?.(m),d.pending=d.pending.then(()=>i()?a(m.items,Cr(m)===m.activity?.runId?m.activity:void 0):void 0).catch(S=>{let T=`Console output read failed: ${S instanceof Error?S.message:String(S)}`;Ge({source:"repl:classic-display",level:"warn",message:T}),i()&&n.onNotice?.(T)});let h=n.dialogs;if(h===void 0)return;let g=new Set(m.interactions.map(S=>S.requestId));for(let[S,T]of c)g.has(S)||(T.abort(),c.delete(S));for(let S of m.interactions){if(c.has(S.requestId))continue;let T=new AbortController;c.set(S.requestId,T),u=u.then(()=>i()?
|
|
223
|
+
${I.text}`),a.set(I.id,v);continue}if(!r.has(I.id)){if(I.type==="thinking"){m(I,`thinking:[Thinking] ${aq(I.text)}`);continue}if(I.type==="user"){r.set(I.id,I.text.length);continue}m(I,`${I.type}:${I.text}`)}}}}o(Ny,"createClassicPlaneDisplayDiffer");async function ST(e,t,n={}){let r=!1,i=o(()=>!r&&(n.isCurrent?.()??!0),"isCurrent"),s=n.write??(m=>process.stdout.write(`${m}
|
|
224
|
+
`)),a=n.differ??Ny(m=>{r||s(m)},(m,h)=>e.readItem(t,m,h)),c=new Map,l=o(()=>{for(let m of c.values())m.abort();c.clear()},"closeDialogs"),u=Promise.resolve(),d=n.displayQueue??{pending:Promise.resolve()},p=await e.observe(t,m=>{if(!i())return;n.onView?.(m),d.pending=d.pending.then(()=>i()?a(m.items,Cr(m)===m.activity?.runId?m.activity:void 0):void 0).catch(S=>{let T=`Console output read failed: ${S instanceof Error?S.message:String(S)}`;Ge({source:"repl:classic-display",level:"warn",message:T}),i()&&n.onNotice?.(T)});let h=n.dialogs;if(h===void 0)return;let g=new Set(m.interactions.map(S=>S.requestId));for(let[S,T]of c)g.has(S)||(T.abort(),c.delete(S));for(let S of m.interactions){if(c.has(S.requestId))continue;let T=new AbortController;c.set(S.requestId,T),u=u.then(()=>i()?mf(e,S,h,T.signal):!1).then(x=>{x||T.signal.aborted||c.delete(S.requestId)}).catch(x=>{T.signal.aborted||!i()||(c.delete(S.requestId),n.onNotice?.(`Answer delivery failed (${x instanceof Error?x.message:String(x)}); the question re-opens or resolves Host-side.`))})}},{onStatus:o(m=>{i()&&(n.onStatus?.(m),!(r||m.state!=="closed")&&(r=!0,l(),m.reason==="unavailable"&&n.onNotice?.("Session observation is unavailable; reconnect to receive output and Host questions.")))},"onStatus")});return()=>{r=!0,l(),p()}}o(ST,"attachClassicPlaneDisplay");function n$(e,t,n){let r=(e??"").trim();if(r.length===0)return{kind:"cancel"};if(/^[1-9][0-9]*$/.test(r)){let s=Number(r);if(s<=t.length)return{kind:"value",value:t[s-1].value}}let i=t.find(s=>s.value===r||s.label===r);return i!==void 0?{kind:"value",value:i.value}:n?{kind:"custom",value:r}:{kind:"cancel"}}o(n$,"parseClassicChoice");function cq(e,t){let n=t.map((r,i)=>`${i+1}. ${r.label}${r.description?` \u2014 ${r.description}`:""}`);return`${e}
|
|
225
225
|
${n.join(`
|
|
226
226
|
`)}
|
|
227
|
-
Choice (number, label, or free text; empty cancels): `}o(cq,"describeChoices");async function t$(e,t,n,r,i){let s=n$(await e(cq(t,n),i),n,r);return s.kind==="cancel"?mr:s.kind==="custom"?{kind:"customInput",value:s.value}:s.value}o(t$,"askChoice");function
|
|
228
|
-
${t}`),console.log("\u2500".repeat(t.length)),n.forEach((r,i)=>{console.log(` ${i+1}. ${r}`)}),console.log(" 0. Cancel"),console.log(""),new Promise(r=>{this.rl.question("Enter choice (0 to cancel): ",i=>{let s=i.trim();if(s==="0"||s===""){r(void 0);return}let a=parseInt(s,10)-1;if(isNaN(a)||a<0||a>=n.length){console.log("Invalid choice. Please try again."),r(void 0);return}r(n[a])})})}async confirm(t){return new Promise(n=>{this.rl.question(`${t} (y/N): `,r=>{let i=r.trim().toLowerCase();n(i==="y"||i==="yes")})})}async input(t,n){let r=n?`${t} [${n}]: `:`${t}: `;return new Promise(i=>{this.rl.question(r,s=>{let a=s.trim();if(a===""&&n!==void 0){i(n);return}i(a||void 0)})})}};import
|
|
229
|
-
`)))}o(a$,"printWorkspaceEntryNotice");function c$(e,t,n,r){let i=Gm(),s=e.model??
|
|
227
|
+
Choice (number, label, or free text; empty cancels): `}o(cq,"describeChoices");async function t$(e,t,n,r,i){let s=n$(await e(cq(t,n),i),n,r);return s.kind==="cancel"?mr:s.kind==="custom"?{kind:"customInput",value:s.value}:s.value}o(t$,"askChoice");function xT(e){let t=e.ask??(async(r,i)=>{let{askInput:s}=await import("./readline-helpers-UZXWBRXQ.js");return s(e.rl,r,i)}),n=e.confirm??Ca;return{question:o(async(r,i)=>{if(r.kind==="input"||r.options===void 0||r.options.length===0){let a=(await t(`${r.question}: `,i)??"").trim();return a.length===0?mr:a}return t$(t,r.question,r.options,r.allowCustomInput!==!1,i)},"question"),questionMulti:o(async(r,i)=>{let s={};for(let a of r.questions){if(i?.aborted)return;let c=await t$(t,a.question,a.options,a.allowCustomInput!==!1,i);if(c===mr)return;s[a.question]=c}return s},"questionMulti"),questionInput:o(async(r,i)=>{let s=await t(`${r.question}: `,i);return s!==void 0&&s.trim().length>0?s:void 0},"questionInput"),permission:o(async(r,i)=>await n(e.rl,r.toolName,{...r.inputPreview!==void 0?{input:r.inputPreview}:{},...r.plan!==void 0?{plan:r.plan}:{},...r.reason!==void 0?{_reason:r.reason}:{},...r.executionCwd!==void 0?{_executionCwd:r.executionCwd}:{},...r.risk!==void 0?{_runtimeRisk:r.risk}:{}},{permissionMode:e.permissionMode(),runtimeGrantSuggestions:r.grantSuggestions??[],...i!==void 0?{signal:i}:{}}),"permission")}}o(xT,"createClassicPlaneDialogSurface");import*as l$ from"readline";import de from"chalk";var Dy=class{static{o(this,"ReadlineUIContext")}rl;secret;constructor(t,n){this.rl=t,this.secret=n}async select(t,n){if(n.length!==0)return console.log(`
|
|
228
|
+
${t}`),console.log("\u2500".repeat(t.length)),n.forEach((r,i)=>{console.log(` ${i+1}. ${r}`)}),console.log(" 0. Cancel"),console.log(""),new Promise(r=>{this.rl.question("Enter choice (0 to cancel): ",i=>{let s=i.trim();if(s==="0"||s===""){r(void 0);return}let a=parseInt(s,10)-1;if(isNaN(a)||a<0||a>=n.length){console.log("Invalid choice. Please try again."),r(void 0);return}r(n[a])})})}async confirm(t){return new Promise(n=>{this.rl.question(`${t} (y/N): `,r=>{let i=r.trim().toLowerCase();n(i==="y"||i==="yes")})})}async input(t,n){let r=n?`${t} [${n}]: `:`${t}: `;return new Promise(i=>{this.rl.question(r,s=>{let a=s.trim();if(a===""&&n!==void 0){i(n);return}i(a||void 0)})})}};import ro from"chalk";function i$(e,t,n){return new Promise(r=>{let i=!1,s=o(l=>{i||(i=!0,n?.removeEventListener("abort",a),r(l))},"finish"),a=o(()=>s({cancelled:!0}),"onAbort");n?.addEventListener("abort",a,{once:!0});let c=o(l=>s({value:l}),"onAnswer");n?e.question(t,{signal:n},c):e.question(t,c)})}o(i$,"promptLine");function o$(e,t){if(!/^\d+$/.test(e))return;let n=Number.parseInt(e,10)-1;return n>=0&&n<t?n:void 0}o(o$,"parseIndex");function lq(e,t){let n=e.split(/[\s,]+/).filter(Boolean);if(n.length===0)return[];let r=[];for(let i of n){let s=o$(i,t);if(s===void 0||r.includes(s))return;r.push(s)}return r}o(lq,"parseIndexList");async function IT(e,t,n,r){if(r?.aborted)return{cancelled:!0};console.log();let i=n?ro.dim(` (${n})`):"";console.log(ro.cyan(`? ${t}`));let s=await i$(e,ro.dim(` \u203A Answer${i}: `),r);if("cancelled"in s)return{cancelled:!0};let a=s.value.trim();return{value:a!==""?a:n??""}}o(IT,"askTextInput");async function uq(e,t,n,r,i){let s=e[t].value;if(s===pa)return{kind:"back"};if(s===pr){let a=await IT(n,r.customInputPrompt??r.question,r.customInputDefault,i);return"cancelled"in a?{kind:"cancelled"}:{kind:"answer",value:{kind:"customInput",value:a.value}}}return{kind:"answer",value:s}}o(uq,"resolveSingleSelection");async function r$(e,t,n,r,i){let s=n.allowCustomInput!==!1,a=(n.options??[]).map(d=>({label:d.label,...d.description!==void 0?{description:d.description}:{},value:d.value}));s&&a.push({label:n.customInputLabel??"Other\u2026",value:pr}),r&&a.push({label:"\u2190 Back",value:pa});let c=n.multiSelect===!0,l=n.default!==void 0?a.findIndex(d=>d.value===n.default):-1,u=l>=0?` [${l+1}]`:"";for(console.log(),console.log(ro.cyan(`? ${t}`)),a.forEach((d,p)=>{let m=ro.dim(`${p+1}.`.padStart(4)),h=d.description?ro.dim(` - ${d.description}`):"";console.log(` ${m} ${d.label}${h}`)});;){if(i?.aborted)return{kind:"cancelled"};let d=await i$(e,ro.dim(` \u203A Select (1-${a.length})${u}: `),i);if("cancelled"in d)return{kind:"cancelled"};let p=d.value.trim();if(!c){let x=p===""?l>=0?l:void 0:o$(p,a.length);if(x===void 0){console.log(ro.yellow(` Please enter a number between 1 and ${a.length}.`));continue}return uq(a,x,e,n,i)}let m=p===""?l>=0?[l]:[]:lq(p,a.length);if(m===void 0){console.log(ro.yellow(` Enter numbers between 1 and ${a.length}, separated by commas.`));continue}let h=a.findIndex(x=>x.value===pa);if(h>=0&&m.includes(h))return{kind:"back"};let g=n.minSelections??1,S=n.maxSelections??a.length;if(m.length<g||m.length>S){console.log(ro.yellow(` Select between ${g} and ${S} options.`));continue}if(m.length===0)return{kind:"answer",value:[]};let T=a.findIndex(x=>x.value===pr);if(T>=0&&m.includes(T)){let x=await IT(e,n.customInputPrompt??n.question,n.customInputDefault,i);return"cancelled"in x?{kind:"cancelled"}:{kind:"answer",value:m.map(v=>v===T?{kind:"customInput",value:x.value}:a[v].value)}}return{kind:"answer",value:m.map(x=>a[x].value)}}}o(r$,"askSelection");function s$(e){return{askUser:o(async(t,n,r)=>{let i=await r$(e,t.question,t,!1,r?.signal);return i.kind!=="answer"?mr:i.value},"askUser"),askUserMulti:o(async(t,n,r)=>{let i=t.questions.length,s={},a=0;for(;a<i;){let c=t.questions[a],l=`[${a+1}/${i}] ${c.question}`,u=await r$(e,l,c,a>0,r?.signal);if(u.kind==="cancelled")return;if(u.kind==="back"){a-=1;continue}s[c.question]=u.value,a+=1}return s},"askUserMulti"),askUserInput:o(async(t,n,r)=>{let i=await IT(e,t.question,t.default,r?.signal);return"cancelled"in i?void 0:i.value},"askUserInput")}}o(s$,"createClassicAskUserEvents");import xt from"chalk";function a$(e){e?.workspaceRoot&&(console.log(xt.dim(` Workspace: ${Dr(e)}`)),console.log(xt.dim(` Use /status workspace for runtime details.
|
|
229
|
+
`)))}o(a$,"printWorkspaceEntryNotice");function c$(e,t,n,r){let i=Gm(),s=e.model??xa(e.provider)??e.provider,a=Yc({provider:e.provider,model:e.model,effort:Zb(e),effortOverride:e.effortOverride,thinking:e.thinking,reasoningMode:e.reasoningMode}),c=`
|
|
230
230
|
\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557
|
|
231
231
|
\u2588\u2588\u2551 \u2588\u2588\u2554\u255D \u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u255A\u2588\u2588\u2557\u2588\u2588\u2554\u255D
|
|
232
232
|
\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2554\u255D
|
|
233
233
|
\u2588\u2588\u2554\u2550\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551 \u2588\u2588\u2554\u2588\u2588\u2557
|
|
234
234
|
\u2588\u2588\u2551 \u2588\u2588\u2557 \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u255D \u2588\u2588\u2557
|
|
235
235
|
\u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D`,l=o(d=>xt.hex(d)(" \u258E "),"bar"),u=xt.hex(i.colors.dim)(" \xB7 ");if(console.log(xt.hex(i.colors.primary)(`
|
|
236
|
-
`+c)),console.log(""),console.log(l(i.colors.primary)+xt.hex(i.colors.primary)("AI Coding Agent \xB7 Minimalist & Intelligent")),console.log(l(i.colors.success)+xt.bold.hex(i.colors.text)(`v${
|
|
236
|
+
`+c)),console.log(""),console.log(l(i.colors.primary)+xt.hex(i.colors.primary)("AI Coding Agent \xB7 Minimalist & Intelligent")),console.log(l(i.colors.success)+xt.bold.hex(i.colors.text)(`v${Xc}`)+u+xt.hex(i.colors.success)(`${e.provider}:${s}`)+u+xt.hex(i.colors.primary)(e.agentMode.toUpperCase())+xt.hex(i.colors.dim)(" / ")+xt.hex(i.colors.accent)(t)+xt.hex(i.colors.dim)(" \xB7 ")+xt.hex(i.colors.warning)(`effort:${a}`)),n){let d=Math.round(n.contextWindow/1e3),p=n.enabled?xt.hex(i.colors.success)("on"):xt.hex(i.colors.secondary)("off"),m=ff(n.contextWindow,n.triggerPercent,n.triggerTokens);console.log(l(i.colors.accent)+xt.hex(i.colors.secondary)(`ctx ${d}k \xB7 compaction `)+p+xt.hex(i.colors.secondary)(` \xB7 ${m}`))}r&&console.log(l(i.colors.secondary)+xt.hex(i.colors.secondary)(`${r.length} project rule file(s) loaded \u2014 `)+xt.hex(i.colors.dim)("/reload to refresh")),console.log(""),console.log(xt.hex(i.colors.dim)(" Quick tips:")),console.log(xt.hex(i.colors.primary)(" /help ")+xt.hex(i.colors.dim)("Show all commands")),console.log(xt.hex(i.colors.primary)(" /mode ")+xt.hex(i.colors.dim)("Switch permission mode")),console.log(xt.hex(i.colors.primary)(" /clear ")+xt.hex(i.colors.dim)("Clear conversation")),console.log(xt.hex(i.colors.primary)(" @path ")+xt.hex(i.colors.dim)("Attach image to context")),console.log(xt.hex(i.colors.primary)(" !cmd ")+xt.hex(i.colors.dim)("Run read-only shell command")),console.log(xt.hex(i.colors.dim)(`
|
|
237
237
|
Keyboard: Tab (complete) | Esc+Esc (edit last) | Ctrl+T (reasoning) | Ctrl+E (editor) | Ctrl+R (history)
|
|
238
|
-
`))}o(c$,"printStartupBanner");async function dq(e,t,n,r){if(r?.read){let i=e?.id??(e?.resume||e?.autoResume?(await r.list({projectRoot:n??process.cwd(),scope:"user",limit:Number.MAX_SAFE_INTEGER})).find(a=>a.msgCount>0)?.id:void 0);if(!i)return null;let s=await
|
|
238
|
+
`))}o(c$,"printStartupBanner");async function dq(e,t,n,r){if(r?.read){let i=e?.id??(e?.resume||e?.autoResume?(await r.list({projectRoot:n??process.cwd(),scope:"user",limit:Number.MAX_SAFE_INTEGER})).find(a=>a.msgCount>0)?.id:void 0);if(!i)return null;let s=await iu(r,i);return{id:i,client:s,kind:e?.id?"load":"continue",runtimeInfo:Yf(s.session)}}if(e?.id){let i=await t.load(e.id);if(!i)return null;let s=Xn(i);return{id:e.id,data:i,kind:"load",...s?{runtimeInfo:s}:{}}}if(e?.resume||e?.autoResume){let i=r?.list?(await r.list({projectRoot:n??process.cwd(),scope:"user",limit:Number.MAX_SAFE_INTEGER})).find(c=>c.msgCount>0):await Rf(t,n);if(!i)return null;let s=await t.load(i.id);if(!s)return null;let a=Xn(s);return{id:i.id,data:s,kind:"continue",...a?{runtimeInfo:a}:{}}}return null}o(dq,"loadClassicStartupSession");async function fq(e){return(await gm(e)).getSystemPromptSnippet()}o(fq,"buildClassicCliSkillsPrompt");function pq(e,t){let n=od(e);t.context={...t.context,skillsPrompt:n.getSystemPromptSnippet()}}o(pq,"syncClassicCliSkillsPrompt");var CT=class{static{o(this,"MemorySessionStorage")}sessions=new Map;async save(t,n){let r=this.sessions.get(t),i=it(n.messages,n.lineage??r?.data.lineage);this.sessions.set(t,{createdAt:r?.createdAt??new Date().toISOString(),data:{...structuredClone(n),scope:n.scope??r?.data.scope??"user",uiHistory:n.uiHistory??r?.data.uiHistory,extensionState:n.extensionState??r?.data.extensionState,extensionRecords:n.extensionRecords??r?.data.extensionRecords,tag:n.tag??r?.data.tag,lineage:i}})}async load(t){return structuredClone(this.sessions.get(t)?.data??null)}async getLineage(t){return structuredClone(this.sessions.get(t)?.data.lineage??null)}async loadFullLineage(t){return this.getLineage(t)}async setActiveEntry(t,n,r){let i=this.sessions.get(t);if(!i?.data.lineage)return null;let s=Hc(i.data.lineage,n,r);if(!s)return null;let a={...structuredClone(i.data),messages:Yt(s),lineage:s};return this.sessions.set(t,{...i,data:a}),structuredClone(a)}async setLabel(t,n,r){let i=this.sessions.get(t);if(!i?.data.lineage)return null;let s=Fc(i.data.lineage,n,r);if(!s)return null;let a={...structuredClone(i.data),lineage:s};return this.sessions.set(t,{...i,data:a}),structuredClone(a)}async fork(t,n,r){let i=this.sessions.get(t);if(!i?.data.lineage)return null;let s=wo(i.data.lineage,n);if(!s)return null;let a=r?.sessionId??await Uc(),c={messages:Yt(s),title:r?.title??i.data.title,gitRoot:i.data.gitRoot,tag:i.data.tag,runtimeInfo:i.data.runtimeInfo?structuredClone(i.data.runtimeInfo):void 0,scope:i.data.scope??"user",extensionState:i.data.extensionState?structuredClone(i.data.extensionState):void 0,extensionRecords:i.data.extensionRecords?structuredClone(i.data.extensionRecords):void 0,lineage:s};return this.sessions.set(a,{createdAt:new Date().toISOString(),data:c}),{sessionId:a,data:structuredClone(c)}}async rewind(t,n){let r=this.sessions.get(t);if(!r?.data.lineage)return null;let i=n??Wc(r.data.lineage);if(!i)return null;let s=jc(r.data.lineage,i);if(!s)return null;let a={...r.data,messages:Yt(s),lineage:s};return this.sessions.set(t,{...r,data:a}),structuredClone(a)}async list(t){return Array.from(this.sessions.entries()).filter(([,n])=>(n.data.scope??"user")==="user").map(([n,r])=>({id:n,title:r.data.title,msgCount:r.data.lineage?us(r.data.lineage):r.data.messages.length,...r.data.tag!==void 0?{tag:r.data.tag}:{},...r.data.runtimeInfo?{runtimeInfo:structuredClone(r.data.runtimeInfo)}:{}}))}async delete(t){this.sessions.delete(t)}async deleteAll(t){this.sessions.clear()}};function cp(e,t,n){e.runtimeInfo=n,e.gitRoot=n?.workspaceRoot??e.gitRoot,t.context={...t.context,gitRoot:e.gitRoot,executionCwd:n?.executionCwd??process.cwd()}}o(cp,"applyRuntimeContext");function lp(e,t){let n=t.runtimeSessionSnapshot;n&&("extensionState"in n&&(e.extensionState=n.extensionState?structuredClone(n.extensionState):{},e.extensionStateDirty=!0),"extensionRecords"in n&&(e.extensionRecords=n.extensionRecords?.map(r=>({...r}))??[],e.extensionRecordsDirty=!0))}o(lp,"applyRuntimeSessionSnapshot");function qo(e){return{...e.extensionStateDirty?{extensionState:e.extensionState??{}}:{},...e.extensionRecordsDirty?{extensionRecords:e.extensionRecords??[]}:{}}}o(qo,"contextExtensionSessionData");function mu(e){e.extensionStateDirty=!1,e.extensionRecordsDirty=!1}o(mu,"markExtensionSessionPersisted");async function mq(e,t,n,r){if(e.messages.length===0)return;let i=io(e.messages);e.title=i,await t.save(e.sessionId,{messages:e.messages,title:i,gitRoot:e.gitRoot??"",runtimeInfo:e.runtimeInfo,artifactLedger:e.artifactLedger,...r?{lineage:r}:{},...qo(e),...n!==void 0?{tag:n}:{}}),mu(e)}o(mq,"saveClassicSession");function hq(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:(e.thinking===!0||t.thinking===!0,"auto")}o(hq,"resolveInitialReasoningMode");var TT={current:null};async function gq(e){let t,n,r=!1,i={onStopControl:o(A=>{t=A},"onStopControl"),onStopState:o((A,F)=>{A==="rejected"?process.stderr.write(`
|
|
239
239
|
[Stop rejected] ${F??""}
|
|
240
240
|
`):process.stdout.write(`
|
|
241
241
|
[Stop ${A}] ${F??""}
|
|
242
|
-
`)},"onStopState")},{beforeToolExecute:s,...a}=
|
|
243
|
-
${ne}`));for(let Se of Z)console.log(de.dim(Se));console.log()}),"guardSessionTransition"),Ce=await Nm(h??void 0),{resolveProvider:X}=await import("./dist-
|
|
242
|
+
`)},"onStopState")},{beforeToolExecute:s,...a}=fC(!1);e={...e,events:{...a,...e.events??{}}};let c=await Hi({cwd:process.cwd()}),l=c.workspaceRoot??await ps()??void 0,u=e.storage??new CT,d=e.sessionCommands!==void 0,p=await dq(e.session,u,l,e.sessionCommands),m=p?p.runtimeInfo??c:c,h=m.workspaceRoot??l;p&&(e={...e,session:{...e.session??{},id:p.id,tag:p.client?.session.tag??p.data?.tag}});let g=mm({meta:{cwd:process.cwd(),startedAt:Date.now()}}),S=rS(),T=yd({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,configuredProvider:S.provider,defaultProvider:cm}),x=wd({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,explicitModel:e.model,configuredProvider:S.provider,configuredModel:S.model}),I=hq(e,S),v=Sd({explicitEffort:e.effort,environmentEffort:process.env.KODAX_EFFORT,configuredEffort:S.effort}),k=$m(e,S,process.env.KODAX_EFFORT),_="ama",H=I!=="off",$=pd(S.permissionMode,"accept-edits")??"accept-edits",P=Em(),z=S.theme;z&&ER(z);let J=Gm(),L={provider:T,model:x,effort:v,effortOverride:k,planModeEffort:S.planModeEffort,thinking:H,reasoningMode:I,agentMode:_,workMode:e.workMode,permissionMode:$,repoIntelligenceMode:P.mode,repoIntelligenceTrace:P.trace,fallbackProviders:S.fallbackProviders},W=$,N=ms(),q=o(A=>Ia({provider:A?.provider??L.provider,model:A?.model??L.model,effort:L.effort,effortOverride:L.effortOverride,permissionMode:A?.permissionMode??L.permissionMode,planModeEffort:L.planModeEffort,thinking:L.thinking,reasoningMode:L.reasoningMode}),"resolveCurrentRuntimeEffort"),B=0,ae="",ee=!1,ie=500,C=await Tf({sessionId:p?.id??e.session?.id,gitRoot:h,runtimeInfo:m,existingMessages:p?.data?.messages,existingUiHistory:p?.data?.uiHistory,existingLineage:p?.data?.lineage,existingArtifactLedger:p?.data?.artifactLedger,existingExtensionState:p?.data?.extensionState,existingExtensionRecords:p?.data?.extensionRecords});C.title=p?.client?.session.title??p?.data?.title??"",p===null&&e.session?.id===void 0&&e.sessionCommands&&await e.sessionCommands.create({sessionId:C.sessionId,title:C.title,gitRoot:C.gitRoot,projectPath:C.runtimeInfo?.executionCwd??C.gitRoot??process.cwd(),surface:"repl"});let Te=o((A=L,F=[])=>e.clientPlane?.updateSettings?.(C.sessionId,A===L?cr(A,e.maxIter):ou(cr(L,e.maxIter),cr(A,e.maxIter),F)),"syncClientSettings");if(e.sessionCommands?.read){e.initialClientSettings&&Object.keys(e.initialClientSettings).length&&await e.clientPlane?.updateSettings?.(C.sessionId,e.initialClientSettings);let A=await e.sessionCommands.getSettings(C.sessionId);L=jo(L,{settings:A}),W=L.permissionMode}else await Te();C.skillDynamicContext=e.skillDynamicContext,g?.writer.update({sessionId:C.sessionId});let Fe=o(A=>Uo(L,A,(F,ne,Z)=>{console.log((F==="block"?de.red:de.yellow)(`
|
|
243
|
+
${ne}`));for(let Se of Z)console.log(de.dim(Se));console.log()}),"guardSessionTransition"),Ce=await Nm(h??void 0),{resolveProvider:X}=await import("./dist-5J53DGAO.js"),re=X(L.provider),je=Ce.contextWindow??re.getEffectiveContextWindow?.(L.model)??re.getContextWindow?.()??2e5,{loadAgentsFiles:Tt}=await import("./dist-5J53DGAO.js"),vt=o(async()=>Tt({cwd:process.cwd(),projectRoot:C.gitRoot??void 0}),"reloadAgentsFiles"),De=await vt();if(e.onBeforeRender?.(),p){let A=p.kind==="continue"?"Continuing session":"Session loaded";process.stdout.write(`${de.green(`[${A}: ${p.id}]`)}
|
|
244
244
|
`)}if(c$(L,L.permissionMode,{contextWindow:je,triggerPercent:Ce.triggerPercent,triggerTokens:Ce.triggerTokens,enabled:Ce.enabled},De),a$(m),e.learning)try{let A=Dm(await e.learning.getSnapshot());A&&console.log(de.yellow(`
|
|
245
245
|
${A}
|
|
246
|
-
`))}catch(A){Ge({source:"repl:learning",level:"warn",message:"Failed to recover the Learning Center startup summary.",detail:A instanceof Error?A.message:String(A)})}let Ee=bR(()=>C.gitRoot??process.cwd(),e.listHostCommands,e.catalog?{catalog:e.catalog,selection:o(()=>L,"selection")}:void 0),ce=eR(process.stdout),oe=l$.createInterface({input:process.stdin,output:ce.output,terminal:process.stdout.isTTY??!0,historySize:100,completer:o((A,F)=>{Ee(A).then(ne=>{F(null,ne)}).catch(()=>{F(null,[[],A])})},"completer")}),Me=
|
|
247
|
-
`),we=!1),console.log(ne==="thinking"||ne==="info"?de.dim(Z):ne==="tool"?de.cyan(Z):ne==="error"?de.red(Z):Z)},"planeDisplayWrite"),Xt=o((A,F=0,ne=
|
|
246
|
+
`))}catch(A){Ge({source:"repl:learning",level:"warn",message:"Failed to recover the Learning Center startup summary.",detail:A instanceof Error?A.message:String(A)})}let Ee=bR(()=>C.gitRoot??process.cwd(),e.listHostCommands,e.catalog?{catalog:e.catalog,selection:o(()=>L,"selection")}:void 0),ce=eR(process.stdout),oe=l$.createInterface({input:process.stdin,output:ce.output,terminal:process.stdout.isTTY??!0,historySize:100,completer:o((A,F)=>{Ee(A).then(ne=>{F(null,ne)}).catch(()=>{F(null,[[],A])})},"completer")}),Me=Id(),Ae=Ed(Me);!e.sessionCommands?.read&&e.clientPlane?.updateSettings?await e.clientPlane.updateSettings(C.sessionId,{autoModeClassifierModel:Ae.classifierModel??null}):e.sessionCommands?.read||await e.runtimeAutoModeControl?.syncSettings?.(C.sessionId,xo(W),Ae);let ze=await vf({projectRoot:h??process.cwd(),executionCwd:m.executionCwd??h??process.cwd(),getCurrentProviderName:o(()=>L.provider,"getCurrentProviderName"),getCurrentModel:o(()=>L.model,"getCurrentModel"),getCurrentPermissionMode:o(()=>W,"getCurrentPermissionMode"),autoModeSettings:Me,log:o((A,F)=>{console.log(A==="warn"?de.yellow(F):de.dim(F))},"log"),extraCollectors:[xd]}),pt,Vt=!1,Ze,Lt,mt,rt,tt,oo,Er,kt=!1,ht=0,li,zr={pending:Promise.resolve()},Ln,we=!1,Ye=o(A=>{let F=A.indexOf(":"),ne=F>=0?A.slice(0,F):"",Z=F>=0?A.slice(F+1):A;if(ne==="assistant"){process.stdout.write(Z),we=!0;return}we&&(process.stdout.write(`
|
|
247
|
+
`),we=!1),console.log(ne==="thinking"||ne==="info"?de.dim(Z):ne==="tool"?de.cyan(Z):ne==="error"?de.red(Z):Z)},"planeDisplayWrite"),Xt=o((A,F=0,ne=ht)=>{let Z=e.clientPlane;if(Z===void 0||Vt||Ze===A&&(pt!==void 0||tt===A)||F>0&&(Ze!==A||ne!==ht))return;if(Er!==void 0&&clearTimeout(Er),pt?.(),pt=void 0,Ze!==A){mt?.close(),mt=void 0,Lt=void 0;let le=++ht;zr={pending:Promise.resolve()},li=Ny(Je=>{!Vt&&le===ht&&C.sessionId===A&&Ye(Je)},(Je,$e)=>Z.readItem(A,Je,$e))}kt=!1,Ze=A,rt=void 0,tt=A;let Se=ht;oo=ST(Z,A,{differ:li,displayQueue:zr,isCurrent:o(()=>!Vt&&Se===ht&&C.sessionId===A,"isCurrent"),onView:o(le=>{if(Se!==ht||le.session.id!==C.sessionId)return;kt=!0,rt=le;let Je=Cr(le);if(Lt!==Je){let $e=le.runs.find(ke=>ke.runId===Lt);$e&&mt?.settled({phase:$e.phase},$e.runId),mt?.close(),Lt=Je,mt=Je?Pl({plane:Z,sessionId:A,onStopControl:o(ke=>{n=ke},"onStopControl"),onStopState:o((ke,pn)=>{!Vt&&Se===ht&&C.sessionId===A&&(i.onStopState?.(ke,pn),r&&rt?.interactions.length===0&&(ke==="confirmed"||ke==="rejected")&&oe.prompt(!0))},"onStopState")},()=>Lt):void 0}L=jo(L,le),W=L.permissionMode},"onView"),write:Ye,dialogs:xT({rl:oe,permissionMode:o(()=>W,"permissionMode")}),onNotice:o(le=>console.log(de.yellow(`
|
|
248
248
|
${le}
|
|
249
|
-
`)),"onNotice"),onStatus:o(le=>{Vt||Se!==
|
|
249
|
+
`)),"onNotice"),onStatus:o(le=>{Vt||Se!==ht||Ze!==A||le.state==="closed"&&(kt=!1,pt=void 0)},"onStatus")}).then(le=>{if(Se===ht&&tt===A&&(tt=void 0),Vt||Se!==ht||Ze!==A||!kt){le();return}pt=le}).catch(le=>{if(Se===ht&&tt===A&&(tt=void 0),Vt||Se!==ht||Ze!==A)return;kt=!1,F===0&&Ye(`error:Host observation unavailable: ${le instanceof Error?le.message:String(le)}`);let Je=F+1;if(Je>5){Ge({source:"classic.plane",level:"error",message:"Session view display could not attach; output and Host questions will not be shown.",detail:le});return}Er=setTimeout(()=>Xt(A,Je,Se),Math.min(1e3*Je,5e3))})},"attachPlaneDisplayFor"),ut=o(async()=>{if(!(!e.clientPlane||kt)&&(Xt(C.sessionId),await oo,!kt)){if(Ln){ae=Ln;let A=oe.history;A[0]!==Ln&&A.unshift(Ln)}throw Ye(`error:${tp}`),new Vo}},"ensurePlaneObservation"),bt=o(A=>{C.sessionId=A,Xt(A)},"setContextSessionId");Xt(C.sessionId);let Jn=o(async A=>{if(!e.sessionCommands?.read){let ne=await u.load(A);if(!ne)throw new Error(`Session not found: ${A}`);C.messages=ne.messages,C.uiHistory=ne.uiHistory,C.lineage=ne.lineage,C.title=ne.title,C.artifactLedger=ne.artifactLedger,C.contextTokenSnapshot=void 0,cp(C,ge,Xn(ne)??C.runtimeInfo),ge.session={...ge.session,id:A,tag:ne.tag},bt(A),g?.writer.update({sessionId:A});return}let F=await iu(e.sessionCommands,A);return cy(C,F.session),cp(C,ge,C.runtimeInfo),L=jo(L,{settings:F.settings}),W=L.permissionMode,ge.session={...ge.session,id:A,tag:F.session.tag},bt(A),g?.writer.update({sessionId:A}),F.session},"refreshHostSession"),Gt,qr=o(async(A,F,ne)=>{let Z=e.clientPlane;if(Z===void 0)throw new Error("runPlaneRoundWithStop requires a bound client plane.");await ut();let Se=new AbortController;Gt=Se;try{if(ne){let le=await Z.executeTool({sessionId:C.sessionId,inputId:bs(),...ne,rawInput:A});return await Ll({plane:Z,sessionId:C.sessionId,runId:le.runId,abortSignal:Se.signal,...i,getDisplayedRunId:o(()=>Lt,"getDisplayedRunId")})}return await pf({...i,plane:Z,sessionId:C.sessionId,prompt:A,abortSignal:Se.signal,getDisplayedRunId:o(()=>Lt,"getDisplayedRunId"),...F!==void 0&&F.length>0?{inputArtifacts:F}:{}})}finally{Gt===Se&&(Gt=void 0)}},"runPlaneRoundWithStop"),Yo=o(async(A,F,ne,Z)=>e.clientPlane!==void 0?qr(A,Z,F.toolInvocation):wq(F,C,A,ne,Z),"runAgentRoundWithPlane"),Gs=Pm({getProvider:o(()=>X(L.provider),"getProvider"),getModel:o(()=>L.model??"","getModel")}),Uy=`
|
|
250
250
|
Keyboard Shortcuts:
|
|
251
251
|
Tab Auto-complete (@paths, /commands)
|
|
252
252
|
Esc+Esc Edit last message
|
|
@@ -254,13 +254,13 @@ Keyboard Shortcuts:
|
|
|
254
254
|
Ctrl+E Open external editor
|
|
255
255
|
Ctrl+R Search command history (built-in)
|
|
256
256
|
Ctrl+C Cancel current input
|
|
257
|
-
Ctrl+D Exit REPL`,
|
|
258
|
-
[Opening editor with last message...]`)),oe.pause()),B=ne}});let Jo=await fq(h),
|
|
257
|
+
Ctrl+D Exit REPL`,hu=o(()=>{console.log(de.dim(Uy))},"_printKeyboardShortcuts");process.stdin.isTTY&&process.stdin.on("keypress",(A,F)=>{if(F&&F.name==="escape"){let ne=Date.now();ne-B<ie&&ae&&(ee=!0,console.log(de.dim(`
|
|
258
|
+
[Opening editor with last message...]`)),oe.pause()),B=ne}});let Jo=await fq(h),cc=!0,ge={...e,provider:T,model:x,effort:q().runtimeEffort,agentMode:_,reasoningMode:I,thinking:H,workflowRunsBaseDir:cs("workflow-runs",Br(h??m.executionCwd??process.cwd()).key),context:{...e.context,gitRoot:h,executionCwd:m.executionCwd,repoIntelligenceMode:P.mode,repoIntelligenceTrace:P.trace,skillsPrompt:Jo},session:{...e.session,id:C.sessionId,storage:u,persistedByHost:!0},events:{...s$(oe),...e.events}},gu=o(()=>{if(e.clientPlane){ge.effort=L.effort;return}let A=q();ge.effort=A.runtimeEffort},"refreshCurrentEffort");TT.current=null;let Fn=o(async A=>{if(!e.sessionCommands&&C.messages.length===0)return"empty";if(!Fe("Recovering into a new session"))return"blocked";if(e.sessionCommands){let Qn=await e.sessionCommands.recover({sessionId:C.sessionId,...A!==void 0&&A.length>0?{reason:A}:{}});if(Qn===void 0)return"failed";await Jn(Qn),process.stdout.write(`
|
|
259
259
|
[Recovered into session: ${Qn}]
|
|
260
|
-
`);let Xr=
|
|
261
|
-
[Recover failed] ${sn}`)),"failed"}return"recovered"}let F=C.sessionId,ne=C.lineage??it(C.messages);C.lineage=ne;let Z=C.artifactLedger?structuredClone(C.artifactLedger):void 0,Se=C.title||
|
|
262
|
-
[Recovered session: ${Je}]`)),console.log(de.dim(` Source session saved: ${F}`)),console.log(de.dim(" Raw provider history was not replayed."));let pn;try{pn=await Yo(
|
|
263
|
-
[Recover failed] ${Xr}`)),"failed"}C.messages=pn.messages,C.contextTokenSnapshot=pn.contextTokenSnapshot,lp(C,pn),C.artifactLedger=
|
|
260
|
+
`);let Xr=Vc(A);if(Xr.length>0)try{await Yo(Xr,ge,C.messages)}catch(ur){let sn=ur instanceof Error?ur.message:String(ur);return console.log(de.red(`
|
|
261
|
+
[Recover failed] ${sn}`)),"failed"}return"recovered"}let F=C.sessionId,ne=C.lineage??it(C.messages);C.lineage=ne;let Z=C.artifactLedger?structuredClone(C.artifactLedger):void 0,Se=C.title||io(C.messages),le=bm({sourceSessionId:F,messages:C.messages,lineage:ne,artifactLedger:Z,reason:"provider session recovery"});await u.save(F,{messages:C.messages,title:Se,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,lineage:ne,artifactLedger:Z,uiHistory:C.uiHistory,...qo(C),...ge.session?.tag!==void 0?{tag:ge.session.tag}:{}});let Je=Ua(),$e=it(le.messages);await u.save(Je,{messages:le.messages,title:le.title,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,lineage:$e,artifactLedger:Z,...ge.session?.tag!==void 0?{tag:ge.session.tag}:{}});let ke=new Date().toISOString();bt(Je),C.messages=le.messages,C.title=le.title,C.contextTokenSnapshot=void 0,C.lineage=$e,C.artifactLedger=Z,C.extensionState=void 0,C.extensionRecords=void 0,C.extensionStateDirty=!1,C.extensionRecordsDirty=!1,C.createdAt=ke,C.lastAccessed=ke,ge.session={...ge.session,id:Je},g?.writer.update({sessionId:Je}),console.log(de.green(`
|
|
262
|
+
[Recovered session: ${Je}]`)),console.log(de.dim(` Source session saved: ${F}`)),console.log(de.dim(" Raw provider history was not replayed."));let pn;try{pn=await Yo(Vc(A),ge,C.messages)}catch(Qn){let Xr=Qn instanceof Error?Qn.message:String(Qn);return console.log(de.red(`
|
|
263
|
+
[Recover failed] ${Xr}`)),"failed"}C.messages=pn.messages,C.contextTokenSnapshot=pn.contextTokenSnapshot,lp(C,pn),C.artifactLedger=ma(C.artifactLedger??[],pn.artifactLedger??wm(pn.messages)),C.lineage=it(C.messages,C.lineage);let Mr=io(C.messages);return C.title=Mr,await u.save(C.sessionId,{messages:C.messages,title:Mr,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,lineage:C.lineage,artifactLedger:C.artifactLedger,...qo(C),...ge.session?.tag!==void 0?{tag:ge.session.tag}:{}}),mu(C),"recovered"},"recoverCurrentSession"),Qt={getRuntimeStatus:e.getRuntimeStatus,getSessionStatus:e.sessionCommands?.read?async()=>({messageCount:(await e.sessionCommands.read(C.sessionId)).msgCount,tokens:rt?.session.id===C.sessionId?rt.parentContextTokens:void 0}):void 0,validateSetupA2AConfig:e.validateSetupA2AConfig,prepareSetupSandbox:e.prepareSetupSandbox,inspectSandbox:e.inspectSandbox,learning:e.learning,getLearningSummary:e.learning?()=>e.learning.getSnapshot():void 0,workflows:e.workflows?{...e.workflows,start:no(ut,e.workflows.start.bind(e.workflows)),resume:no(ut,e.workflows.resume.bind(e.workflows))}:void 0,commandClient:e.commandClient?{...e.commandClient,execute:o(async A=>{if(!Sy(A.args))try{await ut()}catch(F){if(!(F instanceof Vo))throw F;return{kind:"completed",success:!1,message:F.message}}return e.commandClient.execute(A)},"execute")}:void 0,listHostCommands:e.listHostCommands,inspectExtensions:e.inspectExtensions,mcp:e.mcp,config:e.config,catalog:e.catalog,providerCapabilities:e.providerCapabilities,startReview:e.startReview?no(ut,A=>e.startReview(A)):void 0,reviewAgentsLean:e.reviewAgentsLean?no(ut,A=>e.reviewAgentsLean(A)):void 0,goal:e.goal,compactSession:e.compactSession,memory:e.memory,refreshSessionLineage:e.sessionCommands?.read?void 0:async()=>await u.getLineage?.(C.sessionId)??void 0,exit:o(()=>{cc=!1,g?.shutdown(),oe.close()},"exit"),saveSession:o(async A=>{d||await mq(C,u,ge.session?.tag,A)},"saveSession"),startNewSession:o(async()=>{let A=Ua();e.sessionCommands&&(await e.sessionCommands.create({sessionId:A,title:"REPL Session",gitRoot:c.workspaceRoot??void 0,projectPath:c.executionCwd??c.workspaceRoot??process.cwd(),surface:"repl"}),await e.clientPlane?.updateSettings?.(A,{...cr(L,e.maxIter),autoModeClassifierModel:Ae.classifierModel??null})),bt(A),C.title="",C.contextTokenSnapshot=void 0,C.artifactLedger=void 0,C.extensionState=void 0,C.extensionRecords=void 0,C.extensionStateDirty=!1,C.extensionRecordsDirty=!1,C.createdAt=new Date().toISOString(),C.lastAccessed=C.createdAt,cp(C,ge,c),ge.session={...ge.session,id:C.sessionId},g?.writer.update({sessionId:C.sessionId})},"startNewSession"),loadSession:o(async A=>{if(e.sessionCommands?.read){if(!Fe("Resuming a saved session"))return"blocked";let ne=C.runtimeInfo,Z=await Jn(A),Se=C.runtimeInfo,le=[`
|
|
264
264
|
[Loaded session: ${A}]`,` Messages: ${Z?.msgCount??"unavailable"}`];return Se?.workspaceRoot&&(ne?.workspaceRoot&&ne.workspaceRoot!==Se.workspaceRoot&&le.push("[Session workspace changed]",` Previous workspace: ${Dr(ne)}`),le.push(` Workspace: ${Dr(Se)}`)),process.stdout.write(le.join(`
|
|
265
265
|
`)+`
|
|
266
266
|
`),"loaded"}let F=await u.load(A);if(F){if(!Fe("Resuming a saved session"))return"blocked";let ne=await Hi({cwd:process.cwd()}),Z=Xn(F),Se=Z??ne;return Z?.workspaceRoot&&!Bm(Z)?(console.log(de.yellow(`
|
|
@@ -276,12 +276,12 @@ Recent Sessions:
|
|
|
276
276
|
[No conversation history]`));return}console.log(de.bold(`
|
|
277
277
|
Conversation History:
|
|
278
278
|
`));let A=C.messages.slice(-20);for(let F=0;F<A.length;F++){let ne=A[F],Z=de.cyan(ne.role.padEnd(10)),Se=typeof ne.content=="string"?ne.content:"[Complex content]",le=Se.slice(0,60).replace(/\n/g," "),Je=Se.length>60?"...":"";console.log(` ${(F+1).toString().padStart(2)}. ${Z} ${le}${Je}`)}console.log()},"printHistory"),switchProvider:o(async(A,F)=>{let ne=e.clientPlane?{runtimeEffort:L.effort,diagnostic:void 0}:q({provider:A,model:F});await Te({...L,provider:A,model:F},["provider","model"]),L.provider=A,L.model=F,ge.provider=A,ge.model=F,ge.effort=ne.runtimeEffort,ne.diagnostic&&console.log(de.yellow(`
|
|
279
|
-
[${ne.diagnostic}]`))},"switchProvider"),setEffort:o(async A=>{await Te({...L,effort:A,effortOverride:A!==void 0},["effort"]),L.effort=A,L.effortOverride=A!==void 0,
|
|
279
|
+
[${ne.diagnostic}]`))},"switchProvider"),setEffort:o(async A=>{await Te({...L,effort:A,effortOverride:A!==void 0},["effort"]),L.effort=A,L.effortOverride=A!==void 0,gu()},"setEffort"),setReasoningMode:o(async A=>{let F=A!=="off";await Te({...L,reasoningMode:A,thinking:F},["reasoningMode","thinking"]),L.reasoningMode=A,L.thinking=F,ge.reasoningMode=A,ge.thinking=F},"setReasoningMode"),setAgentMode:o(async A=>{await Te({...L,agentMode:A},["agentMode"]),L.agentMode=A,ge.agentMode=A},"setAgentMode"),setWorkMode:o(async A=>{if(!e.clientPlane?.updateSettings)throw new Error("Work mode switching requires a Session settings host.");await Te({...L,workMode:A},["workMode"]),L.workMode=A,ge.workMode=A},"setWorkMode"),setPermissionMode:o(async A=>{let F=xo(A);e.clientPlane?.updateSettings?await Te({...L,permissionMode:F},["permissionMode"]):await e.runtimeAutoModeControl?.syncSettings?.(C.sessionId,F,Ae),L.permissionMode=F,W=F,gu()},"setPermissionMode"),setRepoIntelligenceRuntime:o(async A=>{if(e.clientPlane){let F={...L,...A.mode!==void 0?{repoIntelligenceMode:A.mode}:{},...A.trace!==void 0?{repoIntelligenceTrace:A.trace}:{}};await Te(F,[...A.mode!==void 0?["repoIntelligenceMode"]:[],...A.trace!==void 0?["repoIntelligenceTrace"]:[]]),Object.assign(L,F);return}A.mode!==void 0&&(L.repoIntelligenceMode=A.mode,process.env.KODAX_REPO_INTELLIGENCE=A.mode,ge.context={...ge.context,repoIntelligenceMode:A.mode}),A.trace!==void 0&&(L.repoIntelligenceTrace=A.trace,A.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,ge.context={...ge.context,repoIntelligenceTrace:A.trace})},"setRepoIntelligenceRuntime"),deleteSession:o(async A=>{if(e.sessionCommands){await e.sessionCommands.delete(A);return}await u.delete?.(A)},"deleteSession"),deleteAllSessions:o(async()=>{if(e.sessionCommands){await e.sessionCommands.deleteAll({...C.gitRoot!==void 0?{gitRoot:C.gitRoot}:{}});return}await u.deleteAll?.(C.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:o(async()=>{if(e.sessionCommands?.readLineage){process.stdout.write(`
|
|
280
280
|
Session Tree:
|
|
281
281
|
`+py(await e.sessionCommands.readLineage(C.sessionId)).join(`
|
|
282
282
|
`)+`
|
|
283
283
|
`);return}let A=await u.getLineage?.(C.sessionId);if(!A){console.log(de.dim(`
|
|
284
|
-
[No session tree available for this session]`));return}let F=my(
|
|
284
|
+
[No session tree available for this session]`));return}let F=my(Im(A));console.log(de.bold(`
|
|
285
285
|
Session Tree:
|
|
286
286
|
`));for(let ne of F)console.log(` ${ne}`);console.log()},"printSessionTree"),switchSessionBranch:o(async A=>{if(!Fe("Switching session branches"))return"blocked";if(e.sessionCommands)return await e.sessionCommands.setActiveEntry({sessionId:C.sessionId,selector:A,summarizeCurrentBranch:!0})?(await Jn(C.sessionId),process.stdout.write(`
|
|
287
287
|
[Switched to tree entry: ${A}]
|
|
@@ -294,18 +294,18 @@ Session Tree:
|
|
|
294
294
|
[Forked session: ${F.sessionId}]`)),console.log(de.dim(` Messages: ${F.data.messages.length}`)),"forked"):"failed"},"forkSession"),recoverSession:Fn,rewindSession:o(async A=>{if(!Fe("Rewinding session"))return"blocked";if(e.sessionCommands)return await e.sessionCommands.rewind({sessionId:C.sessionId,expectedHead:e.sessionCommands.readLineage?(await e.sessionCommands.readLineage(C.sessionId))?.activeEntryId??null:C.lineage?.activeEntryId??null,...A!==void 0?{selector:A}:{}})?(await Jn(C.sessionId),process.stdout.write(`
|
|
295
295
|
[Rewound session]
|
|
296
296
|
`),"rewound"):"failed";let F=await u.rewind?.(C.sessionId,A);return F?(C.messages=F.messages,C.title=F.title,C.contextTokenSnapshot=void 0,C.lastAccessed=new Date().toISOString(),console.log(de.green(`
|
|
297
|
-
[Rewound session${A?` to ${A}`:" to previous turn"}]`)),console.log(de.dim(` Messages: ${F.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:o(()=>e.clientPlane?rt?.session.id===C.sessionId?rt.activity?.costReport??null:null:
|
|
298
|
-
[memory] ${Z.summaries.slice(0,3).join("; ")}`)),ge.events?.onMemoryNotice?.(Z)},"onMemoryNotice"),exitPlanMode:o(async Z=>W!=="plan"?"not-in-plan-mode":(await
|
|
297
|
+
[Rewound session${A?` to ${A}`:" to previous turn"}]`)),console.log(de.dim(` Messages: ${F.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:o(()=>e.clientPlane?rt?.session.id===C.sessionId?rt.activity?.costReport??null:null:TT.current?.()??null,"getCostReport"),getAutoModeStats:o(async()=>{if(So(W))return e.runtimeAutoModeControl?e.runtimeAutoModeControl.getStats(C.sessionId):ze.getGuardrail().getStats()},"getAutoModeStats"),createKodaXOptions:o(()=>{let A=o((Z,Se)=>W!=="plan"?null:ds(Z,Se,h??process.cwd()),"planModeBlockCheck"),F=fy({getPermissionMode:o(()=>W,"getPermissionMode"),getAutoGuardrail:ze.getGuardrail,shellSandbox:ge.context?.shellSandbox,trustedTextMutationHost:ge.context?.trustedTextMutationHost,userConfigDir:ge.context?.configHome,projectRoot:h??process.cwd(),execPolicy:e.execPolicy,resolvePlanHostExecution:o(Z=>ya(Z.command,h??process.cwd(),m.executionCwd??h??process.cwd())?!0:"[Blocked] Plan mode cannot escalate this command to unsandboxed host execution.","resolvePlanHostExecution"),requestUserPermission:o(async(Z,Se)=>{let le={...Z.toolInput,command:Z.command};if(Se==="mode_boundary"&&W==="accept-edits"&&await ga("bash",le,N,Gs))return!0;let Je=await Ca(oe,"bash",le,{permissionMode:W});return Je.confirmed&&Je.always&&Se==="mode_boundary"&&W==="accept-edits"&&(Qc("bash",le,!1),N=ms()),Je.confirmed},"requestUserPermission")}),ne=F!==void 0&&So(W)?[F.autoGuardrail]:void 0;return{...ge,provider:L.provider,model:L.model,effort:q().runtimeEffort,thinking:L.thinking,reasoningMode:L.reasoningMode,guardrails:ne,context:{...ge.context,planModeBlockCheck:A,...F===void 0?{}:{shellSandbox:F.shellSandbox,resolveShellPermissionMode:F.resolveShellPermissionMode,authorizeShellHostExecution:F.authorizeShellHostExecution,...F.trustedTextMutationHost===void 0?{}:{trustedTextMutationHost:F.trustedTextMutationHost}}},events:{...ge.events,onMemoryOutcomeDigest:o((Z,Se)=>{if(Z.sessionId!==C.sessionId){ge.events?.onMemoryOutcomeDigest?.(Z,Se);return}C.lineage=Cm(C.lineage??it(C.messages),Z,Se?.jobId),ge.events?.onMemoryOutcomeDigest?.(Z,Se)},"onMemoryOutcomeDigest"),onMemoryReviewReceipt:o(Z=>{if(Z.sessionId!==void 0&&Z.sessionId!==C.sessionId){ge.events?.onMemoryReviewReceipt?.(Z);return}C.lineage=Tm(C.lineage??it(C.messages),Z),ge.events?.onMemoryReviewReceipt?.(Z)},"onMemoryReviewReceipt"),onMemoryNotice:o(Z=>{if(Z.sessionId!==void 0&&Z.sessionId!==C.sessionId){ge.events?.onMemoryNotice?.(Z);return}let Se=C.lineage??it(C.messages),le=vm(Se,{...Z,createdAt:new Date().toISOString()});C.lineage=le,le!==Se&&console.log(de.dim(`
|
|
298
|
+
[memory] ${Z.summaries.slice(0,3).join("; ")}`)),ge.events?.onMemoryNotice?.(Z)},"onMemoryNotice"),exitPlanMode:o(async Z=>W!=="plan"?"not-in-plan-mode":(await Ca(oe,"exit_plan_mode",{plan:Z},{isProtectedPath:!1,permissionMode:W})).confirmed?(L.permissionMode="accept-edits",W="accept-edits",gu(),!0):!1,"exitPlanMode"),beforeToolExecute:o(async(Z,Se)=>{let le=W,Je=fd(le);if(le==="plan"){let $e=ds(Z,Se,h??process.cwd());if($e)return console.log(de.yellow($e)),`${$e} Do not modify files while planning. Finish the plan first, then call exit_plan_mode with the finalized plan \u2014 the user will review and approve or reject.`}if(Z==="bash")return!0;if(Z==="bash"){let $e=Se.command??"";if(ya($e,h??process.cwd(),m.executionCwd??h??process.cwd()))return!0}if(le==="full-access"||So(le))return!0;if(h&&ha.has(Z)){let $e=Se.path;if($e&&ad($e,h))return(await Ca(oe,Z,Se,{isProtectedPath:!0,permissionMode:le})).confirmed?!0:(console.log(de.dim("[Cancelled] Operation on protected path requires confirmation")),!1)}if(Je.has(Z)){if(le==="accept-edits"&&Z==="bash"&&await ga(Z,Se,N,Gs))return!0;let $e=await Ca(oe,Z,Se,{isOutsideProject:Se._outsideProject===!0,reason:Se._reason,permissionMode:le});if(!$e.confirmed)return console.log(de.dim("[Cancelled] Operation cancelled by user")),!1;$e.always&&le==="accept-edits"&&(Qc(Z,Se,!1),N=ms())}return!0},"beforeToolExecute")}}},"createKodaXOptions"),reloadAgentsFiles:o(async()=>(De=await vt(),De),"reloadAgentsFiles"),readline:oe,ui:new Dy(oe,A=>ce.read(oe,A))},Ks=o(async(A,F)=>{let ne=new AbortController,Z={...Qt.createKodaXOptions?.()??ge,toolInvocation:A,abortSignal:ne.signal},Se={request:o(async()=>(ne.abort(new Error("Stopped by user")),process.stdout.write(`
|
|
299
299
|
[Stop accepted]
|
|
300
300
|
`),{state:"unknown"}),"request")};e.clientPlane||(t=Se);try{let le=await Yo(F,Z,C.messages);return C.messages=le.messages,C.lineage=it(le.messages,C.lineage),lp(C,le),e.clientPlane||await Qt.saveSession?.(),ne.signal.aborted&&process.stdout.write(`
|
|
301
301
|
[Stop confirmed]
|
|
302
|
-
`),le}finally{t===Se&&(t=void 0)}},"executeOwnedTool");Qt.executeToolInvocation=
|
|
303
|
-
${
|
|
302
|
+
`),le}finally{t===Se&&(t=void 0)}},"executeOwnedTool");Qt.executeToolInvocation=Ks;let at=o(A=>Ks({name:"bash",input:{command:A}},`!${A}`),"executeManualShell"),G=o(async A=>{if(C.uiHistory=[...C.uiHistory??[],A],d)return;let F=C.title||io(C.messages);C.title=F,await u.save(C.sessionId,{messages:C.messages,title:F,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,lineage:C.lineage,artifactLedger:C.artifactLedger,uiHistory:C.uiHistory,...qo(C),...ge.session?.tag!==void 0?{tag:ge.session.tag}:{}})},"appendPersistedUiHistoryItem"),ki=o(async(A,F)=>{if(!Wm({error:A,messageCount:C.messages.length}))return!1;console.log(de.dim(`
|
|
303
|
+
${bd}`));try{await G({type:"info",text:bd})}catch(le){let Je=le instanceof Error?le.message:String(le);console.log(de.dim(`Could not persist recovery hint: ${Je}`))}let ne=lR(Qt);if(!ne)return console.log(),!1;if(!await ne(Fm))return!1;let Se;try{Se=await Qt.recoverSession?.(F)}catch(le){let Je=le instanceof Error?le.message:String(le);return console.log(de.red(`
|
|
304
304
|
[Recover failed] ${Je}`)),!1}return Se==="failed"&&console.log(de.dim(`Recovery session was created, but the continuation request still failed.
|
|
305
305
|
`)),Se==="recovered"},"maybeRecoverAfterProviderError");oe.on("SIGINT",async()=>{let A=t??(C.sessionId===Ze?n:void 0);if(A){try{await A.request()}catch(F){Ge({source:"repl:stop",level:"error",message:F instanceof Error?F.message:String(F)})}return}if(Gt!==void 0){Gt.abort(),console.log(de.dim(`
|
|
306
306
|
[Stopping the Host run...]`));return}console.log(de.dim(`
|
|
307
307
|
|
|
308
|
-
[Press /exit to quit]`)),oe.prompt()});let
|
|
308
|
+
[Press /exit to quit]`)),oe.prompt()});let yu=o(()=>{Vt=!0,mt?.close(),Er!==void 0&&clearTimeout(Er),pt?.(),g?.shutdown(),oe.close()},"cleanup");process.on("exit",yu),process.on("SIGTERM",yu);let zs=o(async(A,F)=>{if(Am({source:A.source}).action==="none")return!1;let Z=!1,Se=o($e=>{Z||(Z=!0,C.messages.push({role:"user",content:F||A.request,timestamp:new Date().toISOString()})),C.messages.push({role:"assistant",content:$e,timestamp:new Date().toISOString()});let ke=io(C.messages);C.title=ke,d||u.save(C.sessionId,{messages:C.messages,title:ke,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,artifactLedger:C.artifactLedger,...ge.session?.tag!==void 0?{tag:ge.session.tag}:{}}).catch(pn=>{let Mr=pn instanceof Error?pn.message:String(pn);console.log(de.red(`
|
|
309
309
|
[workflow] failed to save final answer: ${Mr}
|
|
310
310
|
`))})},"commitWorkflowFinal"),le={...Qt,onWorkflowRunMessage:o($e=>{if($e.type==="event")return;let ke=$e.text.trimEnd();if(ke.trim()){if($e.type==="error"){console.log(de.red(`
|
|
311
311
|
${ke}
|
|
@@ -315,19 +315,19 @@ ${ke}
|
|
|
315
315
|
${ke}
|
|
316
316
|
`),$e.final===!0&&Se(ke);return}console.log(de.dim(`
|
|
317
317
|
${ke}
|
|
318
|
-
`))}},"onWorkflowRunMessage")},Je=await Hm({sessionId:C.sessionId,request:A.request,callbacks:le,approval:L.permissionMode==="plan"?"required":"silent",presentation:"agentic",sourceLabel:A.displayName,processSource:A.processSource??"command",...A.builtin!==void 0?{builtin:A.builtin}:{}});return _m({outcome:Je})},"startWorkflowInvocation"),
|
|
318
|
+
`))}},"onWorkflowRunMessage")},Je=await Hm({sessionId:C.sessionId,request:A.request,callbacks:le,approval:L.permissionMode==="plan"?"required":"silent",presentation:"agentic",sourceLabel:A.displayName,processSource:A.processSource??"command",...A.builtin!==void 0?{builtin:A.builtin}:{}});return _m({outcome:Je})},"startWorkflowInvocation"),so=o(async(A,F)=>{if(!A||typeof A!="object")return;if(A.message&&Ye(`info:${A.message}`),A.startedRunId&&e.clientPlane){let Z=new AbortController;Gt=Z;try{await Ll({...i,plane:e.clientPlane,sessionId:C.sessionId,runId:A.startedRunId,abortSignal:Z.signal,getDisplayedRunId:o(()=>Lt,"getDisplayedRunId")})}finally{Gt===Z&&(Gt=void 0)}return}if(A.workflow){await zs(A.workflow,F);return}if(!A.invocation)return;let ne=await Hl({...ge,provider:L.provider,thinking:L.thinking,reasoningMode:L.reasoningMode},A.invocation,F,Z=>console.log(de.dim(`
|
|
319
319
|
${Z}`)),e.clientPlane!==void 0);if(ne.mode==="manual"){ne.manualOutput&&console.log(de.yellow(`
|
|
320
320
|
${ne.manualOutput}
|
|
321
321
|
`)),await ne.finalize();return}if(!ne.prompt||!ne.options){await ne.finalize();return}try{let Z=ne.mode==="fork"?[]:C.messages,Se=await Yo(ne.prompt,ne.options,Z);if(ne.mode==="fork"){let le=Kb(Se.messages);le.trim()&&(console.log(`
|
|
322
322
|
${le}
|
|
323
|
-
`),C.messages.push({role:"assistant",content:le,timestamp:new Date().toISOString()}))}else C.messages=Se.messages,C.contextTokenSnapshot=Se.contextTokenSnapshot;if(lp(C,Se),C.messages.length>0){let le=
|
|
323
|
+
`),C.messages.push({role:"assistant",content:le,timestamp:new Date().toISOString()}))}else C.messages=Se.messages,C.contextTokenSnapshot=Se.contextTokenSnapshot;if(lp(C,Se),C.messages.length>0){let le=io(C.messages);C.title=le,d||await u.save(C.sessionId,{messages:C.messages,title:le,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,...qo(C),...ge.session?.tag!==void 0?{tag:ge.session.tag}:{}}),mu(C)}await ne.finalize()}catch(Z){throw await ne.finalize(Z instanceof Error?Z:new Error(String(Z))),Z}},"handleCommandResult"),wu=o(async A=>{if(e.clientPlane)return{invocation:void 0,rejected:!1};try{return{invocation:await Cd(A,{workingDirectory:ge.context?.executionCwd??process.cwd(),projectRoot:C.gitRoot??void 0,sessionId:C.sessionId,environment:{},executeDynamicContext:C.skillDynamicContext?.execute,disableDynamicContext:C.skillDynamicContext?.disable}),rejected:!1}}catch(F){if(!(F instanceof Zc))throw F;return console.log(de.yellow(`
|
|
324
324
|
${F.message}
|
|
325
|
-
`)),{invocation:void 0,rejected:!0}}},"resolveInlineSkillInvocation");for(;
|
|
326
|
-
[Edited message ready to send]`));let ke=$e.trim();Ln=$e,Ci(C),ze.resetTurn();let pn=e.clientPlane?await
|
|
327
|
-
${sn}`));C.messages.push({role:"user",content:Xr.messageContent}),ae=ke;let ur=C.lineage?Nb({getLineage:o(()=>C.lineage,"getLineage"),setLineage:o(sn=>{C.lineage=sn},"setLineage"),saveSession:o(async()=>{d||(await u.save(C.sessionId,{messages:C.messages,title:C.title??
|
|
325
|
+
`)),{invocation:void 0,rejected:!0}}},"resolveInlineSkillInvocation");for(;cc;){if(ee&&ae){ee=!1,oe.resume();let $e=await _R(ae);if($e&&$e.trim()&&$e!==ae){console.log(de.dim(`
|
|
326
|
+
[Edited message ready to send]`));let ke=$e.trim();Ln=$e,Ci(C),ze.resetTurn();let pn=e.clientPlane?await kd(ke,C.gitRoot??void 0,e.listHostCommands):hs(ke);if(pn){let sn=await tl(pn,C,Qt,L,ke);await so(sn,ke);continue}let Mr=await vT(ke,ge.context?.executionCwd,at);if(ke.startsWith("!")&&bf(Mr))continue;let Qn=await wu(ke);if(Qn.rejected)continue;if(Qn.invocation){await so({invocation:Qn.invocation},ke);continue}let Xr=to(Mr,ge.context?.executionCwd??process.cwd());for(let sn of Xr.warnings)console.log(de.yellow(`
|
|
327
|
+
${sn}`));C.messages.push({role:"user",content:Xr.messageContent}),ae=ke;let ur=C.lineage?Nb({getLineage:o(()=>C.lineage,"getLineage"),setLineage:o(sn=>{C.lineage=sn},"setLineage"),saveSession:o(async()=>{d||(await u.save(C.sessionId,{messages:C.messages,title:C.title??io(C.messages),gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,artifactLedger:C.artifactLedger,lineage:C.lineage,...qo(C),...ge.session?.tag!==void 0?{tag:ge.session.tag}:{}}),mu(C))},"saveSession"),getLatestUsage:o(()=>{},"getLatestUsage"),getTurnStartMs:o(()=>{},"getTurnStartMs"),getPermissionMode:o(()=>W,"getPermissionMode"),hasPendingUserInput:o(()=>Nr().has({agentId:lm(C.sessionId,"/root"),maxPriority:"user",mode:"prompt"}),"hasPendingUserInput")}):void 0;try{let sn=e.clientPlane?await qr(Mr):await cd({...ge,provider:L.provider,thinking:L.thinking,reasoningMode:L.reasoningMode,session:{...ge.session,initialMessages:C.lineage?Yt(C.lineage,C.lineage.activeEntryId):C.messages,initialExtensionState:C.extensionState??{},initialExtensionRecords:C.extensionRecords??[]},context:{...ge.context,taskSurface:"repl",planModeBlockCheck:o((ui,fp)=>W!=="plan"?null:ds(ui,fp,h??process.cwd()),"planModeBlockCheck"),...Xr.inputArtifacts.length>0?{inputArtifacts:Xr.inputArtifacts}:{},...ur?{goalRuntime:ur}:{}}},Mr);if(C.messages=sn.messages,C.contextTokenSnapshot=sn.contextTokenSnapshot,lp(C,sn),C.artifactLedger=ma(C.artifactLedger??[],sn.artifactLedger??wm(sn.messages)),C.messages.length>0){let ui=io(C.messages);C.title=ui,d||await u.save(C.sessionId,{messages:C.messages,title:ui,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,artifactLedger:C.artifactLedger,...qo(C),...ge.session?.tag!==void 0?{tag:ge.session.tag}:{}}),mu(C)}}catch(sn){let ui=sn instanceof Error?sn:new Error(String(sn));if(C.messages.pop(),console.log(de.red(`
|
|
328
328
|
[Error] ${ui.message}`)),await ki(ui,Mr))continue}continue}else $e===ae&&console.log(de.dim(`
|
|
329
|
-
[No changes made, continuing...]`))}let A=MR(L.permissionMode,L),F;r=!0;try{F=await AR(oe,A)}finally{r=!1}if(!
|
|
330
|
-
${$e}`));C.messages.push({role:"user",content:Je.messageContent}),ae=ne;try{let $e=await Yo(Se,ge,C.messages,Je.inputArtifacts);if(C.messages=$e.messages,C.contextTokenSnapshot=$e.contextTokenSnapshot,lp(C,$e),C.artifactLedger=
|
|
329
|
+
[No changes made, continuing...]`))}let A=MR(L.permissionMode,L),F;r=!0;try{F=await AR(oe,A)}finally{r=!1}if(!cc)break;let ne=F.trim();if(Ln=F,!ne)continue;Ci(C),ze.resetTurn();let Z=e.clientPlane?await kd(ne,C.gitRoot??void 0,e.listHostCommands):hs(ne);if(Z){let $e=await tl(Z,C,Qt,L,ne);await so($e,ne);continue}let Se=await vT(ne,ge.context?.executionCwd,at);if(ne.startsWith("!")&&bf(Se))continue;let le=await wu(ne);if(le.rejected)continue;if(le.invocation){await so({invocation:le.invocation},ne);continue}let Je=to(Se,ge.context?.executionCwd??process.cwd());for(let $e of Je.warnings)console.log(de.yellow(`
|
|
330
|
+
${$e}`));C.messages.push({role:"user",content:Je.messageContent}),ae=ne;try{let $e=await Yo(Se,ge,C.messages,Je.inputArtifacts);if(C.messages=$e.messages,C.contextTokenSnapshot=$e.contextTokenSnapshot,lp(C,$e),C.artifactLedger=ma(C.artifactLedger??[],$e.artifactLedger??wm($e.messages)),C.messages.length>0){let ke=io(C.messages);C.title=ke,d||await u.save(C.sessionId,{messages:C.messages,title:ke,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,artifactLedger:C.artifactLedger,...qo(C),...ge.session?.tag!==void 0?{tag:ge.session.tag}:{}}),mu(C)}}catch($e){let ke=$e instanceof Error?$e:new Error(String($e));C.messages.pop(),ke.message.includes("rate limit")||ke.message.includes("Rate limit")?(console.log(de.yellow(`
|
|
331
331
|
[Rate Limit] ${ke.message}`)),console.log(de.dim(`Suggestion: Wait a moment and try again, or switch provider with /mode
|
|
332
332
|
`))):ke.message.includes("API key")||ke.message.includes("not configured")?(console.log(de.red(`
|
|
333
333
|
[Configuration Error] ${ke.message}`)),console.log(de.dim(`Suggestion: Set the required API key environment variable
|
|
@@ -337,15 +337,15 @@ ${$e}`));C.messages.push({role:"user",content:Je.messageContent}),ae=ne;try{let
|
|
|
337
337
|
[Context Error] ${ke.message}`)),console.log(de.dim(`Suggestion: Use /clear to start a fresh conversation
|
|
338
338
|
`))):(console.log(de.red(`
|
|
339
339
|
[Error] ${ke.message}`)),console.log(de.dim(`Your message was not sent. Please try again.
|
|
340
|
-
`))),await ki(ke,Se)}}}o(gq,"runInteractiveMode");async function
|
|
340
|
+
`))),await ki(ke,Se)}}}o(gq,"runInteractiveMode");async function vT(e,t=process.cwd(),n){let r=e.match(/@[\w./-]+/g);if(r)for(let i of r){let s=i.slice(1)}if(e.startsWith("!")){let i=e.slice(1).trim();return Sg(i,{cwd:t,execute:n})}return e}o(vT,"processSpecialSyntax");function yq(e){let t=e.snapshot;if(e.type==="workflow_started")return de.dim(`
|
|
341
341
|
\u25B6 workflow ${t.workflowName} started (${t.runId})`);if(e.type==="workflow_finished"){let n=t.status==="completed"?de.green("\u2713"):t.status==="failed"?de.red("\u2717"):de.yellow("\u2022"),r=t.resultSummary?` \u2014 ${t.resultSummary.split(`
|
|
342
|
-
`)[0]}`:"";return`${n} workflow ${t.workflowName} ${t.status}${r}`}if(e.type==="workflow_updated"&&e.message)return de.dim(` ${e.message}`)}o(yq,"renderInlineWorkflowProcessLine");async function wq(e,t,n,r=t.messages,i){let s={...e.events??{},getCostReport:
|
|
342
|
+
`)[0]}`:"";return`${n} workflow ${t.workflowName} ${t.status}${r}`}if(e.type==="workflow_updated"&&e.message)return de.dim(` ${e.message}`)}o(yq,"renderInlineWorkflowProcessLine");async function wq(e,t,n,r=t.messages,i){let s={...e.events??{},getCostReport:TT,onWorkflowProcessEvent:o(c=>{let l=yq(c);l&&console.log(l)},"onWorkflowProcessEvent"),onWorkflowAgentDigest:o(({runId:c,event:l})=>{let u=l.data??{},d=typeof u.summary=="string"?u.summary:void 0,p=typeof u.name=="string"?u.name:void 0,m=Kc(d,p),h=ld(l,m,c);h&&console.log(`
|
|
343
343
|
${h}
|
|
344
|
-
`)},"onWorkflowAgentDigest"),onCompactedMessages:o(async(c,l,u)=>{let d=dy(t.lineage,c,l,u);if(!d){await e.events?.onCompactedMessages?.(c,l,u);return}t.messages=c,t.lineage=d,l?.artifactLedger?.length&&(t.artifactLedger=pa(t.artifactLedger??[],l.artifactLedger));let p=e.session?.storage;if(!p)throw new Error("Classic REPL compaction requires Session storage.");try{await p.save(t.sessionId,{messages:c,title:ro(c),gitRoot:t.gitRoot??"",runtimeInfo:t.runtimeInfo,lineage:d,artifactLedger:t.artifactLedger,...qo(t),...e.session?.tag!==void 0?{tag:e.session.tag}:{}}),t.lineage=Im(d)}catch(m){throw Ge({source:"repl:compaction",level:"error",message:"Failed to durably persist compacted session history.",detail:m}),m}await e.events?.onCompactedMessages?.(c,l,u)},"onCompactedMessages")};pq(t.gitRoot,e);let a={...e,events:s,session:{...e.session,initialExtensionState:t.extensionState??{},initialExtensionRecords:t.extensionRecords??[],initialMessages:r},context:{...e.context,contextTokenSnapshot:t.contextTokenSnapshot,taskSurface:"repl",...i&&i.length>0?{inputArtifacts:[...i]}:{}}};return a.toolInvocation?Mm(a,a.toolInvocation,n):ad(a,n)}o(wq,"runAgentRound");function ro(e){return wa(e)}o(ro,"extractTitle");function Sq(){let e=Hy();return Fy(e).map(n=>By(n))}o(Sq,"listCustomProviders");function xq(e){if(typeof e!="string"||e.length===0)return;let t=Fy(Hy()).find(n=>n.name===e);return t?By(t):void 0}o(xq,"getCustomProviderConfig");function Iq(e){Pw(e);let t=By(e),n=ic(),r=Lm(n,()=>{let i=Hy(),s=Fy(i),a=s.findIndex(l=>l.name===t.name),c=a>=0?s.map((l,u)=>u===a?t:l):[...s,t];return u$({...i,customProviders:c}),c});return Lw(r),By(t)}o(Iq,"upsertCustomProvider");function Cq(e){if(typeof e!="string"||e.length===0)return!1;let t=ic(),n=Lm(t,()=>{let r=Hy(),i=Fy(r),s=i.filter(a=>a.name!==e);if(s.length!==i.length)return u$({...r,customProviders:s}),s});return n?(Lw(n),!0):!1}o(Cq,"removeCustomProvider");function ic(){return cs("config.json")}o(ic,"configFilePath");function Hy(){return Zw(ic())}o(Hy,"readWholeConfig");function u$(e){eS(ic(),JSON.stringify(e,null,2))}o(u$,"writeWholeConfig");function Fy(e){let t=e.customProviders;if(t===void 0)return[];if(!Array.isArray(t))throw new pd(ic());try{let n=new Set;for(let r of t){if(Pw(r),n.has(r.name))throw new pd(ic());n.add(r.name)}}catch{throw new pd(ic())}return t}o(Fy,"extractCustomProviders");function By(e){return structuredClone(e)}o(By,"cloneCustomProvider");function Tq(e=go()){return structuredClone(zc(e).document.servers)}o(Tq,"listMcpServers");function vq(e,t=go()){if(typeof e!="string"||e.length===0)return;let n=zc(t).document.servers[e];return n===void 0?void 0:structuredClone(n)}o(vq,"getMcpServerConfig");function bq(e,t,n=go()){d$(e,t);let r=zc(n),i=structuredClone(t);return Om({domain:"mcp",configHome:n,...r.source==="user"?{expectedRevision:r.revision}:{},document:{version:1,servers:{...r.document.servers,[e]:i}},validate:md}),structuredClone(i)}o(bq,"upsertMcpServer");function Rq(e,t=go()){if(typeof e!="string"||e.length===0)return!1;let n=zc(t);if(!(e in n.document.servers))return!1;let r=structuredClone(n.document.servers);return delete r[e],Om({domain:"mcp",configHome:t,...n.source==="user"?{expectedRevision:n.revision}:{},document:{version:1,servers:r},validate:md}),!0}o(Rq,"removeMcpServer");function d$(e,t){if(typeof e!="string"||e.length===0)throw new TypeError("MCP server name must be a non-empty string");md({version:1,servers:{[e]:t}})}o(d$,"validateMcpServerConfig");import oc from"node:fs/promises";import lr from"node:path";var kq=8;function f$(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}o(f$,"isRecord");function p$(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")&&!e.startsWith("archived-")}o(p$,"isSessionFile");async function Eq(e){let t=[],n=[];try{n=await oc.readdir(e,{withFileTypes:!0})}catch{return t}for(let r of n){if(r.isFile()){p$(r.name)&&t.push(lr.join(e,r.name));continue}if(!r.isDirectory()||r.name.startsWith("."))continue;let i=lr.join(e,r.name),s=[];try{s=await oc.readdir(i)}catch{continue}for(let a of s)p$(a)&&t.push(lr.join(i,a))}return t}o(Eq,"collectSessionFiles");function Mq(e,t){let r=lr.relative(e,t).split(lr.sep);return r.length>1?r[0]:void 0}o(Mq,"getProjectKey");async function Aq(e,t){let n=lr.relative(e,t),r=lr.basename(t,".jsonl");try{let s=(await oc.readFile(t,"utf8")).split(/\r?\n/,1)[0];if(!s)return null;let a=JSON.parse(s);if(!f$(a)||a._type!=="meta")return null;let c=f$(a.runtimeInfo)?a.runtimeInfo:void 0,l=typeof c?.canonicalRepoRoot=="string"?c.canonicalRepoRoot:typeof c?.workspaceRoot=="string"?c.workspaceRoot:void 0,u=typeof a.createdAt=="string"?Date.parse(a.createdAt):Number.NaN,d=Array.isArray(a.uiHistory)?a.uiHistory:void 0,p=typeof a.artifactLedgerCount=="number"?a.artifactLedgerCount:0,m=typeof a.activeEntryId=="string"||a.activeEntryId===null;return{id:typeof a.id=="string"?a.id:r,filePath:t,relativePath:n,projectKey:Mq(e,t),isRunner:r.startsWith("runner-"),title:typeof a.title=="string"?a.title:"",gitRoot:typeof a.gitRoot=="string"?a.gitRoot:"",runtimeRoot:l,createdAtMs:Number.isFinite(u)?u:void 0,scope:a.scope==="managed-task-worker"?"managed-task-worker":"user",activeMessageCount:typeof a.activeMessageCount=="number"?a.activeMessageCount:void 0,hasHostState:!!(d&&d.length>0||a.lineageVersion===2||m||p>0)}}catch{return null}}o(Aq,"parseCandidate");function _q(e,t){return e.projectKey&&t.projectKey&&e.projectKey===t.projectKey||e.runtimeRoot&&t.runtimeRoot&&e.runtimeRoot===t.runtimeRoot?!0:!!(e.gitRoot&&t.gitRoot&&e.gitRoot===t.gitRoot)}o(_q,"sameProject");function Pq(e,t){if(t.isRunner||t.scope!=="user"||!_q(e,t))return null;let n=0,r=[];if(e.projectKey&&t.projectKey&&e.projectKey===t.projectKey?(n+=4,r.push("same-project-dir")):(n+=3,r.push("same-project-identity")),e.title&&t.title&&e.title===t.title)n+=2,r.push("same-title");else if(e.title&&t.title)return null;return e.activeMessageCount!==void 0&&t.activeMessageCount!==void 0&&e.activeMessageCount===t.activeMessageCount&&(n+=1,r.push("same-active-message-count")),e.createdAtMs!==void 0&&t.createdAtMs!==void 0&&Math.abs(e.createdAtMs-t.createdAtMs)<=3600*1e3&&(n+=1,r.push("near-created-at")),t.hasHostState&&!e.hasHostState&&(n+=2,r.push("canonical-has-host-state")),n>=kq?{canonical:t,score:n,reasons:r}:null}o(Pq,"scoreCandidate");function Lq(e){let t=o(n=>String(n).padStart(2,"0"),"pad");return[e.getUTCFullYear(),t(e.getUTCMonth()+1),t(e.getUTCDate()),"-",t(e.getUTCHours()),t(e.getUTCMinutes()),t(e.getUTCSeconds())].join("")}o(Lq,"formatArchiveBatch");async function Oq(e){let t=e,n=1;for(;;){try{await oc.access(t)}catch{return t}let r=lr.extname(e);t=`${e.slice(0,e.length-r.length)}.${n}${r}`,n+=1}}o(Oq,"uniqueTargetPath");async function $q(e={}){let t=e.sessionsDir??fs;e.apply&&(await oc.mkdir(t,{recursive:!0}),await qa(t));let n=await Eq(t),r=[],i=[];for(let d of n){let p=await Aq(t,d);if(!p){lr.basename(d).startsWith("runner-")&&i.push({runnerId:lr.basename(d,".jsonl"),path:d,reason:"unreadable"});continue}if(p.isRunner&&p.scope==="managed-task-worker"){i.push({runnerId:p.id,path:p.filePath,reason:"managed-task-worker"});continue}r.push(p)}let s=r.filter(d=>d.isRunner&&d.scope==="user"),a=r.filter(d=>!d.isRunner&&d.scope==="user"),c=[];for(let d of s){let p=a.map(h=>Pq(d,h)).filter(h=>h!==null).sort((h,g)=>g.score-h.score);if(p.length===0){i.push({runnerId:d.id,path:d.filePath,reason:"no-match"});continue}if(p.length>1){i.push({runnerId:d.id,path:d.filePath,reason:"ambiguous-match",detail:p.map(h=>`${h.canonical.id}:${h.score}`).join(", ")});continue}let m=p[0];c.push({runnerId:d.id,runnerPath:d.filePath,canonicalId:m.canonical.id,canonicalPath:m.canonical.filePath,score:m.score,reasons:m.reasons})}let l=[],u=lr.join(t,".dedupe-archive",Lq(e.now??new Date));if(e.apply)for(let d of c){let p=lr.relative(t,d.runnerPath),m;try{m=await Oq(lr.join(u,p)),await oc.mkdir(lr.dirname(m),{recursive:!0}),await oc.rename(d.runnerPath,m),l.push({runnerId:d.runnerId,from:d.runnerPath,to:m})}catch(h){i.push({runnerId:d.runnerId,path:d.runnerPath,reason:"move-failed",detail:`target=${m??lr.join(u,p)}; ${h instanceof Error?h.message:String(h)}`})}}return{scanned:n.length,runnerCandidates:s.length,matches:c,moved:l,skipped:i,...e.apply?{archiveDir:u}:{}}}o($q,"dedupeSessions");function Nq(e){return e?.storage?e.storage:e?.sessionsDir!==void 0?new Ri({sessionsDir:e.sessionsDir}):new Ri}o(Nq,"resolveStorage");async function up(e,t){let n={compacted:!1,tokensBefore:0,tokensAfter:0,messages:[]};try{let r=Nq(t),i=await r.load(e);if(!i)return{...n,reason:`session not found: ${e}`};let s=i.messages,a=t?.provider??i.runtimeInfo?.provider??"anthropic",c=t?.model??(a===i.runtimeInfo?.provider?i.runtimeInfo.model:void 0),l=ua(a);if(!l)return{...n,messages:s,reason:`provider not found: ${a}`};let u=t?.contextWindow??l.getEffectiveContextWindow?.(c)??l.getContextWindow?.()??2e5,d=da(s),p=await Nm(),m=wb({...p,...t?.reasoning!==void 0?{reasoning:t.reasoning}:{},contextWindow:u,triggerPercent:t?.triggerPercent??p.triggerPercent,triggerTokens:t?.triggerTokens??p.triggerTokens});t?.abortSignal?.throwIfAborted();let h=await Sb(s,m,l,u,t?.customInstructions,void 0,d,Lb,Ob,c,!0,l.getEffectiveMaxOutputTokens(c));if(t?.abortSignal?.throwIfAborted(),!h.compacted)return{compacted:!1,tokensBefore:h.tokensBefore,tokensAfter:h.tokensAfter,messages:s,reason:"no compaction needed"};let g={summary:h.summary??"",tokensBefore:h.tokensBefore,tokensAfter:h.tokensAfter,...h.anchor,reason:"manual"},S=await $b({compacted:h.messages,artifactLedger:h.artifactLedger??i.artifactLedger??[],tokensBefore:h.tokensBefore,tokensAfter:h.tokensAfter,capacity:{contextWindow:u,reservedResponseTokens:l.getEffectiveMaxOutputTokens(c)}}),T=it(s,i.lineage),x=xm(T,S.compacted,g,S.postCompactAttachmentsForLineage),I=Yt(x),v=da(I),k=[...x.entries].reverse().find(z=>z.type==="compaction"),_=k?{...x,entries:x.entries.map(z=>z.id===k.id&&z.type==="compaction"?{...z,tokensAfter:v}:z)}:x,H={...i,messages:I,lineage:_,artifactLedger:h.artifactLedger??i.artifactLedger},$=performance.now();await r.save(e,H);let P=performance.now()-$;return{compacted:!0,tokensBefore:h.tokensBefore,tokensAfter:v,messages:I,report:h.report?{...h.report,commitMs:P}:void 0}}catch(r){if(t?.propagateErrors===!0)throw r;return{...n,reason:r instanceof Error?r.message:String(r)}}}o(up,"compactSession");import sc from"node:fs";import dp from"node:fs/promises";import Hn from"node:path";import{createHash as Dq,randomUUID as Bq}from"node:crypto";async function Hq(e,t){let n=[],r=!0,i=o(a=>a.endsWith(".jsonl")&&!a.endsWith(".archive.jsonl")&&!a.endsWith(".islands.jsonl")&&!a.startsWith("."),"isSession"),s=[];try{s=await dp.readdir(e,{withFileTypes:!0})}catch{return{paths:n,complete:!1}}for(let a of s){if(a.isFile()){i(a.name)&&(t||!a.name.startsWith("archived-"))&&n.push(Hn.join(e,a.name));continue}if(!a.isDirectory()||a.name.startsWith("."))continue;let c=Hn.join(e,a.name);try{for(let l of await dp.readdir(c))i(l)&&n.push(Hn.join(c,l))}catch(l){l.code!=="ENOENT"&&(r=!1)}if(t){let l=Hn.join(c,"archived");try{for(let u of await dp.readdir(l))i(u)&&n.push(Hn.join(l,u))}catch(u){u.code!=="ENOENT"&&(r=!1)}}}return{paths:n,complete:r}}o(Hq,"collectSessionFilePaths");function Fq(e,t,n){return n?.trim()?Zc({...t===void 0?{}:{gitRoot:t},...e===void 0?{}:{runtimeInfo:{...e.gitRoot===void 0?{}:{canonicalRepoRoot:e.gitRoot},...e.workspaceRoot===void 0?{}:{workspaceRoot:e.workspaceRoot}}}},[n]):!0}o(Fq,"sessionMatchesProjectRoot");async function Wq(e){return Yg(e)}o(Wq,"readSessionMetaRecord");async function jq(e,t){if(typeof t.activeMessageCount=="number"&&t.activeMessageCount>=0)return t.activeMessageCount;let n=(await dp.readFile(e,"utf-8")).trim(),r=typeof t.extensionRecordCount=="number"&&t.extensionRecordCount>0?t.extensionRecordCount:0;return Math.max(0,n.split(`
|
|
345
|
-
`).length-1-r)}o(jq,"readActiveMessageCount");async function Uq(e,t){let n=await Wq(e);if(!n)return;let r=n.scope==="managed-task-worker"?"managed-task-worker":"user";if(t.scope!=="all"&&t.scope!==r)return;let i=typeof n.createdAt=="string"?n.createdAt:void 0,s=i?Date.parse(i):void 0;if(t.before!==void 0&&s!==void 0&&Number.isFinite(s)&&s>=t.before)return;let a=typeof n.tag=="string"?n.tag:void 0;if(t.tag!==void 0&&a!==t.tag)return;let c=n.runtimeInfo!==null&&typeof n.runtimeInfo=="object"?x$(n.runtimeInfo):void 0,l=typeof n.gitRoot=="string"?n.gitRoot:void 0,u=c??(l?{gitRoot:l}:void 0);if(!Fq(u,l,t.gitRoot)||t.surface!==void 0&&u?.surface!==t.surface)return;let d=Hn.basename(e,".jsonl"),p=Hn.basename(Hn.dirname(e))==="archived";return{id:d,title:typeof n.title=="string"?n.title:"",msgCount:await jq(e,n),...a!==void 0?{tag:a}:{},...i!==void 0?{createdAt:i}:{},...rn(n.lastMessageAt)!==void 0?{lastMessageAt:n.lastMessageAt}:{},...u!==void 0?{runtimeInfo:u}:{},projectKey:Br(u?.gitRoot??u?.workspaceRoot).key,...p?{archived:!0}:{},_createdAtMs:s}}o(Uq,"readSessionListCandidate");function ci(e,t){return e!==void 0||t!==void 0?new Ri({...e===void 0?{}:{sessionsDir:e},...t===void 0?{}:{configHome:t}}):new Ri}o(ci,"getStorage");function g$(e){return e??fs}o(g$,"resolveSessionsDir");function y$(e){return Buffer.from(JSON.stringify({v:1,id:e.id,createdAt:rn(e.createdAt),lastMessageAt:rn(e.lastMessageAt)}),"utf8").toString("base64url")}o(y$,"encodeSessionCursor");function Vq(e){if(!(!e||e.length>2048))try{let t=Buffer.from(e,"base64url").toString("utf8");if(!t||Buffer.from(t,"utf8").toString("base64url")!==e)return;if(!t.startsWith("{"))return{anchor:{id:t},legacy:!0};let n=JSON.parse(t);return!jy(n)||n.v!==1||typeof n.id!="string"||!n.id||n.createdAt!==void 0&&rn(n.createdAt)===void 0||n.lastMessageAt!==void 0&&rn(n.lastMessageAt)===void 0?void 0:{anchor:{id:n.id,...typeof n.createdAt=="string"?{createdAt:n.createdAt}:{},...typeof n.lastMessageAt=="string"?{lastMessageAt:n.lastMessageAt}:{}},legacy:!1}}catch{return}}o(Vq,"decodeSessionCursor");async function w$(e){return S$(e,void 0)}o(w$,"listSessions");async function S$(e,t){try{let n=g$(t);await
|
|
344
|
+
`)},"onWorkflowAgentDigest"),onCompactedMessages:o(async(c,l,u)=>{let d=dy(t.lineage,c,l,u);if(!d){await e.events?.onCompactedMessages?.(c,l,u);return}t.messages=c,t.lineage=d,l?.artifactLedger?.length&&(t.artifactLedger=ma(t.artifactLedger??[],l.artifactLedger));let p=e.session?.storage;if(!p)throw new Error("Classic REPL compaction requires Session storage.");try{await p.save(t.sessionId,{messages:c,title:io(c),gitRoot:t.gitRoot??"",runtimeInfo:t.runtimeInfo,lineage:d,artifactLedger:t.artifactLedger,...qo(t),...e.session?.tag!==void 0?{tag:e.session.tag}:{}}),t.lineage=xm(d)}catch(m){throw Ge({source:"repl:compaction",level:"error",message:"Failed to durably persist compacted session history.",detail:m}),m}await e.events?.onCompactedMessages?.(c,l,u)},"onCompactedMessages")};pq(t.gitRoot,e);let a={...e,events:s,session:{...e.session,initialExtensionState:t.extensionState??{},initialExtensionRecords:t.extensionRecords??[],initialMessages:r},context:{...e.context,contextTokenSnapshot:t.contextTokenSnapshot,taskSurface:"repl",...i&&i.length>0?{inputArtifacts:[...i]}:{}}};return a.toolInvocation?Mm(a,a.toolInvocation,n):cd(a,n)}o(wq,"runAgentRound");function io(e){return Sa(e)}o(io,"extractTitle");function Sq(){let e=Hy();return Fy(e).map(n=>By(n))}o(Sq,"listCustomProviders");function xq(e){if(typeof e!="string"||e.length===0)return;let t=Fy(Hy()).find(n=>n.name===e);return t?By(t):void 0}o(xq,"getCustomProviderConfig");function Iq(e){Pw(e);let t=By(e),n=oc(),r=Lm(n,()=>{let i=Hy(),s=Fy(i),a=s.findIndex(l=>l.name===t.name),c=a>=0?s.map((l,u)=>u===a?t:l):[...s,t];return u$({...i,customProviders:c}),c});return Lw(r),By(t)}o(Iq,"upsertCustomProvider");function Cq(e){if(typeof e!="string"||e.length===0)return!1;let t=oc(),n=Lm(t,()=>{let r=Hy(),i=Fy(r),s=i.filter(a=>a.name!==e);if(s.length!==i.length)return u$({...r,customProviders:s}),s});return n?(Lw(n),!0):!1}o(Cq,"removeCustomProvider");function oc(){return cs("config.json")}o(oc,"configFilePath");function Hy(){return eS(oc())}o(Hy,"readWholeConfig");function u$(e){tS(oc(),JSON.stringify(e,null,2))}o(u$,"writeWholeConfig");function Fy(e){let t=e.customProviders;if(t===void 0)return[];if(!Array.isArray(t))throw new md(oc());try{let n=new Set;for(let r of t){if(Pw(r),n.has(r.name))throw new md(oc());n.add(r.name)}}catch{throw new md(oc())}return t}o(Fy,"extractCustomProviders");function By(e){return structuredClone(e)}o(By,"cloneCustomProvider");function Tq(e=yo()){return structuredClone(qc(e).document.servers)}o(Tq,"listMcpServers");function vq(e,t=yo()){if(typeof e!="string"||e.length===0)return;let n=qc(t).document.servers[e];return n===void 0?void 0:structuredClone(n)}o(vq,"getMcpServerConfig");function bq(e,t,n=yo()){d$(e,t);let r=qc(n),i=structuredClone(t);return Om({domain:"mcp",configHome:n,...r.source==="user"?{expectedRevision:r.revision}:{},document:{version:1,servers:{...r.document.servers,[e]:i}},validate:hd}),structuredClone(i)}o(bq,"upsertMcpServer");function Rq(e,t=yo()){if(typeof e!="string"||e.length===0)return!1;let n=qc(t);if(!(e in n.document.servers))return!1;let r=structuredClone(n.document.servers);return delete r[e],Om({domain:"mcp",configHome:t,...n.source==="user"?{expectedRevision:n.revision}:{},document:{version:1,servers:r},validate:hd}),!0}o(Rq,"removeMcpServer");function d$(e,t){if(typeof e!="string"||e.length===0)throw new TypeError("MCP server name must be a non-empty string");hd({version:1,servers:{[e]:t}})}o(d$,"validateMcpServerConfig");import sc from"node:fs/promises";import lr from"node:path";var kq=8;function f$(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}o(f$,"isRecord");function p$(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")&&!e.startsWith("archived-")}o(p$,"isSessionFile");async function Eq(e){let t=[],n=[];try{n=await sc.readdir(e,{withFileTypes:!0})}catch{return t}for(let r of n){if(r.isFile()){p$(r.name)&&t.push(lr.join(e,r.name));continue}if(!r.isDirectory()||r.name.startsWith("."))continue;let i=lr.join(e,r.name),s=[];try{s=await sc.readdir(i)}catch{continue}for(let a of s)p$(a)&&t.push(lr.join(i,a))}return t}o(Eq,"collectSessionFiles");function Mq(e,t){let r=lr.relative(e,t).split(lr.sep);return r.length>1?r[0]:void 0}o(Mq,"getProjectKey");async function Aq(e,t){let n=lr.relative(e,t),r=lr.basename(t,".jsonl");try{let s=(await sc.readFile(t,"utf8")).split(/\r?\n/,1)[0];if(!s)return null;let a=JSON.parse(s);if(!f$(a)||a._type!=="meta")return null;let c=f$(a.runtimeInfo)?a.runtimeInfo:void 0,l=typeof c?.canonicalRepoRoot=="string"?c.canonicalRepoRoot:typeof c?.workspaceRoot=="string"?c.workspaceRoot:void 0,u=typeof a.createdAt=="string"?Date.parse(a.createdAt):Number.NaN,d=Array.isArray(a.uiHistory)?a.uiHistory:void 0,p=typeof a.artifactLedgerCount=="number"?a.artifactLedgerCount:0,m=typeof a.activeEntryId=="string"||a.activeEntryId===null;return{id:typeof a.id=="string"?a.id:r,filePath:t,relativePath:n,projectKey:Mq(e,t),isRunner:r.startsWith("runner-"),title:typeof a.title=="string"?a.title:"",gitRoot:typeof a.gitRoot=="string"?a.gitRoot:"",runtimeRoot:l,createdAtMs:Number.isFinite(u)?u:void 0,scope:a.scope==="managed-task-worker"?"managed-task-worker":"user",activeMessageCount:typeof a.activeMessageCount=="number"?a.activeMessageCount:void 0,hasHostState:!!(d&&d.length>0||a.lineageVersion===2||m||p>0)}}catch{return null}}o(Aq,"parseCandidate");function _q(e,t){return e.projectKey&&t.projectKey&&e.projectKey===t.projectKey||e.runtimeRoot&&t.runtimeRoot&&e.runtimeRoot===t.runtimeRoot?!0:!!(e.gitRoot&&t.gitRoot&&e.gitRoot===t.gitRoot)}o(_q,"sameProject");function Pq(e,t){if(t.isRunner||t.scope!=="user"||!_q(e,t))return null;let n=0,r=[];if(e.projectKey&&t.projectKey&&e.projectKey===t.projectKey?(n+=4,r.push("same-project-dir")):(n+=3,r.push("same-project-identity")),e.title&&t.title&&e.title===t.title)n+=2,r.push("same-title");else if(e.title&&t.title)return null;return e.activeMessageCount!==void 0&&t.activeMessageCount!==void 0&&e.activeMessageCount===t.activeMessageCount&&(n+=1,r.push("same-active-message-count")),e.createdAtMs!==void 0&&t.createdAtMs!==void 0&&Math.abs(e.createdAtMs-t.createdAtMs)<=3600*1e3&&(n+=1,r.push("near-created-at")),t.hasHostState&&!e.hasHostState&&(n+=2,r.push("canonical-has-host-state")),n>=kq?{canonical:t,score:n,reasons:r}:null}o(Pq,"scoreCandidate");function Lq(e){let t=o(n=>String(n).padStart(2,"0"),"pad");return[e.getUTCFullYear(),t(e.getUTCMonth()+1),t(e.getUTCDate()),"-",t(e.getUTCHours()),t(e.getUTCMinutes()),t(e.getUTCSeconds())].join("")}o(Lq,"formatArchiveBatch");async function Oq(e){let t=e,n=1;for(;;){try{await sc.access(t)}catch{return t}let r=lr.extname(e);t=`${e.slice(0,e.length-r.length)}.${n}${r}`,n+=1}}o(Oq,"uniqueTargetPath");async function $q(e={}){let t=e.sessionsDir??fs;e.apply&&(await sc.mkdir(t,{recursive:!0}),await Xa(t));let n=await Eq(t),r=[],i=[];for(let d of n){let p=await Aq(t,d);if(!p){lr.basename(d).startsWith("runner-")&&i.push({runnerId:lr.basename(d,".jsonl"),path:d,reason:"unreadable"});continue}if(p.isRunner&&p.scope==="managed-task-worker"){i.push({runnerId:p.id,path:p.filePath,reason:"managed-task-worker"});continue}r.push(p)}let s=r.filter(d=>d.isRunner&&d.scope==="user"),a=r.filter(d=>!d.isRunner&&d.scope==="user"),c=[];for(let d of s){let p=a.map(h=>Pq(d,h)).filter(h=>h!==null).sort((h,g)=>g.score-h.score);if(p.length===0){i.push({runnerId:d.id,path:d.filePath,reason:"no-match"});continue}if(p.length>1){i.push({runnerId:d.id,path:d.filePath,reason:"ambiguous-match",detail:p.map(h=>`${h.canonical.id}:${h.score}`).join(", ")});continue}let m=p[0];c.push({runnerId:d.id,runnerPath:d.filePath,canonicalId:m.canonical.id,canonicalPath:m.canonical.filePath,score:m.score,reasons:m.reasons})}let l=[],u=lr.join(t,".dedupe-archive",Lq(e.now??new Date));if(e.apply)for(let d of c){let p=lr.relative(t,d.runnerPath),m;try{m=await Oq(lr.join(u,p)),await sc.mkdir(lr.dirname(m),{recursive:!0}),await sc.rename(d.runnerPath,m),l.push({runnerId:d.runnerId,from:d.runnerPath,to:m})}catch(h){i.push({runnerId:d.runnerId,path:d.runnerPath,reason:"move-failed",detail:`target=${m??lr.join(u,p)}; ${h instanceof Error?h.message:String(h)}`})}}return{scanned:n.length,runnerCandidates:s.length,matches:c,moved:l,skipped:i,...e.apply?{archiveDir:u}:{}}}o($q,"dedupeSessions");function Nq(e){return e?.storage?e.storage:e?.sessionsDir!==void 0?new Ri({sessionsDir:e.sessionsDir}):new Ri}o(Nq,"resolveStorage");async function up(e,t){let n={compacted:!1,tokensBefore:0,tokensAfter:0,messages:[]};try{let r=Nq(t),i=await r.load(e);if(!i)return{...n,reason:`session not found: ${e}`};let s=i.messages,a=t?.provider??i.runtimeInfo?.provider??"anthropic",c=t?.model??(a===i.runtimeInfo?.provider?i.runtimeInfo.model:void 0),l=fa(a);if(!l)return{...n,messages:s,reason:`provider not found: ${a}`};let u=t?.contextWindow??l.getEffectiveContextWindow?.(c)??l.getContextWindow?.()??2e5,d=da(s),p=await Nm(),m=wb({...p,...t?.reasoning!==void 0?{reasoning:t.reasoning}:{},contextWindow:u,triggerPercent:t?.triggerPercent??p.triggerPercent,triggerTokens:t?.triggerTokens??p.triggerTokens});t?.abortSignal?.throwIfAborted();let h=await Sb(s,m,l,u,t?.customInstructions,void 0,d,Lb,Ob,c,!0,l.getEffectiveMaxOutputTokens(c));if(t?.abortSignal?.throwIfAborted(),!h.compacted)return{compacted:!1,tokensBefore:h.tokensBefore,tokensAfter:h.tokensAfter,messages:s,reason:"no compaction needed"};let g={summary:h.summary??"",tokensBefore:h.tokensBefore,tokensAfter:h.tokensAfter,...h.anchor,reason:"manual"},S=await $b({compacted:h.messages,artifactLedger:h.artifactLedger??i.artifactLedger??[],tokensBefore:h.tokensBefore,tokensAfter:h.tokensAfter,capacity:{contextWindow:u,reservedResponseTokens:l.getEffectiveMaxOutputTokens(c)}}),T=it(s,i.lineage),x=Sm(T,S.compacted,g,S.postCompactAttachmentsForLineage),I=Yt(x),v=da(I),k=[...x.entries].reverse().find(z=>z.type==="compaction"),_=k?{...x,entries:x.entries.map(z=>z.id===k.id&&z.type==="compaction"?{...z,tokensAfter:v}:z)}:x,H={...i,messages:I,lineage:_,artifactLedger:h.artifactLedger??i.artifactLedger},$=performance.now();await r.save(e,H);let P=performance.now()-$;return{compacted:!0,tokensBefore:h.tokensBefore,tokensAfter:v,messages:I,report:h.report?{...h.report,commitMs:P}:void 0}}catch(r){if(t?.propagateErrors===!0)throw r;return{...n,reason:r instanceof Error?r.message:String(r)}}}o(up,"compactSession");import ac from"node:fs";import dp from"node:fs/promises";import Hn from"node:path";import{createHash as Dq,randomUUID as Bq}from"node:crypto";async function Hq(e,t){let n=[],r=!0,i=o(a=>a.endsWith(".jsonl")&&!a.endsWith(".archive.jsonl")&&!a.endsWith(".islands.jsonl")&&!a.startsWith("."),"isSession"),s=[];try{s=await dp.readdir(e,{withFileTypes:!0})}catch{return{paths:n,complete:!1}}for(let a of s){if(a.isFile()){i(a.name)&&(t||!a.name.startsWith("archived-"))&&n.push(Hn.join(e,a.name));continue}if(!a.isDirectory()||a.name.startsWith("."))continue;let c=Hn.join(e,a.name);try{for(let l of await dp.readdir(c))i(l)&&n.push(Hn.join(c,l))}catch(l){l.code!=="ENOENT"&&(r=!1)}if(t){let l=Hn.join(c,"archived");try{for(let u of await dp.readdir(l))i(u)&&n.push(Hn.join(l,u))}catch(u){u.code!=="ENOENT"&&(r=!1)}}}return{paths:n,complete:r}}o(Hq,"collectSessionFilePaths");function Fq(e,t,n){return n?.trim()?el({...t===void 0?{}:{gitRoot:t},...e===void 0?{}:{runtimeInfo:{...e.gitRoot===void 0?{}:{canonicalRepoRoot:e.gitRoot},...e.workspaceRoot===void 0?{}:{workspaceRoot:e.workspaceRoot}}}},[n]):!0}o(Fq,"sessionMatchesProjectRoot");async function Wq(e){return Yg(e)}o(Wq,"readSessionMetaRecord");async function jq(e,t){if(typeof t.activeMessageCount=="number"&&t.activeMessageCount>=0)return t.activeMessageCount;let n=(await dp.readFile(e,"utf-8")).trim(),r=typeof t.extensionRecordCount=="number"&&t.extensionRecordCount>0?t.extensionRecordCount:0;return Math.max(0,n.split(`
|
|
345
|
+
`).length-1-r)}o(jq,"readActiveMessageCount");async function Uq(e,t){let n=await Wq(e);if(!n)return;let r=n.scope==="managed-task-worker"?"managed-task-worker":"user";if(t.scope!=="all"&&t.scope!==r)return;let i=typeof n.createdAt=="string"?n.createdAt:void 0,s=i?Date.parse(i):void 0;if(t.before!==void 0&&s!==void 0&&Number.isFinite(s)&&s>=t.before)return;let a=typeof n.tag=="string"?n.tag:void 0;if(t.tag!==void 0&&a!==t.tag)return;let c=n.runtimeInfo!==null&&typeof n.runtimeInfo=="object"?x$(n.runtimeInfo):void 0,l=typeof n.gitRoot=="string"?n.gitRoot:void 0,u=c??(l?{gitRoot:l}:void 0);if(!Fq(u,l,t.gitRoot)||t.surface!==void 0&&u?.surface!==t.surface)return;let d=Hn.basename(e,".jsonl"),p=Hn.basename(Hn.dirname(e))==="archived";return{id:d,title:typeof n.title=="string"?n.title:"",msgCount:await jq(e,n),...a!==void 0?{tag:a}:{},...i!==void 0?{createdAt:i}:{},...rn(n.lastMessageAt)!==void 0?{lastMessageAt:n.lastMessageAt}:{},...u!==void 0?{runtimeInfo:u}:{},projectKey:Br(u?.gitRoot??u?.workspaceRoot).key,...p?{archived:!0}:{},_createdAtMs:s}}o(Uq,"readSessionListCandidate");function ci(e,t){return e!==void 0||t!==void 0?new Ri({...e===void 0?{}:{sessionsDir:e},...t===void 0?{}:{configHome:t}}):new Ri}o(ci,"getStorage");function g$(e){return e??fs}o(g$,"resolveSessionsDir");function y$(e){return Buffer.from(JSON.stringify({v:1,id:e.id,createdAt:rn(e.createdAt),lastMessageAt:rn(e.lastMessageAt)}),"utf8").toString("base64url")}o(y$,"encodeSessionCursor");function Vq(e){if(!(!e||e.length>2048))try{let t=Buffer.from(e,"base64url").toString("utf8");if(!t||Buffer.from(t,"utf8").toString("base64url")!==e)return;if(!t.startsWith("{"))return{anchor:{id:t},legacy:!0};let n=JSON.parse(t);return!jy(n)||n.v!==1||typeof n.id!="string"||!n.id||n.createdAt!==void 0&&rn(n.createdAt)===void 0||n.lastMessageAt!==void 0&&rn(n.lastMessageAt)===void 0?void 0:{anchor:{id:n.id,...typeof n.createdAt=="string"?{createdAt:n.createdAt}:{},...typeof n.lastMessageAt=="string"?{lastMessageAt:n.lastMessageAt}:{}},legacy:!1}}catch{return}}o(Vq,"decodeSessionCursor");async function w$(e){return S$(e,void 0)}o(w$,"listSessions");async function S$(e,t){try{let n=g$(t);await Xa(n);let r=e?.projectRoot,i=ci(t);await dp.mkdir(n,{recursive:!0});let s=e?.scope??"user",a=e?.includeArchived??!1,c=e?.limit??50,l=e?.before?Date.parse(e.before):void 0,u=e?.tag,d=e?.surface,p=e?.cursor===void 0?void 0:Vq(e.cursor);if(e?.cursor!==void 0&&p===void 0)return[];if(s==="user"&&l===void 0&&!a&&u===void 0&&d===void 0&&p===void 0)return(await i.list(r,{limit:c})).map(Gq);let m=i.beginSessionLocationTraversal(),h=await Hq(n,!0),g=h.paths;i.completeSessionLocationTraversal(m,g.filter(_=>!Hn.basename(_).startsWith("archived-")),h.complete);let S=a?g:g.filter(_=>Hn.basename(Hn.dirname(_))!=="archived"&&!Hn.basename(_).startsWith("archived-")),T=[],x=new Set,I={scope:s,...l!==void 0?{before:l}:{},...u!==void 0?{tag:u}:{},...d!==void 0?{surface:d}:{},...r!==void 0?{gitRoot:r}:{}},v=48;for(let _=0;_<S.length;_+=v){let H=await Promise.all(S.slice(_,_+v).map(async $=>{try{return await Uq($,I)}catch(P){Ge({source:"session.public-api",level:"warn",message:"Unreadable session record was skipped.",detail:{filePath:$,error:P}});return}}));for(let $ of H)$&&!x.has($.id)&&(x.add($.id),T.push($))}T.sort(qa);let k=0;if(p?.legacy){let _=T.findIndex(H=>H.id===p.anchor.id);if(_<0)return[];k=_+1}else if(p!==void 0){let _=T.findIndex(H=>qa(H,p.anchor)>0);k=_<0?T.length:_}return T.slice(k,k+c).map(({id:_,title:H,msgCount:$,tag:P,createdAt:z,lastMessageAt:J,runtimeInfo:L,projectKey:W,archived:N})=>({id:_,cursor:y$({id:_,createdAt:z,lastMessageAt:J}),title:H,msgCount:$,...P!==void 0?{tag:P}:{},...z!==void 0?{createdAt:z}:{},...J!==void 0?{lastMessageAt:J}:{},...L!==void 0?{runtimeInfo:L}:{},...W!==void 0?{projectKey:W}:{},...N?{archived:!0}:{}}))}catch{return[]}}o(S$,"listSessionsImpl");function x$(e){let t={...e.workspaceRoot?{workspaceRoot:e.workspaceRoot}:{},...e.canonicalRepoRoot?{gitRoot:e.canonicalRepoRoot}:{},...e.surface?{surface:e.surface}:{},...e.profileId?{profileId:e.profileId}:{}};return Object.keys(t).length>0?t:void 0}o(x$,"extractRuntimeInfoSummary");function Gq(e){let t=e.runtimeInfo?x$(e.runtimeInfo):void 0,n=Br(t?.gitRoot??t?.workspaceRoot).key;return{id:e.id,cursor:y$(e),title:e.title,msgCount:e.msgCount,...e.tag!==void 0?{tag:e.tag}:{},...t!==void 0?{runtimeInfo:t}:{},...e.createdAt!==void 0?{createdAt:e.createdAt}:{},...e.lastMessageAt!==void 0?{lastMessageAt:e.lastMessageAt}:{},projectKey:n}}o(Gq,"toSessionSummary");function jy(e){return typeof e=="object"&&e!==null}o(jy,"isRecord");function I$(e){let t=new Map(e.entries.map(i=>[i.id,i])),n=new Set,r=e.activeEntryId;for(;r;){let i=t.get(r);if(!i)break;n.add(i.id),r=i.parentId}return n}o(I$,"collectActiveIds");function m$(e,t){return t==="branch_summary"?{role:"user",content:`The following is a summary of a branch that this conversation came back from:
|
|
346
346
|
|
|
347
347
|
<summary>
|
|
348
348
|
${e}
|
|
349
349
|
</summary>`}:{role:"system",content:`[\u5BF9\u8BDD\u5386\u53F2\u6458\u8981]
|
|
350
350
|
|
|
351
|
-
${e}`}}o(m$,"summaryMessage");function h$(e){return{role:"system",content:`[Rewind] ${e}`}}o(h$,"rewindMarkerMessage");function Kq(e){return{role:"system",content:e.content,_source:"client_notice",timestamp:e.timestamp,...e.turnId!==void 0?{turnId:e.turnId}:{}}}o(Kq,"clientNoticeMessage");function vT(e,t){let n=e[t];return typeof n=="string"?n:void 0}o(vT,"messageStringField");function zq(e){if(e.role==="user")return"user";if(e.role==="assistant")return"assistant";if(e.role==="system")return"system"}o(zq,"messageSource");function qq(e){return e.length===1?e[0]:e[0]?{type:"task_result",results:e}:void 0}o(qq,"taskResultPayload");function Xq(e){if(!jy(e))return{};let t=typeof e.rewindTargetId=="string"?e.rewindTargetId:void 0,n=typeof e.truncatedCount=="number"?e.truncatedCount:void 0;return{...t!==void 0?{rewindTargetId:t}:{},...n!==void 0?{truncatedCount:n}:{}}}o(Xq,"legacyRewindDetails");function Yq(e,t,n){return t.has(e.id)?!0:e.type!=="client_notice"&&e.type!=="rewind_marker"?!1:e.parentId===null?n===null:t.has(e.parentId)}o(Yq,"transcriptEntryActive");function Us(e){return{entryId:e.id,parentId:e.parentId,logicalId:e.logicalId??e.id,...e.sourceEntryId!==void 0?{sourceEntryId:e.sourceEntryId}:{}}}o(Us,"transcriptEntryIdentity");function C$(e,t,n){let r=Yq(e,t,n);switch(e.type){case"message":{let i=wm(e.message);if(i.length>0){let s=i[0];return{...Us(e),timestamp:e.timestamp,type:"task_result",source:i.every(a=>a.source===s.source)?s.source:void 0,turnId:vT(e.message,"turnId"),message:e.message,active:r,payload:qq(i),taskResults:i}}return e.message._source==="client_notice"?{...Us(e),timestamp:e.timestamp,type:"client_notice",source:"client",turnId:vT(e.message,"turnId"),message:e.message,active:r,payload:{content:e.message.content,entersModelContext:!1}}:{...Us(e),timestamp:e.timestamp,type:"message",source:zq(e.message),turnId:vT(e.message,"turnId"),message:e.message,active:r}}case"compaction":if(e.reason==="rewind"){let i=Xq(e.details),s=r||(e.parentId===null?n===null:t.has(e.parentId));return{...Us(e),timestamp:e.timestamp,type:"rewind_marker",source:"system",message:h$(e.summary),active:s,summary:e.summary,payload:{summary:e.summary,reason:"rewind",...i.rewindTargetId!==void 0?{rewindTargetId:i.rewindTargetId}:{},...i.truncatedCount!==void 0?{truncatedCount:i.truncatedCount}:{},...e.details!==void 0?{details:e.details}:{}}}}return{...Us(e),timestamp:e.timestamp,type:"compaction",source:"system",message:m$(e.summary,"compaction"),active:r,summary:e.summary,payload:{summary:e.summary,tokensBefore:e.tokensBefore,tokensAfter:e.tokensAfter,reason:e.reason,details:e.details}};case"rewind_marker":return{...Us(e),timestamp:e.timestamp,type:"rewind_marker",source:"system",message:h$(e.summary),active:r,summary:e.summary,payload:{summary:e.summary,rewindTargetId:e.targetId,...e.fromId!==void 0?{fromId:e.fromId}:{},truncatedCount:e.truncatedCount}};case"branch_summary":return{...Us(e),timestamp:e.timestamp,type:"branch_summary",source:"system",message:m$(e.summary,"branch_summary"),active:r,summary:e.summary,payload:{summary:e.summary,fromId:e.fromId,details:e.details}};case"client_notice":return{...Us(e),timestamp:e.timestamp,type:"client_notice",source:"client",turnId:e.turnId,message:Kq(e),active:r,payload:{source:e.source,content:e.content,entersModelContext:!1,...e.payload!==void 0?{payload:e.payload}:{}}};case"archive_marker":case"label":case"goal":case"memory_outcome_digest":case"memory_review_receipt":return null;default:return e}}o(C$,"toTranscriptEntry");function Jq(e){let t=I$(e);return e.entries.map(n=>C$(n,t,e.activeEntryId)).filter(n=>n!==null)}o(Jq,"buildTranscriptEntries");async function Qq(e){return Zq(e,void 0)}o(Qq,"loadSession");async function Zq(e,t){return bT(e,ci(t))}o(Zq,"loadSessionImpl");async function bT(e,t){try{return await t.load(e)}catch{return null}}o(bT,"loadSessionWithStorage");async function eX(e){return uX(e,void 0)}o(eX,"loadFullTranscript");async function tX(e,t={}){return v$(e,void 0,t)}o(tX,"readFullTranscript");async function nX(e,t={}){return RT(e,ci(),t)}o(nX,"readConversationHistory");function T$(e,t){return e.transcript.lineage===void 0?eA(e.transcript.activeMessages,e.sourceRevision,t):Dg(Ga(e.transcript.lineage,e.sourceRevision,t),e.transcript.lineage,e.sessionId??"",e.data.extensionRecords??[])}o(T$,"conversationHistoryFromCapture");async function rX(e,t={}){return Xo(e,ci(),t)}o(rX,"readSessionCapture");async function iX(e,t={}){if(t.signal?.aborted)throw new Ie("read_cancelled","Session bundle export cancelled");let n=Hn.resolve(t.sessionsDir??fs),r=cX(t.timeoutMs),i=(async()=>{let s=await N_(n,e,t.signal);if(s.candidates.length===0)return{sessionId:e,status:"missing",files:[],diagnostics:[]};if(s.candidates.length>1)return{sessionId:e,status:"ambiguous",files:[],candidates:s.candidates,diagnostics:[]};let a=s.files.map(l=>({kind:l.kind,path:l.path,byteLength:l.bytes.length,sha256:Dq("sha256").update(l.bytes).digest("hex"),modifiedAt:l.modifiedAt,content:l.bytes.toString("utf8"),contentBase64:l.bytes.toString("base64")})),c=a.flatMap(oX);return{sessionId:e,status:aX(c),files:a,diagnostics:c}})();return lX(i,t,r)}o(iX,"exportSessionBundle");function oX(e){let t=[],n=e.content.split(/\r?\n/),r=-1;for(let i=n.length-1;i>=0;i-=1)if((n[i]??"").trim().length>0){r=i;break}for(let i=0;i<=r;i+=1){let s=n[i]??"";if(!s.trim())continue;let a;try{a=JSON.parse(s)}catch{t.push({code:i===r?"partial_tail":"malformed_record",file:e.path,line:i+1,message:i===r?"Trailing partial record was preserved verbatim.":"Malformed record was preserved verbatim."});continue}if(e.kind==="main"&&i===0&&jy(a)&&a._type==="meta"&&a.lineageVersion!==void 0&&a.lineageVersion!==2){t.push({code:"unsupported_version",file:e.path,line:1,message:`Unsupported Session lineage version: ${String(a.lineageVersion)}`});continue}sX(a,e.kind)||t.push({code:"unsupported_record",file:e.path,line:i+1,message:"Unknown record was preserved verbatim."})}return t}o(oX,"inspectSessionBundleFile");function sX(e,t){return jy(e)?t!=="main"?e._type==="archive_batch"||e._type==="archived_entry":e._type==="meta"||e._type==="meta_update"||e._type==="lineage_entry"||e._type==="artifact_ledger_entry"||e._type==="extension_record"?!0:(e.role==="user"||e.role==="assistant"||e.role==="system")&&(typeof e.content=="string"||Array.isArray(e.content)):!1}o(sX,"isRecognizedBundleRecord");function aX(e){return e.some(t=>t.code==="malformed_record")?"corrupt":e.some(t=>t.code==="unsupported_record"||t.code==="unsupported_version")?"unsupported":e.some(t=>t.code==="partial_tail")?"partial":"ok"}o(aX,"bundleExportStatus");function cX(e){let t=e??15e3;if(!Number.isSafeInteger(t)||t<=0)throw new Error("Session bundle export timeoutMs must be a positive safe integer");return t}o(cX,"normalizeBundleExportTimeout");async function lX(e,t,n){let r,i;try{return await Promise.race([e,new Promise((s,a)=>{r=setTimeout(()=>a(new Ie("read_timeout",`Session bundle export timed out after ${n}ms`)),n),t.signal!==void 0&&(i=o(()=>a(new Ie("read_cancelled","Session bundle export cancelled")),"abort"),t.signal.addEventListener("abort",i,{once:!0}))})])}finally{r!==void 0&&clearTimeout(r),i!==void 0&&t.signal?.removeEventListener("abort",i)}}o(lX,"raceBundleExport");async function uX(e,t){try{return await v$(e,t,{})}catch{return null}}o(uX,"loadFullTranscriptImpl");async function v$(e,t,n){return(await Xo(e,ci(t),n))?.transcript??null}o(v$,"readFullTranscriptImpl");async function Xo(e,t,n){let r=await t.readFullSnapshot(e,n);if(r===null)return null;let i=dX(r);return{sessionId:e,data:r.data,transcript:i,sourceRevision:r.sourceRevision,sourceRevisionState:r.sourceRevisionState,boundaryRevision:r.boundaryRevision}}o(Xo,"readSessionCaptureWithStorage");async function RT(e,t,n){let r=Date.now(),i=await Xo(e,t,n);if(i===null)return null;let s=T$(i,()=>Gf(n,r));return await new Promise(a=>setImmediate(a)),Gf(n,r),s}o(RT,"readConversationHistoryWithStorage");function dX(e){if(e.lineage===null)return{...e.data,activeMessages:e.data.messages,transcriptEntries:[]};let t=Jq(e.lineage);return{...e.data,messages:t.filter(n=>n.type!=="rewind_marker").map(n=>n.message),activeMessages:e.data.messages,transcriptEntries:t,lineage:e.lineage}}o(dX,"fullTranscriptFromSnapshot");function fX(e){let t=e?.trim();return t&&t.length>0?t:"client"}o(fX,"normalizeClientNoticeSource");function pX(e,t){let n=`notice_${Bq().replace(/-/g,"").slice(0,12)}`;return{type:"client_notice",id:n,parentId:e.activeEntryId,timestamp:t.timestamp??new Date().toISOString(),logicalId:n,source:fX(t.source),content:t.content,...t.turnId!==void 0?{turnId:t.turnId}:{},...t.payload!==void 0?{payload:t.payload}:{}}}o(pX,"createClientNoticeEntry");async function mX(e,t){return hX(e,t,void 0)}o(mX,"appendClientNotice");async function hX(e,t,n){return kT(e,t,ci(n))}o(hX,"appendClientNoticeImpl");async function kT(e,t,n){try{let r=await n.load(e);if(!r)return null;let i=r.lineage??it(r.messages),s=pX(i,t),a={...i,entries:[...i.entries,s]},c={...r,lineage:a,messages:r.messages};await n.appendSessionDelta(e,c);let l=I$(a);return C$(s,l,a.activeEntryId)}catch{return null}}o(kT,"appendClientNoticeWithStorage");async function b$(e,t){return R$(e,t,void 0)}o(b$,"forkSession");async function R$(e,t,n){try{if(t?.selector!==void 0&&t.historyBoundary!==void 0)return null;let r=t?.historyBoundary;return await ci(n).fork(e,r?.boundaryId??t?.selector,{sessionId:t?.sessionId,title:t?.title,...r!==void 0?{historyBoundary:{sourceRevision:r.sourceRevision}}:{}})}catch{return null}}o(R$,"forkSessionImpl");async function k$(e,t){return E$(e,t,void 0)}o(k$,"rewindSession");async function E$(e,t,n,r){try{if(t?.selector!==void 0&&t.historyBoundary!==void 0)return null;let i=t?.historyBoundary;return await ci(n,r).rewind(e,i?.boundaryId??t?.selector,i===void 0?void 0:{historyBoundary:{sourceRevision:i.sourceRevision}})}catch{return null}}o(E$,"rewindSessionImpl");async function M$(e,t,n){return A$(e,t,void 0,void 0,n)}o(M$,"setActiveEntry");async function A$(e,t,n,r,i){try{return await ci(n,r).setActiveEntry(e,t,i)}catch{return null}}o(A$,"setActiveEntryImpl");async function Wy(){try{return pb({excludePid:process.pid}).map(t=>({pid:t.pid,startedAt:t.state.meta.startedAt,cwd:t.state.meta.cwd,sessionId:t.state.sessionId}))}catch{return[]}}o(Wy,"listRunningSessions");async function _$(e){return P$(e,void 0)}o(_$,"deleteSession");async function P$(e,t){try{let r=(await Wy()).find(i=>i.sessionId===e);return r?{error:{code:"session_running",runningProcess:{pid:r.pid,startedAt:r.startedAt}}}:(await ci(t).delete(e),{ok:!0})}catch(n){return Ge({source:"session.public-api",level:"error",message:"Session deletion failed.",detail:{sessionId:e,error:n}}),{error:{code:"delete_failed"}}}}o(P$,"deleteSessionImpl");async function L$(e){return O$(e,void 0)}o(L$,"archiveSession");async function O$(e,t){try{return await ci(t).archive(e)}catch(n){return Ge({source:"session.public-api",level:"error",message:"Session archive failed.",detail:{sessionId:e,error:n}}),!1}}o(O$,"archiveSessionImpl");async function $$(e){return N$(e,void 0)}o($$,"unarchiveSession");async function N$(e,t){try{return await ci(t).unarchive(e)}catch(n){return Ge({source:"session.public-api",level:"error",message:"Session unarchive failed.",detail:{sessionId:e,error:n}}),!1}}o(N$,"unarchiveSessionImpl");function D$(e){return B$(e,void 0)}o(D$,"watchSessions");function B$(e,t){let n=g$(t);return qa(n).catch(()=>{}),process.platform==="win32"?wX(e,n):gX(e,n)}o(B$,"watchSessionsImpl");function ET(e){let t=Hn.basename(e);return!t.endsWith(".jsonl")||t.endsWith(".archive.jsonl")||t.endsWith(".islands.jsonl")||t.startsWith(".")?null:t.slice(0,-6)}o(ET,"sessionIdFromFilename");function gX(e,t){let n=null,r=!1,i=new Map;function s(c,l){let u=i.get(l);u!==void 0&&clearTimeout(u);let d=setTimeout(()=>{i.delete(l),r||e({kind:c,sessionId:l})},100);i.set(l,d)}o(s,"emitDebounced");function a(){if(!r)try{if(!sc.existsSync(t)){setTimeout(a,1e3);return}let c=o((l,u)=>{if(!u)return;let d=typeof u=="string"?u:u.toString(),p=ET(d);if(!p)return;let m=l==="rename"?yX(t,d):"change";s(m,p)},"onEvent");try{n=sc.watch(t,{recursive:!0},c)}catch{n=sc.watch(t,c)}n.on("error",()=>{n?.close(),n=null,r||setTimeout(a,1e3)})}catch{}}return o(a,"startWatch"),a(),{close(){r=!0,n?.close(),n=null;for(let c of i.values())clearTimeout(c);i.clear()}}}o(gX,"watchSessionsPosix");function yX(e,t){try{return sc.statSync(Hn.join(e,t)),"add"}catch{return"remove"}}o(yX,"detectRenameKind");function wX(e,t){let n=!1,r=new Set;function i(c,l){try{for(let u of sc.readdirSync(l)){let d=ET(u);d&&c.add(d)}}catch{}}o(i,"addIds");function s(){let c=new Set;try{if(!sc.existsSync(t))return c;for(let l of sc.readdirSync(t,{withFileTypes:!0}))if(l.isFile()){let u=ET(l.name);u&&c.add(u)}else if(l.isDirectory()&&!l.name.startsWith(".")){let u=Hn.join(t,l.name);i(c,u),i(c,Hn.join(u,"archived"))}}catch{}return c}o(s,"buildSnapshot"),r=s();let a=setInterval(()=>{if(n)return;let c=s();for(let l of c)r.has(l)||e({kind:"add",sessionId:l});for(let l of r)c.has(l)||e({kind:"remove",sessionId:l});r=c},1e3);return{close(){n=!0,clearInterval(a)}}}o(wX,"watchSessionsWindows");function SX(e){let t=e?.sessionsDir,n=e?.configHome,r=t!==void 0||n!==void 0?new Ri({...t===void 0?{}:{sessionsDir:t},...n===void 0?{}:{configHome:n}}):new Ri;return t===void 0&&n===void 0?{listSessions:w$,loadSession:o(i=>bT(i,r),"loadSession"),loadFullTranscript:o(async i=>{try{return(await Xo(i,r,{}))?.transcript??null}catch{return null}},"loadFullTranscript"),readFullTranscript:o(async(i,s)=>(await Xo(i,r,s??{}))?.transcript??null,"readFullTranscript"),readConversationHistory:o((i,s)=>RT(i,r,s??{}),"readConversationHistory"),readSessionCapture:o((i,s)=>Xo(i,r,s??{}),"readSessionCapture"),appendClientNotice:o((i,s)=>kT(i,s,r),"appendClientNotice"),forkSession:b$,rewindSession:k$,setActiveEntry:M$,deleteSession:_$,archiveSession:L$,unarchiveSession:$$,listRunningSessions:Wy,watchSessions:D$,compactSession:o((i,s)=>up(i,{...s,storage:r}),"compactSession"),storage:r}:{listSessions:o(i=>S$(i,t),"listSessions"),loadSession:o(i=>bT(i,r),"loadSession"),loadFullTranscript:o(async i=>{try{return(await Xo(i,r,{}))?.transcript??null}catch{return null}},"loadFullTranscript"),readFullTranscript:o(async(i,s)=>(await Xo(i,r,s??{}))?.transcript??null,"readFullTranscript"),readConversationHistory:o((i,s)=>RT(i,r,s??{}),"readConversationHistory"),readSessionCapture:o((i,s)=>Xo(i,r,s??{}),"readSessionCapture"),appendClientNotice:o((i,s)=>kT(i,s,r),"appendClientNotice"),forkSession:o((i,s)=>R$(i,s,t),"forkSession"),rewindSession:o((i,s)=>E$(i,s,t,n),"rewindSession"),setActiveEntry:o((i,s,a)=>A$(i,s,t,n,a),"setActiveEntry"),deleteSession:o(i=>P$(i,t),"deleteSession"),archiveSession:o(i=>O$(i,t),"archiveSession"),unarchiveSession:o(i=>N$(i,t),"unarchiveSession"),listRunningSessions:Wy,watchSessions:o(i=>B$(i,t),"watchSessions"),compactSession:o((i,s)=>up(i,{...s,storage:r}),"compactSession"),storage:r}}o(SX,"createSessionManager");export{Ed as a,NN as b,Md as c,DN as d,Km as e,zm as f,dS as g,fS as h,pS as i,mS as j,Ca as k,xS as l,ji as m,$d as n,rl as o,il as p,Nd as q,nh as r,Dd as s,CS as t,Ta as u,va as v,ol as w,ba as x,sl as y,Ra as z,al as A,rh as B,ih as C,cl as D,Hr as E,To as F,Ui as G,C1 as H,gr as I,Bd as J,TS as K,vS as L,sr as M,bS as N,RS as O,s0 as P,a0 as Q,ye as R,l6 as S,lx as T,BH as U,Oh as V,nf as W,Jk as X,UH as Y,VH as Z,fx as _,$h as $,px as aa,eE as ba,gx as ca,$a as da,Nh as ea,yx as fa,of as ga,Sx as ha,Rl as ia,IF as ja,Ir as ka,yE as la,wE as ma,kF as na,EF as oa,hW as pa,Ba as qa,yW as ra,Al as sa,OW as ta,NW as ua,DW as va,bs as wa,ff as xa,rM as ya,Cr as za,Ha as Aa,pf as Ba,Ux as Ca,Vx as Da,qW as Ea,Kx as Fa,zx as Ga,sg as Ha,ag as Ia,cg as Ja,Xx as Ka,ug as La,lg as Ma,Qx as Na,dg as Oa,mf as Pa,hf as Qa,SM as Ra,pg as Sa,eI as Ta,nI as Ua,iI as Va,mg as Wa,oI as Xa,hg as Ya,gg as Za,sI as _a,aI as $a,uI as ab,yg as bb,xf as cb,If as db,NM as eb,Tj as fb,vj as gb,BM as hb,Ej as ib,Mj as jb,Cf as kb,Ci as lb,Tf as mb,Bl as nb,Hl as ob,Hj as pb,Sg as qb,Fj as rb,Wj as sb,bf as tb,yI as ub,Ef as vb,Fl as wb,Wl as xb,Lo as yb,Ie as zb,Ri as Ab,yT as Bb,AV as Cb,dC as Db,PV as Eb,$V as Fb,U_ as Gb,V_ as Hb,NV as Ib,BV as Jb,Xf as Kb,HV as Lb,FV as Mb,Ny as Nb,wT as Ob,n$ as Pb,ST as Qb,gq as Rb,TT as Sb,Sq as Tb,xq as Ub,Iq as Vb,Cq as Wb,Tq as Xb,vq as Yb,bq as Zb,Rq as _b,d$ as $b,$q as ac,up as bc,w$ as cc,Qq as dc,eX as ec,tX as fc,nX as gc,T$ as hc,rX as ic,iX as jc,mX as kc,b$ as lc,k$ as mc,M$ as nc,Wy as oc,_$ as pc,L$ as qc,$$ as rc,D$ as sc,SX as tc};
|
|
351
|
+
${e}`}}o(m$,"summaryMessage");function h$(e){return{role:"system",content:`[Rewind] ${e}`}}o(h$,"rewindMarkerMessage");function Kq(e){return{role:"system",content:e.content,_source:"client_notice",timestamp:e.timestamp,...e.turnId!==void 0?{turnId:e.turnId}:{}}}o(Kq,"clientNoticeMessage");function bT(e,t){let n=e[t];return typeof n=="string"?n:void 0}o(bT,"messageStringField");function zq(e){if(e.role==="user")return"user";if(e.role==="assistant")return"assistant";if(e.role==="system")return"system"}o(zq,"messageSource");function qq(e){return e.length===1?e[0]:e[0]?{type:"task_result",results:e}:void 0}o(qq,"taskResultPayload");function Xq(e){if(!jy(e))return{};let t=typeof e.rewindTargetId=="string"?e.rewindTargetId:void 0,n=typeof e.truncatedCount=="number"?e.truncatedCount:void 0;return{...t!==void 0?{rewindTargetId:t}:{},...n!==void 0?{truncatedCount:n}:{}}}o(Xq,"legacyRewindDetails");function Yq(e,t,n){return t.has(e.id)?!0:e.type!=="client_notice"&&e.type!=="rewind_marker"?!1:e.parentId===null?n===null:t.has(e.parentId)}o(Yq,"transcriptEntryActive");function Vs(e){return{entryId:e.id,parentId:e.parentId,logicalId:e.logicalId??e.id,...e.sourceEntryId!==void 0?{sourceEntryId:e.sourceEntryId}:{}}}o(Vs,"transcriptEntryIdentity");function C$(e,t,n){let r=Yq(e,t,n);switch(e.type){case"message":{let i=ym(e.message);if(i.length>0){let s=i[0];return{...Vs(e),timestamp:e.timestamp,type:"task_result",source:i.every(a=>a.source===s.source)?s.source:void 0,turnId:bT(e.message,"turnId"),message:e.message,active:r,payload:qq(i),taskResults:i}}return e.message._source==="client_notice"?{...Vs(e),timestamp:e.timestamp,type:"client_notice",source:"client",turnId:bT(e.message,"turnId"),message:e.message,active:r,payload:{content:e.message.content,entersModelContext:!1}}:{...Vs(e),timestamp:e.timestamp,type:"message",source:zq(e.message),turnId:bT(e.message,"turnId"),message:e.message,active:r}}case"compaction":if(e.reason==="rewind"){let i=Xq(e.details),s=r||(e.parentId===null?n===null:t.has(e.parentId));return{...Vs(e),timestamp:e.timestamp,type:"rewind_marker",source:"system",message:h$(e.summary),active:s,summary:e.summary,payload:{summary:e.summary,reason:"rewind",...i.rewindTargetId!==void 0?{rewindTargetId:i.rewindTargetId}:{},...i.truncatedCount!==void 0?{truncatedCount:i.truncatedCount}:{},...e.details!==void 0?{details:e.details}:{}}}}return{...Vs(e),timestamp:e.timestamp,type:"compaction",source:"system",message:m$(e.summary,"compaction"),active:r,summary:e.summary,payload:{summary:e.summary,tokensBefore:e.tokensBefore,tokensAfter:e.tokensAfter,reason:e.reason,details:e.details}};case"rewind_marker":return{...Vs(e),timestamp:e.timestamp,type:"rewind_marker",source:"system",message:h$(e.summary),active:r,summary:e.summary,payload:{summary:e.summary,rewindTargetId:e.targetId,...e.fromId!==void 0?{fromId:e.fromId}:{},truncatedCount:e.truncatedCount}};case"branch_summary":return{...Vs(e),timestamp:e.timestamp,type:"branch_summary",source:"system",message:m$(e.summary,"branch_summary"),active:r,summary:e.summary,payload:{summary:e.summary,fromId:e.fromId,details:e.details}};case"client_notice":return{...Vs(e),timestamp:e.timestamp,type:"client_notice",source:"client",turnId:e.turnId,message:Kq(e),active:r,payload:{source:e.source,content:e.content,entersModelContext:!1,...e.payload!==void 0?{payload:e.payload}:{}}};case"archive_marker":case"label":case"goal":case"memory_outcome_digest":case"memory_review_receipt":return null;default:return e}}o(C$,"toTranscriptEntry");function Jq(e){let t=I$(e);return e.entries.map(n=>C$(n,t,e.activeEntryId)).filter(n=>n!==null)}o(Jq,"buildTranscriptEntries");async function Qq(e){return Zq(e,void 0)}o(Qq,"loadSession");async function Zq(e,t){return RT(e,ci(t))}o(Zq,"loadSessionImpl");async function RT(e,t){try{return await t.load(e)}catch{return null}}o(RT,"loadSessionWithStorage");async function eX(e){return uX(e,void 0)}o(eX,"loadFullTranscript");async function tX(e,t={}){return v$(e,void 0,t)}o(tX,"readFullTranscript");async function nX(e,t={}){return kT(e,ci(),t)}o(nX,"readConversationHistory");function T$(e,t){return e.transcript.lineage===void 0?eA(e.transcript.activeMessages,e.sourceRevision,t):Dg(Ka(e.transcript.lineage,e.sourceRevision,t),e.transcript.lineage,e.sessionId??"",e.data.extensionRecords??[])}o(T$,"conversationHistoryFromCapture");async function rX(e,t={}){return Xo(e,ci(),t)}o(rX,"readSessionCapture");async function iX(e,t={}){if(t.signal?.aborted)throw new Ie("read_cancelled","Session bundle export cancelled");let n=Hn.resolve(t.sessionsDir??fs),r=cX(t.timeoutMs),i=(async()=>{let s=await N_(n,e,t.signal);if(s.candidates.length===0)return{sessionId:e,status:"missing",files:[],diagnostics:[]};if(s.candidates.length>1)return{sessionId:e,status:"ambiguous",files:[],candidates:s.candidates,diagnostics:[]};let a=s.files.map(l=>({kind:l.kind,path:l.path,byteLength:l.bytes.length,sha256:Dq("sha256").update(l.bytes).digest("hex"),modifiedAt:l.modifiedAt,content:l.bytes.toString("utf8"),contentBase64:l.bytes.toString("base64")})),c=a.flatMap(oX);return{sessionId:e,status:aX(c),files:a,diagnostics:c}})();return lX(i,t,r)}o(iX,"exportSessionBundle");function oX(e){let t=[],n=e.content.split(/\r?\n/),r=-1;for(let i=n.length-1;i>=0;i-=1)if((n[i]??"").trim().length>0){r=i;break}for(let i=0;i<=r;i+=1){let s=n[i]??"";if(!s.trim())continue;let a;try{a=JSON.parse(s)}catch{t.push({code:i===r?"partial_tail":"malformed_record",file:e.path,line:i+1,message:i===r?"Trailing partial record was preserved verbatim.":"Malformed record was preserved verbatim."});continue}if(e.kind==="main"&&i===0&&jy(a)&&a._type==="meta"&&a.lineageVersion!==void 0&&a.lineageVersion!==2){t.push({code:"unsupported_version",file:e.path,line:1,message:`Unsupported Session lineage version: ${String(a.lineageVersion)}`});continue}sX(a,e.kind)||t.push({code:"unsupported_record",file:e.path,line:i+1,message:"Unknown record was preserved verbatim."})}return t}o(oX,"inspectSessionBundleFile");function sX(e,t){return jy(e)?t!=="main"?e._type==="archive_batch"||e._type==="archived_entry":e._type==="meta"||e._type==="meta_update"||e._type==="lineage_entry"||e._type==="artifact_ledger_entry"||e._type==="extension_record"?!0:(e.role==="user"||e.role==="assistant"||e.role==="system")&&(typeof e.content=="string"||Array.isArray(e.content)):!1}o(sX,"isRecognizedBundleRecord");function aX(e){return e.some(t=>t.code==="malformed_record")?"corrupt":e.some(t=>t.code==="unsupported_record"||t.code==="unsupported_version")?"unsupported":e.some(t=>t.code==="partial_tail")?"partial":"ok"}o(aX,"bundleExportStatus");function cX(e){let t=e??15e3;if(!Number.isSafeInteger(t)||t<=0)throw new Error("Session bundle export timeoutMs must be a positive safe integer");return t}o(cX,"normalizeBundleExportTimeout");async function lX(e,t,n){let r,i;try{return await Promise.race([e,new Promise((s,a)=>{r=setTimeout(()=>a(new Ie("read_timeout",`Session bundle export timed out after ${n}ms`)),n),t.signal!==void 0&&(i=o(()=>a(new Ie("read_cancelled","Session bundle export cancelled")),"abort"),t.signal.addEventListener("abort",i,{once:!0}))})])}finally{r!==void 0&&clearTimeout(r),i!==void 0&&t.signal?.removeEventListener("abort",i)}}o(lX,"raceBundleExport");async function uX(e,t){try{return await v$(e,t,{})}catch{return null}}o(uX,"loadFullTranscriptImpl");async function v$(e,t,n){return(await Xo(e,ci(t),n))?.transcript??null}o(v$,"readFullTranscriptImpl");async function Xo(e,t,n){let r=await t.readFullSnapshot(e,n);if(r===null)return null;let i=dX(r);return{sessionId:e,data:r.data,transcript:i,sourceRevision:r.sourceRevision,sourceRevisionState:r.sourceRevisionState,boundaryRevision:r.boundaryRevision}}o(Xo,"readSessionCaptureWithStorage");async function kT(e,t,n){let r=Date.now(),i=await Xo(e,t,n);if(i===null)return null;let s=T$(i,()=>Gf(n,r));return await new Promise(a=>setImmediate(a)),Gf(n,r),s}o(kT,"readConversationHistoryWithStorage");function dX(e){if(e.lineage===null)return{...e.data,activeMessages:e.data.messages,transcriptEntries:[]};let t=Jq(e.lineage);return{...e.data,messages:t.filter(n=>n.type!=="rewind_marker").map(n=>n.message),activeMessages:e.data.messages,transcriptEntries:t,lineage:e.lineage}}o(dX,"fullTranscriptFromSnapshot");function fX(e){let t=e?.trim();return t&&t.length>0?t:"client"}o(fX,"normalizeClientNoticeSource");function pX(e,t){let n=`notice_${Bq().replace(/-/g,"").slice(0,12)}`;return{type:"client_notice",id:n,parentId:e.activeEntryId,timestamp:t.timestamp??new Date().toISOString(),logicalId:n,source:fX(t.source),content:t.content,...t.turnId!==void 0?{turnId:t.turnId}:{},...t.payload!==void 0?{payload:t.payload}:{}}}o(pX,"createClientNoticeEntry");async function mX(e,t){return hX(e,t,void 0)}o(mX,"appendClientNotice");async function hX(e,t,n){return ET(e,t,ci(n))}o(hX,"appendClientNoticeImpl");async function ET(e,t,n){try{let r=await n.load(e);if(!r)return null;let i=r.lineage??it(r.messages),s=pX(i,t),a={...i,entries:[...i.entries,s]},c={...r,lineage:a,messages:r.messages};await n.appendSessionDelta(e,c);let l=I$(a);return C$(s,l,a.activeEntryId)}catch{return null}}o(ET,"appendClientNoticeWithStorage");async function b$(e,t){return R$(e,t,void 0)}o(b$,"forkSession");async function R$(e,t,n){try{if(t?.selector!==void 0&&t.historyBoundary!==void 0)return null;let r=t?.historyBoundary;return await ci(n).fork(e,r?.boundaryId??t?.selector,{sessionId:t?.sessionId,title:t?.title,...r!==void 0?{historyBoundary:{sourceRevision:r.sourceRevision}}:{}})}catch{return null}}o(R$,"forkSessionImpl");async function k$(e,t){return E$(e,t,void 0)}o(k$,"rewindSession");async function E$(e,t,n,r){try{if(t?.selector!==void 0&&t.historyBoundary!==void 0)return null;let i=t?.historyBoundary;return await ci(n,r).rewind(e,i?.boundaryId??t?.selector,i===void 0?void 0:{historyBoundary:{sourceRevision:i.sourceRevision}})}catch{return null}}o(E$,"rewindSessionImpl");async function M$(e,t,n){return A$(e,t,void 0,void 0,n)}o(M$,"setActiveEntry");async function A$(e,t,n,r,i){try{return await ci(n,r).setActiveEntry(e,t,i)}catch{return null}}o(A$,"setActiveEntryImpl");async function Wy(){try{return mb({excludePid:process.pid}).map(t=>({pid:t.pid,startedAt:t.state.meta.startedAt,cwd:t.state.meta.cwd,sessionId:t.state.sessionId}))}catch{return[]}}o(Wy,"listRunningSessions");async function _$(e){return P$(e,void 0)}o(_$,"deleteSession");async function P$(e,t){try{let r=(await Wy()).find(i=>i.sessionId===e);return r?{error:{code:"session_running",runningProcess:{pid:r.pid,startedAt:r.startedAt}}}:(await ci(t).delete(e),{ok:!0})}catch(n){return Ge({source:"session.public-api",level:"error",message:"Session deletion failed.",detail:{sessionId:e,error:n}}),{error:{code:"delete_failed"}}}}o(P$,"deleteSessionImpl");async function L$(e){return O$(e,void 0)}o(L$,"archiveSession");async function O$(e,t){try{return await ci(t).archive(e)}catch(n){return Ge({source:"session.public-api",level:"error",message:"Session archive failed.",detail:{sessionId:e,error:n}}),!1}}o(O$,"archiveSessionImpl");async function $$(e){return N$(e,void 0)}o($$,"unarchiveSession");async function N$(e,t){try{return await ci(t).unarchive(e)}catch(n){return Ge({source:"session.public-api",level:"error",message:"Session unarchive failed.",detail:{sessionId:e,error:n}}),!1}}o(N$,"unarchiveSessionImpl");function D$(e){return B$(e,void 0)}o(D$,"watchSessions");function B$(e,t){let n=g$(t);return Xa(n).catch(()=>{}),process.platform==="win32"?wX(e,n):gX(e,n)}o(B$,"watchSessionsImpl");function MT(e){let t=Hn.basename(e);return!t.endsWith(".jsonl")||t.endsWith(".archive.jsonl")||t.endsWith(".islands.jsonl")||t.startsWith(".")?null:t.slice(0,-6)}o(MT,"sessionIdFromFilename");function gX(e,t){let n=null,r=!1,i=new Map;function s(c,l){let u=i.get(l);u!==void 0&&clearTimeout(u);let d=setTimeout(()=>{i.delete(l),r||e({kind:c,sessionId:l})},100);i.set(l,d)}o(s,"emitDebounced");function a(){if(!r)try{if(!ac.existsSync(t)){setTimeout(a,1e3);return}let c=o((l,u)=>{if(!u)return;let d=typeof u=="string"?u:u.toString(),p=MT(d);if(!p)return;let m=l==="rename"?yX(t,d):"change";s(m,p)},"onEvent");try{n=ac.watch(t,{recursive:!0},c)}catch{n=ac.watch(t,c)}n.on("error",()=>{n?.close(),n=null,r||setTimeout(a,1e3)})}catch{}}return o(a,"startWatch"),a(),{close(){r=!0,n?.close(),n=null;for(let c of i.values())clearTimeout(c);i.clear()}}}o(gX,"watchSessionsPosix");function yX(e,t){try{return ac.statSync(Hn.join(e,t)),"add"}catch{return"remove"}}o(yX,"detectRenameKind");function wX(e,t){let n=!1,r=new Set;function i(c,l){try{for(let u of ac.readdirSync(l)){let d=MT(u);d&&c.add(d)}}catch{}}o(i,"addIds");function s(){let c=new Set;try{if(!ac.existsSync(t))return c;for(let l of ac.readdirSync(t,{withFileTypes:!0}))if(l.isFile()){let u=MT(l.name);u&&c.add(u)}else if(l.isDirectory()&&!l.name.startsWith(".")){let u=Hn.join(t,l.name);i(c,u),i(c,Hn.join(u,"archived"))}}catch{}return c}o(s,"buildSnapshot"),r=s();let a=setInterval(()=>{if(n)return;let c=s();for(let l of c)r.has(l)||e({kind:"add",sessionId:l});for(let l of r)c.has(l)||e({kind:"remove",sessionId:l});r=c},1e3);return{close(){n=!0,clearInterval(a)}}}o(wX,"watchSessionsWindows");function SX(e){let t=e?.sessionsDir,n=e?.configHome,r=t!==void 0||n!==void 0?new Ri({...t===void 0?{}:{sessionsDir:t},...n===void 0?{}:{configHome:n}}):new Ri;return t===void 0&&n===void 0?{listSessions:w$,loadSession:o(i=>RT(i,r),"loadSession"),loadFullTranscript:o(async i=>{try{return(await Xo(i,r,{}))?.transcript??null}catch{return null}},"loadFullTranscript"),readFullTranscript:o(async(i,s)=>(await Xo(i,r,s??{}))?.transcript??null,"readFullTranscript"),readConversationHistory:o((i,s)=>kT(i,r,s??{}),"readConversationHistory"),readSessionCapture:o((i,s)=>Xo(i,r,s??{}),"readSessionCapture"),appendClientNotice:o((i,s)=>ET(i,s,r),"appendClientNotice"),forkSession:b$,rewindSession:k$,setActiveEntry:M$,deleteSession:_$,archiveSession:L$,unarchiveSession:$$,listRunningSessions:Wy,watchSessions:D$,compactSession:o((i,s)=>up(i,{...s,storage:r}),"compactSession"),storage:r}:{listSessions:o(i=>S$(i,t),"listSessions"),loadSession:o(i=>RT(i,r),"loadSession"),loadFullTranscript:o(async i=>{try{return(await Xo(i,r,{}))?.transcript??null}catch{return null}},"loadFullTranscript"),readFullTranscript:o(async(i,s)=>(await Xo(i,r,s??{}))?.transcript??null,"readFullTranscript"),readConversationHistory:o((i,s)=>kT(i,r,s??{}),"readConversationHistory"),readSessionCapture:o((i,s)=>Xo(i,r,s??{}),"readSessionCapture"),appendClientNotice:o((i,s)=>ET(i,s,r),"appendClientNotice"),forkSession:o((i,s)=>R$(i,s,t),"forkSession"),rewindSession:o((i,s)=>E$(i,s,t,n),"rewindSession"),setActiveEntry:o((i,s,a)=>A$(i,s,t,n,a),"setActiveEntry"),deleteSession:o(i=>P$(i,t),"deleteSession"),archiveSession:o(i=>O$(i,t),"archiveSession"),unarchiveSession:o(i=>N$(i,t),"unarchiveSession"),listRunningSessions:Wy,watchSessions:o(i=>B$(i,t),"watchSessions"),compactSession:o((i,s)=>up(i,{...s,storage:r}),"compactSession"),storage:r}}o(SX,"createSessionManager");export{Md as a,NN as b,Ad as c,DN as d,Km as e,zm as f,fS as g,pS as h,mS as i,hS as j,Ta as k,IS as l,ji as m,Nd as n,il as o,ol as p,Dd as q,nh as r,Bd as s,TS as t,va as u,ba as v,sl as w,Ra as x,al as y,ka as z,cl as A,rh as B,ih as C,ll as D,Hr as E,vo as F,Ui as G,C1 as H,gr as I,Hd as J,vS as K,bS as L,sr as M,RS as N,kS as O,s0 as P,a0 as Q,ye as R,l6 as S,ux as T,BH as U,Oh as V,rf as W,Jk as X,UH as Y,VH as Z,px as _,$h as $,mx as aa,eE as ba,yx as ca,Na as da,Nh as ea,wx as fa,sf as ga,xx as ha,kl as ia,IF as ja,Ir as ka,yE as la,wE as ma,kF as na,EF as oa,hW as pa,Ha as qa,yW as ra,_l as sa,OW as ta,NW as ua,DW as va,bs as wa,pf as xa,rM as ya,Cr as za,Fa as Aa,mf as Ba,Vx as Ca,Gx as Da,qW as Ea,zx as Fa,qx as Ga,sg as Ha,ag as Ia,cg as Ja,Yx as Ka,ug as La,lg as Ma,Zx as Na,dg as Oa,hf as Pa,gf as Qa,SM as Ra,pg as Sa,tI as Ta,rI as Ua,oI as Va,mg as Wa,sI as Xa,hg as Ya,gg as Za,aI as _a,cI as $a,dI as ab,yg as bb,If as cb,Cf as db,NM as eb,Tj as fb,vj as gb,BM as hb,Ej as ib,Mj as jb,Tf as kb,Ci as lb,vf as mb,Hl as nb,Fl as ob,Hj as pb,Sg as qb,Fj as rb,Wj as sb,Rf as tb,wI as ub,Mf as vb,Wl as wb,jl as xb,Oo as yb,Ie as zb,Ri as Ab,wT as Bb,AV as Cb,fC as Db,PV as Eb,$V as Fb,U_ as Gb,V_ as Hb,NV as Ib,BV as Jb,Xf as Kb,HV as Lb,FV as Mb,Ny as Nb,ST as Ob,n$ as Pb,xT as Qb,gq as Rb,vT as Sb,Sq as Tb,xq as Ub,Iq as Vb,Cq as Wb,Tq as Xb,vq as Yb,bq as Zb,Rq as _b,d$ as $b,$q as ac,up as bc,w$ as cc,Qq as dc,eX as ec,tX as fc,nX as gc,T$ as hc,rX as ic,iX as jc,mX as kc,b$ as lc,k$ as mc,M$ as nc,Wy as oc,_$ as pc,L$ as qc,$$ as rc,D$ as sc,SX as tc};
|