jiva-core 0.3.3-dev.24b219d → 0.3.3-dev.bd250bd
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/core/client-agent.d.ts.map +1 -1
- package/dist/core/client-agent.js +26 -3
- package/dist/core/client-agent.js.map +1 -1
- package/dist/core/config.d.ts +73 -17
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +9 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/dual-agent.d.ts.map +1 -1
- package/dist/core/dual-agent.js +52 -37
- package/dist/core/dual-agent.js.map +1 -1
- package/dist/core/manager-agent.d.ts +1 -0
- package/dist/core/manager-agent.d.ts.map +1 -1
- package/dist/core/manager-agent.js +13 -5
- package/dist/core/manager-agent.js.map +1 -1
- package/dist/core/utils/serialize-agent-context.d.ts.map +1 -1
- package/dist/core/utils/serialize-agent-context.js +5 -5
- package/dist/core/utils/serialize-agent-context.js.map +1 -1
- package/dist/core/worker-agent.d.ts +7 -0
- package/dist/core/worker-agent.d.ts.map +1 -1
- package/dist/core/worker-agent.js +228 -38
- package/dist/core/worker-agent.js.map +1 -1
- package/dist/interfaces/cli/index.js +58 -0
- package/dist/interfaces/cli/index.js.map +1 -1
- package/dist/interfaces/cli/setup-wizard.d.ts.map +1 -1
- package/dist/interfaces/cli/setup-wizard.js +92 -0
- package/dist/interfaces/cli/setup-wizard.js.map +1 -1
- package/dist/interfaces/http/session-manager.d.ts.map +1 -1
- package/dist/interfaces/http/session-manager.js +18 -0
- package/dist/interfaces/http/session-manager.js.map +1 -1
- package/dist/models/krutrim.d.ts +1 -1
- package/dist/models/krutrim.d.ts.map +1 -1
- package/dist/models/krutrim.js +4 -3
- package/dist/models/krutrim.js.map +1 -1
- package/dist/models/orchestrator.d.ts +24 -0
- package/dist/models/orchestrator.d.ts.map +1 -1
- package/dist/models/orchestrator.js +40 -6
- package/dist/models/orchestrator.js.map +1 -1
- package/package.json +1 -1
|
@@ -55,7 +55,41 @@ export class WorkerAgent {
|
|
|
55
55
|
};
|
|
56
56
|
const conversationHistory = [];
|
|
57
57
|
const toolsUsed = [];
|
|
58
|
+
// Tracks every exact tool-call signature (toolName + serialized args) executed
|
|
59
|
+
// during this subtask. Used to prevent the same call from being repeated in a
|
|
60
|
+
// later iteration — e.g. reading the same file twice in consecutive turns.
|
|
61
|
+
const executedToolSignatures = new Set();
|
|
62
|
+
// Tracks consecutive failures per (toolName:args) signature.
|
|
63
|
+
// Drives the per-tool circuit breaker: warn at 2, hard-stop at 3.
|
|
64
|
+
const toolFailureCounts = new Map();
|
|
58
65
|
let iterationCount = 0;
|
|
66
|
+
// ── 2+2 API-level JSON parse failure strategy ─────────────────────────────
|
|
67
|
+
// Priority: if a dedicated tool-calling LLM is configured, use it from the
|
|
68
|
+
// very first iteration (it reliably serialises tool args as standard JSON).
|
|
69
|
+
// The reasoning model then serves as the phase-2 fallback.
|
|
70
|
+
// If no tool-calling model is configured the roles are reversed: reasoning
|
|
71
|
+
// model is phase 1 and there is no phase-2 fallback.
|
|
72
|
+
//
|
|
73
|
+
// Flow when tool-calling model IS configured:
|
|
74
|
+
// Phase 1 – tool-calling model (up to API_PARSE_FAIL_THRESHOLD=2 failures)
|
|
75
|
+
// Phase 2 – reasoning model (up to SECONDARY_MODEL_ATTEMPTS=2 failures)
|
|
76
|
+
// → hard-stop after 4 total failures; failedTools is non-empty so the
|
|
77
|
+
// Client's data-driven CompletionSignal fires (prevents infinite retries)
|
|
78
|
+
//
|
|
79
|
+
// Flow when NO tool-calling model is configured:
|
|
80
|
+
// Phase 1 – reasoning model (up to API_PARSE_FAIL_THRESHOLD=2 failures)
|
|
81
|
+
// → hard-stop immediately (no secondary model available)
|
|
82
|
+
const API_PARSE_FAIL_THRESHOLD = 2; // phase-1 failures before switching phases
|
|
83
|
+
const SECONDARY_MODEL_ATTEMPTS = 2; // extra attempts on the phase-2 model
|
|
84
|
+
let apiJsonParseFailures = 0; // total JSON-parse failures so far
|
|
85
|
+
// toolCallingIsMain: true when the tool-calling model is the primary model for this run
|
|
86
|
+
const toolCallingIsMain = this.orchestrator.hasToolCallingModel();
|
|
87
|
+
// useToolCallingFallback: flag passed to orchestrator.chatWithFallback()
|
|
88
|
+
// true → use the tool-calling model
|
|
89
|
+
// false → use the reasoning model
|
|
90
|
+
let useToolCallingFallback = toolCallingIsMain; // start with tool-calling model if available
|
|
91
|
+
let phaseSwitched = false; // true once we have swapped phases
|
|
92
|
+
const API_JSON_PARSE_FAILURE_SIG = 'api_json_parse:{}'; // key in toolFailureCounts
|
|
59
93
|
// Build system prompt for Worker
|
|
60
94
|
const personaPrompt = this.personaManager?.getSystemPromptAddition() || '';
|
|
61
95
|
let systemContent = `You are the Worker Agent in a two-agent system.
|
|
@@ -190,23 +224,114 @@ Please complete this subtask and report your findings.`,
|
|
|
190
224
|
}
|
|
191
225
|
let response;
|
|
192
226
|
try {
|
|
193
|
-
response = await this.orchestrator.
|
|
227
|
+
response = await this.orchestrator.chatWithFallback({
|
|
194
228
|
messages: conversationHistory,
|
|
195
229
|
tools: tools.length > 0 ? tools : undefined,
|
|
196
230
|
temperature: 0.1, // Low temperature for deterministic tool execution
|
|
197
|
-
});
|
|
231
|
+
}, useToolCallingFallback);
|
|
198
232
|
}
|
|
199
233
|
catch (error) {
|
|
200
234
|
// API error (e.g., invalid tool call parameters)
|
|
201
235
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
202
236
|
logger.warn(` [Worker] API error - ${errorMsg.substring(0, 100)}...`);
|
|
203
|
-
//
|
|
237
|
+
// Detect the specific "Failed to parse tool call arguments as JSON" pattern.
|
|
238
|
+
// These 400 errors originate from the model generating malformed JSON for
|
|
239
|
+
// tool call arguments (e.g. large content with special Unicode characters).
|
|
240
|
+
// A generic "retry with error feedback" loop cannot fix this — the same model
|
|
241
|
+
// will keep producing the same malformed output. We need a different approach.
|
|
242
|
+
const isJsonParseError = errorMsg.includes('Failed to parse tool call arguments as JSON') ||
|
|
243
|
+
errorMsg.includes('tool_use_failed');
|
|
244
|
+
if (isJsonParseError) {
|
|
245
|
+
apiJsonParseFailures++;
|
|
246
|
+
// Record in toolFailureCounts so failedTools is always non-empty on exit.
|
|
247
|
+
// This ensures the Client's data-driven CompletionSignal fires (strategy=escalate)
|
|
248
|
+
// rather than the LLM-based path that would return strategy=retry, causing an
|
|
249
|
+
// infinite correction-subtask loop.
|
|
250
|
+
toolFailureCounts.set(API_JSON_PARSE_FAILURE_SIG, {
|
|
251
|
+
count: apiJsonParseFailures,
|
|
252
|
+
lastError: errorMsg,
|
|
253
|
+
});
|
|
254
|
+
const totalBudget = API_PARSE_FAIL_THRESHOLD + SECONDARY_MODEL_ATTEMPTS;
|
|
255
|
+
if (!phaseSwitched && apiJsonParseFailures >= API_PARSE_FAIL_THRESHOLD) {
|
|
256
|
+
// Phase 1 exhausted — attempt a phase switch
|
|
257
|
+
phaseSwitched = true;
|
|
258
|
+
if (toolCallingIsMain) {
|
|
259
|
+
// Tool-calling model (primary) failed → fall back to reasoning model
|
|
260
|
+
useToolCallingFallback = false;
|
|
261
|
+
logger.warn(` [Worker] Tool-calling model failed JSON tool-call serialisation ` +
|
|
262
|
+
`${apiJsonParseFailures} time(s) — switching to reasoning model for ` +
|
|
263
|
+
`up to ${SECONDARY_MODEL_ATTEMPTS} more attempt(s)`);
|
|
264
|
+
conversationHistory.push({
|
|
265
|
+
role: 'user',
|
|
266
|
+
content: `NOTE: The previous model had trouble formatting its tool call as valid JSON. ` +
|
|
267
|
+
`A different model is now being used. Please re-attempt the task — ` +
|
|
268
|
+
`use the same tools but ensure all argument values are valid JSON ` +
|
|
269
|
+
`(avoid raw special characters inside string values; escape them if needed).`,
|
|
270
|
+
});
|
|
271
|
+
continue; // retry with reasoning model
|
|
272
|
+
}
|
|
273
|
+
else if (this.orchestrator.hasToolCallingModel()) {
|
|
274
|
+
// Reasoning model (primary) failed → switch to tool-calling model
|
|
275
|
+
useToolCallingFallback = true;
|
|
276
|
+
logger.warn(` [Worker] Reasoning model failed JSON tool-call serialisation ` +
|
|
277
|
+
`${apiJsonParseFailures} time(s) — switching to tool-calling LLM for ` +
|
|
278
|
+
`up to ${SECONDARY_MODEL_ATTEMPTS} more attempt(s)`);
|
|
279
|
+
conversationHistory.push({
|
|
280
|
+
role: 'user',
|
|
281
|
+
content: `NOTE: The previous model had trouble formatting its tool call as valid JSON. ` +
|
|
282
|
+
`A different model is now being used. Please re-attempt the task — ` +
|
|
283
|
+
`use the same tools but ensure all argument values are valid JSON ` +
|
|
284
|
+
`(avoid raw special characters inside string values; escape them if needed).`,
|
|
285
|
+
});
|
|
286
|
+
continue; // retry with fallback model active
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
// No secondary model configured — hard-stop immediately
|
|
290
|
+
logger.error(` [Worker] JSON serialisation failure — no secondary model configured. ` +
|
|
291
|
+
`Hard-stopping after ${apiJsonParseFailures} attempt(s).`);
|
|
292
|
+
finalResult =
|
|
293
|
+
`Task failed: The reasoning model could not generate valid tool-call JSON ` +
|
|
294
|
+
`after ${apiJsonParseFailures} attempt(s). ` +
|
|
295
|
+
`Error: ${errorMsg}. ` +
|
|
296
|
+
`Tip: configure a tool-calling LLM in Jiva settings to enable automatic fallback.`;
|
|
297
|
+
break;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
else if (apiJsonParseFailures >= totalBudget) {
|
|
301
|
+
// Phase 2 also exhausted — hard-stop
|
|
302
|
+
const primaryLabel = toolCallingIsMain ? 'tool-calling' : 'reasoning';
|
|
303
|
+
const secondaryLabel = toolCallingIsMain ? 'reasoning' : 'tool-calling';
|
|
304
|
+
logger.error(` [Worker] Both ${primaryLabel} and ${secondaryLabel} models failed JSON serialisation. ` +
|
|
305
|
+
`Hard-stopping after ${apiJsonParseFailures} total attempt(s).`);
|
|
306
|
+
finalResult =
|
|
307
|
+
`Task failed: Both the ${primaryLabel} model and the ${secondaryLabel} fallback model ` +
|
|
308
|
+
`could not generate valid tool-call JSON after ${apiJsonParseFailures} total attempt(s). ` +
|
|
309
|
+
`Error: ${errorMsg}.`;
|
|
310
|
+
break;
|
|
311
|
+
}
|
|
312
|
+
// Still within budget — add informative error and let the (possibly switched) model retry
|
|
313
|
+
logger.info(` [Worker] JSON parse failure ${apiJsonParseFailures}/${totalBudget} — ` +
|
|
314
|
+
`retrying with ${useToolCallingFallback ? 'tool-calling model' : 'reasoning model'} ` +
|
|
315
|
+
`(attempt ${iteration + 2}/${this.maxIterations})`);
|
|
316
|
+
conversationHistory.push({
|
|
317
|
+
role: 'user',
|
|
318
|
+
content: `ERROR: The model produced a tool call with invalid JSON arguments.\n` +
|
|
319
|
+
`Specific error: ${errorMsg}\n\n` +
|
|
320
|
+
`This usually happens with large file content containing special characters. ` +
|
|
321
|
+
`To fix this:\n` +
|
|
322
|
+
`1. Escape all special characters in string values (\\n, \\t, \\\\, etc.)\n` +
|
|
323
|
+
`2. Wrap Unicode symbols as plain ASCII equivalents (e.g. use [ ] instead of ☐)\n` +
|
|
324
|
+
`3. If the content is very long, write it to the file in smaller chunks\n` +
|
|
325
|
+
`Please retry the tool call with corrected arguments.`,
|
|
326
|
+
});
|
|
327
|
+
continue;
|
|
328
|
+
}
|
|
329
|
+
// Non-JSON-parse API error — regular retry with error feedback
|
|
204
330
|
if (iteration >= this.maxIterations - 1) {
|
|
205
331
|
logger.error(` [Worker] Max retries reached after API errors`);
|
|
206
332
|
finalResult = `Failed to complete subtask due to repeated errors: ${errorMsg}`;
|
|
207
333
|
break;
|
|
208
334
|
}
|
|
209
|
-
// Add error feedback to conversation so Worker can correct itself
|
|
210
335
|
logger.info(` [Worker] Retrying with error feedback (attempt ${iteration + 2}/${this.maxIterations})`);
|
|
211
336
|
conversationHistory.push({
|
|
212
337
|
role: 'user',
|
|
@@ -226,32 +351,42 @@ Please complete this subtask and report your findings.`,
|
|
|
226
351
|
const args = JSON.parse(tc.function.arguments);
|
|
227
352
|
return `${tc.function.name}:${JSON.stringify(args)}`;
|
|
228
353
|
});
|
|
229
|
-
// Check if we're about to repeat the same tool call
|
|
354
|
+
// Check if we're about to repeat the same tool call (name-only check)
|
|
230
355
|
const lastToolCalls = toolsUsed.slice(-2);
|
|
231
356
|
const isRepetitive = proposedTools.some(proposed => {
|
|
232
357
|
const toolName = proposed.split(':')[0];
|
|
233
358
|
return lastToolCalls.filter(t => t === toolName).length >= 2;
|
|
234
359
|
});
|
|
235
|
-
|
|
360
|
+
// Exact-signature check: catches same tool + same args within a subtask.
|
|
361
|
+
// This catches the case where the model reads the same file twice in
|
|
362
|
+
// consecutive iterations before the name-only check triggers.
|
|
363
|
+
const exactDuplicate = proposedTools.some(sig => executedToolSignatures.has(sig));
|
|
364
|
+
if ((isRepetitive && iteration >= 2) || exactDuplicate) {
|
|
236
365
|
logger.warn(` [Worker] Detected repetitive tool usage - interrupting loop`);
|
|
237
366
|
conversationHistory.push({
|
|
238
367
|
role: 'user',
|
|
239
|
-
content: `STOP: You are
|
|
368
|
+
content: `STOP: You are calling the same tool with the same arguments repeatedly. Do NOT repeat it again.
|
|
240
369
|
|
|
241
|
-
|
|
242
|
-
1.
|
|
243
|
-
2.
|
|
244
|
-
3. If navigation is already done, the task is COMPLETE - just provide your summary
|
|
370
|
+
You have two choices:
|
|
371
|
+
1. If there is a DIFFERENT next step required to complete the subtask, take it now using the appropriate tool.
|
|
372
|
+
2. If all required work is genuinely complete, respond with a thorough description of everything accomplished — do NOT call any more tools.
|
|
245
373
|
|
|
246
|
-
Do
|
|
374
|
+
Do not assume the task is complete just because one step succeeded. Review what the subtask requires and check whether you have actually finished all of it.`,
|
|
247
375
|
});
|
|
248
376
|
continue; // Skip executing the repetitive tools, let model reconsider
|
|
249
377
|
}
|
|
250
378
|
for (const toolCall of response.toolCalls) {
|
|
251
379
|
const toolName = toolCall.function.name;
|
|
252
380
|
logger.info(` [Worker] Tool: ${toolName}`);
|
|
381
|
+
// Parse args outside the try block so the catch block can reference
|
|
382
|
+
// them for the failure signature (circuit breaker key).
|
|
383
|
+
let args = {};
|
|
384
|
+
try {
|
|
385
|
+
args = JSON.parse(toolCall.function.arguments);
|
|
386
|
+
}
|
|
387
|
+
catch { /* use empty */ }
|
|
388
|
+
const failureSig = `${toolName}:${JSON.stringify(args)}`;
|
|
253
389
|
try {
|
|
254
|
-
const args = JSON.parse(toolCall.function.arguments);
|
|
255
390
|
orchestrationLogger.logWorkerToolCall(toolName, args);
|
|
256
391
|
// Handle spawn_agent specially
|
|
257
392
|
if (toolName === 'spawn_agent') {
|
|
@@ -266,6 +401,7 @@ Do NOT call the same tool again. Either move to the NEXT required step, or if th
|
|
|
266
401
|
maxIterations: args.maxIterations,
|
|
267
402
|
});
|
|
268
403
|
toolsUsed.push(toolName);
|
|
404
|
+
executedToolSignatures.add(`${toolName}:${JSON.stringify(args)}`);
|
|
269
405
|
const resultText = `Sub-agent spawned with persona '${spawnResult.persona}' completed the task.
|
|
270
406
|
|
|
271
407
|
RESULT:
|
|
@@ -282,6 +418,7 @@ Tools used: ${spawnResult.toolsUsed.join(', ')}`;
|
|
|
282
418
|
// Regular MCP tool execution
|
|
283
419
|
const result = await this.mcpManager.getClient().executeTool(toolName, args);
|
|
284
420
|
toolsUsed.push(toolName);
|
|
421
|
+
executedToolSignatures.add(`${toolName}:${JSON.stringify(args)}`);
|
|
285
422
|
// Check if tool returned images (multimodal support)
|
|
286
423
|
let toolResultText;
|
|
287
424
|
let hasImages = false;
|
|
@@ -303,14 +440,38 @@ Tools used: ${spawnResult.toolsUsed.join(', ')}`;
|
|
|
303
440
|
logger.debug(` ✓ [Worker] Tool ${toolName} completed`);
|
|
304
441
|
}
|
|
305
442
|
catch (error) {
|
|
443
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
306
444
|
logger.error(` ✗ [Worker] Tool ${toolName} failed:`, error);
|
|
307
445
|
orchestrationLogger.logWorkerToolResult(toolName, false, false);
|
|
446
|
+
// Always push the raw tool error so the LLM sees what happened
|
|
308
447
|
conversationHistory.push({
|
|
309
448
|
role: 'tool',
|
|
310
449
|
name: toolName,
|
|
311
450
|
tool_call_id: toolCall.id,
|
|
312
|
-
content: `Error: ${
|
|
451
|
+
content: `Error: ${errorMsg}`,
|
|
313
452
|
});
|
|
453
|
+
// Per-tool circuit breaker: track failure count by exact (tool, args) signature
|
|
454
|
+
const prev = toolFailureCounts.get(failureSig) || { count: 0, lastError: '' };
|
|
455
|
+
const newCount = prev.count + 1;
|
|
456
|
+
toolFailureCounts.set(failureSig, { count: newCount, lastError: errorMsg });
|
|
457
|
+
if (newCount === 2) {
|
|
458
|
+
// Second failure: explicit warning to the LLM to change approach
|
|
459
|
+
conversationHistory.push({
|
|
460
|
+
role: 'user',
|
|
461
|
+
content: `WARNING: Tool \`${toolName}\` has now failed twice with the same arguments.\nError: ${errorMsg}\n\nDo NOT call this tool with the same arguments again. Try a different approach, different arguments, or a completely different tool to achieve the same goal.`,
|
|
462
|
+
});
|
|
463
|
+
logger.warn(` [Worker] Tool ${toolName} has failed twice — warning injected`);
|
|
464
|
+
}
|
|
465
|
+
else if (newCount >= 3) {
|
|
466
|
+
// Third failure: hard stop — block the tool and force honest exit
|
|
467
|
+
// Add to executedToolSignatures so the exact-dedup guard prevents further calls
|
|
468
|
+
executedToolSignatures.add(failureSig);
|
|
469
|
+
conversationHistory.push({
|
|
470
|
+
role: 'user',
|
|
471
|
+
content: `HARD STOP: Tool \`${toolName}\` has failed ${newCount} times and will NOT succeed with these arguments.\nFinal error: ${errorMsg}\n\nYou MUST stop attempting this tool. Respond now with an honest report of what you tried and why it failed. Do not call any more tools — just describe the failure clearly so the user can be informed.`,
|
|
472
|
+
});
|
|
473
|
+
logger.warn(` [Worker] Tool ${toolName} circuit breaker triggered after ${newCount} failures`);
|
|
474
|
+
}
|
|
314
475
|
}
|
|
315
476
|
}
|
|
316
477
|
// If images are pending, attach them to next model call
|
|
@@ -337,12 +498,19 @@ Tools used: ${spawnResult.toolsUsed.join(', ')}`;
|
|
|
337
498
|
}
|
|
338
499
|
// After processing tool calls, check if we should prompt for completion
|
|
339
500
|
// This helps Worker recognize when task is done instead of over-iterating
|
|
340
|
-
const shouldPromptCompletion = this.shouldPromptForCompletion(
|
|
501
|
+
const shouldPromptCompletion = this.shouldPromptForCompletion(toolsUsed, iteration);
|
|
341
502
|
if (shouldPromptCompletion) {
|
|
342
503
|
logger.debug(` [Worker] Prompting for task completion check`);
|
|
343
504
|
conversationHistory.push({
|
|
344
505
|
role: 'user',
|
|
345
|
-
content: `
|
|
506
|
+
content: `Your most recent tools have run. Review the subtask instruction and the tool results above.
|
|
507
|
+
|
|
508
|
+
Is the subtask fully complete?
|
|
509
|
+
|
|
510
|
+
- If YES (all required work is done): respond with a thorough, detailed account of exactly what was accomplished — include file paths, content written, commands run, outputs observed, and any other relevant facts. Do NOT call any more tools.
|
|
511
|
+
- If NO (more work remains): continue immediately with the next required tool call. Do not stop early.
|
|
512
|
+
|
|
513
|
+
IMPORTANT: Do not claim completion unless the core deliverable (e.g. the file written, the data fetched, the action performed) is confirmed done. A directory being created is NOT the same as the file inside it being written.`,
|
|
346
514
|
});
|
|
347
515
|
}
|
|
348
516
|
// Continue to process tool results
|
|
@@ -366,28 +534,56 @@ Tools used: ${spawnResult.toolsUsed.join(', ')}`;
|
|
|
366
534
|
return false;
|
|
367
535
|
});
|
|
368
536
|
if (hasSuccessfulTools && !hasToolFailures) {
|
|
369
|
-
// Tools
|
|
370
|
-
|
|
371
|
-
|
|
537
|
+
// Tools ran but the model never produced a conclusive text response.
|
|
538
|
+
// Report the actual tools used so the Client coherence check can verify
|
|
539
|
+
// whether the right work was done — do NOT claim overall success here.
|
|
540
|
+
finalResult = `Max iterations reached. Tools executed (${toolsUsed.length}): ${toolsUsed.join(', ')}. The model did not produce a final confirmation. Validation required.`;
|
|
541
|
+
logger.warn(`[Worker] Max iterations reached after ${toolsUsed.length} tool(s) — no conclusive response from model`);
|
|
372
542
|
}
|
|
373
543
|
else if (hasToolFailures) {
|
|
374
|
-
|
|
375
|
-
|
|
544
|
+
// Build a specific failure summary from the circuit breaker data
|
|
545
|
+
const failureSummary = [...toolFailureCounts.entries()]
|
|
546
|
+
.filter(([, v]) => v.count > 0)
|
|
547
|
+
.map(([sig, v]) => {
|
|
548
|
+
const name = sig.split(':')[0];
|
|
549
|
+
return `${name} (${v.count} attempt${v.count > 1 ? 's' : ''}) — ${v.lastError}`;
|
|
550
|
+
})
|
|
551
|
+
.join('; ');
|
|
552
|
+
finalResult = `Subtask could not be completed. Tool failures: ${failureSummary || 'see errors above'}.`;
|
|
553
|
+
logger.warn(`[Worker] Max iterations reached with tool failures: ${failureSummary}`);
|
|
376
554
|
}
|
|
377
555
|
else {
|
|
378
556
|
finalResult = 'Subtask could not be completed within iteration limit.';
|
|
379
557
|
logger.warn(`[Worker] Max iterations reached with no work done`);
|
|
380
558
|
}
|
|
381
559
|
}
|
|
382
|
-
//
|
|
560
|
+
// Build structured failedTools list from the circuit breaker map.
|
|
561
|
+
// Include all failures (count >= 1) so even a single failed attempt is
|
|
562
|
+
// visible to Client and synthesis — not just those that hit the 3-attempt cap.
|
|
563
|
+
const failedTools = [...toolFailureCounts.entries()].map(([sig, v]) => {
|
|
564
|
+
const colonIdx = sig.indexOf(':');
|
|
565
|
+
const tName = sig.substring(0, colonIdx);
|
|
566
|
+
let tArgs = {};
|
|
567
|
+
try {
|
|
568
|
+
tArgs = JSON.parse(sig.substring(colonIdx + 1));
|
|
569
|
+
}
|
|
570
|
+
catch { /* ignore */ }
|
|
571
|
+
return { toolName: tName, args: tArgs, lastError: v.lastError, attempts: v.count };
|
|
572
|
+
});
|
|
573
|
+
// Determine success: only true when the model produced a natural conclusive
|
|
574
|
+
// response (broke out of the loop normally). The max-iterations fallback
|
|
575
|
+
// paths are all treated as non-success so the Client validates properly.
|
|
383
576
|
const success = !!finalResult &&
|
|
384
577
|
!finalResult.includes('could not be completed') &&
|
|
385
|
-
!finalResult.includes('encountered errors')
|
|
578
|
+
!finalResult.includes('encountered errors') &&
|
|
579
|
+
!finalResult.includes('Max iterations reached') &&
|
|
580
|
+
!finalResult.includes('Validation required');
|
|
386
581
|
orchestrationLogger.logWorkerComplete(success, toolsUsed, iterationCount);
|
|
387
582
|
return {
|
|
388
583
|
success,
|
|
389
584
|
result: finalResult,
|
|
390
585
|
toolsUsed,
|
|
586
|
+
failedTools,
|
|
391
587
|
reasoning: reasoning || 'Task executed',
|
|
392
588
|
};
|
|
393
589
|
}
|
|
@@ -400,7 +596,7 @@ Tools used: ${spawnResult.toolsUsed.join(', ')}`;
|
|
|
400
596
|
* Determine if we should prompt Worker to check for completion
|
|
401
597
|
* This helps prevent over-iteration by asking Worker to confirm task is done
|
|
402
598
|
*/
|
|
403
|
-
shouldPromptForCompletion(
|
|
599
|
+
shouldPromptForCompletion(toolsUsed, currentIteration) {
|
|
404
600
|
// Don't prompt on first iteration - let Worker do initial work
|
|
405
601
|
if (currentIteration === 0) {
|
|
406
602
|
return false;
|
|
@@ -421,24 +617,18 @@ Tools used: ${spawnResult.toolsUsed.join(', ')}`;
|
|
|
421
617
|
if (currentIteration % 2 !== 0) {
|
|
422
618
|
return false;
|
|
423
619
|
}
|
|
424
|
-
//
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
'delete', 'remove', 'open', 'navigate', 'browse',
|
|
430
|
-
];
|
|
431
|
-
const instructionLower = instruction.toLowerCase();
|
|
432
|
-
const hasCompletionIndicator = completionIndicators.some(indicator => instructionLower.includes(indicator));
|
|
433
|
-
// Prompt if we've seen successful file/content or browser operations
|
|
620
|
+
// Prompt only when genuinely substantive operations have completed.
|
|
621
|
+
// 'create_directory' is intentionally excluded — it is a setup step, not
|
|
622
|
+
// evidence that the main deliverable (e.g. file content) has been written.
|
|
623
|
+
// Pure tool-free responses (e.g. "explain X") never reach this point because
|
|
624
|
+
// no tools means hasSignificantOperations is false.
|
|
434
625
|
const hasSignificantOperations = toolsUsed.some(tool => tool.includes('write') ||
|
|
435
|
-
tool.includes('create') ||
|
|
436
626
|
tool.includes('edit') ||
|
|
437
627
|
tool.includes('read') ||
|
|
438
628
|
tool.includes('browser') ||
|
|
439
|
-
tool.includes('navigate')
|
|
440
|
-
|
|
441
|
-
return
|
|
629
|
+
tool.includes('navigate') ||
|
|
630
|
+
(tool.includes('create') && !tool.includes('directory') && !tool.includes('dir')));
|
|
631
|
+
return hasSignificantOperations && toolsUsed.length >= 2;
|
|
442
632
|
}
|
|
443
633
|
}
|
|
444
634
|
//# sourceMappingURL=worker-agent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-agent.js","sourceRoot":"","sources":["../../src/core/worker-agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"worker-agent.js","sourceRoot":"","sources":["../../src/core/worker-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,6 +69,12 @@ program
|
|
|
69
69
|
console.log(chalk.gray(' Model:'), config.models.multimodal.defaultModel);
|
|
70
70
|
console.log();
|
|
71
71
|
}
|
|
72
|
+
if (config.models?.toolCalling) {
|
|
73
|
+
console.log(chalk.bold('Tool-Calling Model:'), chalk.green('(primary for tool calls)'));
|
|
74
|
+
console.log(chalk.gray(' Endpoint:'), config.models.toolCalling.endpoint);
|
|
75
|
+
console.log(chalk.gray(' Model:'), config.models.toolCalling.defaultModel);
|
|
76
|
+
console.log();
|
|
77
|
+
}
|
|
72
78
|
const mcpServers = configManager.getMCPServers();
|
|
73
79
|
if (Object.keys(mcpServers).length > 0) {
|
|
74
80
|
console.log(chalk.bold('MCP Servers:'));
|
|
@@ -126,6 +132,7 @@ program
|
|
|
126
132
|
modelConfig = {
|
|
127
133
|
reasoning: configManager.getReasoningModel(),
|
|
128
134
|
multimodal: configManager.getMultimodalModel(),
|
|
135
|
+
toolCalling: configManager.getToolCallingModel(),
|
|
129
136
|
};
|
|
130
137
|
mcpServers = configManager.getMCPServers();
|
|
131
138
|
}
|
|
@@ -158,6 +165,19 @@ program
|
|
|
158
165
|
type: 'multimodal',
|
|
159
166
|
});
|
|
160
167
|
}
|
|
168
|
+
// Tool-calling LLM: optional fallback for when the reasoning model generates
|
|
169
|
+
// invalid JSON tool-call arguments (400 "Failed to parse tool call arguments as JSON")
|
|
170
|
+
let toolCallingModel;
|
|
171
|
+
const toolCallingModelConfig = modelConfig.toolCalling;
|
|
172
|
+
if (toolCallingModelConfig) {
|
|
173
|
+
toolCallingModel = createKrutrimModel({
|
|
174
|
+
endpoint: toolCallingModelConfig.endpoint,
|
|
175
|
+
apiKey: toolCallingModelConfig.apiKey,
|
|
176
|
+
model: toolCallingModelConfig.defaultModel,
|
|
177
|
+
type: 'tool-calling',
|
|
178
|
+
useHarmonyFormat: toolCallingModelConfig.useHarmonyFormat,
|
|
179
|
+
});
|
|
180
|
+
}
|
|
161
181
|
// Test model connectivity before proceeding
|
|
162
182
|
console.log(chalk.gray('Testing model connectivity...\n'));
|
|
163
183
|
const reasoningTest = await reasoningModel.testConnectivity();
|
|
@@ -181,11 +201,23 @@ program
|
|
|
181
201
|
console.log(chalk.green(`✓ Multimodal model connected (${multimodalTest.latency}ms)`));
|
|
182
202
|
}
|
|
183
203
|
}
|
|
204
|
+
if (toolCallingModel) {
|
|
205
|
+
const toolCallingTest = await toolCallingModel.testConnectivity();
|
|
206
|
+
if (!toolCallingTest.success) {
|
|
207
|
+
console.log(chalk.yellow('⚠ Tool-calling model connection failed (continuing without dedicated tool-call model)'));
|
|
208
|
+
console.log(chalk.gray(` Error: ${toolCallingTest.error}`));
|
|
209
|
+
toolCallingModel = undefined;
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
console.log(chalk.green(`✓ Tool-calling model connected (${toolCallingTest.latency}ms) — primary for tool calls`));
|
|
213
|
+
}
|
|
214
|
+
}
|
|
184
215
|
console.log(''); // Empty line for spacing
|
|
185
216
|
// Create orchestrator
|
|
186
217
|
const orchestrator = new ModelOrchestrator({
|
|
187
218
|
reasoningModel,
|
|
188
219
|
multimodalModel,
|
|
220
|
+
toolCallingModel,
|
|
189
221
|
});
|
|
190
222
|
// Determine workspace directory first
|
|
191
223
|
const workspaceDir = options.workspace || process.cwd();
|
|
@@ -492,6 +524,7 @@ program
|
|
|
492
524
|
modelConfig = {
|
|
493
525
|
reasoning: configManager.getReasoningModel(),
|
|
494
526
|
multimodal: configManager.getMultimodalModel(),
|
|
527
|
+
toolCalling: configManager.getToolCallingModel(),
|
|
495
528
|
};
|
|
496
529
|
mcpServers = configManager.getMCPServers();
|
|
497
530
|
}
|
|
@@ -524,6 +557,19 @@ program
|
|
|
524
557
|
type: 'multimodal',
|
|
525
558
|
});
|
|
526
559
|
}
|
|
560
|
+
// Tool-calling LLM: optional fallback for when the reasoning model generates
|
|
561
|
+
// invalid JSON tool-call arguments (400 "Failed to parse tool call arguments as JSON")
|
|
562
|
+
let toolCallingModel;
|
|
563
|
+
const toolCallingModelCfg = configManager.getToolCallingModel();
|
|
564
|
+
if (toolCallingModelCfg) {
|
|
565
|
+
toolCallingModel = createKrutrimModel({
|
|
566
|
+
endpoint: toolCallingModelCfg.endpoint,
|
|
567
|
+
apiKey: toolCallingModelCfg.apiKey,
|
|
568
|
+
model: toolCallingModelCfg.defaultModel,
|
|
569
|
+
type: 'tool-calling',
|
|
570
|
+
useHarmonyFormat: toolCallingModelCfg.useHarmonyFormat,
|
|
571
|
+
});
|
|
572
|
+
}
|
|
527
573
|
// Test model connectivity before proceeding
|
|
528
574
|
console.log(chalk.gray('Testing model connectivity...\n'));
|
|
529
575
|
const reasoningTest = await reasoningModel.testConnectivity();
|
|
@@ -547,11 +593,23 @@ program
|
|
|
547
593
|
console.log(chalk.green(`✓ Multimodal model connected (${multimodalTest.latency}ms)`));
|
|
548
594
|
}
|
|
549
595
|
}
|
|
596
|
+
if (toolCallingModel) {
|
|
597
|
+
const toolCallingTest = await toolCallingModel.testConnectivity();
|
|
598
|
+
if (!toolCallingTest.success) {
|
|
599
|
+
console.log(chalk.yellow('⚠ Tool-calling model connection failed (continuing without dedicated tool-call model)'));
|
|
600
|
+
console.log(chalk.gray(` Error: ${toolCallingTest.error}`));
|
|
601
|
+
toolCallingModel = undefined;
|
|
602
|
+
}
|
|
603
|
+
else {
|
|
604
|
+
console.log(chalk.green(`✓ Tool-calling model connected (${toolCallingTest.latency}ms) — primary for tool calls`));
|
|
605
|
+
}
|
|
606
|
+
}
|
|
550
607
|
console.log(''); // Empty line for spacing
|
|
551
608
|
// Create orchestrator
|
|
552
609
|
const orchestrator = new ModelOrchestrator({
|
|
553
610
|
reasoningModel,
|
|
554
611
|
multimodalModel,
|
|
612
|
+
toolCallingModel,
|
|
555
613
|
});
|
|
556
614
|
// Determine workspace directory first
|
|
557
615
|
const workspaceDir = options.workspace || process.cwd();
|