@aiagentflow/cli 0.6.1 → 0.7.0
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/cli/commands/plan.d.ts +2 -0
- package/dist/cli/commands/plan.d.ts.map +1 -1
- package/dist/cli/commands/plan.js +4 -1
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/commands/resume.d.ts +12 -0
- package/dist/cli/commands/resume.d.ts.map +1 -0
- package/dist/cli/commands/resume.js +43 -0
- package/dist/cli/commands/resume.js.map +1 -0
- package/dist/cli/commands/sessions.d.ts +12 -0
- package/dist/cli/commands/sessions.d.ts.map +1 -0
- package/dist/cli/commands/sessions.js +70 -0
- package/dist/cli/commands/sessions.js.map +1 -0
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/config/types.d.ts +2 -2
- package/dist/core/config/types.d.ts.map +1 -1
- package/dist/core/workflow/approval.d.ts.map +1 -1
- package/dist/core/workflow/approval.js.map +1 -1
- package/dist/core/workflow/runner.d.ts +18 -0
- package/dist/core/workflow/runner.d.ts.map +1 -1
- package/dist/core/workflow/runner.js +81 -4
- package/dist/core/workflow/runner.js.map +1 -1
- package/dist/core/workflow/session.d.ts +2 -2
- package/dist/core/workflow/session.d.ts.map +1 -1
- package/dist/core/workflow/session.js.map +1 -1
- package/dist/core/workflow/task-queue.js.map +1 -1
- package/dist/core/workflow/token-tracker.d.ts +4 -0
- package/dist/core/workflow/token-tracker.d.ts.map +1 -1
- package/dist/core/workflow/token-tracker.js +8 -0
- package/dist/core/workflow/token-tracker.js.map +1 -1
- package/dist/prompts/library.js.map +1 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +3 -24
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/gemini.d.ts.map +1 -1
- package/dist/providers/gemini.js +12 -43
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/ollama.d.ts.map +1 -1
- package/dist/providers/ollama.js +12 -64
- package/dist/providers/ollama.js.map +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +11 -45
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/provider-errors.d.ts +39 -0
- package/dist/providers/provider-errors.d.ts.map +1 -0
- package/dist/providers/provider-errors.js +175 -0
- package/dist/providers/provider-errors.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared error handling utilities for LLM providers.
|
|
3
|
+
*
|
|
4
|
+
* Provides actionable error messages, retry logic, and timeout
|
|
5
|
+
* handling so each provider doesn't duplicate this logic.
|
|
6
|
+
*
|
|
7
|
+
* Dependency direction: provider-errors.ts → core/errors.ts, utils/logger.ts
|
|
8
|
+
* Used by: anthropic.ts, openai.ts, gemini.ts, ollama.ts
|
|
9
|
+
*/
|
|
10
|
+
import { ProviderError } from '../core/errors.js';
|
|
11
|
+
import { logger } from '../utils/logger.js';
|
|
12
|
+
/** Default timeout for cloud provider requests (60 seconds). */
|
|
13
|
+
export const PROVIDER_TIMEOUT_MS = 60_000;
|
|
14
|
+
/** Ollama timeout — local models on CPU can be slow (5 minutes). */
|
|
15
|
+
export const OLLAMA_TIMEOUT_MS = 300_000;
|
|
16
|
+
/** Get an actionable hint for an HTTP error status code. */
|
|
17
|
+
export function getHttpErrorHint(status, provider) {
|
|
18
|
+
if (status === 401 || status === 403) {
|
|
19
|
+
return `Check your ${provider} API key in .aiagentflow/config.json — run 'aiagentflow init' to reconfigure`;
|
|
20
|
+
}
|
|
21
|
+
if (status === 404) {
|
|
22
|
+
return 'Check the base URL in your configuration or verify the model name exists';
|
|
23
|
+
}
|
|
24
|
+
if (status === 429) {
|
|
25
|
+
return 'Rate limited — wait a moment and retry, or check your plan\'s rate limits';
|
|
26
|
+
}
|
|
27
|
+
if (status >= 500) {
|
|
28
|
+
return `${provider} is experiencing server issues — retry in a few seconds`;
|
|
29
|
+
}
|
|
30
|
+
return '';
|
|
31
|
+
}
|
|
32
|
+
/** Classify a network/connection error and return an actionable hint. */
|
|
33
|
+
export function getConnectionErrorHint(err, provider, baseUrl) {
|
|
34
|
+
const code = getErrorCode(err);
|
|
35
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
36
|
+
if (code === 'ECONNREFUSED' || message.includes('ECONNREFUSED')) {
|
|
37
|
+
if (provider === 'ollama') {
|
|
38
|
+
return `Cannot reach ${baseUrl} — is Ollama running? Start it with 'ollama serve'`;
|
|
39
|
+
}
|
|
40
|
+
return `Cannot reach ${baseUrl} — is the service running?`;
|
|
41
|
+
}
|
|
42
|
+
if (code === 'ENOTFOUND' || message.includes('ENOTFOUND') || message.includes('getaddrinfo')) {
|
|
43
|
+
return `DNS lookup failed for ${baseUrl} — check the URL in .aiagentflow/config.json`;
|
|
44
|
+
}
|
|
45
|
+
if (code === 'ETIMEDOUT' || code === 'UND_ERR_CONNECT_TIMEOUT' || message.includes('ETIMEDOUT')) {
|
|
46
|
+
return `Connection timed out to ${baseUrl} — check your network or try again`;
|
|
47
|
+
}
|
|
48
|
+
if (err instanceof Error && (err.name === 'AbortError' || err.name === 'TimeoutError')) {
|
|
49
|
+
return 'Request timed out — the server may be overloaded, try again';
|
|
50
|
+
}
|
|
51
|
+
return '';
|
|
52
|
+
}
|
|
53
|
+
/** Build a ProviderError with an actionable hint from an HTTP error. */
|
|
54
|
+
export function buildHttpError(status, statusText, provider, errorBody) {
|
|
55
|
+
const hint = getHttpErrorHint(status, provider);
|
|
56
|
+
const label = getStatusLabel(status);
|
|
57
|
+
const message = hint
|
|
58
|
+
? `${provider} API ${label} (${status}). ${hint}`
|
|
59
|
+
: `${provider} API error: ${status} ${statusText}`;
|
|
60
|
+
return new ProviderError(message, {
|
|
61
|
+
provider,
|
|
62
|
+
status,
|
|
63
|
+
body: errorBody,
|
|
64
|
+
...(hint ? { hint } : {}),
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/** Build a ProviderError with an actionable hint from a connection error. */
|
|
68
|
+
export function buildConnectionError(err, provider, baseUrl) {
|
|
69
|
+
const hint = getConnectionErrorHint(err, provider, baseUrl);
|
|
70
|
+
const underlying = err instanceof Error ? err.message : String(err);
|
|
71
|
+
const message = hint
|
|
72
|
+
? `Failed to connect to ${provider} API. ${hint}`
|
|
73
|
+
: `Failed to connect to ${provider} API: ${underlying}`;
|
|
74
|
+
return new ProviderError(message, {
|
|
75
|
+
provider,
|
|
76
|
+
baseUrl,
|
|
77
|
+
...(hint ? { hint } : {}),
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
/** Check if an HTTP status code is retryable. */
|
|
81
|
+
export function isRetryableStatus(status) {
|
|
82
|
+
return status === 429 || status >= 500;
|
|
83
|
+
}
|
|
84
|
+
/** Check if a network error is retryable. */
|
|
85
|
+
function isRetryableNetworkError(err) {
|
|
86
|
+
const code = getErrorCode(err);
|
|
87
|
+
const retryableCodes = ['ECONNRESET', 'ECONNREFUSED', 'EPIPE', 'ETIMEDOUT', 'UND_ERR_CONNECT_TIMEOUT'];
|
|
88
|
+
if (code && retryableCodes.includes(code))
|
|
89
|
+
return true;
|
|
90
|
+
if (err instanceof Error) {
|
|
91
|
+
if (err.name === 'AbortError' || err.name === 'TimeoutError')
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Fetch with automatic retry, timeout, and actionable error messages.
|
|
98
|
+
*
|
|
99
|
+
* Retries on 429, 5xx, and transient network errors with exponential backoff.
|
|
100
|
+
* Throws ProviderError with actionable hints on final failure.
|
|
101
|
+
*/
|
|
102
|
+
export async function fetchWithRetry(url, init, options) {
|
|
103
|
+
const { provider, baseUrl, timeoutMs, maxRetries = 2 } = options;
|
|
104
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
105
|
+
try {
|
|
106
|
+
const response = await fetch(url, {
|
|
107
|
+
...init,
|
|
108
|
+
signal: AbortSignal.timeout(timeoutMs),
|
|
109
|
+
});
|
|
110
|
+
if (!response.ok) {
|
|
111
|
+
if (isRetryableStatus(response.status) && attempt < maxRetries) {
|
|
112
|
+
const delay = getRetryDelay(response, attempt);
|
|
113
|
+
logger.debug(`${provider} returned ${response.status}, retrying in ${delay}ms (attempt ${attempt + 1}/${maxRetries + 1})`);
|
|
114
|
+
await sleep(delay);
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
const errorBody = await response.text();
|
|
118
|
+
throw buildHttpError(response.status, response.statusText, provider, errorBody);
|
|
119
|
+
}
|
|
120
|
+
return response;
|
|
121
|
+
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
// Re-throw our own errors
|
|
124
|
+
if (err instanceof ProviderError)
|
|
125
|
+
throw err;
|
|
126
|
+
if (isRetryableNetworkError(err) && attempt < maxRetries) {
|
|
127
|
+
const delay = 1000 * 2 ** attempt; // 1s, 2s, 4s
|
|
128
|
+
logger.debug(`${provider} connection failed, retrying in ${delay}ms (attempt ${attempt + 1}/${maxRetries + 1})`);
|
|
129
|
+
await sleep(delay);
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
throw buildConnectionError(err, provider, baseUrl);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
// Unreachable, but satisfies TypeScript
|
|
136
|
+
throw new ProviderError(`${provider} request failed after ${maxRetries + 1} attempts`, { provider });
|
|
137
|
+
}
|
|
138
|
+
// ── Private helpers ──
|
|
139
|
+
function getStatusLabel(status) {
|
|
140
|
+
if (status === 401)
|
|
141
|
+
return 'authentication failed';
|
|
142
|
+
if (status === 403)
|
|
143
|
+
return 'access denied';
|
|
144
|
+
if (status === 404)
|
|
145
|
+
return 'endpoint not found';
|
|
146
|
+
if (status === 429)
|
|
147
|
+
return 'rate limit exceeded';
|
|
148
|
+
if (status >= 500)
|
|
149
|
+
return 'server error';
|
|
150
|
+
return 'error';
|
|
151
|
+
}
|
|
152
|
+
function getErrorCode(err) {
|
|
153
|
+
if (err instanceof Error) {
|
|
154
|
+
// Node.js errors store code on the error itself or on cause
|
|
155
|
+
const nodeErr = err;
|
|
156
|
+
return nodeErr.code ?? nodeErr.cause?.code;
|
|
157
|
+
}
|
|
158
|
+
return undefined;
|
|
159
|
+
}
|
|
160
|
+
function getRetryDelay(response, attempt) {
|
|
161
|
+
// Respect Retry-After header if present
|
|
162
|
+
const retryAfter = response.headers.get('retry-after');
|
|
163
|
+
if (retryAfter) {
|
|
164
|
+
const seconds = Number(retryAfter);
|
|
165
|
+
if (!Number.isNaN(seconds) && seconds > 0 && seconds <= 60) {
|
|
166
|
+
return seconds * 1000;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
// Exponential backoff: 1s, 2s, 4s
|
|
170
|
+
return 1000 * 2 ** attempt;
|
|
171
|
+
}
|
|
172
|
+
function sleep(ms) {
|
|
173
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=provider-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-errors.js","sourceRoot":"","sources":["../../src/providers/provider-errors.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aiagentflow/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "A local-first, CLI-driven multi-agent AI software engineering workflow orchestrator — feed specs, PRDs, and guidelines to auto-generate implementation plans and code",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|