@visorcraft/idlehands 2.3.3 → 2.3.5
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/exec-helpers.js +93 -0
- package/dist/agent/exec-helpers.js.map +1 -1
- package/dist/agent/file-prefetch.js +196 -0
- package/dist/agent/file-prefetch.js.map +1 -0
- package/dist/agent/index.js +54 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/predictive-compaction.js +139 -0
- package/dist/agent/predictive-compaction.js.map +1 -0
- package/dist/agent/query-classifier-fast.js +174 -0
- package/dist/agent/query-classifier-fast.js.map +1 -0
- package/dist/agent/read-ahead-buffer.js +260 -0
- package/dist/agent/read-ahead-buffer.js.map +1 -0
- package/dist/agent/response-cache.js +23 -4
- package/dist/agent/response-cache.js.map +1 -1
- package/dist/agent/schema-optimizer.js +228 -0
- package/dist/agent/schema-optimizer.js.map +1 -0
- package/dist/agent/tool-calls.js +25 -0
- package/dist/agent/tool-calls.js.map +1 -1
- package/dist/agent/tool-loop-guard.js +38 -8
- package/dist/agent/tool-loop-guard.js.map +1 -1
- package/dist/agent.js +207 -26
- package/dist/agent.js.map +1 -1
- package/dist/bot/confirm-telegram.js +21 -2
- package/dist/bot/confirm-telegram.js.map +1 -1
- package/dist/bot/discord.js +5 -5
- package/dist/bot/discord.js.map +1 -1
- package/dist/bot/session-manager.js +6 -6
- package/dist/bot/session-manager.js.map +1 -1
- package/dist/bot/ux/action-dispatcher.js +222 -0
- package/dist/bot/ux/action-dispatcher.js.map +1 -0
- package/dist/history.js +196 -0
- package/dist/history.js.map +1 -1
- package/dist/tui/controller.js +2 -0
- package/dist/tui/controller.js.map +1 -1
- package/dist/upgrade.js +3 -3
- package/dist/upgrade.js.map +1 -1
- package/package.json +1 -1
|
@@ -321,4 +321,97 @@ export function extractLogFilePath(command) {
|
|
|
321
321
|
}
|
|
322
322
|
return null;
|
|
323
323
|
}
|
|
324
|
+
/**
|
|
325
|
+
* Extract the target file path from a cat/head/tail command.
|
|
326
|
+
* Used to look up cached content when the model falls back to shell
|
|
327
|
+
* commands after read_file is poisoned (deadlock prevention).
|
|
328
|
+
* Returns the file path or null if not a simple file read command.
|
|
329
|
+
*/
|
|
330
|
+
export function extractFilePathFromReadCommand(command) {
|
|
331
|
+
let cmd = String(command || '').trim();
|
|
332
|
+
if (!cmd)
|
|
333
|
+
return null;
|
|
334
|
+
// Strip leading cd && chains
|
|
335
|
+
cmd = cmd.replace(/^(\s*cd\s+[^;&|]+\s*(?:&&|;)\s*)+/i, '').trim();
|
|
336
|
+
if (!cmd)
|
|
337
|
+
return null;
|
|
338
|
+
// cat FILE (no pipes)
|
|
339
|
+
const catMatch = cmd.match(/^\s*cat\s+(\S+)\s*$/i);
|
|
340
|
+
if (catMatch) {
|
|
341
|
+
return catMatch[1].replace(/['"]/g, '');
|
|
342
|
+
}
|
|
343
|
+
// head -N FILE or head -n N FILE
|
|
344
|
+
const headMatch = cmd.match(/^\s*head\s+(?:-n?\s*)?\d+\s+(\S+)\s*$/i);
|
|
345
|
+
if (headMatch) {
|
|
346
|
+
return headMatch[1].replace(/['"]/g, '');
|
|
347
|
+
}
|
|
348
|
+
// tail -N FILE (no pipes)
|
|
349
|
+
const tailMatch = cmd.match(/^\s*tail\s+(?:-n?\s*)?\d+\s+(\S+)\s*$/i);
|
|
350
|
+
if (tailMatch) {
|
|
351
|
+
return tailMatch[1].replace(/['"]/g, '');
|
|
352
|
+
}
|
|
353
|
+
// cat FILE | head -N (pagination pattern)
|
|
354
|
+
const catPipeMatch = cmd.match(/^\s*cat\s+(\S+)\s*\|\s*head/i);
|
|
355
|
+
if (catPipeMatch) {
|
|
356
|
+
return catPipeMatch[1].replace(/['"]/g, '');
|
|
357
|
+
}
|
|
358
|
+
return null;
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* Normalize test commands for loop detection.
|
|
362
|
+
* Extracts the test framework and filter/target so that running the same test
|
|
363
|
+
* repeatedly with different output options is detected as a loop.
|
|
364
|
+
*
|
|
365
|
+
* Examples:
|
|
366
|
+
* "php artisan test --filter=FooTest 2>&1 | tail -20" → "php artisan test --filter=FooTest"
|
|
367
|
+
* "npm test -- --grep=\"bar\"" → "npm test --grep=\"bar\""
|
|
368
|
+
* "pytest tests/test_foo.py -v" → "pytest tests/test_foo.py"
|
|
369
|
+
* "go test ./... -run TestBar" → "go test -run TestBar"
|
|
370
|
+
*
|
|
371
|
+
* Returns the normalized command or the original if not a recognized test command.
|
|
372
|
+
*/
|
|
373
|
+
export function normalizeTestCommandForSig(command) {
|
|
374
|
+
let cmd = String(command || "").trim();
|
|
375
|
+
if (!cmd)
|
|
376
|
+
return null;
|
|
377
|
+
// Strip leading cd && chains
|
|
378
|
+
cmd = cmd.replace(/^(\s*cd\s+[^;&|]+\s*(?:&&|;)\s*)+/i, "").trim();
|
|
379
|
+
if (!cmd)
|
|
380
|
+
return null;
|
|
381
|
+
// First apply the general exec normalization (strips tail/head/grep pipes)
|
|
382
|
+
cmd = normalizeExecCommandForSig(cmd);
|
|
383
|
+
// PHP/Laravel: php artisan test --filter=X
|
|
384
|
+
const phpMatch = cmd.match(/^\s*(php\s+artisan\s+test)\s+(--filter[=\s]+\S+)/i);
|
|
385
|
+
if (phpMatch) {
|
|
386
|
+
return `${phpMatch[1]} ${phpMatch[2]}`.trim();
|
|
387
|
+
}
|
|
388
|
+
// PHPUnit: phpunit --filter X or vendor/bin/phpunit --filter X
|
|
389
|
+
const phpunitMatch = cmd.match(/^\s*((?:vendor\/bin\/)?phpunit)\s+.*?(--filter[=\s]+\S+)/i);
|
|
390
|
+
if (phpunitMatch) {
|
|
391
|
+
return `${phpunitMatch[1]} ${phpunitMatch[2]}`.trim();
|
|
392
|
+
}
|
|
393
|
+
// Jest/npm test: npm test -- --grep="X" or npx jest --testNamePattern=X
|
|
394
|
+
const npmTestMatch = cmd.match(/^\s*(npm\s+test|npx\s+jest)\s+.*?(--(?:grep|testNamePattern|testPathPattern)[=\s]+\S+)/i);
|
|
395
|
+
if (npmTestMatch) {
|
|
396
|
+
return `${npmTestMatch[1]} ${npmTestMatch[2]}`.trim();
|
|
397
|
+
}
|
|
398
|
+
// Pytest: pytest path/test.py or pytest -k "pattern"
|
|
399
|
+
const pytestMatch = cmd.match(/^\s*(pytest)\s+(?:.*?(-k\s+\S+)|(\S+\.py\b))/i);
|
|
400
|
+
if (pytestMatch) {
|
|
401
|
+
const target = pytestMatch[2] || pytestMatch[3];
|
|
402
|
+
return `pytest ${target}`.trim();
|
|
403
|
+
}
|
|
404
|
+
// Go test: go test ./... -run TestX
|
|
405
|
+
const goTestMatch = cmd.match(/^\s*(go\s+test)\s+.*?(-run\s+\S+)/i);
|
|
406
|
+
if (goTestMatch) {
|
|
407
|
+
return `${goTestMatch[1]} ${goTestMatch[2]}`.trim();
|
|
408
|
+
}
|
|
409
|
+
// Cargo test: cargo test test_name
|
|
410
|
+
const cargoMatch = cmd.match(/^\s*(cargo\s+test)\s+(\S+)/i);
|
|
411
|
+
if (cargoMatch && !cargoMatch[2].startsWith("-")) {
|
|
412
|
+
return `${cargoMatch[1]} ${cargoMatch[2]}`.trim();
|
|
413
|
+
}
|
|
414
|
+
// Not a recognized test command
|
|
415
|
+
return null;
|
|
416
|
+
}
|
|
324
417
|
//# sourceMappingURL=exec-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec-helpers.js","sourceRoot":"","sources":["../../src/agent/exec-helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"exec-helpers.js","sourceRoot":"","sources":["../../src/agent/exec-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Prefetch Module
|
|
3
|
+
*
|
|
4
|
+
* Speculatively pre-fetches files that are likely to be needed in upcoming
|
|
5
|
+
* tool calls, reducing latency by overlapping I/O with computation.
|
|
6
|
+
*
|
|
7
|
+
* Use cases:
|
|
8
|
+
* - When edit_file is called, prefetch the file content
|
|
9
|
+
* - When multiple read_file calls are pending, batch-prefetch them
|
|
10
|
+
* - When list_dir returns files, prefetch likely-to-be-read files
|
|
11
|
+
*/
|
|
12
|
+
import fs from 'node:fs/promises';
|
|
13
|
+
import path from 'node:path';
|
|
14
|
+
export class FilePrefetcher {
|
|
15
|
+
cache = new Map();
|
|
16
|
+
pending = new Map();
|
|
17
|
+
maxEntries;
|
|
18
|
+
maxFileSize;
|
|
19
|
+
ttlMs;
|
|
20
|
+
// Runtime stats
|
|
21
|
+
hits = 0;
|
|
22
|
+
misses = 0;
|
|
23
|
+
prefetches = 0;
|
|
24
|
+
evictions = 0;
|
|
25
|
+
constructor(opts) {
|
|
26
|
+
this.maxEntries = opts?.maxEntries ?? 50;
|
|
27
|
+
this.maxFileSize = opts?.maxFileSize ?? 512 * 1024;
|
|
28
|
+
this.ttlMs = opts?.ttlMs ?? 30000;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Get cached file content if available and fresh.
|
|
32
|
+
* Returns null on miss or stale entry.
|
|
33
|
+
*/
|
|
34
|
+
async get(absPath) {
|
|
35
|
+
const entry = this.cache.get(absPath);
|
|
36
|
+
if (!entry) {
|
|
37
|
+
this.misses++;
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
// Check TTL
|
|
41
|
+
if (Date.now() - entry.fetchedAt > this.ttlMs) {
|
|
42
|
+
this.cache.delete(absPath);
|
|
43
|
+
this.misses++;
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
// Check mtime for invalidation
|
|
47
|
+
try {
|
|
48
|
+
const stat = await fs.stat(absPath);
|
|
49
|
+
if (stat.mtimeMs !== entry.mtime) {
|
|
50
|
+
this.cache.delete(absPath);
|
|
51
|
+
this.misses++;
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
this.cache.delete(absPath);
|
|
57
|
+
this.misses++;
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
this.hits++;
|
|
61
|
+
return entry.content;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Trigger prefetch for a file path. Non-blocking.
|
|
65
|
+
* Returns immediately, fetches in background.
|
|
66
|
+
*/
|
|
67
|
+
prefetch(absPath) {
|
|
68
|
+
// Skip if already cached or pending
|
|
69
|
+
if (this.cache.has(absPath) || this.pending.has(absPath))
|
|
70
|
+
return;
|
|
71
|
+
const fetchPromise = this.fetchAndCache(absPath);
|
|
72
|
+
this.pending.set(absPath, fetchPromise);
|
|
73
|
+
fetchPromise.finally(() => this.pending.delete(absPath));
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Prefetch multiple files in parallel.
|
|
77
|
+
*/
|
|
78
|
+
prefetchMany(paths) {
|
|
79
|
+
for (const p of paths) {
|
|
80
|
+
this.prefetch(p);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Prefetch files likely to be edited based on tool calls.
|
|
85
|
+
* Analyzes pending tool calls and prefetches relevant files.
|
|
86
|
+
*/
|
|
87
|
+
prefetchForToolCalls(toolCalls, cwd) {
|
|
88
|
+
const pathsToFetch = new Set();
|
|
89
|
+
for (const tc of toolCalls) {
|
|
90
|
+
const { name, args } = tc;
|
|
91
|
+
// Edit tools: prefetch the file being edited
|
|
92
|
+
if ((name === 'edit_file' || name === 'write_file' || name === 'insert_file') &&
|
|
93
|
+
typeof args.path === 'string') {
|
|
94
|
+
const absPath = path.isAbsolute(args.path) ? args.path : path.join(cwd, args.path);
|
|
95
|
+
pathsToFetch.add(absPath);
|
|
96
|
+
}
|
|
97
|
+
// read_files: prefetch all paths
|
|
98
|
+
if (name === 'read_files' && Array.isArray(args.paths)) {
|
|
99
|
+
for (const p of args.paths) {
|
|
100
|
+
if (typeof p === 'string') {
|
|
101
|
+
const absPath = path.isAbsolute(p) ? p : path.join(cwd, p);
|
|
102
|
+
pathsToFetch.add(absPath);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
// apply_patch: prefetch all files in the patch
|
|
107
|
+
if (name === 'apply_patch' && Array.isArray(args.files)) {
|
|
108
|
+
for (const f of args.files) {
|
|
109
|
+
if (typeof f === 'string') {
|
|
110
|
+
const absPath = path.isAbsolute(f) ? f : path.join(cwd, f);
|
|
111
|
+
pathsToFetch.add(absPath);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
this.prefetchMany([...pathsToFetch]);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Wait for a pending prefetch to complete.
|
|
120
|
+
*/
|
|
121
|
+
async waitFor(absPath) {
|
|
122
|
+
const pending = this.pending.get(absPath);
|
|
123
|
+
if (pending) {
|
|
124
|
+
const entry = await pending;
|
|
125
|
+
return entry?.content ?? null;
|
|
126
|
+
}
|
|
127
|
+
return this.get(absPath);
|
|
128
|
+
}
|
|
129
|
+
async fetchAndCache(absPath) {
|
|
130
|
+
try {
|
|
131
|
+
const stat = await fs.stat(absPath);
|
|
132
|
+
// Skip if too large
|
|
133
|
+
if (stat.size > this.maxFileSize)
|
|
134
|
+
return null;
|
|
135
|
+
// Skip if not a regular file
|
|
136
|
+
if (!stat.isFile())
|
|
137
|
+
return null;
|
|
138
|
+
const content = await fs.readFile(absPath, 'utf8');
|
|
139
|
+
const entry = {
|
|
140
|
+
content,
|
|
141
|
+
mtime: stat.mtimeMs,
|
|
142
|
+
fetchedAt: Date.now(),
|
|
143
|
+
size: stat.size,
|
|
144
|
+
};
|
|
145
|
+
// Evict if over capacity
|
|
146
|
+
if (this.cache.size >= this.maxEntries) {
|
|
147
|
+
this.evictOldest();
|
|
148
|
+
}
|
|
149
|
+
this.cache.set(absPath, entry);
|
|
150
|
+
this.prefetches++;
|
|
151
|
+
return entry;
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
evictOldest() {
|
|
158
|
+
let oldestKey = null;
|
|
159
|
+
let oldestTime = Infinity;
|
|
160
|
+
for (const [key, entry] of this.cache) {
|
|
161
|
+
if (entry.fetchedAt < oldestTime) {
|
|
162
|
+
oldestTime = entry.fetchedAt;
|
|
163
|
+
oldestKey = key;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
if (oldestKey) {
|
|
167
|
+
this.cache.delete(oldestKey);
|
|
168
|
+
this.evictions++;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Invalidate a cached entry (e.g., after write).
|
|
173
|
+
*/
|
|
174
|
+
invalidate(absPath) {
|
|
175
|
+
this.cache.delete(absPath);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Clear all cached entries.
|
|
179
|
+
*/
|
|
180
|
+
clear() {
|
|
181
|
+
this.cache.clear();
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Get prefetch statistics.
|
|
185
|
+
*/
|
|
186
|
+
stats() {
|
|
187
|
+
return {
|
|
188
|
+
hits: this.hits,
|
|
189
|
+
misses: this.misses,
|
|
190
|
+
prefetches: this.prefetches,
|
|
191
|
+
evictions: this.evictions,
|
|
192
|
+
hitRate: this.hits + this.misses > 0 ? this.hits / (this.hits + this.misses) : 0,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=file-prefetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-prefetch.js","sourceRoot":"","sources":["../../src/agent/file-prefetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent module barrel file - re-exports all agent submodules.
|
|
3
|
+
*
|
|
4
|
+
* Organization:
|
|
5
|
+
* - capture.ts: Session capture/logging
|
|
6
|
+
* - client-pool.ts: Provider connection pooling
|
|
7
|
+
* - compaction-scoring.ts: Message compaction heuristics
|
|
8
|
+
* - context-budget.ts: Context window management
|
|
9
|
+
* - conversation-branch.ts: Conversation threading
|
|
10
|
+
* - exec-helpers.ts: Shell command parsing/normalization
|
|
11
|
+
* - formatting.ts: Output formatting utilities
|
|
12
|
+
* - prompt-builder.ts: System prompt construction
|
|
13
|
+
* - query-classifier.ts: Query type classification
|
|
14
|
+
* - resilient-provider.ts: Provider failover
|
|
15
|
+
* - response-cache.ts: Response caching
|
|
16
|
+
* - review-artifact.ts: Code review utilities
|
|
17
|
+
* - semantic-search.ts: Embedding-based search
|
|
18
|
+
* - session-utils.ts: Session state utilities
|
|
19
|
+
* - subagent-context.ts: Sub-agent management
|
|
20
|
+
* - tool-calls.ts: Tool call parsing/validation
|
|
21
|
+
* - tool-loop-detection.ts: Loop detection algorithms
|
|
22
|
+
* - tool-loop-guard.ts: Loop prevention guardrails
|
|
23
|
+
* - tool-name-alias.ts: Tool name normalization
|
|
24
|
+
* - tool-policy.ts: Tool permission policies
|
|
25
|
+
* - tools-schema.ts: Tool schema generation
|
|
26
|
+
*/
|
|
27
|
+
export * from "./capture.js";
|
|
28
|
+
export * from "./client-pool.js";
|
|
29
|
+
export * from "./compaction-scoring.js";
|
|
30
|
+
export * from "./context-budget.js";
|
|
31
|
+
export * from "./conversation-branch.js";
|
|
32
|
+
export * from "./exec-helpers.js";
|
|
33
|
+
export * from "./formatting.js";
|
|
34
|
+
export * from "./prompt-builder.js";
|
|
35
|
+
export * from "./query-classifier.js";
|
|
36
|
+
export * from "./resilient-provider.js";
|
|
37
|
+
export * from "./response-cache.js";
|
|
38
|
+
export * from "./review-artifact.js";
|
|
39
|
+
export * from "./semantic-search.js";
|
|
40
|
+
export * from "./session-utils.js";
|
|
41
|
+
export * from "./subagent-context.js";
|
|
42
|
+
export * from "./tool-calls.js";
|
|
43
|
+
export * from "./tool-loop-detection.js";
|
|
44
|
+
export * from "./tool-loop-guard.js";
|
|
45
|
+
export * from "./tool-name-alias.js";
|
|
46
|
+
export * from "./tool-policy.js";
|
|
47
|
+
export * from "./tools-schema.js";
|
|
48
|
+
// Speed optimization modules
|
|
49
|
+
export * from "./file-prefetch.js";
|
|
50
|
+
export * from "./query-classifier-fast.js";
|
|
51
|
+
export * from "./predictive-compaction.js";
|
|
52
|
+
export * from "./schema-optimizer.js";
|
|
53
|
+
export * from "./read-ahead-buffer.js";
|
|
54
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAElC,6BAA6B;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Predictive Compaction Module
|
|
3
|
+
*
|
|
4
|
+
* Triggers compaction earlier based on token velocity (tokens consumed per turn)
|
|
5
|
+
* rather than waiting until the context window is nearly full.
|
|
6
|
+
*
|
|
7
|
+
* Benefits:
|
|
8
|
+
* - Smoother context management (avoid sudden large compactions)
|
|
9
|
+
* - Better latency (compact during idle periods)
|
|
10
|
+
* - More headroom for tool outputs
|
|
11
|
+
*/
|
|
12
|
+
export class PredictiveCompactionTracker {
|
|
13
|
+
turnTokenCounts = [];
|
|
14
|
+
config;
|
|
15
|
+
constructor(config) {
|
|
16
|
+
this.config = {
|
|
17
|
+
contextWindow: config.contextWindow,
|
|
18
|
+
thresholdRatio: config.thresholdRatio ?? 0.75,
|
|
19
|
+
minTurnsHeadroom: config.minTurnsHeadroom ?? 3,
|
|
20
|
+
minVelocityForPrediction: config.minVelocityForPrediction ?? 2000,
|
|
21
|
+
velocitySampleSize: config.velocitySampleSize ?? 5,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Record tokens consumed in a turn.
|
|
26
|
+
*/
|
|
27
|
+
recordTurn(tokensConsumed) {
|
|
28
|
+
this.turnTokenCounts.push(tokensConsumed);
|
|
29
|
+
// Keep only recent samples
|
|
30
|
+
if (this.turnTokenCounts.length > this.config.velocitySampleSize * 2) {
|
|
31
|
+
this.turnTokenCounts = this.turnTokenCounts.slice(-this.config.velocitySampleSize);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Calculate current token velocity (avg tokens per turn).
|
|
36
|
+
*/
|
|
37
|
+
getVelocity() {
|
|
38
|
+
if (this.turnTokenCounts.length === 0)
|
|
39
|
+
return 0;
|
|
40
|
+
const recentSamples = this.turnTokenCounts.slice(-this.config.velocitySampleSize);
|
|
41
|
+
const sum = recentSamples.reduce((a, b) => a + b, 0);
|
|
42
|
+
return sum / recentSamples.length;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Check if predictive compaction should trigger.
|
|
46
|
+
*
|
|
47
|
+
* @param currentTokens Current context size in tokens
|
|
48
|
+
* @returns Stats and recommendation
|
|
49
|
+
*/
|
|
50
|
+
shouldCompact(currentTokens) {
|
|
51
|
+
const velocity = this.getVelocity();
|
|
52
|
+
const threshold = this.config.contextWindow * this.config.thresholdRatio;
|
|
53
|
+
const headroom = threshold - currentTokens;
|
|
54
|
+
// Estimate turns until threshold
|
|
55
|
+
const turnsUntilThreshold = velocity > 0 ? Math.floor(headroom / velocity) : Infinity;
|
|
56
|
+
// Default: no compaction needed
|
|
57
|
+
let shouldCompact = false;
|
|
58
|
+
let reason = 'sufficient headroom';
|
|
59
|
+
// Already over threshold: definitely compact
|
|
60
|
+
if (currentTokens >= threshold) {
|
|
61
|
+
shouldCompact = true;
|
|
62
|
+
reason = 'over threshold';
|
|
63
|
+
}
|
|
64
|
+
// Predictive: compact if we'll hit threshold within minTurnsHeadroom turns
|
|
65
|
+
else if (velocity >= this.config.minVelocityForPrediction &&
|
|
66
|
+
turnsUntilThreshold <= this.config.minTurnsHeadroom) {
|
|
67
|
+
shouldCompact = true;
|
|
68
|
+
reason = `predictive: ${turnsUntilThreshold} turns until threshold at ${Math.round(velocity)} tokens/turn`;
|
|
69
|
+
}
|
|
70
|
+
// High velocity warning zone
|
|
71
|
+
else if (velocity >= this.config.minVelocityForPrediction * 2 && turnsUntilThreshold <= 5) {
|
|
72
|
+
shouldCompact = true;
|
|
73
|
+
reason = `high velocity warning: ${Math.round(velocity)} tokens/turn`;
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
avgTokensPerTurn: Math.round(velocity),
|
|
77
|
+
turnsUntilThreshold: turnsUntilThreshold === Infinity ? -1 : turnsUntilThreshold,
|
|
78
|
+
shouldCompact,
|
|
79
|
+
reason,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Reset tracking (e.g., after compaction or session reset).
|
|
84
|
+
*/
|
|
85
|
+
reset() {
|
|
86
|
+
this.turnTokenCounts = [];
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Get raw turn history for debugging.
|
|
90
|
+
*/
|
|
91
|
+
getTurnHistory() {
|
|
92
|
+
return [...this.turnTokenCounts];
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Calculate optimal compaction target size based on velocity.
|
|
97
|
+
*
|
|
98
|
+
* When compacting, we want to leave enough room for several turns
|
|
99
|
+
* at the current velocity, plus some buffer for tool outputs.
|
|
100
|
+
*
|
|
101
|
+
* @param contextWindow Context window size
|
|
102
|
+
* @param velocity Current token velocity
|
|
103
|
+
* @param targetTurns Target turns of headroom (default: 10)
|
|
104
|
+
* @returns Target token count after compaction
|
|
105
|
+
*/
|
|
106
|
+
export function calculateCompactionTarget(contextWindow, velocity, targetTurns = 10) {
|
|
107
|
+
const threshold = contextWindow * 0.75;
|
|
108
|
+
const headroomNeeded = velocity * targetTurns;
|
|
109
|
+
const toolBuffer = 5000; // Reserve for tool outputs
|
|
110
|
+
// Target: enough room for targetTurns + tool buffer
|
|
111
|
+
const target = threshold - headroomNeeded - toolBuffer;
|
|
112
|
+
// Don't compact below 20% of context (preserve important history)
|
|
113
|
+
const minTarget = contextWindow * 0.2;
|
|
114
|
+
return Math.max(target, minTarget);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Estimate compaction savings based on message scores.
|
|
118
|
+
*
|
|
119
|
+
* @param messages Messages with scores
|
|
120
|
+
* @param targetReduction Target tokens to remove
|
|
121
|
+
* @returns Indices of messages to drop
|
|
122
|
+
*/
|
|
123
|
+
export function selectMessagesForCompaction(messages, targetReduction) {
|
|
124
|
+
// Sort by score ascending (lowest value first)
|
|
125
|
+
const sorted = [...messages].sort((a, b) => a.score - b.score);
|
|
126
|
+
const toRemove = [];
|
|
127
|
+
let removed = 0;
|
|
128
|
+
for (const msg of sorted) {
|
|
129
|
+
if (removed >= targetReduction)
|
|
130
|
+
break;
|
|
131
|
+
// Never remove system messages (score 100) or very recent messages (score > 80)
|
|
132
|
+
if (msg.score >= 80)
|
|
133
|
+
continue;
|
|
134
|
+
toRemove.push(msg.index);
|
|
135
|
+
removed += msg.tokens;
|
|
136
|
+
}
|
|
137
|
+
return toRemove;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=predictive-compaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"predictive-compaction.js","sourceRoot":"","sources":["../../src/agent/predictive-compaction.ts"],"names":[],"mappings":"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"}
|