| 8159 | |
| 8160 | ${z.join(` |
| 8161 | |
| 8162 | `)}`}var utK=1000,znY=300,YnY=5000;var fA7=y(()=>{v8();k8();Lo6();vq6();ItK();_8()});var gtK={};T8(gtK,{useScheduledTasks:()=>$nY});function $nY({isLoading:q,assistantMode:K=!1,setMessages:_}){let z=Kl8.useRef(q);z.current=q;let Y=jz(),$=s7();Kl8.useEffect(()=>{if(!vN())return;let A=(w)=>IO({value:w,mode:"prompt",priority:"later",isMeta:!0,workload:LD8}),O=DA7({onFire:A,onFireTask:(w)=>{if(w.agentId){let H=kQ(w.agentId,Y.getState().tasks);if(H&&!mr(H.status)){be6(H.id,w.prompt,$);return}N(`[ScheduledTasks] teammate ${w.agentId} gone, removing orphaned cron ${w.id}`),Jw6([w.id]);return}let j=s0K(`Running scheduled task (${AnY(new Date)})`);_((H)=>[...H,j]),A(w.prompt)},isLoading:()=>z.current,assistantMode:K,getJitterConfig:JA7,isKilled:()=>!vN()});return O.start(),()=>O.stop()},[K])}function AnY(q){return q.toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).replace(/,? at |, /," ").replace(/ ([AP]M)/,(K,_)=>_.toLowerCase())}var Kl8;var FtK=y(()=>{C7();GN();Hb();gr();MA7();fA7();vq6();_8();p2();i1();D$6();Kl8=O6(D6(),1)});var itK={};T8(itK,{REPL:()=>GA7});import{dirname as OnY,join as wnY}from"path";import{tmpdir as jnY}from"os";import{writeFile as HnY}from"fs/promises";import{randomUUID as PM6}from"crypto";function dtK(q){let K=z6(9),{showAllInTranscript:_,virtualScroll:z,searchBadge:Y,suppressShowAll:$,status:A}=q,O=$===void 0?!1:$,w=R5("app:toggleTranscript","Global","ctrl+o"),j=R5("transcript:toggleShowAll","Transcript","ctrl+e"),H=Y?" · n/N to navigate":z?` · ${t6.arrowUp}${t6.arrowDown} scroll · home/end top/bottom`:O?"":` · ${j} to ${_?"collapse":"show all"}`,J;if(K[0]!==H||K[1]!==w)J=R8.createElement(k,{dimColor:!0},"Showing detailed transcript · ",w," to toggle",H),K[0]=H,K[1]=w,K[2]=J;else J=K[2];let M;if(K[3]!==Y||K[4]!==A)M=A?R8.createElement(R8.Fragment,null,R8.createElement(u,{flexGrow:1}),R8.createElement(k,null,A," ")):Y?R8.createElement(R8.Fragment,null,R8.createElement(u,{flexGrow:1}),R8.createElement(k,{dimColor:!0},Y.current,"/",Y.count," ")):null,K[3]=Y,K[4]=A,K[5]=M;else M=K[5];let X;if(K[6]!==J||K[7]!==M)X=R8.createElement(u,{noSelect:!0,alignItems:"center",alignSelf:"center",borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:"single",marginTop:1,paddingLeft:2,width:"100%"},J,M),K[6]=J,K[7]=M,K[8]=X;else X=K[8];return X}function vnY({jumpRef:q,count:K,current:_,onClose:z,onCancel:Y,setHighlight:$,initialQuery:A}){let{query:O,cursorOffset:w}=XR({isActive:!0,initialQuery:A,onExit:()=>z(O),onCancel:Y}),[j,H]=R8.useState("building");R8.useEffect(()=>{let P=!0,W=q.current?.warmSearchIndex;if(!W){H(null);return}return H("building"),W().then((D)=>{if(!P)return;if(D<20)H(null);else H({ms:D}),setTimeout(()=>P&&H(null),2000)}),()=>{P=!1}},[]);let J=j!=="building";K1.useEffect(()=>{if(!J)return;q.current?.setSearchQuery(O),$(O)},[O,J]);let M=w,X=M<O.length?O[M]:" ";return R8.createElement(u,{borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:"single",marginTop:1,paddingLeft:2,width:"100%",noSelect:!0},R8.createElement(k,null,"/"),R8.createElement(k,null,O.slice(0,M)),R8.createElement(k,{inverse:!0},X),M<O.length&&R8.createElement(k,null,O.slice(M+1)),R8.createElement(u,{flexGrow:1}),j==="building"?R8.createElement(k,{dimColor:!0},"indexing… "):j?R8.createElement(k,{dimColor:!0},"indexed in ",j.ms,"ms "):K===0&&O?R8.createElement(k,{color:"error"},"no matches "):K>0?R8.createElement(k,{dimColor:!0},_,"/",K," "):null)}function ltK(q){let K=z6(6),{isAnimating:_,title:z,disabled:Y,noPrefix:$}=q,A=CO(),[O,w]=K1.useState(0),j,H;if(K[0]!==Y||K[1]!==_||K[2]!==$||K[3]!==A)j=()=>{if(Y||$||!_||!A)return;let M=setInterval(VnY,knY,w);return()=>clearInterval(M)},H=[Y,$,_,A],K[0]=Y,K[1]=_,K[2]=$,K[3]=A,K[4]=j,K[5]=H;else j=K[4],H=K[5];K1.useEffect(j,H);let J=_?ntK[O]??ctK:ctK;return mZ8(Y?null:$?z:`${J} ${z}`),null}function VnY(q){return q(NnY)}function NnY(q){return(q+1)%ntK.length}function GA7({commands:q,debug:K,initialTools:_,initialMessages:z,pendingHookMessages:Y,initialFileHistorySnapshots:$,initialContentReplacements:A,initialAgentName:O,initialAgentColor:w,mcpClients:j,dynamicMcpConfig:H,autoConnectIdeFlag:J,strictMcpConfig:M=!1,systemPrompt:X,appendSystemPrompt:P,onBeforeQuery:W,onTurnComplete:D,disabled:f=!1,mainThreadAgentDefinition:G,disableSlashCommands:Z=!1,taskListId:T,remoteSessionConfig:v,directConnectConfig:V,sshSession:E,thinkingConfig:S}){let R=!!v,x=K1.useMemo(()=>i6(process.env.CLAUDE_CODE_DISABLE_TERMINAL_TITLE),[]),I=K1.useMemo(()=>!1,[]),B=K1.useMemo(()=>i6(process.env.CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL),[]),p=!1;K1.useEffect(()=>{return N(`[REPL:mount] REPL mounted, disabled=${f}`),()=>N("[REPL:unmount] REPL unmounting")},[f]);let[C,g]=K1.useState(G),F=P8((w8)=>w8.toolPermissionContext),U=P8((w8)=>w8.verbose),c=P8((w8)=>w8.mcp),K6=P8((w8)=>w8.plugins),t=P8((w8)=>w8.agentDefinitions),q6=P8((w8)=>w8.fileHistory),e=P8((w8)=>w8.initialMessage),i=pd(),$6=P8((w8)=>w8.spinnerTip),M6=P8((w8)=>w8.expandedView)==="tasks",j6=P8((w8)=>w8.pendingWorkerRequest),G6=P8((w8)=>w8.pendingSandboxRequest),w6=P8((w8)=>w8.teamContext),o=P8((w8)=>w8.tasks),s=P8((w8)=>w8.workerSandboxPermissions),a=P8((w8)=>w8.elicitation),n=P8((w8)=>w8.ultraplanPendingChoice),l=P8((w8)=>w8.ultraplanLaunchPending),A6=P8((w8)=>w8.viewingAgentTaskId),J6=s7(),X6=A6?o[A6]:void 0,f6=EJ(X6)&&X6.retain&&!X6.diskLoaded;K1.useEffect(()=>{if(!A6||!f6)return;let w8=A6;AK6(pO(w8)).then((L8)=>{J6((o8)=>{let V7=o8.tasks[w8];if(!EJ(V7)||V7.diskLoaded||!V7.retain)return o8;let J7=V7.messages??[],Yq=new Set(J7.map((N4)=>N4.uuid)),b7=L8?L8.messages.filter((N4)=>!Yq.has(N4.uuid)):[];return{...o8,tasks:{...o8.tasks,[w8]:{...V7,messages:[...b7,...J7],diskLoaded:!0}}}})})},[A6,f6,J6]);let N6=jz(),Z6=ZF(),V6=hD(),[y6,T6]=K1.useState(q);doK(R?void 0:Fz(),T6);let n6=R8.useSyncExternalStore(QtK?.subscribeToProactiveChanges??WnY,QtK?.isProactiveActive??DnY),o6=P8((w8)=>w8.isBriefOnly),I6=K1.useMemo(()=>gD(F),[F,n6,o6]);EqK(),LqK();let[C6,l6]=K1.useState(H),S6=K1.useCallback((w8)=>{l6(w8)},[l6]),[E6,R6]=K1.useState("prompt"),[h6,x6]=K1.useState(!1),[b6,Q6]=K1.useState(!1),[Y6,_6]=K1.useState(""),F6=K1.useRef(0),W6=K1.useRef(void 0),v6=K1.useRef(!1),{addNotification:m6,removeNotification:K8}=PK(),H8=fnY,M8=poK(j,c.clients),[X1,j1]=K1.useState(void 0),[h1,T7]=K1.useState(null),[X7,Y1]=K1.useState(null),[Y7,P7]=K1.useState(!1),[L1,B7]=K1.useState(()=>{return!1}),[B1,j7]=K1.useState(()=>PaK(V6)),eq=P8((w8)=>w8.showRemoteCallout),[AK,X9]=K1.useState(()=>QaK());osK(),ssK(),nsK({ideSelection:X1,mcpClients:M8,ideInstallationStatus:X7}),$sK({mcpClients:M8}),OsK(),hsK(),CsK(),lg8(),FsK(V6),OtK(),QsK(V6),csK(),XnY(),RaK(),xaK(),paK(),jsK(),_tK();let{recommendation:F3,handleResponse:xz}=TsK(),{recommendation:S3,handleResponse:P9}=NsK(),E9=K1.useMemo(()=>{return[...I6,..._]},[I6,_]);Rc8({enabled:!R});let u$=g1K();K1.useEffect(()=>{if(R)return;msK(J6)},[J6,R]),gaK(R?ZA7:M8,F.mode),_oK(J6,z,{enabled:!R});let S4=EU8(E9,c.tools,F),{tools:Mz,allowedAgentTypes:j2}=K1.useMemo(()=>{if(!C)return{tools:S4,allowedAgentTypes:void 0};let w8=$o(C,S4,!1,!0);return{tools:w8.resolvedTools,allowedAgentTypes:w8.allowedAgentTypes}},[C,S4]),wA=x$7(y6,K6.commands),s_=x$7(wA,c.commands),N5=K1.useMemo(()=>Z?[]:s_,[Z,s_]);mQK(R?ZA7:c.clients),ioK(R?ZA7:c.clients,j1);let[qK,Xq]=K1.useState("responding"),H2=K1.useRef(qK);H2.current=qK;let[Y_,m$]=K1.useState([]),[t_,a3]=K1.useState(null);K1.useEffect(()=>{if(t_&&!t_.isStreaming&&t_.streamingEndedAt){let L8=30000-(Date.now()-t_.streamingEndedAt);if(L8>0){let o8=setTimeout(a3,L8,null);return()=>clearTimeout(o8)}else a3(null)}},[t_]);let[e5,v_]=K1.useState(null),bw=K1.useRef(null);bw.current=e5;let FA=K1.useRef(()=>{}),UA=K1.useRef(()=>{}),oO=K1.useRef(null),nY=K1.useRef(null),e2=K1.useRef(0),uK=R8.useRef(new Hz7).current,e_=R8.useSyncExternalStore(uK.subscribe,uK.getSnapshot),[q3,j$]=R8.useState(v?.hasInitialPrompt??!1),fK=e_||q3,[p$,TY]=R8.useState(void 0),qz=R8.useRef(0),Kz=R8.useRef(!1),s3=R8.useRef(0),B$=R8.useRef(0),H$=R8.useRef(null),qj=R8.useCallback(()=>{s3.current=Date.now(),B$.current=0,H$.current=null},[]),DO=R8.useRef(!1);if(e_&&!DO.current)qj();DO.current=e_;let J2=R8.useCallback((w8)=>{if(j$(w8),w8)qj()},[qj]),Iz=R8.useRef(null),fO=R8.useRef(void 0),J1=R8.useRef(void 0),g7=1500,[z4,G4]=R8.useState(!1),[Tq,ZK]=K1.useState(null);K1.useEffect(()=>{if(Tq?.notifications)Tq.notifications.forEach((w8)=>{m6({key:"auto-updater-notification",text:w8,priority:"low"})})},[Tq,m6]),K1.useEffect(()=>{if(p4())Vaq().then((w8)=>{if(w8)m6({key:"tmux-mouse-hint",text:w8,priority:"low"})})},[]);let[W9,VK]=K1.useState(!1);K1.useEffect(()=>{},[]);let[r7,RK]=K1.useState(null),T3=K1.useRef(null),X5=K1.useCallback((w8)=>{if(w8?.isLocalJSXCommand){let{clearLocalJSX:L8,...o8}=w8;T3.current={...o8,isLocalJSXCommand:!0},RK(o8);return}if(T3.current){if(w8?.clearLocalJSX){T3.current=null,RK(null);return}return}if(w8?.clearLocalJSX){RK(null);return}RK(w8)},[]),[OK,L9]=K1.useState([]),[x5,iY]=K1.useState(null),[C3,y5]=K1.useState([]),[v3,_z]=K1.useState([]),w3=K1.useRef(new Map),J$=P8((w8)=>w8.settings.terminalTitleFromRename)!==!1?k0(N8()):void 0,[g$,aj]=K1.useState(),M$=K1.useRef((z?.length??0)>0),sj=C?.agentType,M2=J$??sj??g$??"Claude Code",tj=OK.length>0||v3.length>0||j6||G6,H7=r7?.isLocalJSXCommand===!0&&r7?.jsx!=null,k7=fK&&!tj&&!H7;K1.useEffect(()=>{if(fK&&!tj&&!H7)return nUK(),()=>iUK()},[fK,tj,H7]);let Uq=tj||H7?"waiting":fK?"busy":"idle",b_=Uq!=="waiting"?void 0:OK.length>0?`approve ${OK[0].tool.name}`:j6?"worker request":G6?"sandbox request":H7?"dialog open":"input needed";K1.useEffect(()=>{},[Uq,b_]);let x_=g8("tengu_terminal_sidebar",!1)&&(j8().showStatusInTerminalTab??!1);IZ8(x||!x_?null:Uq),K1.useEffect(()=>{return R7K(L9),()=>h7K()},[L9]);let[H4,sX]=K1.useState(z??[]),P5=K1.useRef(H4),xq=K1.useRef(!1),J4=K1.useCallback((w8)=>{let L8=P5.current,o8=typeof w8==="function"?w8(P5.current):w8;if(P5.current=o8,o8.length<qz.current)qz.current=0;else if(o8.length>L8.length&&Kz.current){let V7=o8.length-L8.length;if((L8.length===0||o8[0]===L8[0]?o8.slice(-V7):o8.slice(0,V7)).some(zh6))Kz.current=!1;else qz.current=o8.length}sX(o8)},[]),Xz=K1.useCallback((w8)=>{if(w8!==void 0)qz.current=P5.current.length,Kz.current=!0;else Kz.current=!1;TY(w8)},[]),{dividerIndex:aO,dividerYRef:jW,onScrollAway:kk,onRepin:gJ,jumpToNew:GT,shiftDivider:TT}=UhK(H4.length),[xw,tX]=K1.useState(null),Ox=K1.useRef(null),wx=K1.useMemo(()=>QhK(H4,aO),[aO,H4.length]),mM=K1.useCallback(()=>{oO.current?.scrollToBottom(),gJ(),tX(null)},[gJ,tX]),Ip=H4.at(-1),sd=Ip!=null&&zh6(Ip);K1.useEffect(()=>{if(sd)mM()},[sd,Ip,mM]);let{maybeLoadOlder:rH}=GnY,up=K1.useCallback((w8,L8)=>{if(e2.current=Date.now(),w8)gJ();else kk(L8)},[gJ,kk,rH,J6]),p6=UrK(Y,J4),c6=K1.useDeferredValue(H4),V8=H4.length-c6.length;if(V8>0)N(`[useDeferredValue] Messages deferred by ${V8} (${c6.length}→${H4.length})`);let[G1,d1]=K1.useState(null),[t7,NK]=K1.useState(()=>UN1()),K3=K1.useRef(t7);K3.current=t7;let vY=K1.useRef(null),k3=K1.useCallback((w8)=>{if(H8(K3.current,w8))return;if(K3.current===""&&w8!==""&&Date.now()-e2.current>=TnY)mM();K3.current=w8,NK(w8),G4(w8.trim().length>0)},[G4,mM,H8]);K1.useEffect(()=>{if(t7.trim().length===0)return;let w8=setTimeout(G4,g7,!1);return()=>clearTimeout(w8)},[t7]);let[sO,Kj]=K1.useState("prompt"),[ZO,Iw]=K1.useState(),Vk=K1.useCallback((w8)=>{let L8=new Set(w8);T6((o8)=>o8.filter((V7)=>L8.has(V7.name)||h97.has(V7)))},[T6]),[uy,ts]=K1.useState(new Set),jx=K1.useRef(!1),es=KrK({config:v,setMessages:J4,setIsLoading:J2,onInit:Vk,setToolUseConfirmQueue:L9,tools:E9,setStreamingToolUses:m$,setStreamMode:Xq,setInProgressToolUseIDs:ts}),Hx=YrK({config:V,setMessages:J4,setIsLoading:J2,setToolUseConfirmQueue:L9,tools:E9}),td=ArK({session:E,setMessages:J4,setIsLoading:J2,setToolUseConfirmQueue:L9,tools:E9}),Nk=td.isRemoteMode?td:Hx.isRemoteMode?Hx:es,[oH,HW]=K1.useState({}),[uR,j36]=K1.useState(0),ej=K1.useRef(0),my=K1.useRef([]),ed=K1.useCallback((w8)=>{let L8=ej.current;if(ej.current=w8(L8),ej.current>L8){let o8=my.current;if(o8.length>0){let V7=o8.at(-1);V7.lastTokenTime=Date.now(),V7.endResponseLength=ej.current}}},[]),[mR,qc]=K1.useState(null),Jx=!(P8((w8)=>w8.settings.prefersReducedMotion)??!1)&&!R64(),Kc=K1.useCallback((w8)=>{if(!Jx)return;qc(w8)},[Jx]),qt=mR&&Jx?mR.substring(0,mR.lastIndexOf(` |
| 8163 | `)+1)||null:null,[_f,mp]=K1.useState(0),[jA,_c]=K1.useState(null),[f8,C1]=K1.useState(null),[Dq,hK]=K1.useState(null),[V3,X$]=K1.useState(!1),[_j,X2]=K1.useState(void 0),[JW,py]=K1.useState(!1),[pp,By]=K1.useState(PM6()),[Kt,H36]=K1.useState(null),J36=K1.useRef(!1),M36=K1.useRef(_f);M36.current=_f;let[pC6]=K1.useState(()=>({current:rR4(z,A)})),[BC6,gC6]=K1.useState(j8().hasAcknowledgedCostThreshold),[yk,FC6]=K1.useState("INSERT"),[_t,kM6]=K1.useState(!1),[kK8,VM6]=K1.useState(!1),[eX,VK8]=K1.useState(!1);K1.useEffect(()=>{if(n&&_t)kM6(!1)},[n,_t]);let MW=CO(),NK8=K1.useRef(MW);NK8.current=MW;let[vT]=Aq(),Mx=R8.useRef(!1),pR=K1.useCallback(()=>{if(Mx.current)return;Mx.current=!0;let w8=P5.current.slice(X36.current);for(let L8 of qp1(w8))pM.current.add(L8);X36.current=P5.current.length,laK({theme:vT,readFileState:Px.current,bashTools:pM.current}).then(async(L8)=>{if(L8){let o8=await L8.content({theme:vT});J6((V7)=>({...V7,spinnerTip:o8})),naK(L8)}else J6((o8)=>{if(o8.spinnerTip===void 0)return o8;return{...o8,spinnerTip:void 0}})})},[J6,vT]),gy=K1.useCallback(()=>{J2(!1),Xz(void 0),ej.current=0,my.current=[],qc(null),m$([]),_c(null),C1(null),hK(null),pR(),vs6(),zp8()},[pR]),zt=K1.useMemo(()=>Kj6(o).some((w8)=>w8.status==="running"),[o]);K1.useEffect(()=>{if(!zt&&Iz.current!==null){let w8=Date.now()-Iz.current,L8=fO.current;Iz.current=null,fO.current=void 0,J4((o8)=>[...o8,j77(w8,L8,$7(o8,pq8))])}},[zt,J4]);let kT=K1.useRef(!1);K1.useEffect(()=>{{if(F.mode!=="auto"){kT.current=!1;return}if(kT.current)return;if((j8().autoPermissionsNotificationCount??0)>=3)return;let o8=setTimeout((V7,J7)=>{V7.current=!0,b8((Yq)=>{let b7=Yq.autoPermissionsNotificationCount??0;if(b7>=3)return Yq;return{...Yq,autoPermissionsNotificationCount:b7+1}}),J7((Yq)=>[...Yq,fw(id8,"warning")])},800,kT,J4);return()=>clearTimeout(o8)}},[F.mode,J4]);let UC6=K1.useRef(!1);K1.useEffect(()=>{if(UC6.current)return;let w8=n2();if(!w8?.creationDurationMs||w8.usedSparsePaths)return;if(w8.creationDurationMs<15000)return;UC6.current=!0;let L8=Math.round(w8.creationDurationMs/1000);J4((o8)=>[...o8,fw(`Worktree creation took ${L8}s. For large repos, set \`worktree.sparsePaths\` in .claude/settings.json to check out only the directories you need — e.g. \`{"worktree": {"sparsePaths": ["src", "packages/foo"]}}\`.`,"info")])},[J4]);let Yt=K1.useMemo(()=>{let w8=H4.findLast((o8)=>o8.type==="assistant");if(w8?.type!=="assistant")return!1;let L8=w8.message.content.filter((o8)=>o8.type==="tool_use"&&uy.has(o8.id));return L8.length>0&&L8.every((o8)=>o8.type==="tool_use"&&o8.name===QO6)},[H4,uy]),{onBeforeQuery:$t,onTurnComplete:Xx,render:yK8}=frK({enabled:I,setMessages:J4,inputValue:t7,setInputValue:k3,setToolJSX:X5}),NM6=(!r7||r7.showSpinner===!0)&&OK.length===0&&v3.length===0&&(fK||p$||zt||sI1()>0)&&!j6&&!Yt&&(!qt||o6),Bp=OK.length>0||v3.length>0||C3.length>0||a.queue.length>0||s.queue.length>0,yM6=GaK(H4,fK,uR,"session",Bp),QC6=WrK(J4),EK8=WtK(H4,uR),zc=K1.useMemo(()=>({...yM6,handleSelect:(w8)=>{SM6.current=!1;let L8=yM6.handleSelect(w8);if(w8==="bad"&&!L8&&HtK("feedback_survey_bad"))hM6("feedback_survey_bad"),SM6.current=!0}}),[yM6]),Yc=VaK(H4,fK,Bp,{enabled:!R}),gp=vaK(H4,fK,Bp,{enabled:!R}),EM6=MnY(H4,fK,Bp,zc.state!=="closed"||Yc.state!=="closed"||gp.state!=="closed");AaK({autoConnectIdeFlag:J,ideToInstallExtension:h1,setDynamicMcpConfig:l6,setShowIdeOnboarding:P7,setIDEInstallationState:Y1}),qsK($,q6,(w8)=>J6((L8)=>({...L8,fileHistory:w8})));let LM6=K1.useCallback(async(w8,L8,o8)=>{let V7=performance.now();try{let J7=Ex8(L8.messages),Yq=H78();await J78("resume",{getAppState:()=>N6.getState(),setAppState:J6,signal:AbortSignal.timeout(Yq),timeoutMs:Yq});let b7=await xD("resume",{sessionId:w8,agentType:C?.agentType,model:V6});if(J7.push(...b7),o8==="fork")x5K(L8,EX(w8));else Dx8(L8,EX(w8));if(i48(L8,J6),L8.fileHistorySnapshots)Mx8(L8);let{agentDefinition:N4}=OM6(L8.agentSetting,G,t);g(N4),J6((SK)=>({...SK,agent:N4?.agentType})),J6((SK)=>({...SK,standaloneAgentContext:r48(L8.agentName,L8.agentColor)})),cQ(L8.agentName),Wx(J7,L8.projectPath??r1()),gy(),v_(null),By(w8);let GK=Os1(w8);tI8(),SX6(),Of(EX(w8),L8.fullPath?OnY(L8.fullPath):null);let{renameRecordingForSession:lK}=await Promise.resolve().then(() => (n48(),toK));if(await lK(),await mb(),j78(),Ld(L8),M$.current=!0,aj(void 0),o8!=="fork")eoK(),o48(L8.worktreeSession),vJ6(),ko1({abortController:new AbortController,getAppState:()=>N6.getState(),setAppState:J6});else{let SK=n2();if(SK)Oy(SK)}if(GK)Bb6(GK);if(pC6.current&&o8!=="fork")pC6.current=WE8(J7,L8.contentReplacements??[]);J4(()=>J7),X5(null),k3(""),d("tengu_session_resumed",{entrypoint:o8,success:!0,resume_duration_ms:Math.round(performance.now()-V7)})}catch(J7){throw d("tengu_session_resumed",{entrypoint:o8,success:!1}),J7}},[gy,J6]),[VT]=K1.useState(()=>Bu(tF)),Px=K1.useRef(VT),pM=K1.useRef(new Set),X36=K1.useRef(0),RM6=K1.useRef(new Set),dC6=K1.useRef(new Set),Wx=K1.useCallback((w8,L8)=>{let o8=hV6(w8,L8,tF);Px.current=mk6(Px.current,o8);for(let V7 of qp1(w8))pM.current.add(V7)},[]);K1.useEffect(()=>{if(z&&z.length>0)Wx(z,r1()),ko1({abortController:new AbortController,getAppState:()=>N6.getState(),setAppState:J6})},[]);let{status:LK8,reverify:P36}=drK(),[BR,hM6]=K1.useState(null),SM6=K1.useRef(!1),[cC6,CM6]=K1.useState(null),[W36,D36]=K1.useState(!1),RK8=!fK&&JW;function Cl8(){if(W36||cC6)return;if(V3)return"message-selector";if(z4)return;if(C3[0])return"sandbox-permission";let w8=!r7||r7.shouldContinueAnimation;if(w8&&OK[0])return"tool-permission";if(w8&&v3[0])return"prompt";if(w8&&s.queue[0])return"worker-sandbox-permission";if(w8&&a.queue[0])return"elicitation";if(w8&&RK8)return"cost";if(w8&&Kt)return"idle-return";if(w8&&Y7)return"ide-onboarding";if(w8&&B1)return"effort-callout";if(w8&&eq)return"remote-callout";if(w8&&F3)return"lsp-recommendation";if(w8&&S3)return"plugin-hint";if(w8&&AK)return"desktop-upsell";return}let rY=Cl8(),hK8=z4&&(C3[0]||OK[0]||v3[0]||s.queue[0]||a.queue[0]||RK8);J1.current=rY,K1.useEffect(()=>{if(!fK)return;let w8=rY==="tool-permission",L8=Date.now();if(w8&&H$.current===null)H$.current=L8;else if(!w8&&H$.current!==null)B$.current+=L8-H$.current,H$.current=null},[rY,fK]);let lC6=K1.useRef(rY);K1.useLayoutEffect(()=>{if(lC6.current==="tool-permission"!==(rY==="tool-permission"))mM();lC6.current=rY},[rY,mM]);function Fp(){if(rY==="elicitation")return;if(N(`[onCancel] focusedInputDialog=${rY} streamMode=${qK}`),uK.forceEnd(),J36.current=!1,mR?.trim())J4((w8)=>[...w8,nG({content:mR})]);if(gy(),rY==="tool-permission")OK[0]?.onAbort(),L9([]);else if(rY==="prompt"){for(let w8 of v3)w8.reject(Error("Prompt cancelled by user"));_z([]),e5?.abort("user-cancel")}else if(Nk.isRemoteMode)Nk.cancelRequest();else e5?.abort("user-cancel");v_(null),Xx(P5.current,!0)}let f36=K1.useCallback(()=>{let w8=PV8(t7,0);if(!w8)return;if(k3(w8.text),Kj("prompt"),w8.images.length>0)HW((L8)=>{let o8={...L8};for(let V7 of w8.images)o8[V7.id]=V7;return o8})},[k3,Kj,t7,HW]),nC6={setToolUseConfirmQueue:L9,onCancel:Fp,onAgentsKilled:()=>J4((w8)=>[...w8,t0K()]),isMessageSelectorVisible:V3||!!_t,screen:E6,abortSignal:e5?.signal,popCommandFromQueue:f36,vimMode:yk,isLocalJSXCommand:r7?.isLocalJSXCommand,isSearchingHistory:kK8,isHelpOpen:eX,inputMode:sO,inputValue:t7,streamMode:qK};K1.useEffect(()=>{if(fW()>=5&&!JW&&!BC6){if(d("tengu_cost_threshold_reached",{}),gC6(!0),YJ8())py(!0)}},[H4,JW,BC6]);let SK8=K1.useCallback(async(w8)=>{if(nq()&&ve6()){let L8=G7K(),o8=await T7K(w8.host,L8);return new Promise((V7)=>{if(!o8){y5((J7)=>[...J7,{hostPattern:w8,resolvePromise:V7}]);return}y7K({requestId:L8,host:w8.host,resolve:V7}),J6((J7)=>({...J7,pendingSandboxRequest:{requestId:L8,host:w8.host}}))})}return new Promise((L8)=>{let o8=!1;function V7(J7){if(o8)return;o8=!0,L8(J7)}y5((J7)=>[...J7,{hostPattern:w8,resolvePromise:V7}]);{let J7=N6.getState().replBridgePermissionCallbacks;if(J7){let Yq=PM6();J7.sendRequest(Yq,t$7,{host:w8.host},PM6(),`Allow network connection to ${w8.host}?`);let b7=J7.onResponse(Yq,(lK)=>{b7();let SK=lK.behavior==="allow";y5((D9)=>{return D9.filter((aH)=>aH.hostPattern.host===w8.host).forEach((aH)=>aH.resolvePromise(SK)),D9.filter((aH)=>aH.hostPattern.host!==w8.host)});let zj=w3.current.get(w8.host);if(zj){for(let D9 of zj)D9();w3.current.delete(w8.host)}}),N4=()=>{b7(),J7.cancelRequest(Yq)},GK=w3.current.get(w8.host)??[];GK.push(N4),w3.current.set(w8.host,GK)}}})},[J6,N6]);if(K1.useEffect(()=>{let w8=M7.getSandboxUnavailableReason();if(!w8)return;if(M7.isSandboxRequired()){process.stderr.write(` |
| 8164 | Error: sandbox required but unavailable: ${w8} |
| 8165 | `+` sandbox.failIfUnavailable is set — refusing to start without a working sandbox. |
| 8166 | |
| 8167 | `),eK(1,"other");return}N(`sandbox disabled: ${w8}`,{level:"warn"}),m6({key:"sandbox-unavailable",jsx:R8.createElement(R8.Fragment,null,R8.createElement(k,{color:"warning"},"sandbox disabled"),R8.createElement(k,{dimColor:!0}," · /sandbox")),priority:"medium"})},[m6]),M7.isSandboxingEnabled())M7.initialize(SK8).catch((w8)=>{process.stderr.write(` |
| 8168 | ❌ Sandbox Error: ${d6(w8)} |
| 8169 | `),eK(1,"other")});let Z36=K1.useCallback((w8,L8)=>{J6((o8)=>({...o8,toolPermissionContext:{...w8,mode:L8?.preserveMode?o8.toolPermissionContext.mode:w8.mode}})),setImmediate((o8)=>{o8((V7)=>{return V7.forEach((J7)=>{J7.recheckPermission()}),V7})},L9)},[J6,L9]);K1.useEffect(()=>{return S7K(Z36),()=>b7K()},[Z36]);let Fy=WoK(L9,Z36),CK8=K1.useCallback((w8,L8)=>(o8)=>new Promise((V7,J7)=>{_z((Yq)=>[...Yq,{request:o8,title:w8,toolInputSummary:L8,resolve:V7,reject:J7}])}),[]),zf=K1.useCallback((w8,L8,o8,V7)=>{let J7=N6.getState(),Yq=()=>{let b7=N6.getState(),N4=nQ(b7.toolPermissionContext,b7.mcp.tools),GK=LS6(E9,N4,b7.toolPermissionContext.mode);if(!C)return GK;return $o(C,GK,!1,!0).resolvedTools};return{abortController:o8,options:{commands:N5,tools:Yq(),debug:K,verbose:J7.verbose,mainLoopModel:V7,thinkingConfig:J7.thinkingEnabled!==!1?S:{type:"disabled"},mcpClients:Nc8(j,J7.mcp.clients),mcpResources:J7.mcp.resources,ideInstallationStatus:X7,isNonInteractiveSession:!1,dynamicMcpConfig:C6,theme:vT,agentDefinitions:j2?{...J7.agentDefinitions,allowedAgentTypes:j2}:J7.agentDefinitions,customSystemPrompt:X,appendSystemPrompt:P,refreshTools:Yq},getAppState:()=>N6.getState(),setAppState:J6,messages:w8,setMessages:J4,updateFileHistoryState(b7){J6((N4)=>{let GK=b7(N4.fileHistory);if(GK===N4.fileHistory)return N4;return{...N4,fileHistory:GK}})},updateAttributionState(b7){J6((N4)=>{let GK=b7(N4.attribution);if(GK===N4.attribution)return N4;return{...N4,attribution:GK}})},openMessageSelector:()=>{if(!f)X$(!0)},onChangeAPIKey:P36,readFileState:Px.current,setToolJSX:X5,addNotification:m6,appendSystemMessage:(b7)=>J4((N4)=>[...N4,b7]),sendOSNotification:(b7)=>{ZQ(b7,Z6)},onChangeDynamicMcpConfig:S6,onInstallIDEExtension:T7,nestedMemoryAttachmentTriggers:new Set,loadedNestedMemoryPaths:dC6.current,dynamicSkillDirTriggers:new Set,discoveredSkillNames:RM6.current,setResponseLength:ed,pushApiMetricsEntry:void 0,setStreamMode:Xq,onCompactProgress:(b7)=>{switch(b7.type){case"hooks_start":C1("claudeBlue_FOR_SYSTEM_SPINNER"),hK("claudeBlueShimmer_FOR_SYSTEM_SPINNER"),_c(b7.hookType==="pre_compact"?"Running PreCompact hooks…":b7.hookType==="post_compact"?"Running PostCompact hooks…":"Running SessionStart hooks…");break;case"compact_start":_c("Compacting conversation");break;case"compact_end":_c(null),C1(null),hK(null);break}},setInProgressToolUseIDs:ts,setHasInterruptibleToolInProgress:(b7)=>{jx.current=b7},resume:LM6,setConversationId:By,requestPrompt:void 0,contentReplacementState:pC6.current}},[N5,E9,C,K,j,X7,C6,vT,j2,N6,J6,P36,m6,J4,S6,LM6,CK8,f,X,P,By]),G36=K1.useCallback(()=>{e5?.abort("background");let w8=$P4((L8)=>L8.mode==="task-notification");(async()=>{let L8=zf(P5.current,[],new AbortController,V6),[o8,V7,J7]=await Promise.all([QP(L8.options.tools,V6,Array.from(F.additionalWorkingDirectories.keys()),L8.options.mcpClients),bO(),tw()]),Yq=Eb({mainThreadAgentDefinition:C,toolUseContext:L8,customSystemPrompt:X,defaultSystemPrompt:o8,appendSystemPrompt:P});L8.renderedSystemPrompt=Yq;let N4=(await AB8(w8).catch(()=>[])).map(V4),GK=new Set;for(let SK of P5.current)if(SK.type==="attachment"&&SK.attachment.type==="queued_command"&&SK.attachment.commandMode==="task-notification"&&typeof SK.attachment.prompt==="string")GK.add(SK.attachment.prompt);let lK=N4.filter((SK)=>SK.attachment.type==="queued_command"&&(typeof SK.attachment.prompt!=="string"||!GK.has(SK.attachment.prompt)));mMK({messages:[...P5.current,...lK],queryParams:{systemPrompt:Yq,userContext:V7,systemContext:J7,canUseTool:Fy,toolUseContext:L8,querySource:yo6()},description:M2,setAppState:J6,agentDefinition:C})})()},[e5,V6,F,C,zf,X,P,Fy,J6]),{handleBackgroundSession:bK8}=JaK({setMessages:J4,setIsLoading:J2,resetLoadingState:gy,setAbortController:v_,onBackgroundQuery:G36}),iC6=K1.useCallback((w8)=>{fh6(w8,(L8)=>{if(bD(L8)){if(p4())J4((o8)=>[...i2(o8,{includeSnipped:!0}),L8]);else J4(()=>[L8]);By(PM6())}else if(L8.type==="progress"&&b97(L8.data.type))J4((o8)=>{let V7=o8.at(-1);if(V7?.type==="progress"&&V7.parentToolUseID===L8.parentToolUseID&&V7.data.type===L8.data.type){let J7=o8.slice();return J7[J7.length-1]=L8,J7}return[...o8,L8]});else J4((o8)=>[...o8,L8])},(L8)=>{ed((o8)=>o8+L8.length)},Xq,m$,(L8)=>{J4((o8)=>o8.filter((V7)=>V7!==L8)),p97(L8.uuid)},a3,(L8)=>{let o8=Date.now(),V7=ej.current;my.current.push({...L8,firstTokenTime:o8,lastTokenTime:o8,responseLengthBaseline:V7,endResponseLength:V7})},Kc)},[J4,ed,Xq,m$,a3,Kc]),rC6=K1.useCallback(async(w8,L8,o8,V7,J7,Yq,b7)=>{if(V7){let HA=Nc8(j,N6.getState().mcp.clients);Ka.handleQueryStart(HA);let kY=SN(HA);if(kY)qS4(kY)}if(Eh6(),!x&&!J$&&!sj&&!M$.current){let HA=L8.find((QA)=>QA.type==="user"&&!QA.isMeta),kY=HA?.type==="user"?EQ(HA.message.content):null;if(kY&&!kY.startsWith(`<${bZ}>`)&&!kY.startsWith(`<${wP}>`)&&!kY.startsWith(`<${CZ}>`)&&!kY.startsWith(`<${zL7}>`))M$.current=!0,h56(kY,new AbortController().signal).then((QA)=>{if(QA)aj(QA);else M$.current=!1},()=>{M$.current=!1})}if(N6.setState((HA)=>{let kY=HA.toolPermissionContext.alwaysAllowRules.command;if(kY===J7||kY?.length===J7.length&&kY.every((QA,wc)=>QA===J7[wc]))return HA;return{...HA,toolPermissionContext:{...HA.toolPermissionContext,alwaysAllowRules:{...HA.toolPermissionContext.alwaysAllowRules,command:J7}}}}),!V7){if(L8.some(bD))By(PM6());gy(),v_(null);return}let N4=zf(w8,L8,o8,Yq),{tools:GK,mcpClients:lK}=N4.options;if(b7!==void 0){let HA=N4.getAppState;N4.getAppState=()=>({...HA(),effortValue:b7})}g3("query_context_loading_start");let[,,SK,zj,D9]=await Promise.all([me6(F,J6),pe6(F,J6,N6.getState().fastMode),QP(GK,Yq,Array.from(F.additionalWorkingDirectories.keys()),lK),bO(),tw()]),aH={...zj,...PnY(lK,Sd()?n56():void 0),...{}};g3("query_context_loading_end");let Lk=Eb({mainThreadAgentDefinition:C,toolUseContext:N4,customSystemPrompt:X,defaultSystemPrompt:SK,appendSystemPrompt:P});N4.renderedSystemPrompt=Lk,g3("query_query_start"),cn8(),ln8(),in8();for await(let HA of Db({messages:w8,systemPrompt:Lk,userContext:aH,systemContext:D9,canUseTool:Fy,toolUseContext:N4,querySource:yo6()}))iC6(HA);g3("query_end"),gy(),wp8(),await D?.(P5.current)},[j,gy,zf,F,J6,X,D,P,Fy,C,iC6,J$,x]),Q9=K1.useCallback(async(w8,L8,o8,V7,J7,Yq,b7,N4)=>{if(nq()){let lK=$9(),SK=M_();if(lK&&SK)Se6(lK,SK,!0)}let GK=uK.tryStart();if(GK===null){d("tengu_concurrent_onquery_detected",{}),w8.filter((lK)=>lK.type==="user"&&!lK.isMeta).map((lK)=>EQ(lK.message.content)).filter((lK)=>lK!==null).forEach((lK,SK)=>{if(jM({value:lK,mode:"prompt"}),SK===0)d("tengu_concurrent_onquery_enqueued",{})});return}try{qj(),J4((SK)=>[...SK,...w8]),ej.current=0,my.current=[],m$([]),qc(null);let lK=P5.current;if(b7)await $t(b7,lK,w8.length);if(Yq&&b7){if(!await Yq(b7,lK))return}await rC6(lK,w8,L8,o8,V7,J7,N4)}finally{if(uK.end(GK)){mp(Date.now()),J36.current=!1,gy(),await Xx(P5.current,L8.signal.aborted),FA.current();let lK,SK=Date.now()-s3.current-B$.current;if((SK>30000||lK!==void 0)&&!L8.signal.aborted&&!n6)if(Kj6(N6.getState().tasks).some((D9)=>D9.status==="running")){if(Iz.current===null)Iz.current=s3.current;if(lK)fO.current=lK}else J4((D9)=>[...D9,j77(SK,lK,$7(D9,pq8))]);v_(null)}if(L8.signal.reason==="user-cancel"&&!uK.isActive&&K3.current===""&&sI1()===0&&!N6.getState().viewingAgentTaskId){let lK=P5.current,SK=lK.findLast(xJ6);if(SK){let zj=lK.lastIndexOf(SK);if(Jd8(lK,zj))HGK(),UA.current(SK)}}}},[rC6,J6,gy,uK,$t,Xx]),T36=K1.useRef(!1);K1.useEffect(()=>{let w8=e;if(!w8||fK||T36.current)return;T36.current=!0;async function L8(o8){if(o8.clearContext){let Yq=o8.message.planContent?CQ():void 0,{clearConversation:b7}=await Promise.resolve().then(() => (fg8(),Iq7));if(await b7({setMessages:J4,readFileState:Px.current,discoveredSkillNames:RM6.current,loadedNestedMemoryPaths:dC6.current,getAppState:()=>N6.getState(),setAppState:J6,setConversationId:By}),M$.current=!1,aj(void 0),pM.current.clear(),X36.current=0,Yq)ar1(N8(),Yq)}let V7=o8.message.planContent&&!1;if(J6((Yq)=>{let b7=o8.mode?XN(Yq.toolPermissionContext,Vd8(o8.mode,o8.allowedPrompts)):Yq.toolPermissionContext;if(o8.mode==="auto")b7=Dp({...b7,mode:"auto",prePlanMode:void 0});return{...Yq,initialMessage:null,toolPermissionContext:b7,...V7&&{pendingPlanVerification:{plan:o8.message.planContent,verificationStarted:!1,verificationCompleted:!1}}}}),e$())aE6((Yq)=>{J6((b7)=>({...b7,fileHistory:Yq(b7.fileHistory)}))},o8.message.uuid);await p6();let J7=o8.message.message.content;if(typeof J7==="string"&&!o8.message.planContent)gR(J7,{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}});else{let Yq=P3();v_(Yq),Q9([o8.message],Yq,!0,[],V6)}setTimeout((Yq)=>{Yq.current=!1},100,T36)}L8(w8)},[e,fK,J4,J6,Q9,V6,Mz]);let gR=K1.useCallback(async(w8,L8,o8,V7)=>{if(mM(),!o8&&w8.trim().startsWith("/")){let b7=Ch6(w8,oH).trim(),N4=b7.indexOf(" "),GK=N4===-1?b7.slice(1):b7.slice(1,N4),lK=N4===-1?"":b7.slice(N4+1).trim(),SK=N5.find((D9)=>vs(D9)&&(D9.name===GK||D9.aliases?.includes(GK)||W_(D9)===GK));if(SK?.name==="clear"&&xq.current)d("tengu_idle_return_action",{action:"hint_converted",variant:xq.current,idleMinutes:Math.round((Date.now()-M36.current)/60000),messageCount:P5.current.length,totalInputTokens:bk()}),xq.current=!1;let zj=uK.isActive&&(SK?.immediate||V7?.fromKeybinding);if(SK&&zj&&SK.type==="local-jsx"){if(w8.trim()===K3.current.trim())k3(""),L8.setCursorOffset(0),L8.clearBuffer(),HW({});let D9=Od(w8).filter((kY)=>oH[kY.id]?.type==="text"),aH=D9.length,Lk=D9.reduce((kY,QA)=>kY+(oH[QA.id]?.content.length??0),0);d("tengu_paste_text",{pastedTextCount:aH,pastedTextBytes:Lk}),d("tengu_immediate_command_executed",{commandName:SK.name,fromKeybinding:V7?.fromKeybinding??!1}),(async()=>{let kY=!1,QA=(Up,UM6)=>{kY=!0,X5({jsx:null,shouldHidePromptInput:!1,clearLocalJSX:!0});let y36=[];if(Up&&UM6?.display!=="skip"){if(m6({key:`immediate-${SK.name}`,text:Up,priority:"immediate"}),!p4())y36.push(LQ(ae6(W_(SK),lK)),LQ(`<${bZ}>${CL(Up)}</${bZ}>`))}if(UM6?.metaMessages?.length)y36.push(...UM6.metaMessages.map((QM6)=>U8({content:QM6,isMeta:!0})));if(y36.length)J4((QM6)=>[...QM6,...y36]);if(ZO!==void 0)k3(ZO.text),L8.setCursorOffset(ZO.cursorOffset),HW(ZO.pastedContents),Iw(void 0)},wc=zf(P5.current,[],P3(),V6),_b6=await(await SK.load()).call(QA,wc,lK);if(_b6&&!kY)X5({jsx:_b6,shouldHidePromptInput:!1,isLocalJSXCommand:!0})})();return}}if(Nk.isRemoteMode&&!w8.trim())return;{let b7=g8("tengu_willow_mode","off"),N4=Number(process.env.CLAUDE_CODE_IDLE_THRESHOLD_MINUTES??75),GK=Number(process.env.CLAUDE_CODE_IDLE_TOKEN_THRESHOLD??1e5);if(b7!=="off"&&!j8().idleReturnDismissed&&!J36.current&&!o8&&!w8.trim().startsWith("/")&&M36.current>0&&bk()>=GK){let SK=(Date.now()-M36.current)/60000;if(SK>=N4&&b7==="dialog"){H36({input:w8,idleMinutes:SK}),k3(""),L8.setCursorOffset(0),L8.clearBuffer();return}}}if(!V7?.fromKeybinding){if(bh6({display:o8?w8:UZK(w8,sO),pastedContents:o8?{}:oH}),sO==="bash")nlK(w8.trim())}let J7=!o8&&w8.trim().startsWith("/"),Yq=!fK||o8||Nk.isRemoteMode;if(ZO!==void 0&&!J7&&Yq)k3(ZO.text),L8.setCursorOffset(ZO.cursorOffset),HW(ZO.pastedContents),Iw(void 0);else if(Yq){if(!V7?.fromKeybinding)k3(""),L8.setCursorOffset(0);HW({})}if(Yq){if(Kj("prompt"),j1(void 0),j36((b7)=>b7+1),L8.clearBuffer(),Mx.current=!1,!J7&&sO==="prompt"&&!o8&&!Nk.isRemoteMode)Xz(w8),qj()}if(o8){let{queryRequired:b7}=await hy4(o8.state,o8.speculationSessionTimeSavedMs,o8.setAppState,w8,{setMessages:J4,readFileState:Px,cwd:r1()});if(b7){let N4=P3();v_(N4),Q9([],N4,!0,[],V6)}return}if(Nk.isRemoteMode&&!(J7&&N5.find((b7)=>{let N4=w8.trim().slice(1).split(/\s/)[0];return vs(b7)&&(b7.name===N4||b7.aliases?.includes(N4)||W_(b7)===N4)})?.type==="local-jsx")){let b7=Object.values(oH),N4=b7.filter((D9)=>D9.type==="image"),GK=N4.length>0?N4.map((D9)=>D9.id):void 0,lK=w8.trim(),SK=w8.trim();if(b7.length>0){let D9=[],aH=[],Lk=w8.trim();if(Lk)D9.push({type:"text",text:Lk}),aH.push({type:"text",text:Lk});for(let HA of b7)if(HA.type==="image"){let kY={type:"base64",media_type:HA.mediaType??"image/png",data:HA.content};D9.push({type:"image",source:kY}),aH.push({type:"image",source:kY})}else D9.push({type:"text",text:HA.content}),aH.push({type:"text",text:HA.content});lK=D9,SK=aH}let zj=U8({content:lK,imagePasteIds:GK});J4((D9)=>[...D9,zj]),await Nk.sendMessage(SK,{uuid:zj.uuid});return}if(await p6(),await Vc8({input:w8,helpers:L8,queryGuard:uK,isExternalLoading:q3,mode:sO,commands:N5,onInputChange:k3,setPastedContents:HW,setToolJSX:X5,getToolUseContext:zf,messages:P5.current,mainLoopModel:V6,pastedContents:oH,ideSelection:X1,setUserInputOnProcessing:Xz,setAbortController:v_,abortController:e5,onQuery:Q9,setAppState:J6,querySource:yo6(),onBeforeQuery:W,canUseTool:Fy,addNotification:m6,setMessages:J4,streamMode:H2.current,hasInterruptibleToolInProgress:jx.current}),(J7||fK)&&ZO!==void 0)k3(ZO.text),L8.setCursorOffset(ZO.cursorOffset),HW(ZO.pastedContents),Iw(void 0)},[uK,fK,q3,sO,N5,k3,Kj,HW,j36,j1,X5,zf,V6,oH,X1,Xz,v_,m6,Q9,ZO,Iw,J6,W,Fy,es,J4,p6,mM]),xK8=K1.useCallback(async(w8,L8,o8)=>{if(EJ(L8))if(UXK(L8.id,U8({content:w8}),J6),L8.status==="running")Um8(L8.id,w8,J6);else F88({agentId:L8.id,prompt:w8,toolUseContext:zf(P5.current,[],new AbortController,V6),canUseTool:Fy}).catch((V7)=>{N(`resumeAgentBackground failed: ${d6(V7)}`),m6({key:`resume-agent-failed-${L8.id}`,jsx:R8.createElement(k,{color:"error"},"Failed to resume agent: ",d6(V7)),priority:"low"})});else be6(L8.id,w8,J6);k3(""),o8.setCursorOffset(0),o8.clearBuffer()},[J6,k3,zf,Fy,V6,m6]),bl8=K1.useCallback(()=>{let w8=BR?JtK(BR):"/issue";hM6(null),gR(w8,{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}}).catch((L8)=>{N(`Auto-run ${w8} failed: ${d6(L8)}`)})},[gR,BR]),xl8=K1.useCallback(()=>{hM6(null)},[]),oC6=K1.useCallback(()=>{gR("/feedback",{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}}).catch((L8)=>{N(`Survey feedback request failed: ${L8 instanceof Error?L8.message:String(L8)}`)})},[gR]),aC6=K1.useRef(gR);aC6.current=gR;let bM6=K1.useCallback(()=>{aC6.current("/rate-limit-options",{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}})},[]),Dx=K1.useCallback(async()=>{if(D36(!0),n2()!==null){CM6(R8.createElement(cU8,{showWorktree:!0,onDone:()=>{},onCancel:()=>{CM6(null),D36(!1)}}));return}let o8=await(await Vq8.load()).call(()=>{});if(CM6(o8),o8===null)D36(!1)},[]),IK8=K1.useCallback(()=>{X$((w8)=>!w8)},[]),v36=K1.useCallback((w8)=>{let L8=P5.current,o8=L8.lastIndexOf(w8);if(o8===-1)return;d("tengu_conversation_rewind",{preRewindMessageCount:L8.length,postRewindMessageCount:o8,messagesRemoved:L8.length-o8,rewindToMessageIndex:o8}),J4(L8.slice(0,o8)),By(PM6()),Xr(),J6((V7)=>({...V7,toolPermissionContext:w8.permissionMode&&V7.toolPermissionContext.mode!==w8.permissionMode?{...V7.toolPermissionContext,mode:w8.permissionMode}:V7.toolPermissionContext,promptSuggestion:{text:null,promptId:null,shownAt:0,acceptedAt:0,generationRequestId:null}}))},[J4,J6]),fx=K1.useCallback((w8)=>{v36(w8);let L8=w77(w8);if(L8)k3(L8.text),Kj(L8.mode);if(Array.isArray(w8.message.content)&&w8.message.content.some((o8)=>o8.type==="image")){let o8=w8.message.content.filter((V7)=>V7.type==="image");if(o8.length>0){let V7={};o8.forEach((J7,Yq)=>{if(J7.source.type==="base64"){let b7=w8.imagePasteIds?.[Yq]??Yq+1;V7[b7]={id:b7,type:"image",content:J7.source.data,mediaType:J7.source.media_type}}}),HW(V7)}}},[v36,k3]);UA.current=fx;let xM6=K1.useCallback(async(w8)=>{setImmediate((L8,o8)=>L8(o8),fx,w8)},[fx]),uK8=(w8)=>{let L8=w8.slice(0,24);return H4.findIndex((o8)=>o8.uuid.slice(0,24)===L8)},sC6={copy:(w8)=>void XX(w8).then((L8)=>{if(L8)process.stdout.write(L8);m6({key:"selection-copied",text:"copied",color:"success",priority:"immediate",timeoutMs:2000})}),edit:async(w8)=>{let L8=uK8(w8.uuid),o8=L8>=0?H4[L8]:void 0;if(!o8||!xJ6(o8))return;let V7=!await N5K(q6,o8.uuid),J7=Jd8(H4,L8);if(V7&&J7)Fp(),xM6(o8);else X2(o8),X$(!0)}},{enter:eA7,handlers:Il8}=cE4(xw,tX,Ox,sC6);async function mK8(){P36();let w8=await yH();if(w8.length>0){let L8=w8.map((o8)=>` [${o8.type}] ${o8.path} (${o8.content.length} chars)${o8.parent?` (included by ${o8.parent})`:""}`).join(` |
| 8170 | `);N(`Loaded ${w8.length} CLAUDE.md/rules files: |
| 8171 | ${L8}`)}else N("No CLAUDE.md/rules files found");for(let L8 of w8)Px.current.set(L8.path,{content:L8.contentDiffersFromDisk?L8.rawContent??L8.content:L8.content,timestamp:Date.now(),offset:void 0,limit:void 0,isPartialView:L8.contentDiffersFromDisk})}mrK(LUK()),KQK(H4,H4.length===z?.length);let{sendBridgeResult:pK8}=hQK(H4,J4,bw,N5,V6);FA.current=pK8,grK();let IM6=K1.useRef(!1);K1.useEffect(()=>{if(i.length<1){IM6.current=!1;return}if(IM6.current)return;IM6.current=!0,b8((w8)=>({...w8,promptQueueUseCount:(w8.promptQueueUseCount??0)+1}))},[i.length]);let BK8=K1.useCallback(async(w8)=>{await Vc8({helpers:{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}},queryGuard:uK,commands:N5,onInputChange:()=>{},setPastedContents:()=>{},setToolJSX:X5,getToolUseContext:zf,messages:H4,mainLoopModel:V6,ideSelection:X1,setUserInputOnProcessing:Xz,setAbortController:v_,onQuery:Q9,setAppState:J6,querySource:yo6(),onBeforeQuery:W,canUseTool:Fy,addNotification:m6,setMessages:J4,queuedCommands:w8})},[uK,N5,X5,zf,H4,V6,X1,Xz,Fy,v_,Q9,m6,J6,W]);boK({executeQueuedInput:BK8,hasActiveLocalJsxUI:H7,queryGuard:uK}),K1.useEffect(()=>{B26.recordUserActivity(),c36(!0)},[t7,uR]),K1.useEffect(()=>{if(uR===1)k$7()},[uR]),K1.useEffect(()=>{if(fK)return;if(uR===0)return;if(_f===0)return;let w8=setTimeout((L8,o8,V7,J7,Yq)=>{if(ap()>L8)return;let N4=Date.now()-L8;if(!o8&&!V7&&J7.current===void 0&&N4>=j8().messageIdleNotifThresholdMs)ZQ({message:"Claude is waiting for your input",notificationType:"idle_prompt"},Yq)},j8().messageIdleNotifThresholdMs,_f,fK,r7,J1,Z6);return()=>clearTimeout(w8)},[fK,r7,uR,_f,Z6]),K1.useEffect(()=>{if(_f===0)return;if(fK)return;let w8=g8("tengu_willow_mode","off");if(w8!=="hint"&&w8!=="hint_v2")return;if(j8().idleReturnDismissed)return;let L8=Number(process.env.CLAUDE_CODE_IDLE_TOKEN_THRESHOLD??1e5);if(bk()<L8)return;let o8=Number(process.env.CLAUDE_CODE_IDLE_THRESHOLD_MINUTES??75)*60000,V7=Date.now()-_f,J7=o8-V7,Yq=setTimeout((b7,N4,GK,lK,SK)=>{if(GK.current.length===0)return;let zj=bk(),D9=_Y(zj),aH=(Date.now()-b7)/60000;N4({key:"idle-return-hint",jsx:lK==="hint_v2"?R8.createElement(R8.Fragment,null,R8.createElement(k,{dimColor:!0},"new task? "),R8.createElement(k,{color:"suggestion"},"/clear"),R8.createElement(k,{dimColor:!0}," to save "),R8.createElement(k,{color:"suggestion"},D9," tokens")):R8.createElement(k,{color:"warning"},"new task? /clear to save ",D9," tokens"),priority:"medium",timeoutMs:2147483647}),SK.current=lK,d("tengu_idle_return_action",{action:"hint_shown",variant:lK,idleMinutes:Math.round(aH),messageCount:GK.current.length,totalInputTokens:zj})},Math.max(0,J7),_f,m6,P5,w8,xq);return()=>{clearTimeout(Yq),K8("idle-return-hint"),xq.current=!1}},[_f,fK,m6,K8]);let uM6=K1.useCallback((w8,L8)=>{if(uK.isActive)return!1;if(zP4().some((J7)=>J7.mode==="prompt"||J7.mode==="bash"))return!1;let o8=P3();v_(o8);let V7=U8({content:w8,isMeta:L8?.isMeta?!0:void 0});return Q9([V7],o8,!0,[],V6),!0},[Q9,V6,N6]),t3=JnY({setInputValueRaw:NK,inputValueRef:K3,insertTextRef:vY});KaK({enabled:nq(),isLoading:fK,focusedInputDialog:rY,onSubmitMessage:uM6}),IoK({isLoading:fK,onSubmitMessage:uM6});{let w8=N6.getState().kairosEnabled;ZnY({isLoading:fK,assistantMode:w8,setMessages:J4})}K1.useEffect(()=>{if(i.some((w8)=>w8.priority==="now"))bw.current?.abort("interrupt")},[i]),K1.useEffect(()=>{return mK8(),()=>{Ka.shutdown()}},[]);let{internal_eventEmitter:$c}=V16(),[ul8,mM6]=K1.useState(0);K1.useEffect(()=>{let w8=()=>{process.stdout.write(` |
| 8172 | Claude Code has been suspended. Run \`fg\` to bring Claude Code back. |
| 8173 | Note: ctrl + z now suspends Claude Code, ctrl + _ undoes input. |
| 8174 | `)},L8=()=>{mM6((o8)=>o8+1)};return $c?.on("suspend",w8),$c?.on("resume",L8),()=>{$c?.off("suspend",w8),$c?.off("resume",L8)}},[$c]);let At=K1.useMemo(()=>{if(!fK)return null;let w8=H4.filter((GK)=>GK.type==="progress"&&GK.data.type==="hook_progress"&&(GK.data.hookEvent==="Stop"||GK.data.hookEvent==="SubagentStop"));if(w8.length===0)return null;let L8=w8.at(-1)?.toolUseID;if(!L8)return null;if(H4.some((GK)=>GK.type==="system"&&GK.subtype==="stop_hook_summary"&&GK.toolUseID===L8))return null;let V7=w8.filter((GK)=>GK.toolUseID===L8),J7=V7.length,Yq=$7(H4,(GK)=>{if(GK.type!=="attachment")return!1;let lK=GK.attachment;return"hookEvent"in lK&&(lK.hookEvent==="Stop"||lK.hookEvent==="SubagentStop")&&"toolUseID"in lK&&lK.toolUseID===L8}),b7=V7.find((GK)=>GK.data.statusMessage)?.data.statusMessage;if(b7)return J7===1?`${b7}…`:`${b7}… ${Yq}/${J7}`;let N4=V7[0]?.data.hookEvent==="SubagentStop"?"subagent stop":"stop";return J7===1?`running ${N4} hook`:`running stop hooks… ${Yq}/${J7}`},[H4,fK]),Ot=K1.useCallback(()=>{d1({messagesLength:H4.length,streamingToolUsesLength:Y_.length})},[H4.length,Y_.length]),tC6=K1.useCallback(()=>{d1(null)},[]),wt=p4()&&!B,Uy=K1.useRef(null),[kZ,Ac]=K1.useState(!1),[Zx,k36]=K1.useState(""),[Oc,Qy]=K1.useState(0),[pM6,BM6]=K1.useState(0),gK8=K1.useCallback((w8,L8)=>{Qy(w8),BM6(L8)},[]);k4((w8,L8,o8)=>{if(L8.ctrl||L8.meta)return;if(w8==="/"){Uy.current?.setAnchor(),Ac(!0),o8.stopImmediatePropagation();return}let V7=w8[0];if((V7==="n"||V7==="N")&&w8===V7.repeat(w8.length)&&Oc>0){let J7=V7==="n"?Uy.current?.nextMatch:Uy.current?.prevMatch;if(J7)for(let Yq=0;Yq<w8.length;Yq++)J7();o8.stopImmediatePropagation()}},{isActive:E6==="transcript"&&wt&&!kZ&&!b6});let{setQuery:jt,scanElement:gM6,setPositions:_5}=gUK(),V36=t1().columns,FK8=R8.useRef(V36);R8.useEffect(()=>{if(FK8.current!==V36){if(FK8.current=V36,Zx||kZ)Ac(!1),k36(""),Qy(0),BM6(0),Uy.current?.disarmSearch(),jt("")}},[V36,Zx,kZ,jt]),k4((w8,L8,o8)=>{if(L8.ctrl||L8.meta)return;if(w8==="q"){tC6(),o8.stopImmediatePropagation();return}if(w8==="["&&!b6)Q6(!0),x6(!0),o8.stopImmediatePropagation();else if(w8==="v"){if(o8.stopImmediatePropagation(),v6.current)return;v6.current=!0;let V7=F6.current,J7=(Yq)=>{if(V7!==F6.current)return;clearTimeout(W6.current),_6(Yq)};J7(`rendering ${c6.length} messages…`),(async()=>{try{let Yq=Math.max(80,(process.stdout.columns??80)-6),N4=(await lU8(c6,Mz,Yq)).replace(/[ \t]+$/gm,""),GK=wnY(jnY(),`cc-transcript-${Date.now()}.txt`);await HnY(GK,N4);let lK=og8(GK);J7(lK?`opening ${GK}`:`wrote ${GK} · no $VISUAL/$EDITOR set`)}catch(Yq){J7(`render failed: ${Yq instanceof Error?Yq.message:String(Yq)}`)}if(v6.current=!1,V7!==F6.current)return;W6.current=setTimeout((Yq)=>Yq(""),4000,_6)})()}},{isActive:E6==="transcript"&&wt&&!kZ});let Ht=E6==="transcript"&&wt;K1.useEffect(()=>{if(!Ht)k36(""),Qy(0),BM6(0),Ac(!1),F6.current++,clearTimeout(W6.current),Q6(!1),_6("")},[Ht]),K1.useEffect(()=>{if(jt(Ht?Zx:""),!Ht)_5(null)},[Ht,Zx,jt,_5]);let Jt={screen:E6,setScreen:R6,showAllInTranscript:h6,setShowAllInTranscript:x6,messageCount:H4.length,onEnterTranscript:Ot,onExitTranscript:tC6,virtualScrollActive:wt,searchBarOpen:kZ},ml8=G1?c6.slice(0,G1.messagesLength):c6,pl8=G1?Y_.slice(0,G1.streamingToolUsesLength):Y_;if(arK({onOpenBackgroundTasks:H7?void 0:()=>kM6(!0)}),$oK(),E6==="transcript"){let w8=p4()&&!B&&!b6?oO:void 0,L8=R8.createElement(AJ6,{messages:ml8,tools:Mz,commands:N5,verbose:!0,toolJSX:null,toolUseConfirmQueue:[],inProgressToolUseIDs:uy,isMessageSelectorVisible:!1,conversationId:pp,screen:E6,agentDefinitions:t,streamingToolUses:pl8,showAllInTranscript:h6,onOpenRateLimitOptions:bM6,isLoading:fK,hidePastThinking:!0,streamingThinking:t_,scrollRef:w8,jumpRef:Uy,onSearchMatchesChange:gK8,scanElement:gM6,setPositions:_5,disableRenderCap:b6}),o8=r7&&R8.createElement(u,{flexDirection:"column",width:"100%"},r7.jsx),V7=R8.createElement(WM,null,R8.createElement(ltK,{isAnimating:k7,title:M2,disabled:x,noPrefix:x_}),R8.createElement(N$7,{...Jt}),R8.createElement(UtK,{voiceHandleKeyEvent:t3.handleKeyEvent,stripTrailing:t3.stripTrailing,resetAnchor:t3.resetAnchor,isActive:!r7?.isLocalJSXCommand}),R8.createElement(y$7,{onSubmit:gR,isActive:!r7?.isLocalJSXCommand}),w8?R8.createElement(OA7,{scrollRef:oO,isActive:rY!=="ultraplan-choice",isModal:!kZ,onScroll:()=>Uy.current?.disarmSearch()}):null,R8.createElement(E$7,{...nC6}),w8?R8.createElement(G57,{scrollRef:oO,scrollable:R8.createElement(R8.Fragment,null,L8,o8,R8.createElement(qA7,null)),bottom:kZ?R8.createElement(vnY,{jumpRef:Uy,initialQuery:"",count:Oc,current:pM6,onClose:(J7)=>{if(k36(Oc>0?J7:""),Ac(!1),!J7)Qy(0),BM6(0),Uy.current?.setSearchQuery("")},onCancel:()=>{Ac(!1),Uy.current?.setSearchQuery(""),Uy.current?.setSearchQuery(Zx),jt(Zx)},setHighlight:jt}):R8.createElement(dtK,{showAllInTranscript:h6,virtualScroll:!0,status:Y6||void 0,searchBadge:Zx&&Oc>0?{current:pM6,count:Oc}:void 0})}):R8.createElement(R8.Fragment,null,L8,o8,R8.createElement(qA7,null),R8.createElement(dtK,{showAllInTranscript:h6,virtualScroll:!1,suppressShowAll:b6,status:Y6||void 0})));if(w8)return R8.createElement(AA7,{mouseTracking:dN1()},V7);return V7}let Mt=A6?o[A6]:void 0,FM6=Mt&&xH(Mt)?Mt:void 0,Gx=FM6??(Mt&&EJ(Mt)?Mt:void 0),eC6=Gx?Gx.messages??[]:Jx||!fK?H4:c6,N36=p$&&!Gx&&eC6.length<=qz.current?p$:void 0,qb6=rY==="tool-permission"?R8.createElement(fcK,{key:OK[0]?.toolUseID,onDone:()=>L9(([w8,...L8])=>L8),onReject:f36,toolUseConfirm:OK[0],toolUseContext:zf(H4,H4,e5??P3(),V6),verbose:U,workerBadge:OK[0]?.workerBadge,setStickyFooter:p4()?iY:void 0}):null,qO7=V36<ez7,KO7=!r7?.shouldHidePromptInput&&!rY&&!_t,Tx=p4()&&r7?.isLocalJSXCommand===!0,Ek=Tx?r7.jsx:null,qP=R8.createElement(WM,null,R8.createElement(ltK,{isAnimating:k7,title:M2,disabled:x,noPrefix:x_}),R8.createElement(N$7,{...Jt}),R8.createElement(UtK,{voiceHandleKeyEvent:t3.handleKeyEvent,stripTrailing:t3.stripTrailing,resetAnchor:t3.resetAnchor,isActive:!r7?.isLocalJSXCommand}),R8.createElement(y$7,{onSubmit:gR,isActive:!r7?.isLocalJSXCommand}),R8.createElement(OA7,{scrollRef:oO,isActive:p4()&&(Ek!=null||!rY||rY==="tool-permission"),onScroll:Ek||qb6||Gx?void 0:up}),null,R8.createElement(E$7,{...nC6}),R8.createElement(tg8,{key:ul8,dynamicMcpConfig:C6,isStrictMcpConfig:M},R8.createElement(G57,{scrollRef:oO,overlay:qb6,bottomFloat:void 0,modal:Ek,modalScrollRef:nY,dividerYRef:jW,hidePill:!!Gx,hideSticky:!!FM6,newMessageCount:wx?.count??0,onPillClick:()=>{tX(null),GT(oO.current)},scrollable:R8.createElement(R8.Fragment,null,R8.createElement(loK,null),R8.createElement(AJ6,{messages:eC6,tools:Mz,commands:N5,verbose:U,toolJSX:r7,toolUseConfirmQueue:OK,inProgressToolUseIDs:FM6?FM6.inProgressToolUseIDs??new Set:uy,isMessageSelectorVisible:V3,conversationId:pp,screen:E6,streamingToolUses:Y_,showAllInTranscript:h6,agentDefinitions:t,onOpenRateLimitOptions:bM6,isLoading:fK,streamingText:fK&&!Gx?qt:null,isBriefOnly:Gx?!1:o6,unseenDivider:Gx?void 0:wx,scrollRef:p4()?oO:void 0,trackStickyPrompt:p4()?!0:void 0,cursor:xw,setCursor:tX,cursorNavRef:Ox}),R8.createElement(BsK,null),!f&&N36&&!Ek&&R8.createElement(Xj6,{param:{text:N36,type:"text"},addMargin:!0,verbose:U}),r7&&!(r7.isLocalJSXCommand&&r7.isImmediate)&&!Tx&&R8.createElement(u,{flexDirection:"column",width:"100%"},r7.jsx),!1,null,R8.createElement(u,{flexGrow:1}),NM6&&R8.createElement(vqK,{mode:qK,spinnerTip:$6,responseLengthRef:ej,apiMetricsRef:my,overrideMessage:jA,spinnerSuffix:At,verbose:U,loadingStartTimeRef:s3,totalPausedMsRef:B$,pauseStartTimeRef:H$,overrideColor:f8,overrideShimmerColor:Dq,hasActiveTools:uy.size>0,leaderIsIdle:!fK}),!NM6&&!fK&&!p$&&!zt&&o6&&!Gx&&R8.createElement(kqK,null),p4()&&R8.createElement(Oc8,null)),bottom:R8.createElement(u,{flexDirection:"row",width:"100%",alignItems:"flex-end"},null,R8.createElement(u,{flexDirection:"column",flexGrow:1},x5,r7?.isLocalJSXCommand&&r7.isImmediate&&!Tx&&R8.createElement(u,{flexDirection:"column",width:"100%"},r7.jsx),!NM6&&!r7?.isLocalJSXCommand&&M6&&u$&&u$.length>0&&R8.createElement(u,{width:"100%",flexDirection:"column"},R8.createElement(kC8,{tasks:u$,isStandalone:!0})),rY==="sandbox-permission"&&R8.createElement(e$7,{key:C3[0].hostPattern.host,hostPattern:C3[0].hostPattern,onUserResponse:(w8)=>{let{allow:L8,persistToSettings:o8}=w8,V7=C3[0];if(!V7)return;let J7=V7.hostPattern.host;if(o8){let b7={type:"addRules",rules:[{toolName:Sj,ruleContent:`domain:${J7}`}],behavior:L8?"allow":"deny",destination:"localSettings"};J6((N4)=>({...N4,toolPermissionContext:L$(N4.toolPermissionContext,b7)})),fU(b7),M7.refreshConfig()}y5((b7)=>{return b7.filter((N4)=>N4.hostPattern.host===J7).forEach((N4)=>N4.resolvePromise(L8)),b7.filter((N4)=>N4.hostPattern.host!==J7)});let Yq=w3.current.get(J7);if(Yq){for(let b7 of Yq)b7();w3.current.delete(J7)}}}),rY==="prompt"&&R8.createElement(LcK,{key:v3[0].request.prompt,title:v3[0].title,toolInputSummary:v3[0].toolInputSummary,request:v3[0].request,onRespond:(w8)=>{let L8=v3[0];if(!L8)return;L8.resolve({prompt_response:L8.request.prompt,selected:w8}),_z(([,...o8])=>o8)},onAbort:()=>{let w8=v3[0];if(!w8)return;w8.reject(Error("Prompt cancelled by user")),_z(([,...L8])=>L8)}}),j6&&R8.createElement(Jz7,{toolName:j6.toolName,description:j6.description}),G6&&R8.createElement(Jz7,{toolName:"Network Access",description:`Waiting for leader to approve network access to ${G6.host}`}),rY==="worker-sandbox-permission"&&R8.createElement(e$7,{key:s.queue[0].requestId,hostPattern:{host:s.queue[0].host,port:void 0},onUserResponse:(w8)=>{let{allow:L8,persistToSettings:o8}=w8,V7=s.queue[0];if(!V7)return;let J7=V7.host;if(v7K(V7.workerName,V7.requestId,J7,L8,w6?.teamName),o8&&L8){let Yq={type:"addRules",rules:[{toolName:Sj,ruleContent:`domain:${J7}`}],behavior:"allow",destination:"localSettings"};J6((b7)=>({...b7,toolPermissionContext:L$(b7.toolPermissionContext,Yq)})),fU(Yq),M7.refreshConfig()}J6((Yq)=>({...Yq,workerSandboxPermissions:{...Yq.workerSandboxPermissions,queue:Yq.workerSandboxPermissions.queue.slice(1)}}))}}),rY==="elicitation"&&R8.createElement(ycK,{key:a.queue[0].serverName+":"+String(a.queue[0].requestId),event:a.queue[0],onResponse:(w8,L8)=>{let o8=a.queue[0];if(!o8)return;if(o8.respond({action:w8,content:L8}),!(o8.params.mode==="url"&&w8==="accept"))J6((J7)=>({...J7,elicitation:{queue:J7.elicitation.queue.slice(1)}}))},onWaitingDismiss:(w8)=>{let L8=a.queue[0];J6((o8)=>({...o8,elicitation:{queue:o8.elicitation.queue.slice(1)}})),L8?.onWaitingDismiss?.(w8)}}),rY==="cost"&&R8.createElement(UUK,{onDone:()=>{py(!1),gC6(!0),b8((w8)=>({...w8,hasAcknowledgedCostThreshold:!0})),d("tengu_cost_threshold_acknowledged",{})}}),rY==="idle-return"&&Kt&&R8.createElement(dUK,{idleMinutes:Kt.idleMinutes,totalInputTokens:bk(),onDone:async(w8)=>{let L8=Kt;if(H36(null),d("tengu_idle_return_action",{action:w8,idleMinutes:Math.round(L8.idleMinutes),messageCount:P5.current.length,totalInputTokens:bk()}),w8==="dismiss"){k3(L8.input);return}if(w8==="never")b8((o8)=>{if(o8.idleReturnDismissed)return o8;return{...o8,idleReturnDismissed:!0}});if(w8==="clear"){let{clearConversation:o8}=await Promise.resolve().then(() => (fg8(),Iq7));await o8({setMessages:J4,readFileState:Px.current,discoveredSkillNames:RM6.current,loadedNestedMemoryPaths:dC6.current,getAppState:()=>N6.getState(),setAppState:J6,setConversationId:By}),M$.current=!1,aj(void 0),pM.current.clear(),X36.current=0}J36.current=!0,aC6.current(L8.input,{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}})}}),rY==="ide-onboarding"&&R8.createElement(tB1,{onDone:()=>P7(!1),installationStatus:X7}),!1,!1,rY==="effort-callout"&&R8.createElement(XaK,{model:V6,onDone:(w8)=>{if(j7(!1),w8!=="dismiss")J6((L8)=>({...L8,effortValue:w8}))}}),rY==="remote-callout"&&R8.createElement(vpK,{onDone:(w8)=>{J6((L8)=>{if(!L8.showRemoteCallout)return L8;return{...L8,showRemoteCallout:!1,...w8==="enable"&&{replBridgeEnabled:!0,replBridgeExplicit:!0,replBridgeOutboundOnly:!1}}})}}),cC6,rY==="plugin-hint"&&S3&&R8.createElement(EsK,{pluginName:S3.pluginName,pluginDescription:S3.pluginDescription,marketplaceName:S3.marketplaceName,sourceCommand:S3.sourceCommand,onResponse:P9}),rY==="lsp-recommendation"&&F3&&R8.createElement(ksK,{pluginName:F3.pluginName,pluginDescription:F3.pluginDescription,fileExtension:F3.fileExtension,onResponse:xz}),rY==="desktop-upsell"&&R8.createElement(daK,{onDone:()=>X9(!1)}),null,null,yK8(),!r7?.shouldHidePromptInput&&!rY&&!W36&&!f&&!xw&&R8.createElement(R8.Fragment,null,BR&&R8.createElement(jtK,{onRun:bl8,onCancel:xl8,reason:MtK(BR)}),Yc.state!=="closed"?R8.createElement(t48,{state:Yc.state,lastResponse:Yc.lastResponse,handleSelect:Yc.handleSelect,inputValue:t7,setInputValue:k3,onRequestFeedback:oC6}):gp.state!=="closed"?R8.createElement(t48,{state:gp.state,lastResponse:gp.lastResponse,handleSelect:gp.handleSelect,handleTranscriptSelect:gp.handleTranscriptSelect,inputValue:t7,setInputValue:k3,onRequestFeedback:oC6,message:"How well did Claude use its memory? (optional)"}):R8.createElement(t48,{state:zc.state,lastResponse:zc.lastResponse,handleSelect:zc.handleSelect,handleTranscriptSelect:zc.handleTranscriptSelect,inputValue:t7,setInputValue:k3,onRequestFeedback:SM6.current?void 0:oC6}),EM6.state!=="closed"&&R8.createElement(t48,{state:EM6.state,lastResponse:null,handleSelect:()=>{},handleTranscriptSelect:EM6.handleTranscriptSelect,inputValue:t7,setInputValue:k3}),!1,EK8&&R8.createElement(PtK,null),R8.createElement(oiK,{debug:K,ideSelection:X1,hasSuppressedDialogs:!!hK8,isLocalJSXCommandActive:H7,getToolUseContext:zf,toolPermissionContext:F,setToolPermissionContext:Z36,apiKeyStatus:LK8,commands:N5,agents:t.activeAgents,isLoading:fK,onExit:Dx,verbose:U,messages:H4,onAutoUpdaterResult:ZK,autoUpdaterResult:Tq,input:t7,onInputChange:k3,mode:sO,onModeChange:Kj,stashedPrompt:ZO,setStashedPrompt:Iw,submitCount:uR,onShowMessageSelector:IK8,onMessageActionsEnter:void 0,mcpClients:M8,pastedContents:oH,setPastedContents:HW,vimMode:yk,setVimMode:FC6,showBashesDialog:_t,setShowBashesDialog:kM6,onSubmit:gR,onAgentSubmit:xK8,isSearchingHistory:kK8,setIsSearchingHistory:VM6,helpOpen:eX,setHelpOpen:VK8,insertTextRef:vY,voiceInterimRange:t3.interimRange}),R8.createElement(jaK,{onBackgroundSession:bK8,isLoading:fK})),xw&&R8.createElement(lE4,{cursor:xw}),rY==="message-selector"&&R8.createElement(hz7,{messages:H4,preselectedMessage:_j,onPreRestore:Fp,onRestoreCode:async(w8)=>{await jx8((L8)=>{J6((o8)=>({...o8,fileHistory:L8(o8.fileHistory)}))},w8.uuid)},onSummarize:async(w8,L8,o8="from")=>{let V7=i2(H4),J7=V7.indexOf(w8);if(J7===-1){J4((QA)=>[...QA,fw("That message is no longer in the active context (snipped or pre-compact). Choose a more recent message.","warning")]);return}let Yq=P3(),b7=zf(V7,[],Yq,V6),N4=b7.getAppState(),GK=await QP(b7.options.tools,b7.options.mainLoopModel,Array.from(N4.toolPermissionContext.additionalWorkingDirectories.keys()),b7.options.mcpClients),lK=Eb({mainThreadAgentDefinition:void 0,toolUseContext:b7,customSystemPrompt:b7.options.customSystemPrompt,defaultSystemPrompt:GK,appendSystemPrompt:b7.options.appendSystemPrompt}),[SK,zj]=await Promise.all([bO(),tw()]),D9=await zDK(V7,J7,b7,{systemPrompt:lK,userContext:SK,systemContext:zj,toolUseContext:b7,forkContextMessages:V7},L8,o8),aH=D9.messagesToKeep??[],Lk=o8==="up_to"?[...D9.summaryMessages,...aH]:[...aH,...D9.summaryMessages],HA=[D9.boundaryMarker,...Lk,...D9.attachments,...D9.hookResults];if(p4()&&o8==="from")J4((QA)=>{let wc=QA.findIndex((Kb6)=>Kb6.uuid===w8.uuid);return[...QA.slice(0,wc===-1?0:wc),...HA]});else J4(HA);if(By(PM6()),Hp(b7.options.querySource),o8==="from"){let QA=w77(w8);if(QA)k3(QA.text),Kj(QA.mode)}let kY=RH("app:toggleTranscript","Global","ctrl+o");m6({key:"summarize-ctrl-o-hint",text:`Conversation summarized (${kY} for history)`,priority:"medium",timeoutMs:8000})},onRestoreMessage:xM6,onClose:()=>{X$(!1),X2(void 0)}}),!1),null)})));if(p4())return R8.createElement(AA7,{mouseTracking:dN1()},qP);return qP}var R8,K1,JnY,UtK,MnY=()=>({state:"closed",handleTranscriptSelect:()=>{}}),XnY=()=>{},PnY=()=>({}),QtK=null,WnY=(q)=>()=>{},DnY=()=>!1,fnY=(q,K)=>!1,ZnY,ZA7,GnY,TnY=3000,ntK,ctK="✳",knY=960;var TA7=y(()=>{q8();v8();vp8();bq();s6();H56();t4();FUK();e37();Wd();s6();QUK();cUK();h$();tt6();aUK();GF();Bi();NG();v8();M0();_8();sUK();m8();U7();cc6();RD();vE6();yE6();AY();qQK();Hb();gP();w46();_QK();SQK();yA();Md8();pQK();ZcK();EcK();RcK();aiK();$$7();_rK();$rK();OrK();jrK();JrK();DrK();Q2();rL();xR6();jN();wM();V$7();Tb();prK();_z7();FrK();QrK();Ib();NY7();crK();nrK();irK();dU();LX();tu();orK();srK();zoK();AoK();y8();E8();DoK();LH();oz7();fX();Tz();pr6();DN();V1();$n();k8();o1();i1();PS6();RY();RA();RoK();xoK();uoK();MH6();Tj6();BoK();dN8();y37();yU8();FoK();coK();B$7();Yq8();nn1();noK();NC8();t18();JK6();y$();roK();BD();rq6();H67();yQ();C7();SJ();_K();qL6();To6();EC();G18();IG();no();oN();xr();_K();a48();lQ();PK6();_aK();i$();YaK();U2();OaK();t37();a37();d0();p2();fC6();HaK();gm8();MaK();Pj6();Yw6();eB1();WaK();f97();Bn1();B2();Z56();TaK();kaK();NaK();LaK();haK();baK();IaK();BaK();FaK();iaK();Kr1();K$();Qc8();KsK();_sK();zsK();j47();AsK();wsK();rd8();HsK();vsK();VsK();ysK();LsK();n$7();SsK();bsK();psK();gb8();gsK();UsK();dsK();lsK();isK();asK();tsK();ztK();wtK();XtK();DtK();qY7();ftK();yA();T57();_M();ZtK();EtK();NN();YM();lP();R8=O6(D6(),1),K1=O6(D6(),1),JnY=(jA7(),Eq(wA7)).useVoiceIntegration,UtK=(jA7(),Eq(wA7)).VoiceKeybindingHandler,ZnY=(FtK(),Eq(gtK)).useScheduledTasks,ZA7=[],GnY={maybeLoadOlder:(q)=>{}};ntK=["⠂","⠐"]});async function PK8(q,K,_,z){let{App:Y}=await Promise.resolve().then(() => (wz7(),Oz7)),{REPL:$}=await Promise.resolve().then(() => (TA7(),itK));await z(q,vA7.default.createElement(Y,{...K},vA7.default.createElement($,{..._})))}var vA7;var rtK=y(()=>{vA7=O6(D6(),1)});async function EnY(){if(iA())return N("[Bootstrap] Skipped: Nonessential traffic disabled"),null;if(E7()!=="firstParty")return N("[Bootstrap] Skipped: 3P provider"),null;let q=zv();if(!(Kq()?.accessToken&&BW())&&!q)return N("[Bootstrap] Skipped: no usable OAuth or API key"),null;let _=`${u7().BASE_API_URL}/api/claude_cli/bootstrap`;try{return await Ki(async()=>{let z=Kq()?.accessToken,Y;if(z&&BW())Y={Authorization:`Bearer ${z}`,"anthropic-beta":rM};else if(q)Y={"x-api-key":q};else return N("[Bootstrap] No auth available on retry, aborting"),null;N("[Bootstrap] Fetching");let $=await $1.get(_,{headers:{"Content-Type":"application/json","User-Agent":n$(),...Y},timeout:5000}),A=ynY().safeParse($.data);if(!A.success)return N(`[Bootstrap] Response failed validation: ${A.error.message}`),null;return N("[Bootstrap] Fetch ok"),A.data})}catch(z){throw N(`[Bootstrap] Fetch failed: ${$1.isAxiosError(z)?z.response?.status??z.code:"unknown"}`),z}}async function otK(){try{let q=await EnY();if(!q)return;let K=q.client_data??null,_=q.additional_model_options??[],z=j8();if(QJ(z.clientDataCache,K)&&QJ(z.additionalModelOptionsCache,_)){N("[Bootstrap] Cache unchanged, skipping write");return}N("[Bootstrap] Cache updated, persisting to disk"),b8((Y)=>({...Y,clientDataCache:K,additionalModelOptionsCache:_}))}catch(q){H6(q)}}var ynY;var atK=y(()=>{CK();Ee();G7();dA6();H3();V1();_8();jG();E8();Az();ynY=B6(()=>Y5.object({client_data:Y5.record(Y5.unknown()).nullish(),additional_model_options:Y5.array(Y5.object({model:Y5.string(),name:Y5.string(),description:Y5.string()}).transform(({model:q,name:K,description:_})=>({value:q,label:K,description:_}))).nullish()}))});import{posix as stK,win32 as ttK}from"path";function RnY(){let q=process.argv[1]||"",K=process.execPath||process.argv[0]||"";if(Z1()==="windows")q=q.split(ttK.sep).join(stK.sep),K=K.split(ttK.sep).join(stK.sep);let _=[q,K],z=["/build-ant/","/build-external/","/build-external-native/","/build-ant-native/"];return _.some((Y)=>z.some(($)=>Y.includes($)))}function SnY(q){let K=`${q.name}: ${q.message}`;return hnY.some((_)=>_.test(K))}function etK(){let q=process.listeners("warning");if(zl8&&q.includes(zl8))return;if(!RnY())process.removeAllListeners("warning");zl8=(_)=>{try{let z=`${_.name}: ${_.message.slice(0,50)}`,Y=_l8.get(z)||0;if(_l8.has(z)||_l8.size<LnY)_l8.set(z,Y+1);let $=SnY(_);if(d("tengu_node_warning",{is_internal:$?1:0,occurrence_count:Y+1,classname:_.name,...!1}),i6(process.env.CLAUDE_DEBUG))N(`${$?"[Internal Warning]":"[Warning]"} ${_.toString()}`,{level:"warn"})}catch{}},process.on("warning",zl8)}var LnY=1000,_l8,hnY,zl8=null;var qeK=y(()=>{k8();_8();m8();vK();_l8=new Map;hnY=[/MaxListenersExceededWarning.*AbortSignal/,/MaxListenersExceededWarning.*EventTarget/]});function Yl8(){let q=z6(1),K;if(q[0]===Symbol.for("react.memo_cache_sentinel"))K=kA7.default.createElement(k,null,"MCP servers may execute code or access system resources. All tool calls require approval. Learn more in the"," ",kA7.default.createElement(hq,{url:"https://code.claude.com/docs/en/mcp"},"MCP documentation"),"."),q[0]=K;else K=q[0];return K}var kA7;var VA7=y(()=>{q8();s6();kA7=O6(D6(),1)});function KeK(q){let K=z6(13),{serverName:_,onDone:z}=q,Y;if(K[0]!==z||K[1]!==_)Y=function(X){d("tengu_mcp_dialog_choice",{choice:X});q:switch(X){case"yes":case"yes_all":{let W=(Z7()||{}).enabledMcpjsonServers||[];if(!W.includes(_))W7("localSettings",{enabledMcpjsonServers:[...W,_]});if(X==="yes_all")W7("localSettings",{enableAllProjectMcpServers:!0});z();break q}case"no":{let W=(Z7()||{}).disabledMcpjsonServers||[];if(!W.includes(_))W7("localSettings",{disabledMcpjsonServers:[...W,_]});z()}}},K[0]=z,K[1]=_,K[2]=Y;else Y=K[2];let $=Y,A=`New MCP server found in .mcp.json: ${_}`,O;if(K[3]!==$)O=()=>$("no"),K[3]=$,K[4]=O;else O=K[4];let w;if(K[5]===Symbol.for("react.memo_cache_sentinel"))w=$l8.default.createElement(Yl8,null),K[5]=w;else w=K[5];let j;if(K[6]===Symbol.for("react.memo_cache_sentinel"))j=[{label:"Use this and all future MCP servers in this project",value:"yes_all"},{label:"Use this MCP server",value:"yes"},{label:"Continue without using this MCP server",value:"no"}],K[6]=j;else j=K[6];let H;if(K[7]!==$)H=$l8.default.createElement(H1,{options:j,onChange:(M)=>$(M),onCancel:()=>$("no")}),K[7]=$,K[8]=H;else H=K[8];let J;if(K[9]!==A||K[10]!==O||K[11]!==H)J=$l8.default.createElement(R1,{title:A,color:"warning",onCancel:O},w,H),K[9]=A,K[10]=O,K[11]=H,K[12]=J;else J=K[12];return J}var $l8;var _eK=y(()=>{q8();k8();U1();d_();e4();VA7();$l8=O6(D6(),1)});function zeK(q){let K=z6(21),{serverNames:_,onDone:z}=q,Y;if(K[0]!==z||K[1]!==_)Y=function(D){let f=Z7()||{},G=f.enabledMcpjsonServers||[],Z=f.disabledMcpjsonServers||[],[T,v]=NU8(_,(V)=>D.includes(V));if(d("tengu_mcp_multidialog_choice",{approved:T.length,rejected:v.length}),T.length>0){let V=[...new Set([...G,...T])];W7("localSettings",{enabledMcpjsonServers:V})}if(v.length>0){let V=[...new Set([...Z,...v])];W7("localSettings",{disabledMcpjsonServers:V})}z()},K[0]=z,K[1]=_,K[2]=Y;else Y=K[2];let $=Y,A;if(K[3]!==z||K[4]!==_)A=()=>{let D=(Z7()||{}).disabledMcpjsonServers||[],f=[...new Set([...D,..._])];W7("localSettings",{disabledMcpjsonServers:f}),z()},K[3]=z,K[4]=_,K[5]=A;else A=K[5];let O=A,w=`${_.length} new MCP servers found in .mcp.json`,j;if(K[6]===Symbol.for("react.memo_cache_sentinel"))j=Yx.default.createElement(Yl8,null),K[6]=j;else j=K[6];let H;if(K[7]!==_)H=_.map(CnY),K[7]=_,K[8]=H;else H=K[8];let J;if(K[9]!==O||K[10]!==$||K[11]!==_||K[12]!==H)J=Yx.default.createElement(Y46,{options:H,defaultValue:_,onSubmit:$,onCancel:O,hideIndexes:!0}),K[9]=O,K[10]=$,K[11]=_,K[12]=H,K[13]=J;else J=K[13];let M;if(K[14]!==O||K[15]!==w||K[16]!==J)M=Yx.default.createElement(R1,{title:w,subtitle:"Select any you wish to enable.",color:"warning",onCancel:O,hideInputGuide:!0},j,J),K[14]=O,K[15]=w,K[16]=J,K[17]=M;else M=K[17];let X;if(K[18]===Symbol.for("react.memo_cache_sentinel"))X=Yx.default.createElement(u,{paddingX:1},Yx.default.createElement(k,{dimColor:!0,italic:!0},Yx.default.createElement(I1,null,Yx.default.createElement(t8,{shortcut:"Space",action:"select"}),Yx.default.createElement(t8,{shortcut:"Enter",action:"confirm"}),Yx.default.createElement(W1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"reject all"})))),K[18]=X;else X=K[18];let P;if(K[19]!==M)P=Yx.default.createElement(Yx.default.Fragment,null,M,X),K[19]=M,K[20]=P;else P=K[20];return P}function CnY(q){return{label:q,value:q}}var Yx;var YeK=y(()=>{q8();N37();k8();s6();U1();a5();Ys6();QK();e4();rK();VA7();Yx=O6(D6(),1)});async function $eK(q){let{servers:K}=SH("project"),_=Object.keys(K).filter((z)=>zE8(z)==="pending");if(_.length===0)return;await new Promise((z)=>{let Y=()=>void z();if(_.length===1&&_[0]!==void 0){let $=_[0];q.render(WM6.default.createElement(LJ,null,WM6.default.createElement(WM,null,WM6.default.createElement(KeK,{serverName:$,onDone:Y}))))}else q.render(WM6.default.createElement(LJ,null,WM6.default.createElement(WM,null,WM6.default.createElement(zeK,{serverNames:_,onDone:Y}))))})}var WM6;var AeK=y(()=>{_eK();YeK();dU();C7();f0();NJ();WM6=O6(D6(),1)});function OeK(){if(process.platform!=="darwin")return;let q=process.env.TERM_PROGRAM;if(!q)return;let K=bnY[q.toLowerCase()];if(!K)return;if(j8().deepLinkTerminal===K)return;b8((z)=>({...z,deepLinkTerminal:K})),N(`Stored deep link terminal preference: ${K}`)}var bnY;var weK=y(()=>{V1();_8();bnY={iterm:"iTerm","iterm.app":"iTerm",ghostty:"Ghostty",kitty:"kitty",alacritty:"Alacritty",wezterm:"WezTerm",apple_terminal:"Terminal"}});class NA7{frameDurations=[];firstRenderTime;lastRenderTime;record(q){let K=performance.now();if(this.firstRenderTime===void 0)this.firstRenderTime=K;this.lastRenderTime=K,this.frameDurations.push(q)}getMetrics(){if(this.frameDurations.length===0||this.firstRenderTime===void 0||this.lastRenderTime===void 0)return;let q=this.lastRenderTime-this.firstRenderTime;if(q<=0)return;let _=this.frameDurations.length/(q/1000),z=this.frameDurations.slice().sort((O,w)=>w-O),Y=Math.max(0,Math.ceil(z.length*0.01)-1),$=z[Y],A=$>0?1000/$:0;return{averageFps:Math.round(_*100)/100,low1PctFps:Math.round(A*100)/100}}}import{realpath as xnY}from"fs/promises";async function jeK(){try{let q=await ge();if(!q){N("Not in a GitHub repository, skipping path mapping update");return}let K=r1(),z=hY(K)??K,Y;try{Y=(await xnY(z)).normalize("NFC")}catch{Y=z}let $=q.toLowerCase(),O=j8().githubRepoPaths?.[$]??[];if(O[0]===Y){N(`Path ${Y} already tracked for repo ${$}`);return}let w=O.filter((H)=>H!==Y),j=[Y,...w];b8((H)=>({...H,githubRepoPaths:{...H.githubRepoPaths,[$]:j}})),N(`Added ${Y} to tracked paths for repo ${$}`)}catch(q){N(`Error updating repo path mapping: ${q}`)}}function Al8(q){let K=j8(),_=q.toLowerCase();return K.githubRepoPaths?.[_]??[]}async function Ol8(q){let K=await Promise.all(q.map(u5));return q.filter((_,z)=>K[z])}async function HeK(q,K){try{let _=await o$8(q);if(!_)return!1;let z=W_6(_);if(!z)return!1;return z.toLowerCase()===K.toLowerCase()}catch{return!1}}function JeK(q,K){let _=j8(),z=q.toLowerCase(),Y=_.githubRepoPaths?.[z]??[],$=Y.filter((O)=>O!==K);if($.length===Y.length)return;let A={..._.githubRepoPaths};if($.length===0)delete A[z];else A[z]=$;b8((O)=>({...O,githubRepoPaths:A})),N(`Removed ${K} from tracked paths for repo ${z}`)}var WK8=y(()=>{v8();V1();_8();mZ();bK();Hl();E5()});function MeK(q,K){let[_,z]=wl8.useState(!1);return wl8.useEffect(()=>{z(!1);let Y=setTimeout(z,q,!0);return()=>clearTimeout(Y)},[q,K]),_}var wl8;var XeK=y(()=>{wl8=O6(D6(),1)});async function InY(){try{let q=u7(),K=new URL(q.TOKEN_URL),_=[`${q.BASE_API_URL}/api/hello`,`${K.origin}/v1/oauth/hello`],z=async(A)=>{try{let O=await $1.get(A,{headers:{"User-Agent":hS()}});if(O.status!==200)return{success:!1,error:`Failed to connect to ${new URL(A).hostname}: Status ${O.status}`};return{success:!0}}catch(O){let w=new URL(A).hostname,j=a76(O);return{success:!1,error:`Failed to connect to ${w}: ${O instanceof Error?O.code||O.message:String(O)}`,sslHint:j??void 0}}},$=(await Promise.all(_.map(z))).find((A)=>!A.success);if($)d("tengu_preflight_check_failed",{isConnectivityError:!1,hasErrorMessage:!!$.error,isSSLError:!!$.sslHint});return $||{success:!0}}catch(q){return H6(q),d("tengu_preflight_check_failed",{isConnectivityError:!0}),{success:!1,error:`Connectivity check error: ${q instanceof Error?q.code||q.message:String(q)}`}}}function PeK(q){let K=z6(12),{onSuccess:_}=q,[z,Y]=IM.useState(null),[$,A]=IM.useState(!0),O=MeK(1000)&&$,w,j;if(K[0]===Symbol.for("react.memo_cache_sentinel"))w=()=>{(async function(){let D=await InY();Y(D),A(!1)})()},j=[],K[0]=w,K[1]=j;else w=K[0],j=K[1];IM.useEffect(w,j);let H,J;if(K[2]!==_||K[3]!==z)H=()=>{if(z?.success)_();else if(z&&!z.success){let P=setTimeout(unY,100);return()=>clearTimeout(P)}},J=[z,_],K[2]=_,K[3]=z,K[4]=H,K[5]=J;else H=K[4],J=K[5];IM.useEffect(H,J);let M;if(K[6]!==$||K[7]!==z||K[8]!==O)M=$&&O?IM.default.createElement(u,{paddingLeft:1},IM.default.createElement(IK,null),IM.default.createElement(k,null,"Checking connectivity...")):!z?.success&&!$&&IM.default.createElement(u,{flexDirection:"column",gap:1},IM.default.createElement(k,{color:"error"},"Unable to connect to Anthropic services"),IM.default.createElement(k,{color:"error"},z?.error),z?.sslHint?IM.default.createElement(u,{flexDirection:"column",gap:1},IM.default.createElement(k,null,z.sslHint),IM.default.createElement(k,{color:"suggestion"},"See https://code.claude.com/docs/en/network-config")):IM.default.createElement(u,{flexDirection:"column",gap:1},IM.default.createElement(k,null,"Please check your internet connection and network settings."),IM.default.createElement(k,null,"Note: Claude Code might not be available in your country. Check supported countries at"," ",IM.default.createElement(k,{color:"suggestion"},"https://anthropic.com/supported-countries")))),K[6]=$,K[7]=z,K[8]=O,K[9]=M;else M=K[9];let X;if(K[10]!==M)X=IM.default.createElement(u,{flexDirection:"column",gap:1,paddingLeft:1},M),K[10]=M,K[11]=X;else X=K[11];return X}function unY(){return process.exit(1)}var IM;var WeK=y(()=>{q8();CK();k8();Q2();H3();XeK();s6();Pr();jG();E8();IM=O6(D6(),1)});var DeK={};T8(DeK,{ApproveApiKey:()=>yA7});function yA7(q){let K=z6(17),{customApiKeyTruncated:_,onDone:z}=q,Y;if(K[0]!==_||K[1]!==z)Y=function(W){q:switch(W){case"yes":{b8((D)=>({...D,customApiKeyResponses:{...D.customApiKeyResponses,approved:[...D.customApiKeyResponses?.approved??[],_]}})),z(!0);break q}case"no":b8((D)=>({...D,customApiKeyResponses:{...D.customApiKeyResponses,rejected:[...D.customApiKeyResponses?.rejected??[],_]}})),z(!1)}},K[0]=_,K[1]=z,K[2]=Y;else Y=K[2];let $=Y,A;if(K[3]!==$)A=()=>$("no"),K[3]=$,K[4]=A;else A=K[4];let O;if(K[5]===Symbol.for("react.memo_cache_sentinel"))O=as.default.createElement(k,{bold:!0},"ANTHROPIC_API_KEY"),K[5]=O;else O=K[5];let w;if(K[6]!==_)w=as.default.createElement(k,null,O,as.default.createElement(k,null,": sk-ant-...",_)),K[6]=_,K[7]=w;else w=K[7];let j;if(K[8]===Symbol.for("react.memo_cache_sentinel"))j=as.default.createElement(k,null,"Do you want to use this API key?"),K[8]=j;else j=K[8];let H;if(K[9]===Symbol.for("react.memo_cache_sentinel"))H={label:"Yes",value:"yes"},K[9]=H;else H=K[9];let J;if(K[10]===Symbol.for("react.memo_cache_sentinel"))J=[H,{label:as.default.createElement(k,null,"No (",as.default.createElement(k,{bold:!0},"recommended"),")"),value:"no"}],K[10]=J;else J=K[10];let M;if(K[11]!==$)M=as.default.createElement(H1,{defaultValue:"no",defaultFocusValue:"no",options:J,onChange:(P)=>$(P),onCancel:()=>$("no")}),K[11]=$,K[12]=M;else M=K[12];let X;if(K[13]!==A||K[14]!==w||K[15]!==M)X=as.default.createElement(R1,{title:"Detected a custom API key in your environment",color:"warning",onCancel:A},w,j,M),K[13]=A,K[14]=w,K[15]=M,K[16]=X;else X=K[16];return X}var as;var EA7=y(()=>{q8();s6();V1();d_();e4();as=O6(D6(),1)});function Hl8(){let q=z6(35),[K]=Aq();if(a1.terminal==="Apple_Terminal"){let Z;if(q[0]!==K)Z=n1.default.createElement(mnY,{theme:K,welcomeMessage:"Welcome to Claude Code"}),q[0]=K,q[1]=Z;else Z=q[1];return Z}if(["light","light-daltonized","light-ansi"].includes(K)){let Z,T,v,V,E,S,R,x,I;if(q[2]===Symbol.for("react.memo_cache_sentinel"))Z=n1.default.createElement(k,null,n1.default.createElement(k,{color:"claude"},"Welcome to Claude Code"," "),n1.default.createElement(k,{dimColor:!0},"v",{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.88",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.VERSION," ")),T=n1.default.createElement(k,null,"…………………………………………………………………………………………………………………………………………………………"),v=n1.default.createElement(k,null," "),V=n1.default.createElement(k,null," "),E=n1.default.createElement(k,null," "),S=n1.default.createElement(k,null," ░░░░░░ "),R=n1.default.createElement(k,null," ░░░ ░░░░░░░░░░ "),x=n1.default.createElement(k,null," ░░░░░░░░░░░░░░░░░░░ "),I=n1.default.createElement(k,null," "),q[2]=Z,q[3]=T,q[4]=v,q[5]=V,q[6]=E,q[7]=S,q[8]=R,q[9]=x,q[10]=I;else Z=q[2],T=q[3],v=q[4],V=q[5],E=q[6],S=q[7],R=q[8],x=q[9],I=q[10];let B;if(q[11]===Symbol.for("react.memo_cache_sentinel"))B=n1.default.createElement(k,null,n1.default.createElement(k,{dimColor:!0}," ░░░░"),n1.default.createElement(k,null," ██ ")),q[11]=B;else B=q[11];let p,C;if(q[12]===Symbol.for("react.memo_cache_sentinel"))p=n1.default.createElement(k,null,n1.default.createElement(k,{dimColor:!0}," ░░░░░░░░░░"),n1.default.createElement(k,null," ██▒▒██ ")),C=n1.default.createElement(k,null," ▒▒ ██ ▒"),q[12]=p,q[13]=C;else p=q[12],C=q[13];let g;if(q[14]===Symbol.for("react.memo_cache_sentinel"))g=n1.default.createElement(k,null," ",n1.default.createElement(k,{color:"clawd_body"}," █████████ ")," ▒▒░░▒▒ ▒ ▒▒"),q[14]=g;else g=q[14];let F;if(q[15]===Symbol.for("react.memo_cache_sentinel"))F=n1.default.createElement(k,null," ",n1.default.createElement(k,{color:"clawd_body",backgroundColor:"clawd_background"},"██▄█████▄██")," ▒▒ ▒▒ "),q[15]=F;else F=q[15];let U;if(q[16]===Symbol.for("react.memo_cache_sentinel"))U=n1.default.createElement(k,null," ",n1.default.createElement(k,{color:"clawd_body"}," █████████ ")," ░ ▒ "),q[16]=U;else U=q[16];let c;if(q[17]===Symbol.for("react.memo_cache_sentinel"))c=n1.default.createElement(u,{width:jl8},n1.default.createElement(k,null,Z,T,v,V,E,S,R,x,I,B,p,C,g,F,U,n1.default.createElement(k,null,"…………………",n1.default.createElement(k,{color:"clawd_body"},"█ █ █ █"),"……………………………………………………………………░…………………………▒…………"))),q[17]=c;else c=q[17];return c}let _,z,Y,$,A,O,w;if(q[18]===Symbol.for("react.memo_cache_sentinel"))_=n1.default.createElement(k,null,n1.default.createElement(k,{color:"claude"},"Welcome to Claude Code"," "),n1.default.createElement(k,{dimColor:!0},"v",{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.88",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.VERSION," ")),z=n1.default.createElement(k,null,"…………………………………………………………………………………………………………………………………………………………"),Y=n1.default.createElement(k,null," "),$=n1.default.createElement(k,null," * █████▓▓░ "),A=n1.default.createElement(k,null," * ███▓░ ░░ "),O=n1.default.createElement(k,null," ░░░░░░ ███▓░ "),w=n1.default.createElement(k,null," ░░░ ░░░░░░░░░░ ███▓░ "),q[18]=_,q[19]=z,q[20]=Y,q[21]=$,q[22]=A,q[23]=O,q[24]=w;else _=q[18],z=q[19],Y=q[20],$=q[21],A=q[22],O=q[23],w=q[24];let j,H,J,M,X;if(q[25]===Symbol.for("react.memo_cache_sentinel"))J=n1.default.createElement(k,null,n1.default.createElement(k,null," ░░░░░░░░░░░░░░░░░░░ "),n1.default.createElement(k,{bold:!0},"*"),n1.default.createElement(k,null," ██▓░░ ▓ ")),M=n1.default.createElement(k,null," ░▓▓███▓▓░ "),X=n1.default.createElement(k,{dimColor:!0}," * ░░░░ "),j=n1.default.createElement(k,{dimColor:!0}," ░░░░░░░░ "),H=n1.default.createElement(k,{dimColor:!0}," ░░░░░░░░░░░░░░░░ "),q[25]=j,q[26]=H,q[27]=J,q[28]=M,q[29]=X;else j=q[25],H=q[26],J=q[27],M=q[28],X=q[29];let P;if(q[30]===Symbol.for("react.memo_cache_sentinel"))P=n1.default.createElement(k,{color:"clawd_body"}," █████████ "),q[30]=P;else P=q[30];let W;if(q[31]===Symbol.for("react.memo_cache_sentinel"))W=n1.default.createElement(k,null," ",P," ",n1.default.createElement(k,{dimColor:!0},"*"),n1.default.createElement(k,null," ")),q[31]=W;else W=q[31];let D;if(q[32]===Symbol.for("react.memo_cache_sentinel"))D=n1.default.createElement(k,null," ",n1.default.createElement(k,{color:"clawd_body"},"██▄█████▄██"),n1.default.createElement(k,null," "),n1.default.createElement(k,{bold:!0},"*"),n1.default.createElement(k,null," ")),q[32]=D;else D=q[32];let f;if(q[33]===Symbol.for("react.memo_cache_sentinel"))f=n1.default.createElement(k,null," ",n1.default.createElement(k,{color:"clawd_body"}," █████████ ")," * "),q[33]=f;else f=q[33];let G;if(q[34]===Symbol.for("react.memo_cache_sentinel"))G=n1.default.createElement(u,{width:jl8},n1.default.createElement(k,null,_,z,Y,$,A,O,w,J,M,X,j,H,W,D,f,n1.default.createElement(k,null,"…………………",n1.default.createElement(k,{color:"clawd_body"},"█ █ █ █"),"………………………………………………………………………………………………………………"))),q[34]=G;else G=q[34];return G}function mnY(q){let K=z6(44),{theme:_,welcomeMessage:z}=q;if(["light","light-daltonized","light-ansi"].includes(_)){let S;if(K[0]!==z)S=n1.default.createElement(k,{color:"claude"},z," "),K[0]=z,K[1]=S;else S=K[1];let R;if(K[2]===Symbol.for("react.memo_cache_sentinel"))R=n1.default.createElement(k,{dimColor:!0},"v",{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.88",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.VERSION," "),K[2]=R;else R=K[2];let x;if(K[3]!==S)x=n1.default.createElement(k,null,S,R),K[3]=S,K[4]=x;else x=K[4];let I,B,p,C,g,F,U,c;if(K[5]===Symbol.for("react.memo_cache_sentinel"))p=n1.default.createElement(k,null,"…………………………………………………………………………………………………………………………………………………………"),C=n1.default.createElement(k,null," "),g=n1.default.createElement(k,null," "),F=n1.default.createElement(k,null," "),U=n1.default.createElement(k,null," ░░░░░░ "),c=n1.default.createElement(k,null," ░░░ ░░░░░░░░░░ "),I=n1.default.createElement(k,null," ░░░░░░░░░░░░░░░░░░░ "),B=n1.default.createElement(k,null," "),K[5]=I,K[6]=B,K[7]=p,K[8]=C,K[9]=g,K[10]=F,K[11]=U,K[12]=c;else I=K[5],B=K[6],p=K[7],C=K[8],g=K[9],F=K[10],U=K[11],c=K[12];let K6;if(K[13]===Symbol.for("react.memo_cache_sentinel"))K6=n1.default.createElement(k,null,n1.default.createElement(k,{dimColor:!0}," ░░░░"),n1.default.createElement(k,null," ██ ")),K[13]=K6;else K6=K[13];let t,q6,e;if(K[14]===Symbol.for("react.memo_cache_sentinel"))t=n1.default.createElement(k,null,n1.default.createElement(k,{dimColor:!0}," ░░░░░░░░░░"),n1.default.createElement(k,null," ██▒▒██ ")),q6=n1.default.createElement(k,null," ▒▒ ██ ▒"),e=n1.default.createElement(k,null," ▒▒░░▒▒ ▒ ▒▒"),K[14]=t,K[15]=q6,K[16]=e;else t=K[14],q6=K[15],e=K[16];let i;if(K[17]===Symbol.for("react.memo_cache_sentinel"))i=n1.default.createElement(k,null," ",n1.default.createElement(k,{color:"clawd_body"},"▗"),n1.default.createElement(k,{color:"clawd_background",backgroundColor:"clawd_body"}," ","▗"," ","▖"," "),n1.default.createElement(k,{color:"clawd_body"},"▖")," ▒▒ ▒▒ "),K[17]=i;else i=K[17];let $6;if(K[18]===Symbol.for("react.memo_cache_sentinel"))$6=n1.default.createElement(k,null," ",n1.default.createElement(k,{backgroundColor:"clawd_body"}," ".repeat(9))," ░ ▒ "),K[18]=$6;else $6=K[18];let M6;if(K[19]===Symbol.for("react.memo_cache_sentinel"))M6=n1.default.createElement(k,null,"…………………",n1.default.createElement(k,{backgroundColor:"clawd_body"}," "),n1.default.createElement(k,null," "),n1.default.createElement(k,{backgroundColor:"clawd_body"}," "),n1.default.createElement(k,null," "),n1.default.createElement(k,{backgroundColor:"clawd_body"}," "),n1.default.createElement(k,null," "),n1.default.createElement(k,{backgroundColor:"clawd_body"}," "),"……………………………………………………………………░…………………………▒…………"),K[19]=M6;else M6=K[19];let j6;if(K[20]!==x)j6=n1.default.createElement(u,{width:jl8},n1.default.createElement(k,null,x,p,C,g,F,U,c,I,B,K6,t,q6,e,i,$6,M6)),K[20]=x,K[21]=j6;else j6=K[21];return j6}let $;if(K[22]!==z)$=n1.default.createElement(k,{color:"claude"},z," "),K[22]=z,K[23]=$;else $=K[23];let A;if(K[24]===Symbol.for("react.memo_cache_sentinel"))A=n1.default.createElement(k,{dimColor:!0},"v",{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.88",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.VERSION," "),K[24]=A;else A=K[24];let O;if(K[25]!==$)O=n1.default.createElement(k,null,$,A),K[25]=$,K[26]=O;else O=K[26];let w,j,H,J,M,X;if(K[27]===Symbol.for("react.memo_cache_sentinel"))w=n1.default.createElement(k,null,"…………………………………………………………………………………………………………………………………………………………"),j=n1.default.createElement(k,null," "),H=n1.default.createElement(k,null," * █████▓▓░ "),J=n1.default.createElement(k,null," * ███▓░ ░░ "),M=n1.default.createElement(k,null," ░░░░░░ ███▓░ "),X=n1.default.createElement(k,null," ░░░ ░░░░░░░░░░ ███▓░ "),K[27]=w,K[28]=j,K[29]=H,K[30]=J,K[31]=M,K[32]=X;else w=K[27],j=K[28],H=K[29],J=K[30],M=K[31],X=K[32];let P,W,D,f,G;if(K[33]===Symbol.for("react.memo_cache_sentinel"))P=n1.default.createElement(k,null,n1.default.createElement(k,null," ░░░░░░░░░░░░░░░░░░░ "),n1.default.createElement(k,{bold:!0},"*"),n1.default.createElement(k,null," ██▓░░ ▓ ")),W=n1.default.createElement(k,null," ░▓▓███▓▓░ "),D=n1.default.createElement(k,{dimColor:!0}," * ░░░░ "),f=n1.default.createElement(k,{dimColor:!0}," ░░░░░░░░ "),G=n1.default.createElement(k,{dimColor:!0}," ░░░░░░░░░░░░░░░░ "),K[33]=P,K[34]=W,K[35]=D,K[36]=f,K[37]=G;else P=K[33],W=K[34],D=K[35],f=K[36],G=K[37];let Z;if(K[38]===Symbol.for("react.memo_cache_sentinel"))Z=n1.default.createElement(k,null," ",n1.default.createElement(k,{dimColor:!0},"*"),n1.default.createElement(k,null," ")),K[38]=Z;else Z=K[38];let T;if(K[39]===Symbol.for("react.memo_cache_sentinel"))T=n1.default.createElement(k,null," ",n1.default.createElement(k,{color:"clawd_body"},"▗"),n1.default.createElement(k,{color:"clawd_background",backgroundColor:"clawd_body"}," ","▗"," ","▖"," "),n1.default.createElement(k,{color:"clawd_body"},"▖"),n1.default.createElement(k,null," "),n1.default.createElement(k,{bold:!0},"*"),n1.default.createElement(k,null," ")),K[39]=T;else T=K[39];let v;if(K[40]===Symbol.for("react.memo_cache_sentinel"))v=n1.default.createElement(k,null," ",n1.default.createElement(k,{backgroundColor:"clawd_body"}," ".repeat(9))," * "),K[40]=v;else v=K[40];let V;if(K[41]===Symbol.for("react.memo_cache_sentinel"))V=n1.default.createElement(k,null,"…………………",n1.default.createElement(k,{backgroundColor:"clawd_body"}," "),n1.default.createElement(k,null," "),n1.default.createElement(k,{backgroundColor:"clawd_body"}," "),n1.default.createElement(k,null," "),n1.default.createElement(k,{backgroundColor:"clawd_body"}," "),n1.default.createElement(k,null," "),n1.default.createElement(k,{backgroundColor:"clawd_body"}," "),"………………………………………………………………………………………………………………"),K[41]=V;else V=K[41];let E;if(K[42]!==O)E=n1.default.createElement(u,{width:jl8},n1.default.createElement(k,null,O,w,j,H,J,M,X,P,W,D,f,G,Z,T,v,V)),K[42]=O,K[43]=E;else E=K[43];return E}var n1,jl8=58;var LA7=y(()=>{q8();s6();y_();n1=O6(D6(),1)});function Jl8(q){let K=z6(7),{children:_}=q,{marker:z}=$36.useContext(RA7),Y;if(K[0]!==z)Y=$36.default.createElement(k,{dimColor:!0},z),K[0]=z,K[1]=Y;else Y=K[1];let $;if(K[2]!==_)$=$36.default.createElement(u,{flexDirection:"column"},_),K[2]=_,K[3]=$;else $=K[3];let A;if(K[4]!==Y||K[5]!==$)A=$36.default.createElement(u,{gap:1},Y,$),K[4]=Y,K[5]=$,K[6]=A;else A=K[6];return A}var $36,RA7;var feK=y(()=>{q8();s6();$36=O6(D6(),1),RA7=$36.createContext({marker:""})});function GeK(q){let K=z6(9),{children:_}=q,{marker:z}=xR.useContext(ZeK),Y=0;for(let w of xR.default.Children.toArray(_)){if(!xR.isValidElement(w)||w.type!==Jl8)continue;Y++}let $=String(Y).length,A;if(K[0]!==_||K[1]!==$||K[2]!==z){let w;if(K[4]!==$||K[5]!==z)w=(j,H)=>{if(!xR.isValidElement(j)||j.type!==Jl8)return j;let J=`${String(H+1).padStart($)}.`,M=`${z}${J}`;return xR.default.createElement(ZeK.Provider,{value:{marker:M}},xR.default.createElement(RA7.Provider,{value:{marker:M}},j))},K[4]=$,K[5]=z,K[6]=w;else w=K[6];A=xR.default.Children.map(_,w),K[0]=_,K[1]=$,K[2]=z,K[3]=A}else A=K[3];let O;if(K[7]!==A)O=xR.default.createElement(u,{flexDirection:"column"},A),K[7]=A,K[8]=O;else O=K[8];return O}var xR,ZeK,Ml8;var TeK=y(()=>{q8();s6();feK();xR=O6(D6(),1),ZeK=xR.createContext({marker:""});GeK.Item=Jl8;Ml8=GeK});var keK={};T8(keK,{SkippableStep:()=>veK,Onboarding:()=>pnY});function pnY({onDone:q}){let[K,_]=O3.useState(0),[z,Y]=O3.useState(!1),[$]=O3.useState(()=>WJ()),[A,O]=Aq();O3.useEffect(()=>{d("tengu_began_setup",{oauthEnabled:$})},[$]);function w(){if(K<D.length-1){let T=K+1;_(T),d("tengu_onboarding_step",{oauthEnabled:$,stepId:D[T]?.id})}else q()}function j(T){O(T),w()}let H=o5(),J=O3.default.createElement(u,{marginX:1},O3.default.createElement(ph6,{onThemeSelect:j,showIntroText:!0,helpText:"To change this later, run /theme",hideEscToCancel:!0,skipExitHandling:!0})),M=O3.default.createElement(u,{flexDirection:"column",gap:1,paddingLeft:1},O3.default.createElement(k,{bold:!0},"Security notes:"),O3.default.createElement(u,{flexDirection:"column",width:70},O3.default.createElement(Ml8,null,O3.default.createElement(Ml8.Item,null,O3.default.createElement(k,null,"Claude can make mistakes"),O3.default.createElement(k,{dimColor:!0,wrap:"wrap"},"You should always review Claude's responses, especially when",O3.default.createElement(Ev,null),"running code.",O3.default.createElement(Ev,null))),O3.default.createElement(Ml8.Item,null,O3.default.createElement(k,null,"Due to prompt injection risks, only use it with code you trust"),O3.default.createElement(k,{dimColor:!0,wrap:"wrap"},"For more details see:",O3.default.createElement(Ev,null),O3.default.createElement(hq,{url:"https://code.claude.com/docs/en/security"}))))),O3.default.createElement(Qg8,null)),X=O3.default.createElement(PeK,{onSuccess:w}),P=O3.useMemo(()=>{if(!process.env.ANTHROPIC_API_KEY||LT())return"";let T=GV(process.env.ANTHROPIC_API_KEY);if(Sc6(T)==="new")return T},[]);function W(T){if(T)Y(!0);w()}let D=[];if($)D.push({id:"preflight",component:X});if(D.push({id:"theme",component:J}),P)D.push({id:"api-key",component:O3.default.createElement(yA7,{customApiKeyTruncated:P,onDone:W})});if($)D.push({id:"oauth",component:O3.default.createElement(veK,{skip:z,onSkip:w},O3.default.createElement(_j6,{onDone:w}))});if(D.push({id:"security",component:M}),hh6())D.push({id:"terminal-setup",component:O3.default.createElement(u,{flexDirection:"column",gap:1,paddingLeft:1},O3.default.createElement(k,{bold:!0},"Use Claude Code's terminal setup?"),O3.default.createElement(u,{flexDirection:"column",width:70,gap:1},O3.default.createElement(k,null,"For the optimal coding experience, enable the recommended settings",O3.default.createElement(Ev,null),"for your terminal:"," ",a1.terminal==="Apple_Terminal"?"Option+Enter for newlines and visual bell":"Shift+Enter for newlines"),O3.default.createElement(H1,{options:[{label:"Yes, use recommended settings",value:"install"},{label:"No, maybe later with /terminal-setup",value:"no"}],onChange:(T)=>{if(T==="install")UB8(A).catch(()=>{}).finally(w);else w()},onCancel:()=>w()}),O3.default.createElement(k,{dimColor:!0},H.pending?O3.default.createElement(O3.default.Fragment,null,"Press ",H.keyName," again to exit"):O3.default.createElement(O3.default.Fragment,null,"Enter to confirm · Esc to skip"))))});let f=D[K],G=O3.useCallback(()=>{if(K===D.length-1)q();else w()},[K,D.length,$,q]),Z=O3.useCallback(()=>{w()},[K,D.length,$,q]);return o7({"confirm:yes":G},{context:"Confirmation",isActive:f?.id==="security"}),o7({"confirm:no":Z},{context:"Confirmation",isActive:f?.id==="terminal-setup"}),O3.default.createElement(u,{flexDirection:"column"},O3.default.createElement(Hl8,null),O3.default.createElement(u,{flexDirection:"column",marginTop:1},f?.component,H.pending&&O3.default.createElement(u,{padding:1},O3.default.createElement(k,{dimColor:!0},"Press ",H.keyName," again to exit"))))}function veK(q){let K=z6(4),{skip:_,onSkip:z,children:Y}=q,$,A;if(K[0]!==z||K[1]!==_)$=()=>{if(_)z()},A=[_,z],K[0]=z,K[1]=_,K[2]=$,K[3]=A;else $=K[2],A=K[3];if(O3.useEffect($,A),_)return null;return Y}var O3;var VeK=y(()=>{q8();k8();SH6();z2();s6();Oq();G7();NF6();V1();y_();m8();WeK();EA7();Ie6();p3();LA7();O47();Vg8();TeK();O3=O6(D6(),1)});function NeK(q){if(q===null||q.disableAllHooks)return!1;if(q.statusLine)return!0;if(q.fileSuggestion)return!0;if(!q.hooks)return!1;for(let K of Object.values(q.hooks))if(K.length>0)return!0;return!1}function CeK(){let q=[],K=v1("projectSettings");if(NeK(K))q.push(".claude/settings.json");let _=v1("localSettings");if(NeK(_))q.push(".claude/settings.local.json");return q}function yeK(q){return q.some((K)=>K.ruleBehavior==="allow"&&(K.ruleValue.toolName===_q||K.ruleValue.toolName.startsWith(_q+"(")))}function beK(){let q=[],K=wo6("projectSettings");if(yeK(K))q.push(".claude/settings.json");let _=wo6("localSettings");if(yeK(_))q.push(".claude/settings.local.json");return q}function EeK(q){return!!q?.otelHeadersHelper}function xeK(){let q=[],K=v1("projectSettings");if(EeK(K))q.push(".claude/settings.json");let _=v1("localSettings");if(EeK(_))q.push(".claude/settings.local.json");return q}function LeK(q){return!!q?.apiKeyHelper}function IeK(){let q=[],K=v1("projectSettings");if(LeK(K))q.push(".claude/settings.json");let _=v1("localSettings");if(LeK(_))q.push(".claude/settings.local.json");return q}function ReK(q){return!!(q?.awsAuthRefresh||q?.awsCredentialExport)}function ueK(){let q=[],K=v1("projectSettings");if(ReK(K))q.push(".claude/settings.json");let _=v1("localSettings");if(ReK(_))q.push(".claude/settings.local.json");return q}function heK(q){return!!q?.gcpAuthRefresh}function meK(){let q=[],K=v1("projectSettings");if(heK(K))q.push(".claude/settings.json");let _=v1("localSettings");if(heK(_))q.push(".claude/settings.local.json");return q}function SeK(q){if(!q?.env)return!1;return Object.keys(q.env).some((K)=>!iN6.has(K.toUpperCase()))}function peK(){let q=[],K=v1("projectSettings");if(SeK(K))q.push(".claude/settings.json");let _=v1("localSettings");if(SeK(_))q.push(".claude/settings.local.json");return q}var BeK=y(()=>{U1();lL8();iu()});var FeK={};T8(FeK,{TrustDialog:()=>BnY});import{homedir as geK}from"os";function BnY(q){let K=z6(33),{onDone:_,commands:z}=q,Y;if(K[0]===Symbol.for("react.memo_cache_sentinel"))Y=SH("project"),K[0]=Y;else Y=K[0];let{servers:$}=Y,A;if(K[1]===Symbol.for("react.memo_cache_sentinel"))A=Object.keys($),K[1]=A;else A=K[1];let O=A.length>0,w;if(K[2]===Symbol.for("react.memo_cache_sentinel"))w=CeK(),K[2]=w;else w=K[2];let H=w.length>0,J;if(K[3]===Symbol.for("react.memo_cache_sentinel"))J=beK(),K[3]=J;else J=K[3];let M=J,X;if(K[4]===Symbol.for("react.memo_cache_sentinel"))X=IeK(),K[4]=X;else X=K[4];let W=X.length>0,D;if(K[5]===Symbol.for("react.memo_cache_sentinel"))D=ueK(),K[5]=D;else D=K[5];let G=D.length>0,Z;if(K[6]===Symbol.for("react.memo_cache_sentinel"))Z=meK(),K[6]=Z;else Z=K[6];let v=Z.length>0,V;if(K[7]===Symbol.for("react.memo_cache_sentinel"))V=xeK(),K[7]=V;else V=K[7];let S=V.length>0,R;if(K[8]===Symbol.for("react.memo_cache_sentinel"))R=peK(),K[8]=R;else R=K[8];let I=R.length>0,B;if(K[9]!==z)B=z?.some(cnY)??!1,K[9]=z,K[10]=B;else B=K[10];let p=B,C;if(K[11]!==z)C=z?.some(QnY)??!1,K[11]=z,K[12]=C;else C=K[12];let g=C,F=M.length>0||p||g,U=l$(),c,K6;if(K[13]!==F)c=()=>{let n=geK()===Z8();d("tengu_trust_dialog_shown",{isHomeDir:n,hasMcpServers:O,hasHooks:H,hasBashExecution:F,hasApiKeyHelper:W,hasAwsCommands:G,hasGcpCommands:v,hasOtelHeadersHelper:S,hasDangerousEnvVars:I})},K6=[O,H,F,W,G,v,S,I],K[13]=F,K[14]=c,K[15]=K6;else c=K[14],K6=K[15];Tk.default.useEffect(c,K6);let t;if(K[16]!==F||K[17]!==_)t=function(l){if(l==="exit"){eK(1);return}let A6=geK()===Z8();if(d("tengu_trust_dialog_accept",{isHomeDir:A6,hasMcpServers:O,hasHooks:H,hasBashExecution:F,hasApiKeyHelper:W,hasAwsCommands:G,hasGcpCommands:v,hasOtelHeadersHelper:S,hasDangerousEnvVars:I}),A6)ab6(!0);else jw(UnY);_()},K[16]=F,K[17]=_,K[18]=t;else t=K[18];let q6=t,e=o5(FnY),i;if(K[19]===Symbol.for("react.memo_cache_sentinel"))i={context:"Confirmation"},K[19]=i;else i=K[19];if(P1("confirm:no",gnY,i),U)return setTimeout(_),null;let $6,M6,j6;if(K[20]===Symbol.for("react.memo_cache_sentinel"))$6=Tk.default.createElement(k,{bold:!0},X8().cwd()),M6=Tk.default.createElement(k,null,"Quick safety check: Is this a project you created or one you trust? (Like your own code, a well-known open source project, or work from your team). If not, take a moment to review what","'","s in this folder first."),j6=Tk.default.createElement(k,null,"Claude Code","'","ll be able to read, edit, and execute files here."),K[20]=$6,K[21]=M6,K[22]=j6;else $6=K[20],M6=K[21],j6=K[22];let G6;if(K[23]===Symbol.for("react.memo_cache_sentinel"))G6=Tk.default.createElement(k,{dimColor:!0},Tk.default.createElement(hq,{url:"https://code.claude.com/docs/en/security"},"Security guide")),K[23]=G6;else G6=K[23];let w6;if(K[24]===Symbol.for("react.memo_cache_sentinel"))w6=[{label:"Yes, I trust this folder",value:"enable_all"},{label:"No, exit",value:"exit"}],K[24]=w6;else w6=K[24];let o;if(K[25]!==q6)o=Tk.default.createElement(H1,{options:w6,onChange:(n)=>q6(n),onCancel:()=>q6("exit")}),K[25]=q6,K[26]=o;else o=K[26];let s;if(K[27]!==e.keyName||K[28]!==e.pending)s=Tk.default.createElement(k,{dimColor:!0},e.pending?Tk.default.createElement(Tk.default.Fragment,null,"Press ",e.keyName," again to exit"):Tk.default.createElement(Tk.default.Fragment,null,"Enter to confirm · Esc to cancel")),K[27]=e.keyName,K[28]=e.pending,K[29]=s;else s=K[29];let a;if(K[30]!==o||K[31]!==s)a=Tk.default.createElement(HY,{color:"warning",titleColor:"warning",title:"Accessing workspace:"},Tk.default.createElement(u,{flexDirection:"column",gap:1,paddingTop:1},$6,M6,j6,G6,o,s)),K[30]=o,K[31]=s,K[32]=a;else a=K[32];return a}function gnY(){eK(0)}function FnY(){return eK(1)}function UnY(q){return{...q,hasTrustDialogAccepted:!0}}function QnY(q){return q.type==="prompt"&&(q.loadedFrom==="skills"||q.loadedFrom==="plugin")&&(q.source==="projectSettings"||q.source==="localSettings"||q.source==="plugin")&&q.allowedTools?.some(dnY)}function dnY(q){return q===_q||q.startsWith(_q+"(")}function cnY(q){return q.type==="prompt"&&q.loadedFrom==="commands_DEPRECATED"&&(q.source==="projectSettings"||q.source==="localSettings")&&q.allowedTools?.some(lnY)}function lnY(q){return q===_q||q.startsWith(_q+"(")}var Tk;var UeK=y(()=>{q8();k8();v8();z2();s6();Oq();f0();V1();I7();e7();RA();d_();GD();BeK();Tk=O6(D6(),1)});var QeK={};T8(QeK,{BypassPermissionsModeDialog:()=>nnY});function nnY(q){let K=z6(7),{onAccept:_}=q,z;if(K[0]===Symbol.for("react.memo_cache_sentinel"))z=[],K[0]=z;else z=K[0];ss.default.useEffect(rnY,z);let Y;if(K[1]!==_)Y=function(J){q:switch(J){case"accept":{d("tengu_bypass_permissions_mode_dialog_accept",{}),W7("userSettings",{skipDangerousModePermissionPrompt:!0}),_();break q}case"decline":eK(1)}},K[1]=_,K[2]=Y;else Y=K[2];let $=Y,A=inY,O;if(K[3]===Symbol.for("react.memo_cache_sentinel"))O=ss.default.createElement(u,{flexDirection:"column",gap:1},ss.default.createElement(k,null,"In Bypass Permissions mode, Claude Code will not ask for your approval before running potentially dangerous commands.",ss.default.createElement(Ev,null),"This mode should only be used in a sandboxed container/VM that has restricted internet access and can easily be restored if damaged."),ss.default.createElement(k,null,"By proceeding, you accept all responsibility for actions taken while running in Bypass Permissions mode."),ss.default.createElement(hq,{url:"https://code.claude.com/docs/en/security"})),K[3]=O;else O=K[3];let w;if(K[4]===Symbol.for("react.memo_cache_sentinel"))w=[{label:"No, exit",value:"decline"},{label:"Yes, I accept",value:"accept"}],K[4]=w;else w=K[4];let j;if(K[5]!==$)j=ss.default.createElement(R1,{title:"WARNING: Claude Code running in Bypass Permissions mode",color:"error",onCancel:A},O,ss.default.createElement(H1,{options:w,onChange:(H)=>$(H)})),K[5]=$,K[6]=j;else j=K[6];return j}function inY(){eK(0)}function rnY(){d("tengu_bypass_permissions_mode_dialog_shown",{})}var ss;var deK=y(()=>{q8();k8();s6();RA();U1();d_();e4();ss=O6(D6(),1)});var ceK={};T8(ceK,{DevChannelsDialog:()=>onY});function onY(q){let K=z6(14),{channels:_,onAccept:z}=q,Y;if(K[0]!==z)Y=function(W){q:switch(W){case"accept":{z();break q}case"exit":eK(1)}},K[0]=z,K[1]=Y;else Y=K[1];let $=Y,A=snY,O,w;if(K[2]===Symbol.for("react.memo_cache_sentinel"))O=DM6.default.createElement(k,null,"--dangerously-load-development-channels is for local channel development only. Do not use this option to run channels you have downloaded off the internet."),w=DM6.default.createElement(k,null,"Please use --channels to run a list of approved channels."),K[2]=O,K[3]=w;else O=K[2],w=K[3];let j;if(K[4]!==_)j=_.map(anY).join(", "),K[4]=_,K[5]=j;else j=K[5];let H;if(K[6]!==j)H=DM6.default.createElement(u,{flexDirection:"column",gap:1},O,w,DM6.default.createElement(k,{dimColor:!0},"Channels:"," ",j)),K[6]=j,K[7]=H;else H=K[7];let J;if(K[8]===Symbol.for("react.memo_cache_sentinel"))J=[{label:"I am using this for local development",value:"accept"},{label:"Exit",value:"exit"}],K[8]=J;else J=K[8];let M;if(K[9]!==$)M=DM6.default.createElement(H1,{options:J,onChange:(P)=>$(P)}),K[9]=$,K[10]=M;else M=K[10];let X;if(K[11]!==H||K[12]!==M)X=DM6.default.createElement(R1,{title:"WARNING: Loading development channels",color:"error",onCancel:A},H,M),K[11]=H,K[12]=M,K[13]=X;else X=K[13];return X}function anY(q){return q.kind==="plugin"?`plugin:${q.name}@${q.marketplace}`:`server:${q.name}`}function snY(){eK(0)}var DM6;var leK=y(()=>{q8();s6();RA();d_();e4();DM6=O6(D6(),1)});var neK={};T8(neK,{ClaudeInChromeOnboarding:()=>qiY});function qiY(q){let K=z6(20),{onDone:_}=q,[z,Y]=Kf.default.useState(!1),$,A;if(K[0]===Symbol.for("react.memo_cache_sentinel"))$=()=>{d("tengu_claude_in_chrome_onboarding_shown",{}),Zs().then(Y),b8(KiY)},A=[],K[0]=$,K[1]=A;else $=K[0],A=K[1];Kf.default.useEffect($,A);let O;if(K[2]!==_)O=(D,f)=>{if(f.return)_()},K[2]=_,K[3]=O;else O=K[3];k4(O);let w;if(K[4]!==z)w=!z&&Kf.default.createElement(Kf.default.Fragment,null,Kf.default.createElement(Ev,null),Kf.default.createElement(Ev,null),"Requires the Chrome extension. Get started at"," ",Kf.default.createElement(hq,{url:tnY})),K[4]=z,K[5]=w;else w=K[5];let j;if(K[6]!==w)j=Kf.default.createElement(k,null,"Claude in Chrome works with the Chrome extension to let you control your browser directly from Claude Code. You can navigate websites, fill forms, capture screenshots, record GIFs, and debug with console logs and network requests.",w),K[6]=w,K[7]=j;else j=K[7];let H;if(K[8]!==z)H=z&&Kf.default.createElement(Kf.default.Fragment,null," ","(",Kf.default.createElement(hq,{url:enY}),")"),K[8]=z,K[9]=H;else H=K[9];let J;if(K[10]!==H)J=Kf.default.createElement(k,{dimColor:!0},"Site-level permissions are inherited from the Chrome extension. Manage permissions in the Chrome extension settings to control which sites Claude can browse, click, and type on",H,"."),K[10]=H,K[11]=J;else J=K[11];let M;if(K[12]===Symbol.for("react.memo_cache_sentinel"))M=Kf.default.createElement(k,{bold:!0,color:"chromeYellow"},"/chrome"),K[12]=M;else M=K[12];let X;if(K[13]===Symbol.for("react.memo_cache_sentinel"))X=Kf.default.createElement(k,{dimColor:!0},"For more info, use"," ",M," ","or visit ",Kf.default.createElement(hq,{url:"https://code.claude.com/docs/en/chrome"})),K[13]=X;else X=K[13];let P;if(K[14]!==j||K[15]!==J)P=Kf.default.createElement(u,{flexDirection:"column",gap:1},j,J,X),K[14]=j,K[15]=J,K[16]=P;else P=K[16];let W;if(K[17]!==_||K[18]!==P)W=Kf.default.createElement(R1,{title:"Claude in Chrome (Beta)",onCancel:_,color:"chromeYellow"},P),K[17]=_,K[18]=P,K[19]=W;else W=K[19];return W}function KiY(q){return{...q,hasCompletedClaudeInChromeOnboarding:!0}}var Kf,tnY="https://claude.ai/chrome",enY="https://clau.de/chrome/permissions";var ieK=y(()=>{q8();k8();s6();WJ6();V1();e4();Kf=O6(D6(),1)});import{appendFileSync as _iY}from"fs";function ziY(){b8((q)=>({...q,hasCompletedOnboarding:!0,lastOnboardingVersion:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.88",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.VERSION}))}function YiY(q,K){return new Promise((_)=>{let z=(Y)=>void _(Y);q.render(K(z))})}async function od(q,K,_){return $iY(q,K,{color:"error",beforeExit:_})}async function $iY(q,K,_){let{Text:z}=await Promise.resolve().then(() => (s6(),Bl6)),Y=_?.color,$=_?.exitCode??1;q.render(Y?Iy.default.createElement(z,{color:Y},K):Iy.default.createElement(z,null,K)),q.unmount(),await _?.beforeExit?.(),process.exit($)}function IR(q,K,_){return YiY(q,(z)=>Iy.default.createElement(LJ,{onChangeAppState:_?.onChangeAppState},Iy.default.createElement(WM,null,K(z))))}async function fM6(q,K){q.render(K),Xl8(),await q.waitUntilExit(),await xK(0)}async function reK(q,K,_,z,Y,$){if(i6(!1)||process.env.IS_DEMO)return!1;let A=j8(),O=!1;if(!A.theme||!A.hasCompletedOnboarding){O=!0;let{Onboarding:w}=await Promise.resolve().then(() => (VeK(),keK));await IR(q,(j)=>Iy.default.createElement(w,{onDone:()=>{ziY(),j()}}),{onChangeAppState:Ss})}if(!i6(process.env.CLAUBBIT)){if(!l$()){let{TrustDialog:j}=await Promise.resolve().then(() => (UeK(),FeK));await IR(q,(H)=>Iy.default.createElement(j,{commands:z,onDone:H}))}ab6(!0),Ec6(),Xi(),tw();let{errors:w}=bo();if(w.length===0)await $eK(q);if(await jI1()){let j=pk6(await yH(!0)),{ClaudeMdExternalIncludesDialog:H}=await Promise.resolve().then(() => (aq7(),DvK));await IR(q,(J)=>Iy.default.createElement(H,{onDone:J,isStandaloneDialog:!0,externalIncludes:j}))}}if(jeK(),OeK(),xd(),setImmediate(()=>oQ8()),await cN6()){let{GroveDialog:w}=await Promise.resolve().then(() => (v37(),BbK));if(await IR(q,(H)=>Iy.default.createElement(w,{showIfAlreadyViewed:!1,location:O?"onboarding":"policy_update_modal",onDone:H}))==="escape")return d("tengu_grove_policy_exited",{}),eK(0),!1}if(process.env.ANTHROPIC_API_KEY&&!LT()){let w=GV(process.env.ANTHROPIC_API_KEY);if(Sc6(w)==="new"){let{ApproveApiKey:H}=await Promise.resolve().then(() => (EA7(),DeK));await IR(q,(J)=>Iy.default.createElement(H,{customApiKeyTruncated:w,onDone:J}),{onChangeAppState:Ss})}}if((K==="bypassPermissions"||_)&&!fD6()){let{BypassPermissionsModeDialog:w}=await Promise.resolve().then(() => (deK(),QeK));await IR(q,(j)=>Iy.default.createElement(w,{onAccept:j}))}if(K==="auto"&&!fl()){let{AutoModeOptInDialog:w}=await Promise.resolve().then(() => (rd8(),TnK));await IR(q,(j)=>Iy.default.createElement(w,{onAccept:j,onDecline:()=>eK(1),declineExits:!0}))}if(eH().length>0||($?.length??0)>0)await FV("tengu_harbor");if($&&$.length>0){let[{isChannelsEnabled:w},{getClaudeAIOAuthTokens:j}]=await Promise.all([Promise.resolve().then(() => (y78(),FNK)),Promise.resolve().then(() => (G7(),_L))]);if(!w()||!j()?.accessToken)kc([...eH(),...$.map((H)=>({...H,dev:!0}))]),W38(!0);else{let{DevChannelsDialog:H}=await Promise.resolve().then(() => (leK(),ceK));await IR(q,(J)=>Iy.default.createElement(H,{channels:$,onAccept:()=>{kc([...eH(),...$.map((M)=>({...M,dev:!0}))]),W38(!0),J()}}))}}if(Y&&!j8().hasCompletedClaudeInChromeOnboarding){let{ClaudeInChromeOnboarding:w}=await Promise.resolve().then(() => (ieK(),neK));await IR(q,(j)=>Iy.default.createElement(w,{onDone:j}))}return O}function oeK(q){let K=0,_=Jo(q);if(_.stdin)d("tengu_stdin_interactive",{});let z=new NA7,Y=Yz7();rn8(Y);let $=process.env.CLAUDE_CODE_FRAME_TIMING_LOG;return{getFpsMetrics:()=>z.getMetrics(),stats:Y,renderOptions:{..._,onFrame:(A)=>{if(z.record(A.durationMs),Y.observe("frame_duration_ms",A.durationMs),$&&A.phases){let O=JSON.stringify({total:A.durationMs,...A.phases,rss:process.memoryUsage.rss(),cpu:process.cpuUsage()})+` |
| 8175 | `;_iY($,O)}if(EE1())return;for(let O of A.flickers){if(O.reason==="resize")continue;let w=Date.now();if(w-K<1000)d("tengu_flicker",{desiredHeight:O.desiredHeight,actualHeight:O.availableHeight,reason:O.reason});K=w}}}}}var Iy;var SA7=y(()=>{k8();RA();v8();$z7();jN();Kz7();Bi();dU();CA7();o1();lN6();AeK();C7();tS6();NF6();wM();V1();weK();m8();WK8();q48();As6();Bt6();U1();Iy=O6(D6(),1)});var aeK={};T8(aeK,{InvalidSettingsDialog:()=>AiY});function AiY(q){let K=z6(13),{settingsErrors:_,onContinue:z,onExit:Y}=q,$;if(K[0]!==z||K[1]!==Y)$=function(X){if(X==="exit")Y();else z()},K[0]=z,K[1]=Y,K[2]=$;else $=K[2];let A=$,O;if(K[3]!==_)O=DK8.default.createElement(dg8,{errors:_}),K[3]=_,K[4]=O;else O=K[4];let w;if(K[5]===Symbol.for("react.memo_cache_sentinel"))w=DK8.default.createElement(k,{dimColor:!0},"Files with errors are skipped entirely, not just the invalid settings."),K[5]=w;else w=K[5];let j;if(K[6]===Symbol.for("react.memo_cache_sentinel"))j=[{label:"Exit and fix manually",value:"exit"},{label:"Continue without these settings",value:"continue"}],K[6]=j;else j=K[6];let H;if(K[7]!==A)H=DK8.default.createElement(H1,{options:j,onChange:A}),K[7]=A,K[8]=H;else H=K[8];let J;if(K[9]!==Y||K[10]!==O||K[11]!==H)J=DK8.default.createElement(R1,{title:"Settings Error",onCancel:Y,color:"warning"},O,w,H),K[9]=Y,K[10]=O,K[11]=H,K[12]=J;else J=K[12];return J}var DK8;var seK=y(()=>{q8();s6();d_();e4();w47();DK8=O6(D6(),1)});function teK(q){let K=z6(8),[_,z]=Pl8.useState(!1),[Y,$]=Pl8.useState(null),[A,O]=Pl8.useState(null),w;if(K[0]!==q)w=async(X)=>{z(!0),$(null),O(X),d("tengu_teleport_resume_session",{source:q,session_id:X.id});try{let P=await Ej6(X.id);return eb6({sessionId:X.id}),z(!1),P}catch(P){let W=P,D={message:W instanceof AP?W.message:d6(W),formattedMessage:W instanceof AP?W.formattedMessage:void 0,isOperationError:W instanceof AP};return $(D),z(!1),null}},K[0]=q,K[1]=w;else w=K[1];let j=w,H;if(K[2]===Symbol.for("react.memo_cache_sentinel"))H=()=>{$(null)},K[2]=H;else H=K[2];let J=H,M;if(K[3]!==Y||K[4]!==_||K[5]!==j||K[6]!==A)M={resumeSession:j,isResuming:_,error:Y,selectedSession:A,clearError:J},K[3]=Y,K[4]=_,K[5]=j,K[6]=A,K[7]=M;else M=K[7];return M}var Pl8;var eeK=y(()=>{q8();v8();k8();y8();am();Pl8=O6(D6(),1)});function K65({onSelect:q,onCancel:K,isEmbedded:_=!1}){let{rows:z}=t1(),[Y,$]=b5.useState([]),[A,O]=b5.useState(null),[w,j]=b5.useState(!0),[H,J]=b5.useState(null),[M,X]=b5.useState(!1),[P,W]=b5.useState(!1),[D,f]=b5.useState(1),G=R5("confirm:no","Confirmation","Esc"),Z=b5.useCallback(async()=>{try{j(!0),J(null);let p=await ge();O(p),N(`Current repository: ${p||"not detected"}`);let C=await zr1(),g=C;if(p)g=C.filter((U)=>{if(!U.repo)return!1;return`${U.repo.owner.login}/${U.repo.name}`===p}),N(`Filtered ${g.length} sessions for repo ${p} from ${C.length} total`);let F=[...g].sort((U,c)=>{let K6=new Date(U.updated_at);return new Date(c.updated_at).getTime()-K6.getTime()});$(F)}catch(p){let C=p instanceof Error?p.message:String(p);N(`Error loading code sessions: ${C}`),J(wiY(C))}finally{j(!1),X(!1)}},[]),T=()=>{X(!0),Z()};P1("confirm:no",K,{context:"Confirmation"}),k4((p,C)=>{if(C.ctrl&&p==="c"){K();return}if(C.ctrl&&p==="r"&&H){T();return}if(H!==null&&C.return){K();return}});let v=b5.useCallback(()=>{W(!0),Z()},[W,Z]);if(!P)return b5.default.createElement(Yx8,{onComplete:v});if(w)return b5.default.createElement(u,{flexDirection:"column",padding:1},b5.default.createElement(u,{flexDirection:"row"},b5.default.createElement(IK,null),b5.default.createElement(k,{bold:!0},"Loading Claude Code sessions…")),b5.default.createElement(k,{dimColor:!0},M?"Retrying…":"Fetching your Claude Code sessions…"));if(H)return b5.default.createElement(u,{flexDirection:"column",padding:1},b5.default.createElement(k,{bold:!0,color:"error"},"Error loading Claude Code sessions"),jiY(H),b5.default.createElement(k,{dimColor:!0},"Press ",b5.default.createElement(k,{bold:!0},"Ctrl+R")," to retry · Press"," ",b5.default.createElement(k,{bold:!0},G)," to cancel"));if(Y.length===0)return b5.default.createElement(u,{flexDirection:"column",padding:1},b5.default.createElement(k,{bold:!0},"No Claude Code sessions found",A&&b5.default.createElement(k,null," for ",A)),b5.default.createElement(u,{marginTop:1},b5.default.createElement(k,{dimColor:!0},"Press ",b5.default.createElement(k,{bold:!0},G)," to cancel")));let V=Y.map((p)=>({...p,timeString:W98(new Date(p.updated_at))})),E=Math.max(q65.length,...V.map((p)=>p.timeString.length)),S=V.map(({timeString:p,title:C,id:g})=>{return{label:`${p.padEnd(E," ")} ${C}`,value:g}}),R=7,x=Math.max(1,_?Math.min(Y.length,5,z-6-R):Math.min(Y.length,z-1-R)),I=x+R,B=Y.length>x;return b5.default.createElement(u,{flexDirection:"column",padding:1,height:I},b5.default.createElement(k,{bold:!0},"Select a session to resume",B&&b5.default.createElement(k,{dimColor:!0}," ","(",D," of ",Y.length,")"),A&&b5.default.createElement(k,{dimColor:!0}," (",A,")"),":"),b5.default.createElement(u,{flexDirection:"column",marginTop:1,flexGrow:1},b5.default.createElement(u,{marginLeft:2},b5.default.createElement(k,{bold:!0},q65.padEnd(E," "),OiY,"Session Title")),b5.default.createElement(H1,{visibleOptionCount:x,options:S,onChange:(p)=>{let C=Y.find((g)=>g.id===p);if(C)q(C)},onFocus:(p)=>{let C=S.findIndex((g)=>g.value===p);if(C>=0)f(C+1)}})),b5.default.createElement(u,{flexDirection:"row"},b5.default.createElement(k,{dimColor:!0},b5.default.createElement(I1,null,b5.default.createElement(t8,{shortcut:"↑/↓",action:"select"}),b5.default.createElement(t8,{shortcut:"Enter",action:"confirm"}),b5.default.createElement(W1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"})))))}function wiY(q){let K=q.toLowerCase();if(K.includes("fetch")||K.includes("network")||K.includes("timeout"))return"network";if(K.includes("auth")||K.includes("token")||K.includes("permission")||K.includes("oauth")||K.includes("not authenticated")||K.includes("/login")||K.includes("console account")||K.includes("403"))return"auth";if(K.includes("api")||K.includes("rate limit")||K.includes("500")||K.includes("529"))return"api";return"other"}function jiY(q){switch(q){case"network":return b5.default.createElement(u,{marginY:1,flexDirection:"column"},b5.default.createElement(k,{dimColor:!0},"Check your internet connection"));case"auth":return b5.default.createElement(u,{marginY:1,flexDirection:"column"},b5.default.createElement(k,{dimColor:!0},"Teleport requires a Claude account"),b5.default.createElement(k,{dimColor:!0},"Run ",b5.default.createElement(k,{bold:!0},"/login"),' and select "Claude account with subscription"'));case"api":return b5.default.createElement(u,{marginY:1,flexDirection:"column"},b5.default.createElement(k,{dimColor:!0},"Sorry, Claude encountered an error"));case"other":return b5.default.createElement(u,{marginY:1,flexDirection:"row"},b5.default.createElement(k,{dimColor:!0},"Sorry, Claude Code encountered an error"))}}var b5,q65="Updated",OiY=" ";var _65=y(()=>{t4();VM();s6();Oq();LX();_8();mZ();U7();a5();d_();QK();rK();Q2();Qr1();b5=O6(D6(),1)});var z65={};T8(z65,{TeleportResumeWrapper:()=>HiY});function HiY(q){let K=z6(25),{onComplete:_,onCancel:z,onError:Y,isEmbedded:$,source:A}=q,O=$===void 0?!1:$,{resumeSession:w,isResuming:j,error:H,selectedSession:J}=teK(A),M,X;if(K[0]!==A)M=()=>{d("tengu_teleport_started",{source:A})},X=[A],K[0]=A,K[1]=M,K[2]=X;else M=K[1],X=K[2];vk.useEffect(M,X);let P;if(K[3]!==H||K[4]!==_||K[5]!==Y||K[6]!==w)P=async(v)=>{let V=await w(v);if(V)_(V);else if(H){if(Y)Y(H.message,H.formattedMessage)}},K[3]=H,K[4]=_,K[5]=Y,K[6]=w,K[7]=P;else P=K[7];let W=P,D;if(K[8]!==z)D=()=>{d("tengu_teleport_cancelled",{}),z()},K[8]=z,K[9]=D;else D=K[9];let f=D,G=!!H&&!Y,Z;if(K[10]!==G)Z={context:"Global",isActive:G},K[10]=G,K[11]=Z;else Z=K[11];if(P1("app:interrupt",f,Z),j&&J){let v;if(K[12]===Symbol.for("react.memo_cache_sentinel"))v=vk.default.createElement(u,{flexDirection:"row"},vk.default.createElement(IK,null),vk.default.createElement(k,{bold:!0},"Resuming session…")),K[12]=v;else v=K[12];let V;if(K[13]!==J.title)V=vk.default.createElement(u,{flexDirection:"column",padding:1},v,vk.default.createElement(k,{dimColor:!0},'Loading "',J.title,'"…')),K[13]=J.title,K[14]=V;else V=K[14];return V}if(H&&!Y){let v;if(K[15]===Symbol.for("react.memo_cache_sentinel"))v=vk.default.createElement(k,{bold:!0,color:"error"},"Failed to resume session"),K[15]=v;else v=K[15];let V;if(K[16]!==H.message)V=vk.default.createElement(k,{dimColor:!0},H.message),K[16]=H.message,K[17]=V;else V=K[17];let E;if(K[18]===Symbol.for("react.memo_cache_sentinel"))E=vk.default.createElement(u,{marginTop:1},vk.default.createElement(k,{dimColor:!0},"Press ",vk.default.createElement(k,{bold:!0},"Esc")," to cancel")),K[18]=E;else E=K[18];let S;if(K[19]!==V)S=vk.default.createElement(u,{flexDirection:"column",padding:1},v,V,E),K[19]=V,K[20]=S;else S=K[20];return S}let T;if(K[21]!==f||K[22]!==W||K[23]!==O)T=vk.default.createElement(K65,{onSelect:W,onCancel:f,isEmbedded:O}),K[21]=f,K[22]=W,K[23]=O,K[24]=T;else T=K[24];return T}var vk;var Y65=y(()=>{q8();k8();eeK();s6();Oq();_65();Q2();vk=O6(D6(),1)});var $65={};T8($65,{TeleportRepoMismatchDialog:()=>JiY});function JiY(q){let K=z6(18),{targetRepo:_,initialPaths:z,onSelectPath:Y,onCancel:$}=q,[A,O]=uM.useState(z),[w,j]=uM.useState(null),[H,J]=uM.useState(!1),M;if(K[0]!==A||K[1]!==$||K[2]!==Y||K[3]!==_)M=async(G)=>{if(G==="cancel"){$();return}if(J(!0),j(null),await HeK(G,_)){Y(G);return}JeK(_,G);let T=A.filter((v)=>v!==G);O(T),J(!1),j(`${_3(G)} no longer contains the correct repository. Select another path.`)},K[0]=A,K[1]=$,K[2]=Y,K[3]=_,K[4]=M;else M=K[4];let X=M,P;if(K[5]!==A){let G;if(K[7]===Symbol.for("react.memo_cache_sentinel"))G={label:"Cancel",value:"cancel"},K[7]=G;else G=K[7];P=[...A.map(MiY),G],K[5]=A,K[6]=P}else P=K[6];let W=P,D;if(K[8]!==A.length||K[9]!==w||K[10]!==X||K[11]!==W||K[12]!==_||K[13]!==H)D=A.length>0?uM.default.createElement(uM.default.Fragment,null,uM.default.createElement(u,{flexDirection:"column",gap:1},w&&uM.default.createElement(k,{color:"error"},w),uM.default.createElement(k,null,"Open Claude Code in ",uM.default.createElement(k,{bold:!0},_),":")),H?uM.default.createElement(u,null,uM.default.createElement(IK,null),uM.default.createElement(k,null," Validating repository…")):uM.default.createElement(H1,{options:W,onChange:(G)=>void X(G)})):uM.default.createElement(u,{flexDirection:"column",gap:1},w&&uM.default.createElement(k,{color:"error"},w),uM.default.createElement(k,{dimColor:!0},"Run claude --teleport from a checkout of ",_)),K[8]=A.length,K[9]=w,K[10]=X,K[11]=W,K[12]=_,K[13]=H,K[14]=D;else D=K[14];let f;if(K[15]!==$||K[16]!==D)f=uM.default.createElement(R1,{title:"Teleport to Repo",onCancel:$,color:"background"},D),K[15]=$,K[16]=D,K[17]=f;else f=K[17];return f}function MiY(q){return{label:uM.default.createElement(k,null,"Use ",uM.default.createElement(k,{bold:!0},_3(q))),value:q}}var uM;var A65=y(()=>{q8();s6();bK();WK8();d_();e4();Q2();uM=O6(D6(),1)});var w65={};T8(w65,{ResumeConversation:()=>WiY});import{dirname as XiY}from"path";function PiY(q){let K=parseInt(q,10);if(!isNaN(K)&&K>0)return K;let _=q.match(/github\.com\/[^/]+\/[^/]+\/pull\/(\d+)/);if(_?.[1])return parseInt(_[1],10);return null}function WiY({commands:q,worktreePaths:K,initialTools:_,mcpClients:z,dynamicMcpConfig:Y,debug:$,mainThreadAgentDefinition:A,autoConnectIdeFlag:O,strictMcpConfig:w=!1,systemPrompt:j,appendSystemPrompt:H,initialSearchQuery:J,disableSlashCommands:M=!1,forkSession:X,taskListId:P,filterByPr:W,thinkingConfig:D,onTurnComplete:f}){let{rows:G}=t1(),Z=P8((j6)=>j6.agentDefinitions),T=s7(),[v,V]=lY.default.useState([]),[E,S]=lY.default.useState(!0),[R,x]=lY.default.useState(!1),[I,B]=lY.default.useState(!1),[p,C]=lY.default.useState(null),[g,F]=lY.default.useState(null),U=lY.default.useRef(null),c=lY.default.useRef(0),K6=lY.default.useMemo(()=>{let j6=v.filter((G6)=>!G6.isSidechain);if(W!==void 0){if(W===!0)j6=j6.filter((G6)=>G6.prNumber!==void 0);else if(typeof W==="number")j6=j6.filter((G6)=>G6.prNumber===W);else if(typeof W==="string"){let G6=PiY(W);if(G6!==null)j6=j6.filter((w6)=>w6.prNumber===G6)}}return j6},[v,W]),t=Js();lY.default.useEffect(()=>{mq8(K).then((j6)=>{U.current=j6,c.current=j6.logs.length,V(j6.logs),S(!1)}).catch((j6)=>{H6(j6),S(!1)})},[K]);let q6=lY.default.useCallback((j6)=>{let G6=U.current;if(!G6||G6.nextIndex>=G6.allStatLogs.length)return;kJ6(G6.allStatLogs,G6.nextIndex,j6).then((w6)=>{if(G6.nextIndex=w6.nextIndex,w6.logs.length>0){let o=c.current;w6.logs.forEach((s,a)=>{s.value=o+a}),V((s)=>s.concat(w6.logs)),c.current+=w6.logs.length}else if(G6.nextIndex<G6.allStatLogs.length)q6(j6)})},[]),e=lY.default.useCallback((j6)=>{S(!0),(j6?PQ8():mq8(K)).then((w6)=>{U.current=w6,c.current=w6.logs.length,V(w6.logs)}).catch((w6)=>{H6(w6)}).finally(()=>{S(!1)})},[K]),i=lY.default.useCallback(()=>{let j6=!I;B(j6),e(j6)},[I,e]);function $6(){process.exit(1)}async function M6(j6){x(!0);let G6=performance.now(),w6=zU8(j6,I,K);if(w6.isCrossProject){if(!w6.isSameRepoWorktree){let o=await XX(w6.command);if(o)process.stdout.write(o);F(w6.command);return}}try{let o=await MK6(j6,void 0);if(!o)throw Error("Failed to load conversation");if(o.sessionId&&!X)Of(EX(o.sessionId),j6.fullPath?XiY(j6.fullPath):null),await l48(),await mb(),sI8(o.sessionId);else if(X&&o.contentReplacements?.length)await DH6(o.contentReplacements);let{agentDefinition:s}=OM6(o.agentSetting,A,Z);T((n)=>({...n,agent:s?.agentType}));let a=r48(o.agentName,o.agentColor);if(a)T((n)=>({...n,standaloneAgentContext:a}));if(cQ(o.agentName),Ld(X?{...o,worktreeSession:void 0}:o),!X){if(o48(o.worktreeSession),o.sessionId)vJ6()}d("tengu_session_resumed",{entrypoint:"picker",success:!0,resume_duration_ms:Math.round(performance.now()-G6)}),V([]),C({messages:o.messages,fileHistorySnapshots:o.fileHistorySnapshots,contentReplacements:o.contentReplacements,agentName:o.agentName,agentColor:o.agentColor==="default"?void 0:o.agentColor,mainThreadAgentDefinition:s})}catch(o){throw d("tengu_session_resumed",{entrypoint:"picker",success:!1}),H6(o),o}}if(g)return lY.default.createElement(ZiY,{command:g});if(p)return lY.default.createElement(GA7,{debug:$,commands:q,initialTools:_,initialMessages:p.messages,initialFileHistorySnapshots:p.fileHistorySnapshots,initialContentReplacements:p.contentReplacements,initialAgentName:p.agentName,initialAgentColor:p.agentColor,mcpClients:z,dynamicMcpConfig:Y,strictMcpConfig:w,systemPrompt:j,appendSystemPrompt:H,mainThreadAgentDefinition:p.mainThreadAgentDefinition,autoConnectIdeFlag:O,disableSlashCommands:M,taskListId:P,thinkingConfig:D,onTurnComplete:f});if(E)return lY.default.createElement(u,null,lY.default.createElement(IK,null),lY.default.createElement(k,null," Loading conversations…"));if(R)return lY.default.createElement(u,null,lY.default.createElement(IK,null),lY.default.createElement(k,null," Resuming conversation…"));if(K6.length===0)return lY.default.createElement(DiY,null);return lY.default.createElement(KU8,{logs:K6,maxHeight:G,onCancel:$6,onSelect:M6,onLogsChanged:t?()=>e(I):void 0,onLoadMore:q6,initialSearchQuery:J,showAllProjects:I,onToggleAllProjects:i,onAgenticSearch:_U8})}function DiY(){let q=z6(2),K;if(q[0]===Symbol.for("react.memo_cache_sentinel"))K={context:"Global"},q[0]=K;else K=q[0];P1("app:interrupt",fiY,K);let _;if(q[1]===Symbol.for("react.memo_cache_sentinel"))_=lY.default.createElement(u,{flexDirection:"column"},lY.default.createElement(k,null,"No conversations found to resume."),lY.default.createElement(k,{dimColor:!0},"Press Ctrl+C to exit and start a new conversation.")),q[1]=_;else _=q[1];return _}function fiY(){process.exit(1)}function ZiY(q){let K=z6(8),{command:_}=q,z;if(K[0]===Symbol.for("react.memo_cache_sentinel"))z=[],K[0]=z;else z=K[0];lY.default.useEffect(GiY,z);let Y;if(K[1]===Symbol.for("react.memo_cache_sentinel"))Y=lY.default.createElement(k,null,"This conversation is from a different directory."),K[1]=Y;else Y=K[1];let $;if(K[2]===Symbol.for("react.memo_cache_sentinel"))$=lY.default.createElement(k,null,"To resume, run:"),K[2]=$;else $=K[2];let A;if(K[3]!==_)A=lY.default.createElement(u,{flexDirection:"column"},$,lY.default.createElement(k,null," ",_)),K[3]=_,K[4]=A;else A=K[4];let O;if(K[5]===Symbol.for("react.memo_cache_sentinel"))O=lY.default.createElement(k,{dimColor:!0},"(Command copied to clipboard)"),K[5]=O;else O=K[5];let w;if(K[6]!==A)w=lY.default.createElement(u,{flexDirection:"column",gap:1},Y,A,O),K[6]=A,K[7]=w;else w=K[7];return w}function GiY(){let q=setTimeout(TiY,100);return()=>clearTimeout(q)}function TiY(){process.exit(0)}var lY;var j65=y(()=>{q8();t4();v8();R57();Q2();Tb();YM();s6();Oq();k8();C7();M0();C57();n48();lQ();qL6();b57();E8();i1();a48();_K();TA7();lY=O6(D6(),1)});async function H65(q,K){let{InvalidSettingsDialog:_}=await Promise.resolve().then(() => (seK(),aeK));return IR(q,(z)=>ZM6.default.createElement(_,{settingsErrors:K.settingsErrors,onContinue:z,onExit:K.onExit}))}async function J65(q){let{TeleportResumeWrapper:K}=await Promise.resolve().then(() => (Y65(),z65));return IR(q,(_)=>ZM6.default.createElement(K,{onComplete:_,onCancel:()=>_(null),source:"cliArg"}))}async function M65(q,K){let{TeleportRepoMismatchDialog:_}=await Promise.resolve().then(() => (A65(),$65));return IR(q,(z)=>ZM6.default.createElement(_,{targetRepo:K.targetRepo,initialPaths:K.initialPaths,onSelectPath:z,onCancel:()=>z(null)}))}async function X65(q,K,_,z){let[Y,{ResumeConversation:$},{App:A}]=await Promise.all([_,Promise.resolve().then(() => (j65(),w65)),Promise.resolve().then(() => (wz7(),Oz7))]);await fM6(q,ZM6.default.createElement(A,{getFpsMetrics:K.getFpsMetrics,stats:K.stats,initialState:K.initialState},ZM6.default.createElement(WM,null,ZM6.default.createElement($,{...z,worktreePaths:Y}))))}var ZM6;var P65=y(()=>{SA7();dU();ZM6=O6(D6(),1)});function W65(){}function uC6(q,K,_){H6(q);let z=_?`${K} plugin "${_}"`:K==="disable-all"?"disable all plugins":`${K} plugins`;console.error(`${t6.cross} Failed to ${z}: ${d6(q)}`);let Y=_?(()=>{let{name:$,marketplace:A}=Z4(_);return{_PROTO_plugin_name:$,...A&&{_PROTO_marketplace_name:A},...Pb($,A,wR())}})():{};d("tengu_plugin_command_failed",{command:K,error_category:iKK(q),...Y}),process.exit(1)}async function D65(q,K="user"){try{console.log(`Installing plugin "${q}"...`);let _=await PyK(q,K);if(!_.success)throw Error(_.message);console.log(`${t6.tick} ${_.message}`);let{name:z,marketplace:Y}=Z4(_.pluginId||q);d("tengu_plugin_installed_cli",{_PROTO_plugin_name:z,...Y&&{_PROTO_marketplace_name:Y},scope:_.scope||K,install_source:"cli-explicit",...Pb(z,Y,wR())}),process.exit(0)}catch(_){uC6(_,"install",q)}}async function f65(q,K="user",_=!1){try{let z=await _s(q,K,!_);if(!z.success)throw Error(z.message);console.log(`${t6.tick} ${z.message}`);let{name:Y,marketplace:$}=Z4(z.pluginId||q);d("tengu_plugin_uninstalled_cli",{_PROTO_plugin_name:Y,...$&&{_PROTO_marketplace_name:$},scope:z.scope||K,...Pb(Y,$,wR())}),process.exit(0)}catch(z){uC6(z,"uninstall",q)}}async function Z65(q,K){try{let _=await v56(q,K);if(!_.success)throw Error(_.message);console.log(`${t6.tick} ${_.message}`);let{name:z,marketplace:Y}=Z4(_.pluginId||q);d("tengu_plugin_enabled_cli",{_PROTO_plugin_name:z,...Y&&{_PROTO_marketplace_name:Y},scope:_.scope,...Pb(z,Y,wR())}),process.exit(0)}catch(_){uC6(_,"enable",q)}}async function G65(q,K){try{let _=await th6(q,K);if(!_.success)throw Error(_.message);console.log(`${t6.tick} ${_.message}`);let{name:z,marketplace:Y}=Z4(_.pluginId||q);d("tengu_plugin_disabled_cli",{_PROTO_plugin_name:z,...Y&&{_PROTO_marketplace_name:Y},scope:_.scope,...Pb(z,Y,wR())}),process.exit(0)}catch(_){uC6(_,"disable",q)}}async function T65(){try{let q=await WyK();if(!q.success)throw Error(q.message);console.log(`${t6.tick} ${q.message}`),d("tengu_plugin_disabled_all_cli",{}),process.exit(0)}catch(q){uC6(q,"disable-all")}}async function v65(q,K){try{C4(`Checking for updates for plugin "${q}" at ${K} scope… |
| 8176 | `);let _=await eh6(q,K);if(!_.success)throw Error(_.message);if(C4(`${t6.tick} ${_.message} |