autodev-cli 1.4.32 → 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.
- package/out/core/commands.d.ts +4 -0
- package/out/core/commands.js +26 -0
- package/out/core/commands.js.map +1 -0
- package/out/core/pathSafe.d.ts +9 -0
- package/out/core/pathSafe.js +97 -0
- package/out/core/pathSafe.js.map +1 -0
- package/out/core/projectMcp.d.ts +4 -0
- package/out/core/projectMcp.js +42 -1
- package/out/core/projectMcp.js.map +1 -1
- package/out/emailPoller.d.ts +1 -1
- package/out/emailPoller.js +4 -1
- package/out/emailPoller.js.map +1 -1
- package/out/rateLimit.js +6 -1
- package/out/rateLimit.js.map +1 -1
- package/out/taskLoop.js +49 -11
- package/out/taskLoop.js.map +1 -1
- package/out/webSocketPoller.js +32 -18
- package/out/webSocketPoller.js.map +1 -1
- package/out/webhookPoller.js +21 -5
- package/out/webhookPoller.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Exact control commands recognized by TaskLoop._handleCommand. */
|
|
2
|
+
export declare const KNOWN_SLASH_COMMANDS: ReadonlySet<string>;
|
|
3
|
+
/** True only when `text` is exactly one of the known control commands. */
|
|
4
|
+
export declare function isKnownSlashCommand(text: string): boolean;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// Slash-command whitelist shared by every inbound transport (WS / HTTP webhook
|
|
4
|
+
// / Discord). Only text that EXACTLY matches a known control command may be
|
|
5
|
+
// diverted away from the TODO queue to _handleCommand. Any other slash-prefixed
|
|
6
|
+
// text (e.g. "/login is broken", "/etc/nginx needs a tweak") is an ordinary
|
|
7
|
+
// task and must still be appended, never silently dropped.
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.KNOWN_SLASH_COMMANDS = void 0;
|
|
11
|
+
exports.isKnownSlashCommand = isKnownSlashCommand;
|
|
12
|
+
/** Exact control commands recognized by TaskLoop._handleCommand. */
|
|
13
|
+
exports.KNOWN_SLASH_COMMANDS = new Set([
|
|
14
|
+
'/restart',
|
|
15
|
+
'/clear',
|
|
16
|
+
'/retry',
|
|
17
|
+
'/resume',
|
|
18
|
+
]);
|
|
19
|
+
/** True only when `text` is exactly one of the known control commands. */
|
|
20
|
+
function isKnownSlashCommand(text) {
|
|
21
|
+
if (typeof text !== 'string') {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
return exports.KNOWN_SLASH_COMMANDS.has(text.trim().toLowerCase());
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/core/commands.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,+EAA+E;AAC/E,4EAA4E;AAC5E,gFAAgF;AAChF,4EAA4E;AAC5E,2DAA2D;AAC3D,8EAA8E;;;AAW9E,kDAGC;AAZD,oEAAoE;AACvD,QAAA,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IAC/D,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,SAAS;CACV,CAAC,CAAC;AAEH,0EAA0E;AAC1E,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;IAC/C,OAAO,4BAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve `rel` against `root` and return the absolute path ONLY when it is
|
|
3
|
+
* contained within `root` both lexically AND after resolving symlinks. Returns
|
|
4
|
+
* null when the target escapes the workspace (including via a symlink that
|
|
5
|
+
* lexically lives inside it).
|
|
6
|
+
*
|
|
7
|
+
* @param allowRoot when false, the root itself is rejected (used for mutations).
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolveWithinRoot(root: string, rel: string, allowRoot: boolean): string | null;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.resolveWithinRoot = resolveWithinRoot;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
// ---------------------------------------------------------------------------
|
|
40
|
+
// pathSafe — workspace containment that also defeats symlink escapes.
|
|
41
|
+
//
|
|
42
|
+
// A purely lexical check (path.resolve + startsWith(root)) is not enough: a
|
|
43
|
+
// symlink that lives inside the workspace but points outside it (common after a
|
|
44
|
+
// git checkout, or created by the agent itself) passes the lexical test yet
|
|
45
|
+
// resolves to an arbitrary host file. resolveWithinRoot canonicalizes with
|
|
46
|
+
// fs.realpathSync — realpath'ing the nearest existing ancestor for create ops,
|
|
47
|
+
// whose leaf does not exist yet — and re-asserts containment against the real
|
|
48
|
+
// root before returning the path.
|
|
49
|
+
// ---------------------------------------------------------------------------
|
|
50
|
+
/**
|
|
51
|
+
* Resolve `rel` against `root` and return the absolute path ONLY when it is
|
|
52
|
+
* contained within `root` both lexically AND after resolving symlinks. Returns
|
|
53
|
+
* null when the target escapes the workspace (including via a symlink that
|
|
54
|
+
* lexically lives inside it).
|
|
55
|
+
*
|
|
56
|
+
* @param allowRoot when false, the root itself is rejected (used for mutations).
|
|
57
|
+
*/
|
|
58
|
+
function resolveWithinRoot(root, rel, allowRoot) {
|
|
59
|
+
const resolved = path.resolve(root, rel);
|
|
60
|
+
let realRoot;
|
|
61
|
+
try {
|
|
62
|
+
realRoot = fs.realpathSync(root);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
realRoot = root;
|
|
66
|
+
}
|
|
67
|
+
if (resolved === root) {
|
|
68
|
+
return allowRoot ? resolved : null;
|
|
69
|
+
}
|
|
70
|
+
// Lexical containment first (cheap, and rejects "../" traversal).
|
|
71
|
+
if (!resolved.startsWith(root + path.sep)) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
// Canonicalize the deepest existing ancestor — the leaf may not exist for a
|
|
75
|
+
// create op (write/mkdir/rename target). Any symlink along the way is
|
|
76
|
+
// resolved, so a link that points outside realRoot is rejected here.
|
|
77
|
+
let probe = resolved;
|
|
78
|
+
while (!fs.existsSync(probe)) {
|
|
79
|
+
const parent = path.dirname(probe);
|
|
80
|
+
if (parent === probe) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
probe = parent;
|
|
84
|
+
}
|
|
85
|
+
let realProbe;
|
|
86
|
+
try {
|
|
87
|
+
realProbe = fs.realpathSync(probe);
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
if (realProbe !== realRoot && !realProbe.startsWith(realRoot + path.sep)) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
return resolved;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=pathSafe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathSafe.js","sourceRoot":"","sources":["../../src/core/pathSafe.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,8CAwBC;AA/CD,uCAAyB;AACzB,2CAA6B;AAE7B,8EAA8E;AAC9E,sEAAsE;AACtE,EAAE;AACF,4EAA4E;AAC5E,gFAAgF;AAChF,4EAA4E;AAC5E,2EAA2E;AAC3E,+EAA+E;AAC/E,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAE9E;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,IAAY,EAAE,GAAW,EAAE,SAAkB;IAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEzC,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QAAC,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,QAAQ,GAAG,IAAI,CAAC;IAAC,CAAC;IAEpE,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAAC,OAAO,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAAC,CAAC;IAC9D,kEAAkE;IAClE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAE3D,4EAA4E;IAC5E,sEAAsE;IACtE,qEAAqE;IACrE,IAAI,KAAK,GAAG,QAAQ,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QACtC,KAAK,GAAG,MAAM,CAAC;IACjB,CAAC;IACD,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QAAC,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAClE,IAAI,SAAS,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAE1F,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/out/core/projectMcp.d.ts
CHANGED
|
@@ -30,6 +30,10 @@ export declare function isRemoteMcp(e: McpJsonEntry): boolean;
|
|
|
30
30
|
* command-execution primitives. Remote (url) entries are validated separately.
|
|
31
31
|
*/
|
|
32
32
|
export declare function isSafeStdioMcpCommand(command: unknown): command is string;
|
|
33
|
+
/** Reject an stdio MCP `args` array that carries an interpreter code-exec flag. */
|
|
34
|
+
export declare function isSafeStdioMcpArgs(args: unknown): boolean;
|
|
35
|
+
/** Reject an stdio MCP `env` block that sets a code-injection / preload var. */
|
|
36
|
+
export declare function isSafeStdioMcpEnv(env: unknown): boolean;
|
|
33
37
|
/**
|
|
34
38
|
* Filter an untrusted `mcpServers` map down to entries that are safe to write
|
|
35
39
|
* and (re)spawn. Remote entries must have an http/https url; stdio entries must
|
package/out/core/projectMcp.js
CHANGED
|
@@ -35,6 +35,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.isRemoteMcp = isRemoteMcp;
|
|
37
37
|
exports.isSafeStdioMcpCommand = isSafeStdioMcpCommand;
|
|
38
|
+
exports.isSafeStdioMcpArgs = isSafeStdioMcpArgs;
|
|
39
|
+
exports.isSafeStdioMcpEnv = isSafeStdioMcpEnv;
|
|
38
40
|
exports.sanitizeRemoteMcpEntries = sanitizeRemoteMcpEntries;
|
|
39
41
|
exports.loadProjectUserMcp = loadProjectUserMcp;
|
|
40
42
|
exports.loadProjectAllMcp = loadProjectAllMcp;
|
|
@@ -78,6 +80,45 @@ function isSafeStdioMcpCommand(command) {
|
|
|
78
80
|
return false;
|
|
79
81
|
return true;
|
|
80
82
|
}
|
|
83
|
+
// Interpreter flags that turn an otherwise-legitimate launcher (node/npx/uvx/…)
|
|
84
|
+
// into a direct arbitrary-code primitive: `node -e "require('child_process')…"`,
|
|
85
|
+
// `python -c …`, `node --require=/tmp/evil.js`, `deno --import …`. These never
|
|
86
|
+
// appear in a real MCP server invocation, so reject any arg equal to or
|
|
87
|
+
// prefixing one of them.
|
|
88
|
+
const _MCP_FORBIDDEN_ARG = /^\s*(-e|--eval|-c|--command|-p|--print|--require|--import|--experimental-loader|--loader)(=|$)/i;
|
|
89
|
+
// Env vars that inject code / preload a library into the spawned interpreter
|
|
90
|
+
// regardless of its args (NODE_OPTIONS=--require=…, LD_PRELOAD=…). Never valid
|
|
91
|
+
// for an MCP server env block.
|
|
92
|
+
const _MCP_FORBIDDEN_ENV_KEYS = new Set([
|
|
93
|
+
'NODE_OPTIONS', 'PYTHONSTARTUP', 'LD_PRELOAD', 'DYLD_INSERT_LIBRARIES',
|
|
94
|
+
'BUN_INSPECT', 'PERL5OPT', 'RUBYOPT',
|
|
95
|
+
]);
|
|
96
|
+
/** Reject an stdio MCP `args` array that carries an interpreter code-exec flag. */
|
|
97
|
+
function isSafeStdioMcpArgs(args) {
|
|
98
|
+
if (args === undefined)
|
|
99
|
+
return true;
|
|
100
|
+
if (!Array.isArray(args))
|
|
101
|
+
return false;
|
|
102
|
+
for (const a of args) {
|
|
103
|
+
if (typeof a !== 'string')
|
|
104
|
+
return false;
|
|
105
|
+
if (_MCP_FORBIDDEN_ARG.test(a))
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
/** Reject an stdio MCP `env` block that sets a code-injection / preload var. */
|
|
111
|
+
function isSafeStdioMcpEnv(env) {
|
|
112
|
+
if (env === undefined)
|
|
113
|
+
return true;
|
|
114
|
+
if (typeof env !== 'object' || env === null || Array.isArray(env))
|
|
115
|
+
return false;
|
|
116
|
+
for (const k of Object.keys(env)) {
|
|
117
|
+
if (_MCP_FORBIDDEN_ENV_KEYS.has(k.trim().toUpperCase()))
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
81
122
|
/**
|
|
82
123
|
* Filter an untrusted `mcpServers` map down to entries that are safe to write
|
|
83
124
|
* and (re)spawn. Remote entries must have an http/https url; stdio entries must
|
|
@@ -104,7 +145,7 @@ function sanitizeRemoteMcpEntries(entries) {
|
|
|
104
145
|
}
|
|
105
146
|
continue;
|
|
106
147
|
}
|
|
107
|
-
if (isSafeStdioMcpCommand(e.command)) {
|
|
148
|
+
if (isSafeStdioMcpCommand(e.command) && isSafeStdioMcpArgs(e.args) && isSafeStdioMcpEnv(e.env)) {
|
|
108
149
|
safe[name] = e;
|
|
109
150
|
}
|
|
110
151
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectMcp.js","sourceRoot":"","sources":["../../src/core/projectMcp.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,kCAEC;AAkBD,sDAUC;AASD,
|
|
1
|
+
{"version":3,"file":"projectMcp.js","sourceRoot":"","sources":["../../src/core/projectMcp.ts"],"names":[],"mappings":"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"}
|
package/out/emailPoller.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export interface EmailPollerOptions {
|
|
|
4
4
|
secure: boolean;
|
|
5
5
|
user: string;
|
|
6
6
|
pass: string;
|
|
7
|
-
/** Empty array = allow
|
|
7
|
+
/** Sender allowlist (regex/substring patterns). Empty array = allow NOBODY. */
|
|
8
8
|
allowedSenders: string[];
|
|
9
9
|
/** Verify TLS cert. Default true. */
|
|
10
10
|
rejectUnauthorized?: boolean;
|
package/out/emailPoller.js
CHANGED
|
@@ -175,8 +175,11 @@ class EmailTaskPoller {
|
|
|
175
175
|
return this.connecting;
|
|
176
176
|
}
|
|
177
177
|
_senderAllowed(address) {
|
|
178
|
+
// Fail closed: an empty allowlist allows NOBODY. Inbound email runs
|
|
179
|
+
// autonomous, full-tool-access tasks, so it must never be an open relay for
|
|
180
|
+
// anyone who guesses the mailbox address.
|
|
178
181
|
if (this.allowed.length === 0)
|
|
179
|
-
return
|
|
182
|
+
return false;
|
|
180
183
|
if (!address)
|
|
181
184
|
return false;
|
|
182
185
|
const addr = address.toLowerCase();
|
package/out/emailPoller.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emailPoller.js","sourceRoot":"","sources":["../src/emailPoller.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"emailPoller.js","sourceRoot":"","sources":["../src/emailPoller.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AACpC,2CAA2D;AAC3D,qDAAkD;AAClD,iCAAiC;AACjC,yDAAgD;AA6BhD,MAAa,eAAe;IAkBG;IAjBrB,MAAM,GAAoB,IAAI,CAAC;IAC/B,UAAU,GAAyB,IAAI,CAAC;IACxC,OAAO,GAAG,KAAK,CAAC;IACP,OAAO,CAAW;IACnC;;;;OAIG;IACK,QAAQ,GAAuB,IAAI,CAAC;IAC5C;;4CAEwC;IAChC,WAAW,GAAG,CAAC,CAAC;IACxB,0EAA0E;IAClE,MAAM,CAAU,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAEzD,YAA6B,IAAwB;QAAxB,SAAI,GAAJ,IAAI,CAAoB;QACnD,gEAAgE;QAChE,8DAA8D;QAC9D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc;aAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;aAChC,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACpG,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,aAAsB;QAC1D,IAAI,CAAC,aAAa;YAAE,OAAO,KAAK,CAAC;QACjC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC,CAAC,sBAAsB;QACtD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACvD,IAAI,CAAC;gBACH,qEAAqE;gBACrE,2DAA2D;gBAC3D,IAAI,CAAC;oBAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;gBAC3D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC;gBAE5D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC;wBAAE,SAAS;oBACtC,IAAI,SAAS,GAAG,KAAK,CAAC;oBACtB,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;wBACrG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;4BACxB,2CAA2C;4BAC3C,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;4BACtE,SAAS;wBACX,CAAC;wBACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;4BAC3D,kDAAkD;4BAClD,SAAS,GAAG,IAAI,CAAC;4BACjB,SAAS;wBACX,CAAC;wBACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;wBAC3F,IAAI,QAAQ,EAAE,CAAC;4BACb,MAAM,6BAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAA,cAAO,GAAE,CAAC,CAAC;4BACvD,QAAQ,GAAG,IAAI,CAAC;wBAClB,CAAC;wBACD,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;wBACtE,SAAS,GAAG,IAAI,CAAC;oBACnB,CAAC;oBAAC,MAAM,CAAC;wBACP,gEAAgE;wBAChE,2DAA2D;wBAC3D,IAAI,CAAC;4BAAC,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;wBAAC,CAAC;wBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;oBACvG,CAAC;4BAAS,CAAC;wBACT,IAAI,SAAS;4BAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC5C,CAAC;gBACH,CAAC;gBACD,kEAAkE;gBAClE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;oBAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACtE,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,2DAA2D;YAC3D,IAAI,CAAC;gBAAC,MAAM,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,uEAAuE;YACvE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC;YAAC,MAAM,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,4EAA4E;IAEpE,KAAK,CAAC,gBAAgB;QAC5B,sEAAsE;QACtE,qEAAqE;QACrE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,eAAe,EAAE,CAAC;YAC3G,IAAI,CAAC;gBAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAC1D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO;QAC9C,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE;YAC5B,MAAM,CAAC,GAAG,IAAI,mBAAQ,CAAC;gBACrB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;gBACpB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;gBACpB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;gBACxB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACpD,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,EAAE,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,KAAK,KAAK,EAAE;aACpE,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;YACpB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,oEAAoE;gBACpE,0DAA0D;gBAC1D,IAAI,CAAC;oBAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBAChD,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEO,cAAc,CAAC,OAAuB;QAC5C,oEAAoE;QACpE,4EAA4E;QAC5E,0CAA0C;QAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5C,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,MAAc,EAAE,QAAa,EAAE,aAAqB;QACtF,MAAM,MAAM,GAAe,MAAM,IAAA,yBAAY,EAAC,MAAM,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,QAAQ,EAAE,OAAO,IAAI,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/E,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,SAAS,CAAC;QAC/F,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5E,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAExC,+EAA+E;QAC/E,MAAM,OAAO,GAAG,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAE7F,MAAM,eAAe,GAAa,EAAE,CAAC;QACrC,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACrC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,IAAI,cAAc,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxE,MAAM,GAAG,GAAG,IAAA,+BAAc,EAAC,aAAa,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACtE,eAAe,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,uEAAuE;QACvE,4EAA4E;QAC5E,MAAM,SAAS,GAAG;YAChB,KAAK,OAAO,EAAE;YACd,EAAE;YACF,eAAe,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,KAAK,QAAQ,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;YAClE,eAAe,OAAO,EAAE;YACxB,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,MAAM,CAAC,WAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;YAChF,EAAE;YACF,KAAK;YACL,EAAE;YACF,IAAI,IAAI,kBAAkB;YAC1B,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;SAClF,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,UAAU,GAAG,IAAA,+BAAc,EAAC,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAEnF,OAAO,4DAA4D,OAAO,MAAM,UAAU,WAAW,QAAQ,GAAG,CAAC;IACnH,CAAC;;AA5LH,0CA6LC"}
|
package/out/rateLimit.js
CHANGED
|
@@ -62,7 +62,12 @@ const AUTH_PHRASES = [
|
|
|
62
62
|
/credit balance is too low/i, // Anthropic out-of-credit banner
|
|
63
63
|
/please run\s+\/login/i, // explicit re-login instruction
|
|
64
64
|
/oauth token[^\n]{0,60}(expired|revoked|invalid)/i, // token lifecycle failure
|
|
65
|
-
|
|
65
|
+
// "authentication_error" ONLY inside the provider's API-error framing or a JSON
|
|
66
|
+
// error body. A bare occurrence appears in ordinary code/prose the agent writes
|
|
67
|
+
// ("handle the authentication_error case", a pasted Stripe/Anthropic 401
|
|
68
|
+
// snippet), which previously bricked the loop into a false reauth pause.
|
|
69
|
+
/api error[^\n]{0,160}authentication_error/i, // "API Error: 401 ... authentication_error"
|
|
70
|
+
/"type"\s*:\s*"authentication_error"/i, // {"type":"authentication_error"}
|
|
66
71
|
// "not logged in / authenticated" only when paired with a re-auth instruction
|
|
67
72
|
// (a bare mention appears in ordinary code the agent writes).
|
|
68
73
|
/not (logged in|authenticated)[^\n]{0,40}(log ?in|authenticate|run|sign in|\/login)/i,
|
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,6EAA6E;IAC7E,mDAAmD;IACnD,iBAAiB,EAAiB,sDAAsD;IACxF,qBAAqB,EAAa,6DAA6D;IAC/F,sBAAsB;IACtB,6EAA6E;IAC7E,+EAA+E;IAC/E,4EAA4E;IAC5E,mCAAmC;IACnC,kCAAkC,EAAI,sCAAsC;IAC5E,mBAAmB,EAAmB,qCAAqC;CAC5E,CAAC;AAEF;;;;;GAKG;AACH,MAAa,SAAU,SAAQ,KAAK;IACb;IAArB,YAAqB,UAAkB;QACrC,KAAK,CAAC,UAAU,CAAC,CAAC;QADC,eAAU,GAAV,UAAU,CAAQ;QAErC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AALD,8BAKC;AAED;;;;;GAKG;AACH,MAAM,YAAY,GAA0B;IAC1C,kBAAkB,EAAqC,gDAAgD;IACvG,4BAA4B,EAA2B,iCAAiC;IACxF,uBAAuB,EAAgC,gCAAgC;IACvF,kDAAkD,EAAK,0BAA0B;IACjF,
|
|
1
|
+
{"version":3,"file":"rateLimit.js","sourceRoot":"","sources":["../src/rateLimit.ts"],"names":[],"mappings":"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"}
|
package/out/taskLoop.js
CHANGED
|
@@ -791,6 +791,17 @@ class TaskLoopRunner {
|
|
|
791
791
|
void this.restart();
|
|
792
792
|
return;
|
|
793
793
|
}
|
|
794
|
+
if (c === '/retry' || c === '/resume') {
|
|
795
|
+
if (this._state === 'paused') {
|
|
796
|
+
this._cb?.log(`▶️ ${c} received — resuming paused loop…`);
|
|
797
|
+
this._notifyDiscord(`▶️ Resuming loop (\`${c}\` received)`);
|
|
798
|
+
this.retry();
|
|
799
|
+
}
|
|
800
|
+
else {
|
|
801
|
+
this._cb?.log(`▶️ ${c} received but loop is not paused (state=${this._state}) — ignoring.`);
|
|
802
|
+
}
|
|
803
|
+
return;
|
|
804
|
+
}
|
|
794
805
|
if (c === '/clear') {
|
|
795
806
|
this._cb?.log('🗑 /clear received — clearing Claude session…');
|
|
796
807
|
this._notifyDiscord('🗑 `/clear` received — clearing Claude session');
|
|
@@ -891,6 +902,13 @@ class TaskLoopRunner {
|
|
|
891
902
|
const verify = String(env.MCP_EMAIL_SERVER_IMAP_VERIFY_SSL ?? 'true').toLowerCase() !== 'false';
|
|
892
903
|
const allowed = (env.AUTODEV_EMAIL_ALLOWED_SENDERS || '')
|
|
893
904
|
.split(',').map(s => s.trim()).filter(Boolean);
|
|
905
|
+
// Fail closed: an empty allowlist would otherwise ingest autonomous,
|
|
906
|
+
// full-tool-access instructions from ANY sender who guesses the mailbox.
|
|
907
|
+
// Require an explicit allowlist before enabling inbound email tasks.
|
|
908
|
+
if (allowed.length === 0) {
|
|
909
|
+
this._cb?.log('🔒 Inbound email tasks disabled — set AUTODEV_EMAIL_ALLOWED_SENDERS to an explicit sender allowlist to enable them.');
|
|
910
|
+
return null;
|
|
911
|
+
}
|
|
894
912
|
return new emailPoller_1.EmailTaskPoller({ host, port, secure, user, pass, allowedSenders: allowed, rejectUnauthorized: verify });
|
|
895
913
|
}
|
|
896
914
|
/**
|
|
@@ -1732,6 +1750,29 @@ class TaskLoopRunner {
|
|
|
1732
1750
|
});
|
|
1733
1751
|
// Never markDone — restore the task so it is retried after re-auth.
|
|
1734
1752
|
await todoWriteManager_1.todoWriter.resetToTodo(todoPath, task).catch(() => { });
|
|
1753
|
+
// Evict the cached persistent provider process. claude-tui / opencode-sdk
|
|
1754
|
+
// / copilot-sdk cache one live process per root that is still holding the
|
|
1755
|
+
// dead token, so re-login on disk would otherwise never be picked up and
|
|
1756
|
+
// Retry would spawn straight back into the same auth failure. Closing it
|
|
1757
|
+
// forces a fresh process (reading the new credentials) on resume.
|
|
1758
|
+
const evictRoot = this._workspaceRoot;
|
|
1759
|
+
if (evictRoot) {
|
|
1760
|
+
try {
|
|
1761
|
+
const evictLog = (m) => this._cb?.log(m);
|
|
1762
|
+
if (currentProvider === 'claude-tui') {
|
|
1763
|
+
(0, claudeTuiProvider_1.closeClaudeTuiClient)(evictRoot, evictLog);
|
|
1764
|
+
}
|
|
1765
|
+
else if (currentProvider === 'opencode-sdk') {
|
|
1766
|
+
(0, opencodeSdkProvider_1.closeOpencodeSdkClient)(evictRoot, evictLog);
|
|
1767
|
+
}
|
|
1768
|
+
else if (currentProvider === 'copilot-sdk') {
|
|
1769
|
+
(0, copilotSdkProvider_1.closeCopilotSdkSession)(evictRoot, evictLog);
|
|
1770
|
+
}
|
|
1771
|
+
}
|
|
1772
|
+
catch (evictErr) {
|
|
1773
|
+
this._cb?.log(`⚠️ Failed to evict ${currentProvider} client before reauth pause: ${evictErr instanceof Error ? evictErr.message : String(evictErr)}`);
|
|
1774
|
+
}
|
|
1775
|
+
}
|
|
1735
1776
|
// Pause indefinitely (no auto-resume) — operator must re-auth + Retry.
|
|
1736
1777
|
await this._pauseLoop();
|
|
1737
1778
|
if (this._state !== 'running') {
|
|
@@ -2204,17 +2245,14 @@ class TaskLoopRunner {
|
|
|
2204
2245
|
else {
|
|
2205
2246
|
lastStdoutLen = content.length; // keep cursor up to date
|
|
2206
2247
|
}
|
|
2207
|
-
// Auth
|
|
2208
|
-
//
|
|
2209
|
-
//
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2213
|
-
|
|
2214
|
-
|
|
2215
|
-
return;
|
|
2216
|
-
}
|
|
2217
|
-
}
|
|
2248
|
+
// Auth-failure detection is intentionally NOT run here mid-stream. For
|
|
2249
|
+
// claude-tui (and other teeing providers) this growing capture is the
|
|
2250
|
+
// model's own assistant transcript, so an ordinary task that merely
|
|
2251
|
+
// mentions auth/login ("handle the authentication_error case") would
|
|
2252
|
+
// trip AuthDetector and brick the running turn into a false reauth
|
|
2253
|
+
// pause. Auth is detected only on the process-EXIT buffer (see onCliExit
|
|
2254
|
+
// below), which is the provider's real failure surface — a logged-out /
|
|
2255
|
+
// out-of-credit CLI exits fast and is caught there.
|
|
2218
2256
|
// Rate limit detection — run for every stdout-teeing provider. The
|
|
2219
2257
|
// RateLimitDetector phrases are scoped to error/banner forms, so this
|
|
2220
2258
|
// is safe to apply provider-agnostically (grok/copilot were previously
|