@visorcraft/idlehands 2.2.8 → 2.2.10

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.
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Information density scoring for smart compaction.
3
+ *
4
+ * Scores messages by how valuable they are to keep in context,
5
+ * so compaction can prioritize dropping low-value messages first.
6
+ *
7
+ * Higher score = more valuable = keep longer.
8
+ */
9
+ /**
10
+ * Score a conversation message for compaction priority.
11
+ * Returns 0-100 where higher = more important to keep.
12
+ */
13
+ export function scoreMessage(msg, index, totalMessages, opts) {
14
+ let score = 50; // baseline
15
+ const reasons = [];
16
+ const content = typeof msg.content === 'string' ? msg.content : JSON.stringify(msg.content ?? '');
17
+ const contentLen = content.length;
18
+ // ── Role-based scoring ──
19
+ if (msg.role === 'system') {
20
+ return { index, score: 100, reason: 'system prompt (never drop)' };
21
+ }
22
+ if (msg.role === 'user') {
23
+ score += 15; // User messages are important context
24
+ reasons.push('user');
25
+ // Last user message is critical
26
+ if (index >= totalMessages - 3) {
27
+ score += 30;
28
+ reasons.push('recent');
29
+ }
30
+ }
31
+ if (msg.role === 'assistant') {
32
+ // Assistant messages with code are high-value
33
+ if (content.includes('```')) {
34
+ score += 20;
35
+ reasons.push('has_code');
36
+ }
37
+ // Assistant messages with substantive text (not just tool calls)
38
+ if (contentLen > 200 && !msg.tool_calls?.length) {
39
+ score += 10;
40
+ reasons.push('substantive');
41
+ }
42
+ // Planning/thinking text is lower value once executed
43
+ if (msg.tool_calls?.length && contentLen < 100) {
44
+ score -= 15;
45
+ reasons.push('thin_planning');
46
+ }
47
+ }
48
+ if (msg.role === 'tool') {
49
+ // Tool results for read operations are generally low-value (can be re-read)
50
+ if (content.includes('[read_file]') || content.includes('[list_dir]')) {
51
+ score -= 20;
52
+ reasons.push('read_result');
53
+ }
54
+ // Error messages are important (prevent re-attempting)
55
+ if (content.includes('ERROR') || content.includes('error:') || content.includes('failed')) {
56
+ score += 15;
57
+ reasons.push('has_error');
58
+ }
59
+ // Very long tool results are candidates for dropping (bulky)
60
+ if (contentLen > 3000) {
61
+ score -= 10;
62
+ reasons.push('bulky');
63
+ }
64
+ }
65
+ // ── Recency bonus ──
66
+ // Messages near the end of the conversation are more valuable
67
+ const recencyRatio = index / totalMessages;
68
+ if (recencyRatio > 0.8) {
69
+ score += 25;
70
+ reasons.push('very_recent');
71
+ }
72
+ else if (recencyRatio > 0.5) {
73
+ score += 10;
74
+ reasons.push('recent_half');
75
+ }
76
+ // ── Active file relevance ──
77
+ if (opts?.activeFiles?.size) {
78
+ for (const file of opts.activeFiles) {
79
+ const basename = file.split('/').pop() ?? '';
80
+ if (content.includes(basename)) {
81
+ score += 15;
82
+ reasons.push('active_file');
83
+ break;
84
+ }
85
+ }
86
+ }
87
+ // ── Instruction relevance ──
88
+ if (opts?.lastInstruction) {
89
+ const keywords = opts.lastInstruction.toLowerCase().split(/\s+/).filter(w => w.length > 3);
90
+ const contentLower = content.toLowerCase();
91
+ const hits = keywords.filter(k => contentLower.includes(k)).length;
92
+ if (hits > 2) {
93
+ score += 10;
94
+ reasons.push('relevant');
95
+ }
96
+ }
97
+ return {
98
+ index,
99
+ score: Math.max(0, Math.min(100, score)),
100
+ reason: reasons.join(', ') || 'baseline',
101
+ };
102
+ }
103
+ /**
104
+ * Given scored messages, return indices to drop (sorted lowest score first)
105
+ * until the token budget target is met.
106
+ */
107
+ export function selectDropCandidates(scored, opts) {
108
+ const candidates = scored
109
+ .filter(s => s.index >= opts.minIndex && s.index <= opts.maxIndex && s.score < 100)
110
+ .sort((a, b) => a.score - b.score); // lowest score first
111
+ return candidates.slice(0, opts.targetDrop).map(c => c.index);
112
+ }
113
+ //# sourceMappingURL=compaction-scoring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction-scoring.js","sourceRoot":"","sources":["../../src/agent/compaction-scoring.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAwD,EACxD,KAAa,EACb,aAAqB,EACrB,IAKC;IAED,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC,WAAW;IAC3B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAClG,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAElC,2BAA2B;IAE3B,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;IACrE,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACxB,KAAK,IAAI,EAAE,CAAC,CAAC,sCAAsC;QACnD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAErB,gCAAgC;QAChC,IAAI,KAAK,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YAC/B,KAAK,IAAI,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC7B,8CAA8C;QAC9C,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,KAAK,IAAI,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;QAED,iEAAiE;QACjE,IAAI,UAAU,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;YAChD,KAAK,IAAI,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC;QAED,sDAAsD;QACtD,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;YAC/C,KAAK,IAAI,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACxB,4EAA4E;QAC5E,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACtE,KAAK,IAAI,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC;QAED,uDAAuD;QACvD,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1F,KAAK,IAAI,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5B,CAAC;QAED,6DAA6D;QAC7D,IAAI,UAAU,GAAG,IAAI,EAAE,CAAC;YACtB,KAAK,IAAI,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,8DAA8D;IAC9D,MAAM,YAAY,GAAG,KAAK,GAAG,aAAa,CAAC;IAC3C,IAAI,YAAY,GAAG,GAAG,EAAE,CAAC;QACvB,KAAK,IAAI,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC;SAAM,IAAI,YAAY,GAAG,GAAG,EAAE,CAAC;QAC9B,KAAK,IAAI,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC;IAED,8BAA8B;IAC9B,IAAI,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YAC7C,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/B,KAAK,IAAI,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC5B,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,IAAI,IAAI,EAAE,eAAe,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3F,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACnE,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACb,KAAK,IAAI,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK;QACL,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACxC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU;KACzC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAuB,EACvB,IAOC;IAED,MAAM,UAAU,GAAG,MAAM;SACtB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC;SAClF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB;IAE3D,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { SYS_CONTEXT_SCHEMA } from '../sys/context.js';
2
+ import { isLspTool, isMutationTool, isReadOnlyTool } from './tool-policy.js';
2
3
  const obj = (properties, required = []) => ({
3
4
  type: 'object',
4
5
  additionalProperties: false,
@@ -291,4 +292,100 @@ export function buildToolsSchema(opts) {
291
292
  }
292
293
  return final;
293
294
  }
295
+ function dedupeKeepTail(values, max) {
296
+ const out = [];
297
+ const seen = new Set();
298
+ for (let i = values.length - 1; i >= 0; i--) {
299
+ const v = (values[i] ?? '').trim();
300
+ if (!v || seen.has(v))
301
+ continue;
302
+ seen.add(v);
303
+ out.push(v);
304
+ if (out.length >= max)
305
+ break;
306
+ }
307
+ return out.reverse();
308
+ }
309
+ function shortenPath(value) {
310
+ const v = value.trim();
311
+ if (!v)
312
+ return v;
313
+ if (v.length <= 38)
314
+ return v;
315
+ const tail = v.slice(-35);
316
+ return `…${tail}`;
317
+ }
318
+ function contextHints(name, ctx) {
319
+ const lastTool = ctx.lastTool;
320
+ const recentTools = dedupeKeepTail(ctx.recentTools ?? [], 8);
321
+ const rawRecentPaths = dedupeKeepTail(ctx.recentPaths ?? [], 4);
322
+ const recentPaths = rawRecentPaths.map(shortenPath);
323
+ const hints = [];
324
+ // Focus continuity: if we just read, encourage minimal edits next.
325
+ if (name === 'read_file' || name === 'read_files' || name === 'list_dir') {
326
+ if (isMutationTool(lastTool ?? '')) {
327
+ hints.push('You recently edited files; read the target file to refresh current content first.');
328
+ }
329
+ if (recentPaths.length > 0) {
330
+ hints.push(`Recent targets: ${recentPaths.join(', ')}`);
331
+ }
332
+ if (isMutationTool(name)) {
333
+ // no-op
334
+ }
335
+ }
336
+ else if (name === 'search_files') {
337
+ if (recentPaths.length > 0) {
338
+ hints.push(`Prefer ${recentPaths[0]} style scope before broad scans.`);
339
+ }
340
+ }
341
+ else if (isReadOnlyTool(name) && isLspTool(name)) {
342
+ hints.push('Use only where symbol/location context is needed after opening the target file.');
343
+ }
344
+ else if (isMutationTool(name)) {
345
+ const lastReadPath = recentTools.includes('read_file')
346
+ ? (rawRecentPaths[0] ?? '')
347
+ : rawRecentPaths.at(-1) ?? '';
348
+ if (lastReadPath) {
349
+ hints.push(`Recent-file continuation likely: target ${shortenPath(lastReadPath)} first.`);
350
+ }
351
+ if (recentTools.includes('read_file') || recentTools.includes('read_files')) {
352
+ hints.push('Scope edits from recent reads; avoid broad rewrites.');
353
+ }
354
+ else {
355
+ hints.push('Read the exact target file first, then apply the smallest edit needed.');
356
+ }
357
+ }
358
+ else if (name === 'exec') {
359
+ if (recentTools.includes('exec')) {
360
+ hints.push('Avoid re-running identical commands without new context from the previous result.');
361
+ }
362
+ if (isMutationTool(lastTool ?? '')) {
363
+ hints.push('After file edits, run targeted checks (test/lint) if possible.');
364
+ }
365
+ }
366
+ return hints.filter(Boolean).slice(0, 2);
367
+ }
368
+ /**
369
+ * Return a tool schema array with extra context-specific description hints.
370
+ * This always deep-clones schemas to avoid mutating cached schema lists.
371
+ */
372
+ export function applyContextAwareToolDescriptions(schemas, context) {
373
+ if (!context || (!context.lastTool && (!context.recentTools?.length || context.recentTools.length === 0) && (!context.recentPaths?.length || context.recentPaths.length === 0))) {
374
+ return schemas;
375
+ }
376
+ return schemas.map((schema) => {
377
+ const name = schema.function.name;
378
+ const hints = contextHints(name, context);
379
+ if (!hints.length)
380
+ return schema;
381
+ const desc = schema.function.description?.trim() ?? '';
382
+ return {
383
+ ...schema,
384
+ function: {
385
+ ...schema.function,
386
+ description: `${desc} Context: ${hints.join(' ')}`,
387
+ },
388
+ };
389
+ });
390
+ }
294
391
  //# sourceMappingURL=tools-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools-schema.js","sourceRoot":"","sources":["../../src/agent/tools-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools-schema.js","sourceRoot":"","sources":["../../src/agent/tools-schema.ts"],"names":[],"mappings":"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"}
package/dist/agent.js CHANGED
@@ -20,7 +20,7 @@ import { CaptureManager } from './agent/capture.js';
20
20
  import { ClientPool } from './agent/client-pool.js';
21
21
  import { ConversationBranch } from './agent/conversation-branch.js';
22
22
  import { isLspTool, isMutationTool, isReadOnlyTool, planModeSummary } from './agent/tool-policy.js';
23
- import { buildToolsSchema } from './agent/tools-schema.js';
23
+ import { applyContextAwareToolDescriptions, buildToolsSchema } from './agent/tools-schema.js';
24
24
  import { OpenAIClient } from './client.js';
25
25
  import { loadProjectContext } from './context.js';
26
26
  import { loadGitContext, isGitDirty, stashWorkingTree } from './git.js';
@@ -238,6 +238,80 @@ export async function createSession(opts) {
238
238
  allowSpawnTask: spawnTaskEnabled,
239
239
  slimFast,
240
240
  });
