expxagents 0.30.1 → 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,68 +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
- fullText += p.textDelta;
54
- this.opts.onChunk?.(p.textDelta);
55
- }
56
- else if (p.type === 'tool-call') {
57
- // Emit tool call immediately so dashboard/CLI shows progress
58
- this.opts.onToolCall?.(p.toolName ?? 'unknown', p.args ?? {});
59
- toolCallRecords.push({
60
- tool: p.toolName ?? 'unknown',
61
- args: p.args ?? {},
62
- result: '',
63
- 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,
64
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;
65
97
  }
66
- else if (p.type === 'tool-result') {
67
- // Update the last matching tool call with the result
68
- const last = [...toolCallRecords].reverse().find((tc) => tc.tool === (p.toolName ?? ''));
69
- if (last) {
70
- 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;
71
108
  }
109
+ throw new Error(`${errorDetail} (after ${attempt} attempt${attempt > 1 ? 's' : ''})`);
72
110
  }
73
111
  }
74
- const totalUsage = await result.usage;
75
- // Save to session history
76
- if (session) {
77
- this.sessionManager.addMessages(session.id, [
78
- { role: 'user', content: userPrompt },
79
- { role: 'assistant', content: fullText },
80
- ]);
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 */ }
81
127
  }
82
- const agentResult = {
83
- output: fullText,
84
- toolCalls: toolCallRecords,
85
- model,
86
- inputTokens: totalUsage?.promptTokens ?? 0,
87
- outputTokens: totalUsage?.completionTokens ?? 0,
88
- };
89
- this.opts.onDone?.(agentResult);
90
- return agentResult;
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';
139
+ }
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');
91
160
  }
92
161
  }
93
162
  //# sourceMappingURL=agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -81,40 +81,47 @@ export function buildSystemPrompt(cwd) {
81
81
  let skillsSection = '';
82
82
  if (skills.size > 0) {
83
83
  const skillNames = [...skills.keys()].map(s => `/${s}`).join(', ');
84
+ const MAX_SKILL_CHARS = 8000; // Limit per skill to avoid overwhelming smaller models
84
85
  const skillContents = [...skills.entries()]
85
- .map(([name, content]) => `### Skill: /${name}\n\n${content}`)
86
+ .map(([name, content]) => {
87
+ const trimmed = content.length > MAX_SKILL_CHARS
88
+ ? content.slice(0, MAX_SKILL_CHARS) + '\n\n[... skill content truncated for context limits ...]'
89
+ : content;
90
+ return `### Skill: /${name}\n\n${trimmed}`;
91
+ })
86
92
  .join('\n\n---\n\n');
87
93
  skillsSection = `
88
94
 
89
- ## Installed Skills
95
+ ## Installed Skills (slash commands: ${skillNames})
90
96
 
91
- The following skills are available as slash commands: ${skillNames}
92
-
93
- When the user types a slash command that matches an installed skill, you MUST follow the skill's instructions exactly. Load any files the skill references (memory, agents, configs) using your tools. Use ask_user for interactive menus and questions.
97
+ IMPORTANT: When the user types one of these slash commands, you MUST:
98
+ 1. Read the files referenced in the skill (memory, agents, configs) using read_file
99
+ 2. Follow the skill's step-by-step instructions
100
+ 3. Use the ask_user tool for menus and questions — present options as numbered list
101
+ 4. Respond in the user's language
102
+ 5. NEVER just describe what the command does — actually EXECUTE it
94
103
 
95
104
  ${skillContents}`;
96
105
  }
97
106
  return `You are an AI coding agent working on the "${dirName}" project.
98
- You have access to tools for reading, writing, and searching files, running shell commands, and fetching web content.
107
+ You have tools to read, write, search files, run shell commands, and fetch web content.
108
+ You also have an ask_user tool to ask the user questions interactively.
99
109
 
100
110
  Working directory: ${cwd}
101
111
 
102
- ## Rules
112
+ ## CRITICAL RULES
103
113
 
104
- - Always read a file before editing it understand existing code before making changes
105
- - Use paths relative to the working directory
106
- - When editing files, prefer surgical edits (edit_file) over full rewrites (write_file)
107
- - Keep shell commands focused and non-destructive
108
- - If a task is ambiguous, use ask_user to clarify before proceeding
109
- - When you encounter an error, diagnose the root cause before retrying
110
- - Do not modify files you were not asked to change
111
- - Prefer small, focused changes over large rewrites
112
- - Follow the project conventions described in the project context below
113
- - When the user types a slash command (e.g. /expxagents), check if it matches an installed skill and execute it
114
+ 1. Use the user's language. If they write in Portuguese, respond in Portuguese. If English, use English.
115
+ 2. ALWAYS use your tools — do NOT output raw JSON, tool calls, or function call syntax as text. Use the actual tool functions provided to you.
116
+ 3. NEVER output text like \`{"name": "tool", "arguments": ...}\` that is a bug. Use the tool directly.
117
+ 4. When a slash command matches an installed skill (listed below), follow the skill instructions step by step.
118
+ 5. Use ask_user tool to present menus and ask questions do NOT just print questions as text.
119
+ 6. Read files before editing them. Use relative paths.
120
+ 7. Prefer edit_file over write_file for existing files.
121
+ 8. Keep shell commands focused and non-destructive.
114
122
 
115
123
  ## Output
116
124
 
117
- When you have completed the task, provide a brief summary of what you did.
118
- Do not wrap your final response in markdown code blocks unless the user asked for code.${projectContext}${skillsSection}`;
125
+ Respond concisely. Summarize what you did after completing a task.${projectContext}${skillsSection}`;
119
126
  }
120
127
  //# sourceMappingURL=system-prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../src/system-prompt.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.1",
3
+ "version": "0.30.3",
4
4
  "description": "Multi-agent orchestration platform for AI squads",
5
5
  "author": "ExpxAgents",
6
6
  "license": "MIT",