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

Function oWK

package/cli.js:4180–4262  ·  view source on GitHub ↗
(q,K="from")

Source from the content-addressed store, hash-verified

4178`)}`,G=WWK(W,D,f),Z=await hG({promptMessages:[U8({content:G})],cacheSafeParams:hL(_),canUseTool:Dp8(W),querySource:"auto_dream",forkLabel:"auto_dream",skipTranscript:!0,overrides:{abortController:X},onMessage:$3Y(P,M)});ZjK(P,M);let T=_.toolUseContext.getAppState().tasks?.[P];if(z&&WjK(T)&&T.filesTouched.length>0)z({...Zp8(T.filesTouched),verb:"Improved"});N(`[autoDream] completed — cache: read=${Z.totalUsage.cache_read_input_tokens} created=${Z.totalUsage.cache_creation_input_tokens}`),d("tengu_auto_dream_completed",{cache_read:Z.totalUsage.cache_read_input_tokens,cache_created:Z.totalUsage.cache_creation_input_tokens,output:Z.totalUsage.output_tokens,sessions_reviewed:j.length})}catch(W){if(X.signal.aborted){N("[autoDream] aborted by user");return}N(`[autoDream] fork failed: ${W.message}`),d("tengu_auto_dream_failed",{}),GjK(P,M),await Om8(J)}}}function $3Y(q,K){return(_)=>{if(_.type!=="assistant")return;let z="",Y=0,$=[];for(let A of _.message.content)if(A.type==="text")z+=A.text;else if(A.type==="tool_use"){if(Y++,A.name===X4||A.name===tK){let O=A.input;if(typeof O.file_path==="string")$.push(O.file_path)}}fjK(q,{text:z.trim(),toolUseCount:Y},$,K)}}async function TWK(q,K){await ZWK?.(q,K)}var K3Y=600000,fWK,ZWK=null;var f87=y(()=>{nv();i1();_8();k8();o1();rw();M87();_K();v8();H18();DWK();wm8();Hm8();E2();fWK={minHours:24,minSessions:5}});var Gp8={};T8(Gp8,{cleanupComputerUseAfterTurn:()=>O3Y});async function O3Y(q){let _=q.getAppState().computerUseMcpState?.hiddenDuringTurn;if(_&&_.size>0){let{unhideComputerUseApps:z}=await Promise.resolve().then(() => (dg1(),pC4)),Y=z([..._]).catch((O)=>N(`[Computer Use MCP] auto-unhide failed: ${d6(O)}`)),$=KL8(),A=setTimeout($.resolve,A3Y);await Promise.race([Y,$.promise]).finally(()=>clearTimeout(A)),q.setAppState((O)=>O.computerUseMcpState?.hiddenDuringTurn===void 0?O:{...O,computerUseMcpState:{...O.computerUseMcpState,hiddenDuringTurn:void 0}})}if(!TC4())return;try{SC4()}catch(z){N(`[Computer Use MCP] unregisterEscHotkey failed: ${d6(z)}`)}if(await hg1())q.sendOSNotification?.({message:"Claude is done using your computer",notificationType:"computer_use_exit"})}var A3Y=5000;var Tp8=y(()=>{_8();y8();Sg1();zL8()});async function*vWK(q,K,_,z,Y,$,A,O){let w=Date.now(),j={messages:[...q,...K],systemPrompt:_,userContext:z,systemContext:Y,toolUseContext:$,querySource:A};if(A==="repl_main_thread"||A==="sdk")VWK(hL(j));if(!f9()){if(!k_(process.env.CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION))LN4(j);if(!$.agentId&&Zf8())w3Y.executeExtractMemories(j,$.appendSystemMessage);if(!$.agentId)TWK(j,$.appendSystemMessage)}if(!$.agentId)try{let{cleanupComputerUseAfterTurn:H}=await Promise.resolve().then(() => (Tp8(),Gp8));await H($)}catch{}try{let H=[],M=$.getAppState().toolPermissionContext.mode,X=v87(M,$.abortController.signal,void 0,O??!1,$.agentId,$,[...q,...K],$.agentType),P="",W=0,D=!1,f="",G=!1,Z=[],T=[];for await(let v of X){if(v.message){if(yield v.message,v.message.type==="progress"&&v.message.toolUseID){P=v.message.toolUseID,W++;let V=v.message.data;if(V.command)T.push({command:V.command,promptText:V.promptText})}if(v.message.type==="attachment"){let V=v.message.attachment;if("hookEvent"in V&&(V.hookEvent==="Stop"||V.hookEvent==="SubagentStop")){if(V.type==="hook_non_blocking_error")Z.push(V.stderr||`Exit code ${V.exitCode}`),G=!0;else if(V.type==="hook_error_during_execution")Z.push(V.content),G=!0;else if(V.type==="hook_success"){if(V.stdout&&V.stdout.trim()||V.stderr&&V.stderr.trim())G=!0}if("durationMs"in V&&"command"in V){let E=T.find((S)=>S.command===V.command&&S.durationMs===void 0);if(E)E.durationMs=V.durationMs}}}}if(v.blockingError){let V=U8({content:G87(v.blockingError),isMeta:!0});H.push(V),yield V,G=!0,Z.push(v.blockingError.blockingError)}if(v.preventContinuation)D=!0,f=v.stopReason||"Stop hook prevented continuation",yield V4({type:"hook_stopped_continuation",message:f,hookName:"Stop",toolUseID:P,hookEvent:"Stop"});if($.abortController.signal.aborted)return d("tengu_pre_stop_hooks_cancelled",{queryChainId:$.queryTracking?.chainId,queryDepth:$.queryTracking?.depth}),yield Ya({toolUse:!1}),{blockingErrors:[],preventContinuation:!0}}if(W>0){if(yield NWK(W,T,Z,D,f,G,"suggestion",P),Z.length>0){let v=RH("app:toggleTranscript","Global","ctrl+o");$.addNotification?.({key:"stop-hook-error",text:`Stop hook error occurred · ${v} to see`,priority:"immediate"})}}if(D)return{blockingErrors:[],preventContinuation:!0};if(H.length>0)return{blockingErrors:H,preventContinuation:!1};if($Y()){let v=M_()??"",V=$9()??"",E=[],S=!1,R,x="",I=cG(),p=(await LD(I)).filter((g)=>g.status==="in_progress"&&g.owner===v);for(let g of p){let F=B88(g.id,g.subject,g.description,v,V,M,$.abortController.signal,void 0,$);for await(let U of F){if(U.message){if(U.message.type==="progress"&&U.message.toolUseID)x=U.message.toolUseID;yield U.message}if(U.blockingError){let c=U8({content:p88(U.blockingError),isMeta:!0});E.push(c),yield c}if(U.preventContinuation)S=!0,R=U.stopReason||"TaskCompleted hook prevented continuation",yield V4({type:"hook_stopped_continuation",message:R,hookName:"TaskCompleted",toolUseID:x,hookEvent:"TaskCompleted"});if($.abortController.signal.aborted)return{blockingErrors:[],preventContinuation:!0}}}let C=k87(v,V,M,$.abortController.signal);for await(let g of C){if(g.message){if(g.message.type==="progress"&&g.message.toolUseID)x=g.message.toolUseID;yield g.message}if(g.blockingError){let F=U8({content:T87(g.blockingError),isMeta:!0});E.push(F),yield F}if(g.preventContinuation)S=!0,R=g.stopReason||"TeammateIdle hook prevented continuation",yield V4({type:"hook_stopped_continuation",message:R,hookName:"TeammateIdle",toolUseID:x,hookEvent:"TeammateIdle"});if($.abortController.signal.aborted)return{blockingErrors:[],preventContinuation:!0}}if(S)return{blockingErrors:[],preventContinuation:!0};if(E.length>0)return{blockingErrors:E,preventContinuation:!1}}return{blockingErrors:[],preventContinuation:!1}}catch(H){let J=Date.now()-w;return d("tengu_stop_hook_error",{duration:J,queryChainId:$.queryTracking?.chainId,queryDepth:$.queryTracking?.depth}),yield fw(`Stop hook failed: ${d6(H)}`,"warning"),{blockingErrors:[],preventContinuation:!1}}}var w3Y;var kWK=y(()=>{tu();rw();k8();lP();_8();y8();y$();i1();gj();AY();f87();zw6();m8();nv();w3Y=(H18(),Eq(fp8))});function yWK(){return{sessionId:N8(),gates:{streamingToolExecution:tY("tengu_streaming_tool_execution2"),emitToolUseSummaries:i6(process.env.CLAUDE_CODE_EMIT_TOOL_USE_SUMMARIES),isAnt:!1,fastModeEnabled:!i6(process.env.CLAUDE_CODE_DISABLE_FAST_MODE)}}}var EWK=y(()=>{v8();o1();m8()});import{randomUUID as j3Y}from"crypto";function LWK(){return{callModel:fR6,microcompact:oF,autocompact:hWK,uuid:j3Y}}var RWK=y(()=>{ew();io();EC()});var H3Y,NCw;var vp8=y(()=>{H3Y=/\b(?:use|spend)\s+(\d+(?:\.\d+)?)\s*(k|m|b)\s*tokens?\b/i,NCw=new RegExp(H3Y.source,"gi")});var SWK=y(()=>{vp8()});function*N87(q,K){for(let _ of q){let z=_.message.content.filter((Y)=>Y.type==="tool_use");for(let Y of z)yield U8({content:[{type:"tool_result",content:K,is_error:!0,tool_use_id:Y.id}],toolUseResult:K,sourceToolAssistantUUID:_.uuid})}}function CWK(q){return q?.type==="assistant"&&q.apiError==="max_output_tokens"}async function*Db(q){let K=[],_=yield*M3Y(q,K);for(let z of K)jU(z,"completed");return _}async function*M3Y(q,K){let D=[];try{let{systemPrompt:_,userContext:z,systemContext:Y,canUseTool:$,fallbackModel:A,querySource:O,maxTurns:w,skipCacheWrite:j}=q;let H=q.deps??LWK();let J={messages:q.messages,toolUseContext:q.toolUseContext,maxOutputTokensOverride:q.maxOutputTokensOverride,autoCompactTracking:void 0,stopHookActive:void 0,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,turnCount:1,pendingToolUseSummary:void 0,transition:void 0};let M=null;let X=void 0;let P=yWK();const W=Bz(D,bWK(J.messages,J.toolUseContext),0);while(!0){let{toolUseContext:T}=J,{messages:v,autoCompactTracking:V,maxOutputTokensRecoveryCount:E,hasAttemptedReactiveCompact:S,maxOutputTokensOverride:R,pendingToolUseSummary:x,stopHookActive:I,turnCount:B}=J,p=V87?.startSkillDiscoveryPrefetch(null,v,T);if(yield{type:"stream_request_start"},g3("query_fn_entry"),!T.agentId)HM("query_started");let C=T.queryTracking?{chainId:T.queryTracking.chainId,depth:T.queryTracking.depth+1}:{chainId:H.uuid(),depth:0},g=C.chainId;T={...T,queryTracking:C};let F=[...i2(v)],U=V,c=O.startsWith("agent:")||O.startsWith("repl_main_thread");F=await tR4(F,T.contentReplacementState,c?(h6)=>void DH6(h6,T.agentId).catch(H6):void 0,new Set(T.options.tools.filter((h6)=>!Number.isFinite(h6.maxResultSizeChars)).map((h6)=>h6.name)));let K6=0;g3("query_microcompact_start"),F=(await H.microcompact(F,T,O)).messages;let q6=void 0;g3("query_microcompact_end");let e=iK(uWK(_,Y));g3("query_autocompact_start");let{compactionResult:i,consecutiveFailures:$6}=await H.autocompact(F,T,{systemPrompt:_,userContext:z,systemContext:Y,toolUseContext:T,forkContextMessages:F},O,U,K6);if(g3("query_autocompact_end"),i){let{preCompactTokenCount:h6,postCompactTokenCount:x6,truePostCompactTokenCount:b6,compactionUsage:Q6}=i;if(d("tengu_auto_compact_succeeded",{originalMessageCount:v.length,compactedMessageCount:i.summaryMessages.length+i.attachments.length+i.hookResults.length,preCompactTokenCount:h6,postCompactTokenCount:x6,truePostCompactTokenCount:b6,compactionInputTokens:Q6?.input_tokens,compactionOutputTokens:Q6?.output_tokens,compactionCacheReadTokens:Q6?.cache_read_input_tokens??0,compactionCacheCreationTokens:Q6?.cache_creation_input_tokens??0,compactionTotalTokens:Q6?Q6.input_tokens+(Q6.cache_creation_input_tokens??0)+(Q6.cache_read_input_tokens??0)+Q6.output_tokens:0,queryChainId:g,queryDepth:C.depth}),q.taskBudget){let _6=PI1(F);X=Math.max(0,(X??q.taskBudget.total)-_6)}U={compacted:!0,turnId:H.uuid(),turnCounter:0,consecutiveFailures:0};let Y6=lo(i);for(let _6 of Y6)yield _6;F=Y6}else if($6!==void 0)U={...U??{compacted:!1,turnId:"",turnCounter:0},consecutiveFailures:$6};T={...T,messages:F};let M6=[],j6=[],G6=[],w6=!1;g3("query_setup_start");let s=P.gates.streamingToolExecution?new $18(T.options.tools,$,T):null,a=T.getAppState(),n=a.toolPermissionContext.mode,l=uI({permissionMode:n,mainLoopModel:T.options.mainLoopModel,exceeds200kTokens:n==="plan"&&mk8(F)});g3("query_setup_end");let A6=P.gates.isAnt?fP4(T.agentId??P.sessionId):void 0,J6=!1,X6=PH6?.isReactiveCompactEnabled()??!1;if(!i&&O!=="compact"&&O!=="session_memory"&&!(PH6?.isReactiveCompactEnabled()&&hb())&&!J6){let{isAtBlockingLimit:h6}=WH6(yG(F)-K6,T.options.mainLoopModel);if(h6)return yield q_({content:Um,error:"invalid_request"}),{reason:"blocking_limit"}}let f6=!0;g3("query_api_loop_start");try{while(f6){f6=!1;try{let h6=!1;g3("query_api_streaming_start");for await(let x6 of H.callModel({messages:Vp8(F,z),systemPrompt:e,thinkingConfig:T.options.thinkingConfig,tools:T.options.tools,signal:T.abortController.signal,options:{async getToolPermissionContext(){return T.getAppState().toolPermissionContext},model:l,...P.gates.fastModeEnabled&&{fastMode:a.fastMode},toolChoice:void 0,isNonInteractiveSession:T.options.isNonInteractiveSession,fallbackModel:A,onStreamingFallback:()=>{h6=!0},querySource:O,agents:T.options.agentDefinitions.activeAgents,allowedAgentTypes:T.options.agentDefinitions.allowedAgentTypes,hasAppendSystemPrompt:!!T.options.appendSystemPrompt,maxOutputTokensOverride:R,fetchOverride:A6,mcpTools:a.mcp.tools,hasPendingMcpServers:a.mcp.clients.some((b6)=>b6.type==="pending"),queryTracking:C,effortValue:a.effortValue,advisorModel:a.advisorModel,skipCacheWrite:j,agentId:T.agentId,addNotification:T.addNotification,...q.taskBudget&&{taskBudget:{total:q.taskBudget.total,...X!==void 0&&{remaining:X}}}}})){if(h6){for(let Y6 of M6)yield{type:"tombstone",message:Y6};if(d("tengu_orphaned_messages_tombstoned",{orphanedMessageCount:M6.length,queryChainId:g,queryDepth:C.depth}),M6.length=0,j6.length=0,G6.length=0,w6=!1,s)s.discard(),s=new $18(T.options.tools,$,T)}let b6=x6;if(x6.type==="assistant"){let Y6;for(let _6=0;_6<x6.message.content.length;_6++){let F6=x6.message.content[_6];if(F6.type==="tool_use"&&typeof F6.input==="object"&&F6.input!==null){let W6=L5(T.options.tools,F6.name);if(W6?.backfillObservableInput){let v6=F6.input,m6={...v6};if(W6.backfillObservableInput(m6),Object.keys(m6).some((H8)=>!(H8 in v6)))Y6??=[...x6.message.content],Y6[_6]={...F6,input:m6}}}}if(Y6)b6={...x6,message:{...x6.message,content:Y6}}}let Q6=!1;if(PH6?.isWithheldPromptTooLong(x6))Q6=!0;if(X6&&PH6?.isWithheldMediaSizeError(x6))Q6=!0;if(CWK(x6))Q6=!0;if(!Q6)yield b6;if(x6.type==="assistant"){M6.push(x6);let Y6=x6.message.content.filter((_6)=>_6.type==="tool_use");if(Y6.length>0)G6.push(...Y6),w6=!0;if(s&&!T.abortController.signal.aborted)for(let _6 of Y6)s.addTool(_6,x6)}if(s&&!T.abortController.signal.aborted){for(let Y6 of s.getCompletedResults())if(Y6.message)yield Y6.message,j6.push(...bP([Y6.message],T.options.tools).filter((_6)=>_6.type==="user"))}}g3("query_api_streaming_end")}catch(h6){if(h6 instanceof IO6&&A){if(l=A,f6=!0,yield*N87(M6,"Model fallback triggered"),M6.length=0,j6.length=0,G6.length=0,w6=!1,s)s.discard(),s=new $18(T.options.tools,$,T);T.options.mainLoopModel=A,d("tengu_model_fallback_triggered",{original_model:h6.originalModel,fallback_model:A,entrypoint:"cli",queryChainId:g,queryDepth:C.depth}),yield fw(`Switched to ${WH(h6.fallbackModel)} due to high demand for ${WH(h6.originalModel)}`,"warning");continue}throw h6}}}catch(h6){H6(h6);let x6=h6 instanceof Error?h6.message:String(h6);if(d("tengu_query_error",{assistantMessages:M6.length,toolUses:M6.flatMap((b6)=>b6.message.content.filter((Q6)=>Q6.type==="tool_use")).length,queryChainId:g,queryDepth:C.depth}),h6 instanceof dk6||h6 instanceof wU)return yield q_({content:h6.message}),{reason:"image_error"};return yield*N87(M6,x6),yield q_({content:x6}),OE("Query error",h6),{reason:"model_error",error:h6}}if(M6.length>0)PP4([...F,...M6],_,z,Y,T,O);if(T.abortController.signal.aborted){if(s){for await(let h6 of s.getRemainingResults())if(h6.message)yield h6.message}else yield*N87(M6,"Interrupted by user");if(!T.agentId)try{let{cleanupComputerUseAfterTurn:h6}=await Promise.resolve().then(() => (Tp8(),Gp8));await h6(T)}catch{}if(T.abortController.signal.reason!=="interrupt")yield Ya({toolUse:!1});return{reason:"aborted_streaming"}}if(x){let h6=await x;if(h6)yield h6}if(!w6){let h6=M6.at(-1),x6=h6?.type==="assistant"&&h6.isApiErrorMessage&&y87(h6),b6=X6&&PH6?.isWithheldMediaSizeError(h6);if((x6||b6)&&PH6){let Y6=await PH6.tryReactiveCompact({hasAttempted:S,querySource:O,aborted:T.abortController.signal.aborted,messages:F,cacheSafeParams:{systemPrompt:_,userContext:z,systemContext:Y,toolUseContext:T,forkContextMessages:F}});if(Y6){if(q.taskBudget){let W6=PI1(F);X=Math.max(0,(X??q.taskBudget.total)-W6)}let _6=lo(Y6);for(let W6 of _6)yield W6;J={messages:_6,toolUseContext:T,autoCompactTracking:void 0,maxOutputTokensRecoveryCount:E,hasAttemptedReactiveCompact:!0,maxOutputTokensOverride:void 0,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount:B,transition:{reason:"reactive_compact_retry"}};continue}return yield h6,kp8(h6,T),{reason:b6?"image_error":"prompt_too_long"}}if(CWK(h6)){if(g8("tengu_otk_slot_v1",!1)&&R===void 0&&!process.env.CLAUDE_CODE_MAX_OUTPUT_TOKENS){d("tengu_max_tokens_escalate",{escalatedTo:tT1}),J={messages:F,toolUseContext:T,autoCompactTracking:U,maxOutputTokensRecoveryCount:E,hasAttemptedReactiveCompact:S,maxOutputTokensOverride:tT1,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount:B,transition:{reason:"max_output_tokens_escalate"}};continue}if(E<J3Y){let _6=U8({content:"Output token limit hit. Resume directly — no apology, no recap of what you were doing. "+"Pick up mid-thought if that is where the cut happened. Break remaining work into smaller pieces.",isMeta:!0});J={messages:[...F,...M6,_6],toolUseContext:T,autoCompactTracking:U,maxOutputTokensRecoveryCount:E+1,hasAttemptedReactiveCompact:S,maxOutputTokensOverride:void 0,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount:B,transition:{reason:"max_output_tokens_recovery",attempt:E+1}};continue}yield h6}if(h6?.isApiErrorMessage)return kp8(h6,T),{reason:"completed"};let Q6=yield*vWK(F,M6,_,z,Y,T,O,I);if(Q6.preventContinuation)return{reason:"stop_hook_prevented"};if(Q6.blockingErrors.length>0){J={messages:[...F,...M6,...Q6.blockingErrors],toolUseContext:T,autoCompactTracking:U,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:S,maxOutputTokensOverride:void 0,pendingToolUseSummary:void 0,stopHookActive:!0,turnCount:B,transition:{reason:"stop_hook_blocking"}};continue}return{reason:"completed"}}let N6=!1,Z6=T;if(g3("query_tool_execution_start"),s)d("tengu_streaming_tool_execution_used",{tool_count:G6.length,queryChainId:g,queryDepth:C.depth});else d("tengu_streaming_tool_execution_not_used",{tool_count:G6.length,queryChainId:g,queryDepth:C.depth});let V6=s?s.getRemainingResults():xN8(G6,M6,$,T);for await(let h6 of V6){if(h6.message){if(yield h6.message,h6.message.type==="attachment"&&h6.message.attachment.type==="hook_stopped_continuation")N6=!0;j6.push(...bP([h6.message],T.options.tools).filter((x6)=>x6.type==="user"))}if(h6.newContext)Z6={...h6.newContext,queryTracking:C}}g3("query_tool_execution_end");let y6;if(P.gates.emitToolUseSummaries&&G6.length>0&&!T.abortController.signal.aborted&&!T.agentId){let h6=M6.at(-1),x6;if(h6){let Y6=h6.message.content.filter((_6)=>_6.type==="text");if(Y6.length>0){let _6=Y6.at(-1);if(_6&&"text"in _6)x6=_6.text}}let b6=G6.map((Y6)=>Y6.id),Q6=G6.map((Y6)=>{let _6=j6.find((W6)=>W6.type==="user"&&Array.isArray(W6.message.content)&&W6.message.content.some((v6)=>v6.type==="tool_result"&&v6.tool_use_id===Y6.id)),F6=_6?.type==="user"&&Array.isArray(_6.message.content)?_6.message.content.find((W6)=>W6.type==="tool_result"&&W6.tool_use_id===Y6.id):void 0;return{name:Y6.name,input:Y6.input,output:F6&&"content"in F6?F6.content:null}});y6=tX4({tools:Q6,signal:T.abortController.signal,isNonInteractiveSession:T.options.isNonInteractiveSession,lastAssistantText:x6}).then((Y6)=>{if(Y6)return IWK(Y6,b6);return null}).catch(()=>null)}if(T.abortController.signal.aborted){if(!T.agentId)try{let{cleanupComputerUseAfterTurn:x6}=await Promise.resolve().then(() => (Tp8(),Gp8));await x6(T)}catch{}if(T.abortController.signal.reason!=="interrupt")yield Ya({toolUse:!0});let h6=B+1;if(w&&h6>w)yield V4({type:"max_turns_reached",maxTurns:w,turnCount:h6});return{reason:"aborted_tools"}}if(N6)return{reason:"hook_stopped"};if(U?.compacted)U.turnCounter++,d("tengu_post_autocompact_turn",{turnId:U.turnId,turnCounter:U.turnCounter,queryChainId:g,queryDepth:C.depth});d("tengu_query_before_attachments",{messagesForQueryCount:F.length,assistantMessagesCount:M6.length,toolResultsCount:j6.length,queryChainId:g,queryDepth:C.depth});let T6=G6.some((h6)=>h6.name===QO6),n6=O.startsWith("repl_main_thread")||O==="sdk",o6=T.agentId,I6=WV8(T6?"later":"next").filter((h6)=>{if(wP4(h6))return!1;if(n6)return h6.agentId===void 0;return h6.mode==="task-notification"&&h6.agentId===o6});for await(let h6 of nE6(null,Z6,null,I6,[...F,...M6,...j6],O))yield h6,j6.push(h6);if(W&&W.settledAt!==null&&W.consumedOnIteration===-1){let h6=xWK(await W.promise,T.readFileState);for(let x6 of h6){let b6=V4(x6);yield b6,j6.push(b6)}W.consumedOnIteration=B-1}if(V87&&p){let h6=await V87.collectSkillDiscoveryPrefetch(p);for(let x6 of h6){let b6=V4(x6);yield b6,j6.push(b6)}}let C6=I6.filter((h6)=>h6.mode==="prompt"||h6.mode==="task-notification");if(C6.length>0){for(let h6 of C6)if(h6.uuid)K.push(h6.uuid),jU(h6.uuid,"started");YP4(C6)}let l6=$7(j6,(h6)=>h6.type==="attachment"&&h6.attachment.type==="edited_text_file");if(d("tengu_query_after_attachments",{totalToolResultsCount:j6.length,fileChangeAttachmentCount:l6,queryChainId:g,queryDepth:C.depth}),Z6.options.refreshTools){let h6=Z6.options.refreshTools();if(h6!==Z6.options.tools)Z6={...Z6,options:{...Z6.options,tools:h6}}}let S6={...Z6,queryTracking:C},E6=B+1;if(w&&E6>w)return yield V4({type:"max_turns_reached",maxTurns:w,turnCount:E6}),{reason:"max_turns",turnCount:E6};g3("query_recursive_call"),J={messages:[...F,...M6,...j6],toolUseContext:S6,autoCompactTracking:U,turnCount:E6,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,pendingToolUseSummary:y6,maxOutputTokensOverride:void 0,stopHookActive:I,transition:{reason:"next_turn"}}}}catch(f){var G=f,Z=1}finally{gz(D,G,Z)}}var PH6=null,V87=null,J3Y=3;var Tj6=y(()=>{Wr();io();no();k8();ck8();RL();Bq();E8();SC();_8();i1();eX4();fH6();lP();p2();mr6();aq();EG();fP();o1();pr6();Br6();y$();vr();qWK();MH6();tm1();IG();_K();kWK();EWK();RWK();v8();SWK()});var n0;var E87=y(()=>{n0={input_tokens:0,cache_creation_input_tokens:0,cache_read_input_tokens:0,output_tokens:0,server_tool_use:{web_search_requests:0,web_fetch_requests:0},service_tier:"standard",cache_creation:{ephemeral_1h_input_tokens:0,ephemeral_5m_input_tokens:0},inference_geo:"",iterations:[],speed:"standard"}});function P3Y(q){if(q instanceof Qq){let K=q.error;if(K?.error?.message)return K.error.message}return q instanceof Error?q.message:String(q)}function mWK({headers:q,baseUrl:K}){if(q){let _=[];q.forEach((z,Y)=>_.push(Y));for(let[z,{prefixes:Y}]of Object.entries(W3Y))if(Y.some(($)=>_.some((A)=>A.startsWith($))))return z}if(K)try{let _=new URL(K).hostname.toLowerCase();for(let[z,Y]of Object.entries(D3Y))if(Y.some(($)=>_.endsWith($)))return z}catch{}return}function L87(){return{...process.env.ANTHROPIC_BASE_URL?{baseUrl:process.env.ANTHROPIC_BASE_URL}:{},...process.env.ANTHROPIC_MODEL?{envModel:process.env.ANTHROPIC_MODEL}:{},...process.env.ANTHROPIC_SMALL_FAST_MODEL?{envSmallFastModel:process.env.ANTHROPIC_SMALL_FAST_MODEL}:{}}}function pWK(){if(!{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"}.BUILD_TIME)return;let q=new Date({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"}.BUILD_TIME).getTime();if(isNaN(q))return;return Math.floor((Date.now()-q)/60000)}function BWK({model:q,messagesLength:K,temperature:_,betas:z,permissionMode:Y,querySource:$,queryTracking:A,thinkingType:O,effortValue:w,fastMode:j,previousRequestId:H}){d("tengu_api_query",{model:q,messagesLength:K,temperature:_,provider:i66(),buildAgeMins:pWK(),...z?.length?{betas:z.join(",")}:{},permissionMode:Y,querySource:$,...A?{queryChainId:A.chainId,queryDepth:A.depth}:{},thinkingType:O,effortValue:w,fastMode:j,...H?{previousRequestId:H}:{},...L87()})}function R87({error:q,model:K,messageCount:_,messageTokens:z,durationMs:Y,durationMsIncludingRetries:$,attempt:A,requestId:O,clientRequestId:w,didFallBackToNonStreaming:j,promptCategory:H,headers:J,queryTracking:M,querySource:X,llmSpan:P,fastMode:W,previousRequestId:D}){let f=mWK({headers:q instanceof Qq&&q.headers?q.headers:J,baseUrl:process.env.ANTHROPIC_BASE_URL}),G=P3Y(q),Z=q instanceof Qq?String(q.status):void 0,T=FWK(q),v=o76(q);if(v){let S=v.isSSLError?" (SSL error)":"";N(`Connection error details: code=${v.code}${S}, message=${v.message}`,{level:"error"})}let V=EV1();if(w)N(`API error x-client-request-id=${w} (give this to the API team for server-log lookup)`,{level:"error"});H6(q),d("tengu_api_error",{model:K,error:G,status:Z,errorType:T,messageCount:_,messageTokens:z,durationMs:Y,durationMsIncludingRetries:$,attempt:A,provider:i66(),requestId:O||void 0,...V?{invokingRequestId:V.invokingRequestId,invocationKind:V.invocationKind}:{},clientRequestId:w||void 0,didFallBackToNonStreaming:j,...H?{promptCategory:H}:{},...f?{gateway:f}:{},...M?{queryChainId:M.chainId,queryDepth:M.depth}:{},...X?{querySource:X}:{},fastMode:W,...D?{previousRequestId:D}:{},...L87()}),EA("api_error",{model:K,error:G,status_code:String(Z),duration_ms:String(Y),attempt:String(A),speed:W?"fast":"normal"}),pU1(P,{success:!1,statusCode:Z?parseInt(Z):void 0,error:G,attempt:A});let E=J38();if(E?.isTeleported&&!E.hasLoggedFirstMessage)d("tengu_teleport_first_message_error",{session_id:E.sessionId,error_type:T}),M38()}function f3Y({model:q,preNormalizedModel:K,messageCount:_,messageTokens:z,usage:Y,durationMs:$,durationMsIncludingRetries:A,attempt:O,ttftMs:w,requestId:j,stopReason:H,costUSD:J,didFallBackToNonStreaming:M,querySource:X,gateway:P,queryTracking:W,permissionMode:D,globalCacheStrategy:f,textContentLength:G,thinkingContentLength:Z,toolUseContentLengths:T,connectorTextBlockCount:v,fastMode:V,previousRequestId:E,betas:S}){let R=i7(),x=_i8(),I=process.argv.includes("-p")||process.argv.includes("--print"),B=Date.now(),p=i36(),C=p!==null?B-p:void 0,g=EV1();d("tengu_api_success",{model:q,...K!==q?{preNormalizedModel:K}:{},...S?.length?{betas:S.join(",")}:{},messageCount:_,messageTokens:z,inputTokens:Y.input_tokens,outputTokens:Y.output_tokens,cachedInputTokens:Y.cache_read_input_tokens??0,uncachedInputTokens:Y.cache_creation_input_tokens??0,durationMs:$,durationMsIncludingRetries:A,attempt:O,ttftMs:w??void 0,buildAgeMins:pWK(),provider:i66(),requestId:j??void 0,...g?{invokingRequestId:g.invokingRequestId,invocationKind:g.invocationKind}:{},stop_reason:H??void 0,costUSD:J,didFallBackToNonStreaming:M,isNonInteractiveSession:R,print:I,isTTY:process.stdout.isTTY??!1,querySource:X,...P?{gateway:P}:{},...W?{queryChainId:W.chainId,queryDepth:W.depth}:{},permissionMode:D,...f?{globalCacheStrategy:f}:{},...G!==void 0?{textContentLength:G}:{},...Z!==void 0?{thinkingContentLength:Z}:{},...T!==void 0?{toolUseContentLengths:g6(T)}:{},...v!==void 0?{connectorTextBlockCount:v}:{},fastMode:V,...{},...E?{previousRequestId:E}:{},...x?{isPostCompaction:x}:{},...L87(),timeSinceLastApiCallMs:C}),mb6(B)}function gWK({model:q,preNormalizedModel:K,start:_,startIncludingRetries:z,ttftMs:Y,usage:$,attempt:A,messageCount:O,messageTokens:w,requestId:j,stopReason:H,didFallBackToNonStreaming:J,querySource:M,headers:X,costUSD:P,queryTracking:W,permissionMode:D,newMessages:f,llmSpan:G,globalCacheStrategy:Z,requestSetupMs:T,attemptStartTimes:v,fastMode:V,previousRequestId:E,betas:S}){let R=mWK({headers:X,baseUrl:process.env.ANTHROPIC_BASE_URL}),x,I,B,p;if(f){let t=0,q6=0,e=!1,i={},$6=0;for(let M6 of f)for(let j6 of M6.message.content)if(j6.type==="text")t+=j6.text.length;else if(j6.type==="thinking")q6+=j6.thinking.length;else if(j6.type==="tool_use"||j6.type==="server_tool_use"||j6.type==="mcp_tool_use"){let G6=g6(j6.input).length,w6=wK(j6.name);i[w6]=(i[w6]??0)+G6,e=!0}x=t,I=q6>0?q6:void 0,B=e?i:void 0,p=$6>0?$6:void 0}let C=Date.now()-_,g=Date.now()-z;Fn8(g,C),f3Y({model:q,preNormalizedModel:K,messageCount:O,messageTokens:w,usage:$,durationMs:C,durationMsIncludingRetries:g,attempt:A,ttftMs:Y,requestId:j,stopReason:H,costUSD:P,didFallBackToNonStreaming:J,querySource:M,gateway:R,queryTracking:W,permissionMode:D,globalCacheStrategy:Z,textContentLength:x,thinkingContentLength:I,toolUseContentLengths:B,connectorTextBlockCount:p,fastMode:V,previousRequestId:E,betas:S}),EA("api_request",{model:q,input_tokens:String($.input_tokens),output_tokens:String($.output_tokens),cache_read_tokens:String($.cache_read_input_tokens),cache_creation_tokens:String($.cache_creation_input_tokens),cost_usd:String(P),duration_ms:String(C),speed:V?"fast":"normal"});let F,U,c;if(bH()&&f)F=f.flatMap((t)=>t.message.content.filter((q6)=>q6.type==="text").map((q6)=>q6.text)).join(`
4179`)||void 0,c=f.some((t)=>t.message.content.some((q6)=>q6.type==="tool_use"));pU1(G,{success:!0,inputTokens:$.input_tokens,outputTokens:$.output_tokens,cacheReadTokens:$.cache_read_input_tokens,cacheCreationTokens:$.cache_creation_input_tokens,attempt:A,modelOutput:F,thinkingOutput:U,hasToolCall:c,ttftMs:Y??void 0,requestSetupMs:T,attemptStartTimes:v});let K6=J38();if(K6?.isTeleported&&!K6.hasLoggedFirstMessage)d("tengu_teleport_first_message_success",{session_id:K6.sessionId}),M38()}var W3Y,D3Y;var J18=y(()=>{LZ();v8();_8();E8();Az();l8();nu();w46();Ou();k8();kj();E87();SC();Pr();W3Y={litellm:{prefixes:["x-litellm-"]},helicone:{prefixes:["helicone-"]},portkey:{prefixes:["x-portkey-"]},"cloudflare-ai-gateway":{prefixes:["cf-aig-"]},kong:{prefixes:["x-kong-"]},braintrust:{prefixes:["x-bt-"]}},D3Y={databricks:[".cloud.databricks.com",".azuredatabricks.net",".gcp.databricks.com"]}});function yp8(){return{consecutiveDenials:0,totalDenials:0}}function UWK(q){return{...q,consecutiveDenials:q.consecutiveDenials+1,totalDenials:q.totalDenials+1}}function M18(q){if(q.consecutiveDenials===0)return q;return{...q,consecutiveDenials:0}}function QWK(q){return q.consecutiveDenials>=Np8.maxConsecutive||q.totalDenials>=Np8.maxTotal}var Np8;var h87=y(()=>{Np8={maxConsecutive:3,maxTotal:20}});import{randomUUID as Z3Y}from"crypto";function VWK(q){dWK=q}function X18(){return dWK}function hL(q){return{systemPrompt:q.systemPrompt,userContext:q.userContext,systemContext:q.systemContext,toolUseContext:q.toolUseContext,forkContextMessages:q.messages}}function G3Y(q,K){if(K.length===0)return q;return()=>{let _=q();return{..._,toolPermissionContext:{..._.toolPermissionContext,alwaysAllowRules:{..._.toolPermissionContext.alwaysAllowRules,command:[...new Set([..._.toolPermissionContext.alwaysAllowRules.command||[],...K])]}}}}}async function Kx8(q,K,_){let Y=(await q.getPromptForCommand(K,_)).map((J)=>J.type==="text"?J.text:"").join(`
4180`),$=_C(q.allowedTools??[]),A=G3Y(_.getAppState,$),O=q.agent??"general-purpose",w=_.options.agentDefinitions.activeAgents,j=w.find((J)=>J.agentType===O)??w.find((J)=>J.agentType==="general-purpose")??w[0];if(!j)throw Error("No agent available for forked execution");let H=[U8({content:Y})];return{skillContent:Y,modifiedGetAppState:A,baseAgent:j,promptMessages:H}}function _x8(q,K="Execution completed"){let _=uP(q);if(!_)return K;return L3(_.message.content,`
4181`)||K}function te6(q,K){let _=K?.abortController??(K?.shareAbortController?q.abortController:bC(q.abortController)),z=K?.getAppState?K.getAppState:K?.shareAbortController?q.getAppState:()=>{let Y=q.getAppState();if(Y.toolPermissionContext.shouldAvoidPermissionPrompts)return Y;return{...Y,toolPermissionContext:{...Y.toolPermissionContext,shouldAvoidPermissionPrompts:!0}}};return{readFileState:gu(K?.readFileState??q.readFileState),nestedMemoryAttachmentTriggers:new Set,loadedNestedMemoryPaths:new Set,dynamicSkillDirTriggers:new Set,discoveredSkillNames:new Set,toolDecisions:void 0,contentReplacementState:K?.contentReplacementState??(q.contentReplacementState?iR4(q.contentReplacementState):void 0),abortController:_,getAppState:z,setAppState:K?.shareSetAppState?q.setAppState:()=>{},setAppStateForTasks:q.setAppStateForTasks??q.setAppState,localDenialTracking:K?.shareSetAppState?q.localDenialTracking:yp8(),setInProgressToolUseIDs:()=>{},setResponseLength:K?.shareSetResponseLength?q.setResponseLength:()=>{},pushApiMetricsEntry:K?.shareSetResponseLength?q.pushApiMetricsEntry:void 0,updateFileHistoryState:()=>{},updateAttributionState:q.updateAttributionState,addNotification:void 0,setToolJSX:void 0,setStreamMode:void 0,setSDKStatus:void 0,openMessageSelector:void 0,options:K?.options??q.options,messages:K?.messages??q.messages,agentId:K?.agentId??wm(),agentType:K?.agentType,queryTracking:{chainId:Z3Y(),depth:(q.queryTracking?.depth??-1)+1},fileReadingLimits:q.fileReadingLimits,userModified:q.userModified,criticalSystemReminder_EXPERIMENTAL:K?.criticalSystemReminder_EXPERIMENTAL,requireCanUseTool:K?.requireCanUseTool}}async function hG({promptMessages:q,cacheSafeParams:K,canUseTool:_,querySource:z,forkLabel:Y,overrides:$,maxOutputTokens:A,maxTurns:O,onMessage:w,skipTranscript:j,skipCacheWrite:H}){let J=Date.now(),M=[],X={...n0},{systemPrompt:P,userContext:W,systemContext:D,toolUseContext:f,forkContextMessages:G}=K,Z=te6(f,$),T=[...G,...q],v=j?void 0:wm(Y),V=null;if(v)await SQ(T,v).catch((S)=>N(`Forked agent [${Y}] failed to record initial transcript: ${S}`)),V=T.length>0?T[T.length-1].uuid:null;try{for await(let S of Db({messages:T,systemPrompt:P,userContext:W,systemContext:D,canUseTool:_,toolUseContext:Z,querySource:z,maxOutputTokensOverride:A,maxTurns:O,skipCacheWrite:H})){if(S.type==="stream_event"){if("event"in S&&S.event?.type==="message_delta"&&S.event.usage){let x=iK6({...n0},S.event.usage);X=Ep8(X,x)}continue}if(S.type==="stream_request_start")continue;N(`Forked agent [${Y}] received message: type=${S.type}`),M.push(S),w?.(S);let R=S;if(v&&(R.type==="assistant"||R.type==="user"||R.type==="progress")){if(await SQ([R],v,V).catch((x)=>N(`Forked agent [${Y}] failed to record transcript: ${x}`)),R.type!=="progress")V=R.uuid}}}finally{Z.readFileState.clear(),T.length=0}N(`Forked agent [${Y}] finished: ${M.length} messages, types=[${M.map((S)=>S.type).join(", ")}], totalUsage: input=${X.input_tokens} output=${X.output_tokens} cacheRead=${X.cache_read_input_tokens} cacheCreate=${X.cache_creation_input_tokens}`);let E=Date.now()-J;return T3Y({forkLabel:Y,querySource:z,durationMs:E,messageCount:M.length,totalUsage:X,queryTracking:f.queryTracking}),{messages:M,totalUsage:X}}function T3Y({forkLabel:q,querySource:K,durationMs:_,messageCount:z,totalUsage:Y,queryTracking:$}){let A=Y.input_tokens+Y.cache_creation_input_tokens+Y.cache_read_input_tokens,O=A>0?Y.cache_read_input_tokens/A:0;d("tengu_fork_agent_query",{forkLabel:q,querySource:K,durationMs:_,messageCount:z,inputTokens:Y.input_tokens,outputTokens:Y.output_tokens,cacheReadInputTokens:Y.cache_read_input_tokens,cacheCreationInputTokens:Y.cache_creation_input_tokens,serviceTier:Y.service_tier,cacheCreationEphemeral1hTokens:Y.cache_creation.ephemeral_1h_input_tokens,cacheCreationEphemeral5mTokens:Y.cache_creation.ephemeral_5m_input_tokens,cacheHitRate:O,...$?{queryChainId:$.chainId,queryDepth:$.depth}:{}})}var dWK=null;var nv=y(()=>{Tj6();k8();ew();J18();B2();_8();NG();i1();h87();fX();_K();IG();jm()});var cWK;var lWK=y(()=>{cWK=["User","Project","Local","Managed","AutoMem","TeamMem"]});import{readFile as nWK}from"fs/promises";async function Lp8(q,K){return}var v3Y,k3Y;var S87=y(()=>{F4();l8();k8();v3Y=_1(async()=>{return null}),k3Y=_1(async()=>{return null})});function iWK(q){let K=[],_=[],z;for(let Y of q){if(Y.type==="assistant"&&Y.message.id!==z&&_.length>0)K.push(_),_=[Y];else _.push(Y);if(Y.type==="assistant")z=Y.message.id}if(_.length>0)K.push(_);return K}function oWK(q,K="from"){let z=`CRITICAL: Respond with TEXT ONLY. Do NOT call any tools.
4182
4183- Do NOT use Read, Bash, Grep, Glob, Edit, Write, or ANY other tool.
4184- You already have all the context you need in the conversation above.
4185- Tool calls will be REJECTED and will waste your only turn — you will fail the task.
4186- Your entire response must be plain text: an <analysis> block followed by a <summary> block.
4187
4188`+(K==="up_to"?`Your task is to create a detailed summary of this conversation. This summary will be placed at the start of a continuing session; newer messages that build on this context will follow after your summary (you do not see them here). Summarize thoroughly so that someone reading only your summary and then the newer messages can fully understand what happened and continue the work.
4189
4190Before providing your final summary, wrap your analysis in <analysis> tags to organize your thoughts and ensure you've covered all necessary points. In your analysis process:
4191
41921. Chronologically analyze each message and section of the conversation. For each section thoroughly identify:
4193 - The user's explicit requests and intents
4194 - Your approach to addressing the user's requests
4195 - Key decisions, technical concepts and code patterns
4196 - Specific details like:
4197 - file names
4198 - full code snippets
4199 - function signatures
4200 - file edits
4201 - Errors that you ran into and how you fixed them
4202 - Pay special attention to specific user feedback that you received, especially if the user told you to do something differently.
42032. Double-check for technical accuracy and completeness, addressing each required element thoroughly.
4204
4205Your summary should include the following sections:
4206
42071. Primary Request and Intent: Capture the user's explicit requests and intents in detail
42082. Key Technical Concepts: List important technical concepts, technologies, and frameworks discussed.
42093. Files and Code Sections: Enumerate specific files and code sections examined, modified, or created. Include full code snippets where applicable and include a summary of why this file read or edit is important.
42104. Errors and fixes: List errors encountered and how they were fixed.
42115. Problem Solving: Document problems solved and any ongoing troubleshooting efforts.
42126. All user messages: List ALL user messages that are not tool results.
42137. Pending Tasks: Outline any pending tasks.
42148. Work Completed: Describe what was accomplished by the end of this portion.
42159. Context for Continuing Work: Summarize any context, decisions, or state that would be needed to understand and continue the work in subsequent messages.
4216
4217Here's an example of how your output should be structured:
4218
4219<example>
4220<analysis>
4221[Your thought process, ensuring all points are covered thoroughly and accurately]
4222</analysis>
4223
4224<summary>
42251. Primary Request and Intent:
4226 [Detailed description]
4227
42282. Key Technical Concepts:
4229 - [Concept 1]
4230 - [Concept 2]
4231
42323. Files and Code Sections:
4233 - [File Name 1]
4234 - [Summary of why this file is important]
4235 - [Important Code Snippet]
4236
42374. Errors and fixes:

Callers 1

zDKFunction · 0.85

Calls 1

trimMethod · 0.45

Tested by

no test coverage detected