| 4538 | `;var p87=y(()=>{ON();m8();y8();E8()});function Q3Y(q){g87={...g87,...q}}function d3Y(){return{...g87}}async function c3Y(){if(TDK)return;TDK=!0;let q=await gS("tengu_sm_compact_config",{}),K={minTokens:q.minTokens&&q.minTokens>0?q.minTokens:mp8.minTokens,minTextBlockMessages:q.minTextBlockMessages&&q.minTextBlockMessages>0?q.minTextBlockMessages:mp8.minTextBlockMessages,maxTokens:q.maxTokens&&q.maxTokens>0?q.maxTokens:mp8.maxTokens};Q3Y(K)}function vDK(q){if(q.type==="assistant")return q.message.content.some((_)=>_.type==="text");if(q.type==="user"){let K=q.message.content;if(typeof K==="string")return K.length>0;if(Array.isArray(K))return K.some((_)=>_.type==="text")}return!1}function l3Y(q){if(q.type!=="user")return[];let K=q.message.content;if(!Array.isArray(K))return[];let _=[];for(let z of K)if(z.type==="tool_result")_.push(z.tool_use_id);return _}function n3Y(q,K){if(q.type!=="assistant")return!1;let _=q.message.content;if(!Array.isArray(_))return!1;return _.some((z)=>z.type==="tool_use"&&K.has(z.id))}function B87(q,K){if(K<=0||K>=q.length)return K;let _=K,z=[];for(let $=K;$<q.length;$++)z.push(...l3Y(q[$]));if(z.length>0){let $=new Set;for(let O=_;O<q.length;O++){let w=q[O];if(w.type==="assistant"&&Array.isArray(w.message.content)){for(let j of w.message.content)if(j.type==="tool_use")$.add(j.id)}}let A=new Set(z.filter((O)=>!$.has(O)));for(let O=_-1;O>=0&&A.size>0;O--){let w=q[O];if(n3Y(w,A)){if(_=O,w.type==="assistant"&&Array.isArray(w.message.content)){for(let j of w.message.content)if(j.type==="tool_use"&&A.has(j.id))A.delete(j.id)}}}}let Y=new Set;for(let $=_;$<q.length;$++){let A=q[$];if(A.type==="assistant"&&A.message.id)Y.add(A.message.id)}for(let $=_-1;$>=0;$--){let A=q[$];if(A.type==="assistant"&&A.message.id&&Y.has(A.message.id))_=$}return _}function i3Y(q,K){if(q.length===0)return 0;let _=d3Y(),z=K>=0?K+1:q.length,Y=0,$=0;for(let w=z;w<q.length;w++){let j=q[w];if(Y+=Ik6([j]),vDK(j))$++}if(Y>=_.maxTokens)return B87(q,z);if(Y>=_.minTokens&&$>=_.minTextBlockMessages)return B87(q,z);let A=q.findLastIndex((w)=>bD(w)),O=A===-1?0:A+1;for(let w=z-1;w>=O;w--){let j=q[w],H=Ik6([j]);if(Y+=H,vDK(j))$++;if(z=w,Y>=_.maxTokens)break;if(Y>=_.minTokens&&$>=_.minTextBlockMessages)break}return B87(q,z)}function pp8(){if(i6(process.env.ENABLE_CLAUDE_CODE_SM_COMPACT))return!0;if(i6(process.env.DISABLE_CLAUDE_CODE_SM_COMPACT))return!1;let q=g8("tengu_session_memory",!1),K=g8("tengu_sm_compact",!1);return q&&K}function r3Y(q,K,_,z,Y,$){let A=NL(q),O=f18("auto",A??0,q[q.length-1]?.uuid),w=iQ(q);if(w.size>0)O.compactMetadata.preCompactDiscoveredTools=[...w].sort();let{truncatedContent:j,wasTruncated:H}=GDK(K),J=P18(j,!0,Y,!0);if(H){let W=Fk6();J+=` |
| 4540 | Some 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(` |