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

Function jDK

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

Source from the content-addressed store, hash-verified

4454${K}`}async function LE6(q,K,_,z,Y,$=!1,A){try{if(q.length===0)throw Error(eR6);let O=yG(q),w=K.getAppState();Lp8(w.toolPermissionContext,"summary"),K.onCompactProgress?.({type:"hooks_start",hookType:"pre_compact"}),K.setSDKStatus?.("compacting");let j=await qh6({trigger:$?"auto":"manual",customInstructions:Y??null},K.abortController.signal);Y=x87(Y,j.newCustomInstructions);let H=j.userDisplayMessage;K.setStreamMode?.("requesting"),K.setResponseLength?.(()=>0),K.onCompactProgress?.({type:"compact_start"});let J=g8("tengu_compact_cache_prefix",!0),M=aWK(Y),X=U8({content:M}),P=q,W=_,D,f,G=0;for(;;){if(D=await $DK({messages:P,summaryRequest:X,appState:w,context:K,preCompactTokenCount:O,cacheSafeParams:W}),f=D18(D),!f?.startsWith(Um))break;G++;let q6=G<=qDK?KDK(P,D):null;if(!q6)throw d("tengu_compact_failed",{reason:"prompt_too_long",preCompactTokenCount:O,promptCacheSharingEnabled:J,ptlAttempts:G}),Error(_DK);d("tengu_compact_ptl_retry",{attempt:G,droppedMessages:P.length-q6.length,remainingMessages:q6.length}),P=q6,W={...W,forkContextMessages:q6}}if(!f)throw N(`Compact failed: no summary text in response. Response: ${g6(D)}`,{level:"error"}),d("tengu_compact_failed",{reason:"no_summary",preCompactTokenCount:O,promptCacheSharingEnabled:J}),Error("Failed to generate conversation summary - response did not contain valid text content");else if(so(f))throw d("tengu_compact_failed",{reason:"api_error",preCompactTokenCount:O,promptCacheSharingEnabled:J}),Error(f);let Z=qI1(K.readFileState);K.readFileState.clear(),K.loadedNestedMemoryPaths?.clear();let[T,v]=await Promise.all([ADK(Z,K,eWK),jDK(K)]),V=[...T,...v],E=hp8(K.agentId);if(E)V.push(E);let S=await wDK(K);if(S)V.push(S);let R=ODK(K.agentId);if(R)V.push(R);for(let q6 of Sp8(K.options.tools,K.options.mainLoopModel,[],{callSite:"compact_full"}))V.push(V4(q6));for(let q6 of Cp8(K,[]))V.push(V4(q6));for(let q6 of bp8(K.options.mcpClients,K.options.tools,K.options.mainLoopModel,[]))V.push(V4(q6));K.onCompactProgress?.({type:"hooks_start",hookType:"session_start"});let x=await xD("compact",{model:K.options.mainLoopModel}),I=f18($?"auto":"manual",O??0,q.at(-1)?.uuid),B=iQ(q);if(B.size>0)I.compactMetadata.preCompactDiscoveredTools=[...B].sort();let p=Y$(),C=[U8({content:P18(f,z,p),isCompactSummary:!0,isVisibleInTranscriptOnly:!0})],g=NL([D]),F=Bk6([I,...C,...V,...x]),U=qU(D),c=A?.querySource??K.options.querySource??"unknown";d("tengu_compact",{preCompactTokenCount:O,postCompactTokenCount:g,truePostCompactTokenCount:F,autoCompactThreshold:A?.autoCompactThreshold??-1,willRetriggerNextTurn:A!==void 0&&F>=A.autoCompactThreshold,isAutoCompact:$,querySource:c,queryChainId:K.queryTracking?.chainId??"",queryDepth:K.queryTracking?.depth??-1,isRecompactionInChain:A?.isRecompactionInChain??!1,turnsSincePreviousCompact:A?.turnsSincePreviousCompact??-1,previousCompactTurnId:A?.previousCompactTurnId??"",compactionInputTokens:U?.input_tokens,compactionOutputTokens:U?.output_tokens,compactionCacheReadTokens:U?.cache_read_input_tokens??0,compactionCacheCreationTokens:U?.cache_creation_input_tokens??0,compactionTotalTokens:U?U.input_tokens+(U.cache_creation_input_tokens??0)+(U.cache_read_input_tokens??0)+U.output_tokens:0,promptCacheSharingEnabled:J,...(()=>{try{return MJ4(JJ4(q))}catch(q6){return H6(q6),{}}})()}),bt(),xp8(),K.onCompactProgress?.({type:"hooks_start",hookType:"post_compact"});let K6=await Ip8({trigger:$?"auto":"manual",compactSummary:f},K.abortController.signal),t=[H,K6.userDisplayMessage].filter(Boolean).join(`
4455`);return{boundaryMarker:I,summaryMessages:C,attachments:V,hookResults:x,userDisplayMessage:t||void 0,preCompactTokenCount:O,postCompactTokenCount:g,truePostCompactTokenCount:F,compactionUsage:U}}catch(O){if(!$)YDK(O,K);throw O}finally{K.setStreamMode?.("requesting"),K.setResponseLength?.(()=>0),K.onCompactProgress?.({type:"compact_end"}),K.setSDKStatus?.(null)}}async function zDK(q,K,_,z,Y,$="from"){try{let A=$==="up_to"?q.slice(0,K):q.slice(K),O=$==="up_to"?q.slice(K).filter((t)=>t.type!=="progress"&&!bD(t)&&!(t.type==="user"&&t.isCompactSummary)):q.slice(0,K).filter((t)=>t.type!=="progress");if(A.length===0)throw Error($==="up_to"?"Nothing to summarize before the selected message.":"Nothing to summarize after the selected message.");let w=yG(q);_.onCompactProgress?.({type:"hooks_start",hookType:"pre_compact"}),_.setSDKStatus?.("compacting");let j=await qh6({trigger:"manual",customInstructions:null},_.abortController.signal),H;if(j.newCustomInstructions&&Y)H=`${j.newCustomInstructions}
4456
4457User context: ${Y}`;else if(j.newCustomInstructions)H=j.newCustomInstructions;else if(Y)H=`User context: ${Y}`;_.setStreamMode?.("requesting"),_.setResponseLength?.(()=>0),_.onCompactProgress?.({type:"compact_start"});let J=oWK(H,$),M=U8({content:J}),X={preCompactTokenCount:w,direction:$,messagesSummarized:A.length},P=$==="up_to"?A:q,W=$==="up_to"?{...z,forkContextMessages:A}:z,D,f,G=0;for(;;){if(D=await $DK({messages:P,summaryRequest:M,appState:_.getAppState(),context:_,preCompactTokenCount:w,cacheSafeParams:W}),f=D18(D),!f?.startsWith(Um))break;G++;let t=G<=qDK?KDK(P,D):null;if(!t)throw d("tengu_partial_compact_failed",{reason:"prompt_too_long",...X,ptlAttempts:G}),Error(_DK);d("tengu_compact_ptl_retry",{attempt:G,droppedMessages:P.length-t.length,remainingMessages:t.length,path:"partial"}),P=t,W={...W,forkContextMessages:t}}if(!f)throw d("tengu_partial_compact_failed",{reason:"no_summary",...X}),Error("Failed to generate conversation summary - response did not contain valid text content");else if(so(f))throw d("tengu_partial_compact_failed",{reason:"api_error",...X}),Error(f);let Z=qI1(_.readFileState);_.readFileState.clear(),_.loadedNestedMemoryPaths?.clear();let[T,v]=await Promise.all([ADK(Z,_,eWK,O),jDK(_)]),V=[...T,...v],E=hp8(_.agentId);if(E)V.push(E);let S=await wDK(_);if(S)V.push(S);let R=ODK(_.agentId);if(R)V.push(R);for(let t of Sp8(_.options.tools,_.options.mainLoopModel,O,{callSite:"compact_partial"}))V.push(V4(t));for(let t of Cp8(_,O))V.push(V4(t));for(let t of bp8(_.options.mcpClients,_.options.tools,_.options.mainLoopModel,O))V.push(V4(t));_.onCompactProgress?.({type:"hooks_start",hookType:"session_start"});let x=await xD("compact",{model:_.options.mainLoopModel}),I=NL([D]),B=qU(D);d("tengu_partial_compact",{preCompactTokenCount:w,postCompactTokenCount:I,messagesKept:O.length,messagesSummarized:A.length,direction:$,hasUserFeedback:!!Y,trigger:"message_selector",compactionInputTokens:B?.input_tokens,compactionOutputTokens:B?.output_tokens,compactionCacheReadTokens:B?.cache_read_input_tokens??0,compactionCacheCreationTokens:B?.cache_creation_input_tokens??0});let p=$==="up_to"?q.slice(0,K).findLast((t)=>t.type!=="progress")?.uuid:O.at(-1)?.uuid,C=f18("manual",w??0,p,Y,A.length),g=iQ(q);if(g.size>0)C.compactMetadata.preCompactDiscoveredTools=[...g].sort();let F=Y$(),U=[U8({content:P18(f,!1,F),isCompactSummary:!0,...O.length>0?{summarizeMetadata:{messagesSummarized:A.length,userContext:Y,direction:$}}:{isVisibleInTranscriptOnly:!0}})];bt(),xp8(),_.onCompactProgress?.({type:"hooks_start",hookType:"post_compact"});let c=await Ip8({trigger:"manual",compactSummary:f},_.abortController.signal),K6=$==="up_to"?U.at(-1)?.uuid??C.uuid:C.uuid;return{boundaryMarker:b87(C,K6,O),summaryMessages:U,messagesToKeep:O,attachments:V,hookResults:x,userDisplayMessage:c.userDisplayMessage,preCompactTokenCount:w,postCompactTokenCount:I,compactionUsage:B}}catch(A){throw YDK(A,_),A}finally{_.setStreamMode?.("requesting"),_.setResponseLength?.(()=>0),_.onCompactProgress?.({type:"compact_end"}),_.setSDKStatus?.(null)}}function YDK(q,K){if(!nt(q,co)&&!nt(q,eR6))K.addNotification?.({key:"error-compacting-conversation",text:"Error compacting conversation",priority:"immediate",color:"error"})}function x3Y(){return async()=>({behavior:"deny",message:"Tool use is not allowed during compaction",decisionReason:{type:"other",reason:"compaction agent should only produce text summary"}})}async function $DK({messages:q,summaryRequest:K,appState:_,context:z,preCompactTokenCount:Y,cacheSafeParams:$}){let A=g8("tengu_compact_cache_prefix",!0),O=QPK()?setInterval((w)=>{UPK(),w?.("compacting")},30000,z.setSDKStatus):void 0;try{if(A)try{let H=await hG({promptMessages:[K],cacheSafeParams:$,canUseTool:x3Y(),querySource:"compact",forkLabel:"compact",maxTurns:1,skipCacheWrite:!0,overrides:{abortController:z.abortController}}),J=uP(H.messages),M=J?D18(J):null;if(J&&M&&!J.isApiErrorMessage){if(!M.startsWith(Um))d("tengu_compact_cache_sharing_success",{preCompactTokenCount:Y,outputTokens:H.totalUsage.output_tokens,cacheReadInputTokens:H.totalUsage.cache_read_input_tokens,cacheCreationInputTokens:H.totalUsage.cache_creation_input_tokens,cacheHitRate:H.totalUsage.cache_read_input_tokens>0?H.totalUsage.cache_read_input_tokens/(H.totalUsage.cache_read_input_tokens+H.totalUsage.cache_creation_input_tokens+H.totalUsage.input_tokens):0});return J}N(`Compact cache sharing: no text in response, falling back. Response: ${g6(J)}`,{level:"warn"}),d("tengu_compact_cache_sharing_fallback",{reason:"no_text_response",preCompactTokenCount:Y})}catch(H){H6(H),d("tengu_compact_cache_sharing_fallback",{reason:"error",preCompactTokenCount:Y})}let w=g8("tengu_compact_streaming_retry",!1),j=w?S3Y:1;for(let H=1;H<=j;H++){let J=!1,M;z.setResponseLength?.(()=>0);let P=await W18(z.options.mainLoopModel,z.options.tools,async()=>_.toolPermissionContext,z.options.agentDefinitions.activeAgents,"compact")?u2([i_,Tr6,...z.options.tools.filter((G)=>G.isMcp)],"name"):[i_],D=fR6({messages:bP(C3Y(b3Y([...i2(q),K])),z.options.tools),systemPrompt:iK(["You are a helpful AI assistant tasked with summarizing conversations."]),thinkingConfig:{type:"disabled"},tools:P,signal:z.abortController.signal,options:{async getToolPermissionContext(){return z.getAppState().toolPermissionContext},model:z.options.mainLoopModel,toolChoice:void 0,isNonInteractiveSession:z.options.isNonInteractiveSession,hasAppendSystemPrompt:!!z.options.appendSystemPrompt,maxOutputTokensOverride:Math.min(iSq,Z18(z.options.mainLoopModel)),querySource:"compact",agents:z.options.agentDefinitions.activeAgents,mcpTools:[],effortValue:_.effortValue}})[Symbol.asyncIterator](),f=await D.next();while(!f.done){let G=f.value;if(!J&&G.type==="stream_event"&&G.event.type==="content_block_start"&&G.event.content_block.type==="text")J=!0,z.setStreamMode?.("responding");if(G.type==="stream_event"&&G.event.type==="content_block_delta"&&G.event.delta.type==="text_delta"){let Z=G.event.delta.text.length;z.setResponseLength?.((T)=>T+Z)}if(G.type==="assistant")M=G;f=await D.next()}if(M)return M;if(H<j){d("tengu_compact_streaming_retry",{attempt:H,preCompactTokenCount:Y,hasStartedStreaming:J}),await R7(hC(H),z.abortController.signal,{abortError:()=>new V_});continue}throw N(`Compact streaming failed after ${H} attempts. hasStartedStreaming=${J}`,{level:"error"}),d("tengu_compact_failed",{reason:"no_streaming_response",preCompactTokenCount:Y,hasStartedStreaming:J,retryEnabled:w,attempts:H,promptCacheSharingEnabled:A}),Error(tR6)}throw Error(tR6)}finally{clearInterval(O)}}async function ADK(q,K,_,z=[]){let Y=I3Y(z),$=Object.entries(q).map(([w,j])=>({filename:w,...j})).filter((w)=>!m3Y(w.filename,K.agentId)&&!Y.has(lq(w.filename))).sort((w,j)=>j.timestamp-w.timestamp).slice(0,_),A=await Promise.all($.map(async(w)=>{let j=await I87(w.filename,{...K,fileReadingLimits:{maxTokens:L3Y}},"tengu_post_compact_file_restore_success","tengu_post_compact_file_restore_error","compact");return j?V4(j):null})),O=0;return A.filter((w)=>{if(w===null)return!1;let j=E3(g6(w));if(O+j<=E3Y)return O+=j,!0;return!1})}function hp8(q){let K=mX(q);if(!K)return null;let _=nP(q);return V4({type:"plan_file_reference",planFilePath:_,planContent:K})}function ODK(q){let K=X38(q);if(K.size===0)return null;let _=0,z=Array.from(K.values()).sort((Y,$)=>$.invokedAt-Y.invokedAt).map((Y)=>({name:Y.skillName,path:Y.skillPath,content:u3Y(Y.content,R3Y)})).filter((Y)=>{let $=E3(Y.content);if(_+$>h3Y)return!1;return _+=$,!0});if(z.length===0)return null;return V4({type:"invoked_skills",skills:z})}async function wDK(q){if(q.getAppState().toolPermissionContext.mode!=="plan")return null;let _=nP(q.agentId),z=mX(q.agentId)!==null;return V4({type:"plan_mode",reminderType:"full",isSubAgent:!!q.agentId,planFilePath:_,planExists:z})}async function jDK(q){let K=q.getAppState();return Object.values(K.tasks).filter((z)=>z.type==="local_agent").flatMap((z)=>{if(z.retrieved||z.status==="pending"||z.agentId===q.agentId)return[];return[V4({type:"task_status",taskId:z.agentId,taskType:"local_agent",description:z.description,status:z.status,deltaSummary:z.status==="running"?z.progress?.summary??null:z.error??null,outputFilePath:sz(z.agentId)})]})}function I3Y(q){let K=new Set;for(let z of q){if(z.type!=="user"||!Array.isArray(z.message.content))continue;for(let Y of z.message.content)if(Y.type==="tool_result"&&typeof Y.content==="string"&&Y.content.startsWith(_T6))K.add(Y.tool_use_id)}let _=new Set;for(let z of q){if(z.type!=="assistant"||!Array.isArray(z.message.content))continue;for(let Y of z.message.content){if(Y.type!=="tool_use"||Y.name!==Cq||K.has(Y.id))continue;let $=Y.input;if($&&typeof $==="object"&&"file_path"in $&&typeof $.file_path==="string")_.add(lq($.file_path))}}return _}function u3Y(q,K){if(E3(q)<=K)return q;let _=K*4-tWK.length;return q.slice(0,_)+tWK}function m3Y(q,K){let _=lq(q);try{let z=lq(nP(K));if(_===z)return!0}catch{}try{if(new Set(cWK.map((Y)=>lq(l$6(Y)))).has(_))return!0}catch{}return!1}var eWK=5,E3Y=50000,L3Y=5000,R3Y=5000,h3Y=25000,S3Y=2,eR6="Not enough messages to compact.",qDK=3,sWK="[earlier conversation truncated for compaction retry]",_DK="Conversation too long. Press esc twice to go up a few messages and try again.",co="API Error: Request was aborted.",tR6="Compaction interrupted · This may be due to network issues — please try again.",tWK=`
4458
4459[... skill content truncated for compaction; use Read on the skill path if you need the full text]`;var no=y(()=>{Fu();LZ();v8();v8();$p();IY();Uk8();lP();V1();fP();XJ4();_8();y8();NG();nv();y$();E8();lWK();i1();dz();SJ();rR6();JK6();_K();l8();Ij();EG();RC();o1();k8();ew();SC();Q76();Wr();S87();ON();C87()});function Hp(q){let K=q===void 0||q.startsWith("repl_main_thread")||q==="sdk";if(Xr(),K)bO.cache.clear?.(),Xr6("compact");La(),z4K(),zp8(),Gg4(),u87()}var G18=y(()=>{kR6();jN();DN();_K6();wM();_K();Ts6();EC()});import{readFile as WDK}from"fs/promises";import{join as DDK}from"path";function XDK(){return`IMPORTANT: This message and these instructions are NOT part of the actual user conversation. Do NOT include any references to "note-taking", "session notes extraction", or these update instructions in the notes content.

Callers 2

LE6Function · 0.85
zDKFunction · 0.85

Calls 4

V4Function · 0.85
szFunction · 0.85
filterMethod · 0.80
valuesMethod · 0.45

Tested by

no test coverage detected