@momentiq/dark-factory-cli 2.2.3 → 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.
- package/README.md +5 -1
- package/dist/adapters/_shared.d.ts +84 -0
- package/dist/adapters/_shared.d.ts.map +1 -1
- package/dist/adapters/_shared.js +163 -0
- package/dist/adapters/_shared.js.map +1 -1
- package/dist/adapters/gemini-sdk.d.ts.map +1 -1
- package/dist/adapters/gemini-sdk.js +70 -1
- package/dist/adapters/gemini-sdk.js.map +1 -1
- package/dist/adapters/grok-direct-sdk.d.ts.map +1 -1
- package/dist/adapters/grok-direct-sdk.js +71 -1
- package/dist/adapters/grok-direct-sdk.js.map +1 -1
- package/dist/adapters/index.d.ts +1 -0
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +6 -0
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/minimax-direct-sdk.d.ts +139 -0
- package/dist/adapters/minimax-direct-sdk.d.ts.map +1 -0
- package/dist/adapters/minimax-direct-sdk.js +659 -0
- package/dist/adapters/minimax-direct-sdk.js.map +1 -0
- package/dist/adapters/static-schema-lint.d.ts.map +1 -1
- package/dist/adapters/static-schema-lint.js +1 -0
- package/dist/adapters/static-schema-lint.js.map +1 -1
- package/dist/cli.d.ts +32 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +67 -6
- package/dist/cli.js.map +1 -1
- package/dist/exit.d.ts +27 -0
- package/dist/exit.d.ts.map +1 -0
- package/dist/exit.js +68 -0
- package/dist/exit.js.map +1 -0
- package/dist/mcp/tools/doctor.d.ts.map +1 -1
- package/dist/mcp/tools/doctor.js +2 -0
- package/dist/mcp/tools/doctor.js.map +1 -1
- package/dist/mcp/tools/review-bypass.d.ts.map +1 -1
- package/dist/mcp/tools/review-bypass.js +2 -0
- package/dist/mcp/tools/review-bypass.js.map +1 -1
- package/dist/onboard/generate-plan.d.ts.map +1 -1
- package/dist/onboard/generate-plan.js +100 -30
- package/dist/onboard/generate-plan.js.map +1 -1
- package/dist/onboard/llm-client.d.ts +26 -1
- package/dist/onboard/llm-client.d.ts.map +1 -1
- package/dist/onboard/llm-client.js +1 -1
- package/dist/onboard/llm-client.js.map +1 -1
- package/dist/onboard/prompts/scaffold.md +9 -0
- 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,
|
|
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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"}
|
package/dist/adapters/_shared.js
CHANGED
|
@@ -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":"AAwCA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
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":"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"}
|
|
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":"AAmDA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"grok-direct-sdk.d.ts","sourceRoot":"","sources":["../../src/adapters/grok-direct-sdk.ts"],"names":[],"mappings":"AAmDA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAmBtE,eAAO,MAAM,0BAA0B,oBAAoB,CAAC;AAC5D,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAC7C,eAAO,MAAM,YAAY,wBAAwB,CAAC;AAelD,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAMpD,CAAC;AAoBH,eAAO,MAAM,wBAAwB,EAAG,MAAe,CAAC;AACxD,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAErE;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE;QACT,MAAM,EAAE,CACN,MAAM,EAAE,yBAAyB,EACjC,cAAc,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,WAAW,CAAA;SAAE,KACtC,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;KAC9C,CAAC;IACF,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,aAAa,CAAC;YAAE,EAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;YAAE,EAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC,CAAC;KACtF,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,mBAAmB,CAAA;KAAE,CAAC;IAC7C,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;QACtC,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE;YAAE,IAAI,EAAE,aAAa,CAAA;SAAE,CAAA;KAAE,CAAC;IAC5C,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,IAAI,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE;QACT,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,SAAS,CAAC;QAIlB,MAAM,CAAC,EAAE,KAAK,CAAC;YACb,OAAO,CAAC,EAAE,KAAK,CAAC;gBAAE,IAAI,CAAC,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;SACnD,CAAC,CAAC;QAKH,kBAAkB,CAAC,EAAE;YACnB,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC;IAEF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAMhB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,UAAU,CAAC;IAM9C,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,mBAAmB,CAUhF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAWpE;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAGrE;AAED,qBAAa,oBAAqB,YAAW,aAAa;IAM5C,OAAO,CAAC,QAAQ,CAAC,OAAO;IALpC,QAAQ,CAAC,EAAE,qBAA8B;IACzC,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAqB;IAEhE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiC;gBAEjC,OAAO,GAAE,2BAAgC;IAUhE,MAAM,CACV,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,YAAY,CAAC;YA6BV,aAAa;IA+drB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CA0H3D"}
|
|
@@ -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?.({
|