instar 1.3.214 → 1.3.215
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/commands/route.d.ts.map +1 -1
- package/dist/commands/route.js +1 -0
- package/dist/commands/route.js.map +1 -1
- package/dist/core/GeminiCliIntelligenceProvider.d.ts +3 -0
- package/dist/core/GeminiCliIntelligenceProvider.d.ts.map +1 -1
- package/dist/core/GeminiCliIntelligenceProvider.js +51 -21
- package/dist/core/GeminiCliIntelligenceProvider.js.map +1 -1
- package/dist/core/frameworkSessionLaunch.d.ts.map +1 -1
- package/dist/core/frameworkSessionLaunch.js +2 -1
- package/dist/core/frameworkSessionLaunch.js.map +1 -1
- package/dist/providers/adapters/gemini-cli/config.d.ts +3 -0
- package/dist/providers/adapters/gemini-cli/config.d.ts.map +1 -1
- package/dist/providers/adapters/gemini-cli/config.js.map +1 -1
- package/dist/providers/adapters/gemini-cli/errors.d.ts.map +1 -1
- package/dist/providers/adapters/gemini-cli/errors.js +4 -2
- package/dist/providers/adapters/gemini-cli/errors.js.map +1 -1
- package/dist/providers/adapters/gemini-cli/models.d.ts +7 -4
- package/dist/providers/adapters/gemini-cli/models.d.ts.map +1 -1
- package/dist/providers/adapters/gemini-cli/models.js +10 -3
- package/dist/providers/adapters/gemini-cli/models.js.map +1 -1
- package/dist/providers/adapters/gemini-cli/observability/geminiCapacityPolicy.d.ts +54 -0
- package/dist/providers/adapters/gemini-cli/observability/geminiCapacityPolicy.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/observability/geminiCapacityPolicy.js +111 -0
- package/dist/providers/adapters/gemini-cli/observability/geminiCapacityPolicy.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/transport/oneShotCompletion.d.ts.map +1 -1
- package/dist/providers/adapters/gemini-cli/transport/oneShotCompletion.js +55 -23
- package/dist/providers/adapters/gemini-cli/transport/oneShotCompletion.js.map +1 -1
- package/dist/server/routes.js +1 -1
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +46 -46
- package/upgrades/1.3.215.md +41 -0
- package/upgrades/gemini-capacity-policy.eli16.md +21 -0
- package/upgrades/side-effects/gemini-capacity-policy.md +139 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/commands/route.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAkBH,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/commands/route.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAkBH,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAuBD,wBAAsB,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiF3F"}
|
package/dist/commands/route.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/commands/route.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/commands/route.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
* the alive path and the registry adapter can never diverge on safety.
|
|
23
23
|
*/
|
|
24
24
|
import type { IntelligenceProvider, IntelligenceOptions } from './types.js';
|
|
25
|
+
import { type GeminiCapacityPolicyConfig } from '../providers/adapters/gemini-cli/observability/geminiCapacityPolicy.js';
|
|
25
26
|
export interface GeminiCliIntelligenceProviderOptions {
|
|
26
27
|
/** Absolute path to the `gemini` CLI binary. */
|
|
27
28
|
geminiPath: string;
|
|
@@ -34,10 +35,12 @@ export interface GeminiCliIntelligenceProviderOptions {
|
|
|
34
35
|
workingDirectory?: string;
|
|
35
36
|
/** Optional override for the captured-output byte cap (per stream). */
|
|
36
37
|
maxOutputBytes?: number;
|
|
38
|
+
capacityPolicy?: GeminiCapacityPolicyConfig;
|
|
37
39
|
}
|
|
38
40
|
export declare class GeminiCliIntelligenceProvider implements IntelligenceProvider {
|
|
39
41
|
private readonly geminiPath;
|
|
40
42
|
private readonly maxOutputBytes;
|
|
43
|
+
private readonly capacityPolicy;
|
|
41
44
|
constructor(options: GeminiCliIntelligenceProviderOptions);
|
|
42
45
|
evaluate(prompt: string, options?: IntelligenceOptions): Promise<string>;
|
|
43
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeminiCliIntelligenceProvider.d.ts","sourceRoot":"","sources":["../../src/core/GeminiCliIntelligenceProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"GeminiCliIntelligenceProvider.d.ts","sourceRoot":"","sources":["../../src/core/GeminiCliIntelligenceProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAO5E,OAAO,EAIL,KAAK,0BAA0B,EAChC,MAAM,wEAAwE,CAAC;AAKhF,MAAM,WAAW,oCAAoC;IACnD,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,0BAA0B,CAAC;CAC7C;AAED,qBAAa,6BAA8B,YAAW,oBAAoB;IACxE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyC;gBAE5D,OAAO,EAAE,oCAAoC;IAQnD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;CAgE/E"}
|
|
@@ -23,43 +23,73 @@
|
|
|
23
23
|
*/
|
|
24
24
|
import { resolveCliModelFlag } from '../providers/adapters/gemini-cli/models.js';
|
|
25
25
|
import { buildGeminiChildEnv, buildGeminiOneShotArgv, spawnGeminiAndWait, } from '../providers/adapters/gemini-cli/transport/geminiSpawn.js';
|
|
26
|
+
import { decideGeminiCapacityPolicy, getGeminiCapacityGate, recordGeminiCapacityDeferral, } from '../providers/adapters/gemini-cli/observability/geminiCapacityPolicy.js';
|
|
26
27
|
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
28
|
+
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
27
29
|
export class GeminiCliIntelligenceProvider {
|
|
28
30
|
geminiPath;
|
|
29
31
|
maxOutputBytes;
|
|
32
|
+
capacityPolicy;
|
|
30
33
|
constructor(options) {
|
|
31
34
|
this.geminiPath = options.geminiPath;
|
|
32
35
|
this.maxOutputBytes = options.maxOutputBytes;
|
|
36
|
+
this.capacityPolicy = options.capacityPolicy;
|
|
33
37
|
// options.workingDirectory is intentionally not stored — one-shot judgment
|
|
34
38
|
// calls carry their full context in the prompt and don't read cwd content.
|
|
35
39
|
}
|
|
36
40
|
async evaluate(prompt, options) {
|
|
37
41
|
const model = resolveCliModelFlag(options?.model);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
let currentModel = model;
|
|
43
|
+
const gate = getGeminiCapacityGate();
|
|
44
|
+
if (!gate.allow) {
|
|
45
|
+
throw new Error(`Gemini capacity deferred; retry after ${Math.ceil(gate.retryAfterMs / 1000)}s` +
|
|
46
|
+
(gate.reason ? ` — ${gate.reason}` : ''));
|
|
47
|
+
}
|
|
43
48
|
// Rule-1a analog: env allowlist + UNCONDITIONAL hard-delete of the
|
|
44
49
|
// Google/Gemini billing vars (never inherit process.env wholesale).
|
|
45
50
|
const childEnv = buildGeminiChildEnv();
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
51
|
+
let attempt = 0;
|
|
52
|
+
// eslint-disable-next-line no-constant-condition
|
|
53
|
+
while (true) {
|
|
54
|
+
const args = buildGeminiOneShotArgv(currentModel, prompt);
|
|
55
|
+
const result = await spawnGeminiAndWait(this.geminiPath, args, {
|
|
56
|
+
timeoutMs: options?.timeoutMs ?? DEFAULT_TIMEOUT_MS,
|
|
57
|
+
env: childEnv,
|
|
58
|
+
...(this.maxOutputBytes !== undefined ? { maxOutputBytes: this.maxOutputBytes } : {}),
|
|
59
|
+
}).catch((err) => {
|
|
60
|
+
// Generous stderr slice so the circuit breaker's rate-limit classifier
|
|
61
|
+
// can see usage/limit language. Fail loudly so callers can fall back.
|
|
62
|
+
const stderr = typeof err.stderr === 'string' ? err.stderr : '';
|
|
63
|
+
throw new Error(`Gemini CLI error: ${err.message}` + (stderr ? ` — ${stderr.slice(0, 600)}` : ''));
|
|
64
|
+
});
|
|
65
|
+
if (result.exitCode !== 0) {
|
|
66
|
+
// The benign `Loaded cached credentials` stderr line only appears on a
|
|
67
|
+
// SUCCESSFUL (exit 0) call; a non-zero exit means a real failure.
|
|
68
|
+
const message = `Gemini CLI exited ${result.exitCode}` +
|
|
69
|
+
(result.stderr ? ` — ${result.stderr.slice(0, 600)}` : '');
|
|
70
|
+
const capacity = decideGeminiCapacityPolicy({
|
|
71
|
+
errorMessage: message,
|
|
72
|
+
attempt,
|
|
73
|
+
model: currentModel,
|
|
74
|
+
config: this.capacityPolicy,
|
|
75
|
+
});
|
|
76
|
+
if (capacity.action === 'retry' && capacity.retryAfterMs !== undefined) {
|
|
77
|
+
currentModel = capacity.model;
|
|
78
|
+
attempt += 1;
|
|
79
|
+
await sleep(capacity.retryAfterMs);
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
if (capacity.action === 'defer' && capacity.retryAfterMs !== undefined) {
|
|
83
|
+
recordGeminiCapacityDeferral({
|
|
84
|
+
retryAfterMs: capacity.retryAfterMs,
|
|
85
|
+
reason: capacity.reason ?? message,
|
|
86
|
+
});
|
|
87
|
+
throw new Error(`${capacity.reason}; retry after ${Math.ceil(capacity.retryAfterMs / 1000)}s — ${message}`);
|
|
88
|
+
}
|
|
89
|
+
throw new Error(message);
|
|
90
|
+
}
|
|
91
|
+
return result.stdout.trim();
|
|
61
92
|
}
|
|
62
|
-
return result.stdout.trim();
|
|
63
93
|
}
|
|
64
94
|
}
|
|
65
95
|
//# sourceMappingURL=GeminiCliIntelligenceProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeminiCliIntelligenceProvider.js","sourceRoot":"","sources":["../../src/core/GeminiCliIntelligenceProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,2DAA2D,CAAC;
|
|
1
|
+
{"version":3,"file":"GeminiCliIntelligenceProvider.js","sourceRoot":"","sources":["../../src/core/GeminiCliIntelligenceProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameworkSessionLaunch.d.ts","sourceRoot":"","sources":["../../src/core/frameworkSessionLaunch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"frameworkSessionLaunch.d.ts","sourceRoot":"","sources":["../../src/core/frameworkSessionLaunch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAO9E;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;AAE/D;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,qBAAqB,EAChC,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,MAAM,GAAG,SAAS,CAwCpB;AAmBD,MAAM,WAAW,wBAAwB;IACvC,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,WAAW,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;IAC1E;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC3C;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC1D;AAED,MAAM,WAAW,qBAAqB;IACpC,kFAAkF;IAClF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AA+JD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,qBAAqB,EAChC,OAAO,EAAE,wBAAwB,GAChC,qBAAqB,CAMvB;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,YAAY,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;CAC7C,GAAG,qBAAqB,CAExB;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,WAAW,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;IAC1E;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC3C;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACzD;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,kFAAkF;IAClF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAqHD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,qBAAqB,EAChC,OAAO,EAAE,qBAAqB,GAC7B,kBAAkB,CAMpB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,SAAS,EAAE,qBAAqB,GAAG,MAAM,CAAC;IAC1C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,GAAG,MAAM,EAAE,CAUX"}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* forces a compile error if a case is missed.
|
|
14
14
|
*/
|
|
15
15
|
import { codexSupportsHookTrustBypass } from './codexCapabilities.js';
|
|
16
|
+
import { GEMINI_DEFAULT_MODEL, isKnownGeminiModel, } from '../providers/adapters/gemini-cli/models.js';
|
|
16
17
|
/**
|
|
17
18
|
* Map a generic tier or framework-specific name to the concrete model
|
|
18
19
|
* string that should be passed to the framework's CLI. Pass-through for
|
|
@@ -69,7 +70,7 @@ export function resolveModelForFramework(framework, modelOrTier) {
|
|
|
69
70
|
return 'gemini-2.5-flash';
|
|
70
71
|
if (key === 'capable' || key === 'opus')
|
|
71
72
|
return 'gemini-2.5-pro';
|
|
72
|
-
return modelOrTier;
|
|
73
|
+
return isKnownGeminiModel(modelOrTier) ? modelOrTier : GEMINI_DEFAULT_MODEL;
|
|
73
74
|
}
|
|
74
75
|
return modelOrTier;
|
|
75
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameworkSessionLaunch.js","sourceRoot":"","sources":["../../src/core/frameworkSessionLaunch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"frameworkSessionLaunch.js","sourceRoot":"","sources":["../../src/core/frameworkSessionLaunch.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* analog. See credentials.ts for the rationale.
|
|
11
11
|
*/
|
|
12
12
|
import { GEMINI_DEFAULT_MODEL } from './models.js';
|
|
13
|
+
import type { GeminiCapacityPolicyConfig } from './observability/geminiCapacityPolicy.js';
|
|
13
14
|
/** Gemini's native approval surface (analog of Codex's sandbox modes). */
|
|
14
15
|
export type GeminiApprovalMode = 'default' | 'auto_edit' | 'yolo';
|
|
15
16
|
export interface GeminiCliConfig {
|
|
@@ -34,6 +35,8 @@ export interface GeminiCliConfig {
|
|
|
34
35
|
maxOutputBytes?: number;
|
|
35
36
|
/** Working directory for tools that need one. */
|
|
36
37
|
defaultWorkingDirectory?: string;
|
|
38
|
+
/** Gemini quota/rate-limit handling. Defaults enabled. */
|
|
39
|
+
capacityPolicy?: GeminiCapacityPolicyConfig;
|
|
37
40
|
}
|
|
38
41
|
/**
|
|
39
42
|
* Build a config from environment variables, with sensible defaults.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/providers/adapters/gemini-cli/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/providers/adapters/gemini-cli/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAE1F,0EAA0E;AAC1E,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;AAElE,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;IACzC,+CAA+C;IAC/C,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,0CAA0C;IAC1C,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,0DAA0D;IAC1D,cAAc,CAAC,EAAE,0BAA0B,CAAC;CAC7C;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,eAAe,CAUnF;AAED,iFAAiF;AACjF,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/providers/adapters/gemini-cli/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/providers/adapters/gemini-cli/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAgCnD;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,MAAyB,OAAO,CAAC,GAAG;IAChE,OAAO;QACL,UAAU,EAAE,GAAG,CAAC,aAAa,CAAC,IAAI,gBAAgB,EAAE,IAAI,QAAQ;QAChE,qEAAqE;QACrE,4CAA4C;QAC5C,YAAY,EAAE,GAAG,CAAC,sBAAsB,CAAC;QACzC,mBAAmB,EAAE,SAAS;QAC9B,uBAAuB,EAAE,MAAM;QAC/B,uBAAuB,EAAE,MAAM;KAChC,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/providers/adapters/gemini-cli/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAQL,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/providers/adapters/gemini-cli/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAQL,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,eAAO,MAAM,aAAa,EAAmB,UAAU,CAAC;AAExD;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,KAAK,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EACzF,MAAM,SAAK,GACV,aAAa,CAkCf"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* scoped to the minimal-body surface.
|
|
7
7
|
*/
|
|
8
8
|
import { AbortError, AuthError, NetworkError, QuotaError, RateLimitError, TimeoutError, UnexpectedError, } from '../../errors.js';
|
|
9
|
+
import { parseGeminiRetryAfterMs } from './observability/geminiCapacityPolicy.js';
|
|
9
10
|
export const GEMINI_CLI_ID = 'gemini-cli';
|
|
10
11
|
/**
|
|
11
12
|
* Map a raw spawn-style error from spawning `gemini` into a canonical
|
|
@@ -27,11 +28,12 @@ export function mapExecError(err, stderr = '') {
|
|
|
27
28
|
if (/unauthor|forbidden|invalid.*token|invalid.*key|401|403/i.test(stderr)) {
|
|
28
29
|
return new AuthError(message, GEMINI_CLI_ID, err);
|
|
29
30
|
}
|
|
31
|
+
const retryAfterMs = parseGeminiRetryAfterMs(stderr);
|
|
30
32
|
if (/rate.?limit|429|too many requests|resource.?exhausted/i.test(stderr)) {
|
|
31
|
-
return new RateLimitError(message, GEMINI_CLI_ID, { cause: err });
|
|
33
|
+
return new RateLimitError(message, GEMINI_CLI_ID, { retryAfterMs, cause: err });
|
|
32
34
|
}
|
|
33
35
|
if (/quota|usage.?limit/i.test(stderr)) {
|
|
34
|
-
return new QuotaError(message, GEMINI_CLI_ID, { cause: err });
|
|
36
|
+
return new QuotaError(message, GEMINI_CLI_ID, { retryAfterMs, limitKind: 'unknown', cause: err });
|
|
35
37
|
}
|
|
36
38
|
if (/network|ECONN|ETIMEDOUT|dns/i.test(stderr)) {
|
|
37
39
|
return new NetworkError(message, GEMINI_CLI_ID, err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/providers/adapters/gemini-cli/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,eAAe,GAEhB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/providers/adapters/gemini-cli/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,eAAe,GAEhB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAElF,MAAM,CAAC,MAAM,aAAa,GAAG,YAA0B,CAAC;AAExD;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAyF,EACzF,MAAM,GAAG,EAAE;IAEX,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAC9B,OAAO,IAAI,UAAU,CAAC,qBAAqB,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC3C,OAAO,IAAI,YAAY,CACrB,sBAAsB,GAAG,CAAC,OAAO,EAAE,EACnC,aAAa,EACb,CAAC,EACD,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,IAAI,eAAe,CACxB,gCAAgC,GAAG,CAAC,IAAI,IAAI,WAAW,EAAE,EACzD,aAAa,EACb,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;IAC5D,IAAI,yDAAyD,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,YAAY,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,wDAAwD,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1E,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACvC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACpG,CAAC;IACD,IAAI,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -18,12 +18,15 @@
|
|
|
18
18
|
* (a §6 conditional, added when the model surface is characterized).
|
|
19
19
|
*/
|
|
20
20
|
import type { ModelTier } from '../../types.js';
|
|
21
|
+
export declare const KNOWN_GEMINI_MODELS: readonly ["gemini-2.5-flash", "gemini-2.5-pro"];
|
|
22
|
+
export type KnownGeminiModel = typeof KNOWN_GEMINI_MODELS[number];
|
|
23
|
+
export declare function isKnownGeminiModel(model: string | undefined): model is KnownGeminiModel;
|
|
21
24
|
/** The default model when no tier or id is supplied. */
|
|
22
|
-
export declare const GEMINI_DEFAULT_MODEL
|
|
25
|
+
export declare const GEMINI_DEFAULT_MODEL: KnownGeminiModel;
|
|
23
26
|
/**
|
|
24
|
-
* Resolve a tier or raw model string to a concrete model name to pass to
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
+
* Resolve a tier or raw model string to a concrete model name to pass to the
|
|
28
|
+
* gemini CLI's `-m` flag. Explicit caller model ids pass through; automatic
|
|
29
|
+
* fallback selection is constrained separately by resolveKnownGeminiFallback.
|
|
27
30
|
*/
|
|
28
31
|
export declare function resolveCliModelFlag(tierOrModel: string | ModelTier | undefined): string;
|
|
29
32
|
//# sourceMappingURL=models.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../../src/providers/adapters/gemini-cli/models.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../../src/providers/adapters/gemini-cli/models.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,eAAO,MAAM,mBAAmB,iDAGtB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAElE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,IAAI,gBAAgB,CAEvF;AAWD,wDAAwD;AACxD,eAAO,MAAM,oBAAoB,EAAE,gBAAqC,CAAC;AAEzE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAMvF"}
|
|
@@ -17,6 +17,13 @@
|
|
|
17
17
|
* Rule-3 surface; the authoritative-name check belongs in a dedicated canary
|
|
18
18
|
* (a §6 conditional, added when the model surface is characterized).
|
|
19
19
|
*/
|
|
20
|
+
export const KNOWN_GEMINI_MODELS = [
|
|
21
|
+
'gemini-2.5-flash',
|
|
22
|
+
'gemini-2.5-pro',
|
|
23
|
+
];
|
|
24
|
+
export function isKnownGeminiModel(model) {
|
|
25
|
+
return typeof model === 'string' && KNOWN_GEMINI_MODELS.includes(model);
|
|
26
|
+
}
|
|
20
27
|
const TIER_TO_MODEL = {
|
|
21
28
|
// light/fast — the verified-working one-shot default.
|
|
22
29
|
fast: 'gemini-2.5-flash',
|
|
@@ -28,9 +35,9 @@ const TIER_TO_MODEL = {
|
|
|
28
35
|
/** The default model when no tier or id is supplied. */
|
|
29
36
|
export const GEMINI_DEFAULT_MODEL = 'gemini-2.5-flash';
|
|
30
37
|
/**
|
|
31
|
-
* Resolve a tier or raw model string to a concrete model name to pass to
|
|
32
|
-
*
|
|
33
|
-
*
|
|
38
|
+
* Resolve a tier or raw model string to a concrete model name to pass to the
|
|
39
|
+
* gemini CLI's `-m` flag. Explicit caller model ids pass through; automatic
|
|
40
|
+
* fallback selection is constrained separately by resolveKnownGeminiFallback.
|
|
34
41
|
*/
|
|
35
42
|
export function resolveCliModelFlag(tierOrModel) {
|
|
36
43
|
if (!tierOrModel)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../../src/providers/adapters/gemini-cli/models.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../../src/providers/adapters/gemini-cli/models.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,kBAAkB;IAClB,gBAAgB;CACR,CAAC;AAIX,MAAM,UAAU,kBAAkB,CAAC,KAAyB;IAC1D,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,mBAAyC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjG,CAAC;AAED,MAAM,aAAa,GAAwC;IACzD,sDAAsD;IACtD,IAAI,EAAE,kBAAkB;IACxB,gEAAgE;IAChE,QAAQ,EAAE,kBAAkB;IAC5B,gEAAgE;IAChE,OAAO,EAAE,gBAAgB;CAC1B,CAAC;AAEF,wDAAwD;AACxD,MAAM,CAAC,MAAM,oBAAoB,GAAqB,kBAAkB,CAAC;AAEzE;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAA2C;IAC7E,IAAI,CAAC,WAAW;QAAE,OAAO,oBAAoB,CAAC;IAC9C,IAAI,WAAW,IAAI,aAAa,EAAE,CAAC;QACjC,OAAO,aAAa,CAAC,WAAwB,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini capacity policy.
|
|
3
|
+
*
|
|
4
|
+
* Gemini CLI quota failures expose reset windows in stderr (for example,
|
|
5
|
+
* "quota will reset after 7h32m28s"). Without a provider-specific policy the
|
|
6
|
+
* next call just spawns Gemini again, hits the same 429/QUOTA_EXHAUSTED, and
|
|
7
|
+
* appears stalled. This module keeps the policy small and explicit:
|
|
8
|
+
*
|
|
9
|
+
* - short capacity blips can retry once after a bounded backoff;
|
|
10
|
+
* - quota windows with a reset hint are deferred until that window has passed;
|
|
11
|
+
* - later calls are refused locally while deferred, avoiding doomed subprocesses;
|
|
12
|
+
* - fallback models must be in the verified Gemini model set.
|
|
13
|
+
*/
|
|
14
|
+
export interface GeminiCapacityPolicyConfig {
|
|
15
|
+
enabled?: boolean;
|
|
16
|
+
/** Number of immediate retries for short capacity windows. Default 1. */
|
|
17
|
+
maxImmediateRetries?: number;
|
|
18
|
+
/** Retry immediately only when the parsed reset is at/below this. Default 30s. */
|
|
19
|
+
immediateRetryMaxMs?: number;
|
|
20
|
+
/** Backoff used when retrying and no shorter reset hint exists. Default 5s. */
|
|
21
|
+
backoffMs?: number;
|
|
22
|
+
/** Optional operator-selected fallback. Ignored unless it is a known Gemini model. */
|
|
23
|
+
fallbackModel?: string;
|
|
24
|
+
}
|
|
25
|
+
export type GeminiCapacityAction = 'none' | 'retry' | 'defer';
|
|
26
|
+
export interface GeminiCapacityDecision {
|
|
27
|
+
action: GeminiCapacityAction;
|
|
28
|
+
retryAfterMs?: number;
|
|
29
|
+
model: string;
|
|
30
|
+
reason: string | null;
|
|
31
|
+
}
|
|
32
|
+
export interface GeminiCapacityGate {
|
|
33
|
+
allow: boolean;
|
|
34
|
+
retryAfterMs: number;
|
|
35
|
+
deferredUntil: number | null;
|
|
36
|
+
reason: string | null;
|
|
37
|
+
}
|
|
38
|
+
export declare function isGeminiCapacityError(message: string | null | undefined): boolean;
|
|
39
|
+
export declare function parseGeminiRetryAfterMs(message: string | null | undefined): number | undefined;
|
|
40
|
+
export declare function resolveKnownGeminiFallback(requestedModel: string, config: GeminiCapacityPolicyConfig | undefined): string;
|
|
41
|
+
export declare function decideGeminiCapacityPolicy(params: {
|
|
42
|
+
errorMessage: string;
|
|
43
|
+
attempt: number;
|
|
44
|
+
model: string;
|
|
45
|
+
config?: GeminiCapacityPolicyConfig;
|
|
46
|
+
}): GeminiCapacityDecision;
|
|
47
|
+
export declare function getGeminiCapacityGate(now?: number): GeminiCapacityGate;
|
|
48
|
+
export declare function recordGeminiCapacityDeferral(params: {
|
|
49
|
+
retryAfterMs: number;
|
|
50
|
+
reason: string;
|
|
51
|
+
now?: number;
|
|
52
|
+
}): GeminiCapacityGate;
|
|
53
|
+
export declare function resetGeminiCapacityPolicyForTests(): void;
|
|
54
|
+
//# sourceMappingURL=geminiCapacityPolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geminiCapacityPolicy.d.ts","sourceRoot":"","sources":["../../../../../src/providers/adapters/gemini-cli/observability/geminiCapacityPolicy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kFAAkF;IAClF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAE9D,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAWD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAajF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAoB9F;AAOD,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,0BAA0B,GAAG,SAAS,GAC7C,MAAM,CAIR;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,0BAA0B,CAAC;CACrC,GAAG,sBAAsB,CA8BzB;AAED,wBAAgB,qBAAqB,CAAC,GAAG,SAAa,GAAG,kBAAkB,CAU1E;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,kBAAkB,CAKrB;AAED,wBAAgB,iCAAiC,IAAI,IAAI,CAGxD"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini capacity policy.
|
|
3
|
+
*
|
|
4
|
+
* Gemini CLI quota failures expose reset windows in stderr (for example,
|
|
5
|
+
* "quota will reset after 7h32m28s"). Without a provider-specific policy the
|
|
6
|
+
* next call just spawns Gemini again, hits the same 429/QUOTA_EXHAUSTED, and
|
|
7
|
+
* appears stalled. This module keeps the policy small and explicit:
|
|
8
|
+
*
|
|
9
|
+
* - short capacity blips can retry once after a bounded backoff;
|
|
10
|
+
* - quota windows with a reset hint are deferred until that window has passed;
|
|
11
|
+
* - later calls are refused locally while deferred, avoiding doomed subprocesses;
|
|
12
|
+
* - fallback models must be in the verified Gemini model set.
|
|
13
|
+
*/
|
|
14
|
+
import { isKnownGeminiModel } from '../models.js';
|
|
15
|
+
const DEFAULT_IMMEDIATE_RETRIES = 1;
|
|
16
|
+
const DEFAULT_IMMEDIATE_RETRY_MAX_MS = 30_000;
|
|
17
|
+
const DEFAULT_BACKOFF_MS = 5_000;
|
|
18
|
+
const DEFAULT_UNKNOWN_RESET_MS = 15 * 60_000;
|
|
19
|
+
const RESET_GRACE_MS = 5_000;
|
|
20
|
+
let deferredUntil = 0;
|
|
21
|
+
let deferredReason = null;
|
|
22
|
+
export function isGeminiCapacityError(message) {
|
|
23
|
+
if (!message)
|
|
24
|
+
return false;
|
|
25
|
+
const m = message.toLowerCase();
|
|
26
|
+
return (/\b429\b/.test(m) ||
|
|
27
|
+
m.includes('quota_exhausted') ||
|
|
28
|
+
m.includes('terminalquotaerror') ||
|
|
29
|
+
m.includes('resource_exhausted') ||
|
|
30
|
+
/resource.?exhausted/.test(m) ||
|
|
31
|
+
/rate.?limit/.test(m) ||
|
|
32
|
+
m.includes('too many requests') ||
|
|
33
|
+
/quota|usage.?limit|capacity/.test(m));
|
|
34
|
+
}
|
|
35
|
+
export function parseGeminiRetryAfterMs(message) {
|
|
36
|
+
if (!message)
|
|
37
|
+
return undefined;
|
|
38
|
+
const m = message.toLowerCase();
|
|
39
|
+
let match = /(?:reset|resets|retry|try again|retry-after|retry after)[^.\n]{0,40}?(?:after|in|:)?\s*(\d+(?:\.\d+)?)\s*h(?:ours?)?\s*(?:(\d+(?:\.\d+)?)\s*m(?:in(?:ute)?s?)?)?\s*(?:(\d+(?:\.\d+)?)\s*s(?:ec(?:ond)?s?)?)?/i.exec(m);
|
|
40
|
+
if (match) {
|
|
41
|
+
return toMs(Number(match[1]) * 3600 + Number(match[2] ?? 0) * 60 + Number(match[3] ?? 0));
|
|
42
|
+
}
|
|
43
|
+
match = /(?:reset|resets|retry|try again|retry-after|retry after)[^.\n]{0,40}?(?:after|in|:)?\s*(\d+(?:\.\d+)?)\s*m(?:in(?:ute)?s?)?\s*(?:(\d+(?:\.\d+)?)\s*s(?:ec(?:ond)?s?)?)?/i.exec(m);
|
|
44
|
+
if (match) {
|
|
45
|
+
return toMs(Number(match[1]) * 60 + Number(match[2] ?? 0));
|
|
46
|
+
}
|
|
47
|
+
match = /(?:reset|resets|retry|try again|retry-after|retry after)[^.\n]{0,40}?(?:after|in|:)?\s*(\d+(?:\.\d+)?)\s*s(?:ec(?:ond)?s?)?/i.exec(m);
|
|
48
|
+
if (match) {
|
|
49
|
+
return toMs(Number(match[1]));
|
|
50
|
+
}
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
function toMs(seconds) {
|
|
54
|
+
if (!Number.isFinite(seconds) || seconds <= 0)
|
|
55
|
+
return undefined;
|
|
56
|
+
return Math.ceil(seconds * 1000);
|
|
57
|
+
}
|
|
58
|
+
export function resolveKnownGeminiFallback(requestedModel, config) {
|
|
59
|
+
const fallback = config?.fallbackModel;
|
|
60
|
+
if (!fallback || !isKnownGeminiModel(fallback))
|
|
61
|
+
return requestedModel;
|
|
62
|
+
return fallback;
|
|
63
|
+
}
|
|
64
|
+
export function decideGeminiCapacityPolicy(params) {
|
|
65
|
+
const { errorMessage, attempt, model, config } = params;
|
|
66
|
+
if (config?.enabled === false || !isGeminiCapacityError(errorMessage)) {
|
|
67
|
+
return { action: 'none', model, reason: null };
|
|
68
|
+
}
|
|
69
|
+
const retryAfterMs = parseGeminiRetryAfterMs(errorMessage);
|
|
70
|
+
const maxImmediateRetries = config?.maxImmediateRetries ?? DEFAULT_IMMEDIATE_RETRIES;
|
|
71
|
+
const immediateRetryMaxMs = config?.immediateRetryMaxMs ?? DEFAULT_IMMEDIATE_RETRY_MAX_MS;
|
|
72
|
+
if (attempt < maxImmediateRetries &&
|
|
73
|
+
(retryAfterMs === undefined || retryAfterMs <= immediateRetryMaxMs)) {
|
|
74
|
+
const wait = retryAfterMs ?? config?.backoffMs ?? DEFAULT_BACKOFF_MS;
|
|
75
|
+
return {
|
|
76
|
+
action: 'retry',
|
|
77
|
+
retryAfterMs: wait,
|
|
78
|
+
model: resolveKnownGeminiFallback(model, config),
|
|
79
|
+
reason: `gemini capacity limit; retrying after ${wait}ms`,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
const deferMs = retryAfterMs ?? DEFAULT_UNKNOWN_RESET_MS;
|
|
83
|
+
return {
|
|
84
|
+
action: 'defer',
|
|
85
|
+
retryAfterMs: deferMs,
|
|
86
|
+
model,
|
|
87
|
+
reason: `gemini capacity exhausted; deferring calls for ${deferMs}ms`,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
export function getGeminiCapacityGate(now = Date.now()) {
|
|
91
|
+
if (deferredUntil <= now) {
|
|
92
|
+
return { allow: true, retryAfterMs: 0, deferredUntil: null, reason: null };
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
allow: false,
|
|
96
|
+
retryAfterMs: deferredUntil - now,
|
|
97
|
+
deferredUntil,
|
|
98
|
+
reason: deferredReason,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
export function recordGeminiCapacityDeferral(params) {
|
|
102
|
+
const now = params.now ?? Date.now();
|
|
103
|
+
deferredUntil = now + Math.max(1, params.retryAfterMs) + RESET_GRACE_MS;
|
|
104
|
+
deferredReason = params.reason;
|
|
105
|
+
return getGeminiCapacityGate(now);
|
|
106
|
+
}
|
|
107
|
+
export function resetGeminiCapacityPolicyForTests() {
|
|
108
|
+
deferredUntil = 0;
|
|
109
|
+
deferredReason = null;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=geminiCapacityPolicy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geminiCapacityPolicy.js","sourceRoot":"","sources":["../../../../../src/providers/adapters/gemini-cli/observability/geminiCapacityPolicy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oneShotCompletion.d.ts","sourceRoot":"","sources":["../../../../../src/providers/adapters/gemini-cli/transport/oneShotCompletion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EACV,iBAAiB,EAGlB,MAAM,oDAAoD,CAAC;AAG5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"oneShotCompletion.d.ts","sourceRoot":"","sources":["../../../../../src/providers/adapters/gemini-cli/transport/oneShotCompletion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EACV,iBAAiB,EAGlB,MAAM,oDAAoD,CAAC;AAG5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AA4HpD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,GAAG,iBAAiB,CAElF"}
|