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.
Files changed (34) hide show
  1. package/dist/commands/route.d.ts.map +1 -1
  2. package/dist/commands/route.js +1 -0
  3. package/dist/commands/route.js.map +1 -1
  4. package/dist/core/GeminiCliIntelligenceProvider.d.ts +3 -0
  5. package/dist/core/GeminiCliIntelligenceProvider.d.ts.map +1 -1
  6. package/dist/core/GeminiCliIntelligenceProvider.js +51 -21
  7. package/dist/core/GeminiCliIntelligenceProvider.js.map +1 -1
  8. package/dist/core/frameworkSessionLaunch.d.ts.map +1 -1
  9. package/dist/core/frameworkSessionLaunch.js +2 -1
  10. package/dist/core/frameworkSessionLaunch.js.map +1 -1
  11. package/dist/providers/adapters/gemini-cli/config.d.ts +3 -0
  12. package/dist/providers/adapters/gemini-cli/config.d.ts.map +1 -1
  13. package/dist/providers/adapters/gemini-cli/config.js.map +1 -1
  14. package/dist/providers/adapters/gemini-cli/errors.d.ts.map +1 -1
  15. package/dist/providers/adapters/gemini-cli/errors.js +4 -2
  16. package/dist/providers/adapters/gemini-cli/errors.js.map +1 -1
  17. package/dist/providers/adapters/gemini-cli/models.d.ts +7 -4
  18. package/dist/providers/adapters/gemini-cli/models.d.ts.map +1 -1
  19. package/dist/providers/adapters/gemini-cli/models.js +10 -3
  20. package/dist/providers/adapters/gemini-cli/models.js.map +1 -1
  21. package/dist/providers/adapters/gemini-cli/observability/geminiCapacityPolicy.d.ts +54 -0
  22. package/dist/providers/adapters/gemini-cli/observability/geminiCapacityPolicy.d.ts.map +1 -0
  23. package/dist/providers/adapters/gemini-cli/observability/geminiCapacityPolicy.js +111 -0
  24. package/dist/providers/adapters/gemini-cli/observability/geminiCapacityPolicy.js.map +1 -0
  25. package/dist/providers/adapters/gemini-cli/transport/oneShotCompletion.d.ts.map +1 -1
  26. package/dist/providers/adapters/gemini-cli/transport/oneShotCompletion.js +55 -23
  27. package/dist/providers/adapters/gemini-cli/transport/oneShotCompletion.js.map +1 -1
  28. package/dist/server/routes.js +1 -1
  29. package/dist/server/routes.js.map +1 -1
  30. package/package.json +1 -1
  31. package/src/data/builtin-manifest.json +46 -46
  32. package/upgrades/1.3.215.md +41 -0
  33. package/upgrades/gemini-capacity-policy.eli16.md +21 -0
  34. 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;AAsBD,wBAAsB,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiF3F"}
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"}
@@ -36,6 +36,7 @@ const KNOWN_MODELS = [
36
36
  'sonnet-4.6',
37
37
  'haiku-4.5',
38
38
  'gpt-5.3-codex',
39
+ 'gemini-2.5-flash',
39
40
  'gemini-2.5-pro',
40
41
  'deepseek-v4',
41
42
  ];
@@ -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;AAU5E,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;CACzB;AAED,qBAAa,6BAA8B,YAAW,oBAAoB;IACxE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;gBAExC,OAAO,EAAE,oCAAoC;IAOnD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;CAqC/E"}
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
- // CANONICAL argv — the only form this provider emits:
39
- // gemini -m <model> --approval-mode default -p <prompt>
40
- // --approval-mode default is pinned (yolo/auto_edit never reachable here);
41
- // the prompt is exactly one argv element (the value of -p).
42
- const args = buildGeminiOneShotArgv(model, prompt);
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
- const result = await spawnGeminiAndWait(this.geminiPath, args, {
47
- timeoutMs: options?.timeoutMs ?? DEFAULT_TIMEOUT_MS,
48
- env: childEnv,
49
- ...(this.maxOutputBytes !== undefined ? { maxOutputBytes: this.maxOutputBytes } : {}),
50
- }).catch((err) => {
51
- // Generous stderr slice so the circuit breaker's rate-limit classifier
52
- // can see usage/limit language. Fail loudly so callers can fall back.
53
- const stderr = typeof err.stderr === 'string' ? err.stderr : '';
54
- throw new Error(`Gemini CLI error: ${err.message}` + (stderr ? ` — ${stderr.slice(0, 600)}` : ''));
55
- });
56
- if (result.exitCode !== 0) {
57
- // The benign `Loaded cached credentials` stderr line only appears on a
58
- // SUCCESSFUL (exit 0) call; a non-zero exit means a real failure.
59
- throw new Error(`Gemini CLI exited ${result.exitCode}` +
60
- (result.stderr ? ` — ${result.stderr.slice(0, 600)}` : ''));
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;AAEnE,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAgBlC,MAAM,OAAO,6BAA6B;IACvB,UAAU,CAAS;IACnB,cAAc,CAAqB;IAEpD,YAAY,OAA6C;QACvD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,2EAA2E;QAC3E,2EAA2E;IAC7E,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,OAA6B;QAC1D,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAElD,sDAAsD;QACtD,0DAA0D;QAC1D,2EAA2E;QAC3E,4DAA4D;QAC5D,MAAM,IAAI,GAAG,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEnD,mEAAmE;QACnE,oEAAoE;QACpE,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;QAEvC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE;YAC7D,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,kBAAkB;YACnD,GAAG,EAAE,QAAQ;YACb,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtF,CAAC,CAAC,KAAK,CAAC,CAAC,GAAgC,EAAE,EAAE;YAC5C,uEAAuE;YACvE,sEAAsE;YACtE,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CACb,qBAAqB,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAClF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,uEAAuE;YACvE,kEAAkE;YAClE,MAAM,IAAI,KAAK,CACb,qBAAqB,MAAM,CAAC,QAAQ,EAAE;gBACpC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC7D,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;CACF"}
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;AAG9E;;;;;;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"}
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":"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"}
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;AAEnD,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;CAClC;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,eAAe,CAUnF;AAED,iFAAiF;AACjF,OAAO,EAAE,oBAAoB,EAAE,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;AA6BnD;;;;;;;;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
+ {"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;AAEjD,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,CAiCf"}
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;AAGzB,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,IAAI,wDAAwD,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1E,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACvC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAChE,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"}
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 = "gemini-2.5-flash";
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
- * the gemini CLI's `-m` flag. If `tierOrModel` doesn't match a known tier,
26
- * it's returned verbatim (treated as a raw model name).
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;AAWhD,wDAAwD;AACxD,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAMvF"}
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
- * the gemini CLI's `-m` flag. If `tierOrModel` doesn't match a known tier,
33
- * it's returned verbatim (treated as a raw model name).
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,GAA8B;IAC/C,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,GAAG,kBAAkB,CAAC;AAEvD;;;;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"}
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;AAiFpD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,GAAG,iBAAiB,CAElF"}
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"}