241
+ const collectToolContext = () => {
242
+ const recentTools = recentToolUsage.map((row) => row.tool);
243
+ const recentPaths = recentToolUsage.flatMap((row) => row.paths);
244
+ const dedupeRecent = (items, max) => {
245
+ const seen = new Set();
246
+ const out = [];
247
+ for (let i = items.length - 1; i >= 0; i--) {
248
+ const item = items[i];
249
+ if (seen.has(item))
250
+ continue;
251
+ seen.add(item);
252
+ out.push(item);
253
+ if (out.length >= max)
254
+ break;
255
+ }
256
+ return out.reverse();
257
+ };
258
+ return {
259
+ lastTool: recentTools[recentTools.length - 1],
260
+ recentTools: dedupeRecent(recentTools, 12),
261
+ recentPaths: dedupeRecent(recentPaths, 8),
262
+ };
263
+ };
264
+ const extractToolPaths = (toolName, args) => {
265
+ const out = [];
266
+ const add = (value) => {
267
+ if (typeof value !== 'string')
268
+ return;
269
+ const v = value.trim();
270
+ if (!v)
271
+ return;
272
+ out.push(v);
273
+ };
274
+ if (!args || typeof args !== 'object')
275
+ return out;
276
+ if (toolName === 'read_files') {
277
+ const reqs = args.requests;
278
+ if (Array.isArray(reqs)) {
279
+ for (const r of reqs) {
280
+ if (r && typeof r === 'object' && 'path' in r) {
281
+ add(r.path);
282
+ }
283
+ }
284
+ }
285
+ }
286
+ if (toolName === 'search_files' || toolName === 'list_dir' || toolName === 'read_file') {
287
+ add(args.path);
288
+ }
289
+ if (toolName === 'exec' && typeof args.cwd === 'string') {
290
+ add(args.cwd);
291
+ }
292
+ if ((toolName === 'edit_range' ||
293
+ toolName === 'write_file' ||
294
+ toolName === 'edit_file' ||
295
+ toolName === 'insert_file' ||
296
+ toolName === 'lsp_diagnostics' ||
297
+ toolName === 'lsp_symbols' ||
298
+ toolName === 'lsp_hover' ||
299
+ toolName === 'lsp_definition' ||
300
+ toolName === 'lsp_references') &&
301
+ typeof args.path === 'string') {
302
+ add(args.path);
303
+ }
304
+ return out;
305
+ };
306
+ const recordToolUsageForHints = (toolName, args) => {
307
+ const paths = extractToolPaths(toolName, args);
308
+ recentToolUsage.push({
309
+ tool: toolName,
310
+ paths,
311
+ });
312
+ if (recentToolUsage.length > 60)
313
+ recentToolUsage.shift();
314
+ };
241
315
  const vault = vaultEnabled
