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

Function S9Y

package/cli.js:4541–4541  ·  view source on GitHub ↗
({model:q,messages:K,tools:_,betas:z,containsThinking:Y})

Source from the content-addressed store, hash-verified

4539
4540Some session memory sections were truncated for length. The full session memory can be viewed at: ${W}`}let M=[U8({content:J,isCompactSummary:!0,isVisibleInTranscriptOnly:!0})],X=hp8($),P=X?[X]:[];return{boundaryMarker:b87(O,M[M.length-1].uuid,_),summaryMessages:M,attachments:P,hookResults:z,messagesToKeep:_,preCompactTokenCount:A,postCompactTokenCount:Ik6(M),truePostCompactTokenCount:Ik6(M)}}async function Bp8(q,K,_){if(!pp8())return null;await c3Y(),await uH4();let z=bH4(),Y=await Gr6();if(!Y)return d("tengu_sm_compact_no_session_memory",{}),null;if(await fDK(Y))return d("tengu_sm_compact_empty_template",{}),null;try{let $;if(z){if($=q.findIndex((X)=>X.uuid===z),$===-1)return d("tengu_sm_compact_summarized_id_not_found",{}),null}else $=q.length-1,d("tengu_sm_compact_resumed_session",{});let A=i3Y(q,$),O=q.slice(A).filter((X)=>!bD(X)),w=await xD("compact",{model:D5()}),j=Y$(),H=r3Y(q,Y,O,w,j,K),J=lo(H),M=Ik6(J);if(_!==void 0&&M>=_)return d("tengu_sm_compact_threshold_exceeded",{postCompactTokenCount:M,autoCompactThreshold:_}),null;return{...H,postCompactTokenCount:M,truePostCompactTokenCount:M}}catch($){return d("tengu_sm_compact_error",{}),null}}var mp8,g87,TDK=!1;var gp8=y(()=>{_8();m8();y8();i1();aq();Tz();JK6();_K();EG();RC();o1();k8();p87();bO6();no();EC();C87();mp8={minTokens:1e4,minTextBlockMessages:5,maxTokens:40000},g87={...mp8}});function rQ(q){let K=Math.min(Z18(q),o3Y),_=lf(q,QM()),z=process.env.CLAUDE_CODE_AUTO_COMPACT_WINDOW;if(z){let Y=parseInt(z,10);if(!isNaN(Y)&&Y>0)_=Math.min(_,Y)}return _-K}function Ne6(q){let K=rQ(q),_=K-U87,z=process.env.CLAUDE_AUTOCOMPACT_PCT_OVERRIDE;if(z){let Y=parseFloat(z);if(!isNaN(Y)&&Y>0&&Y<=100){let $=Math.floor(K*(Y/100));return Math.min($,_)}}return _}function WH6(q,K){let _=Ne6(K),z=hb()?_:rQ(K),Y=Math.max(0,Math.round((z-q)/z*100)),$=z-a3Y,A=z-s3Y,O=q>=$,w=q>=A,j=hb()&&q>=_,J=rQ(K)-Q87,M=process.env.CLAUDE_CODE_BLOCKING_LIMIT_OVERRIDE,X=M?parseInt(M,10):NaN,P=!isNaN(X)&&X>0?X:J,W=q>=P;return{percentLeft:Y,isAboveWarningThreshold:O,isAboveErrorThreshold:w,isAboveAutoCompactThreshold:j,isAtBlockingLimit:W}}function hb(){if(i6(process.env.DISABLE_COMPACT))return!1;if(i6(process.env.DISABLE_AUTO_COMPACT))return!1;return j8().autoCompactEnabled}async function t3Y(q,K,_,z=0){if(_==="session_memory"||_==="compact")return!1;if(!hb())return!1;let Y=yG(q)-z,$=Ne6(K),A=rQ(K);N(`autocompact: tokens=${Y} threshold=${$} effectiveWindow=${A}${z>0?` snipFreed=${z}`:""}`);let{isAboveAutoCompactThreshold:O}=WH6(Y,K);return O}async function hWK(q,K,_,z,Y,$){if(i6(process.env.DISABLE_COMPACT))return{wasCompacted:!1};if(Y?.consecutiveFailures!==void 0&&Y.consecutiveFailures>=kDK)return{wasCompacted:!1};let A=K.options.mainLoopModel;if(!await t3Y(q,A,z,$))return{wasCompacted:!1};let w={isRecompactionInChain:Y?.compacted===!0,turnsSincePreviousCompact:Y?.turnCounter??-1,previousCompactTurnId:Y?.turnId,autoCompactThreshold:Ne6(A),querySource:z},j=await Bp8(q,K.agentId,w.autoCompactThreshold);if(j)return r76(void 0),Hp(z),bt(),{wasCompacted:!0,compactionResult:j};try{let H=await LE6(q,K,_,!0,void 0,!0,w);return r76(void 0),Hp(z),{wasCompacted:!0,compactionResult:H,consecutiveFailures:0}}catch(H){if(!nt(H,co))H6(H);let M=(Y?.consecutiveFailures??0)+1;if(M>=kDK)N(`autocompact: circuit breaker tripped after ${M} consecutive failures — skipping future attempts this session`,{level:"warn"});return{wasCompacted:!1,consecutiveFailures:M}}}var o3Y=20000,U87=13000,a3Y=20000,s3Y=20000,Q87=3000,kDK=3;var io=y(()=>{v8();v8();V1();fP();_8();m8();y8();E8();EG();o1();ew();Q76();bO6();no();G18();gp8()});async function T18(q,K){try{let _=await so6(q,K);if(_!==null)return _;N(`countTokensWithFallback: API returned null, trying haiku fallback (${K.length} tools)`)}catch(_){N(`countTokensWithFallback: API failed: ${d6(_)}`),H6(_)}try{let _=await NDK(q,K);if(_===null)N(`countTokensWithFallback: haiku fallback also returned null (${K.length} tools)`);return _}catch(_){return N(`countTokensWithFallback: haiku fallback failed: ${d6(_)}`),H6(_),null}}async function rK6(q,K,_,z){let Y=await Promise.all(q.map((A)=>Qp8(A,{getToolPermissionContext:K,tools:q,agents:_?.activeAgents??[],model:z}))),$=await T18([],Y);if($===null||$===0){let A=q.map((O)=>O.name).join(", ");N(`countToolDefinitionTokens returned ${$} for ${q.length} tools: ${A.slice(0,100)}${A.length>100?"...":""}`)}return $??0}function q9Y(q){let K=q.match(/^#+\s+(.+)$/m);if(K)return K[1].trim();let _=q.split(`
4541`).find((z)=>z.trim().length>0)??"";return _.length>40?_.slice(0,40)+"…":_}async function K9Y(q){let K=await tw(),_=[...q.filter((A)=>A.length>0&&A!==ZH6).map((A)=>({name:q9Y(A),content:A})),...Object.entries(K).filter(([,A])=>A.length>0).map(([A,O])=>({name:A,content:O}))];if(_.length<1)return{systemPromptTokens:0,systemPromptSections:[]};let z=await Promise.all(_.map(({content:A})=>T18([{role:"user",content:A}],[]))),Y=_.map((A,O)=>({name:A.name,tokens:z[O]||0}));return{systemPromptTokens:z.reduce((A,O)=>A+(O||0),0),systemPromptSections:Y}}async function _9Y(){if(i6(process.env.CLAUDE_CODE_SIMPLE))return{memoryFileDetails:[],claudeMdTokens:0};let q=Pr6(await yH()),K=[],_=0;if(q.length<1)return{memoryFileDetails:[],claudeMdTokens:0};let z=await Promise.all(q.map(async(Y)=>{let $=await T18([{role:"user",content:Y.content}],[]);return{file:Y,tokens:$||0}}));for(let{file:Y,tokens:$}of z)_+=$,K.push({path:Y.path,type:Y.type,tokens:$});return{claudeMdTokens:_,memoryFileDetails:K}}async function z9Y(q,K,_,z,Y){let $=q.filter((D)=>!D.isMcp);if($.length<1)return{builtInToolTokens:0,deferredBuiltinDetails:[],deferredBuiltinTokens:0,systemToolDetails:[]};let{isToolSearchEnabled:A}=await Promise.resolve().then(() => (RC(),n87)),{isDeferredTool:O}=await Promise.resolve().then(() => (rF(),Cx1)),w=await A(z??"",q,K,_?.activeAgents??[],"analyzeBuiltIn"),j=$.filter((D)=>!O(D)),H=$.filter((D)=>O(D)),J=j.length>0?await rK6(j,K,_,z):0,M=[],X=[],P=0,W=0;if(H.length>0&&w){let D=new Set;if(Y){let G=new Set(H.map((Z)=>Z.name));for(let Z of Y)if(Z.type==="assistant"){for(let T of Z.message.content)if("type"in T&&T.type==="tool_use"&&"name"in T&&typeof T.name==="string"&&G.has(T.name))D.add(T.name)}}let f=await Promise.all(H.map((G)=>rK6([G],K,_,z)));for(let[G,Z]of H.entries()){let T=Math.max(0,(f[G]||0)-Fp8),v=D.has(Z.name);if(X.push({name:Z.name,tokens:T,isLoaded:v}),W+=T,v)P+=T}}else if(H.length>0){let D=await rK6(H,K,_,z);return{builtInToolTokens:J+D,deferredBuiltinDetails:[],deferredBuiltinTokens:0,systemToolDetails:M}}return{builtInToolTokens:J+P,deferredBuiltinDetails:X,deferredBuiltinTokens:W-P,systemToolDetails:M}}function VDK(q){return L5(q,JM)}async function Y9Y(q,K,_){let z=await Ex1(Z8()),Y=VDK(q);if(!Y)return{slashCommandTokens:0,commandInfo:{totalCommands:0,includedCommands:0}};return{slashCommandTokens:await rK6([Y],K,_),commandInfo:{totalCommands:z.totalCommands,includedCommands:z.includedCommands}}}async function $9Y(q,K,_){try{let z=await Lx1(Z8()),Y=VDK(q);if(!Y)return{skillTokens:0,skillInfo:{totalSkills:0,includedSkills:0,skillFrontmatter:[]}};let $=await rK6([Y],K,_),A=z.map((O)=>({name:W_(O),source:O.type==="prompt"?O.source:"plugin",tokens:rI8(O)}));return{skillTokens:$,skillInfo:{totalSkills:z.length,includedSkills:z.length,skillFrontmatter:A}}}catch(z){return H6(x1(z)),{skillTokens:0,skillInfo:{totalSkills:0,includedSkills:0,skillFrontmatter:[]}}}}async function l87(q,K,_,z,Y){let $=q.filter((G)=>G.isMcp),A=[],O=await rK6($,K,_,z),w=Math.max(0,(O||0)-Fp8),j=await Promise.all($.map(async(G)=>E3(g6({name:G.name,description:await G.prompt({getToolPermissionContext:K,tools:q,agents:_?.activeAgents??[]}),input_schema:G.inputJSONSchema??{}})))),H=j.reduce((G,Z)=>G+Z,0)||1,J=j.map((G)=>Math.round(G/H*w)),{isToolSearchEnabled:M}=await Promise.resolve().then(() => (RC(),n87)),{isDeferredTool:X}=await Promise.resolve().then(() => (rF(),Cx1)),P=await M(z,q,K,_?.activeAgents??[],"analyzeMcp"),W=new Set;if(P&&Y){let G=new Set($.map((Z)=>Z.name));for(let Z of Y)if(Z.type==="assistant"){for(let T of Z.message.content)if("type"in T&&T.type==="tool_use"&&"name"in T&&typeof T.name==="string"&&G.has(T.name))W.add(T.name)}}for(let[G,Z]of $.entries())A.push({name:Z.name,serverName:Z.name.split("__")[1]||"unknown",tokens:J[G],isLoaded:W.has(Z.name)||!X(Z)});let D=0,f=0;for(let G of A)if(G.isLoaded)D+=G.tokens;else if(P)f+=G.tokens;return{mcpToolTokens:P?D:w,mcpToolDetails:A,deferredToolTokens:f,loadedMcpToolNames:W}}async function A9Y(q){let K=q.activeAgents.filter(($)=>$.source!=="built-in"),_=[],z=0,Y=await Promise.all(K.map(($)=>T18([{role:"user",content:[$.agentType,$.whenToUse].join(" ")}],[])));for(let[$,A]of K.entries()){let O=Y[$]||0;z+=O||0,_.push({agentType:A.agentType,source:A.source,tokens:O||0})}return{agentTokens:z,agentDetails:_}}function O9Y(q,K){for(let _ of q.message.content){let z=g6(_),Y=E3(z);if("type"in _&&_.type==="tool_use"){K.toolCallTokens+=Y;let $=("name"in _?_.name:void 0)||"unknown";K.toolCallsByType.set($,(K.toolCallsByType.get($)||0)+Y)}else K.assistantMessageTokens+=Y}}function w9Y(q,K,_){if(typeof q.message.content==="string"){let z=E3(q.message.content);K.userMessageTokens+=z;return}for(let z of q.message.content){let Y=g6(z),$=E3(Y);if("type"in z&&z.type==="tool_result"){K.toolResultTokens+=$;let A="tool_use_id"in z?z.tool_use_id:void 0,O=(A?_.get(A):void 0)||"unknown";K.toolResultsByType.set(O,(K.toolResultsByType.get(O)||0)+$)}else K.userMessageTokens+=$}}function j9Y(q,K){let _=g6(q.attachment),z=E3(_);K.attachmentTokens+=z;let Y=q.attachment.type||"unknown";K.attachmentsByType.set(Y,(K.attachmentsByType.get(Y)||0)+z)}async function H9Y(q){let K=await oF(q),_={totalTokens:0,toolCallTokens:0,toolResultTokens:0,attachmentTokens:0,assistantMessageTokens:0,userMessageTokens:0,toolCallsByType:new Map,toolResultsByType:new Map,attachmentsByType:new Map},z=new Map;for(let $ of K.messages)if($.type==="assistant"){for(let A of $.message.content)if("type"in A&&A.type==="tool_use"){let O="id"in A?A.id:void 0,w=("name"in A?A.name:void 0)||"unknown";if(O)z.set(O,w)}}for(let $ of K.messages)if($.type==="assistant")O9Y($,_);else if($.type==="user")w9Y($,_,z);else if($.type==="attachment")j9Y($,_);let Y=await T18(bP(K.messages).map(($)=>{if($.type==="assistant")return{role:"assistant",content:$.message.content};return $.message}),[]);return _.totalTokens=Y??0,_}async function Up8(q,K,_,z,Y,$,A,O,w){let j=uI({permissionMode:(await _()).mode,mainLoopModel:K}),H=lf(j,QM()),J=await QP(z,j),M=Eb({mainThreadAgentDefinition:O,toolUseContext:A??{options:{}},customSystemPrompt:A?.options.customSystemPrompt,defaultSystemPrompt:J,appendSystemPrompt:A?.options.appendSystemPrompt}),[{systemPromptTokens:X,systemPromptSections:P},{claudeMdTokens:W,memoryFileDetails:D},{builtInToolTokens:f,deferredBuiltinDetails:G,deferredBuiltinTokens:Z,systemToolDetails:T},{mcpToolTokens:v,mcpToolDetails:V,deferredToolTokens:E},{agentTokens:S,agentDetails:R},{slashCommandTokens:x,commandInfo:I},B]=await Promise.all([K9Y(M),_9Y(),z9Y(z,_,Y,j,q),l87(z,_,Y,j,q),A9Y(Y),Y9Y(z,_,Y),H9Y(q)]),C=(await $9Y(z,_,Y)).skillInfo,g=C.skillFrontmatter.reduce((l6,S6)=>l6+S6.tokens,0),F=B.totalTokens,U=hb(),c=U?rQ(K)-U87:void 0,K6=[];if(X>0)K6.push({name:"System prompt",tokens:X,color:"promptBorder"});let t=f-g;if(t>0)K6.push({name:"System tools",tokens:t,color:"inactive"});if(v>0)K6.push({name:"MCP tools",tokens:v,color:"cyan_FOR_SUBAGENTS_ONLY"});if(E>0)K6.push({name:"MCP tools (deferred)",tokens:E,color:"inactive",isDeferred:!0});if(Z>0)K6.push({name:"System tools (deferred)",tokens:Z,color:"inactive",isDeferred:!0});if(S>0)K6.push({name:"Custom agents",tokens:S,color:"permission"});if(W>0)K6.push({name:"Memory files",tokens:W,color:"claude"});if(g>0)K6.push({name:"Skills",tokens:g,color:"warning"});if(F!==null&&F>0)K6.push({name:"Messages",tokens:F,color:"purple_FOR_SUBAGENTS_ONLY"});let q6=K6.reduce((l6,S6)=>l6+(S6.isDeferred?0:S6.tokens),0),e=0;if(!1);else if(U&&c!==void 0)e=H-c,K6.push({name:d87,tokens:e,color:"inactive"});else if(!U)e=Q87,K6.push({name:c87,tokens:e,color:"inactive"});let $6=Math.max(0,H-q6-e);K6.push({name:"Free space",tokens:$6,color:"promptBorder"});let M6=q6,j6=uk8(w??q),w6=(j6?j6.input_tokens+j6.cache_creation_input_tokens+j6.cache_read_input_tokens:null)??M6,o=$&&$<80,s=H>=1e6?o?5:20:o?5:10,a=H>=1e6?10:o?5:10,n=s*a,A6=K6.filter((l6)=>!l6.isDeferred).map((l6)=>({...l6,squares:l6.name==="Free space"?Math.round(l6.tokens/H*n):Math.max(1,Math.round(l6.tokens/H*n)),percentageOfTotal:Math.round(l6.tokens/H*100)}));function J6(l6){let S6=[],E6=l6.tokens/H*n,R6=Math.floor(E6),h6=E6-R6;for(let x6=0;x6<l6.squares;x6++){let b6=1;if(x6===R6&&h6>0)b6=h6;S6.push({color:l6.color,isFilled:!0,categoryName:l6.name,tokens:l6.tokens,percentage:l6.percentageOfTotal,squareFullness:b6})}return S6}let X6=[],f6=A6.find((l6)=>l6.name===d87||l6.name===c87),N6=A6.filter((l6)=>l6.name!==d87&&l6.name!==c87&&l6.name!=="Free space");for(let l6 of N6){let S6=J6(l6);for(let E6 of S6)if(X6.length<n)X6.push(E6)}let Z6=f6?f6.squares:0,V6=K6.find((l6)=>l6.name==="Free space"),y6=n-Z6;while(X6.length<y6)X6.push({color:"promptBorder",isFilled:!0,categoryName:"Free space",tokens:V6?.tokens||0,percentage:V6?Math.round(V6.tokens/H*100):0,squareFullness:1});if(f6){let l6=J6(f6);for(let S6 of l6)if(X6.length<n)X6.push(S6)}let T6=[];for(let l6=0;l6<a;l6++)T6.push(X6.slice(l6*s,(l6+1)*s));let n6=new Map;for(let[l6,S6]of B.toolCallsByType.entries()){let E6=n6.get(l6)||{callTokens:0,resultTokens:0};n6.set(l6,{...E6,callTokens:S6})}for(let[l6,S6]of B.toolResultsByType.entries()){let E6=n6.get(l6)||{callTokens:0,resultTokens:0};n6.set(l6,{...E6,resultTokens:S6})}let o6=Array.from(n6.entries()).map(([l6,{callTokens:S6,resultTokens:E6}])=>({name:l6,callTokens:S6,resultTokens:E6})).sort((l6,S6)=>S6.callTokens+S6.resultTokens-(l6.callTokens+l6.resultTokens)),I6=Array.from(B.attachmentsByType.entries()).map(([l6,S6])=>({name:l6,tokens:S6})).sort((l6,S6)=>S6.tokens-l6.tokens),C6={toolCallTokens:B.toolCallTokens,toolResultTokens:B.toolResultTokens,attachmentTokens:B.attachmentTokens,assistantMessageTokens:B.assistantMessageTokens,userMessageTokens:B.userMessageTokens,toolCallsByType:o6,attachmentsByType:I6};return{categories:K6,totalTokens:w6,maxTokens:H,rawMaxTokens:H,percentage:Math.round(w6/H*100),gridRows:T6,model:j,memoryFiles:D,mcpTools:V,deferredBuiltinTools:void 0,systemTools:void 0,systemPromptSections:void 0,agents:R,slashCommands:x>0?{totalCommands:I.totalCommands,includedCommands:I.includedCommands,tokens:x}:void 0,skills:g>0?{totalSkills:C.totalSkills,includedSkills:C.includedSkills,tokens:g,skillFrontmatter:C.skillFrontmatter}:void 0,autoCompactThreshold:c,isAutoCompactEnabled:U,messageBreakdown:C6,apiUsage:j6}}var d87="Autocompact buffer",c87="Compact buffer",Fp8=500;var v18=y(()=>{rL();EC();v8();yA();jN();o1();io();ON();Ga();Bq();yO6();fH6();wM();fP();I7();_8();m8();y8();E8();i1();aq();l8();xR6();EG()});function ua(q){let K=yDK.get(q);if(K)return K;let _=nc(q);return yDK.set(q,_),_}var yDK;var dp8=y(()=>{x7();yDK=new WeakMap});var n87={};T8(n87,{modelSupportsToolReference:()=>k18,isToolSearchToolAvailable:()=>JH6,isToolSearchEnabledOptimistic:()=>yL,isToolSearchEnabled:()=>W18,isToolReferenceBlock:()=>Jp,isDeferredToolsDeltaEnabled:()=>V18,getToolSearchMode:()=>o87,getDeferredToolsDelta:()=>a87,getAutoToolSearchCharThreshold:()=>RDK,extractDiscoveredToolNames:()=>iQ});function EDK(q){if(!q.startsWith("auto:"))return null;let K=q.slice(5),_=parseInt(K,10);if(isNaN(_))return N(`Invalid ENABLE_TOOL_SEARCH value "${q}": expected auto:N where N is a number.`),null;return Math.max(0,Math.min(100,_))}function J9Y(q){if(!q)return!1;return q==="auto"||q.startsWith("auto:")}function r87(){let q=process.env.ENABLE_TOOL_SEARCH;if(!q)return i87;if(q==="auto")return i87;let K=EDK(q);if(K!==null)return K;return i87}function LDK(q){let K=OD8(q),_=lf(q,K),z=r87()/100;return Math.floor(_*z)}function RDK(q){return Math.floor(LDK(q)*M9Y)}function o87(){if(i6(process.env.CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS))return"standard";let q=process.env.ENABLE_TOOL_SEARCH,K=q?EDK(q):null;if(K===0)return"tst";if(K===100)return"standard";if(J9Y(q))return"tst-auto";if(i6(q))return"tst";if(k_(process.env.ENABLE_TOOL_SEARCH))return"standard";return"tst"}function W9Y(){try{let q=g8("tengu_tool_search_unsupported_models",null);if(q&&Array.isArray(q)&&q.length>0)return q}catch{}return P9Y}function k18(q){let K=q.toLowerCase(),_=W9Y();for(let z of _)if(K.includes(z.toLowerCase()))return!1;return!0}function yL(){let q=o87();if(q==="standard"){if(!Kh6)Kh6=!0,N(`[ToolSearch:optimistic] mode=${q}, ENABLE_TOOL_SEARCH=${process.env.ENABLE_TOOL_SEARCH}, result=false`);return!1}if(!process.env.ENABLE_TOOL_SEARCH&&E7()==="firstParty"&&!WP()){if(!Kh6)Kh6=!0,N(`[ToolSearch:optimistic] disabled: ANTHROPIC_BASE_URL=${process.env.ANTHROPIC_BASE_URL} is not a first-party Anthropic host. Set ENABLE_TOOL_SEARCH=true (or auto / auto:N) if your proxy forwards tool_reference blocks.`);return!1}if(!Kh6)Kh6=!0,N(`[ToolSearch:optimistic] mode=${q}, ENABLE_TOOL_SEARCH=${process.env.ENABLE_TOOL_SEARCH}, result=true`);return!0}function JH6(q){return q.some((K)=>g_(K,CP))}async function D9Y(q,K,_){let z=q.filter(($)=>yC($));if(z.length===0)return 0;return(await Promise.all(z.map(async($)=>{let A=await $.prompt({getToolPermissionContext:K,tools:q,agents:_}),O=$.inputJSONSchema?g6($.inputJSONSchema):$.inputSchema?g6(ua($.inputSchema)):"";return $.name.length+A.length+O.length}))).reduce(($,A)=>$+A,0)}async function W18(q,K,_,z,Y){let $=$7(K,(w)=>w.isMcp);function A(w,j,H,J){d("tengu_tool_search_mode_decision",{enabled:w,mode:j,reason:H,checkedModel:q,mcpToolCount:$,userType:"external",...J})}if(!k18(q))return N(`Tool search disabled for model '${q}': model does not support tool_reference blocks. This feature is only available on Claude Sonnet 4+, Opus 4+, and newer models.`),A(!1,"standard","model_unsupported"),!1;if(!JH6(K))return N("Tool search disabled: ToolSearchTool is not available (may have been disallowed via disallowedTools)."),A(!1,"standard","mcp_search_unavailable"),!1;let O=o87();switch(O){case"tst":return A(!0,O,"tst_enabled"),!0;case"tst-auto":{let{enabled:w,debugDescription:j,metrics:H}=await G9Y(K,_,z,q);if(w)return N(`Auto tool search enabled: ${j}`+(Y?` [source: ${Y}]`:"")),A(!0,O,"auto_above_threshold",H),!0;return N(`Auto tool search disabled: ${j}`+(Y?` [source: ${Y}]`:"")),A(!1,O,"auto_below_threshold",H),!1}case"standard":return A(!1,O,"standard_mode"),!1}}function Jp(q){return typeof q==="object"&&q!==null&&"type"in q&&q.type==="tool_reference"}function f9Y(q){return Jp(q)&&"tool_name"in q&&typeof q.tool_name==="string"}function Z9Y(q){return typeof q==="object"&&q!==null&&"type"in q&&q.type==="tool_result"&&"content"in q&&Array.isArray(q.content)}function iQ(q){let K=new Set,_=0;for(let z of q){if(z.type==="system"&&z.subtype==="compact_boundary"){let $=z.compactMetadata?.preCompactDiscoveredTools;if($){for(let A of $)K.add(A);_+=$.length}continue}if(z.type!=="user")continue;let Y=z.message?.content;if(!Array.isArray(Y))continue;for(let $ of Y)if(Z9Y($)){for(let A of $.content)if(f9Y(A))K.add(A.tool_name)}}if(K.size>0)N(`Dynamic tool loading: found ${K.size} discovered tools in message history`+(_>0?` (${_} carried from compact boundary)`:""));return K}function V18(){return g8("tengu_glacier_2xr",!1)}function a87(q,K,_){let z=new Set,Y=0,$=0,A=new Set;for(let M of K){if(M.type!=="attachment")continue;if(Y++,A.add(M.attachment.type),M.attachment.type!=="deferred_tools_delta")continue;$++;for(let X of M.attachment.addedNames)z.add(X);for(let X of M.attachment.removedNames)z.delete(X)}let O=q.filter(yC),w=new Set(O.map((M)=>M.name)),j=new Set(q.map((M)=>M.name)),H=O.filter((M)=>!z.has(M.name)),J=[];for(let M of z){if(w.has(M))continue;if(!j.has(M))J.push(M)}if(H.length===0&&J.length===0)return null;return d("tengu_deferred_tools_pool_change",{addedCount:H.length,removedCount:J.length,priorAnnouncedCount:z.size,messagesLength:K.length,attachmentCount:Y,dtdCount:$,callSite:_?.callSite??"unknown",querySource:_?.querySource??"unknown",attachmentTypesSeen:[...A].sort().join(",")}),{addedNames:H.map((M)=>M.name).sort(),addedLines:H.map(si6).sort(),removedNames:J.sort()}}async function G9Y(q,K,_,z){let Y=await X9Y(q,K,_,z);if(Y!==null){let O=LDK(z);return{enabled:Y>=O,debugDescription:`${Y} tokens (threshold: ${O}, ${r87()}% of context)`,metrics:{deferredToolTokens:Y,threshold:O}}}let $=await D9Y(q,K,_),A=RDK(z);return{enabled:$>=A,debugDescription:`${$} chars (threshold: ${A}, ${r87()}% of context) (char fallback)`,metrics:{deferredToolDescriptionChars:$,charThreshold:A}}}var i87=10,M9Y=2.5,X9Y,P9Y,Kh6=!1;var RC=y(()=>{F4();o1();k8();Bq();rF();v18();HG();fP();_8();m8();Az();l8();dp8();X9Y=_1(async(q,K,_,z)=>{let Y=q.filter(($)=>yC($));if(Y.length===0)return 0;try{let $=await rK6(Y,K,{activeAgents:_,allAgents:_},z);if($===0)return null;return Math.max(0,$-Fp8)}catch{return null}},(q)=>q.filter((K)=>yC(K)).map((K)=>K.name).join(","));P9Y=["haiku"]});import{createHash as SDK,randomUUID as T9Y}from"crypto";import{mkdir as CDK,readFile as bDK,writeFile as xDK}from"fs/promises";import{dirname as IDK,join as uDK}from"path";function t87(){return!1}async function v9Y(q,K,_){if(!t87())return await _();let z=SDK("sha1").update(g6(q)).digest("hex").slice(0,12),Y=uDK(process.env.CLAUDE_CODE_TEST_FIXTURES_ROOT??Z8(),`fixtures/${K}-${z}.json`);try{return r8(await bDK(Y,{encoding:"utf8"}))}catch(A){if(s1(A)!=="ENOENT")throw A}if((a1.isCI||!1)&&!i6(process.env.VCR_RECORD))throw Error(`Fixture missing: ${Y}. Re-run tests with VCR_RECORD=1, then commit the result.`);let $=await _();return await CDK(IDK(Y),{recursive:!0}),await xDK(Y,g6($,null,2),{encoding:"utf8"}),$}async function lp8(q,K){if(!t87())return await K();let _=bP(q.filter((A)=>{if(A.type!=="user")return!0;if(A.isMeta)return!1;return!0})),z=V9Y(_.map((A)=>A.message.content),s87),Y=uDK(process.env.CLAUDE_CODE_TEST_FIXTURES_ROOT??Z8(),`fixtures/${z.map((A)=>SDK("sha1").update(g6(A)).digest("hex").slice(0,6)).join("-")}.json`);try{let A=r8(await bDK(Y,{encoding:"utf8"}));return A.output.forEach(k9Y),A.output.map((O,w)=>hDK(O,y9Y,w,T9Y()))}catch(A){if(s1(A)!=="ENOENT")throw A}if(a1.isCI&&!i6(process.env.VCR_RECORD))throw Error(`Anthropic API fixture missing: ${Y}. Re-run tests with VCR_RECORD=1, then commit the result. Input messages:
4542${g6(z,null,2)}`);let $=await K();if(a1.isCI&&!i6(process.env.VCR_RECORD))return $;return await CDK(IDK(Y),{recursive:!0}),await xDK(Y,g6({input:z,output:$.map((A,O)=>hDK(A,s87,O))},null,2),{encoding:"utf8"}),$}function k9Y(q){if(q.type==="stream_event")return;let K=q.message.model,_=q.message.usage,z=q86(K,_);QL6(z,_,K)}function V9Y(q,K){return q.map((_)=>{if(typeof _==="string")return K(_);return _.map((z)=>{switch(z.type){case"tool_result":if(typeof z.content==="string")return{...z,content:K(z.content)};if(Array.isArray(z.content))return{...z,content:z.content.map((Y)=>{switch(Y.type){case"text":return{...Y,text:K(Y.text)};case"image":return Y;default:return}})};return z;case"text":return{...z,text:K(z.text)};case"tool_use":return{...z,input:cp8(z.input,K)};case"image":return z;default:return}})})}function cp8(q,K){return NU(q,(_,z)=>{if(Array.isArray(_))return _.map((Y)=>cp8(Y,K));if(IW6(_))return cp8(_,K);return K(_,z,q)})}function N9Y(q,K,_,z){return{uuid:z??`UUID-${_}`,requestId:"REQUEST_ID",timestamp:q.timestamp,message:{...q.message,content:q.message.content.map((Y)=>{switch(Y.type){case"text":return{...Y,text:K(Y.text),citations:Y.citations||[]};case"tool_use":return{...Y,input:cp8(Y.input,K)};default:return Y}}).filter(Boolean)},type:"assistant"}}function hDK(q,K,_,z){if(q.type==="assistant")return N9Y(q,K,_,z);else return q}function s87(q){if(typeof q!=="string")return q;let K=Z8(),_=c1(),z=q.replace(/num_files="\d+"/g,'num_files="[NUM]"').replace(/duration_ms="\d+"/g,'duration_ms="[DURATION]"').replace(/cost_usd="\d+"/g,'cost_usd="[COST]"').replaceAll(_,"[CONFIG_HOME]").replaceAll(K,"[CWD]").replace(/Available commands:.+/,"Available commands: [COMMANDS]");if(process.platform==="win32"){let Y=K.replaceAll("\\","/"),$=_.replaceAll("\\","/"),A=g6(K).slice(1,-1),O=g6(_).slice(1,-1);z=z.replaceAll(A,"[CWD]").replaceAll(O,"[CONFIG_HOME]").replaceAll(Y,"[CWD]").replaceAll($,"[CONFIG_HOME]")}if(z=z.replace(/\[CWD\][^\s"'<>]*/g,(Y)=>Y.replaceAll("\\\\","/").replaceAll("\\","/")).replace(/\[CONFIG_HOME\][^\s"'<>]*/g,(Y)=>Y.replaceAll("\\\\","/").replaceAll("\\","/")),z.includes("Files modified by user:"))return"Files modified by user: [FILES]";return z}function y9Y(q){if(typeof q!=="string")return q;return q.replaceAll("[NUM]","1").replaceAll("[DURATION]","100").replaceAll("[CONFIG_HOME]",c1()).replaceAll("[CWD]",Z8())}async function*e87(q,K){if(!t87())return yield*K();let _=[],z=await lp8(q,async()=>{for await(let Y of K())_.push(Y);return _});if(z.length>0){yield*z;return}yield*_}async function mDK(q,K,_){let z=Z8().replace(/[^a-zA-Z0-9]/g,"-"),Y=s87(g6({messages:q,tools:K})).replaceAll(z,"[CWD_SLUG]").replace(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi,"[UUID]").replace(/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z?/g,"[TIMESTAMP]");return(await v9Y(Y,"token-count",async()=>({tokenCount:await _()}))).tokenCount}var q17=y(()=>{E$8();po6();Tb();wn();I7();y_();m8();y8();i1();l8()});function BDK(q){for(let K of q)if(K.role==="assistant"&&Array.isArray(K.content)){for(let _ of K.content)if(typeof _==="object"&&_!==null&&"type"in _&&(_.type==="thinking"||_.type==="redacted_thinking"))return!0}return!1}function E9Y(q){return q.map((K)=>{if(!Array.isArray(K.content))return K;let _=K.content.map((z)=>{if(z.type==="tool_use"){let Y=z;return{type:"tool_use",id:Y.id,name:Y.name,input:Y.input}}if(z.type==="tool_result"){let Y=z;if(Array.isArray(Y.content)){let $=Y.content.filter((A)=>!Jp(A));if($.length===0)return{...Y,content:[{type:"text",text:"[tool references]"}]};if($.length!==Y.content.length)return{...Y,content:$}}}return z});return{...K,content:_}})}async function gDK(q){if(!q)return 0;return so6([{role:"user",content:q}],[])}async function so6(q,K){return mDK(q,K,async()=>{try{let _=D5(),z=qL(_),Y=BDK(q);if(E7()==="bedrock")return S9Y({model:uf(_),messages:q,tools:K,betas:z,containsThinking:Y});let $=await eE({maxRetries:1,model:_,source:"count_tokens"}),A=E7()==="vertex"?z.filter((w)=>CX1.has(w)):z,O=await $.beta.messages.countTokens({model:uf(_),messages:q.length>0?q:[{role:"user",content:"foo"}],tools:K,...A.length>0&&{betas:A},...Y&&{thinking:{type:"enabled",budget_tokens:_17}}});if(typeof O.input_tokens!=="number")return null;return O.input_tokens}catch(_){return H6(_),null}})}function E3(q,K=4){return Math.round(q.length/K)}function L9Y(q){switch(q){case"json":case"jsonl":case"jsonc":return 2;default:return 4}}function FDK(q,K){return E3(q,L9Y(K))}async function NDK(q,K){let _=BDK(q),z=i6(process.env.CLAUDE_CODE_USE_VERTEX)&&G38(PH())==="global",Y=i6(process.env.CLAUDE_CODE_USE_BEDROCK)&&_,$=i6(process.env.CLAUDE_CODE_USE_VERTEX)&&_,A=z||Y||$?Av():PH(),O=await eE({maxRetries:1,model:A,source:"count_tokens"}),w=E9Y(q),j=w.length>0?w:[{role:"user",content:"count"}],H=qL(A),J=E7()==="vertex"?H.filter((f)=>CX1.has(f)):H,X=(await O.beta.messages.create({model:uf(A),max_tokens:_?pDK:1,messages:j,tools:K.length>0?K:void 0,...J.length>0&&{betas:J},metadata:Pq6(),...np8(),..._&&{thinking:{type:"enabled",budget_tokens:_17}}})).usage,P=X.input_tokens,W=X.cache_creation_input_tokens||0,D=X.cache_read_input_tokens||0;return P+W+D}function Bk6(q){let K=0;for(let _ of q)K+=R9Y(_);return K}function R9Y(q){if((q.type==="assistant"||q.type==="user")&&q.message?.content)return K17(q.message?.content);if(q.type==="attachment"&&q.attachment){let K=z17(q.attachment),_=0;for(let z of K)_+=K17(z.message.content);return _}return 0}function K17(q){if(!q)return 0;if(typeof q==="string")return E3(q);let K=0;for(let _ of q)K+=h9Y(_);return K}function h9Y(q){if(typeof q==="string")return E3(q);if(q.type==="text")return E3(q.text);if(q.type==="image"||q.type==="document")return 2000;if(q.type==="tool_result")return K17(q.content);if(q.type==="tool_use")return E3(q.name+g6(q.input??{}));if(q.type==="thinking")return E3(q.thinking);if(q.type==="redacted_thinking")return E3(q.data);return E3(g6(q))}async function S9Y({model:q,messages:K,tools:_,betas:z,containsThinking:Y}){try{let $=await azq(),A=MJ1(q)?q:await eH8(q);if(!A)return null;let O={anthropic_version:"bedrock-2023-05-31",messages:K.length>0?K:[{role:"user",content:"foo"}],max_tokens:Y?pDK:1,..._.length>0&&{tools:_},...z.length>0&&{anthropic_beta:z},...Y&&{thinking:{type:"enabled",budget_tokens:_17}}},{CountTokensCommand:w}=await Promise.resolve().then(() => O6(tH8(),1)),j={modelId:A,input:{invokeModel:{body:new TextEncoder().encode(g6(O))}}};return(await $.send(new w(j))).inputTokens??null}catch($){return H6($),null}}var _17=1024,pDK=2048;var ON=y(()=>{Az();e66();HG();m8();E8();i1();GF6();aq();l8();RC();ew();PG6();q17()});import{randomUUID as C9Y}from"crypto";import{mkdir as b9Y,readdir as x9Y,readFile as I9Y}from"fs/promises";import{join as UDK}from"path";async function QDK(q){try{let z=(await X8().stat(q)).size;if(z===0)return{success:!1,error:{reason:"empty",message:`PDF file is empty: ${q}`}};if(z>Lk6)return{success:!1,error:{reason:"too_large",message:`PDF file exceeds maximum allowed size of ${m4(Lk6)}.`}};let Y=await I9Y(q);if(!Y.subarray(0,5).toString("ascii").startsWith("%PDF-"))return{success:!1,error:{reason:"corrupted",message:`File is not a valid PDF (missing %PDF- header): ${q}`}};let A=Y.toString("base64");return{success:!0,data:{type:"pdf",file:{filePath:q,base64:A,originalSize:z}}}}catch(K){return{success:!1,error:{reason:"unknown",message:d6(K)}}}}async function rp8(q){let{code:K,stdout:_}=await a8("pdfinfo",[q],{timeout:1e4,useCwd:!1});if(K!==0)return null;let z=/^Pages:\s+(\d+)/m.exec(_);if(!z)return null;let Y=parseInt(z[1],10);return isNaN(Y)?null:Y}async function u9Y(){if(ip8!==void 0)return ip8;let{code:q,stderr:K}=await a8("pdftoppm",["-v"],{timeout:5000,useCwd:!1});return ip8=q===0||K.length>0,ip8}async function Y17(q,K){try{let Y=(await X8().stat(q)).size;if(Y===0)return{success:!1,error:{reason:"empty",message:`PDF file is empty: ${q}`}};if(Y>hx1)return{success:!1,error:{reason:"too_large",message:`PDF file exceeds maximum allowed size for text extraction (${m4(hx1)}).`}};if(!await u9Y())return{success:!1,error:{reason:"unavailable",message:"pdftoppm is not installed. Install poppler-utils (e.g. `brew install poppler` or `apt-get install poppler-utils`) to enable PDF page rendering."}};let A=C9Y(),O=UDK(Bq6(),`pdf-${A}`);await b9Y(O,{recursive:!0});let w=UDK(O,"page"),j=["-jpeg","-r","100"];if(K?.firstPage)j.push("-f",String(K.firstPage));if(K?.lastPage&&K.lastPage!==1/0)j.push("-l",String(K.lastPage));j.push(q,w);let{code:H,stderr:J}=await a8("pdftoppm",j,{timeout:120000,useCwd:!1});if(H!==0){if(/password/i.test(J))return{success:!1,error:{reason:"password_protected",message:"PDF is password-protected. Please provide an unprotected version."}};if(/damaged|corrupt|invalid/i.test(J))return{success:!1,error:{reason:"corrupted",message:"PDF file is corrupted or invalid."}};return{success:!1,error:{reason:"unknown",message:`pdftoppm failed: ${J}`}}}let X=(await x9Y(O)).filter((D)=>D.endsWith(".jpg")).sort();if(X.length===0)return{success:!1,error:{reason:"corrupted",message:"pdftoppm produced no output pages. The PDF may be invalid."}};let W=X.length;return{success:!0,data:{type:"parts",file:{filePath:q,originalSize:Y,outputDir:O,count:W}}}}catch(_){return{success:!1,error:{reason:"unknown",message:d6(_)}}}}var ip8;var $17=y(()=>{y8();XK();U7();e7();IG()});function p9Y(){let q=process.env.CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS;if(q){let K=parseInt(q,10);if(!isNaN(K)&&K>0)return K}return}var m9Y=25000,GH6;var A17=y(()=>{F4();o1();bK();GH6=_1(()=>{let q=g8("tengu_amber_wren",{}),K=typeof q?.maxSizeBytes==="number"&&Number.isFinite(q.maxSizeBytes)&&q.maxSizeBytes>0?q.maxSizeBytes:G41,z=p9Y()??(typeof q?.maxTokens==="number"&&Number.isFinite(q.maxTokens)&&q.maxTokens>0?q.maxTokens:m9Y),Y=typeof q?.includeMaxSizeInPrompt==="boolean"?q.includeMaxSizeInPrompt:void 0,$=typeof q?.targetedRangeNudge==="boolean"?q.targetedRangeNudge:void 0;return{maxSizeBytes:K,maxTokens:z,includeMaxSizeInPrompt:Y,targetedRangeNudge:$}})});function op8(q){let K=`${vL6()}/`,_=".output";if(q.startsWith(K)&&q.endsWith(".output")){let z=q.slice(K.length,-7);if(z.length>0&&z.length<=20&&/^[a-zA-Z0-9_-]+$/.test(z))return z}return null}function dDK({file_path:q,offset:K,limit:_,pages:z},{verbose:Y}){if(!q)return null;if(op8(q))return"";let $=Y?q:_3(q);if(z)return EK.createElement(EK.Fragment,null,EK.createElement(x0,{filePath:q},$),` · pages ${z}`);if(Y&&(K||_)){let A=K??1,O=_?`lines ${A}-${A+_-1}`:`from line ${A}`;return EK.createElement(EK.Fragment,null,EK.createElement(x0,{filePath:q},$),` · ${O}`)}return EK.createElement(x0,{filePath:q},$)}function cDK({file_path:q}){let K=q?op8(q):null;if(!K)return null;return EK.createElement(k,{dimColor:!0}," ",K)}function lDK(q){switch(q.type){case"image":{let{originalSize:K}=q.file,_=m4(K);return EK.createElement(s8,{height:1},EK.createElement(k,null,"Read image (",_,")"))}case"notebook":{let{cells:K}=q.file;if(!K||K.length<1)return EK.createElement(k,{color:"error"},"No cells found in notebook");return EK.createElement(s8,{height:1},EK.createElement(k,null,"Read ",EK.createElement(k,{bold:!0},K.length)," cells"))}case"pdf":{let{originalSize:K}=q.file,_=m4(K);return EK.createElement(s8,{height:1},EK.createElement(k,null,"Read PDF (",_,")"))}case"parts":return EK.createElement(s8,{height:1},EK.createElement(k,null,"Read ",EK.createElement(k,{bold:!0},q.file.count)," ",q.file.count===1?"page":"pages"," (",m4(q.file.originalSize),")"));case"text":{let{numLines:K}=q.file;return EK.createElement(s8,{height:1},EK.createElement(k,null,"Read ",EK.createElement(k,{bold:!0},K)," ",K===1?"line":"lines"))}case"file_unchanged":return EK.createElement(s8,{height:1},EK.createElement(k,{dimColor:!0},"Unchanged since last read"))}}function nDK(q,{verbose:K}){if(!K&&typeof q==="string"){if(q.includes(uZ))return EK.createElement(s8,null,EK.createElement(k,{color:"error"},"File not found"));if(o4(q,"tool_use_error"))return EK.createElement(s8,null,EK.createElement(k,{color:"error"},"Error reading file"))}return EK.createElement(Y2,{result:q,verbose:K})}function iDK(q){if(q?.file_path?.startsWith(hA()))return"Reading Plan";if(q?.file_path&&op8(q.file_path))return"Read agent output";return"Read"}function O17(q){if(!q?.file_path)return null;let K=op8(q.file_path);if(K)return K;return _3(q.file_path)}var EK;var rDK=y(()=>{i1();bN();YK6();gK();s6();bK();U7();SJ();Ij();EK=O6(D6(),1)});import{readdir as B9Y,readFile as g9Y}from"fs/promises";import*as TH6 from"path";import{posix as F9Y,win32 as U9Y}from"path";function d9Y(q){if(Q9Y.has(q))return!0;if(q.startsWith("/proc/")&&(q.endsWith("/fd/0")||q.endsWith("/fd/1")||q.endsWith("/fd/2")))return!0;return!1}function l9Y(q){let K=TH6.basename(q),_=/^(.+)([ \u202F])(AM|PM)(\.png)$/,z=K.match(_);if(!z)return;let Y=z[2],$=Y===" "?c9Y:" ";return q.replace(`${Y}${z[3]}${z[4]}`,`${$}${z[3]}${z[4]}`)}function i9Y(q){let K=c1();if(!q.startsWith(K))return null;let _=q.split(U9Y.sep).join(F9Y.sep);if(_.includes("/session-memory/")&&_.endsWith(".md"))return"session_memory";if(_.includes("/projects/")&&_.endsWith(".jsonl"))return"session_transcript";return null}function a9Y(){return Goq}function s9Y(q){return Q$8(q)}function q_Y(){let q=bY(D5());return!e9Y.has(q)}function K_Y(q){let K=tDK.get(q);if(K===void 0)return"";return Oj4(K)}async function oDK(q,K,_){let z=_??GH6().maxTokens,Y=FDK(q,K);if(!Y||Y<=z/4)return;let A=await gDK(q)??Y;if(A>z)throw new sp8(A,z)}function ap8(q,K,_,z){return{type:"image",file:{base64:q.toString("base64"),type:`image/${K}`,originalSize:_,dimensions:z}}}async function aDK(q,K,_,z,Y,$,A,O,w,j,H,J){if(z==="ipynb"){let V=await ZAK(_),E=g6(V),S=Buffer.byteLength(E);if(S>O)throw Error(`Notebook content (${m4(S)}) exceeds maximum allowed size (${m4(O)}). Use ${_q} with jq to read specific portions:
4543 cat "${q}" | jq '.cells[:20]' # First 20 cells
4544 cat "${q}" | jq '.cells[100:120]' # Cells 100-120

Callers 1

so6Function · 0.85

Calls 9

azqFunction · 0.85
MJ1Function · 0.85
O6Function · 0.85
g6Function · 0.85
H6Function · 0.85
thenMethod · 0.45
resolveMethod · 0.45
encodeMethod · 0.45
sendMethod · 0.45

Tested by

no test coverage detected