| 4452 | REMINDER: Do NOT call any tools. Respond with plain text only — `+"an <analysis> block followed by a <summary> block. Tool calls will be rejected and you will fail the task."});function C3Y(q){return q.map((K)=>{if(K.type!=="user")return K;let _=K.message.content;if(!Array.isArray(_))return K;let z=!1,Y=_.flatMap(($)=>{if($.type==="image")return z=!0,[{type:"text",text:"[image]"}];if($.type==="document")return z=!0,[{type:"text",text:"[document]"}];if($.type==="tool_result"&&Array.isArray($.content)){let A=!1,O=$.content.map((w)=>{if(w.type==="image")return A=!0,{type:"text",text:"[image]"};if(w.type==="document")return A=!0,{type:"text",text:"[document]"};return w});if(A)return z=!0,[{...$,content:O}]}return[$]});if(!z)return K;return{...K,message:{...K.message,content:Y}}})}function b3Y(q){return q}function KDK(q,K){let _=q[0]?.type==="user"&&q[0].isMeta&&q[0].message.content===sWK?q.slice(1):q,z=iWK(_);if(z.length<2)return null;let Y=HDK(K),$;if(Y!==void 0){let O=0;$=0;for(let w of z)if(O+=Bk6(w),$++,O>=Y)break}else $=Math.max(1,Math.floor(z.length*0.2));if($=Math.min($,z.length-1),$<1)return null;let A=z.slice($).flat();if(A[0]?.type==="assistant")return[U8({content:sWK,isMeta:!0}),...A];return A}function lo(q){return[q.boundaryMarker,...q.summaryMessages,...q.messagesToKeep??[],...q.attachments,...q.hookResults]}function b87(q,K,_){let z=_??[];if(z.length===0)return q;return{...q,compactMetadata:{...q.compactMetadata,preservedSegment:{headUuid:z[0].uuid,anchorUuid:K,tailUuid:z.at(-1).uuid}}}}function x87(q,K){if(!K)return q||void 0;if(!q)return K;return`${q} |
| 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(` |