| 2182 | ${q.description}`;return K}async function u7K(q,K){try{let _=await LD(q),z=Kgz(_);if(!z)return;let Y=await cn1(q,z.id,K);if(!Y.success){N(`[inProcessRunner] Failed to claim task #${z.id}: ${Y.reason}`);return}return await TQ(q,z.id,{status:"in_progress"}),N(`[inProcessRunner] Claimed task #${z.id}: ${z.subject}`),_gz(z)}catch(_){N(`[inProcessRunner] Error checking task list: ${_}`);return}}async function zgz(q,K,_,z,Y,$){N(`[inProcessRunner] ${q.agentName} starting poll loop (abort=${K.signal.aborted})`);let O=0;while(!K.signal.aborted){let j=z().tasks[_];if(j&&j.type==="in_process_teammate"&&j.pendingUserMessages.length>0){let J=j.pendingUserMessages[0];return Y((M)=>{let X=M.tasks[_];if(!X||X.type!=="in_process_teammate")return M;return{...M,tasks:{...M.tasks,[_]:{...X,pendingUserMessages:X.pendingUserMessages.slice(1)}}}}),N(`[inProcessRunner] ${q.agentName} found pending user message (poll #${O})`),{type:"new_message",message:J,from:"user"}}if(O>0)await R7(500);if(O++,K.signal.aborted)return N(`[inProcessRunner] ${q.agentName} aborted while waiting (poll #${O})`),{type:"aborted"};N(`[inProcessRunner] ${q.agentName} poll #${O}: checking mailbox`);try{let J=await Qo(q.agentName,q.teamName),M=-1,X=null;for(let W=0;W<J.length;W++){let D=J[W];if(D&&!D.read){let f=n46(D.text);if(f){M=W,X=f;break}}}if(M!==-1){let W=J[M],D=$7(J.slice(0,M),(f)=>!f.read);return N(`[inProcessRunner] ${q.agentName} received shutdown request from ${X?.from} (prioritized over ${D} unread messages)`),await Pe6(q.agentName,q.teamName,M),{type:"shutdown_request",request:X,originalMessage:W.text}}let P=-1;for(let W=0;W<J.length;W++){let D=J[W];if(D&&!D.read&&D.from===wz){P=W;break}}if(P===-1)P=J.findIndex((W)=>!W.read);if(P!==-1){let W=J[P];if(W)return N(`[inProcessRunner] ${q.agentName} received new message from ${W.from} (index ${P})`),await Pe6(q.agentName,q.teamName,P),{type:"new_message",message:W.text,from:W.from,color:W.color,summary:W.summary}}}catch(J){N(`[inProcessRunner] ${q.agentName} poll error: ${J}`)}let H=await u7K($,q.agentName);if(H)return{type:"new_message",message:H,from:"task-list"}}return N(`[inProcessRunner] ${q.agentName} exiting poll loop (abort=${K.signal.aborted}, polls=${O})`),{type:"aborted"}}async function Ygz(q){let{identity:K,taskId:_,prompt:z,description:Y,agentDefinition:$,teammateContext:A,toolUseContext:O,abortController:w,model:j,systemPrompt:H,systemPromptMode:J,allowedTools:M,allowPermissionPrompts:X,invokingRequestId:P}=q,{setAppState:W}=O;N(`[inProcessRunner] Starting agent loop for ${K.agentId}`);let D={agentId:K.agentId,parentSessionId:K.parentSessionId,agentName:K.agentName,teamName:K.teamName,agentColor:K.color,planModeRequired:K.planModeRequired,isTeamLead:!1,agentType:"teammate",invokingRequestId:P,invocationKind:"spawn",invocationEmitted:!1},f;if(J==="replace"&&H)f=H;else{let S=[...await QP(O.options.tools,O.options.mainLoopModel,void 0,O.options.mcpClients),Gi1];if($){let R=$.getSystemPrompt();if(R)S.push(` |