crewly 1.4.31 → 1.4.33

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.
Files changed (79) hide show
  1. package/config/templates/content-generation-team/norms/brand-guidelines.md +11 -0
  2. package/config/templates/content-generation-team/norms/content-review.md +8 -0
  3. package/config/templates/content-generation-team/norms/publish-checklist.md +6 -0
  4. package/config/templates/dev-fullstack/norms/code-commit-sop.md +98 -24
  5. package/config/templates/dev-fullstack/norms/quality-gates.md +44 -17
  6. package/config/templates/research-analysis/norms/research-methodology.md +62 -21
  7. package/config/templates/research-analysis/norms/source-citation.md +69 -17
  8. package/dist/backend/backend/src/constants.d.ts +3 -3
  9. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  10. package/dist/backend/backend/src/constants.js +4 -4
  11. package/dist/backend/backend/src/constants.js.map +1 -1
  12. package/dist/backend/backend/src/controllers/cloud/cloud-google-auth.controller.js +6 -6
  13. package/dist/backend/backend/src/controllers/cloud/cloud-google-auth.controller.js.map +1 -1
  14. package/dist/backend/backend/src/controllers/monitoring/extension-logs.controller.d.ts +23 -0
  15. package/dist/backend/backend/src/controllers/monitoring/extension-logs.controller.d.ts.map +1 -0
  16. package/dist/backend/backend/src/controllers/monitoring/extension-logs.controller.js +48 -0
  17. package/dist/backend/backend/src/controllers/monitoring/extension-logs.controller.js.map +1 -0
  18. package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.d.ts.map +1 -1
  19. package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.js +6 -0
  20. package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.js.map +1 -1
  21. package/dist/backend/backend/src/controllers/monitoring/pty-status.controller.d.ts +45 -0
  22. package/dist/backend/backend/src/controllers/monitoring/pty-status.controller.d.ts.map +1 -0
  23. package/dist/backend/backend/src/controllers/monitoring/pty-status.controller.js +72 -0
  24. package/dist/backend/backend/src/controllers/monitoring/pty-status.controller.js.map +1 -0
  25. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  26. package/dist/backend/backend/src/services/agent/agent-registration.service.js +23 -1
  27. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  28. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts +129 -3
  29. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts.map +1 -1
  30. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js +456 -14
  31. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js.map +1 -1
  32. package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.d.ts +86 -0
  33. package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.d.ts.map +1 -0
  34. package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.js +147 -0
  35. package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.js.map +1 -0
  36. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts +122 -17
  37. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts.map +1 -1
  38. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js +580 -46
  39. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js.map +1 -1
  40. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.d.ts +41 -3
  41. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.d.ts.map +1 -1
  42. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.js +116 -3
  43. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.js.map +1 -1
  44. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts +17 -0
  45. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts.map +1 -1
  46. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js +44 -3
  47. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js.map +1 -1
  48. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts.map +1 -1
  49. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js +134 -39
  50. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js.map +1 -1
  51. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +30 -2
  52. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
  53. package/dist/backend/backend/src/services/agent/crewly-agent/types.js +16 -2
  54. package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
  55. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts +2 -2
  56. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -1
  57. package/dist/backend/backend/src/services/cloud/cloud-client.service.js +6 -3
  58. package/dist/backend/backend/src/services/cloud/cloud-client.service.js.map +1 -1
  59. package/dist/backend/backend/src/services/core/env.config.js +1 -1
  60. package/dist/backend/backend/src/services/session/session-backend.interface.d.ts +9 -0
  61. package/dist/backend/backend/src/services/session/session-backend.interface.d.ts.map +1 -1
  62. package/dist/backend/backend/src/services/session/session-backend.interface.js.map +1 -1
  63. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
  64. package/dist/backend/backend/src/websocket/terminal.gateway.js +17 -5
  65. package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
  66. package/dist/cli/backend/src/constants.d.ts +3 -3
  67. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  68. package/dist/cli/backend/src/constants.js +4 -4
  69. package/dist/cli/backend/src/constants.js.map +1 -1
  70. package/dist/cli/cli/src/commands/service.d.ts +4 -0
  71. package/dist/cli/cli/src/commands/service.d.ts.map +1 -1
  72. package/dist/cli/cli/src/commands/service.js +248 -2
  73. package/dist/cli/cli/src/commands/service.js.map +1 -1
  74. package/dist/cli/cli/src/index.js +5 -1
  75. package/dist/cli/cli/src/index.js.map +1 -1
  76. package/frontend/dist/assets/{index-c10b16b7.js → index-64b0eb22.js} +338 -337
  77. package/frontend/dist/assets/{index-2b76b01d.css → index-8772d402.css} +1 -1
  78. package/frontend/dist/index.html +2 -2
  79. package/package.json +1 -1
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @module services/agent/crewly-agent/agent-runner.service
9
9
  */
