@visorcraft/idlehands 1.1.15 → 1.1.17
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/tool-calls.js +26 -9
- package/dist/agent/tool-calls.js.map +1 -1
- package/dist/agent.js +201 -34
- package/dist/agent.js.map +1 -1
- package/dist/bot/commands.js +9 -0
- package/dist/bot/commands.js.map +1 -1
- package/dist/bot/discord.js +14 -3
- package/dist/bot/discord.js.map +1 -1
- package/dist/bot/format.js +89 -0
- package/dist/bot/format.js.map +1 -1
- package/dist/bot/telegram.js +4 -1
- package/dist/bot/telegram.js.map +1 -1
- package/dist/cli/commands/session.js +8 -1
- package/dist/cli/commands/session.js.map +1 -1
- package/dist/harnesses.js +2 -1
- package/dist/harnesses.js.map +1 -1
- package/dist/tools.js +41 -9
- package/dist/tools.js.map +1 -1
- package/package.json +1 -1
package/dist/agent/tool-calls.js
CHANGED
|
@@ -10,16 +10,29 @@ export function parseToolCallsFromContent(content) {
|
|
|
10
10
|
return null;
|
|
11
11
|
}
|
|
12
12
|
};
|
|
13
|
+
const normalizeImplicitArgs = (obj) => {
|
|
14
|
+
if (!obj || typeof obj !== 'object' || Array.isArray(obj))
|
|
15
|
+
return {};
|
|
16
|
+
if (obj.arguments != null)
|
|
17
|
+
return obj.arguments;
|
|
18
|
+
const out = {};
|
|
19
|
+
for (const [k, v] of Object.entries(obj)) {
|
|
20
|
+
if (k === 'name' || k === 'type' || k === 'id' || k === 'function')
|
|
21
|
+
continue;
|
|
22
|
+
out[k] = v;
|
|
23
|
+
}
|
|
24
|
+
return out;
|
|
25
|
+
};
|
|
13
26
|
// Case 1: whole content is JSON
|
|
14
27
|
const whole = tryParse(trimmed);
|
|
15
28
|
if (whole?.tool_calls && Array.isArray(whole.tool_calls))
|
|
16
29
|
return whole.tool_calls;
|
|
17
|
-
if (whole?.name
|
|
30
|
+
if (whole?.name) {
|
|
18
31
|
return [
|
|
19
32
|
{
|
|
20
33
|
id: 'call_0',
|
|
21
34
|
type: 'function',
|
|
22
|
-
function: { name: String(whole.name), arguments: JSON.stringify(whole
|
|
35
|
+
function: { name: String(whole.name), arguments: typeof whole.arguments === 'string' ? whole.arguments : JSON.stringify(normalizeImplicitArgs(whole)) }
|
|
23
36
|
}
|
|
24
37
|
];
|
|
25
38
|
}
|
|
@@ -34,7 +47,7 @@ export function parseToolCallsFromContent(content) {
|
|
|
34
47
|
type: 'function',
|
|
35
48
|
function: {
|
|
36
49
|
name: String(item.name),
|
|
37
|
-
arguments: typeof item.arguments === 'string' ? item.arguments : JSON.stringify(item
|
|
50
|
+
arguments: typeof item.arguments === 'string' ? item.arguments : JSON.stringify(normalizeImplicitArgs(item))
|
|
38
51
|
}
|
|
39
52
|
}));
|
|
40
53
|
}
|
|
@@ -83,7 +96,7 @@ export function parseToolCallsFromContent(content) {
|
|
|
83
96
|
}
|
|
84
97
|
}
|
|
85
98
|
}
|
|
86
|
-
if (objects.length
|
|
99
|
+
if (objects.length >= 1) {
|
|
87
100
|
for (const [i, obj] of objects.entries()) {
|
|
88
101
|
const parsed = tryParse(obj);
|
|
89
102
|
if (parsed?.tool_calls && Array.isArray(parsed.tool_calls)) {
|
|
@@ -93,13 +106,13 @@ export function parseToolCallsFromContent(content) {
|
|
|
93
106
|
}
|
|
94
107
|
continue;
|
|
95
108
|
}
|
|
96
|
-
if (parsed?.name
|
|
109
|
+
if (parsed?.name) {
|
|
97
110
|
seqCalls.push({
|
|
98
111
|
id: `call_seq_${i}`,
|
|
99
112
|
type: 'function',
|
|
100
113
|
function: {
|
|
101
114
|
name: String(parsed.name),
|
|
102
|
-
arguments: typeof parsed.arguments === 'string' ? parsed.arguments : JSON.stringify(parsed
|
|
115
|
+
arguments: typeof parsed.arguments === 'string' ? parsed.arguments : JSON.stringify(normalizeImplicitArgs(parsed))
|
|
103
116
|
}
|
|
104
117
|
});
|
|
105
118
|
}
|
|
@@ -115,12 +128,12 @@ export function parseToolCallsFromContent(content) {
|
|
|
115
128
|
const sub = tryParse(trimmed.slice(start, end + 1));
|
|
116
129
|
if (sub?.tool_calls && Array.isArray(sub.tool_calls))
|
|
117
130
|
return sub.tool_calls;
|
|
118
|
-
if (sub?.name
|
|
131
|
+
if (sub?.name) {
|
|
119
132
|
return [
|
|
120
133
|
{
|
|
121
134
|
id: 'call_0',
|
|
122
135
|
type: 'function',
|
|
123
|
-
function: { name: String(sub.name), arguments: typeof sub.arguments === 'string' ? sub.arguments : JSON.stringify(sub
|
|
136
|
+
function: { name: String(sub.name), arguments: typeof sub.arguments === 'string' ? sub.arguments : JSON.stringify(normalizeImplicitArgs(sub)) }
|
|
124
137
|
}
|
|
125
138
|
];
|
|
126
139
|
}
|
|
@@ -262,7 +275,7 @@ export function getMissingRequiredParams(toolName, args) {
|
|
|
262
275
|
const TOOL_ALLOWED_KEYS = {
|
|
263
276
|
read_file: ['path', 'offset', 'limit', 'search', 'context', 'format', 'max_bytes'],
|
|
264
277
|
read_files: ['requests'],
|
|
265
|
-
write_file: ['path', 'content'],
|
|
278
|
+
write_file: ['path', 'content', 'overwrite', 'force'],
|
|
266
279
|
apply_patch: ['patch', 'files', 'strip'],
|
|
267
280
|
edit_range: ['path', 'start_line', 'end_line', 'replacement'],
|
|
268
281
|
edit_file: ['path', 'old_text', 'new_text', 'replace_all'],
|
|
@@ -394,6 +407,10 @@ export function getArgValidationIssues(toolName, args) {
|
|
|
394
407
|
issues.push({ field: 'path', message: 'must be a string', value: args.path });
|
|
395
408
|
if (args.content != null && !isStr(args.content))
|
|
396
409
|
issues.push({ field: 'content', message: 'must be a string', value: args.content });
|
|
410
|
+
if (args.overwrite != null && !isBool(args.overwrite))
|
|
411
|
+
issues.push({ field: 'overwrite', message: 'must be a boolean', value: args.overwrite });
|
|
412
|
+
if (args.force != null && !isBool(args.force))
|
|
413
|
+
issues.push({ field: 'force', message: 'must be a boolean', value: args.force });
|
|
397
414
|
break;
|
|
398
415
|
case 'edit_file':
|
|
399
416
|
if (args.path != null && !isStr(args.path))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-calls.js","sourceRoot":"","sources":["../../src/agent/tool-calls.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-calls.js","sourceRoot":"","sources":["../../src/agent/tool-calls.ts"],"names":[],"mappings":"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"}
|
package/dist/agent.js
CHANGED
|
@@ -27,6 +27,7 @@ function makeAbortController() {
|
|
|
27
27
|
return new AbortController();
|
|
28
28
|
}
|
|
29
29
|
const CACHED_EXEC_OBSERVATION_HINT = '[idlehands hint] Reused cached output for repeated read-only exec call (unchanged observation).';
|
|
30
|
+
const CACHED_READ_OBSERVATION_HINT = '[idlehands hint] Reused cached output for repeated identical read call.';
|
|
30
31
|
function looksLikeReadOnlyExecCommand(command) {
|
|
31
32
|
const cmd = String(command || '').trim().toLowerCase();
|
|
32
33
|
if (!cmd)
|
|
@@ -54,6 +55,12 @@ function looksLikeReadOnlyExecCommand(command) {
|
|
|
54
55
|
return true;
|
|
55
56
|
if (/\|\s*(?:grep|rg|ag|ack)\b/.test(cmd))
|
|
56
57
|
return true;
|
|
58
|
+
// Additional read-only commands: file info, path lookup, system/user info
|
|
59
|
+
if (/^\s*(?:file|which|type|uname|env|printenv|id|whoami|pwd)\b/.test(cmd))
|
|
60
|
+
return true;
|
|
61
|
+
// Git read-only subcommands that aren't covered above
|
|
62
|
+
if (/\bgit\b[^\n|;&]*\b(?:blame|remote|config\s+--(?:get|list|global|local|system))\b/.test(cmd))
|
|
63
|
+
return true;
|
|
57
64
|
return false;
|
|
58
65
|
}
|
|
59
66
|
function execRcShouldSignalFailure(command) {
|
|
@@ -102,6 +109,18 @@ function readOnlyExecCacheable(content) {
|
|
|
102
109
|
return false;
|
|
103
110
|
}
|
|
104
111
|
}
|
|
112
|
+
function withCachedReadObservationHint(content) {
|
|
113
|
+
if (!content)
|
|
114
|
+
return CACHED_READ_OBSERVATION_HINT;
|
|
115
|
+
if (content.includes(CACHED_READ_OBSERVATION_HINT))
|
|
116
|
+
return content;
|
|
117
|
+
// Keep cached read replay lightweight to avoid re-inflating context.
|
|
118
|
+
const lines = String(content).split(/\r?\n/);
|
|
119
|
+
const previewLines = lines.slice(0, 12);
|
|
120
|
+
const omitted = Math.max(0, lines.length - previewLines.length);
|
|
121
|
+
const trailer = omitted > 0 ? `\n# ... (${omitted} more lines omitted; use previous identical read result)` : '';
|
|
122
|
+
return `${CACHED_READ_OBSERVATION_HINT}\n${previewLines.join('\n')}${trailer}`;
|
|
123
|
+
}
|
|
105
124
|
function ensureInformativeAssistantText(text, ctx) {
|
|
106
125
|
if (String(text ?? '').trim())
|
|
107
126
|
return text;
|
|
@@ -110,6 +129,15 @@ function ensureInformativeAssistantText(text, ctx) {
|
|
|
110
129
|
}
|
|
111
130
|
return `I have no user-visible response text for this turn (turn=${ctx.turns}). Please try again or rephrase your request.`;
|
|
112
131
|
}
|
|
132
|
+
function isContextWindowExceededError(err) {
|
|
133
|
+
const status = Number(err?.status ?? NaN);
|
|
134
|
+
const msg = String(err?.message ?? err ?? '');
|
|
135
|
+
if (status === 413)
|
|
136
|
+
return true;
|
|
137
|
+
if (!msg)
|
|
138
|
+
return false;
|
|
139
|
+
return /(exceeds?\s+the\s+available\s+context\s+size|exceed_context|context\s+size|context\s+window|maximum\s+context\s+length|too\s+many\s+tokens|request\s*\(\d+\s*tokens\))/i.test(msg);
|
|
140
|
+
}
|
|
113
141
|
/** Errors that should break the outer agent loop, not be caught by per-tool handlers */
|
|
114
142
|
class AgentLoopBreak extends Error {
|
|
115
143
|
constructor(message) {
|
|
@@ -125,7 +153,9 @@ Rules:
|
|
|
125
153
|
- Never use spawn_task to bypass confirmation/safety restrictions (for example blocked package installs). If a command is blocked, adapt the plan or ask the user for approval mode changes.
|
|
126
154
|
- Read the target file before editing. You need the exact text for search/replace.
|
|
127
155
|
- Use read_file with search=... to jump to relevant code; avoid reading whole files.
|
|
156
|
+
- Never call read_file/read_files/list_dir twice in a row with identical arguments (same path/options). Reuse the previous result instead.
|
|
128
157
|
- Prefer apply_patch or edit_range for code edits (token-efficient). Use edit_file only when exact old_text replacement is necessary.
|
|
158
|
+
- write_file is for new files or explicit full rewrites only. Existing non-empty files require overwrite=true/force=true.
|
|
129
159
|
- Use insert_file for insertions (prepend/append/line).
|
|
130
160
|
- Use exec to run commands, tests, builds; check results before reporting success.
|
|
131
161
|
- When running commands in a subdirectory, use exec's cwd parameter — NOT "cd /path && cmd". Each exec call is a fresh shell; cd does not persist.
|
|
@@ -258,7 +288,7 @@ function buildToolsSchema(opts) {
|
|
|
258
288
|
type: 'function',
|
|
259
289
|
function: {
|
|
260
290
|
name: 'read_file',
|
|
261
|
-
description: 'Read a bounded slice of a file.',
|
|
291
|
+
description: 'Read a bounded slice of a file. Never repeat an identical call consecutively; reuse the prior result.',
|
|
262
292
|
parameters: obj({
|
|
263
293
|
path: str(),
|
|
264
294
|
offset: int(1, 1_000_000),
|
|
@@ -274,7 +304,7 @@ function buildToolsSchema(opts) {
|
|
|
274
304
|
type: 'function',
|
|
275
305
|
function: {
|
|
276
306
|
name: 'read_files',
|
|
277
|
-
description: 'Batch read bounded file slices.',
|
|
307
|
+
description: 'Batch read bounded file slices. Never repeat an identical call consecutively; reuse the prior result.',
|
|
278
308
|
parameters: obj({
|
|
279
309
|
requests: {
|
|
280
310
|
type: 'array',
|
|
@@ -298,8 +328,8 @@ function buildToolsSchema(opts) {
|
|
|
298
328
|
type: 'function',
|
|
299
329
|
function: {
|
|
300
330
|
name: 'write_file',
|
|
301
|
-
description: 'Write file (atomic, backup).',
|
|
302
|
-
parameters: obj({ path: str(), content: str() }, ['path', 'content']),
|
|
331
|
+
description: 'Write file (atomic, backup). Existing non-empty files require overwrite=true (or force=true).',
|
|
332
|
+
parameters: obj({ path: str(), content: str(), overwrite: bool(), force: bool() }, ['path', 'content']),
|
|
303
333
|
},
|
|
304
334
|
},
|
|
305
335
|
{
|
|
@@ -350,7 +380,7 @@ function buildToolsSchema(opts) {
|
|
|
350
380
|
type: 'function',
|
|
351
381
|
function: {
|
|
352
382
|
name: 'list_dir',
|
|
353
|
-
description: 'List directory entries.',
|
|
383
|
+
description: 'List directory entries. Never repeat an identical call consecutively for the same path/options; reuse the prior result.',
|
|
354
384
|
parameters: obj({ path: str(), recursive: bool(), max_entries: int(1, 500) }, ['path']),
|
|
355
385
|
},
|
|
356
386
|
},
|
|
@@ -1068,6 +1098,7 @@ export async function createSession(opts) {
|
|
|
1068
1098
|
noConfirm: cfg.no_confirm || cfg.approval_mode === 'yolo',
|
|
1069
1099
|
dryRun: cfg.dry_run,
|
|
1070
1100
|
mode: cfg.mode ?? 'code',
|
|
1101
|
+
approvalMode: cfg.approval_mode,
|
|
1071
1102
|
allowedWriteRoots: cfg.allowed_write_roots,
|
|
1072
1103
|
requireDirPinForMutations: cfg.require_dir_pin_for_mutations,
|
|
1073
1104
|
dirPinned: cfg.dir_pinned,
|
|
@@ -1147,21 +1178,68 @@ export async function createSession(opts) {
|
|
|
1147
1178
|
const clearPlan = () => {
|
|
1148
1179
|
planSteps = [];
|
|
1149
1180
|
};
|
|
1181
|
+
const getLatestObjectiveText = () => {
|
|
1182
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
1183
|
+
const m = messages[i];
|
|
1184
|
+
if (m.role !== 'user')
|
|
1185
|
+
continue;
|
|
1186
|
+
const text = userContentToText((m.content ?? '')).trim();
|
|
1187
|
+
if (!text)
|
|
1188
|
+
continue;
|
|
1189
|
+
if (text.startsWith('[system]'))
|
|
1190
|
+
continue;
|
|
1191
|
+
if (text.startsWith('[Trifecta Vault'))
|
|
1192
|
+
continue;
|
|
1193
|
+
if (text.startsWith('[Vault context'))
|
|
1194
|
+
continue;
|
|
1195
|
+
return text;
|
|
1196
|
+
}
|
|
1197
|
+
return '';
|
|
1198
|
+
};
|
|
1199
|
+
const compactionVaultGuidance = () => {
|
|
1200
|
+
if (!vault)
|
|
1201
|
+
return '';
|
|
1202
|
+
if (vaultMode === 'active' || activeVaultTools) {
|
|
1203
|
+
return 'Vault memory is available. Retrieve prior context with vault_search(query="...") when needed.';
|
|
1204
|
+
}
|
|
1205
|
+
if (vaultMode === 'passive') {
|
|
1206
|
+
return 'Vault memory is in passive mode; relevant entries may be auto-injected when available.';
|
|
1207
|
+
}
|
|
1208
|
+
return '';
|
|
1209
|
+
};
|
|
1210
|
+
const buildCompactionSystemNote = (kind, dropped) => {
|
|
1211
|
+
const prefix = kind === 'auto'
|
|
1212
|
+
? `[auto-compacted: ${dropped} old messages dropped to stay within context budget.]`
|
|
1213
|
+
: `[compacted: ${dropped} messages dropped.]`;
|
|
1214
|
+
const guidance = compactionVaultGuidance();
|
|
1215
|
+
return guidance ? `${prefix} ${guidance}` : prefix;
|
|
1216
|
+
};
|
|
1217
|
+
let lastAskInstructionText = '';
|
|
1218
|
+
let lastCompactionReminderObjective = '';
|
|
1219
|
+
const injectCompactionReminder = (reason) => {
|
|
1220
|
+
const objective = (getLatestObjectiveText() || lastAskInstructionText || '').trim();
|
|
1221
|
+
if (!objective)
|
|
1222
|
+
return;
|
|
1223
|
+
const clippedObjective = objective.length > 1600 ? `${objective.slice(0, 1600)}\n[truncated]` : objective;
|
|
1224
|
+
if (clippedObjective === lastCompactionReminderObjective)
|
|
1225
|
+
return;
|
|
1226
|
+
lastCompactionReminderObjective = clippedObjective;
|
|
1227
|
+
const vaultHint = compactionVaultGuidance();
|
|
1228
|
+
messages.push({
|
|
1229
|
+
role: 'user',
|
|
1230
|
+
content: `[system] Context was compacted (${reason}). Continue the SAME task from the current state; do not restart.\n` +
|
|
1231
|
+
`Most recent user objective:\n${clippedObjective}` +
|
|
1232
|
+
(vaultHint ? `\n\n${vaultHint}` : ''),
|
|
1233
|
+
});
|
|
1234
|
+
};
|
|
1150
1235
|
// Session-level vault context injection: search vault for entries relevant to
|
|
1151
|
-
// the
|
|
1152
|
-
// compaction to restore context the model lost when messages were dropped.
|
|
1236
|
+
// the latest substantive objective and inject them into the conversation.
|
|
1237
|
+
// Used after compaction to restore context the model lost when messages were dropped.
|
|
1153
1238
|
let lastVaultInjectionQuery = '';
|
|
1154
1239
|
const injectVaultContext = async () => {
|
|
1155
1240
|
if (!vault)
|
|
1156
1241
|
return;
|
|
1157
|
-
|
|
1158
|
-
for (let j = messages.length - 1; j >= 0; j--) {
|
|
1159
|
-
if (messages[j].role === 'user') {
|
|
1160
|
-
lastUser = messages[j];
|
|
1161
|
-
break;
|
|
1162
|
-
}
|
|
1163
|
-
}
|
|
1164
|
-
const userText = userContentToText((lastUser?.content ?? '')).trim();
|
|
1242
|
+
const userText = (getLatestObjectiveText() || lastAskInstructionText || '').trim();
|
|
1165
1243
|
if (!userText)
|
|
1166
1244
|
return;
|
|
1167
1245
|
const query = userText.slice(0, 200);
|
|
@@ -1241,8 +1319,11 @@ export async function createSession(opts) {
|
|
|
1241
1319
|
}
|
|
1242
1320
|
messages = compacted;
|
|
1243
1321
|
if (dropped.length) {
|
|
1244
|
-
messages.push({ role: 'system', content:
|
|
1322
|
+
messages.push({ role: 'system', content: buildCompactionSystemNote('manual', dropped.length) });
|
|
1245
1323
|
await injectVaultContext().catch(() => { });
|
|
1324
|
+
if (opts?.reason || opts?.force) {
|
|
1325
|
+
injectCompactionReminder(opts?.reason ?? 'history compaction');
|
|
1326
|
+
}
|
|
1246
1327
|
}
|
|
1247
1328
|
}
|
|
1248
1329
|
return {
|
|
@@ -1619,6 +1700,8 @@ export async function createSession(opts) {
|
|
|
1619
1700
|
return { text: finalText, turns, toolCalls };
|
|
1620
1701
|
};
|
|
1621
1702
|
const rawInstructionText = userContentToText(instruction).trim();
|
|
1703
|
+
lastAskInstructionText = rawInstructionText;
|
|
1704
|
+
lastCompactionReminderObjective = '';
|
|
1622
1705
|
await hookManager.emit('ask_start', { askId, instruction: rawInstructionText });
|
|
1623
1706
|
const projectDir = cfg.dir ?? process.cwd();
|
|
1624
1707
|
const reviewKeys = reviewArtifactKeys(projectDir);
|
|
@@ -1742,12 +1825,18 @@ export async function createSession(opts) {
|
|
|
1742
1825
|
const blockedExecAttemptsBySig = new Map();
|
|
1743
1826
|
// Cache successful read-only exec observations by exact signature.
|
|
1744
1827
|
const execObservationCacheBySig = new Map();
|
|
1828
|
+
// Cache successful read_file/read_files/list_dir results by exact signature.
|
|
1829
|
+
const readFileCacheBySig = new Map();
|
|
1830
|
+
const READ_FILE_CACHE_TOOLS = new Set(['read_file', 'read_files', 'list_dir']);
|
|
1745
1831
|
// Prevent repeating the same "stop rerunning" reminder every turn.
|
|
1746
1832
|
const readOnlyExecHintedSigs = new Set();
|
|
1747
1833
|
// Keep a lightweight breadcrumb for diagnostics on partial failures.
|
|
1748
1834
|
let lastSuccessfulTestRun = null;
|
|
1749
1835
|
// One-time nudge to prevent post-success churn after green test runs.
|
|
1750
1836
|
let finalizeAfterTestsNudgeUsed = false;
|
|
1837
|
+
// Recover once/twice from server-side context-overflow 400/413s by forcing compaction and retrying.
|
|
1838
|
+
let overflowCompactionAttempts = 0;
|
|
1839
|
+
const MAX_OVERFLOW_COMPACTION_ATTEMPTS = 2;
|
|
1751
1840
|
const archiveToolOutputForVault = async (msg) => {
|
|
1752
1841
|
if (!lens || !vault || msg.role !== 'tool' || typeof msg.content !== 'string')
|
|
1753
1842
|
return msg;
|
|
@@ -1902,8 +1991,9 @@ export async function createSession(opts) {
|
|
|
1902
1991
|
}
|
|
1903
1992
|
messages = compacted;
|
|
1904
1993
|
if (dropped.length) {
|
|
1905
|
-
messages.push({ role: 'system', content:
|
|
1994
|
+
messages.push({ role: 'system', content: buildCompactionSystemNote('auto', dropped.length) });
|
|
1906
1995
|
await injectVaultContext().catch(() => { });
|
|
1996
|
+
injectCompactionReminder('auto context-budget compaction');
|
|
1907
1997
|
}
|
|
1908
1998
|
const ac = makeAbortController();
|
|
1909
1999
|
inFlight = ac;
|
|
@@ -1928,20 +2018,43 @@ export async function createSession(opts) {
|
|
|
1928
2018
|
};
|
|
1929
2019
|
let resp;
|
|
1930
2020
|
try {
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
2021
|
+
try {
|
|
2022
|
+
resp = await client.chatStream({
|
|
2023
|
+
model,
|
|
2024
|
+
messages,
|
|
2025
|
+
tools: getToolsSchema(),
|
|
2026
|
+
tool_choice: 'auto',
|
|
2027
|
+
temperature,
|
|
2028
|
+
top_p: topP,
|
|
2029
|
+
max_tokens: maxTokens,
|
|
2030
|
+
extra: { cache_prompt: cfg.cache_prompt ?? true },
|
|
2031
|
+
signal: ac.signal,
|
|
2032
|
+
requestId: `r${reqCounter}`,
|
|
2033
|
+
onToken: hookObj.onToken,
|
|
2034
|
+
onFirstDelta,
|
|
2035
|
+
});
|
|
2036
|
+
// Successful response resets overflow recovery budget.
|
|
2037
|
+
overflowCompactionAttempts = 0;
|
|
2038
|
+
}
|
|
2039
|
+
catch (e) {
|
|
2040
|
+
if (isContextWindowExceededError(e) && overflowCompactionAttempts < MAX_OVERFLOW_COMPACTION_ATTEMPTS) {
|
|
2041
|
+
overflowCompactionAttempts++;
|
|
2042
|
+
const useHardCompaction = overflowCompactionAttempts > 1;
|
|
2043
|
+
const compacted = await compactHistory({
|
|
2044
|
+
force: true,
|
|
2045
|
+
hard: useHardCompaction,
|
|
2046
|
+
reason: 'server context-window overflow recovery',
|
|
2047
|
+
});
|
|
2048
|
+
const mode = useHardCompaction ? 'hard' : 'force';
|
|
2049
|
+
messages.push({
|
|
2050
|
+
role: 'system',
|
|
2051
|
+
content: `[auto-recovery] Previous request exceeded model context window. Ran ${mode} compaction ` +
|
|
2052
|
+
`(freed ~${compacted.freedTokens} tokens, dropped ${compacted.droppedMessages} messages). Continue from latest state; do not restart work.`,
|
|
2053
|
+
});
|
|
2054
|
+
continue;
|
|
2055
|
+
}
|
|
2056
|
+
throw e;
|
|
2057
|
+
}
|
|
1945
2058
|
}
|
|
1946
2059
|
finally {
|
|
1947
2060
|
clearTimeout(timer);
|
|
@@ -2184,6 +2297,8 @@ export async function createSession(opts) {
|
|
|
2184
2297
|
// Repeated read-only exec calls can be served from cache instead of hard-breaking.
|
|
2185
2298
|
const repeatedReadOnlyExecSigs = new Set();
|
|
2186
2299
|
const readOnlyExecTurnHints = [];
|
|
2300
|
+
// Repeated read_file/read_files/list_dir calls can be served from cache.
|
|
2301
|
+
const repeatedReadFileSigs = new Set();
|
|
2187
2302
|
// Track whether a mutation happened since a given signature was last seen.
|
|
2188
2303
|
// (Tool-loop is single-threaded across turns; this is safe to keep in-memory.)
|
|
2189
2304
|
for (const sig of turnSigs) {
|
|
@@ -2242,11 +2357,52 @@ export async function createSession(opts) {
|
|
|
2242
2357
|
consecutiveCounts.set(sig, 1);
|
|
2243
2358
|
}
|
|
2244
2359
|
const consec = consecutiveCounts.get(sig) ?? 1;
|
|
2360
|
+
const isReadFileTool = READ_FILE_CACHE_TOOLS.has(toolName);
|
|
2361
|
+
const hardBreakAt = isReadFileTool ? 6 : 4;
|
|
2362
|
+
// At 3x, inject vault context and first warning
|
|
2245
2363
|
if (consec >= 3) {
|
|
2246
2364
|
await injectVaultContext().catch(() => { });
|
|
2365
|
+
if (consec === 3) {
|
|
2366
|
+
let warningMsg = null;
|
|
2367
|
+
if (toolName === 'read_file') {
|
|
2368
|
+
warningMsg = 'Stop repeatedly reading the same file over and over.';
|
|
2369
|
+
}
|
|
2370
|
+
else if (toolName === 'read_files') {
|
|
2371
|
+
warningMsg = 'Stop repeatedly reading the same files over and over.';
|
|
2372
|
+
}
|
|
2373
|
+
else if (toolName === 'list_dir') {
|
|
2374
|
+
warningMsg = 'Stop repeatedly reading the same directory over and over.';
|
|
2375
|
+
}
|
|
2376
|
+
if (warningMsg) {
|
|
2377
|
+
messages.push({
|
|
2378
|
+
role: 'system',
|
|
2379
|
+
content: `${warningMsg} The content has not changed between reads. Reuse the prior result and move to the next step.`,
|
|
2380
|
+
});
|
|
2381
|
+
}
|
|
2382
|
+
}
|
|
2247
2383
|
}
|
|
2248
|
-
//
|
|
2249
|
-
if (consec >=
|
|
2384
|
+
// At 2x, serve from cache if available AND inject final warning
|
|
2385
|
+
if (consec >= 2 && isReadFileTool) {
|
|
2386
|
+
if (consec === 4) {
|
|
2387
|
+
let resourceType = 'resource';
|
|
2388
|
+
if (toolName === 'read_file')
|
|
2389
|
+
resourceType = 'file';
|
|
2390
|
+
else if (toolName === 'read_files')
|
|
2391
|
+
resourceType = 'files';
|
|
2392
|
+
else if (toolName === 'list_dir')
|
|
2393
|
+
resourceType = 'directory';
|
|
2394
|
+
messages.push({
|
|
2395
|
+
role: 'system',
|
|
2396
|
+
content: `CRITICAL: DO NOT make another identical call for this ${resourceType}. It HAS NOT CHANGED. You already have the content. Move on to the NEXT step NOW.`,
|
|
2397
|
+
});
|
|
2398
|
+
}
|
|
2399
|
+
if (readFileCacheBySig.has(sig)) {
|
|
2400
|
+
repeatedReadFileSigs.add(sig);
|
|
2401
|
+
continue;
|
|
2402
|
+
}
|
|
2403
|
+
}
|
|
2404
|
+
// Hard-break at threshold
|
|
2405
|
+
if (consec >= hardBreakAt) {
|
|
2250
2406
|
throw new Error(`tool ${toolName}: identical read repeated ${consec}x consecutively; breaking loop. ` +
|
|
2251
2407
|
`The resource content has not changed between reads.`);
|
|
2252
2408
|
}
|
|
@@ -2403,6 +2559,7 @@ export async function createSession(opts) {
|
|
|
2403
2559
|
const sig = `${name}:${rawArgs || '{}'}`;
|
|
2404
2560
|
let content = '';
|
|
2405
2561
|
let reusedCachedReadOnlyExec = false;
|
|
2562
|
+
let reusedCachedReadTool = false;
|
|
2406
2563
|
if (name === 'exec' && repeatedReadOnlyExecSigs.has(sig)) {
|
|
2407
2564
|
const cached = execObservationCacheBySig.get(sig);
|
|
2408
2565
|
if (cached) {
|
|
@@ -2410,7 +2567,14 @@ export async function createSession(opts) {
|
|
|
2410
2567
|
reusedCachedReadOnlyExec = true;
|
|
2411
2568
|
}
|
|
2412
2569
|
}
|
|
2413
|
-
if (
|
|
2570
|
+
if (READ_FILE_CACHE_TOOLS.has(name) && repeatedReadFileSigs.has(sig)) {
|
|
2571
|
+
const cached = readFileCacheBySig.get(sig);
|
|
2572
|
+
if (cached) {
|
|
2573
|
+
content = withCachedReadObservationHint(cached);
|
|
2574
|
+
reusedCachedReadTool = true;
|
|
2575
|
+
}
|
|
2576
|
+
}
|
|
2577
|
+
if (!reusedCachedReadOnlyExec && !reusedCachedReadTool) {
|
|
2414
2578
|
if (isSpawnTask) {
|
|
2415
2579
|
content = await runSpawnTask(args);
|
|
2416
2580
|
}
|
|
@@ -2423,6 +2587,9 @@ export async function createSession(opts) {
|
|
|
2423
2587
|
};
|
|
2424
2588
|
const value = await builtInFn(callCtx, args);
|
|
2425
2589
|
content = typeof value === 'string' ? value : JSON.stringify(value);
|
|
2590
|
+
if (READ_FILE_CACHE_TOOLS.has(name) && typeof content === 'string' && !content.startsWith('ERROR:')) {
|
|
2591
|
+
readFileCacheBySig.set(sig, content);
|
|
2592
|
+
}
|
|
2426
2593
|
if (name === 'exec') {
|
|
2427
2594
|
// Successful exec clears blocked-loop counters.
|
|
2428
2595
|
blockedExecAttemptsBySig.clear();
|