@momentiq/dark-factory-cli 2.2.4 → 2.3.0

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 (37) hide show
  1. package/README.md +5 -1
  2. package/dist/adapters/_shared.d.ts +84 -0
  3. package/dist/adapters/_shared.d.ts.map +1 -1
  4. package/dist/adapters/_shared.js +163 -0
  5. package/dist/adapters/_shared.js.map +1 -1
  6. package/dist/adapters/gemini-sdk.d.ts.map +1 -1
  7. package/dist/adapters/gemini-sdk.js +70 -1
  8. package/dist/adapters/gemini-sdk.js.map +1 -1
  9. package/dist/adapters/grok-direct-sdk.d.ts.map +1 -1
  10. package/dist/adapters/grok-direct-sdk.js +71 -1
  11. package/dist/adapters/grok-direct-sdk.js.map +1 -1
  12. package/dist/adapters/index.d.ts +1 -0
  13. package/dist/adapters/index.d.ts.map +1 -1
  14. package/dist/adapters/index.js +6 -0
  15. package/dist/adapters/index.js.map +1 -1
  16. package/dist/adapters/minimax-direct-sdk.d.ts +139 -0
  17. package/dist/adapters/minimax-direct-sdk.d.ts.map +1 -0
  18. package/dist/adapters/minimax-direct-sdk.js +659 -0
  19. package/dist/adapters/minimax-direct-sdk.js.map +1 -0
  20. package/dist/adapters/static-schema-lint.d.ts.map +1 -1
  21. package/dist/adapters/static-schema-lint.js +1 -0
  22. package/dist/adapters/static-schema-lint.js.map +1 -1
  23. package/dist/cli.d.ts +32 -0
  24. package/dist/cli.d.ts.map +1 -1
  25. package/dist/cli.js +67 -6
  26. package/dist/cli.js.map +1 -1
  27. package/dist/exit.d.ts +27 -0
  28. package/dist/exit.d.ts.map +1 -0
  29. package/dist/exit.js +68 -0
  30. package/dist/exit.js.map +1 -0
  31. package/dist/mcp/tools/doctor.d.ts.map +1 -1
  32. package/dist/mcp/tools/doctor.js +2 -0
  33. package/dist/mcp/tools/doctor.js.map +1 -1
  34. package/dist/mcp/tools/review-bypass.d.ts.map +1 -1
  35. package/dist/mcp/tools/review-bypass.js +2 -0
  36. package/dist/mcp/tools/review-bypass.js.map +1 -1
  37. package/package.json +1 -1
package/README.md CHANGED
@@ -9,7 +9,11 @@ relevant) as `df` subcommands:
9
9
 
10
10
  1. **Critic Orchestrator** (`./adapters/*`) — vendor-neutral adapter contract
11
11
  (`CriticAdapter`) with concrete adapters for Cursor SDK, OpenAI Codex SDK,
12
- Google Gemini, and Grok (xAI via OpenAI-compatible API).
12
+ Google Gemini, Grok (xAI via OpenAI-compatible API), and MiniMax M3
13
+ (`minimax-direct-sdk`, via OpenRouter's OpenAI-compatible endpoint;
14
+ requires `OPEN_ROUTER_API_KEY`). MiniMax is not part of the default
15
+ four-vendor quorum — it is an optional fifth adapter a consumer or the
16
+ hosted runtime can wire in.
13
17
  2. **Policy Engine** (`./policy/*`) — gate evaluation, min-complete-quorum
14
18
  aggregation, TDD classifier, finding-rubric strip, verification routes,
15
19
  profile resolution, and config loading.
@@ -20,6 +20,90 @@ export interface BuildErrorResultArgs {
20
20
  retryCount?: number;
21
21
  }
22
22
  export declare function buildErrorResult(args: BuildErrorResultArgs): CriticResult;