10
- import { generateText, stepCountIs } from 'ai';
10
+ import { streamText, generateText, stepCountIs } from 'ai';
11
11
  import { TracingService } from '../../core/tracing.service.js';
12
12
  import { ContextFlushService } from '../../memory/context-flush.service.js';
13
13
  import { TRACING_CONSTANTS } from '../../../constants.js';
@@ -18,6 +18,93 @@ import { McpClientService } from '../../mcp-client.js';
18
18
  import { connectAndLoadMcpTools } from './mcp-tool-bridge.js';
19
19
  import { ApprovalQueueService } from './approval-queue.service.js';
20
20
  import { CREWLY_AGENT_DEFAULTS, WRITE_TOOLS, MODEL_CONTEXT_WINDOWS, } from './types.js';
21
+ /**
22
+ * Fingerprint a tool call for comparison: deterministic JSON of name + args.
23
+ */
24
+ function toolCallFingerprint(toolName, args) {
25
+ return JSON.stringify({ t: toolName, a: args });
26
+ }
27
+ /**
28
+ * Detects looping behavior in tool calls: consecutive identical calls or
29
+ * consecutive error responses from the same tool.
30
+ *
31
+ * Usage: create per-run, call `recordToolCall()` in onStepFinish, check `loopDetected`.
32
+ */
33
+ export class ToolCallLoopDetector {
34
+ identicalThreshold;
35
+ errorThreshold;
36
+ /** Consecutive identical tool call fingerprints */
37
+ consecutiveIdentical = 0;
38
+ lastFingerprint = null;
39
+ /** Consecutive error results from the same tool */
40
+ consecutiveErrors = 0;
41
+ lastErrorTool = null;
42
+ /** Whether a loop was detected */
43
+ loopDetected = false;
44
+ /** Human-readable reason when loop is detected */
45
+ loopReason = '';
46
+ constructor(identicalThreshold = CREWLY_AGENT_DEFAULTS.LOOP_DETECTION_THRESHOLD, errorThreshold = CREWLY_AGENT_DEFAULTS.ERROR_LOOP_THRESHOLD) {
47
+ this.identicalThreshold = identicalThreshold;
48
+ this.errorThreshold = errorThreshold;
49
+ }
50
+ /**
51
+ * Record a tool call and check for loop patterns.
52
+ *
53
+ * @param toolName - Name of the tool called
54
+ * @param args - Arguments passed to the tool
55
+ * @param result - Result returned by the tool
56
+ * @returns True if a loop was just detected on this call
57
+ */
58
+ recordToolCall(toolName, args, result) {
59
+ if (this.loopDetected)
60
+ return true;
61
+ // 1. Check consecutive identical calls
62
+ const fp = toolCallFingerprint(toolName, args);
63
+ if (fp === this.lastFingerprint) {
64
+ this.consecutiveIdentical++;
65
+ }
66
+ else {
67
+ this.consecutiveIdentical = 1;
68
+ this.lastFingerprint = fp;
69
+ }
70
+ if (this.consecutiveIdentical >= this.identicalThreshold) {
71
+ this.loopDetected = true;
72
+ this.loopReason = `Identical tool call repeated ${this.consecutiveIdentical} times: ${toolName}(${JSON.stringify(args).slice(0, 120)})`;
73
+ return true;
74
+ }
75
+ // 2. Check consecutive error results (404, 4xx, 5xx, error strings)
76
+ if (this.isErrorResult(result)) {
77
+ if (toolName === this.lastErrorTool) {
78
+ this.consecutiveErrors++;
79
+ }
80
+ else {
81
+ this.consecutiveErrors = 1;
82
+ this.lastErrorTool = toolName;
83
+ }
84
+ if (this.consecutiveErrors >= this.errorThreshold) {
85
+ this.loopDetected = true;
86
+ this.loopReason = `Tool "${toolName}" returned errors ${this.consecutiveErrors} consecutive times. Last result: ${String(result).slice(0, 200)}`;
87
+ return true;
88
+ }
89
+ }
90
+ else {
91
+ this.consecutiveErrors = 0;
92
+ this.lastErrorTool = null;
93
+ }
94
+ return false;
95
+ }
96
+ /**
97
+ * Check if a tool result looks like an error (404, HTTP error codes, error strings).
98
+ */
99
+ isErrorResult(result) {
100
+ if (result === null || result === undefined)
101
+ return false;
102
+ const str = typeof result === 'string' ? result : JSON.stringify(result);
103
+ // Match common error patterns: HTTP 4xx/5xx, "error", "not found", "failed"
104
+ return /\b(404|403|500|502|503|4\d{2}|5\d{2})\b/.test(str)
105
+ || /\b(error|not\s*found|failed|refused|denied|timeout)\b/i.test(str);
106
+ }
107
+ }
21
108
  export class AgentRunnerService {
22
109
  config;
23
110
  modelManager;
@@ -43,6 +130,10 @@ export class AgentRunnerService {
43
130
  tracing = TracingService.getInstance();
44
131
  /** Guards against concurrent compaction — only one compaction at a time */
45
132
  compacting = false;
133
+ /** AbortController for the current run — allows external cancellation */
134
+ currentRunAbort = null;
135
+ /** Streaming event callbacks — set per run by the runtime service */
136
+ streamingCallbacks = {};
46
137
  /** @internal Override for testing — replaces the AI SDK generateText call */
47
138
  _generateTextFn = null;
48
139
  /**
@@ -93,16 +184,40 @@ export class AgentRunnerService {
93
184
  * generateText calls which would corrupt conversation state.
94
185
  *
95
186
  * @param message - User/system message to process
187
+ * @param conversationId - Optional conversation ID for routing
188
+ * @param metadata - Optional metadata (Slack context, etc.)
189
+ * @param options - Optional abort signal and streaming callbacks
96
190
  * @returns Result of the agent run including text, tool calls, and usage
97
191
  */
98
- async run(message, conversationId, metadata) {
192
+ async run(message, conversationId, metadata, options) {
99
193
  return new Promise((resolve, reject) => {
100
- this.messageQueue.push({ message, conversationId, metadata, resolve, reject });
194
+ this.messageQueue.push({ message, conversationId, metadata, resolve, reject, options });
101
195
  if (!this.processing) {
102
196
  this.processQueue();
103
197
  }
104
198
  });
105
199
  }
200
+ /**
201
+ * Abort the current in-progress run.
202
+ * Signals the active streamText/generateText call to cancel.
203
+ *
204
+ * @returns True if an active run was aborted, false if no run was in progress
205
+ */
206
+ abortCurrentRun() {
207
+ if (this.currentRunAbort) {
208
+ this.currentRunAbort.abort();
209
+ return true;
210
+ }
211
+ return false;
212
+ }
213
+ /**
214
+ * Check if the agent is currently processing a message.
215
+ *
216
+ * @returns True if processing is in progress
217
+ */
218
+ isProcessing() {
219
+ return this.processing;
220
+ }
106
221
  /**
107
222
  * Get current conversation state (for inspection/debugging).
108
223
  *
@@ -238,13 +353,15 @@ export class AgentRunnerService {
238
353
  threadTs: item.metadata.threadTs,
239
354
  };
240
355
  }
356
+ // Set streaming callbacks for this run
357
+ this.streamingCallbacks = item.options?.streaming ?? {};
241
358
  const result = await this.tracing.withSpan(TRACING_CONSTANTS.SPANS.AGENT_RUN, {
242
359
  attributes: {
243
360
  'agent.session': this.config.sessionName,
244
361
  'agent.role': this.config.role,
245
362
  }
246
363
  }, async () => {
247
- return this.executeRun(item.message);
364
+ return this.executeRun(item.message, item.options?.abortSignal);
248
365
  });
249
366
  item.resolve(result);
250
367
  }
@@ -261,12 +378,16 @@ export class AgentRunnerService {
261
378
  }
262
379
  }
263
380
  /**
264
- * Execute a single generateText run with the current conversation context.
381
+ * Execute a single streamText run with the current conversation context.
382
+ *
383
+ * Uses streamText for real-time token emission and tool call feedback.
384
+ * Falls back to generateText when _generateTextFn is set (testing).
265
385
  *
266
386
  * @param message - New message to add to the conversation
387
+ * @param externalAbortSignal - Optional external abort signal for cancellation
267
388
  * @returns Agent run result
268
389
  */
269
- async executeRun(message) {
390
+ async executeRun(message, externalAbortSignal) {
270
391
  if (!this.model) {
271
392
  throw new Error('AgentRunner not initialized. Call initialize() first.');
272
393
  }
@@ -293,7 +414,278 @@ export class AgentRunnerService {
293
414
  };
294
415
  const mcpTools = Object.keys(this.mcpToolDefs).length > 0 ? this.mcpToolDefs : undefined;
295
416
  const tools = createTools(this.apiClient, this.config.sessionName, this.config.projectPath, callbacks, this.currentConversationId, this.currentSlackContext, mcpTools);
296
- // Execute generateText with agentic loop
417
+ // Create abort controller that merges external signal with internal control
418
+ const runAbort = new AbortController();
419
+ this.currentRunAbort = runAbort;
420
+ // If external signal is already aborted, abort immediately
421
+ if (externalAbortSignal?.aborted) {
422
+ runAbort.abort();
423
+ }
424
+ else if (externalAbortSignal) {
425
+ externalAbortSignal.addEventListener('abort', () => runAbort.abort(), { once: true });
426
+ }
427
+ try {
428
+ // If a test override is set, use generateText path (backward compatible)
429
+ if (this._generateTextFn) {
430
+ return await this.executeRunWithGenerateText(tools, runAbort.signal);
431
+ }
432
+ // Production path: streamText for real-time feedback
433
+ return await this.executeRunWithStreamText(tools, runAbort.signal);
434
+ }
435
+ finally {
436
+ this.currentRunAbort = null;
437
+ }
438
+ }
439
+ /**
440
+ * Check if an error is recoverable and eligible for automatic retry.
441
+ *
442
+ * Recoverable errors include:
443
+ * - HTTP 429 (rate limit)
444
+ * - HTTP 5xx (server errors)
445
+ * - Network timeouts and connection errors
446
+ *
447
+ * @param error - The error to classify
448
+ * @returns True if the error is recoverable
449
+ */
450
+ isRecoverableError(error) {
451
+ if (!(error instanceof Error))
452
+ return false;
453
+ const msg = error.message.toLowerCase();
454
+ const statusMatch = msg.match(/\b(429|5\d{2})\b/);
455
+ if (statusMatch)
456
+ return true;
457
+ if (msg.includes('rate limit') || msg.includes('too many requests'))
458
+ return true;
459
+ if (msg.includes('timeout') || msg.includes('econnreset') || msg.includes('econnrefused'))
460
+ return true;
461
+ if (msg.includes('network') || msg.includes('fetch failed') || msg.includes('socket hang up'))
462
+ return true;
463
+ if (msg.includes('service unavailable') || msg.includes('internal server error'))
464
+ return true;
465
+ return false;
466
+ }
467
+ /**
468
+ * Check if an error indicates the context length was exceeded.
469
+ *
470
+ * @param error - The error to classify
471
+ * @returns True if the error is a context length exceeded error
472
+ */
473
+ isContextLengthError(error) {
474
+ if (!(error instanceof Error))
475
+ return false;
476
+ const msg = error.message.toLowerCase();
477
+ return msg.includes('context length') || msg.includes('token limit')
478
+ || msg.includes('max_tokens') || msg.includes('context window')
479
+ || msg.includes('too long') || msg.includes('maximum context');
480
+ }
481
+ /**
482
+ * Sleep for a specified duration.
483
+ *
484
+ * @param ms - Milliseconds to sleep
485
+ * @returns Promise that resolves after the delay
486
+ */
487
+ sleep(ms) {
488
+ return new Promise(resolve => setTimeout(resolve, ms));
489
+ }
490
+ /**
491
+ * Execute run using streamText for real-time streaming output.
492
+ * This is the production path — emits events as tokens arrive.
493
+ *
494
+ * Includes automatic retry with exponential backoff for recoverable errors
495
+ * (429, 5xx, network) and progressive context trimming for context length errors.
496
+ */
497
+ async executeRunWithStreamText(tools, abortSignal) {
498
+ const maxRetries = CREWLY_AGENT_DEFAULTS.MAX_RETRIES;
499
+ const baseDelay = CREWLY_AGENT_DEFAULTS.RETRY_BASE_DELAY_MS;
500
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
501
+ try {
502
+ return await this.executeStreamTextAttempt(tools, abortSignal);
503
+ }
504
+ catch (error) {
505
+ // Context length exceeded — try compaction then retry once
506
+ if (this.isContextLengthError(error)) {
507
+ this.streamingCallbacks.onTextChunk?.('[retry] Context length exceeded, compacting history...\n');
508
+ const compactionResult = await this.requestCompaction();
509
+ if (compactionResult.compacted) {
510
+ try {
511
+ return await this.executeStreamTextAttempt(tools, abortSignal);
512
+ }
513
+ catch (retryError) {
514
+ // If still too long, remove earliest non-system messages and try once more
515
+ if (this.isContextLengthError(retryError) && this.state.messages.length > 2) {
516
+ this.streamingCallbacks.onTextChunk?.('[retry] Still too long, trimming oldest messages...\n');
517
+ this.trimOldestNonSystemMessages();
518
+ return await this.executeStreamTextAttempt(tools, abortSignal);
519
+ }
520
+ throw retryError;
521
+ }
522
+ }
523
+ }
524
+ // Recoverable error — retry with backoff
525
+ if (this.isRecoverableError(error) && attempt < maxRetries) {
526
+ const delay = baseDelay * Math.pow(2, attempt);
527
+ this.streamingCallbacks.onTextChunk?.(`[retry] Recoverable error (attempt ${attempt + 1}/${maxRetries}), retrying in ${delay}ms...\n`);
528
+ await this.sleep(delay);
529
+ continue;
530
+ }
531
+ throw error;
532
+ }
533
+ }
534
+ // Unreachable — the loop always returns or throws
535
+ throw new Error('Retry loop exhausted without result');
536
+ }
537
+ /**
538
+ * Single attempt of streamText execution (no retry logic).
539
+ */
540
+ async executeStreamTextAttempt(tools, abortSignal) {
541
+ const toolCalls = [];
542
+ let stepCount = 0;
543
+ const loopDetector = new ToolCallLoopDetector();
544
+ // Local abort controller so we can abort on loop detection
545
+ const loopAbort = new AbortController();
546
+ const mergedSignal = AbortSignal.any([abortSignal, loopAbort.signal]);
547
+ const streamResult = streamText({
548
+ model: this.model,
549
+ system: this.state.systemPrompt,
550
+ messages: this.state.messages,
551
+ tools: tools,
552
+ stopWhen: stepCountIs(this.config.maxSteps),
553
+ temperature: this.config.model.temperature,
554
+ maxOutputTokens: this.config.model.maxTokens,
555
+ abortSignal: mergedSignal,
556
+ onChunk: ({ chunk }) => {
557
+ // Emit text chunks in real-time
558
+ if (chunk.type === 'text-delta' && chunk.text) {
559
+ this.streamingCallbacks.onTextChunk?.(chunk.text);
560
+ }
561
+ },
562
+ experimental_onToolCallStart: (event) => {
563
+ const tc = event.toolCall;
564
+ const args = tc?.args ?? tc?.input ?? {};
565
+ this.streamingCallbacks.onToolCallStart?.(tc?.toolName ?? 'unknown', (typeof args === 'string' ? JSON.parse(args) : args));
566
+ },
567
+ experimental_onToolCallFinish: (event) => {
568
+ const tc = event.toolCall;
569
+ const args = tc?.args ?? tc?.input ?? {};
570
+ this.streamingCallbacks.onToolCallFinish?.(tc?.toolName ?? 'unknown', (typeof args === 'string' ? JSON.parse(args) : args), event.toolResult, event.durationMs ?? 0);
571
+ },
572
+ onStepFinish: ({ toolCalls: stepToolCalls, toolResults }) => {
573
+ stepCount++;
574
+ const hasTools = (stepToolCalls?.length ?? 0) > 0;
575
+ // Collect tool calls from this step and check for loops
576
+ if (stepToolCalls) {
577
+ for (const tc of stepToolCalls) {
578
+ const args = tc.input ?? {};
579
+ const result = toolResults?.find((tr) => tr.toolCallId === tc.toolCallId)?.output;
580
+ toolCalls.push({ toolName: tc.toolName, args, result });
581
+ loopDetector.recordToolCall(tc.toolName, args, result);
582
+ }
583
+ }
584
+ // Abort if loop detected — will be caught below
585
+ if (loopDetector.loopDetected) {
586
+ console.warn('[AgentRunner] Loop detected, aborting run:', loopDetector.loopReason);
587
+ loopAbort.abort();
588
+ }
589
+ this.streamingCallbacks.onStepFinish?.(stepCount, hasTools);
590
+ },
591
+ });
592
+ // Await the full result (stream completes when all steps are done or aborted)
593
+ let result;
594
+ try {
595
+ result = await streamResult;
596
+ }
597
+ catch (err) {
598
+ // If aborted due to loop detection, handle gracefully
599
+ if (loopDetector.loopDetected) {
600
+ return this.handleLoopDetected(loopDetector, toolCalls, stepCount);
601
+ }
602
+ throw err;
603
+ }
604
+ // Also check post-completion in case the loop threshold was hit on the final step
605
+ if (loopDetector.loopDetected) {
606
+ return this.handleLoopDetected(loopDetector, toolCalls, stepCount);
607
+ }
608
+ // Warn if tool call count is excessive (polling dead-loop protection)
609
+ const maxToolCalls = CREWLY_AGENT_DEFAULTS.MAX_TOOL_CALLS_PER_RESPONSE;
610
+ if (toolCalls.length > maxToolCalls) {
611
+ console.warn('[AgentRunner] Excessive tool calls in single response:', {
612
+ count: toolCalls.length,
613
+ limit: maxToolCalls,
614
+ topTools: toolCalls.slice(0, 5).map(tc => tc.toolName),
615
+ });
616
+ }
617
+ // Add assistant response to history
618
+ const text = await result.text;
619
+ if (text) {
620
+ this.state.messages.push({ role: 'assistant', content: text });
621
+ }
622
+ // Update token tracking
623
+ const resultUsage = await result.usage;
624
+ const usage = {
625
+ input: resultUsage?.inputTokens ?? 0,
626
+ output: resultUsage?.outputTokens ?? 0,
627
+ };
628
+ this.state.totalTokens.input += usage.input;
629
+ this.state.totalTokens.output += usage.output;
630
+ // Check budget after token update
631
+ const postBudget = this.getContextBudget();
632
+ const budgetWarning = postBudget.level !== 'normal' ? postBudget.summary : undefined;
633
+ const finishReason = await result.finishReason;
634
+ return {
635
+ text,
636
+ steps: stepCount,
637
+ usage,
638
+ toolCalls,
639
+ finishReason,
640
+ budgetWarning,
641
+ };
642
+ }
643
+ /**
644
+ * Execute run using generateText (batch mode).
645
+ * Used when _generateTextFn is set for testing, or as fallback.
646
+ *
647
+ * Includes automatic retry with exponential backoff for recoverable errors
648
+ * and progressive context trimming for context length errors.
649
+ */
650
+ async executeRunWithGenerateText(tools, abortSignal) {
651
+ const maxRetries = CREWLY_AGENT_DEFAULTS.MAX_RETRIES;
652
+ const baseDelay = CREWLY_AGENT_DEFAULTS.RETRY_BASE_DELAY_MS;
653
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
654
+ try {
655
+ return await this.executeGenerateTextAttempt(tools, abortSignal);
656
+ }
657
+ catch (error) {
658
+ // Context length exceeded — try compaction then retry once
659
+ if (this.isContextLengthError(error)) {
660
+ const compactionResult = await this.requestCompaction();
661
+ if (compactionResult.compacted) {
662
+ try {
663
+ return await this.executeGenerateTextAttempt(tools, abortSignal);
664
+ }
665
+ catch (retryError) {
666
+ if (this.isContextLengthError(retryError) && this.state.messages.length > 2) {
667
+ this.trimOldestNonSystemMessages();
668
+ return await this.executeGenerateTextAttempt(tools, abortSignal);
669
+ }
670
+ throw retryError;
671
+ }
672
+ }
673
+ }
674
+ // Recoverable error — retry with backoff
675
+ if (this.isRecoverableError(error) && attempt < maxRetries) {
676
+ const delay = baseDelay * Math.pow(2, attempt);
677
+ await this.sleep(delay);
678
+ continue;
679
+ }
680
+ throw error;
681
+ }
682
+ }
683
+ throw new Error('Retry loop exhausted without result');
684
+ }
685
+ /**
686
+ * Single attempt of generateText execution (no retry logic).
687
+ */
688
+ async executeGenerateTextAttempt(tools, abortSignal) {
297
689
  const generateFn = this._generateTextFn || generateText;
298
690
  const result = await generateFn({
299
691
  model: this.model,
@@ -303,21 +695,27 @@ export class AgentRunnerService {
303
695
  stopWhen: stepCountIs(this.config.maxSteps),
304
696
  temperature: this.config.model.temperature,
305
697
  maxOutputTokens: this.config.model.maxTokens,
698
+ abortSignal,
306
699
  });
307
- // Track tool calls across all steps
700
+ // Track tool calls across all steps with loop detection
308
701
  const toolCalls = [];
702
+ const loopDetector = new ToolCallLoopDetector();
309
703
  for (const step of result.steps) {
310
704
  if (step.toolCalls) {
311
705
  for (const tc of step.toolCalls) {
312
- toolCalls.push({
313
- toolName: tc.toolName,
314
- args: tc.input ?? {},
315
- result: step.toolResults?.find((tr) => tr.toolCallId === tc.toolCallId)?.output,
316
- });
706
+ const args = tc.input ?? {};
707
+ const tcResult = step.toolResults?.find((tr) => tr.toolCallId === tc.toolCallId)?.output;
708
+ toolCalls.push({ toolName: tc.toolName, args, result: tcResult });
709
+ loopDetector.recordToolCall(tc.toolName, args, tcResult);
317
710
  }
318
711
  }
319
712
  }
320
- // Warn if tool call count is excessive (polling dead-loop protection)
713
+ // If loop detected in generateText path, handle gracefully
714
+ if (loopDetector.loopDetected) {
715
+ console.warn('[AgentRunner] Loop detected in generateText:', loopDetector.loopReason);
716
+ return this.handleLoopDetected(loopDetector, toolCalls, result.steps.length);
717
+ }
718
+ // Warn if tool call count is excessive
321
719
  const maxToolCalls = CREWLY_AGENT_DEFAULTS.MAX_TOOL_CALLS_PER_RESPONSE;
322
720
  if (toolCalls.length > maxToolCalls) {
323
721
  console.warn('[AgentRunner] Excessive tool calls in single response:', {
@@ -349,6 +747,50 @@ export class AgentRunnerService {
349
747
  budgetWarning,
350
748
  };
351
749
  }
750
+ /**
751
+ * Remove the oldest non-system messages to reduce context size.
752
+ * Preserves the most recent messages and any system-role messages.
753
+ */
754
+ trimOldestNonSystemMessages() {
755
+ // Remove up to 5 of the oldest non-system messages
756
+ let removed = 0;
757
+ const maxRemove = 5;
758
+ this.state.messages = this.state.messages.filter((msg) => {
759
+ if (removed >= maxRemove)
760
+ return true;
761
+ if (msg.role === 'system')
762
+ return true;
763
+ removed++;
764
+ return false;
765
+ });
766
+ }
767
+ /**
768
+ * Handle a detected tool call loop by injecting a corrective system message
769
+ * into conversation history and returning a structured result.
770
+ *
771
+ * @param detector - The loop detector with reason details
772
+ * @param toolCalls - Tool calls collected so far
773
+ * @param steps - Number of steps taken
774
+ * @returns AgentRunResult with the loop warning as text
775
+ */
776
+ handleLoopDetected(detector, toolCalls, steps) {
777
+ const guidance = `[LOOP DETECTED] ${detector.loopReason}. ` +
778
+ 'You are repeating the same action without progress. ' +
779
+ 'STOP and try a different approach: use a different tool, change the arguments, ' +
780
+ 'skip this step, or ask for help. Do NOT repeat the same call again.';
781
+ // Inject corrective message so the model sees it on the next run
782
+ this.state.messages.push({ role: 'assistant', content: `[Loop detected — halting. ${detector.loopReason}]` });
783
+ this.state.messages.push({ role: 'user', content: guidance });
784
+ this.streamingCallbacks.onTextChunk?.(`\n⚠️ ${guidance}\n`);
785
+ return {
786
+ text: `[Loop detected] ${detector.loopReason}`,
787
+ steps,
788
+ usage: { input: 0, output: 0 },
789
+ toolCalls,
790
+ finishReason: 'loop-detected',
791
+ budgetWarning: undefined,
792
+ };
793
+ }
352
794
  /**
353
795
  * Public method for agent-initiated context compaction.
354
796
  * Called by the compact_memory tool to intelligently summarize conversation state.
@@ -1 +1 @@
1
- {"version":3,"file":"agent-runner.service.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/agent-runner.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-runner.service.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/agent-runner.service.ts"],"names":[],"mappings":"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"}