@visorcraft/idlehands 2.3.5 → 3.0.1

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.
@@ -131,6 +131,30 @@ export function normalizeExecCommandForSig(command) {
131
131
  break;
132
132
  prev = cmd;
133
133
  }
134
+ // Normalize awk/sed range-read commands to collapse different line ranges
135
+ // targeting the same file into one signature. This prevents the model from
136
+ // defeating loop detection by tweaking NR ranges on the same file.
137
+ {
138
+ // Strip leading cd && chains for analysis
139
+ const stripped = cmd.replace(/^(\s*cd\s+[^;&|]+\s*(?:&&|;)\s*)+/i, '').trim();
140
+ // awk 'NR>=M && NR<=N' FILE or awk 'NR>=M' FILE
141
+ const awkMatch = stripped.match(/^\s*awk\s+['"]NR\s*>=\s*\d+(?:\s*&&\s*NR\s*<=\s*\d+)?['"]\s+(.+)$/i);
142
+ if (awkMatch) {
143
+ const file = awkMatch[1].trim().replace(/['"]$/g, '');
144
+ // Preserve the cd prefix but normalize the awk range
145
+ const cdPrefix = cmd.slice(0, cmd.length - stripped.length);
146
+ cmd = cdPrefix + 'awk <range> ' + file;
147
+ return cmd;
148
+ }
149
+ // sed -n 'M,Np' FILE
150
+ const sedMatch = stripped.match(/^\s*sed\s+-n\s+['"]?\d+,\d+p['"]?\s+(.+)$/i);
151
+ if (sedMatch) {
152
+ const file = sedMatch[1].trim().replace(/['"]$/g, '');
153
+ const cdPrefix = cmd.slice(0, cmd.length - stripped.length);
154
+ cmd = cdPrefix + 'sed -n <range> ' + file;
155
+ return cmd;
156
+ }
157
+ }
134
158
  return cmd;
135
159
  }
136
160
  /**
@@ -157,6 +181,49 @@ export function detectSedAsRead(command) {
157
181
  ` read_file({ path: "${filePath}", offset: ${startLine}, limit: ${limit} })\n` +
158
182
  `This is faster, tracked by the read budget, and avoids unnecessary exec calls.`);
159
183
  }
184
+ /**
185
+ * Detect `awk 'NR>=M && NR<=N' file` patterns used as a substitute for read_file.
186
+ * Returns a redirect message if detected, or null if not an awk-as-read pattern.
187
+ */
188
+ export function detectAwkAsRead(command) {
189
+ let cmd = String(command || '').trim();
190
+ if (!cmd)
191
+ return null;
192
+ // Strip leading cd && chains
193
+ cmd = cmd.replace(/^(\s*cd\s+[^;&|]+\s*(?:&&|;)\s*)+/i, '').trim();
194
+ if (!cmd)
195
+ return null;
196
+ // Match: awk 'NR>=START && NR<=END' FILE
197
+ const matchRange = cmd.match(/^\s*awk\s+['"]NR\s*>=\s*(\d+)\s*&&\s*NR\s*<=\s*(\d+)['"]\s+(.+?)(?:\s*\|.*)?$/i);
198
+ if (matchRange) {
199
+ const startLine = parseInt(matchRange[1], 10);
200
+ const endLine = parseInt(matchRange[2], 10);
201
+ const filePath = matchRange[3].trim().replace(/['"]$/g, '');
202
+ const limit = endLine - startLine + 1;
203
+ return (`STOP: Do not use awk to read file sections. Use read_file instead:\n` +
204
+ ` read_file({ path: "${filePath}", offset: ${startLine}, limit: ${limit} })\n` +
205
+ `This is faster, tracked by the read budget, and avoids unnecessary exec calls.`);
206
+ }
207
+ // Match: awk 'NR>=START' FILE (no upper bound)
208
+ const matchFrom = cmd.match(/^\s*awk\s+['"]NR\s*>=\s*(\d+)['"]\s+(.+?)(?:\s*\|.*)?$/i);
209
+ if (matchFrom) {
210
+ const startLine = parseInt(matchFrom[1], 10);
211
+ const filePath = matchFrom[2].trim().replace(/['"]$/g, '');
212
+ return (`STOP: Do not use awk to read file sections. Use read_file instead:\n` +
213
+ ` read_file({ path: "${filePath}", offset: ${startLine}, limit: 100 })\n` +
214
+ `This is faster, tracked by the read budget, and avoids unnecessary exec calls.`);
215
+ }
216
+ // Match: awk 'NR==LINE' FILE (single line)
217
+ const matchSingle = cmd.match(/^\s*awk\s+['"]NR\s*==\s*(\d+)['"]\s+(.+?)(?:\s*\|.*)?$/i);
218
+ if (matchSingle) {
219
+ const line = parseInt(matchSingle[1], 10);
220
+ const filePath = matchSingle[2].trim().replace(/['"]$/g, '');
221
+ return (`STOP: Do not use awk to read single lines. Use read_file instead:\n` +
222
+ ` read_file({ path: "${filePath}", offset: ${line}, limit: 1 })\n` +
223
+ `This is faster, tracked by the read budget, and avoids unnecessary exec calls.`);
224
+ }
225
+ return null;
226
+ }
160
227
  /**
161
228
  * Extract the grep/search pattern from an exec grep command.
162
229
  * Returns { pattern, paths } or null if not a grep command.
@@ -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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"}
@@ -31,12 +31,15 @@ export class RulesSection {
31
31
  - Batch work: read all files you need, then apply all edits, then verify.
32
32
  - Be concise. Report what you changed and why.
33
33
  - Do NOT read every file in a directory. Use search_files to locate relevant code first, then read only the files that match.
34
- - If search_files returns 0 matches, try a broader pattern or a different search term.
35
34
  - Prefer search_files over exec grep — it produces structured results and is tracked by the read budget. Use exec grep only as a last resort.
36
35
  - Never use sed or awk via exec to read file sections. Use read_file with offset/limit parameters instead.
37
- - When searching for a string, start at the broadest reasonable scope. Do not search a single file first and then progressively widen search the project root or relevant subtree once.
36
+ - Discovery budget: after 2-3 failed searches (0 matches or irrelevant hits), stop broad searching, pick the most likely files from path/name clues, and proceed with a minimal concrete edit plan.
37
+ - Avoid repeated near-identical searches. If a search fails, change strategy (different keyword family, different subtree, or direct file inspection), not just tiny query variations.
38
+ - Execution order: (1) locate likely files, (2) apply minimal edits, (3) run targeted verification, (4) report. Do not stay in discovery when enough evidence exists to start editing.
39
+ - Use the smallest sufficient test scope first (targeted tests near changed code), then expand only if needed.
38
40
  - Do not re-run a test command that already passed unless you have made code changes since the last run.
39
41
  - After reading a file, remember its contents. Do not re-read the same file unless you have edited it since the last read.
42
+ - Completion criterion: once requested changes are implemented and verification passes, stop and report; do not continue exploratory refactors.
40
43
  - Anton (the autonomous task runner) is ONLY activated when the user explicitly invokes /anton. Never self-activate as Anton or start processing task files on your own.`;
41
44
  }
42
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../src/agent/prompt-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../src/agent/prompt-builder.ts"],"names":[],"mappings":"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"}
package/dist/agent.js CHANGED
@@ -2,7 +2,7 @@ import fs from 'node:fs/promises';
2
2
  import path from 'node:path';
3
3
  import { DEFAULT_SUB_AGENT_RESULT_TOKEN_CAP, DEFAULT_SUB_AGENT_SYSTEM_PROMPT, MCP_TOOLS_REQUEST_TOKEN, } from './agent/constants.js';
4
4
  import { AgentLoopBreak } from './agent/errors.js';
5
- import { execRcShouldSignalFailure, looksLikeReadOnlyExecCommand, detectSedAsRead, extractGrepPattern, detectCatHeadTailAsRead, extractFilePathFromReadCommand, extractTestFilter, extractGrepTargetFile, extractLogFilePath, readOnlyExecCacheable, withCachedExecObservationHint, withReplayedExecHint, } from './agent/exec-helpers.js';
5
+ import { execRcShouldSignalFailure, looksLikeReadOnlyExecCommand, detectSedAsRead, detectAwkAsRead, extractGrepPattern, detectCatHeadTailAsRead, extractFilePathFromReadCommand, extractTestFilter, extractGrepTargetFile, extractLogFilePath, readOnlyExecCacheable, withCachedExecObservationHint, withReplayedExecHint, } from './agent/exec-helpers.js';
6
6
  import { generateMinimalDiff, toolResultSummary, execCommandFromSig, formatDurationMs, looksLikePlanningNarration, capTextByApproxTokens, sanitizePathsInMessage, digestToolResult, } from './agent/formatting.js';
7
7
  import { autoPickModel } from './agent/model-pick.js';
8
8
  import { reviewArtifactKeys, looksLikeCodeReviewRequest, looksLikeReviewRetrievalRequest, retrievalAllowsStaleArtifact, parseReviewArtifactStalePolicy, parseReviewArtifact, reviewArtifactStaleReason, gitHead, normalizeModelsResponse, } from './agent/review-artifact.js';
@@ -1289,6 +1289,7 @@ export async function createSession(opts) {
1289
1289
  let runtimeRoutingModules = null;
1290
1290
  let runtimeRoutingUnavailable = false;
1291
1291
  let runtimeModelIdsCache = null;
1292
+ let runtimeModelThinkingModeCache = null;
1292
1293
  const loadRuntimeRoutingModules = async () => {
1293
1294
  if (runtimeRoutingUnavailable)
1294
1295
  return null;
@@ -1319,10 +1320,14 @@ export async function createSession(opts) {
1319
1320
  try {
1320
1321
  const runtimes = await mods.store.loadRuntimes();
1321
1322
  runtimeModelIdsCache = new Set(runtimes.models.filter((m) => m.enabled !== false).map((m) => m.id));
1323
+ runtimeModelThinkingModeCache = new Map(runtimes.models
1324
+ .filter((m) => m.enabled !== false)
1325
+ .map((m) => [m.id, m.thinking_mode]));
1322
1326
  return runtimeModelIdsCache;
1323
1327
  }
1324
1328
  catch {
1325
1329
  runtimeModelIdsCache = new Set();
1330
+ runtimeModelThinkingModeCache = new Map();
1326
1331
  return runtimeModelIdsCache;
1327
1332
  }
1328
1333
  };
@@ -1332,6 +1337,9 @@ export async function createSession(opts) {
1332
1337
  throw new Error('Runtime routing is unavailable in this build/environment');
1333
1338
  const runtimes = await mods.store.loadRuntimes();
1334
1339
  runtimeModelIdsCache = new Set(runtimes.models.filter((m) => m.enabled !== false).map((m) => m.id));
1340
+ runtimeModelThinkingModeCache = new Map(runtimes.models
1341
+ .filter((m) => m.enabled !== false)
1342
+ .map((m) => [m.id, m.thinking_mode]));
1335
1343
  const modelExists = runtimes.models.some((m) => m.enabled !== false && m.id === runtimeModelId);
1336
1344
  if (!modelExists) {
1337
1345
  throw new Error(`Runtime model not found or disabled: ${runtimeModelId}`);
@@ -1366,6 +1374,35 @@ export async function createSession(opts) {
1366
1374
  const wireCaptureHook = () => {
1367
1375
  attachCaptureHook(client);
1368
1376
  };
1377
+ const getRuntimeModelThinkingMode = async (runtimeModelId) => {
1378
+ if (!runtimeModelThinkingModeCache) {
1379
+ await loadRuntimeModelIds();
1380
+ }
1381
+ return runtimeModelThinkingModeCache?.get(runtimeModelId);
1382
+ };
1383
+ const applyThinkingDirectiveToMessages = (input, mode) => {
1384
+ if (!mode || mode === 'default')
1385
+ return input;
1386
+ const directive = mode === 'no_think' ? '/no_think' : '/think';
1387
+ let lastUserIdx = -1;
1388
+ for (let i = input.length - 1; i >= 0; i--) {
1389
+ if (input[i]?.role === 'user') {
1390
+ lastUserIdx = i;
1391
+ break;
1392
+ }
1393
+ }
1394
+ if (lastUserIdx < 0)
1395
+ return input;
1396
+ const target = input[lastUserIdx];
1397
+ if (!target || typeof target.content !== 'string')
1398
+ return input;
1399
+ const text = String(target.content);
1400
+ if (text.startsWith('/no_think') || text.startsWith('/think'))
1401
+ return input;
1402
+ const cloned = input.slice();
1403
+ cloned[lastUserIdx] = { ...target, content: `${directive}\n${text}` };
1404
+ return cloned;
1405
+ };
1369
1406
  wireCaptureHook();
1370
1407
  const replayEnabled = cfg.trifecta?.enabled !== false && cfg.trifecta?.replay?.enabled !== false;
1371
1408
  const replay = replayEnabled ? (opts.runtime?.replay ?? new ReplayStore()) : undefined;
@@ -2476,8 +2513,12 @@ export async function createSession(opts) {
2476
2513
  }
2477
2514
  }
2478
2515
  if (!resp) {
2516
+ const runtimeThinkingMode = primaryUsesRuntimeModel && primaryRoute?.model
2517
+ ? await getRuntimeModelThinkingMode(primaryRoute.model)
2518
+ : undefined;
2519
+ const effectiveMessages = applyThinkingDirectiveToMessages(messages, runtimeThinkingMode);
2479
2520
  const chatOptsBase = {
2480
- messages,
2521
+ messages: effectiveMessages,
2481
2522
  tools: toolsForTurn,
2482
2523
  tool_choice: toolChoiceForTurn,
2483
2524
  temperature,
@@ -2993,14 +3034,35 @@ export async function createSession(opts) {
2993
3034
  else {
2994
3035
  stagnantTurns++;
2995
3036
  }
2996
- if (stagnantTurns >= 3 && totalToolCallsThisAsk >= 10 && !stagnationWarned) {
2997
- stagnationWarned = true;
2998
- messages.push({
2999
- role: 'system',
3000
- content: '[stagnation detected] You have repeated the same actions for 3 turns with no new progress. ' +
3001
- 'STOP and reassess your approach. Try a different strategy, or if you are stuck, ' +
3002
- 'summarize what you have tried and ask for guidance.',
3003
- });
3037
+ if (stagnantTurns >= 3 && totalToolCallsThisAsk >= 10) {
3038
+ // Escalating stagnation response:
3039
+ // - First warning at 3 turns: soft nudge
3040
+ // - Re-warn every 3 turns: increasingly urgent
3041
+ // - At 6+ turns: force toolless recovery
3042
+ const stagnationPhase = Math.floor(stagnantTurns / 3);
3043
+ if (stagnantTurns === 3 && !stagnationWarned) {
3044
+ stagnationWarned = true;
3045
+ messages.push({
3046
+ role: 'system',
3047
+ content: '[stagnation detected] You have repeated the same actions for 3 turns with no new progress. ' +
3048
+ 'STOP and reassess your approach. Try a different strategy, or if you are stuck, ' +
3049
+ 'summarize what you have tried and ask for guidance.',
3050
+ });
3051
+ }
3052
+ else if (stagnantTurns >= 6 && stagnantTurns % 3 === 0) {
3053
+ // Re-fire every 3 stagnant turns with escalating urgency
3054
+ messages.push({
3055
+ role: 'system',
3056
+ content: `[stagnation critical] You have been stuck for ${stagnantTurns} consecutive turns ` +
3057
+ 'doing the same thing. Your tools are being disabled for the next turn. ' +
3058
+ 'You MUST explain what is blocking you and propose a completely different approach.',
3059
+ });
3060
+ shouldForceToollessRecovery = true;
3061
+ }
3062
+ else if (stagnantTurns >= 6 && !shouldForceToollessRecovery) {
3063
+ // Between escalation points, still force recovery if stuck long enough
3064
+ shouldForceToollessRecovery = true;
3065
+ }
3004
3066
  }
3005
3067
  }
3006
3068
  // Track whether a mutation happened since a given signature was last seen.
@@ -3346,6 +3408,19 @@ export async function createSession(opts) {
3346
3408
  });
3347
3409
  return { id: callId, content: sedRedirect };
3348
3410
  }
3411
+ // Detect awk 'NR>=M && NR<=N' used as a substitute for read_file
3412
+ const awkRedirect = detectAwkAsRead(args.command);
3413
+ if (awkRedirect) {
3414
+ await emitToolCall(callId, name, args);
3415
+ await emitToolResult({
3416
+ id: callId,
3417
+ name,
3418
+ success: false,
3419
+ summary: 'use read_file instead of awk',
3420
+ result: '',
3421
+ });
3422
+ return { id: callId, content: awkRedirect };
3423
+ }
3349
3424
  // Track widening grep patterns (same search string, expanding paths)
3350
3425
  const grepInfo = extractGrepPattern(args.command);
3351
3426
  if (grepInfo) {