@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.
@@ -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 && whole?.arguments) {
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.arguments) }
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.arguments ?? {})
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 > 1) {
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 && parsed?.arguments != null) {
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.arguments ?? {})
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 && sub?.arguments) {
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.arguments) }
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 last user message and inject them into the conversation. Used after any
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
- let lastUser = null;
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: `[compacted: ${dropped.length} messages archived to Vault - vault_search to recall]` });
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: `[auto-compacted: ${dropped.length} old messages dropped to stay within context budget. Do NOT re-read files or re-run commands you have already seen — use vault_search to recall prior results if needed.]` });
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
- resp = await client.chatStream({
1932
- model,
1933
- messages,
1934
- tools: getToolsSchema(),
1935
- tool_choice: 'auto',
1936
- temperature,
1937
- top_p: topP,
1938
- max_tokens: maxTokens,
1939
- extra: { cache_prompt: cfg.cache_prompt ?? true },
1940
- signal: ac.signal,
1941
- requestId: `r${reqCounter}`,
1942
- onToken: hookObj.onToken,
1943
- onFirstDelta,
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
- // Hard-break: after 4 consecutive identical reads, stop the session
2249
- if (consec >= 4) {
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 (!reusedCachedReadOnlyExec) {
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();