@llm4ts/core 2.8.0 → 2.9.1
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/UsageLimits.d.ts.map +1 -1
- package/dist/UsageLimits.js +22 -0
- package/dist/UsageLimits.js.map +1 -1
- package/dist/providers/AntigravityConnector.d.ts.map +1 -1
- package/dist/providers/AntigravityConnector.js +2 -5
- package/dist/providers/AntigravityConnector.js.map +1 -1
- package/dist/providers/ClaudeCliConnector.d.ts +2 -0
- package/dist/providers/ClaudeCliConnector.d.ts.map +1 -1
- package/dist/providers/ClaudeCliConnector.js +28 -5
- package/dist/providers/ClaudeCliConnector.js.map +1 -1
- package/dist/providers/CopilotConnector.d.ts.map +1 -1
- package/dist/providers/CopilotConnector.js +2 -4
- package/dist/providers/CopilotConnector.js.map +1 -1
- package/dist/providers/PiConnector.d.ts.map +1 -1
- package/dist/providers/PiConnector.js +7 -7
- package/dist/providers/PiConnector.js.map +1 -1
- package/package.json +1 -1
- package/src/UsageLimits.ts +24 -0
- package/src/providers/AntigravityConnector.ts +6 -5
- package/src/providers/ClaudeCliConnector.ts +70 -31
- package/src/providers/CopilotConnector.ts +6 -4
- package/src/providers/PiConnector.ts +7 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UsageLimits.d.ts","sourceRoot":"","sources":["../src/UsageLimits.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAmC,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"UsageLimits.d.ts","sourceRoot":"","sources":["../src/UsageLimits.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAmC,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAA;AA0C5E,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,OAAmD,CAAA;AAyJhG,eAAO,MAAM,kBAAkB,GAC7B,UAAU,MAAM,EAChB,MAAM,MAAM,EACZ,KAAK,QAAQ,CAAC,GAAG,EACjB,UAAU,MAAM,KACf,QAAQ,GAAG,SA+Db,CAAA"}
|
package/dist/UsageLimits.js
CHANGED
|
@@ -20,12 +20,25 @@ const genericQuotaSignals = [
|
|
|
20
20
|
"out of credits",
|
|
21
21
|
"too many requests"
|
|
22
22
|
];
|
|
23
|
+
// Harnesses that relay many providers (pi) or wrap one (antigravity,
|
|
24
|
+
// copilot): only exhausted quota counts. Their "rate limited" is the
|
|
25
|
+
// harness's own retries giving up on a short limit, which stays a
|
|
26
|
+
// retryable provider error rather than a half-hour usage limit.
|
|
27
|
+
const relayedQuotaSignals = [
|
|
28
|
+
"usage limit",
|
|
29
|
+
"out of credits",
|
|
30
|
+
"out of extra usage",
|
|
31
|
+
"credit balance is too low",
|
|
32
|
+
"insufficient_quota",
|
|
33
|
+
"exceeded your current quota"
|
|
34
|
+
];
|
|
23
35
|
const includesSignal = (text, signals) => {
|
|
24
36
|
const normalized = text.toLowerCase();
|
|
25
37
|
return signals.some((signal) => normalized.includes(signal));
|
|
26
38
|
};
|
|
27
39
|
export const isGeminiQuota = (text) => includesSignal(text, geminiQuotaSignals);
|
|
28
40
|
const isGenericQuota = (text) => includesSignal(text, genericQuotaSignals);
|
|
41
|
+
const isRelayedQuota = (text) => includesSignal(text, relayedQuotaSignals);
|
|
29
42
|
const resetDuration = (specification) => {
|
|
30
43
|
let milliseconds = 0;
|
|
31
44
|
for (const match of specification.matchAll(resetComponent)) {
|
|
@@ -171,6 +184,15 @@ export const classifyUsageLimit = (provider, text, now, timeZone) => {
|
|
|
171
184
|
})
|
|
172
185
|
: undefined;
|
|
173
186
|
}
|
|
187
|
+
case "pi":
|
|
188
|
+
case "antigravity":
|
|
189
|
+
case "copilot":
|
|
190
|
+
return isRelayedQuota(text)
|
|
191
|
+
? UsageLimitError.make({
|
|
192
|
+
provider,
|
|
193
|
+
message: text
|
|
194
|
+
})
|
|
195
|
+
: undefined;
|
|
174
196
|
case "grok":
|
|
175
197
|
case "cursor":
|
|
176
198
|
case "opencode":
|
package/dist/UsageLimits.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UsageLimits.js","sourceRoot":"","sources":["../src/UsageLimits.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UsageLimits.js","sourceRoot":"","sources":["../src/UsageLimits.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AntigravityConnector.d.ts","sourceRoot":"","sources":["../../src/providers/AntigravityConnector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"AntigravityConnector.d.ts","sourceRoot":"","sources":["../../src/providers/AntigravityConnector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAajE,eAAO,MAAM,oBAAoB,GAAI,QAAQ,kBAAkB,KAAG,aAAa,CAAC,MAAM,CAUrF,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,kBAAkB,EAC1B,QAAQ,MAAM,KACb,aAAa,CAAC,MAAM,CAAgE,CAAA;AAEvF,eAAO,MAAM,wBAAwB,GACnC,QAAQ,kBAAkB,EAC1B,UAAU,oBAAoB,KAC7B,iBA0CF,CAAA"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
2
|
import * as Stream from "effect/Stream";
|
|
3
3
|
import { makeCliConnector } from "../Connector.js";
|
|
4
|
-
import { ProviderError } from "../Errors.js";
|
|
5
4
|
import { ConnectorCapabilities, ConnectorIds, HealthStatus, LlmChunk } from "../Models.js";
|
|
6
|
-
import { optionalModelArgs, sortedFlagArgs } from "./CliSupport.js";
|
|
5
|
+
import { failClassifiedCliError, optionalModelArgs, sortedFlagArgs } from "./CliSupport.js";
|
|
7
6
|
const healthy = HealthStatus.make({
|
|
8
7
|
availability: "Healthy",
|
|
9
8
|
authStatus: "Valid"
|
|
@@ -30,9 +29,7 @@ export const makeAntigravityConnector = (config, executor) => {
|
|
|
30
29
|
const result = yield* executor.run(buildAntigravityArgv(config, prompt), cwd, config.envVars);
|
|
31
30
|
if (result.exitCode !== 0) {
|
|
32
31
|
const detail = [...result.stderr, ...result.stdout].join("\n");
|
|
33
|
-
return yield*
|
|
34
|
-
message: `agy exited with code ${result.exitCode}: ${detail}`
|
|
35
|
-
});
|
|
32
|
+
return yield* failClassifiedCliError("antigravity", `agy exited with code ${result.exitCode}`, detail);
|
|
36
33
|
}
|
|
37
34
|
return result.stdout.join("\n");
|
|
38
35
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AntigravityConnector.js","sourceRoot":"","sources":["../../src/providers/AntigravityConnector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAA0B,MAAM,iBAAiB,CAAA;AAE1E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AntigravityConnector.js","sourceRoot":"","sources":["../../src/providers/AntigravityConnector.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,8 @@ import type { ProcessExecutorShape } from "../ProcessExecutor.ts";
|
|
|
14
14
|
export declare const claudeReadOnlyTools = "Read,Grep,Glob,Skill";
|
|
15
15
|
export declare const claudeCliExtraArgs: (config: CliConnectorConfig) => ReadonlyArray<string>;
|
|
16
16
|
export declare const claudeCliInitModel: (line: string) => string | undefined;
|
|
17
|
+
/** The text of a `result` event that reports an error, if the line is one. */
|
|
18
|
+
export declare const claudeCliErrorResult: (line: string) => string | undefined;
|
|
17
19
|
export declare const parseClaudeCliStreamLine: (line: string) => ReadonlyArray<LlmChunk>;
|
|
18
20
|
export declare const makeClaudeCliConnector: (config: CliConnectorConfig, executor: ProcessExecutorShape) => CliConnectorShape;
|
|
19
21
|
//# sourceMappingURL=ClaudeCliConnector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudeCliConnector.d.ts","sourceRoot":"","sources":["../../src/providers/ClaudeCliConnector.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAG/D,OAAO,EAGL,QAAQ,EAGT,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAiBjE;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,yBAAyB,CAAA;AAEzD,eAAO,MAAM,kBAAkB,GAAI,QAAQ,kBAAkB,KAAG,aAAa,CAAC,MAAM,CAQnF,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,SAK1D,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,MAAM,MAAM,KAAG,aAAa,CAAC,QAAQ,CA4D7E,CAAA;AAED,eAAO,MAAM,sBAAsB,GACjC,QAAQ,kBAAkB,EAC1B,UAAU,oBAAoB,KAC7B,
|
|
1
|
+
{"version":3,"file":"ClaudeCliConnector.d.ts","sourceRoot":"","sources":["../../src/providers/ClaudeCliConnector.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAG/D,OAAO,EAGL,QAAQ,EAGT,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAiBjE;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,yBAAyB,CAAA;AAEzD,eAAO,MAAM,kBAAkB,GAAI,QAAQ,kBAAkB,KAAG,aAAa,CAAC,MAAM,CAQnF,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,SAK1D,CAAA;AAED,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,SAQ5D,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,MAAM,MAAM,KAAG,aAAa,CAAC,QAAQ,CA4D7E,CAAA;AAED,eAAO,MAAM,sBAAsB,GACjC,QAAQ,kBAAkB,EAC1B,UAAU,oBAAoB,KAC7B,iBAgIF,CAAA"}
|
|
@@ -31,6 +31,16 @@ export const claudeCliInitModel = (line) => {
|
|
|
31
31
|
? jsonStringField(json, "model")
|
|
32
32
|
: undefined;
|
|
33
33
|
};
|
|
34
|
+
/** The text of a `result` event that reports an error, if the line is one. */
|
|
35
|
+
export const claudeCliErrorResult = (line) => {
|
|
36
|
+
const json = parseJsonLine(line);
|
|
37
|
+
if (json === undefined || jsonStringField(json, "type") !== "result") {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
const failed = jsonField(json, "is_error") === true;
|
|
41
|
+
const text = jsonStringField(json, "result");
|
|
42
|
+
return failed && text !== undefined && text.trim().length > 0 ? text : undefined;
|
|
43
|
+
};
|
|
34
44
|
export const parseClaudeCliStreamLine = (line) => {
|
|
35
45
|
const json = parseJsonLine(line);
|
|
36
46
|
if (json === undefined) {
|
|
@@ -91,19 +101,32 @@ export const makeClaudeCliConnector = (config, executor) => {
|
|
|
91
101
|
const complete = Effect.fn("@llm4ts/core/providers/ClaudeCliConnector.complete")(function* (prompt) {
|
|
92
102
|
const result = yield* executor.runWithStdin(["claude", "--print", ...extraArgs], cwd, config.envVars, prompt);
|
|
93
103
|
if (result.exitCode !== 0) {
|
|
94
|
-
|
|
104
|
+
// claude explains most refusals on stdout (a usage limit), but a
|
|
105
|
+
// startup failure only on stderr: an empty reason is useless, so both
|
|
106
|
+
// streams are reported.
|
|
107
|
+
const raw = [...result.stdout, ...result.stderr].join("\n").trim();
|
|
95
108
|
return yield* failClassifiedCliError("claude", `claude exited with code ${result.exitCode}`, raw);
|
|
96
109
|
}
|
|
97
110
|
return result.stdout.join("\n");
|
|
98
111
|
});
|
|
99
|
-
const completeStream = (prompt) => Stream.unwrap(Effect.map(Ref.make(undefined), (model) => executor
|
|
112
|
+
const completeStream = (prompt) => Stream.unwrap(Effect.map(Effect.all([Ref.make(undefined), Ref.make("")]), ([model, said]) => executor
|
|
100
113
|
.runStreamingWithStdin(["claude", "--print", "--output-format", "stream-json", "--verbose", ...extraArgs], cwd, config.envVars, prompt)
|
|
101
114
|
.pipe(Stream.mapEffect((line) => {
|
|
102
115
|
const initializedModel = claudeCliInitModel(line);
|
|
116
|
+
const refusal = claudeCliErrorResult(line);
|
|
117
|
+
const noted = refusal === undefined ? Effect.void : Ref.set(said, refusal);
|
|
103
118
|
return initializedModel === undefined
|
|
104
|
-
? Effect.
|
|
105
|
-
: Ref.set(model, initializedModel).pipe(Effect.as(line));
|
|
106
|
-
}), Stream.flatMap((line) => Stream.fromIterable(parseClaudeCliStreamLine(line))),
|
|
119
|
+
? Effect.as(noted, line)
|
|
120
|
+
: Ref.set(model, initializedModel).pipe(Effect.andThen(noted), Effect.as(line));
|
|
121
|
+
}), Stream.flatMap((line) => Stream.fromIterable(parseClaudeCliStreamLine(line))),
|
|
122
|
+
// What claude last said is the reason when it then exits non-zero
|
|
123
|
+
// with an empty stderr (a bad model name, a usage limit): kept so
|
|
124
|
+
// the failure can name it instead of "exited with code 1".
|
|
125
|
+
Stream.tap((chunk) => chunk.delta.length === 0
|
|
126
|
+
? Effect.void
|
|
127
|
+
: Ref.update(said, (text) => `${text}${chunk.delta}`.slice(-2_000))), Stream.catchIf(() => true, (error) => Stream.unwrap(Effect.map(Ref.get(said), (text) => text.trim().length === 0
|
|
128
|
+
? Stream.fail(error)
|
|
129
|
+
: Stream.fromEffect(failClassifiedCliError("claude", error.message, text.trim()))))), Stream.mapEffect((chunk) => chunk.usage === undefined
|
|
107
130
|
? Effect.succeed(chunk)
|
|
108
131
|
: Effect.map(Ref.get(model), (servedModel) => servedModel === undefined
|
|
109
132
|
? chunk
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudeCliConnector.js","sourceRoot":"","sources":["../../src/providers/ClaudeCliConnector.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ClaudeCliConnector.js","sourceRoot":"","sources":["../../src/providers/ClaudeCliConnector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CopilotConnector.d.ts","sourceRoot":"","sources":["../../src/providers/CopilotConnector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"CopilotConnector.d.ts","sourceRoot":"","sources":["../../src/providers/CopilotConnector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAGjE,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,KAAG,aAAa,CAAC,MAAM,CAOrE,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,kBAAkB,EAC1B,UAAU,oBAAoB,KAC7B,iBAoCF,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
2
|
import * as Stream from "effect/Stream";
|
|
3
3
|
import { makeCliConnector } from "../Connector.js";
|
|
4
|
-
import { ProviderError } from "../Errors.js";
|
|
5
4
|
import { ConnectorCapabilities, ConnectorIds, LlmChunk } from "../Models.js";
|
|
5
|
+
import { failClassifiedCliError } from "./CliSupport.js";
|
|
6
6
|
export const buildCopilotArgv = (prompt) => [
|
|
7
7
|
"gh",
|
|
8
8
|
"copilot",
|
|
@@ -16,9 +16,7 @@ export const makeCopilotConnector = (config, executor) => {
|
|
|
16
16
|
const argv = buildCopilotArgv(prompt);
|
|
17
17
|
const result = yield* executor.run(argv, ".", config.envVars);
|
|
18
18
|
if (result.exitCode !== 0) {
|
|
19
|
-
return yield*
|
|
20
|
-
message: `gh copilot exited with code ${result.exitCode}: ${result.stdout.join("\n")}`
|
|
21
|
-
});
|
|
19
|
+
return yield* failClassifiedCliError("copilot", `gh copilot exited with code ${result.exitCode}`, result.stdout.join("\n"));
|
|
22
20
|
}
|
|
23
21
|
return result.stdout.join("\n");
|
|
24
22
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CopilotConnector.js","sourceRoot":"","sources":["../../src/providers/CopilotConnector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAA0B,MAAM,iBAAiB,CAAA;AAE1E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"CopilotConnector.js","sourceRoot":"","sources":["../../src/providers/CopilotConnector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAA0B,MAAM,iBAAiB,CAAA;AAE1E,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAE5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAExD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAyB,EAAE,CAAC;IACzE,IAAI;IACJ,SAAS;IACT,SAAS;IACT,IAAI;IACJ,OAAO;IACP,MAAM;CACP,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,MAA0B,EAC1B,QAA8B,EACX,EAAE;IACrB,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,kDAAkD,CAAC,CAAC,QAAQ,CAAC,EACtF,MAAc;QAEd,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACrC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QAC7D,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC,CAAC,sBAAsB,CAClC,SAAS,EACT,+BAA+B,MAAM,CAAC,QAAQ,EAAE,EAChD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CACzB,CAAA;QACH,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,OAAO,gBAAgB,CAAC;QACtB,EAAE,EAAE,YAAY,CAAC,OAAO;QACxB,kBAAkB,EAAE,kBAAkB;QACtC,mEAAmE;QACnE,sEAAsE;QACtE,oEAAoE;QACpE,cAAc;QACd,YAAY,EAAE,qBAAqB,CAAC,IAAI,CAAC;YACvC,cAAc,EAAE,KAAK;YACrB,mBAAmB,EAAE,SAAS;SAC/B,CAAC;QACF,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC;QACzD,oBAAoB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC;QACrD,QAAQ;QACR,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CACzB,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CACtC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CACrD;QACH,YAAY,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE;KAC1F,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PiConnector.d.ts","sourceRoot":"","sources":["../../src/providers/PiConnector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE/D,OAAO,EAAuC,QAAQ,EAAc,MAAM,cAAc,CAAA;AACxF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"PiConnector.d.ts","sourceRoot":"","sources":["../../src/providers/PiConnector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE/D,OAAO,EAAuC,QAAQ,EAAc,MAAM,cAAc,CAAA;AACxF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAcjE,eAAO,MAAM,WAAW,GAAI,QAAQ,kBAAkB,KAAG,aAAa,CAAC,MAAM,CAS5E,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,aAAa,CAAC,QAAQ,CAyEtE,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,QAAQ,kBAAkB,EAC1B,UAAU,oBAAoB,KAC7B,iBA4DF,CAAA"}
|
|
@@ -3,7 +3,7 @@ import * as Stream from "effect/Stream";
|
|
|
3
3
|
import { makeCliConnector } from "../Connector.js";
|
|
4
4
|
import { ProviderError } from "../Errors.js";
|
|
5
5
|
import { ConnectorCapabilities, ConnectorIds, LlmChunk, TokenUsage } from "../Models.js";
|
|
6
|
-
import { jsonBooleanField, jsonField, jsonIntField, jsonStringField, optionalModelArgs, parseJsonLine, sortedFlagArgs, toolEventChunk, usageEventChunk } from "./CliSupport.js";
|
|
6
|
+
import { failClassifiedCliError, jsonBooleanField, jsonField, jsonIntField, jsonStringField, optionalModelArgs, parseJsonLine, sortedFlagArgs, toolEventChunk, usageEventChunk } from "./CliSupport.js";
|
|
7
7
|
export const piExtraArgs = (config) => [
|
|
8
8
|
...optionalModelArgs(config.model),
|
|
9
9
|
// `noTools` takes precedence over `readOnly`: `--no-tools` disables tool
|
|
@@ -92,9 +92,11 @@ export const makePiConnector = (config, executor) => {
|
|
|
92
92
|
// pi explains a refusal on stderr (a usage error, a missing model, an
|
|
93
93
|
// auth failure); stdout is empty then, so both streams are reported.
|
|
94
94
|
const detail = [...result.stdout, ...result.stderr].join("\n").trim();
|
|
95
|
-
|
|
96
|
-
message: `pi exited with code ${result.exitCode}
|
|
97
|
-
}
|
|
95
|
+
if (detail.length === 0) {
|
|
96
|
+
return yield* ProviderError.make({ message: `pi exited with code ${result.exitCode}` });
|
|
97
|
+
}
|
|
98
|
+
// A usage limit is typed, so a roster can take pi out of the round (ADR 0019).
|
|
99
|
+
return yield* failClassifiedCliError("pi", `pi exited with code ${result.exitCode}`, detail);
|
|
98
100
|
}
|
|
99
101
|
return result.stdout.join("\n");
|
|
100
102
|
});
|
|
@@ -104,9 +106,7 @@ export const makePiConnector = (config, executor) => {
|
|
|
104
106
|
const message = chunk.metadata.piError;
|
|
105
107
|
return message === undefined
|
|
106
108
|
? Effect.succeed(chunk)
|
|
107
|
-
:
|
|
108
|
-
message: `pi error: ${message}`
|
|
109
|
-
}));
|
|
109
|
+
: failClassifiedCliError("pi", "pi error", message);
|
|
110
110
|
}));
|
|
111
111
|
return makeCliConnector({
|
|
112
112
|
id: ConnectorIds.Pi,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PiConnector.js","sourceRoot":"","sources":["../../src/providers/PiConnector.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PiConnector.js","sourceRoot":"","sources":["../../src/providers/PiConnector.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/UsageLimits.ts
CHANGED
|
@@ -24,6 +24,19 @@ const genericQuotaSignals: ReadonlyArray<string> = [
|
|
|
24
24
|
"too many requests"
|
|
25
25
|
]
|
|
26
26
|
|
|
27
|
+
// Harnesses that relay many providers (pi) or wrap one (antigravity,
|
|
28
|
+
// copilot): only exhausted quota counts. Their "rate limited" is the
|
|
29
|
+
// harness's own retries giving up on a short limit, which stays a
|
|
30
|
+
// retryable provider error rather than a half-hour usage limit.
|
|
31
|
+
const relayedQuotaSignals: ReadonlyArray<string> = [
|
|
32
|
+
"usage limit",
|
|
33
|
+
"out of credits",
|
|
34
|
+
"out of extra usage",
|
|
35
|
+
"credit balance is too low",
|
|
36
|
+
"insufficient_quota",
|
|
37
|
+
"exceeded your current quota"
|
|
38
|
+
]
|
|
39
|
+
|
|
27
40
|
const includesSignal = (text: string, signals: ReadonlyArray<string>): boolean => {
|
|
28
41
|
const normalized = text.toLowerCase()
|
|
29
42
|
return signals.some((signal) => normalized.includes(signal))
|
|
@@ -33,6 +46,8 @@ export const isGeminiQuota = (text: string): boolean => includesSignal(text, gem
|
|
|
33
46
|
|
|
34
47
|
const isGenericQuota = (text: string): boolean => includesSignal(text, genericQuotaSignals)
|
|
35
48
|
|
|
49
|
+
const isRelayedQuota = (text: string): boolean => includesSignal(text, relayedQuotaSignals)
|
|
50
|
+
|
|
36
51
|
const resetDuration = (specification: string): Duration.Duration => {
|
|
37
52
|
let milliseconds = 0
|
|
38
53
|
|
|
@@ -227,6 +242,15 @@ export const classifyUsageLimit = (
|
|
|
227
242
|
})
|
|
228
243
|
: undefined
|
|
229
244
|
}
|
|
245
|
+
case "pi":
|
|
246
|
+
case "antigravity":
|
|
247
|
+
case "copilot":
|
|
248
|
+
return isRelayedQuota(text)
|
|
249
|
+
? UsageLimitError.make({
|
|
250
|
+
provider,
|
|
251
|
+
message: text
|
|
252
|
+
})
|
|
253
|
+
: undefined
|
|
230
254
|
case "grok":
|
|
231
255
|
case "cursor":
|
|
232
256
|
case "opencode":
|
|
@@ -2,10 +2,9 @@ import * as Effect from "effect/Effect"
|
|
|
2
2
|
import * as Stream from "effect/Stream"
|
|
3
3
|
import { makeCliConnector, type CliConnectorShape } from "../Connector.ts"
|
|
4
4
|
import type { CliConnectorConfig } from "../ConnectorConfig.ts"
|
|
5
|
-
import { ProviderError } from "../Errors.ts"
|
|
6
5
|
import { ConnectorCapabilities, ConnectorIds, HealthStatus, LlmChunk } from "../Models.ts"
|
|
7
6
|
import type { ProcessExecutorShape } from "../ProcessExecutor.ts"
|
|
8
|
-
import { optionalModelArgs, sortedFlagArgs } from "./CliSupport.ts"
|
|
7
|
+
import { failClassifiedCliError, optionalModelArgs, sortedFlagArgs } from "./CliSupport.ts"
|
|
9
8
|
|
|
10
9
|
const healthy = HealthStatus.make({
|
|
11
10
|
availability: "Healthy",
|
|
@@ -50,9 +49,11 @@ export const makeAntigravityConnector = (
|
|
|
50
49
|
const result = yield* executor.run(buildAntigravityArgv(config, prompt), cwd, config.envVars)
|
|
51
50
|
if (result.exitCode !== 0) {
|
|
52
51
|
const detail = [...result.stderr, ...result.stdout].join("\n")
|
|
53
|
-
return yield*
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
return yield* failClassifiedCliError(
|
|
53
|
+
"antigravity",
|
|
54
|
+
`agy exited with code ${result.exitCode}`,
|
|
55
|
+
detail
|
|
56
|
+
)
|
|
56
57
|
}
|
|
57
58
|
return result.stdout.join("\n")
|
|
58
59
|
})
|
|
@@ -58,6 +58,17 @@ export const claudeCliInitModel = (line: string): string | undefined => {
|
|
|
58
58
|
: undefined
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
+
/** The text of a `result` event that reports an error, if the line is one. */
|
|
62
|
+
export const claudeCliErrorResult = (line: string): string | undefined => {
|
|
63
|
+
const json = parseJsonLine(line)
|
|
64
|
+
if (json === undefined || jsonStringField(json, "type") !== "result") {
|
|
65
|
+
return undefined
|
|
66
|
+
}
|
|
67
|
+
const failed = jsonField(json, "is_error") === true
|
|
68
|
+
const text = jsonStringField(json, "result")
|
|
69
|
+
return failed && text !== undefined && text.trim().length > 0 ? text : undefined
|
|
70
|
+
}
|
|
71
|
+
|
|
61
72
|
export const parseClaudeCliStreamLine = (line: string): ReadonlyArray<LlmChunk> => {
|
|
62
73
|
const json = parseJsonLine(line)
|
|
63
74
|
if (json === undefined) {
|
|
@@ -137,7 +148,10 @@ export const makeClaudeCliConnector = (
|
|
|
137
148
|
prompt
|
|
138
149
|
)
|
|
139
150
|
if (result.exitCode !== 0) {
|
|
140
|
-
|
|
151
|
+
// claude explains most refusals on stdout (a usage limit), but a
|
|
152
|
+
// startup failure only on stderr: an empty reason is useless, so both
|
|
153
|
+
// streams are reported.
|
|
154
|
+
const raw = [...result.stdout, ...result.stderr].join("\n").trim()
|
|
141
155
|
return yield* failClassifiedCliError(
|
|
142
156
|
"claude",
|
|
143
157
|
`claude exited with code ${result.exitCode}`,
|
|
@@ -149,38 +163,63 @@ export const makeClaudeCliConnector = (
|
|
|
149
163
|
|
|
150
164
|
const completeStream = (prompt: string) =>
|
|
151
165
|
Stream.unwrap(
|
|
152
|
-
Effect.map(
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
166
|
+
Effect.map(
|
|
167
|
+
Effect.all([Ref.make<string | undefined>(undefined), Ref.make("")]),
|
|
168
|
+
([model, said]) =>
|
|
169
|
+
executor
|
|
170
|
+
.runStreamingWithStdin(
|
|
171
|
+
["claude", "--print", "--output-format", "stream-json", "--verbose", ...extraArgs],
|
|
172
|
+
cwd,
|
|
173
|
+
config.envVars,
|
|
174
|
+
prompt
|
|
175
|
+
)
|
|
176
|
+
.pipe(
|
|
177
|
+
Stream.mapEffect((line) => {
|
|
178
|
+
const initializedModel = claudeCliInitModel(line)
|
|
179
|
+
const refusal = claudeCliErrorResult(line)
|
|
180
|
+
const noted = refusal === undefined ? Effect.void : Ref.set(said, refusal)
|
|
181
|
+
return initializedModel === undefined
|
|
182
|
+
? Effect.as(noted, line)
|
|
183
|
+
: Ref.set(model, initializedModel).pipe(Effect.andThen(noted), Effect.as(line))
|
|
184
|
+
}),
|
|
185
|
+
Stream.flatMap((line) => Stream.fromIterable(parseClaudeCliStreamLine(line))),
|
|
186
|
+
// What claude last said is the reason when it then exits non-zero
|
|
187
|
+
// with an empty stderr (a bad model name, a usage limit): kept so
|
|
188
|
+
// the failure can name it instead of "exited with code 1".
|
|
189
|
+
Stream.tap((chunk) =>
|
|
190
|
+
chunk.delta.length === 0
|
|
191
|
+
? Effect.void
|
|
192
|
+
: Ref.update(said, (text) => `${text}${chunk.delta}`.slice(-2_000))
|
|
193
|
+
),
|
|
194
|
+
Stream.catchIf(
|
|
195
|
+
() => true,
|
|
196
|
+
(error) =>
|
|
197
|
+
Stream.unwrap(
|
|
198
|
+
Effect.map(Ref.get(said), (text) =>
|
|
199
|
+
text.trim().length === 0
|
|
200
|
+
? Stream.fail(error)
|
|
201
|
+
: Stream.fromEffect(
|
|
202
|
+
failClassifiedCliError("claude", error.message, text.trim())
|
|
203
|
+
)
|
|
204
|
+
)
|
|
181
205
|
)
|
|
206
|
+
),
|
|
207
|
+
Stream.mapEffect((chunk) =>
|
|
208
|
+
chunk.usage === undefined
|
|
209
|
+
? Effect.succeed(chunk)
|
|
210
|
+
: Effect.map(Ref.get(model), (servedModel) =>
|
|
211
|
+
servedModel === undefined
|
|
212
|
+
? chunk
|
|
213
|
+
: LlmChunk.make({
|
|
214
|
+
...chunk,
|
|
215
|
+
metadata: {
|
|
216
|
+
...chunk.metadata,
|
|
217
|
+
model: servedModel
|
|
218
|
+
}
|
|
219
|
+
})
|
|
220
|
+
)
|
|
221
|
+
)
|
|
182
222
|
)
|
|
183
|
-
)
|
|
184
223
|
)
|
|
185
224
|
)
|
|
186
225
|
|
|
@@ -2,9 +2,9 @@ import * as Effect from "effect/Effect"
|
|
|
2
2
|
import * as Stream from "effect/Stream"
|
|
3
3
|
import { makeCliConnector, type CliConnectorShape } from "../Connector.ts"
|
|
4
4
|
import type { CliConnectorConfig } from "../ConnectorConfig.ts"
|
|
5
|
-
import { ProviderError } from "../Errors.ts"
|
|
6
5
|
import { ConnectorCapabilities, ConnectorIds, LlmChunk } from "../Models.ts"
|
|
7
6
|
import type { ProcessExecutorShape } from "../ProcessExecutor.ts"
|
|
7
|
+
import { failClassifiedCliError } from "./CliSupport.ts"
|
|
8
8
|
|
|
9
9
|
export const buildCopilotArgv = (prompt: string): ReadonlyArray<string> => [
|
|
10
10
|
"gh",
|
|
@@ -25,9 +25,11 @@ export const makeCopilotConnector = (
|
|
|
25
25
|
const argv = buildCopilotArgv(prompt)
|
|
26
26
|
const result = yield* executor.run(argv, ".", config.envVars)
|
|
27
27
|
if (result.exitCode !== 0) {
|
|
28
|
-
return yield*
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
return yield* failClassifiedCliError(
|
|
29
|
+
"copilot",
|
|
30
|
+
`gh copilot exited with code ${result.exitCode}`,
|
|
31
|
+
result.stdout.join("\n")
|
|
32
|
+
)
|
|
31
33
|
}
|
|
32
34
|
return result.stdout.join("\n")
|
|
33
35
|
})
|
|
@@ -6,6 +6,7 @@ import { ProviderError } from "../Errors.ts"
|
|
|
6
6
|
import { ConnectorCapabilities, ConnectorIds, LlmChunk, TokenUsage } from "../Models.ts"
|
|
7
7
|
import type { ProcessExecutorShape } from "../ProcessExecutor.ts"
|
|
8
8
|
import {
|
|
9
|
+
failClassifiedCliError,
|
|
9
10
|
jsonBooleanField,
|
|
10
11
|
jsonField,
|
|
11
12
|
jsonIntField,
|
|
@@ -123,9 +124,11 @@ export const makePiConnector = (
|
|
|
123
124
|
// pi explains a refusal on stderr (a usage error, a missing model, an
|
|
124
125
|
// auth failure); stdout is empty then, so both streams are reported.
|
|
125
126
|
const detail = [...result.stdout, ...result.stderr].join("\n").trim()
|
|
126
|
-
|
|
127
|
-
message: `pi exited with code ${result.exitCode}
|
|
128
|
-
}
|
|
127
|
+
if (detail.length === 0) {
|
|
128
|
+
return yield* ProviderError.make({ message: `pi exited with code ${result.exitCode}` })
|
|
129
|
+
}
|
|
130
|
+
// A usage limit is typed, so a roster can take pi out of the round (ADR 0019).
|
|
131
|
+
return yield* failClassifiedCliError("pi", `pi exited with code ${result.exitCode}`, detail)
|
|
129
132
|
}
|
|
130
133
|
return result.stdout.join("\n")
|
|
131
134
|
})
|
|
@@ -144,11 +147,7 @@ export const makePiConnector = (
|
|
|
144
147
|
const message = chunk.metadata.piError
|
|
145
148
|
return message === undefined
|
|
146
149
|
? Effect.succeed(chunk)
|
|
147
|
-
:
|
|
148
|
-
ProviderError.make({
|
|
149
|
-
message: `pi error: ${message}`
|
|
150
|
-
})
|
|
151
|
-
)
|
|
150
|
+
: failClassifiedCliError("pi", "pi error", message)
|
|
152
151
|
})
|
|
153
152
|
)
|
|
154
153
|
|