242
316
  ? (opts.runtime?.vault ??
243
317
  new VaultStore({
@@ -461,6 +535,7 @@ export async function createSession(opts) {
461
535
  messages = [{ role: 'system', content: effective }];
462
536
  sessionMetaPending = sessionMeta;
463
537
  lastEditedPath = undefined;
538
+ recentToolUsage.length = 0;
464
539
  initialConnectionProbeDone = false;
465
540
  mcpToolsLoaded = !mcpLazySchemaMode;
466
541
  routeHysteresis.reset();
@@ -491,6 +566,8 @@ export async function createSession(opts) {
491
566
  let initialConnectionProbeDone = false;
492
567
  let lastEditedPath;
493
568
  let lastTurnTransaction;
569
+ // Context for adaptive tool schema hints (recent tool actions and paths).
570
+ const recentToolUsage = [];
494
571
  // Plan mode state (Phase 8)
495
572
  let planSteps = [];
496
573
  // Sub-agent queue state (Phase 18): enforce sequential execution on single-GPU setups.
@@ -2207,9 +2284,10 @@ export async function createSession(opts) {
2207
2284
  const forceToollessByRouting = fastLaneToolless && turns === 1;
2208
2285
  // On fast-lane subsequent turns, slim the schema to read-only tools.
2209
2286
  const useSlimFast = !forceToollessByRouting && fastLaneSlimTools && turns > 1;
2287
+ const schemaContext = collectToolContext();
2210
2288
  const toolsForTurn = cfg.no_tools || forceToollessRecoveryTurn || forceToollessByRouting
2211
2289
  ? []
2212
- : getToolsSchema(useSlimFast).filter((t) => !suppressedTools.has(t.function.name));
2290
+ : applyContextAwareToolDescriptions(getToolsSchema(useSlimFast).filter((t) => !suppressedTools.has(t.function.name)), schemaContext);
2213
2291
  const toolChoiceForTurn = cfg.no_tools || forceToollessRecoveryTurn || forceToollessByRouting ? 'none' : 'auto';
2214
2292
  const promptBytesEstimate = Buffer.byteLength(JSON.stringify(messages), 'utf8');
2215
2293
  const toolSchemaBytesEstimate = toolsForTurn.length
@@ -2969,8 +3047,12 @@ export async function createSession(opts) {
2969
3047
  if (!builtInFn && !lspToolCall && !hasMcpTool && !isSpawnTask)
2970
3048
  throw new Error(`unknown tool: ${name}`);
2971
3049
  // Keep parsed args by call-id so we can digest/archive tool outputs with context.
2972
- toolArgsByCallId.set(callId, args && typeof args === 'object' && !Array.isArray(args) ? args : {});
2973
- toolLoopGuard.registerCall(name, args && typeof args === 'object' && !Array.isArray(args) ? args : {}, callId);
3050
+ const parsedArgs = args && typeof args === 'object' && !Array.isArray(args)
3051
+ ? args
3052
+ : {};
3053
+ toolLoopGuard.registerCall(name, parsedArgs, callId);
3054
+ toolArgsByCallId.set(callId, parsedArgs);
3055
+ recordToolUsageForHints(name, parsedArgs);
2974
3056
  // Pre-dispatch argument validation.
2975
3057
  // - Required params
2976
3058
  // - Type/range/enums