@visorcraft/idlehands 2.0.0 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/context-budget.js +103 -0
- package/dist/agent/context-budget.js.map +1 -0
- package/dist/agent/tool-loop-detection.js +91 -20
- package/dist/agent/tool-loop-detection.js.map +1 -1
- package/dist/agent.js +55 -11
- package/dist/agent.js.map +1 -1
- package/dist/anton/controller.js +512 -186
- package/dist/anton/controller.js.map +1 -1
- package/dist/anton/preflight.js +52 -24
- package/dist/anton/preflight.js.map +1 -1
- package/dist/anton/session.js +6 -0
- package/dist/anton/session.js.map +1 -1
- package/dist/bot/anton-run.js +16 -5
- package/dist/bot/anton-run.js.map +1 -1
- package/dist/bot/discord-commands.js +25 -0
- package/dist/bot/discord-commands.js.map +1 -1
- package/dist/bot/discord.js +28 -0
- package/dist/bot/discord.js.map +1 -1
- package/dist/bot/format.js +0 -5
- package/dist/bot/format.js.map +1 -1
- package/dist/bot/telegram-commands.js +21 -0
- package/dist/bot/telegram-commands.js.map +1 -1
- package/dist/bot/telegram.js +3 -1
- package/dist/bot/telegram.js.map +1 -1
- package/dist/bot/upgrade-command.js +398 -0
- package/dist/bot/upgrade-command.js.map +1 -0
- package/dist/bot/ux/shared-formatter.js +43 -0
- package/dist/bot/ux/shared-formatter.js.map +1 -0
- package/dist/cli/commands/upgrade.js +27 -0
- package/dist/cli/commands/upgrade.js.map +1 -0
- package/dist/history.js +418 -0
- package/dist/history.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/tui/command-handler.js +2 -0
- package/dist/tui/command-handler.js.map +1 -1
- package/dist/vault.js +133 -0
- package/dist/vault.js.map +1 -1
- package/package.json +1 -1
package/dist/history.js
CHANGED
|
@@ -171,4 +171,422 @@ function findGroupEnd(msgs, startIdx) {
|
|
|
171
171
|
}
|
|
172
172
|
return i;
|
|
173
173
|
}
|
|
174
|
+
// ============================================================================
|
|
175
|
+
// ENHANCED COMPACTION - Importance Scoring, Compression, Semantic Chunking
|
|
176
|
+
// ============================================================================
|
|
177
|
+
/**
|
|
178
|
+
* Get text content from a message for analysis.
|
|
179
|
+
*/
|
|
180
|
+
function getMessageText(msg) {
|
|
181
|
+
const content = msg.content;
|
|
182
|
+
if (!content)
|
|
183
|
+
return '';
|
|
184
|
+
if (typeof content === 'string')
|
|
185
|
+
return content;
|
|
186
|
+
if (Array.isArray(content)) {
|
|
187
|
+
return content
|
|
188
|
+
.filter((p) => p.type === 'text')
|
|
189
|
+
.map((p) => p.text)
|
|
190
|
+
.join('\n');
|
|
191
|
+
}
|
|
192
|
+
return '';
|
|
193
|
+
}
|
|
194
|
+
// Pre-compiled regex patterns for importance scoring (avoid re-creation)
|
|
195
|
+
const IMPORTANT_PATTERNS = /\b(important|critical|must|decision|agreed|confirmed|remember|note)\b/i;
|
|
196
|
+
const ERROR_PATTERNS = /\b(error|bug|fix|issue|problem|failed|exception|crash)\b/i;
|
|
197
|
+
const PLANNING_PATTERNS = /\b(todo|next|plan|will|should|need to|going to)\b/i;
|
|
198
|
+
const TRIVIAL_PATTERNS = /^(ok|done|success|completed|yes|no|sure|got it)\.?$/i;
|
|
199
|
+
const BULK_TOOL_PATTERNS = /read_file|list_directory|glob|search_files/i;
|
|
200
|
+
/**
|
|
201
|
+
* Score a message by importance (higher = more important to keep).
|
|
202
|
+
* Zero LLM cost - pure heuristics.
|
|
203
|
+
*/
|
|
204
|
+
export function scoreMessageImportance(msg, idx, total, toolName) {
|
|
205
|
+
let score = 0;
|
|
206
|
+
// Recency bonus: newer messages score higher (0-50 points)
|
|
207
|
+
score += Math.floor((idx / Math.max(1, total - 1)) * 50);
|
|
208
|
+
const text = getMessageText(msg);
|
|
209
|
+
const len = text.length;
|
|
210
|
+
// Role-based scoring
|
|
211
|
+
switch (msg.role) {
|
|
212
|
+
case 'user':
|
|
213
|
+
score += 30; // User messages are high-value context
|
|
214
|
+
break;
|
|
215
|
+
case 'assistant':
|
|
216
|
+
if (!msg.tool_calls?.length) {
|
|
217
|
+
score += 25; // Substantive assistant responses
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
score += 10; // Tool-calling assistant messages
|
|
221
|
+
}
|
|
222
|
+
break;
|
|
223
|
+
case 'tool':
|
|
224
|
+
score -= 5; // Tool results are often bulk data
|
|
225
|
+
break;
|
|
226
|
+
case 'system':
|
|
227
|
+
score += 40; // System messages are critical
|
|
228
|
+
break;
|
|
229
|
+
}
|
|
230
|
+
// Content-based scoring (regex, no LLM)
|
|
231
|
+
if (IMPORTANT_PATTERNS.test(text))
|
|
232
|
+
score += 25;
|
|
233
|
+
if (ERROR_PATTERNS.test(text))
|
|
234
|
+
score += 20;
|
|
235
|
+
if (PLANNING_PATTERNS.test(text))
|
|
236
|
+
score += 15;
|
|
237
|
+
// Penalize trivial/bulk content
|
|
238
|
+
if (TRIVIAL_PATTERNS.test(text.trim()))
|
|
239
|
+
score -= 30;
|
|
240
|
+
// Penalize very large tool outputs (bulk data)
|
|
241
|
+
if (msg.role === 'tool') {
|
|
242
|
+
if (len > 10000)
|
|
243
|
+
score -= 25;
|
|
244
|
+
else if (len > 5000)
|
|
245
|
+
score -= 15;
|
|
246
|
+
else if (len < 50)
|
|
247
|
+
score -= 10; // Too short = trivial
|
|
248
|
+
// Penalize repetitive read operations
|
|
249
|
+
const name = toolName ?? (msg.name || '');
|
|
250
|
+
if (BULK_TOOL_PATTERNS.test(name))
|
|
251
|
+
score -= 10;
|
|
252
|
+
}
|
|
253
|
+
// Boost messages with code/technical content (likely important)
|
|
254
|
+
if (/```[\s\S]+```/.test(text))
|
|
255
|
+
score += 10;
|
|
256
|
+
if (/function |class |const |let |import |export /.test(text))
|
|
257
|
+
score += 5;
|
|
258
|
+
// Boost messages mentioning files (context about what was worked on)
|
|
259
|
+
if (/\.(ts|js|py|tsx|jsx|json|md|yaml|yml|sh)\b/.test(text))
|
|
260
|
+
score += 5;
|
|
261
|
+
return score;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Compress a large tool result to preserve key information while reducing tokens.
|
|
265
|
+
* Zero LLM cost - pure string manipulation.
|
|
266
|
+
*/
|
|
267
|
+
export function compressToolResult(content, maxChars = 1200) {
|
|
268
|
+
if (content.length <= maxChars)
|
|
269
|
+
return content;
|
|
270
|
+
const lines = content.split('\n');
|
|
271
|
+
const totalLines = lines.length;
|
|
272
|
+
// For very long content, extract structure
|
|
273
|
+
if (totalLines > 50) {
|
|
274
|
+
const headLines = 12;
|
|
275
|
+
const tailLines = 8;
|
|
276
|
+
const head = lines.slice(0, headLines).join('\n');
|
|
277
|
+
const tail = lines.slice(-tailLines).join('\n');
|
|
278
|
+
// Extract "interesting" lines from middle
|
|
279
|
+
const middle = lines.slice(headLines, -tailLines);
|
|
280
|
+
const interestingPatterns = /error|warn|fail|success|found|match|import|export|function|class|def |async |interface |type |const |TODO|FIXME|BUG/i;
|
|
281
|
+
const interesting = middle
|
|
282
|
+
.filter(line => interestingPatterns.test(line))
|
|
283
|
+
.slice(0, 8);
|
|
284
|
+
const omitted = totalLines - headLines - tailLines - interesting.length;
|
|
285
|
+
const parts = [head];
|
|
286
|
+
if (interesting.length > 0) {
|
|
287
|
+
parts.push(`\n... [${omitted} lines omitted] ...\n`);
|
|
288
|
+
parts.push('[Key lines from middle:]');
|
|
289
|
+
parts.push(interesting.join('\n'));
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
parts.push(`\n... [${omitted} lines omitted] ...\n`);
|
|
293
|
+
}
|
|
294
|
+
parts.push(tail);
|
|
295
|
+
const result = parts.join('\n');
|
|
296
|
+
// If still too long, truncate more aggressively
|
|
297
|
+
if (result.length > maxChars) {
|
|
298
|
+
return result.slice(0, maxChars - 50) + `\n... [truncated, ${content.length} chars total]`;
|
|
299
|
+
}
|
|
300
|
+
return result;
|
|
301
|
+
}
|
|
302
|
+
// For medium content, just head + tail
|
|
303
|
+
const headChars = Math.floor(maxChars * 0.6);
|
|
304
|
+
const tailChars = Math.floor(maxChars * 0.3);
|
|
305
|
+
return (content.slice(0, headChars) +
|
|
306
|
+
`\n... [${content.length - headChars - tailChars} chars omitted] ...\n` +
|
|
307
|
+
content.slice(-tailChars));
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Apply compression to tool result messages in-place.
|
|
311
|
+
*/
|
|
312
|
+
export function compressToolMessages(messages, maxChars = 1200) {
|
|
313
|
+
return messages.map(msg => {
|
|
314
|
+
if (msg.role !== 'tool')
|
|
315
|
+
return msg;
|
|
316
|
+
const content = msg.content;
|
|
317
|
+
if (typeof content !== 'string' || content.length <= maxChars)
|
|
318
|
+
return msg;
|
|
319
|
+
return {
|
|
320
|
+
...msg,
|
|
321
|
+
content: compressToolResult(content, maxChars),
|
|
322
|
+
};
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Build a single chunk with aggregate score and token estimate.
|
|
327
|
+
*/
|
|
328
|
+
export function buildChunk(messages, startIdx, endIdx, totalMessages) {
|
|
329
|
+
let score = 0;
|
|
330
|
+
for (let i = 0; i < messages.length; i++) {
|
|
331
|
+
score += scoreMessageImportance(messages[i], startIdx + i, totalMessages);
|
|
332
|
+
}
|
|
333
|
+
return {
|
|
334
|
+
messages,
|
|
335
|
+
startIdx,
|
|
336
|
+
endIdx,
|
|
337
|
+
score: Math.round(score / Math.max(1, messages.length)), // Average score
|
|
338
|
+
tokenEstimate: estimateTokensFromMessages(messages),
|
|
339
|
+
};
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Group messages into semantic chunks (user request + response + tool calls).
|
|
343
|
+
* This keeps related messages together during compaction.
|
|
344
|
+
*/
|
|
345
|
+
export function buildSemanticChunks(messages, sysStart = 0) {
|
|
346
|
+
const chunks = [];
|
|
347
|
+
let currentChunk = [];
|
|
348
|
+
let chunkStart = sysStart;
|
|
349
|
+
// Skip system message
|
|
350
|
+
const startIdx = messages[0]?.role === 'system' ? 1 : 0;
|
|
351
|
+
for (let i = startIdx; i < messages.length; i++) {
|
|
352
|
+
const msg = messages[i];
|
|
353
|
+
// New user message starts a new chunk (unless current is empty)
|
|
354
|
+
if (msg.role === 'user' && currentChunk.length > 0) {
|
|
355
|
+
chunks.push(buildChunk(currentChunk, chunkStart, i, messages.length));
|
|
356
|
+
currentChunk = [];
|
|
357
|
+
chunkStart = i;
|
|
358
|
+
}
|
|
359
|
+
currentChunk.push(msg);
|
|
360
|
+
}
|
|
361
|
+
// Don't forget the last chunk
|
|
362
|
+
if (currentChunk.length > 0) {
|
|
363
|
+
chunks.push(buildChunk(currentChunk, chunkStart, messages.length, messages.length));
|
|
364
|
+
}
|
|
365
|
+
return chunks;
|
|
366
|
+
}
|
|
367
|
+
// ============================================================================
|
|
368
|
+
// Key Fact Extraction
|
|
369
|
+
// ============================================================================
|
|
370
|
+
// Pre-compiled patterns for fact extraction
|
|
371
|
+
const DECISION_PATTERNS = /\b(decided|agreed|confirmed|chose|will use|going with|settled on)\b[^.!?\n]{10,100}/gi;
|
|
372
|
+
const FILE_OP_PATTERNS = /\b(created|edited|modified|deleted|renamed|moved)\s+[\w./\\-]+\.(ts|js|py|json|md|yaml|yml|sh|tsx|jsx)/gi;
|
|
373
|
+
const ERROR_FIX_PATTERNS = /\b(fixed|resolved|solved|patched)\b[^.!?\n]{10,80}/gi;
|
|
374
|
+
const TASK_COMPLETE_PATTERNS = /\b(finished|completed|done with|implemented)\b[^.!?\n]{10,80}/gi;
|
|
375
|
+
/**
|
|
376
|
+
* Extract key facts from dropped messages for vault archiving.
|
|
377
|
+
* Zero LLM cost - regex-based extraction.
|
|
378
|
+
*/
|
|
379
|
+
export function extractKeyFacts(messages) {
|
|
380
|
+
const facts = [];
|
|
381
|
+
const seen = new Set();
|
|
382
|
+
for (const msg of messages) {
|
|
383
|
+
if (msg.role !== 'assistant' && msg.role !== 'user')
|
|
384
|
+
continue;
|
|
385
|
+
const text = getMessageText(msg);
|
|
386
|
+
if (!text)
|
|
387
|
+
continue;
|
|
388
|
+
// Extract decisions
|
|
389
|
+
for (const pattern of [DECISION_PATTERNS, FILE_OP_PATTERNS, ERROR_FIX_PATTERNS, TASK_COMPLETE_PATTERNS]) {
|
|
390
|
+
pattern.lastIndex = 0;
|
|
391
|
+
let match;
|
|
392
|
+
while ((match = pattern.exec(text)) !== null) {
|
|
393
|
+
const fact = match[0].trim().replace(/\s+/g, ' ');
|
|
394
|
+
const normalized = fact.toLowerCase();
|
|
395
|
+
if (!seen.has(normalized) && fact.length > 15 && fact.length < 200) {
|
|
396
|
+
seen.add(normalized);
|
|
397
|
+
facts.push(fact);
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
return facts.slice(0, 10); // Cap at 10 facts
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* Enhanced context budget enforcement with full result details.
|
|
406
|
+
* Returns dropped messages and extracted facts for vault archiving.
|
|
407
|
+
*/
|
|
408
|
+
export function enforceContextBudgetEnhanced(opts) {
|
|
409
|
+
const { contextWindow, maxTokens } = opts;
|
|
410
|
+
const minTail = opts.force ? 2 : (opts.minTailMessages ?? 20);
|
|
411
|
+
const enhanced = opts.enhanced !== false;
|
|
412
|
+
const compressionMaxChars = opts.compressionMaxChars ?? 1200;
|
|
413
|
+
const toolOverhead = opts.toolSchemaTokens ?? 800;
|
|
414
|
+
const safetyMargin = 2048 + toolOverhead;
|
|
415
|
+
const budget = Math.max(1024, contextWindow - maxTokens - safetyMargin);
|
|
416
|
+
const compactAt = opts.force
|
|
417
|
+
? 0.5
|
|
418
|
+
: Number.isFinite(opts.compactAt)
|
|
419
|
+
? Math.min(0.95, Math.max(0.5, Number(opts.compactAt)))
|
|
420
|
+
: 0.8;
|
|
421
|
+
const threshold = Math.floor(budget * compactAt);
|
|
422
|
+
let msgs = [...opts.messages];
|
|
423
|
+
const beforeCount = msgs.length;
|
|
424
|
+
const beforeTokens = estimateTokensFromMessages(msgs);
|
|
425
|
+
const allDropped = [];
|
|
426
|
+
let chunksDropped = 0;
|
|
427
|
+
let messagesCompressed = 0;
|
|
428
|
+
// Early exit if under threshold
|
|
429
|
+
if (!opts.force && beforeTokens <= threshold) {
|
|
430
|
+
return {
|
|
431
|
+
messages: msgs,
|
|
432
|
+
dropped: [],
|
|
433
|
+
keyFacts: [],
|
|
434
|
+
stats: {
|
|
435
|
+
beforeCount,
|
|
436
|
+
afterCount: msgs.length,
|
|
437
|
+
beforeTokens,
|
|
438
|
+
afterTokens: beforeTokens,
|
|
439
|
+
freedTokens: 0,
|
|
440
|
+
chunksDropped: 0,
|
|
441
|
+
messagesCompressed: 0,
|
|
442
|
+
},
|
|
443
|
+
};
|
|
444
|
+
}
|
|
445
|
+
const sysStart = msgs[0]?.role === 'system' ? 1 : 0;
|
|
446
|
+
let currentTokens = beforeTokens;
|
|
447
|
+
// Find protected assistant index
|
|
448
|
+
let protectedIdx = -1;
|
|
449
|
+
for (let i = msgs.length - 1; i >= sysStart; i--) {
|
|
450
|
+
const m = msgs[i];
|
|
451
|
+
if (m.role === 'assistant' &&
|
|
452
|
+
!m.tool_calls?.length &&
|
|
453
|
+
messageContentChars(m.content) > 50) {
|
|
454
|
+
protectedIdx = i;
|
|
455
|
+
break;
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
// ENHANCEMENT: Compress tool results first (reduces tokens without losing messages)
|
|
459
|
+
if (enhanced) {
|
|
460
|
+
const beforeCompression = currentTokens;
|
|
461
|
+
msgs = msgs.map((msg, idx) => {
|
|
462
|
+
if (msg.role !== 'tool')
|
|
463
|
+
return msg;
|
|
464
|
+
if (idx >= msgs.length - minTail)
|
|
465
|
+
return msg; // Don't compress recent
|
|
466
|
+
const content = msg.content;
|
|
467
|
+
if (typeof content !== 'string' || content.length <= compressionMaxChars)
|
|
468
|
+
return msg;
|
|
469
|
+
messagesCompressed++;
|
|
470
|
+
return {
|
|
471
|
+
...msg,
|
|
472
|
+
content: compressToolResult(content, compressionMaxChars),
|
|
473
|
+
};
|
|
474
|
+
});
|
|
475
|
+
currentTokens = estimateTokensFromMessages(msgs);
|
|
476
|
+
if (currentTokens <= threshold && !opts.force) {
|
|
477
|
+
return {
|
|
478
|
+
messages: msgs,
|
|
479
|
+
dropped: [],
|
|
480
|
+
keyFacts: [],
|
|
481
|
+
stats: {
|
|
482
|
+
beforeCount,
|
|
483
|
+
afterCount: msgs.length,
|
|
484
|
+
beforeTokens,
|
|
485
|
+
afterTokens: currentTokens,
|
|
486
|
+
freedTokens: beforeCompression - currentTokens,
|
|
487
|
+
chunksDropped: 0,
|
|
488
|
+
messagesCompressed,
|
|
489
|
+
},
|
|
490
|
+
};
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
// ENHANCEMENT: Use semantic chunking with importance scoring
|
|
494
|
+
if (enhanced && msgs.length > minTail + 5) {
|
|
495
|
+
const chunks = buildSemanticChunks(msgs, sysStart);
|
|
496
|
+
// Sort chunks by score (lowest first = drop first)
|
|
497
|
+
// But protect the last chunk (recent context)
|
|
498
|
+
const droppableChunks = chunks.slice(0, -1).sort((a, b) => a.score - b.score);
|
|
499
|
+
const protectedChunk = chunks[chunks.length - 1];
|
|
500
|
+
// Drop lowest-scored chunks until under threshold
|
|
501
|
+
const keptChunks = [];
|
|
502
|
+
let keptTokens = protectedChunk ? protectedChunk.tokenEstimate : 0;
|
|
503
|
+
// Add system message tokens
|
|
504
|
+
if (sysStart === 1) {
|
|
505
|
+
keptTokens += estimateTokensFromMessages([msgs[0]]);
|
|
506
|
+
}
|
|
507
|
+
// Keep chunks from highest score down until we'd exceed budget
|
|
508
|
+
const sortedByScoreDesc = [...droppableChunks].sort((a, b) => b.score - a.score);
|
|
509
|
+
for (const chunk of sortedByScoreDesc) {
|
|
510
|
+
if (keptTokens + chunk.tokenEstimate <= threshold || keptChunks.length < 2) {
|
|
511
|
+
keptChunks.push(chunk);
|
|
512
|
+
keptTokens += chunk.tokenEstimate;
|
|
513
|
+
}
|
|
514
|
+
else {
|
|
515
|
+
// This chunk will be dropped
|
|
516
|
+
allDropped.push(...chunk.messages);
|
|
517
|
+
chunksDropped++;
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
// Rebuild messages array in original order
|
|
521
|
+
const keptChunkStarts = new Set(keptChunks.map(c => c.startIdx));
|
|
522
|
+
const newMsgs = [];
|
|
523
|
+
// Keep system message
|
|
524
|
+
if (sysStart === 1) {
|
|
525
|
+
newMsgs.push(msgs[0]);
|
|
526
|
+
}
|
|
527
|
+
// Add kept chunks in order
|
|
528
|
+
for (const chunk of chunks) {
|
|
529
|
+
if (keptChunkStarts.has(chunk.startIdx) || chunk === protectedChunk) {
|
|
530
|
+
newMsgs.push(...chunk.messages);
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
if (newMsgs.length < msgs.length) {
|
|
534
|
+
msgs = newMsgs;
|
|
535
|
+
currentTokens = estimateTokensFromMessages(msgs);
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
// Fallback: Original algorithm if still over budget
|
|
539
|
+
// Phase 1: drop oldest tool-call exchange groups first
|
|
540
|
+
while (msgs.length > 2 && currentTokens > threshold) {
|
|
541
|
+
if (msgs.length - sysStart <= minTail)
|
|
542
|
+
break;
|
|
543
|
+
const groupIdx = findOldestToolCallGroup(msgs, sysStart, msgs.length - minTail, protectedIdx);
|
|
544
|
+
if (groupIdx === -1)
|
|
545
|
+
break;
|
|
546
|
+
const groupEnd = findGroupEnd(msgs, groupIdx);
|
|
547
|
+
if (protectedIdx > groupIdx)
|
|
548
|
+
protectedIdx -= groupEnd - groupIdx;
|
|
549
|
+
const dropped = msgs.splice(groupIdx, groupEnd - groupIdx);
|
|
550
|
+
allDropped.push(...dropped);
|
|
551
|
+
for (const d of dropped) {
|
|
552
|
+
currentTokens -= Math.ceil((messageContentChars(d.content) + 20) / 4);
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
// Phase 2: drop any oldest messages if still over budget
|
|
556
|
+
while (msgs.length > 2 && currentTokens > threshold) {
|
|
557
|
+
if (msgs.length - sysStart <= minTail)
|
|
558
|
+
break;
|
|
559
|
+
if (sysStart === protectedIdx)
|
|
560
|
+
break;
|
|
561
|
+
const [removed] = msgs.splice(sysStart, 1);
|
|
562
|
+
allDropped.push(removed);
|
|
563
|
+
if (protectedIdx > sysStart)
|
|
564
|
+
protectedIdx--;
|
|
565
|
+
currentTokens -= Math.ceil((messageContentChars(removed.content) + 20) / 4);
|
|
566
|
+
}
|
|
567
|
+
// Extract key facts from dropped messages
|
|
568
|
+
const keyFacts = enhanced ? extractKeyFacts(allDropped) : [];
|
|
569
|
+
const afterTokens = estimateTokensFromMessages(msgs);
|
|
570
|
+
const dropped = beforeCount - msgs.length;
|
|
571
|
+
if (dropped > 0) {
|
|
572
|
+
const freed = beforeTokens - afterTokens;
|
|
573
|
+
const usedPct = budget > 0 ? ((beforeTokens / budget) * 100).toFixed(1) : '?';
|
|
574
|
+
console.error(`[auto-compact] Approaching context limit (${usedPct}%) - compacting ${dropped} old turns, ~${freed} tokens freed` +
|
|
575
|
+
(enhanced ? ` (${chunksDropped} chunks, ${messagesCompressed} compressed, ${keyFacts.length} facts extracted)` : ''));
|
|
576
|
+
}
|
|
577
|
+
return {
|
|
578
|
+
messages: msgs,
|
|
579
|
+
dropped: allDropped,
|
|
580
|
+
keyFacts,
|
|
581
|
+
stats: {
|
|
582
|
+
beforeCount,
|
|
583
|
+
afterCount: msgs.length,
|
|
584
|
+
beforeTokens,
|
|
585
|
+
afterTokens,
|
|
586
|
+
freedTokens: beforeTokens - afterTokens,
|
|
587
|
+
chunksDropped,
|
|
588
|
+
messagesCompressed,
|
|
589
|
+
},
|
|
590
|
+
};
|
|
591
|
+
}
|
|
174
592
|
//# sourceMappingURL=history.js.map
|
package/dist/history.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.js","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -23,6 +23,7 @@ import { sessionCommands } from './cli/commands/session.js';
|
|
|
23
23
|
import { toolCommands } from './cli/commands/tools.js';
|
|
24
24
|
import { trifectaCommands } from './cli/commands/trifecta.js';
|
|
25
25
|
import { runTui } from './cli/commands/tui.js';
|
|
26
|
+
import { upgradeCommands } from './cli/commands/upgrade.js';
|
|
26
27
|
import { generateInitContext, formatInitSummary } from './cli/init.js';
|
|
27
28
|
import { readUserInput, readStdinIfPiped, reverseSearchHistory, isPathCompletionContext, expandAtFileRefs, expandPromptImages, } from './cli/input.js';
|
|
28
29
|
import { runOneShot } from './cli/oneshot.js';
|
|
@@ -432,6 +433,7 @@ async function main() {
|
|
|
432
433
|
...toolCommands,
|
|
433
434
|
...antonCommands,
|
|
434
435
|
...secretsCommands,
|
|
436
|
+
...upgradeCommands,
|
|
435
437
|
]);
|
|
436
438
|
let customCommands = await loadCustomCommands(projectDir(config));
|
|
437
439
|
const getSlashCommands = () => [
|