MCPcopy Index your code
hub / github.com/ChinaSiro/claude-code-sourcemap / rC8

Function rC8

package/cli.js:2201–2201  ·  view source on GitHub ↗
(q,K,_)

Source from the content-addressed store, hash-verified

2199Install WSL first, then inside WSL run:
2200 sudo apt install tmux
2201Then start a tmux session with: tmux new-session -s claude`;default:return`To use agent swarms, install tmux using your system's package manager.
2202Then start a tmux session with: tmux new-session -s claude`}}function t26(q){switch(q){case"tmux":return $b8();case"iterm2":return HqK()}}function SE6(){return RE6}function Ui1(){return oL}function Qi1(){N("[BackendRegistry] Marking in-process fallback as active"),Fi1=!0}function Pgz(){return a26()}function pm(){if(i7())return N("[BackendRegistry] isInProcessEnabled: true (non-interactive session)"),!0;let q=Pgz(),K;if(q==="in-process")K=!0;else if(q==="tmux")K=!1;else{if(Fi1)return N("[BackendRegistry] isInProcessEnabled: true (fallback after pane backend unavailable)"),!0;let _=c26(),z=vQ();K=!_&&!z}return N(`[BackendRegistry] isInProcessEnabled: ${K} (mode=${q}, insideTmux=${c26()}, inITerm2=${vQ()})`),K}function di1(){return pm()?"in-process":"tmux"}function JqK(){if(!zb8)zb8=p7K();return zb8}async function Wgz(q=!1){if(q&&pm())return N("[BackendRegistry] Using in-process executor"),JqK();return N("[BackendRegistry] Using pane backend executor"),Dgz()}async function Dgz(){if(!Yb8){let q=await r46();Yb8=e7K(q.backend),N(`[BackendRegistry] Created PaneBackendExecutor wrapping ${q.backend.type}`)}return Yb8}function ci1(){RE6=null,oL=null,zb8=null,Yb8=null,pi1=!1,Fi1=!1}var RE6=null,oL=null,pi1=!1,zb8=null,Yb8=null,Fi1=!1,Bi1=null,gi1=null;var Jb=y(()=>{v8();_8();vK();wb();B7K();yi1();qqK();s26()});var PqK={};T8(PqK,{writeTeamFileAsync:()=>a46,unregisterTeamForSessionCleanup:()=>si1,syncTeammateMode:()=>ri1,setMultipleMemberModes:()=>oi1,setMemberMode:()=>CE6,setMemberActive:()=>Se6,sanitizeName:()=>o46,sanitizeAgentName:()=>he6,removeTeammateFromTeamFile:()=>qj6,removeMemberFromTeam:()=>ni1,removeMemberByAgentId:()=>ii1,removeHiddenPaneId:()=>Ngz,registerTeamForSessionCleanup:()=>ai1,readTeamFileAsync:()=>jb,readTeamFile:()=>mH,inputSchema:()=>kgz,getTeamFilePath:()=>NQ,getTeamDir:()=>kE6,cleanupTeamDirectories:()=>Ab8,cleanupSessionTeams:()=>Egz,addHiddenPaneId:()=>Vgz});import{mkdirSync as fgz,readFileSync as Zgz,writeFileSync as Ggz}from"fs";import{mkdir as Tgz,readFile as XqK,rm as li1,writeFile as vgz}from"fs/promises";import{join as Re6}from"path";function o46(q){return q.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}function he6(q){return q.replace(/@/g,"-")}function kE6(q){return Re6(FX6(),o46(q))}function NQ(q){return Re6(kE6(q),"config.json")}function mH(q){try{let K=Zgz(NQ(q),"utf-8");return r8(K)}catch(K){if(s1(K)==="ENOENT")return null;return N(`[TeammateTool] Failed to read team file for ${q}: ${d6(K)}`),null}}async function jb(q){try{let K=await XqK(NQ(q),"utf-8");return r8(K)}catch(K){if(s1(K)==="ENOENT")return null;return N(`[TeammateTool] Failed to read team file for ${q}: ${d6(K)}`),null}}function e26(q,K){let _=kE6(q);fgz(_,{recursive:!0}),Ggz(NQ(q),g6(K,null,2))}async function a46(q,K){let _=kE6(q);await Tgz(_,{recursive:!0}),await vgz(NQ(q),g6(K,null,2))}function qj6(q,K){let _=K.agentId||K.name;if(!_)return N("[TeammateTool] removeTeammateFromTeamFile called with no identifier"),!1;let z=mH(q);if(!z)return N(`[TeammateTool] Cannot remove teammate ${_}: failed to read team file for "${q}"`),!1;let Y=z.members.length;if(z.members=z.members.filter(($)=>{if(K.agentId&&$.agentId===K.agentId)return!1;if(K.name&&$.name===K.name)return!1;return!0}),z.members.length===Y)return N(`[TeammateTool] Teammate ${_} not found in team file for "${q}"`),!1;return e26(q,z),N(`[TeammateTool] Removed teammate from team file: ${_}`),!0}function Vgz(q,K){let _=mH(q);if(!_)return!1;let z=_.hiddenPaneIds??[];if(!z.includes(K))z.push(K),_.hiddenPaneIds=z,e26(q,_),N(`[TeammateTool] Added ${K} to hidden panes for team ${q}`);return!0}function Ngz(q,K){let _=mH(q);if(!_)return!1;let z=_.hiddenPaneIds??[],Y=z.indexOf(K);if(Y!==-1)z.splice(Y,1),_.hiddenPaneIds=z,e26(q,_),N(`[TeammateTool] Removed ${K} from hidden panes for team ${q}`);return!0}function ni1(q,K){let _=mH(q);if(!_)return!1;let z=_.members.findIndex((Y)=>Y.tmuxPaneId===K);if(z===-1)return!1;if(_.members.splice(z,1),_.hiddenPaneIds){let Y=_.hiddenPaneIds.indexOf(K);if(Y!==-1)_.hiddenPaneIds.splice(Y,1)}return e26(q,_),N(`[TeammateTool] Removed member with pane ${K} from team ${q}`),!0}function ii1(q,K){let _=mH(q);if(!_)return!1;let z=_.members.findIndex((Y)=>Y.agentId===K);if(z===-1)return!1;return _.members.splice(z,1),e26(q,_),N(`[TeammateTool] Removed member ${K} from team ${q}`),!0}function CE6(q,K,_){let z=mH(q);if(!z)return!1;let Y=z.members.find((A)=>A.name===K);if(!Y)return N(`[TeammateTool] Cannot set member mode: member ${K} not found in team ${q}`),!1;if(Y.mode===_)return!0;let $=z.members.map((A)=>A.name===K?{...A,mode:_}:A);return e26(q,{...z,members:$}),N(`[TeammateTool] Set member ${K} in team ${q} to mode: ${_}`),!0}function ri1(q,K){if(!$Y())return;let _=K??$9(),z=M_();if(_&&z)CE6(_,z,q)}function oi1(q,K){let _=mH(q);if(!_)return!1;let z=new Map(K.map((A)=>[A.memberName,A.mode])),Y=!1,$=_.members.map((A)=>{let O=z.get(A.name);if(O!==void 0&&A.mode!==O)return Y=!0,{...A,mode:O};return A});if(Y)e26(q,{..._,members:$}),N(`[TeammateTool] Set ${K.length} member modes in team ${q}`);return!0}async function Se6(q,K,_){let z=await jb(q);if(!z){N(`[TeammateTool] Cannot set member active: team ${q} not found`);return}let Y=z.members.find(($)=>$.name===K);if(!Y){N(`[TeammateTool] Cannot set member active: member ${K} not found in team ${q}`);return}if(Y.isActive===_)return;Y.isActive=_,await a46(q,z),N(`[TeammateTool] Set member ${K} in team ${q} to ${_?"active":"idle"}`)}async function ygz(q){let K=Re6(q,".git"),_=null;try{let Y=(await XqK(K,"utf-8")).trim().match(/^gitdir:\s*(.+)$/);if(Y&&Y[1]){let $=Y[1],A=Re6($,"..","..");_=Re6(A,"..")}}catch{}if(_){let z=await S7(L7(),["worktree","remove","--force",q],{cwd:_});if(z.code===0){N(`[TeammateTool] Removed worktree via git: ${q}`);return}if(z.stderr?.includes("not a working tree")){N(`[TeammateTool] Worktree already removed: ${q}`);return}N(`[TeammateTool] git worktree remove failed, falling back to rm: ${z.stderr}`)}try{await li1(q,{recursive:!0,force:!0}),N(`[TeammateTool] Removed worktree directory manually: ${q}`)}catch(z){N(`[TeammateTool] Failed to remove worktree ${q}: ${d6(z)}`)}}function ai1(q){tb6().add(q)}function si1(q){tb6().delete(q)}async function Egz(){let q=tb6();if(q.size===0)return;let K=Array.from(q);N(`cleanupSessionTeams: removing ${K.length} orphan team dir(s): ${K.join(", ")}`),await Promise.allSettled(K.map((_)=>Lgz(_))),await Promise.allSettled(K.map((_)=>Ab8(_))),q.clear()}async function Lgz(q){let K=mH(q);if(!K)return;let _=K.members.filter((O)=>O.name!==wz&&O.tmuxPaneId&&O.backendType&&d26(O.backendType));if(_.length===0)return;let[{ensureBackendsRegistered:z,getBackendByType:Y},{isInsideTmux:$}]=await Promise.all([Promise.resolve().then(() => (Jb(),MqK)),Promise.resolve().then(() => (wb(),en1))]);await z();let A=!await $();await Promise.allSettled(_.map(async(O)=>{if(!O.tmuxPaneId||!O.backendType||!d26(O.backendType))return;let w=await Y(O.backendType).killPane(O.tmuxPaneId,A);N(`cleanupSessionTeams: killPane ${O.name} (${O.backendType} ${O.tmuxPaneId}) → ${w}`)}))}async function Ab8(q){let K=o46(q),_=mH(q),z=[];if(_){for(let A of _.members)if(A.worktreePath)z.push(A.worktreePath)}for(let A of z)await ygz(A);let Y=kE6(q);try{await li1(Y,{recursive:!0,force:!0}),N(`[TeammateTool] Cleaned up team directory: ${Y}`)}catch(A){N(`[TeammateTool] Failed to clean up team directory ${Y}: ${d6(A)}`)}let $=Ob(K);try{await li1($,{recursive:!0,force:!0}),N(`[TeammateTool] Cleaned up tasks directory: ${$}`),d46()}catch(A){N(`[TeammateTool] Failed to clean up tasks directory ${$}: ${d6(A)}`)}}var kgz;var RD=y(()=>{x7();v8();_8();m8();y8();XK();E5();l8();gj();AY();kgz=B6(()=>L.strictObject({operation:L.enum(["spawnTeam","cleanup"]).describe("Operation: spawnTeam to create a team, cleanup to remove team and task directories."),agent_type:L.string().optional().describe('Type/role of the team lead (e.g., "researcher", "test-runner"). Used for team file and inter-agent coordination.'),team_name:L.string().optional().describe("Name for the new team to create (required for spawnTeam)."),description:L.string().optional().describe("Team description/purpose (only used with spawnTeam).")}))});async function aC8(q,K){let{name:_,teamName:z,prompt:Y,color:$,planModeRequired:A,model:O}=q,{setAppState:w}=K,j=iL(_,z),H=aL("in_process_teammate");N(`[spawnInProcessTeammate] Spawning ${j} (taskId: ${H})`);try{let J=P3(),M=N8(),X={agentId:j,agentName:_,teamName:z,color:$,planModeRequired:A,parentSessionId:M},P=Af8({agentId:j,agentName:_,teamName:z,color:$,planModeRequired:A,parentSessionId:M,abortController:J});if(Yo())fL8(j,_,M);let W=`${_}: ${Y.substring(0,50)}${Y.length>50?"...":""}`,D={...C0(H,"in_process_teammate",W,K.toolUseId),type:"in_process_teammate",status:"running",identity:X,prompt:Y,model:O,abortController:J,awaitingPlanApproval:!1,spinnerVerb:IX(g26()),pastTenseVerb:IX(wE6),permissionMode:A?"plan":"default",isIdle:!1,shutdownRequested:!1,lastReportedToolCount:0,lastReportedTokenCount:0,pendingUserMessages:[],messages:[]},f=pq(async()=>{N(`[spawnInProcessTeammate] Cleanup called for ${j}`),J.abort()});return D.unregisterCleanup=f,H0(D,w),N(`[spawnInProcessTeammate] Registered ${j} in AppState`),{success:!0,agentId:j,taskId:H,abortController:J,teammateContext:P}}catch(J){let M=J instanceof Error?J.message:"Unknown error during spawn";return N(`[spawnInProcessTeammate] Failed to spawn ${j}: ${M}`),{success:!1,agentId:j,error:M}}}function sC8(q,K){let _=!1,z=null,Y=null,$,A;if(K((O)=>{let w=O.tasks[q];if(!w||w.type!=="in_process_teammate")return O;let j=w;if(j.status!=="running")return O;z=j.identity.teamName,Y=j.identity.agentId,$=j.toolUseId,A=j.description,j.abortController?.abort(),j.unregisterCleanup?.(),_=!0,j.onIdleCallbacks?.forEach((J)=>J());let H=O.teamContext;if(O.teamContext&&O.teamContext.teammates&&Y){let{[Y]:J,...M}=O.teamContext.teammates;H={...O.teamContext,teammates:M}}return{...O,teamContext:H,tasks:{...O.tasks,[q]:{...j,status:"killed",notified:!0,endTime:Date.now(),onIdleCallbacks:[],messages:j.messages?.length?[j.messages[j.messages.length-1]]:void 0,pendingUserMessages:[],inProgressToolUseIDs:void 0,abortController:void 0,unregisterCleanup:void 0,currentWorkAbortController:void 0}}}}),z&&Y)ii1(z,Y);if(_)Zw(q),ZN(q,"stopped",{toolUseId:$,summary:A}),setTimeout(CV6.bind(null,q,K),Sy4);if(Y)Qw6(Y);return _}var tC8=y(()=>{po();v8();fC8();hC8();GN();B2();c9();_8();pC();Ij();J0();JG();gN6();RD()});var WqK={};T8(WqK,{requestTeammateShutdown:()=>ki1,injectUserMessageToTeammate:()=>be6,getRunningTeammatesSorted:()=>oo,getAllInProcessTeammateTasks:()=>Kj6,findTeammateTaskByAgentId:()=>kQ,appendTeammateMessage:()=>rC8,InProcessTeammateTask:()=>Ce6});function ki1(q,K){A3(q,K,(_)=>{if(_.status!=="running"||_.shutdownRequested)return _;return{..._,shutdownRequested:!0}})}function rC8(q,K,_){A3(q,_,(z)=>{if(z.status!=="running")return z;return{...z,messages:F26(z.messages,K)}})}function be6(q,K,_){A3(q,_,(z)=>{if(mr(z.status))return N(`Dropping message for teammate task ${q}: task status is "${z.status}"`),z;return{...z,pendingUserMessages:[...z.pendingUserMessages,K],messages:F26(z.messages,U8({content:K}))}})}function kQ(q,K){let _;for(let z of Object.values(K))if(xH(z)&&z.identity.agentId===q){if(z.status==="running")return z;if(!_)_=z}return _}function Kj6(q){return Object.values(q).filter(xH)}function oo(q){return Kj6(q).filter((K)=>K.status==="running").sort((K,_)=>K.identity.agentName.localeCompare(_.identity.agentName))}var Ce6;var Hb=y(()=>{GN();_8();i1();tC8();J0();Ce6={name:"InProcessTeammateTask",type:"in_process_teammate",async kill(q,K){sC8(q,K)}}});function Bm(q){let{viewingAgentTaskId:K,tasks:_}=q;if(!K)return;let z=_[K];if(!z)return;if(!xH(z))return;return z}function Ob8(q){let K=Bm(q);if(K)return{type:"viewed",task:K};let{viewingAgentTaskId:_,tasks:z}=q;if(_){let Y=z[_];if(Y?.type==="local_agent")return{type:"named_agent",task:Y}}return{type:"leader"}}var bE6=()=>{};function gm(q,K,_=1000,z=0,Y){let $=()=>I5(Math.max(0,(Y??Date.now())-q-z)),A=wb8.useCallback((O)=>{if(!K)return()=>{};let w=setInterval(O,_);return()=>clearInterval(w)},[K,_]);return wb8.useSyncExternalStore(A,$,$)}var wb8;var xE6=y(()=>{U7();wb8=O6(D6(),1)});var xe6="shift + ↑/↓ to select";function Rgz(q){if(!q?.length)return[];let K=[],_=80;for(let z=q.length-1;z>=0&&K.length<3;z--){let Y=q[z];if(!Y||Y.type!=="user"&&Y.type!=="assistant"||!Y.message?.content?.length)continue;let $=Y.message.content;for(let A of $){if(K.length>=3)break;if(!A||typeof A!=="object")continue;if("type"in A&&A.type==="tool_use"&&"name"in A){let O="input"in A?A.input:null,w=`Using ${A.name}…`;if(O){let j=O.description||O.prompt||O.command||O.query||O.pattern;if(j)w=j.split(`
2203`)[0]??w}K.push(T4(w,_))}else if("type"in A&&A.type==="text"&&"text"in A){let O=A.text.split(`
2204`).filter((w)=>w.trim());for(let w=O.length-1;w>=0&&K.length<3;w--){let j=O[w];if(!j)continue;K.push(T4(j,_))}}}}return K.reverse()}function DqK({teammate:q,isLast:K,isSelected:_,isForegrounded:z,allIdle:Y,showPreview:$}){let[A]=IE6.useState(()=>q.spinnerVerb??IX(g26())),[O]=IE6.useState(()=>q.pastTenseVerb??IX(wE6)),w=_||z,j=w?K?"╘═":"╞═":K?"└─":"├─",H=R0(q.identity.color),{columns:J}=t1(),M=IE6.useRef(null),X=IE6.useRef(null);if(q.isIdle&&M.current===null)M.current=Date.now();else if(!q.isIdle)M.current=null;if(!Y&&X.current!==null)X.current=null;let P=gm(M.current??Date.now(),q.isIdle&&!Y);if(Y&&X.current===null)X.current=I5(Math.max(0,Date.now()-q.startTime-(q.totalPausedMs??0)));let W=Y?X.current??(()=>{throw Error(`frozenDurationRef is null for idle teammate ${q.identity.agentName}`)})():P,D=8,f=`@${q.identity.agentName}`,G=O1(f),Z=q.progress?.toolUseCount??0,T=q.progress?.tokenCount??0,v=` · ${Z} tool ${Z===1?"use":"uses"} · ${mK(T)} tokens`,V=O1(v),E=` · ${xe6}`,S=O1(E),x=O1(" · enter to view"),I=25,B=J-D-G-2,p=J>=60&&B>=I,C=p?G+2:0,g=J-D-C,F=_&&!z&&g>x+V+I+5,U=w&&g>S+(F?x:0)+V+I+5,c=g>V+I+5,K6=(c?V:0)+(U?S:0)+(F?x:0),t=Math.max(I,g-K6-1),q6=(()=>{let M6=q.progress?.recentActivities;if(M6&&M6.length>0){let G6=$E6(M6);if(G6)return T4(G6,t)}let j6=q.progress?.lastActivity?.activityDescription;if(j6)return T4(j6,t);return A})(),e=()=>{if(q.shutdownRequested)return Rz.createElement(k,{dimColor:!0},"[stopping]");if(q.awaitingPlanApproval)return Rz.createElement(k,{color:"warning"},"[awaiting approval]");if(q.isIdle){if(Y)return Rz.createElement(k,{dimColor:!0},O," for ",W);return Rz.createElement(k,{dimColor:!0},"Idle for ",P)}if(w)return null;return Rz.createElement(k,{dimColor:!0},q6?.endsWith("…")?q6:`${q6}…`)},i=$?Rgz(q.messages):[],$6=K?" ":"│ ";return Rz.createElement(u,{flexDirection:"column"},Rz.createElement(u,{paddingLeft:3},Rz.createElement(k,{color:_?"suggestion":void 0,bold:_},_?t6.pointer:" "),Rz.createElement(k,{dimColor:!_},j," "),p&&Rz.createElement(k,{color:_?"suggestion":H},"@",q.identity.agentName),p&&Rz.createElement(k,{dimColor:!_},": "),e(),c&&Rz.createElement(k,{dimColor:!0}," ","· ",Z," tool ",Z===1?"use":"uses"," ·"," ",mK(T)," tokens"),U&&Rz.createElement(k,{dimColor:!0}," · ",xe6),F&&Rz.createElement(k,{dimColor:!0}," · enter to view")),i.map((M6,j6)=>Rz.createElement(u,{key:j6,paddingLeft:3},Rz.createElement(k,{dimColor:!0}," "),Rz.createElement(k,{dimColor:!0},$6," "),Rz.createElement(k,{dimColor:!0},M6))))}var Rz,IE6;var fqK=y(()=>{bq();po();fC8();hC8();xE6();t4();Q5();s6();Bo();U7();Fo();Rz=O6(D6(),1),IE6=O6(D6(),1)});function jb8(q){let K=z6(61),{selectedIndex:_,isInSelectionMode:z,allIdle:Y,leaderVerb:$,leaderTokenCount:A,leaderIdleText:O}=q,w=P8(Cgz),j=P8(Sgz),H=P8(hgz),J,M,X,P,W,D,f;if(K[0]!==Y||K[1]!==z||K[2]!==O||K[3]!==A||K[4]!==$||K[5]!==_||K[6]!==H||K[7]!==w||K[8]!==j){f=Symbol.for("react.early_return_sentinel");q:{let T=oo(w);if(T.length===0){f=null;break q}let v=j===void 0,V=z&&_===-1,E=v||V;M=z===!0&&_===T.length,J=u,X="column",P=1;let S=V?"suggestion":void 0,R=V?t6.pointer:" ",x;if(K[16]!==E||K[17]!==S||K[18]!==R)x=JY.createElement(k,{color:S,bold:E},R),K[16]=E,K[17]=S,K[18]=R,K[19]=x;else x=K[19];let I=!E,B=E?"╒═":"┌─",p;if(K[20]!==E||K[21]!==B||K[22]!==I)p=JY.createElement(k,{dimColor:I,bold:E},B," "),K[20]=E,K[21]=B,K[22]=I,K[23]=p;else p=K[23];let C=V?"suggestion":"cyan_FOR_SUBAGENTS_ONLY",g;if(K[24]!==E||K[25]!==C)g=JY.createElement(k,{bold:E,color:C},"team-lead"),K[24]=E,K[25]=C,K[26]=g;else g=K[26];let F;if(K[27]!==v||K[28]!==$)F=!v&&$&&JY.createElement(k,{dimColor:!0},": ",$,"…"),K[27]=v,K[28]=$,K[29]=F;else F=K[29];let U;if(K[30]!==v||K[31]!==O||K[32]!==$)U=!v&&!$&&O&&JY.createElement(k,{dimColor:!0},": ",O),K[30]=v,K[31]=O,K[32]=$,K[33]=U;else U=K[33];let c;if(K[34]!==E||K[35]!==A)c=A!==void 0&&A>0&&JY.createElement(k,{dimColor:!E}," ","· ",mK(A)," tokens"),K[34]=E,K[35]=A,K[36]=c;else c=K[36];let K6;if(K[37]!==E)K6=E&&JY.createElement(k,{dimColor:!0}," · ",xe6),K[37]=E,K[38]=K6;else K6=K[38];let t;if(K[39]!==v||K[40]!==V)t=V&&!v&&JY.createElement(k,{dimColor:!0}," · enter to view"),K[39]=v,K[40]=V,K[41]=t;else t=K[41];if(K[42]!==p||K[43]!==g||K[44]!==F||K[45]!==U||K[46]!==c||K[47]!==K6||K[48]!==t||K[49]!==x)W=JY.createElement(u,{paddingLeft:3},x,p,g,F,U,c,K6,t),K[42]=p,K[43]=g,K[44]=F,K[45]=U,K[46]=c,K[47]=K6,K[48]=t,K[49]=x,K[50]=W;else W=K[50];D=T.map((q6,e)=>JY.createElement(DqK,{key:q6.id,teammate:q6,isLast:!z&&e===T.length-1,isSelected:z&&_===e,isForegrounded:j===q6.id,allIdle:Y,showPreview:H}))}K[0]=Y,K[1]=z,K[2]=O,K[3]=A,K[4]=$,K[5]=_,K[6]=H,K[7]=w,K[8]=j,K[9]=J,K[10]=M,K[11]=X,K[12]=P,K[13]=W,K[14]=D,K[15]=f}else J=K[9],M=K[10],X=K[11],P=K[12],W=K[13],D=K[14],f=K[15];if(f!==Symbol.for("react.early_return_sentinel"))return f;let G;if(K[51]!==M||K[52]!==z)G=z&&JY.createElement(bgz,{isSelected:M}),K[51]=M,K[52]=z,K[53]=G;else G=K[53];let Z;if(K[54]!==J||K[55]!==X||K[56]!==P||K[57]!==W||K[58]!==D||K[59]!==G)Z=JY.createElement(J,{flexDirection:X,marginTop:P},W,D,G),K[54]=J,K[55]=X,K[56]=P,K[57]=W,K[58]=D,K[59]=G,K[60]=Z;else Z=K[60];return Z}function hgz(q){return q.showTeammateMessagePreview}function Sgz(q){return q.viewingAgentTaskId}function Cgz(q){return q.tasks}function bgz(q){let K=z6(18),{isSelected:_}=q,z=_?"suggestion":void 0,Y=_?t6.pointer:" ",$;if(K[0]!==_||K[1]!==z||K[2]!==Y)$=JY.createElement(k,{color:z,bold:_},Y),K[0]=_,K[1]=z,K[2]=Y,K[3]=$;else $=K[3];let A=!_,O=_?"╘═":"└─",w;if(K[4]!==_||K[5]!==A||K[6]!==O)w=JY.createElement(k,{dimColor:A,bold:_},O," "),K[4]=_,K[5]=A,K[6]=O,K[7]=w;else w=K[7];let j=!_,H;if(K[8]!==_||K[9]!==j)H=JY.createElement(k,{dimColor:j,bold:_},"hide"),K[8]=_,K[9]=j,K[10]=H;else H=K[10];let J;if(K[11]!==_)J=_&&JY.createElement(k,{dimColor:!0}," · enter to collapse"),K[11]=_,K[12]=J;else J=K[12];let M;if(K[13]!==$||K[14]!==w||K[15]!==H||K[16]!==J)M=JY.createElement(u,{paddingLeft:3},$,w,H,J),K[13]=$,K[14]=w,K[15]=H,K[16]=J,K[17]=M;else M=K[17];return M}var JY;var ZqK=y(()=>{q8();bq();s6();C7();Hb();U7();fqK();JY=O6(D6(),1)});function vqK(q){let K=P8((Y)=>Y.isBriefOnly),_=P8((Y)=>Y.viewingAgentTaskId),z=Mb.useMemo(()=>i6(process.env.CLAUDE_CODE_BRIEF),[]);if((xk()||sy()&&(z||g8("tengu_kairos_brief",!1)))&&K&&!_)return Pq.createElement(Igz,{mode:q.mode,overrideMessage:q.overrideMessage});return Pq.createElement(xgz,{...q})}function xgz({mode:q,loadingStartTimeRef:K,totalPausedMsRef:_,pauseStartTimeRef:z,spinnerTip:Y,responseLengthRef:$,overrideColor:A,overrideShimmerColor:O,overrideMessage:w,spinnerSuffix:j,verbose:H,hasActiveTools:J=!1,leaderIsIdle:M=!1}){let X=Bj(),P=X.prefersReducedMotion??!1,W=P8((f6)=>f6.tasks),D=P8((f6)=>f6.viewingAgentTaskId),f=P8((f6)=>f6.expandedView),G=f==="tasks",Z=f==="teammates",T=P8((f6)=>f6.selectedIPAgentIndex),v=P8((f6)=>f6.viewSelectionMode),V=D?Bm({viewingAgentTaskId:D,tasks:W}):void 0,{columns:E}=t1(),S=ze6(),[R,x]=Mb.useState(null),I=Mb.useRef(null);Mb.useEffect(()=>{let f6=null,N6=null;if(q==="thinking"){if(I.current===null)I.current=Date.now(),x("thinking")}else if(I.current!==null){let Z6=Date.now()-I.current,V6=Date.now()-I.current,y6=Math.max(0,2000-V6);I.current=null;let T6=()=>{x(Z6),N6=setTimeout(x,2000,null)};if(y6>0)f6=setTimeout(T6,y6);else T6()}return()=>{if(f6)clearTimeout(f6);if(N6)clearTimeout(N6)}},[q]);let B=S?.find((f6)=>f6.status!=="pending"&&f6.status!=="completed"),p=Fgz(S),[C]=Mb.useState(()=>IX(g26())),g=w??B?.activeForm??B?.subject??C,U=(V&&!V.isIdle?V.spinnerVerb??C:g)+"…";Mb.useEffect(()=>{let f6="spinner-"+q;return B26.startCLIActivity(f6),()=>{B26.endCLIActivity(f6)}},[q]);let c=P8((f6)=>f6.effortValue),K6=Ev6(D5(),c),t=Kj6(W).filter((f6)=>f6.status==="running"),q6=t.length>0,e=q6&&t.every((f6)=>f6.isIdle),i=0;if(!Z){for(let f6 of Object.values(W))if(xH(f6)&&f6.status==="running"){if(f6.progress?.tokenCount)i+=f6.progress.tokenCount}}let $6=z.current!==null?z.current-K.current-_.current:Date.now()-K.current-_.current,M6=Math.round($.current/4),j6="claude",G6="claudeShimmer",w6=A??j6,o=O??G6,s=null;if(M&&q6&&!V)return Pq.createElement(u,{flexDirection:"column",width:"100%",alignItems:"flex-start"},Pq.createElement(u,{flexDirection:"row",flexWrap:"wrap",marginTop:1,width:"100%"},Pq.createElement(k,{dimColor:!0},TE," Idle",!e&&" · teammates running")),Z&&Pq.createElement(jb8,{selectedIndex:T,isInSelectionMode:v==="selecting-agent",allIdle:e,leaderTokenCount:M6,leaderIdleText:"Idle"}));if(V?.isIdle){let f6=e?`${TE} Worked for ${I5(Date.now()-V.startTime)}`:`${TE} Idle`;return Pq.createElement(u,{flexDirection:"column",width:"100%",alignItems:"flex-start"},Pq.createElement(u,{flexDirection:"row",flexWrap:"wrap",marginTop:1,width:"100%"},Pq.createElement(k,{dimColor:!0},f6)),Z&&q6&&Pq.createElement(jb8,{selectedIndex:T,isInSelectionMode:v==="selecting-agent",allIdle:e,leaderVerb:M?void 0:g,leaderIdleText:M?"Idle":void 0,leaderTokenCount:M6}))}let a=!1,n=X.spinnerTipsEnabled!==!1,l=n&&$6>1800000,A6=n&&$6>30000&&!j8().btwUseCount,J6=a?void 0:l&&!p?"Use /clear to start fresh when switching topics and free up context":A6&&!p?"Use /btw to ask a quick side question without interrupting Claude's current work":Y,X6=null;return Pq.createElement(u,{flexDirection:"column",width:"100%",alignItems:"flex-start"},Pq.createElement(r1K,{mode:q,reducedMotion:P,hasActiveTools:J,responseLengthRef:$,message:U,messageColor:w6,shimmerColor:o,overrideColor:A,loadingStartTimeRef:K,totalPausedMsRef:_,pauseStartTimeRef:z,spinnerSuffix:j,verbose:H,columns:E,hasRunningTeammates:q6,teammateTokens:i,foregroundedTeammate:V,leaderIsIdle:M,thinkingStatus:R,effortSuffix:K6}),Z&&q6?Pq.createElement(jb8,{selectedIndex:T,isInSelectionMode:v==="selecting-agent",allIdle:e,leaderVerb:M?void 0:g,leaderIdleText:M?"Idle":void 0,leaderTokenCount:M6}):G&&S&&S.length>0?Pq.createElement(u,{width:"100%",flexDirection:"column"},Pq.createElement(s8,null,Pq.createElement(kC8,{tasks:S}))):p||J6||X6?Pq.createElement(u,{width:"100%",flexDirection:"column"},X6&&Pq.createElement(s8,null,Pq.createElement(k,{dimColor:!0},X6)),(p||J6)&&Pq.createElement(s8,null,Pq.createElement(k,{dimColor:!0},p?`Next: ${p.subject}`:`Tip: ${J6}`))):null)}function Igz(q){let K=z6(31),{mode:_,overrideMessage:z}=q,$=Bj().prefersReducedMotion??!1,[A]=Mb.useState(pgz),O=z??A,w=P8(mgz),j,H;if(K[0]!==_)j=()=>{let F="spinner-"+_;return B26.startCLIActivity(F),()=>{B26.endCLIActivity(F)}},H=[_],K[0]=_,K[1]=j,K[2]=H;else j=K[1],H=K[2];Mb.useEffect(j,H);let[,J]=vH($?null:120),M=P8(ugz),X=w==="reconnecting"||w==="disconnected",P=w==="reconnecting"?"Reconnecting":"Disconnected",W=Math.floor(J/300)%3,D;if(K[3]!==W||K[4]!==$)D=$?"… ":".".repeat(W+1).padEnd(3),K[3]=W,K[4]=$,K[5]=D;else D=K[5];let f=D,G;if(K[6]!==O)G=O1(O),K[6]=O,K[7]=G;else G=K[7];let Z=G,T;if(K[8]!==$||K[9]!==X||K[10]!==J||K[11]!==O||K[12]!==Z){let F=$||X?-100:P1K(Math.floor(J/M1K),Z);T=W1K(O,F),K[8]=$,K[9]=X,K[10]=J,K[11]=O,K[12]=Z,K[13]=T}else T=K[13];let{before:v,shimmer:V,after:E}=T,{columns:S}=t1(),R=M>0?`${M} in background`:"",x;if(K[14]!==P||K[15]!==X||K[16]!==Z)x=X?O1(P):Z,K[14]=P,K[15]=X,K[16]=Z,K[17]=x;else x=K[17];let I=x+3,B=Math.max(1,S-2-I-O1(R)),p;if(K[18]!==E||K[19]!==v||K[20]!==P||K[21]!==f||K[22]!==V||K[23]!==X)p=X?Pq.createElement(k,{color:"error"},P+f):Pq.createElement(Pq.Fragment,null,v?Pq.createElement(k,{dimColor:!0},v):null,V?Pq.createElement(k,null,V):null,E?Pq.createElement(k,{dimColor:!0},E):null,Pq.createElement(k,{dimColor:!0},f)),K[18]=E,K[19]=v,K[20]=P,K[21]=f,K[22]=V,K[23]=X,K[24]=p;else p=K[24];let C;if(K[25]!==B||K[26]!==R)C=R?Pq.createElement(Pq.Fragment,null,Pq.createElement(k,null," ".repeat(B)),Pq.createElement(k,{color:"subtle"},R)):null,K[25]=B,K[26]=R,K[27]=C;else C=K[27];let g;if(K[28]!==p||K[29]!==C)g=Pq.createElement(u,{flexDirection:"row",width:"100%",marginTop:1,paddingLeft:2},p,C),K[28]=p,K[29]=C,K[30]=g;else g=K[30];return g}function ugz(q){return $7(Object.values(q.tasks),uH)+q.remoteBackgroundTaskCount}function mgz(q){return q.remoteConnectionStatus}function pgz(){return IX(g26())??"Working"}function kqK(){let q=z6(9),K=P8(ggz),_=P8(Bgz),{columns:z}=t1(),A=K==="reconnecting"||K==="disconnected"?K==="reconnecting"?"Reconnecting…":"Disconnected":"",O=_>0?`${_} in background`:"";if(!A&&!O){let M;if(q[0]===Symbol.for("react.memo_cache_sentinel"))M=Pq.createElement(u,{height:2}),q[0]=M;else M=q[0];return M}let w=Math.max(1,z-2-O1(A)-O1(O)),j;if(q[1]!==A)j=A?Pq.createElement(k,{color:"error"},A):null,q[1]=A,q[2]=j;else j=q[2];let H;if(q[3]!==w||q[4]!==O)H=O?Pq.createElement(Pq.Fragment,null,Pq.createElement(k,null," ".repeat(w)),Pq.createElement(k,{color:"subtle"},O)):null,q[3]=w,q[4]=O,q[5]=H;else H=q[5];let J;if(q[6]!==j||q[7]!==H)J=Pq.createElement(u,{marginTop:1,paddingLeft:2},Pq.createElement(k,null,j,H)),q[6]=j,q[7]=H,q[8]=J;else J=q[8];return J}function Bgz(q){return $7(Object.values(q.tasks),uH)+q.remoteBackgroundTaskCount}function ggz(q){return q.remoteConnectionStatus}function IK(){let q=z6(8),_=Bj().prefersReducedMotion??!1,[z,Y]=vH(_?null:120);if(_){let j;if(q[0]===Symbol.for("react.memo_cache_sentinel"))j=Pq.createElement(k,{color:"text"},"●"),q[0]=j;else j=q[0];let H;if(q[1]!==z)H=Pq.createElement(u,{ref:z,flexWrap:"wrap",height:1,width:2},j),q[1]=z,q[2]=H;else H=q[2];return H}let $=Math.floor(Y/120)%TqK.length,A=TqK[$],O;if(q[3]!==A)O=Pq.createElement(k,{color:"text"},A),q[3]=A,q[4]=O;else O=q[4];let w;if(q[5]!==z||q[6]!==O)w=Pq.createElement(u,{ref:z,flexWrap:"wrap",height:1,width:2},O),q[5]=z,q[6]=O,q[7]=w;else w=q[7];return w}function Fgz(q){if(!q)return;let K=q.filter((z)=>z.status==="pending");if(K.length===0)return;let _=new Set(q.filter((z)=>z.status!=="completed").map((z)=>z.id));return K.find((z)=>!z.blockedBy.some((Y)=>_.has(Y)))??K[0]}var Pq,Mb,GqK,TqK;var Q2=y(()=>{q8();s6();Q46();v8();o1();m8();po();U7();Bn1();fC8();gK();nn1();NC8();C7();t4();Q5();l1K();o1K();tC();Hb();q0();aq();bE6();zz();v8();ZqK();s6();V1();Pq=O6(D6(),1),Mb=O6(D6(),1),GqK=Ye6(),TqK=[...GqK,...[...GqK].reverse()]});var NqK={};T8(NqK,{ConsoleOAuthFlow:()=>_j6});function _j6({onDone:q,startingMessage:K,mode:_="login",forceLoginMethod:z}){let Y=Z7()||{},$=z??Y.forceLoginMethod,A=Y.forceLoginOrgUUID,O=$==="claudeai"?"Login method pre-selected: Subscription Plan (Claude Pro/Max)":$==="console"?"Login method pre-selected: API Usage Billing (Anthropic Console)":null,w=ZF(),[j,H]=Wq.useState(()=>{if(_==="setup-token")return{state:"ready_to_start"};if($==="claudeai"||$==="console")return{state:"ready_to_start"};return{state:"idle"}}),[J,M]=Wq.useState(""),[X,P]=Wq.useState(0),[W]=Wq.useState(()=>new Eo),[D,f]=Wq.useState(()=>{return _==="setup-token"||$==="claudeai"}),[G,Z]=Wq.useState(!1),[T,v]=Wq.useState(!1),V=t1().columns-VqK.length-1;Wq.useEffect(()=>{if($==="claudeai")d("tengu_oauth_claudeai_forced",{});else if($==="console")d("tengu_oauth_console_forced",{})},[$]),Wq.useEffect(()=>{if(j.state==="about_to_retry"){let x=setTimeout(H,1000,j.nextState);return()=>clearTimeout(x)}},[j]),P1("confirm:yes",()=>{d("tengu_oauth_success",{loginWithClaudeAi:D}),q()},{context:"Confirmation",isActive:j.state==="success"&&_!=="setup-token"}),P1("confirm:yes",()=>{H({state:"idle"})},{context:"Confirmation",isActive:j.state==="platform_setup"}),P1("confirm:yes",()=>{if(j.state==="error"&&j.toRetry)M(""),H({state:"about_to_retry",nextState:j.toRetry})},{context:"Confirmation",isActive:j.state==="error"&&!!j.toRetry}),Wq.useEffect(()=>{if(J==="c"&&j.state==="waiting_for_login"&&G&&!T)XX(j.url).then((x)=>{if(x)process.stdout.write(x);v(!0),setTimeout(v,2000,!1)}),M("")},[J,j,G,T]);async function E(x,I){try{let[B,p]=x.split("#");if(!B||!p){H({state:"error",message:"Invalid code. Please make sure the full code was copied",toRetry:{state:"waiting_for_login",url:I}});return}d("tengu_oauth_manual_entry",{}),W.handleManualAuthCodeInput({authorizationCode:B,state:p})}catch(B){H6(B),H({state:"error",message:B.message,toRetry:{state:"waiting_for_login",url:I}})}}let S=Wq.useCallback(async()=>{try{d("tengu_oauth_flow_start",{loginWithClaudeAi:D});let x=await W.startOAuthFlow(async(I)=>{H({state:"waiting_for_login",url:I}),setTimeout(Z,3000,!0)},{loginWithClaudeAi:D,inferenceOnly:_==="setup-token",expiresIn:_==="setup-token"?31536000:void 0,orgUUID:A}).catch((I)=>{let B=I.message.includes("Token exchange failed"),p=a76(I);throw H({state:"error",message:p??(B?"Failed to exchange authorization code for access token. Please try again.":I.message),toRetry:_==="setup-token"?{state:"ready_to_start"}:{state:"idle"}}),d("tengu_oauth_token_exchange_error",{error:I.message,ssl_error:p!==null}),I});if(_==="setup-token")H({state:"success",token:x.accessToken});else{await u26(x);let I=await qi();if(!I.valid)throw Error(I.message);H({state:"success"}),ZQ({message:"Claude Code login successful",notificationType:"auth_success"},w)}}catch(x){let I=x.message,B=a76(x);H({state:"error",message:B??I,toRetry:{state:_==="setup-token"?"ready_to_start":"idle"}}),d("tengu_oauth_error",{error:I,ssl_error:B!==null})}},[W,Z,D,_,A]),R=Wq.useRef(!1);return Wq.useEffect(()=>{if(j.state==="ready_to_start"&&!R.current)R.current=!0,process.nextTick((x,I)=>{x(),I.current=!1},S,R)},[j.state,S]),Wq.useEffect(()=>{if(_==="setup-token"&&j.state==="success"){let x=setTimeout((I,B)=>{d("tengu_oauth_success",{loginWithClaudeAi:I}),B()},500,D,q);return()=>clearTimeout(x)}},[_,j,D,q]),Wq.useEffect(()=>{return()=>{W.cleanup()}},[W]),Wq.default.createElement(u,{flexDirection:"column",gap:1},j.state==="waiting_for_login"&&G&&Wq.default.createElement(u,{flexDirection:"column",key:"urlToCopy",gap:1,paddingBottom:1},Wq.default.createElement(u,{paddingX:1},Wq.default.createElement(k,{dimColor:!0},"Browser didn't open? Use the url below to sign in"," "),T?Wq.default.createElement(k,{color:"success"},"(Copied!)"):Wq.default.createElement(k,{dimColor:!0},Wq.default.createElement(t8,{shortcut:"c",action:"copy",parens:!0}))),Wq.default.createElement(hq,{url:j.url},Wq.default.createElement(k,{dimColor:!0},j.url))),_==="setup-token"&&j.state==="success"&&j.token&&Wq.default.createElement(u,{key:"tokenOutput",flexDirection:"column",gap:1,paddingTop:1},Wq.default.createElement(k,{color:"success"},"✓ Long-lived authentication token created successfully!"),Wq.default.createElement(u,{flexDirection:"column",gap:1},Wq.default.createElement(k,null,"Your OAuth token (valid for 1 year):"),Wq.default.createElement(k,{color:"warning"},j.token),Wq.default.createElement(k,{dimColor:!0},"Store this token securely. You won't be able to see it again."),Wq.default.createElement(k,{dimColor:!0},"Use this token by setting: export CLAUDE_CODE_OAUTH_TOKEN=<token>"))),Wq.default.createElement(u,{paddingLeft:1,flexDirection:"column",gap:1},Wq.default.createElement(Ugz,{oauthStatus:j,mode:_,startingMessage:K,forcedMethodMessage:O,showPastePrompt:G,pastedCode:J,setPastedCode:M,cursorOffset:X,setCursorOffset:P,textInputColumns:V,handleSubmitCode:E,setOAuthStatus:H,setLoginWithClaudeAi:f})))}function Ugz(q){let K=z6(51),{oauthStatus:_,mode:z,startingMessage:Y,forcedMethodMessage:$,showPastePrompt:A,pastedCode:O,setPastedCode:w,cursorOffset:j,setCursorOffset:H,textInputColumns:J,handleSubmitCode:M,setOAuthStatus:X,setLoginWithClaudeAi:P}=q;switch(_.state){case"idle":{let W=Y?Y:"Claude Code can be used with your Claude subscription or billed based on API usage through your Console account.",D;if(K[0]!==W)D=Wq.default.createElement(k,{bold:!0},W),K[0]=W,K[1]=D;else D=K[1];let f;if(K[2]===Symbol.for("react.memo_cache_sentinel"))f=Wq.default.createElement(k,null,"Select login method:"),K[2]=f;else f=K[2];let G;if(K[3]===Symbol.for("react.memo_cache_sentinel"))G={label:Wq.default.createElement(k,null,"Claude account with subscription ·"," ",Wq.default.createElement(k,{dimColor:!0},"Pro, Max, Team, or Enterprise"),!1,`

Callers 1

YgzFunction · 0.85

Calls 2

A3Function · 0.85
F26Function · 0.85

Tested by

no test coverage detected