MCPcopy Create free account
hub / github.com/ChinaSiro/claude-code-sourcemap / pUz

Function pUz

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

Source from the content-addressed store, hash-verified

2220`)}function oKK(q,K){return[`<${wP}>${q}</${wP}>`,`<${CZ}>/${q}</${CZ}>`,K?`<command-args>${K}</command-args>`:null].filter(Boolean).join(`
2221`)}function IUz(q,K){if(q.userInvocable!==!1)return oKK(q.name,K);if(q.loadedFrom==="skills"||q.loadedFrom==="plugin"||q.loadedFrom==="mcp")return tKK(q.name,q.progressMessage);return oKK(q.name,K)}async function uUz(q,K,_,z,Y=[]){let $=hQ(q,_);if(!$)throw new zB(`Unknown command: ${q}`);if($.type!=="prompt")throw Error(`Unexpected ${$.type} command. Expected 'prompt' command. Use /${q} directly in the main conversation.`);return eKK($,K,z,[],Y)}async function eKK(q,K,_,z=[],Y=[],$){let A=await q.getPromptForCommand(K,_),O=!fG("hooks")||Gn6(q.source);if(q.hooks&&O){let W=N8();QKK(_.setAppState,W,q.hooks,q.name,q.type==="prompt"?q.skillRoot:void 0)}let w=q.source?`${q.source}:${q.name}`:q.name,j=A.filter((W)=>W.type==="text").map((W)=>W.text).join(`
2222
2223`);pX6(q.name,w,j,Au()?.agentId??null);let H=IUz(q,K),J=_C(q.allowedTools??[]),M=Y.length>0||z.length>0?[...Y,...z,...A]:A,X=await bN8(nE6(A.filter((W)=>W.type==="text").map((W)=>W.text).join(" "),_,null,[],_.messages,"repl_main_thread",{skipSkillDiscovery:!0}));return{messages:[U8({content:H,uuid:$}),U8({content:M,isMeta:!0}),...X,V4({type:"command_permissions",allowedTools:J,model:q.model})],shouldQuery:!0,allowedTools:J,model:q.model,effort:q.effort,command:q}}var qx8=y(()=>{v8();yA();v8();RY();k8();vr();no();EC();i46();ib8();B2();Ou();lP();_8();m8();y8();bK();nv();e7();_M();ww6();dKK();E8();p2();i1();fX();Fj();hP();IA6();tb8();nu();lE6();EG();jm();D$6()});import{randomUUID as mUz}from"crypto";async function pUz(q,K){if(!q.mcpServers?.length)return{clients:K,tools:[],cleanup:async()=>{}};let _=Gn6(q.source);if(fG("mcp")&&!_)return N(`[Agent: ${q.agentType}] Skipping MCP servers: strictPluginOnlyCustomization locks MCP to plugin-only (agent source: ${q.source})`),{clients:K,tools:[],cleanup:async()=>{}};let z=[],Y=[],$=[];for(let O of q.mcpServers){let w=null,j,H=!1;if(typeof O==="string"){if(j=O,w=EN(O),!w){N(`[Agent: ${q.agentType}] MCP server not found: ${O}`,{level:"warn"});continue}}else{let M=Object.entries(O);if(M.length!==1){N(`[Agent: ${q.agentType}] Invalid MCP server spec: expected exactly one key`,{level:"warn"});continue}let[X,P]=M[0];j=X,w={...P,scope:"dynamic"},H=!0}let J=await oC(j,w);if(z.push(J),H)Y.push(J);if(J.type==="connected"){let M=await mL(J);$.push(...M),N(`[Agent: ${q.agentType}] Connected to MCP server '${j}' with ${M.length} tools`)}else N(`[Agent: ${q.agentType}] Failed to connect to MCP server '${j}': ${J.type}`,{level:"warn"})}let A=async()=>{for(let O of Y)if(O.type==="connected")try{await O.cleanup()}catch(w){N(`[Agent: ${q.agentType}] Error cleaning up MCP server '${O.name}': ${w}`,{level:"warn"})}};return{clients:[...K,...z],tools:$,cleanup:A}}function BUz(q){return q.type==="assistant"||q.type==="user"||q.type==="progress"||q.type==="system"&&"subtype"in q&&q.subtype==="compact_boundary"}async function*iN({agentDefinition:q,promptMessages:K,toolUseContext:_,canUseTool:z,isAsync:Y,canShowPermissionPrompts:$,forkContextMessages:A,querySource:O,override:w,model:j,maxTurns:H,preserveToolUseResults:J,availableTools:M,allowedTools:X,onCacheSafeParams:P,contentReplacementState:W,useExactTools:D,worktreePath:f,description:G,transcriptSubdir:Z,onQueryProgress:T}){let v=_.getAppState(),V=v.toolPermissionContext.mode,E=_.setAppStateForTasks??_.setAppState,S=BN6(q.model,_.options.mainLoopModel,j,V),R=w?.agentId?w.agentId:wm();if(Z)pr1(R,Z);if(Yo()){let N6=_.agentId??N8();fL8(R,q.agentType,N6)}let I=[...A?mr1(A):[],...K],B=A!==void 0?gu(_.readFileState):Bu(tF),[p,C]=await Promise.all([w?.userContext??bO(),w?.systemContext??tw()]),g=q.omitClaudeMd&&!w?.userContext&&g8("tengu_slim_subagent_claudemd",!0),{claudeMd:F,...U}=p,c=g?U:p,{gitStatus:K6,...t}=C,q6=q.agentType==="Explore"||q.agentType==="Plan"?t:C,e=q.permissionMode,i=()=>{let N6=_.getAppState(),Z6=N6.toolPermissionContext;if(e&&N6.toolPermissionContext.mode!=="bypassPermissions"&&N6.toolPermissionContext.mode!=="acceptEdits"&&N6.toolPermissionContext.mode!=="auto")Z6={...Z6,mode:e};let V6=$!==void 0?!$:e==="bubble"?!1:Y;if(V6)Z6={...Z6,shouldAvoidPermissionPrompts:!0};if(Y&&!V6)Z6={...Z6,awaitAutomatedChecksBeforeDialog:!0};if(X!==void 0)Z6={...Z6,alwaysAllowRules:{cliArg:N6.toolPermissionContext.alwaysAllowRules.cliArg,session:[...X]}};let y6=q.effort!==void 0?q.effort:N6.effortValue;if(Z6===N6.toolPermissionContext&&y6===N6.effortValue)return N6;return{...N6,toolPermissionContext:Z6,effortValue:y6}},$6=D?M:$o(q,M,Y).resolvedTools,M6=Array.from(v.toolPermissionContext.additionalWorkingDirectories.keys()),j6=w?.systemPrompt?w.systemPrompt:iK(await gUz(q,_,S,M6,$6)),G6=w?.abortController?w.abortController:Y?new AbortController:_.abortController,w6=[];for await(let N6 of gr1(R,q.agentType,G6.signal))if(N6.additionalContexts&&N6.additionalContexts.length>0)w6.push(...N6.additionalContexts);if(w6.length>0){let N6=V4({type:"hook_additional_context",content:w6,hookName:"SubagentStart",toolUseID:mUz(),hookEvent:"SubagentStart"});I.push(N6)}let o=!fG("hooks")||Gn6(q.source);if(q.hooks&&o)vb4(E,R,q.hooks,`agent '${q.agentType}'`,!0);let s=q.skills??[];if(s.length>0){let N6=await NC(Fz()),Z6=[];for(let T6 of s){let n6=FUz(T6,N6,q);if(!n6){N(`[Agent: ${q.agentType}] Warning: Skill '${T6}' specified in frontmatter was not found`,{level:"warn"});continue}let o6=iE6(n6,N6);if(o6.type!=="prompt"){N(`[Agent: ${q.agentType}] Warning: Skill '${T6}' is not a prompt-based skill`,{level:"warn"});continue}Z6.push({skillName:T6,skill:o6})}let{formatSkillLoadingMetadata:V6}=await Promise.resolve().then(() => (qx8(),eb8)),y6=await Promise.all(Z6.map(async({skillName:T6,skill:n6})=>({skillName:T6,skill:n6,content:await n6.getPromptForCommand("",_)})));for(let{skillName:T6,skill:n6,content:o6}of y6){N(`[Agent: ${q.agentType}] Preloaded skill '${T6}'`);let I6=V6(T6,n6.progressMessage);I.push(U8({content:[{type:"text",text:I6},...o6],isMeta:!0}))}}let{clients:a,tools:n,cleanup:l}=await pUz(q,_.options.mcpClients),A6=n.length>0?u2([...$6,...n],"name"):$6,J6={isNonInteractiveSession:D?_.options.isNonInteractiveSession:Y?!0:_.options.isNonInteractiveSession??!1,appendSystemPrompt:_.options.appendSystemPrompt,tools:A6,commands:[],debug:_.options.debug,verbose:_.options.verbose,mainLoopModel:S,thinkingConfig:D?_.options.thinkingConfig:{type:"disabled"},mcpClients:a,mcpResources:_.options.mcpResources,agentDefinitions:_.options.agentDefinitions,...D&&{querySource:O}},X6=te6(_,{options:J6,agentId:R,agentType:q.agentType,messages:I,readFileState:B,abortController:G6,getAppState:i,shareSetAppState:!Y,shareSetResponseLength:!0,criticalSystemReminder_EXPERIMENTAL:q.criticalSystemReminder_EXPERIMENTAL,contentReplacementState:W});if(J)X6.preserveToolUseResults=!0;if(P)P({systemPrompt:j6,userContext:c,systemContext:q6,toolUseContext:X6,forkContextMessages:I});SQ(I,R).catch((N6)=>N(`Failed to record sidechain transcript: ${N6}`)),ee6(R,{agentType:q.agentType,...f&&{worktreePath:f},...G&&{description:G}}).catch((N6)=>N(`Failed to write agent metadata: ${N6}`));let f6=I.at(-1)?.uuid??null;try{for await(let N6 of Db({messages:I,systemPrompt:j6,userContext:c,systemContext:q6,canUseTool:z,toolUseContext:X6,querySource:O,maxTurns:H??q.maxTurns})){if(T?.(),N6.type==="stream_event"&&N6.event.type==="message_start"&&N6.ttftMs!=null){_.pushApiMetricsEntry?.(N6.ttftMs);continue}if(N6.type==="attachment"){if(N6.attachment.type==="max_turns_reached"){N(`[Agent
2224: $
2225{

Callers 1

iNFunction · 0.85

Calls 6

Gn6Function · 0.85
fGFunction · 0.85
NFunction · 0.85
ENFunction · 0.85
entriesMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected