expxagents 0.30.2 → 0.30.3

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.
@@ -5,4 +5,8 @@ export declare class AgentRunner {
5
5
  private sessionManager;
6
6
  constructor(opts: AgentRunOptions);
7
7
  run(prompt?: string): Promise<AgentResult>;
8
+ /** Extract readable error detail from provider errors */
9
+ private static extractErrorDetail;
10
+ /** Check if error is transient and worth retrying */
11
+ private static isRetryableError;
8
12
  }
@@ -26,76 +26,137 @@ export class AgentRunner {
26
26
  const cwd = this.opts.cwd;
27
27
  const model = this.opts.model;
28
28
  const maxSteps = this.opts.maxSteps ?? 30;
29
+ const maxRetries = 3;
29
30
  const tools = createTools(cwd, this.opts.onAskUser);
30
31
  const session = this.opts.sessionId
31
32
  ? this.sessionManager.getOrCreate(this.opts.sessionId, cwd)
32
33
  : null;
33
34
  const messages = [];
34
- // Add session history if multi-turn
35
35
  if (session) {
36
36
  messages.push(...session.messages);
37
37
  }
38
- // Add current user message
39
38
  messages.push({ role: 'user', content: userPrompt });
40
39
  const toolCallRecords = [];
41
- const result = streamText({
42
- model: this.provider(model),
43
- system: buildSystemPrompt(cwd),
44
- messages: messages,
45
- tools: tools,
46
- maxSteps,
47
- });
48
- // Use fullStream to capture both text and tool-call events in real-time
49
- let fullText = '';
50
- for await (const part of result.fullStream) {
51
- const p = part;
52
- if (p.type === 'text-delta' && p.textDelta) {
53
- // Filter leaked tool-call artifacts from weaker models
54
- const cleaned = p.textDelta
55
- .replace(/<TOOLCALL>[\s\S]*?<\/TOOLCALL>/g, '')
56
- .replace(/\{"(name|tool|function)":\s*"[^"]*",\s*"arguments":\s*\{[^}]*\}\s*\}?\]?/g, '')
57
- .replace(/<\/?tool_call>/gi, '')
58
- .replace(/<\/?function_call>/gi, '');
59
- if (cleaned.trim()) {
60
- fullText += cleaned;
61
- this.opts.onChunk?.(cleaned);
62
- }
63
- }
64
- else if (p.type === 'tool-call') {
65
- // Emit tool call immediately so dashboard/CLI shows progress
66
- this.opts.onToolCall?.(p.toolName ?? 'unknown', p.args ?? {});
67
- toolCallRecords.push({
68
- tool: p.toolName ?? 'unknown',
69
- args: p.args ?? {},
70
- result: '',
71
- durationMs: 0,
40
+ // Retry loop for transient provider errors (rate limits, timeouts, 5xx)
41
+ let lastError = null;
42
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
43
+ try {
44
+ const result = streamText({
45
+ model: this.provider(model),
46
+ system: buildSystemPrompt(cwd),
47
+ messages: messages,
48
+ tools: tools,
49
+ maxSteps,
72
50
  });
51
+ let fullText = '';
52
+ for await (const part of result.fullStream) {
53
+ const p = part;
54
+ if (p.type === 'text-delta' && p.textDelta) {
55
+ const cleaned = p.textDelta
56
+ .replace(/<TOOLCALL>[\s\S]*?<\/TOOLCALL>/g, '')
57
+ .replace(/\{"(name|tool|function)":\s*"[^"]*",\s*"arguments":\s*\{[^}]*\}\s*\}?\]?/g, '')
58
+ .replace(/<\/?tool_call>/gi, '')
59
+ .replace(/<\/?function_call>/gi, '');
60
+ if (cleaned.trim()) {
61
+ fullText += cleaned;
62
+ this.opts.onChunk?.(cleaned);
63
+ }
64
+ }
65
+ else if (p.type === 'tool-call') {
66
+ this.opts.onToolCall?.(p.toolName ?? 'unknown', p.args ?? {});
67
+ toolCallRecords.push({
68
+ tool: p.toolName ?? 'unknown',
69
+ args: p.args ?? {},
70
+ result: '',
71
+ durationMs: 0,
72
+ });
73
+ }
74
+ else if (p.type === 'tool-result') {
75
+ const last = [...toolCallRecords].reverse().find((tc) => tc.tool === (p.toolName ?? ''));
76
+ if (last) {
77
+ last.result = String(p.result ?? '').slice(0, 500);
78
+ }
79
+ }
80
+ }
81
+ const totalUsage = await result.usage;
82
+ if (session) {
83
+ this.sessionManager.addMessages(session.id, [
84
+ { role: 'user', content: userPrompt },
85
+ { role: 'assistant', content: fullText },
86
+ ]);
87
+ }
88
+ const agentResult = {
89
+ output: fullText,
90
+ toolCalls: toolCallRecords,
91
+ model,
92
+ inputTokens: totalUsage?.promptTokens ?? 0,
93
+ outputTokens: totalUsage?.completionTokens ?? 0,
94
+ };
95
+ this.opts.onDone?.(agentResult);
96
+ return agentResult;
73
97
  }
74
- else if (p.type === 'tool-result') {
75
- // Update the last matching tool call with the result
76
- const last = [...toolCallRecords].reverse().find((tc) => tc.tool === (p.toolName ?? ''));
77
- if (last) {
78
- last.result = String(p.result ?? '').slice(0, 500);
98
+ catch (err) {
99
+ lastError = err instanceof Error ? err : new Error(String(err));
100
+ // Extract detailed error info from provider errors
101
+ const errorDetail = AgentRunner.extractErrorDetail(lastError);
102
+ const isRetryable = AgentRunner.isRetryableError(lastError);
103
+ if (isRetryable && attempt < maxRetries) {
104
+ const waitMs = attempt * 2000; // 2s, 4s, 6s
105
+ this.opts.onChunk?.(`\n[Retry ${attempt}/${maxRetries}] ${errorDetail}. Retrying in ${waitMs / 1000}s...\n`);
106
+ await new Promise(r => setTimeout(r, waitMs));
107
+ continue;
79
108
  }
109
+ throw new Error(`${errorDetail} (after ${attempt} attempt${attempt > 1 ? 's' : ''})`);
80
110
  }
81
111
  }
82
- const totalUsage = await result.usage;
83
- // Save to session history
84
- if (session) {
85
- this.sessionManager.addMessages(session.id, [
86
- { role: 'user', content: userPrompt },
87
- { role: 'assistant', content: fullText },
88
- ]);
112
+ throw lastError ?? new Error('Unknown error');
113
+ }
114
+ /** Extract readable error detail from provider errors */
115
+ static extractErrorDetail(err) {
116
+ const msg = err.message ?? '';
117
+ // OpenRouter / OpenAI structured errors
118
+ const jsonMatch = msg.match(/\{[\s\S]*"error"[\s\S]*\}/);
119
+ if (jsonMatch) {
120
+ try {
121
+ const parsed = JSON.parse(jsonMatch[0]);
122
+ const detail = parsed.error?.message ?? parsed.message ?? parsed.error;
123
+ if (detail)
124
+ return String(detail);
125
+ }
126
+ catch { /* not JSON */ }
127
+ }
128
+ // Rate limit
129
+ if (msg.includes('429') || msg.toLowerCase().includes('rate limit')) {
130
+ return 'Rate limited by provider. Too many requests';
131
+ }
132
+ // Context length
133
+ if (msg.toLowerCase().includes('context') && msg.toLowerCase().includes('length')) {
134
+ return 'Context window exceeded. Try a model with larger context or a shorter conversation (/clear)';
135
+ }
136
+ // Auth
137
+ if (msg.includes('401') || msg.toLowerCase().includes('unauthorized') || msg.toLowerCase().includes('invalid api key')) {
138
+ return 'Invalid API key. Check your OPENROUTER_API_KEY';
89
139
  }
90
- const agentResult = {
91
- output: fullText,
92
- toolCalls: toolCallRecords,
93
- model,
94
- inputTokens: totalUsage?.promptTokens ?? 0,
95
- outputTokens: totalUsage?.completionTokens ?? 0,
96
- };
97
- this.opts.onDone?.(agentResult);
98
- return agentResult;
140
+ // Quota
141
+ if (msg.includes('402') || msg.toLowerCase().includes('insufficient') || msg.toLowerCase().includes('quota')) {
142
+ return 'Insufficient credits on OpenRouter. Add credits at https://openrouter.ai/credits';
143
+ }
144
+ // Generic provider error
145
+ if (msg.includes('Provider returned error')) {
146
+ return 'Provider returned an error. The model may be temporarily unavailable';
147
+ }
148
+ return msg.slice(0, 300);
149
+ }
150
+ /** Check if error is transient and worth retrying */
151
+ static isRetryableError(err) {
152
+ const msg = err.message ?? '';
153
+ return msg.includes('429') ||
154
+ msg.includes('500') ||
155
+ msg.includes('502') ||
156
+ msg.includes('503') ||
157
+ msg.includes('timeout') ||
158
+ msg.toLowerCase().includes('rate limit') ||
159
+ msg.includes('Provider returned error');
99
160
  }
100
161
  }
101
162
  //# sourceMappingURL=agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAgB,MAAM,aAAa,CAAC;AAG1D,MAAM,OAAO,WAAW;IACd,IAAI,CAAsE;IAC1E,QAAQ,CAAkC;IAC1C,cAAc,CAAiB;IAEvC,YAAY,IAAqB;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC7D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAC;QAC3G,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,aAAa,CAAC;QAElF,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,8BAA8B;YACvD,MAAM;SACP,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,cAAc,EAAE,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAe;QACvB,MAAM,UAAU,GAAG,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAM,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QAE1C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS;YACjC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC;YAC3D,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,QAAQ,GAA6C,EAAE,CAAC;QAE9D,oCAAoC;QACpC,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;QAED,2BAA2B;QAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAErD,MAAM,eAAe,GAAqB,EAAE,CAAC;QAE7C,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC3B,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC;YAC9B,QAAQ,EAAE,QAAwD;YAClE,KAAK,EAAE,KAAkD;YACzD,QAAQ;SACT,CAAC,CAAC;QAEH,wEAAwE;QACxE,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,IAAsH,CAAC;YAEjI,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;gBAC3C,uDAAuD;gBACvD,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS;qBACxB,OAAO,CAAC,iCAAiC,EAAE,EAAE,CAAC;qBAC9C,OAAO,CAAC,2EAA2E,EAAE,EAAE,CAAC;qBACxF,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;qBAC/B,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;gBACvC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;oBACnB,QAAQ,IAAI,OAAO,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAClC,6DAA6D;gBAC7D,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,SAAS,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC9D,eAAe,CAAC,IAAI,CAAC;oBACnB,IAAI,EAAE,CAAC,CAAC,QAAQ,IAAI,SAAS;oBAC7B,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;oBAClB,MAAM,EAAE,EAAE;oBACV,UAAU,EAAE,CAAC;iBACd,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACpC,qDAAqD;gBACrD,MAAM,IAAI,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,EAAkB,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;gBACzG,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QAEtC,0BAA0B;QAC1B,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE;gBAC1C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;gBACrC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE;aACzC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,WAAW,GAAgB;YAC/B,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,eAAe;YAC1B,KAAK;YACL,WAAW,EAAE,UAAU,EAAE,YAAY,IAAI,CAAC;YAC1C,YAAY,EAAE,UAAU,EAAE,gBAAgB,IAAI,CAAC;SAChD,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC;QAChC,OAAO,WAAW,CAAC;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expxagents",
3
- "version": "0.30.2",
3
+ "version": "0.30.3",
4
4
  "description": "Multi-agent orchestration platform for AI squads",
5
5
  "author": "ExpxAgents",
6
6
  "license": "MIT",