23
+ export declare const CONTEXT_WINDOW_ERROR_CODE = "context_window_exceeded";
24
+ export declare const BYTES_PER_TOKEN_ESTIMATE = 4;
25
+ export declare const GEMINI_CONTEXT_WINDOW_TOKENS = 1048576;
26
+ export declare const GROK_CONTEXT_WINDOW_TOKENS = 1000000;
27
+ /**
28
+ * Cheap, deterministic token estimate from a UTF-8 byte length. Used for the
29
+ * PRE-FLIGHT budget check (the adapter already has the assembled prompt's
30
+ * `byteLength` from `compileCriticPrompt`, so no tokenizer dependency or
31
+ * extra pass over the text is needed). Returns a non-negative integer.
32
+ *
33
+ * Exported for direct unit testing.
34
+ */
35
+ export declare function estimateTokensFromBytes(byteLength: number): number;
36
+ /**
37
+ * Canonical operator-facing reason string for the over-context-window
38
+ * degrade. Single source of truth so gemini + grok (+ future adapters) emit
39
+ * a byte-identical shape. Example:
40
+ *
41
+ * "diff exceeds gemini context window (1500000 tokens > 1048576 limit)"
42
+ *
43
+ * `estimatedTokens` is the pre-flight estimate; `limit` is the vendor's
44
+ * documented context window. Exported for direct unit testing.
45
+ */
46
+ export declare function formatContextWindowExceededMessage(args: {
47
+ vendor: string;
48
+ estimatedTokens: number;
49
+ limit: number;
50
+ }): string;
51
+ /**
52
+ * Classify a thrown provider error message as a context-length / over-limit
53
+ * 400. Both target vendors surface this as an HTTP 400 (already on the
54
+ * adapters' permanent-status set) but with a raw, vendor-specific message;
55
+ * matching the signature lets the adapter REWRITE that raw message into the
56
+ * clean structured reason instead of leaking provider JSON.
57
+ *
58
+ * Matches (case-insensitive) the documented over-limit phrasings:
59
+ * - gemini: "input token count exceeds the maximum number of tokens allowed"
60
+ * - grok/OpenAI-compatible: "maximum prompt length is <n> but the request
61
+ * contains <m> tokens" / "maximum context length" / generic
62
+ * "context length" + "exceed".
63
+ *
64
+ * Intentionally conservative: it keys on stable substrings of the providers'
65
+ * over-limit copy, NOT on the numeric values (which vary per request), so it
66
+ * stays a precise classifier and does not swallow unrelated 400s (bad model
67
+ * id, malformed request) that must keep their original diagnostic.
68
+ *
69
+ * Exported for direct unit testing.
70
+ */
71
+ export declare function isContextLengthError(message: string | undefined | null): boolean;
72
+ /**
73
+ * Build the clean, schema-conformant {@link CriticResult} for an
74
+ * over-context-window degrade. Routes through {@link buildErrorResult} so the
75
+ * envelope (reviewer echo, empty findings, `confidence: "unknown"`,
76
+ * `status: "error"`) is identical to every other adapter error, with:
77
+ * - `retryable: false` — a larger-than-the-window diff re-trips on retry;
78
+ * burning retry budget is pure waste.
79
+ * - `code: CONTEXT_WINDOW_ERROR_CODE` — discriminable in telemetry.
80
+ *
81
+ * Exported for direct unit testing.
82
+ */
83
+ export declare function buildContextWindowExceededResult(args: {
84
+ critic: CriticConfig;
85
+ vendor: string;
86
+ estimatedTokens: number;
87
+ limit: number;
88
+ retryCount?: number;
89
+ }): CriticResult;
90
+ /**
91
+ * PRE-FLIGHT budget gate (issue #169 preference #1). Given the assembled
92
+ * prompt's UTF-8 byte length and the vendor's token context window, returns
93
+ * the clean structured error {@link CriticResult} when the cheap token
94
+ * estimate exceeds the budget, or `null` when the prompt fits (dispatch the
95
+ * real call). Computing this BEFORE the API call short-circuits a doomed paid
96
+ * request.
97
+ *
98
+ * Exported for direct unit testing.
99
+ */
100
+ export declare function checkContextWindow(args: {
101
+ critic: CriticConfig;
102
+ vendor: string;
103
+ promptByteLength: number;
104
+ limit: number;
105
+ retryCount?: number;
106
+ }): CriticResult | null;
23
107
  export interface MergeAdapterMetadataArgs {
24
108
  critic: CriticConfig;
25
109
  runtimeModel?: ModelConfig | {
@@ -1 +1 @@
1
- {"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../src/adapters/_shared.ts"],"names":[],"mappings":"AAgCA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,gCAAgC,CAAC;AAkBxC,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,KAAK,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,wBAAwB,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;AAErF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,CAmBzE;AAcD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,YAAY,CAyBzE;AAqBD,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,YAAY,CAAC;IACrB,YAAY,CAAC,EAAE,WAAW,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAC3F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAqB1F;AA2BD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAoBzD;AAiBD,MAAM,WAAW,2BAA2B;IAC1C,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,2BAA2B,GAAG,MAAM,GAAG,SAAS,CAa7F;AA8BD,wBAAgB,yBAAyB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAGvF"}
1
+ {"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../src/adapters/_shared.ts"],"names":[],"mappings":"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"}
@@ -79,6 +79,169 @@ export function buildErrorResult(args) {
79
79
  },
80
80
  };
81
81
  }
82
+ // ---------------------------------------------------------------------------
83
+ // Context-window degradation (issue #169) — turn the "assembled diff prompt
84
+ // exceeds the vendor's context window" case into a CLEAN, LEGIBLE structured
85
+ // error instead of letting the raw provider 400 JSON
86
+ // (`The input token count exceeds the maximum number of tokens allowed
87
+ // 1048576`, `This model's maximum prompt length is 1000000 but the request
88
+ // contains 1491263 tokens`) propagate into the artifact + per-critic summary.
89
+ //
90
+ // Lives here (next to `buildErrorResult`) so EVERY direct-API adapter
91
+ // (gemini, grok, and any future vendor) shares ONE budget heuristic, ONE
92
+ // reason-string shape, and ONE 400-signature classifier — the same
93
+ // single-source-of-truth discipline the rest of this file enforces. An
94
+ // adapter that re-implemented the check locally could drift the operator-
95
+ // facing reason string between vendors; routing through these helpers means
96
+ // the degrade reads identically across the fleet.
97
+ //
98
+ // SCOPE (issue #169): this is graceful degradation ONLY — a clean errored
99
+ // critic that does not veto the gate under the min-complete-quorum policy.
100
+ // It deliberately does NOT chunk or compact the diff to make the over-limit
101
+ // review succeed; that is a separate, larger effort.
102
+ // Structured error code stamped on the CriticResult.error.code for this
103
+ // class, so operators can discriminate context-window degrades from
104
+ // transport/auth/transient failures in `_runs.ndjson` and `make df-stats`.
105
+ export const CONTEXT_WINDOW_ERROR_CODE = "context_window_exceeded";
106
+ // Bytes-per-token divisor for the cheap pre-flight estimate. Mirrors the
107
+ // in-repo convention already baked into the lockfile compactor's byte cap
108
+ // (`MAX_COMPACTED_DIFF_BYTES = 250_000`, documented there as "250KB ≈ 60K
109
+ // tokens" ⇒ ~4.17 bytes/token). We round DOWN to 4 so the estimate skews
110
+ // slightly HIGH (fewer bytes per token ⇒ more estimated tokens): a high-side
111
+ // estimate errs toward short-circuiting a doomed call rather than dispatching
112
+ // it. A pre-flight under-estimate is not a correctness hole anyway — the
113
+ // adapter's 400-classifier (`isContextLengthError`) still converts the raw
114
+ // provider over-limit 400 into the same clean structured error.
115
+ export const BYTES_PER_TOKEN_ESTIMATE = 4;
116
+ // Per-vendor input context windows (tokens). These are the documented model
117
+ // limits the providers enforce server-side and surface in their over-limit
118
+ // 400s; an adapter passes the relevant one into `checkContextWindow`. Named
119
+ // constants (not magic numbers at the call site) so a model-window change is
120
+ // a one-line edit with a self-documenting name.
121
+ //
122
+ // gemini — `The input token count exceeds the maximum number of tokens
123
+ // allowed 1048576` (INVALID_ARGUMENT)
124
+ // grok — `This model's maximum prompt length is 1000000 but the request
125
+ // contains <n> tokens`
126
+ export const GEMINI_CONTEXT_WINDOW_TOKENS = 1_048_576;
127
+ export const GROK_CONTEXT_WINDOW_TOKENS = 1_000_000;
128
+ /**
129
+ * Cheap, deterministic token estimate from a UTF-8 byte length. Used for the
130
+ * PRE-FLIGHT budget check (the adapter already has the assembled prompt's
131
+ * `byteLength` from `compileCriticPrompt`, so no tokenizer dependency or
132
+ * extra pass over the text is needed). Returns a non-negative integer.
133
+ *
134
+ * Exported for direct unit testing.
135
+ */
136
+ export function estimateTokensFromBytes(byteLength) {
137
+ if (!Number.isFinite(byteLength) || byteLength <= 0)
138
+ return 0;
139
+ return Math.ceil(byteLength / BYTES_PER_TOKEN_ESTIMATE);
140
+ }
141
+ /**
142
+ * Canonical operator-facing reason string for the over-context-window
143
+ * degrade. Single source of truth so gemini + grok (+ future adapters) emit
144
+ * a byte-identical shape. Example:
145
+ *
146
+ * "diff exceeds gemini context window (1500000 tokens > 1048576 limit)"
147
+ *
148
+ * `estimatedTokens` is the pre-flight estimate; `limit` is the vendor's
149
+ * documented context window. Exported for direct unit testing.
150
+ */
151
+ export function formatContextWindowExceededMessage(args) {
152
+ return (`diff exceeds ${args.vendor} context window ` +
153
+ `(${args.estimatedTokens} tokens > ${args.limit} limit)`);
154
+ }
155
+ /**
156
+ * Classify a thrown provider error message as a context-length / over-limit
157
+ * 400. Both target vendors surface this as an HTTP 400 (already on the
158
+ * adapters' permanent-status set) but with a raw, vendor-specific message;
159
+ * matching the signature lets the adapter REWRITE that raw message into the
160
+ * clean structured reason instead of leaking provider JSON.
161
+ *
162
+ * Matches (case-insensitive) the documented over-limit phrasings:
163
+ * - gemini: "input token count exceeds the maximum number of tokens allowed"
164
+ * - grok/OpenAI-compatible: "maximum prompt length is <n> but the request
165
+ * contains <m> tokens" / "maximum context length" / generic
166
+ * "context length" + "exceed".
167
+ *
168
+ * Intentionally conservative: it keys on stable substrings of the providers'
169
+ * over-limit copy, NOT on the numeric values (which vary per request), so it
170
+ * stays a precise classifier and does not swallow unrelated 400s (bad model
171
+ * id, malformed request) that must keep their original diagnostic.
172
+ *
173
+ * Exported for direct unit testing.
174
+ */
175
+ export function isContextLengthError(message) {
176
+ if (!message)
177
+ return false;
178
+ const m = message.toLowerCase();
179
+ // gemini INVALID_ARGUMENT over-limit
180
+ if (m.includes("input token count exceeds") && m.includes("maximum number of tokens")) {
181
+ return true;
182
+ }
183
+ // grok / OpenAI-compatible "maximum prompt length is N but the request contains M tokens"
184
+ if (m.includes("maximum prompt length") && m.includes("tokens"))
185
+ return true;
186
+ // OpenAI-family canonical "maximum context length is N tokens ... your messages resulted in M tokens"
187
+ if (m.includes("maximum context length") && m.includes("tokens"))
188
+ return true;
189
+ // Defensive generic: any "context length" / "context window" phrasing paired
190
+ // with an over-limit verb. Keeps the classifier resilient to minor copy
191
+ // drift without matching unrelated 400s.
192
+ if ((m.includes("context length") || m.includes("context window")) &&
193
+ (m.includes("exceed") || m.includes("too long") || m.includes("too large"))) {
194
+ return true;
195
+ }
196
+ return false;
197
+ }
198
+ /**
199
+ * Build the clean, schema-conformant {@link CriticResult} for an
200
+ * over-context-window degrade. Routes through {@link buildErrorResult} so the
201
+ * envelope (reviewer echo, empty findings, `confidence: "unknown"`,
202
+ * `status: "error"`) is identical to every other adapter error, with:
203
+ * - `retryable: false` — a larger-than-the-window diff re-trips on retry;
204
+ * burning retry budget is pure waste.
205
+ * - `code: CONTEXT_WINDOW_ERROR_CODE` — discriminable in telemetry.
206
+ *
207
+ * Exported for direct unit testing.
208
+ */
209
+ export function buildContextWindowExceededResult(args) {
210
+ const message = formatContextWindowExceededMessage({
211
+ vendor: args.vendor,
212
+ estimatedTokens: args.estimatedTokens,
213
+ limit: args.limit,
214
+ });
215
+ return buildErrorResult({
216
+ critic: args.critic,
217
+ message,
218
+ retryable: false,
219
+ code: CONTEXT_WINDOW_ERROR_CODE,
220
+ ...(args.retryCount !== undefined ? { retryCount: args.retryCount } : {}),
221
+ });
222
+ }
223
+ /**
224
+ * PRE-FLIGHT budget gate (issue #169 preference #1). Given the assembled
225
+ * prompt's UTF-8 byte length and the vendor's token context window, returns
226
+ * the clean structured error {@link CriticResult} when the cheap token
227
+ * estimate exceeds the budget, or `null` when the prompt fits (dispatch the
228
+ * real call). Computing this BEFORE the API call short-circuits a doomed paid
229
+ * request.
230
+ *
231
+ * Exported for direct unit testing.
232
+ */
233
+ export function checkContextWindow(args) {
234
+ const estimatedTokens = estimateTokensFromBytes(args.promptByteLength);
235
+ if (estimatedTokens <= args.limit)
236
+ return null;
237
+ return buildContextWindowExceededResult({
238
+ critic: args.critic,
239
+ vendor: args.vendor,
240
+ estimatedTokens,
241
+ limit: args.limit,
242
+ ...(args.retryCount !== undefined ? { retryCount: args.retryCount } : {}),
243
+ });
244
+ }
82
245
  export function mergeAdapterMetadata(raw, args) {
83
246
  if (typeof raw !== "object" || raw === null)
84
247
  return raw;
@@ -1 +1 @@
1
- {"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../src/adapters/_shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../src/adapters/_shared.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-sdk.d.ts","sourceRoot":"","sources":["../../src/adapters/gemini-sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini-sdk.d.ts","sourceRoot":"","sources":["../../src/adapters/gemini-sdk.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,7 @@
33
33
  import { ApiError, GoogleGenAI, } from "@google/genai";
34
34
  import { compileCriticPrompt } from "../prompt.js";
35
35
  import { parseCriticResult, } from "@momentiq/dark-factory-schemas";
36
- import { buildErrorResult, mergeAdapterMetadata, normalizeCriticEcho, parseAssistantJson, writeRedactedDiagnostic, } from "./_shared.js";
36
+ import { buildContextWindowExceededResult, buildErrorResult, checkContextWindow, CONTEXT_WINDOW_ERROR_CODE, estimateTokensFromBytes, GEMINI_CONTEXT_WINDOW_TOKENS, isContextLengthError, mergeAdapterMetadata, normalizeCriticEcho, parseAssistantJson, writeRedactedDiagnostic, } from "./_shared.js";
37
37
  import { runRetryLoop, } from "./_retry.js";
38
38
  export const GEMINI_SDK_ADAPTER_ID = "gemini-sdk";
39
39
  export const GEMINI_API_KEY_ENV = "GEMINI_API_KEY";
@@ -209,6 +209,40 @@ export class GeminiSdkAdapter {
209
209
  model: critic.model.id,
210
210
  });
211
211
  }
212
+ // Issue #169 — PRE-FLIGHT context-window gate. The assembled prompt
213
+ // carries its UTF-8 byte length; if the cheap token estimate exceeds
214
+ // Gemini's input window, short-circuit to a CLEAN structured error
215
+ // BEFORE dispatching the call. Saves a doomed paid request and emits a
216
+ // legible degrade instead of the raw provider INVALID_ARGUMENT 400.
217
+ // Permanent: a larger-than-the-window diff re-trips on retry.
218
+ const preflight = checkContextWindow({
219
+ critic,
220
+ vendor: "gemini",
221
+ promptByteLength: prompt.byteLength,
222
+ limit: GEMINI_CONTEXT_WINDOW_TOKENS,
223
+ retryCount: attemptIdx,
224
+ });
225
+ if (preflight) {
226
+ options.emit?.({
227
+ ts: new Date().toISOString(),
228
+ event: "critic_run_error",
229
+ commit: packet.commit.sha,
230
+ criticId: critic.id,
231
+ adapter: this.id,
232
+ model: critic.model.id,
233
+ durationMs: Date.now() - startMs,
234
+ error: preflight.error?.message ?? "context window exceeded",
235
+ status: "run_failure_permanent",
236
+ retryCount: attemptIdx,
237
+ errorCode: CONTEXT_WINDOW_ERROR_CODE,
238
+ });
239
+ return {
240
+ kind: "permanent_failure",
241
+ errorCode: CONTEXT_WINDOW_ERROR_CODE,
242
+ statusMessage: null,
243
+ result: preflight,
244
+ };
245
+ }
212
246
  const client = this.createClient(apiKey);
213
247
  const thinkingBudget = resolveThinkingBudget(critic);
214
248
  let assistantText = "";
@@ -267,6 +301,41 @@ export class GeminiSdkAdapter {
267
301
  catch (err) {
268
302
  const e = err;
269
303
  const status = err instanceof ApiError ? err.status : extractApiErrorStatus(err);
304
+ // Issue #169 — classify a provider over-limit 400 by its message
305
+ // signature (defense-in-depth when the pre-flight estimate
306
+ // undershoots and the doomed call goes out). Rewrite the raw
307
+ // INVALID_ARGUMENT copy into the SAME clean structured error the
308
+ // pre-flight gate emits, so the artifact never carries nested
309
+ // provider JSON. Keyed on the message, not the HTTP code, so it
310
+ // catches the over-limit class regardless of provider status tagging.
311
+ if (isContextLengthError(e.message)) {
312
+ const estimatedTokens = estimateTokensFromBytes(prompt.byteLength);
313
+ options.emit?.({
314
+ ts: new Date().toISOString(),
315
+ event: "critic_run_error",
316
+ commit: packet.commit.sha,
317
+ criticId: critic.id,
318
+ adapter: this.id,
319
+ model: critic.model.id,
320
+ durationMs: Date.now() - startMs,
321
+ error: `diff exceeds gemini context window (~${estimatedTokens} tokens, limit ${GEMINI_CONTEXT_WINDOW_TOKENS})`,
322
+ status: "run_failure_permanent",
323
+ retryCount: attemptIdx,
324
+ errorCode: CONTEXT_WINDOW_ERROR_CODE,
325
+ });
326
+ return {
327
+ kind: "permanent_failure",
328
+ errorCode: CONTEXT_WINDOW_ERROR_CODE,
329
+ statusMessage: null,
330
+ result: buildContextWindowExceededResult({
331
+ critic,
332
+ vendor: "gemini",
333
+ estimatedTokens,
334
+ limit: GEMINI_CONTEXT_WINDOW_TOKENS,
335
+ retryCount: attemptIdx,
336
+ }),
337
+ };
338
+ }
270
339
  const permanent = isGeminiPermanentFailure(status);
271
340
  const codeStr = status !== null ? `http_${status}` : "transport_error";
272
341
  options.emit?.({
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-sdk.js","sourceRoot":"","sources":["../../src/adapters/gemini-sdk.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF,0EAA0E;AAC1E,wEAAwE;AACxE,6EAA6E;AAC7E,0EAA0E;AAC1E,wEAAwE;AACxE,2EAA2E;AAC3E,4EAA4E;AAC5E,+CAA+C;AAC/C,EAAE;AACF,eAAe;AACf,oEAAoE;AACpE,+CAA+C;AAC/C,uEAAuE;AACvE,wEAAwE;AACxE,yEAAyE;AACzE,mBAAmB;AACnB,2EAA2E;AAC3E,uEAAuE;AACvE,2EAA2E;AAC3E,2EAA2E;AAC3E,0EAA0E;AAC1E,2EAA2E;AAC3E,oEAAoE;AACpE,gEAAgE;AAChE,oBAAoB;AACpB,EAAE;AACF,uEAAuE;AACvE,sEAAsE;AACtE,0EAA0E;AAC1E,0EAA0E;AAE1E,OAAO,EACL,QAAQ,EACR,WAAW,GAEZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EACL,iBAAiB,GAKlB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,YAAY,GAEb,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAClD,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAEnD,6EAA6E;AAC7E,sEAAsE;AACtE,6EAA6E;AAC7E,kFAAkF;AAClF,EAAE;AACF,4EAA4E;AAC5E,0EAA0E;AAC1E,mBAAmB;AACnB,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE9C,sEAAsE;AACtE,sCAAsC;AACtC,oEAAoE;AACpE,8CAA8C;AAC9C,kEAAkE;AAClE,yEAAyE;AACzE,0EAA0E;AAC1E,2DAA2D;AAC3D,sEAAsE;AACtE,qEAAqE;AACrE,MAAM,CAAC,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAAC;IAClE,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;CACJ,CAAC,CAAC;AAiEH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAoB;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC;IACzE,IAAI,CAAC,KAAK;QAAE,OAAO,uBAAuB,CAAC;IAC3C,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IACtB,IAAI,CAAS,CAAC;IACd,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,CAAC,GAAG,CAAC,CAAC;SAC5B,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;SACzC,IAAI,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,uBAAuB,CAAC,CAAC,8BAA8B;;QAC1F,OAAO,uBAAuB,CAAC;IACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,uBAAuB,CAAC;IACxD,uEAAuE;IACvE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAClC,8EAA8E;IAC9E,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,uBAAuB,CAAC;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,8CAA8C;IAC9C,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;IACxD,mDAAmD;IACnD,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACzB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,GAAI,KAAiC,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;IAC5C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAqB;IAC5D,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC,CAAC,iCAAiC;IACpE,OAAO,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,OAAO,gBAAgB;IAME;IALpB,EAAE,GAAG,qBAAqB,CAAC;IAC3B,eAAe,GAAsB,CAAC,kBAAkB,CAAC,CAAC;IAElD,YAAY,CAAmC;IAEhE,YAA6B,UAAmC,EAAE;QAArC,YAAO,GAAP,OAAO,CAA8B;QAChE,IAAI,CAAC,YAAY;YACf,OAAO,CAAC,YAAY;gBACpB,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,CAA4B,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,MAAM,CACV,MAAoB,EACpB,MAAoB,EACpB,OAA4B;QAE5B,OAAO,YAAY,CAAC;YAClB,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC;YAClE,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;gBACnD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC;gBACnD,MAAM,OAAO,GAAG,OAAO;oBACrB,CAAC,CAAC,IAAI;wBACJ,CAAC,CAAC,gCAAgC,WAAW,aAAa,IAAI,CAAC,OAAO,EAAE;wBACxE,CAAC,CAAC,qDAAqD;oBACzD,CAAC,CAAC,IAAI;wBACJ,CAAC,CAAC,+BAA+B,WAAW,aAAa,IAAI,CAAC,OAAO,EAAE;wBACvE,CAAC,CAAC,yDAAyD,CAAC;gBAChE,OAAO,gBAAgB,CAAC;oBACtB,MAAM;oBACN,OAAO,EAAE,OAAO;oBAChB,SAAS,EAAE,IAAI;oBACf,GAAG,CAAC,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,UAAU,EAAE,WAAW;iBACxB,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,qEAAqE;IACrE,2DAA2D;IAC3D,iEAAiE;IACjE,oCAAoC;IAC5B,KAAK,CAAC,aAAa,CACzB,MAAoB,EACpB,MAAoB,EACpB,OAA4B,EAC5B,UAAkB;QAElB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,gEAAgE;YAChE,OAAO;gBACL,IAAI,EAAE,mBAAmB;gBACzB,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,IAAI;gBACnB,MAAM,EAAE,gBAAgB,CAAC;oBACvB,MAAM;oBACN,OAAO,EAAE,GAAG,kBAAkB,uCAAuC;oBACrE,SAAS,EAAE,KAAK;oBAChB,UAAU,EAAE,UAAU;iBACvB,CAAC;aACH,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,mBAAmB,CAAC;YACjC,MAAM;YACN,MAAM;YACN,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC9C,oBAAoB,EAAE,IAAI;SAC3B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,EAAE,CAAC;gBACb,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5B,KAAK,EAAE,oBAAoB;gBAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;gBACzB,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,OAAO,EAAE,IAAI,CAAC,EAAE;gBAChB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;aACvB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,cAAc,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAErD,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,SAA6C,CAAC;QAClD,IAAI,WAA+B,CAAC;QAEpC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC;gBACvD,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC5D,MAAM,EAAE;oBACN,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxE,WAAW,EAAE,CAAC;oBACd,gBAAgB,EAAE,kBAAkB;oBACpC,cAAc,EAAE,EAAE,cAAc,EAAE;iBACnC;aACF,CAAC,CAAC;YAEH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAEzB,EAAE,CAAC;gBACF,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;oBAAE,MAAM;gBACnC,iEAAiE;gBACjE,iEAAiE;gBACjE,gBAAgB;gBAChB,IAAI,CAAC;oBACH,MAAM,CAAC,GAAI,KAA2B,CAAC,IAAI,CAAC;oBAC5C,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1C,aAAa,IAAI,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,6CAA6C;gBAC/C,CAAC;gBACD,MAAM,UAAU,GAAI,KAA2B,CAAC,UAAU,CAAC;gBAC3D,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;wBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;wBAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;4BAAE,SAAS;wBACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;4BACzB,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gCAClC,yDAAyD;gCACzD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oCACvC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC;gCAC7B,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,MAAM,KAAK,GAAI,KAA2B,CAAC,aAAa,CAAC;gBACzD,IAAI,KAAK;oBAAE,SAAS,GAAG,KAAK,CAAC;gBAC7B,MAAM,QAAQ,GAAI,KAA2B,CAAC,cAAc,CAAC;gBAC7D,IAAI,QAAQ,EAAE,WAAW,IAAI,CAAC,WAAW;oBAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;YAChF,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,GAAY,CAAC;YACvB,MAAM,MAAM,GAAG,GAAG,YAAY,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;YACjF,MAAM,SAAS,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC;YACvE,OAAO,CAAC,IAAI,EAAE,CAAC;gBACb,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5B,KAAK,EAAE,kBAAkB;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;gBACzB,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,OAAO,EAAE,IAAI,CAAC,EAAE;gBAChB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;gBAChC,KAAK,EAAE,CAAC,CAAC,OAAO;gBAChB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,aAAa;gBAC3D,UAAU,EAAE,UAAU;gBACtB,SAAS,EAAE,OAAO;aACnB,CAAC,CAAC;YACH,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO;oBACL,IAAI,EAAE,mBAAmB;oBACzB,SAAS,EAAE,OAAO;oBAClB,aAAa,EAAE,IAAI;oBACnB,MAAM,EAAE,gBAAgB,CAAC;wBACvB,MAAM;wBACN,OAAO,EAAE,4CAA4C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE;wBACnF,SAAS,EAAE,KAAK;wBAChB,IAAI,EAAE,OAAO;wBACb,UAAU,EAAE,UAAU;qBACvB,CAAC;iBACH,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,mBAAmB;gBACzB,SAAS,EAAE,OAAO;gBAClB,aAAa,EAAE,IAAI;gBACnB,OAAO,EAAE,0BAA0B,CAAC,CAAC,OAAO,EAAE;gBAC9C,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,mEAAmE;YACnE,kEAAkE;YAClE,eAAe;YACf,MAAM,GAAG,GAAG,oDAAoD,WAAW,EAAE,CAAC;YAC9E,OAAO,CAAC,IAAI,EAAE,CAAC;gBACb,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5B,KAAK,EAAE,kBAAkB;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;gBACzB,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,OAAO,EAAE,IAAI,CAAC,EAAE;gBAChB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;gBAChC,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE,gBAAgB;gBACxB,UAAU,EAAE,UAAU;gBACtB,SAAS,EAAE,gBAAgB;aAC5B,CAAC,CAAC;YACH,OAAO;gBACL,IAAI,EAAE,mBAAmB;gBACzB,SAAS,EAAE,gBAAgB;gBAC3B,aAAa,EAAE,IAAI;gBACnB,MAAM,EAAE,gBAAgB,CAAC;oBACvB,MAAM;oBACN,OAAO,EAAE,GAAG;oBACZ,SAAS,EAAE,KAAK;oBAChB,IAAI,EAAE,gBAAgB;oBACtB,UAAU,EAAE,UAAU;iBACvB,CAAC;aACH,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,uBAAuB,CAAC;gBACvC,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;gBACzB,OAAO,EAAE,aAAa;aACvB,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,EAAE,CAAC;gBACb,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5B,KAAK,EAAE,kBAAkB;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;gBACzB,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,OAAO,EAAE,IAAI,CAAC,EAAE;gBAChB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;gBAChC,KAAK,EAAE,wBAAwB,YAAY,CAAC,OAAO,EAAE;gBACrD,MAAM,EAAE,cAAc;gBACtB,UAAU,EAAE,UAAU;aACvB,CAAC,CAAC;YACH,OAAO;gBACL,IAAI,EAAE,mBAAmB;gBACzB,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,IAAI;gBACnB,MAAM,EAAE,gBAAgB,CAAC;oBACvB,MAAM;oBACN,OAAO,EAAE,wCAAwC,YAAY,CAAC,OAAO,EAAE;oBACvE,SAAS,EAAE,KAAK;oBAChB,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9D,UAAU,EAAE,UAAU;iBACvB,CAAC;aACH,CAAC;QACJ,CAAC;QAED,IAAI,MAAoB,CAAC;QACzB,IAAI,CAAC;YACH,gEAAgE;YAChE,+DAA+D;YAC/D,2DAA2D;YAC3D,qEAAqE;YACrE,MAAM,UAAU,GAAG,mBAAmB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAC9D,MAAM,GAAG,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,GAAY,CAAC;YACvB,MAAM,QAAQ,GAAG,uBAAuB,CAAC;gBACvC,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;gBACzB,OAAO,EAAE,aAAa;aACvB,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,EAAE,CAAC;gBACb,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5B,KAAK,EAAE,kBAAkB;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;gBACzB,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,OAAO,EAAE,IAAI,CAAC,EAAE;gBAChB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;gBAChC,KAAK,EAAE,6BAA6B,CAAC,CAAC,OAAO,EAAE;gBAC/C,MAAM,EAAE,kBAAkB;gBAC1B,UAAU,EAAE,UAAU;aACvB,CAAC,CAAC;YACH,OAAO;gBACL,IAAI,EAAE,mBAAmB;gBACzB,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,IAAI;gBACnB,MAAM,EAAE,gBAAgB,CAAC;oBACvB,MAAM;oBACN,OAAO,EAAE,gDAAgD,CAAC,CAAC,OAAO,EAAE;oBACpE,SAAS,EAAE,KAAK;oBAChB,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9D,UAAU,EAAE,UAAU;iBACvB,CAAC;aACH,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;QACxC,sEAAsE;QACtE,wDAAwD;QACxD,MAAM,QAAQ,GAAiB;YAC7B,GAAG,MAAM;YACT,UAAU;YACV,4DAA4D;YAC5D,4DAA4D;YAC5D,8DAA8D;YAC9D,+DAA+D;YAC/D,+CAA+C;YAC/C,OAAO,EAAE,UAAU;YACnB,GAAG,CAAC,OAAO,SAAS,EAAE,gBAAgB,KAAK,QAAQ;gBACjD,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,gBAAgB,EAAE;gBAC7C,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,SAAS,EAAE,oBAAoB,KAAK,QAAQ;gBACrD,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,oBAAoB,EAAE;gBAClD,CAAC,CAAC,EAAE,CAAC;YACP,UAAU,EAAE;gBACV,kBAAkB,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ;gBAC9C,mBAAmB,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;aAC/C;SACF,CAAC;QACF,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QACtF,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;QAEhF,OAAO,CAAC,IAAI,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC5B,KAAK,EAAE,qBAAqB;YAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;YACzB,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;YACtB,UAAU;YACV,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;YACtC,YAAY;YACZ,SAAS;YACT,GAAG,CAAC,OAAO,SAAS,EAAE,gBAAgB,KAAK,QAAQ;gBACjD,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,gBAAgB,EAAE;gBAC1C,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,SAAS,EAAE,oBAAoB,KAAK,QAAQ;gBACrD,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,oBAAoB,EAAE;gBAC/C,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE,UAAU;SACvB,CAAC,CAAC;QAEH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAoB;QAC/B,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACtE,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;YACvB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,kBAAkB,UAAU,CAAC,CAAC,CAAC,GAAG,kBAAkB,UAAU;YAClF,GAAG,CAAC,MAAM;gBACR,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,WAAW,EAAE,UAAU,kBAAkB,gDAAgD;iBAC1F,CAAC;SACP,CAAC,CAAC;QAEH,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC;YACH,qEAAqE;YACrE,qEAAqE;YACrE,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,CAA4B,CAAC;YACvE,SAAS,GAAG,OAAO,GAAG,CAAC,aAAa,CAAC,KAAK,UAAU,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,mBAAmB;YACzB,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,SAAS;gBACf,CAAC,CAAC,wBAAwB;gBAC1B,CAAC,CAAC,2CAA2C;YAC/C,GAAG,CAAC,SAAS;gBACX,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,WAAW,EAAE,mDAAmD,EAAE,CAAC;SAC1E,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM;YAAE,OAAO,MAAM,CAAC;QAEzC,wEAAwE;QACxE,uEAAuE;QACvE,mEAAmE;QACnE,oEAAoE;QACpE,4BAA4B;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YAChC,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,sBAAsB;oBAC5B,MAAM,EAAE,KAAK;oBACb,MAAM,EAAE,+DAA+D;oBACvE,WAAW,EACT,wJAAwJ;iBAC3J,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9B,MAAM,GAAG,GAAa,EAAE,CAAC;YACzB,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,MAA0C,EAAE,CAAC;gBACjE,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;oBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CACtB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAClE,CAAC;YACF,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,OAAO;oBACb,CAAC,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,EAAE,YAAY;oBACtC,CAAC,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,EAAE,2BAA2B,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG;gBAClH,GAAG,CAAC,OAAO;oBACT,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,WAAW,EAAE,mKAAmK,EAAE,CAAC;aAC1L,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,yBAA0B,GAAa,CAAC,OAAO,EAAE;gBACzD,WAAW,EAAE,UAAU,kBAAkB,2BAA2B;aACrE,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
1
+ {"version":3,"file":"gemini-sdk.js","sourceRoot":"","sources":["../../src/adapters/gemini-sdk.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"grok-direct-sdk.d.ts","sourceRoot":"","sources":["../../src/adapters/grok-direct-sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grok-direct-sdk.d.ts","sourceRoot":"","sources":["../../src/adapters/grok-direct-sdk.ts"],"names":[],"mappings":"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"}
@@ -48,7 +48,7 @@
48
48
  import OpenAI, { APIError } from "openai";
49
49
  import { compileCriticPrompt } from "../prompt.js";
50
50
  import { parseCriticResult, } from "@momentiq/dark-factory-schemas";
51
- import { buildErrorResult, mergeAdapterMetadata, normalizeCriticEcho, parseAssistantJson, writeRedactedDiagnostic, } from "./_shared.js";
51
+ import { buildContextWindowExceededResult, buildErrorResult, checkContextWindow, CONTEXT_WINDOW_ERROR_CODE, estimateTokensFromBytes, GROK_CONTEXT_WINDOW_TOKENS, isContextLengthError, mergeAdapterMetadata, normalizeCriticEcho, parseAssistantJson, writeRedactedDiagnostic, } from "./_shared.js";
52
52
  import { runRetryLoop, } from "./_retry.js";
53
53
  export const GROK_DIRECT_SDK_ADAPTER_ID = "grok-direct-sdk";
54
54
  export const XAI_API_KEY_ENV = "XAI_API_KEY";
@@ -233,6 +233,40 @@ export class GrokDirectSdkAdapter {
233
233
  model: critic.model.id,
234
234
  });
235
235
  }
236
+ // Issue #169 — PRE-FLIGHT context-window gate. The assembled prompt
237
+ // carries its UTF-8 byte length; if the cheap token estimate exceeds
238
+ // Grok's input window, short-circuit to a CLEAN structured error
239
+ // BEFORE dispatching the call. Saves a doomed paid request and emits a
240
+ // legible degrade instead of the raw xAI "maximum prompt length" 400.
241
+ // Permanent: a larger-than-the-window diff re-trips on retry.
242
+ const preflight = checkContextWindow({
243
+ critic,
244
+ vendor: "grok",
245
+ promptByteLength: prompt.byteLength,
246
+ limit: GROK_CONTEXT_WINDOW_TOKENS,
247
+ retryCount: attemptIdx,
248
+ });
249
+ if (preflight) {
250
+ options.emit?.({
251
+ ts: new Date().toISOString(),
252
+ event: "critic_run_error",
253
+ commit: packet.commit.sha,
254
+ criticId: critic.id,
255
+ adapter: this.id,
256
+ model: critic.model.id,
257
+ durationMs: Date.now() - startMs,
258
+ error: preflight.error?.message ?? "context window exceeded",
259
+ status: "run_failure_permanent",
260
+ retryCount: attemptIdx,
261
+ errorCode: CONTEXT_WINDOW_ERROR_CODE,
262
+ });
263
+ return {
264
+ kind: "permanent_failure",
265
+ errorCode: CONTEXT_WINDOW_ERROR_CODE,
266
+ statusMessage: null,
267
+ result: preflight,
268
+ };
269
+ }
236
270
  const client = this.createClient(apiKey);
237
271
  const reasoningEffort = resolveReasoningEffort(critic);
238
272
  let assistantText = "";
@@ -349,6 +383,42 @@ export class GrokDirectSdkAdapter {
349
383
  catch (err) {
350
384
  const e = err;
351
385
  const status = err instanceof APIError ? err.status : extractXaiApiErrorStatus(err);
386
+ // Issue #169 — classify a provider over-limit 400 by its message
387
+ // signature (defense-in-depth when the pre-flight estimate
388
+ // undershoots and the doomed call goes out). Rewrite the raw xAI
389
+ // "maximum prompt length is N but the request contains M tokens"
390
+ // copy into the SAME clean structured error the pre-flight gate
391
+ // emits, so the artifact never carries nested provider JSON. Keyed
392
+ // on the message, not the HTTP code, so it catches the over-limit
393
+ // class regardless of provider status tagging.
394
+ if (isContextLengthError(e.message)) {
395
+ const estimatedTokens = estimateTokensFromBytes(prompt.byteLength);
396
+ options.emit?.({
397
+ ts: new Date().toISOString(),
398
+ event: "critic_run_error",
399
+ commit: packet.commit.sha,
400
+ criticId: critic.id,
401
+ adapter: this.id,
402
+ model: critic.model.id,
403
+ durationMs: Date.now() - startMs,
404
+ error: `diff exceeds grok context window (~${estimatedTokens} tokens, limit ${GROK_CONTEXT_WINDOW_TOKENS})`,
405
+ status: "run_failure_permanent",
406
+ retryCount: attemptIdx,
407
+ errorCode: CONTEXT_WINDOW_ERROR_CODE,
408
+ });
409
+ return {
410
+ kind: "permanent_failure",
411
+ errorCode: CONTEXT_WINDOW_ERROR_CODE,
412
+ statusMessage: null,
413
+ result: buildContextWindowExceededResult({
414
+ critic,
415
+ vendor: "grok",
416
+ estimatedTokens,
417
+ limit: GROK_CONTEXT_WINDOW_TOKENS,
418
+ retryCount: attemptIdx,
419
+ }),
420
+ };
421
+ }
352
422
  const permanent = isGrokPermanentFailure(status);
353
423
  const codeStr = status !== null ? `http_${status}` : "transport_error";
354
424
  options.emit?.({