@framers/agentos 0.9.112 → 0.9.113
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/generateObject.d.ts.map +1 -1
- package/dist/api/generateObject.js +13 -0
- package/dist/api/generateObject.js.map +1 -1
- package/dist/api/runtime/openaiResponseFormat.d.ts +8 -0
- package/dist/api/runtime/openaiResponseFormat.d.ts.map +1 -1
- package/dist/api/runtime/openaiResponseFormat.js +66 -1
- package/dist/api/runtime/openaiResponseFormat.js.map +1 -1
- package/dist/core/llm/providers/implementations/AnthropicProvider.d.ts +5 -0
- package/dist/core/llm/providers/implementations/AnthropicProvider.d.ts.map +1 -1
- package/dist/core/llm/providers/implementations/AnthropicProvider.js +45 -3
- package/dist/core/llm/providers/implementations/AnthropicProvider.js.map +1 -1
- package/dist/core/llm/providers/implementations/OpenRouterProvider.d.ts +43 -0
- package/dist/core/llm/providers/implementations/OpenRouterProvider.d.ts.map +1 -1
- package/dist/core/llm/providers/implementations/OpenRouterProvider.js +201 -41
- package/dist/core/llm/providers/implementations/OpenRouterProvider.js.map +1 -1
- package/dist/core/llm/providers/model-strict-tool-use.d.ts +45 -0
- package/dist/core/llm/providers/model-strict-tool-use.d.ts.map +1 -0
- package/dist/core/llm/providers/model-strict-tool-use.js +47 -0
- package/dist/core/llm/providers/model-strict-tool-use.js.map +1 -0
- package/dist/core/llm/routing/UncensoredModelCatalog.d.ts.map +1 -1
- package/dist/core/llm/routing/UncensoredModelCatalog.js +59 -27
- package/dist/core/llm/routing/UncensoredModelCatalog.js.map +1 -1
- package/dist/orchestration/compiler/SchemaLowering.d.ts +2 -1
- package/dist/orchestration/compiler/SchemaLowering.d.ts.map +1 -1
- package/dist/orchestration/compiler/SchemaLowering.js +26 -1
- package/dist/orchestration/compiler/SchemaLowering.js.map +1 -1
- package/dist/orchestration/pipeline/query/types.js +2 -2
- package/dist/orchestration/pipeline/query/types.js.map +1 -1
- package/dist/orchestration/planner/PlanningEngine.d.ts +1 -1
- package/dist/orchestration/planner/PlanningEngine.d.ts.map +1 -1
- package/dist/orchestration/planner/PlanningEngine.js +4 -2
- package/dist/orchestration/planner/PlanningEngine.js.map +1 -1
- package/dist/orchestration/planning/ProviderAssignmentEngine.js +1 -1
- package/dist/orchestration/planning/ProviderAssignmentEngine.js.map +1 -1
- package/dist/safety/evaluation/LLMJudge.d.ts.map +1 -1
- package/dist/safety/evaluation/LLMJudge.js +4 -1
- package/dist/safety/evaluation/LLMJudge.js.map +1 -1
- package/package.json +1 -1
|
@@ -33,6 +33,29 @@ export declare class OpenRouterProvider implements IProvider {
|
|
|
33
33
|
private ensureInitialized;
|
|
34
34
|
private mapToOpenRouterMessages;
|
|
35
35
|
generateCompletion(modelId: string, messages: ChatMessage[], options: ModelCompletionOptions): Promise<ModelCompletionResponse>;
|
|
36
|
+
/**
|
|
37
|
+
* When the request carries a schema-enforced `response_format`
|
|
38
|
+
* (`json_schema`), restrict OpenRouter's routing to upstream hosts that
|
|
39
|
+
* actually support the requested parameters — otherwise a host that
|
|
40
|
+
* ignores `response_format` serves the call, returns prose, and the
|
|
41
|
+
* caller's Zod validation fails with nothing to retry on. Merges over any
|
|
42
|
+
* caller-supplied `provider` prefs (e.g. `provider.sort` latency routing
|
|
43
|
+
* via customModelParams) instead of clobbering them.
|
|
44
|
+
*/
|
|
45
|
+
private applySchemaRoutingPrefs;
|
|
46
|
+
/**
|
|
47
|
+
* One-shot degrade for schema-enforced calls: when OpenRouter reports
|
|
48
|
+
* that no endpoint can serve the request (404 "No endpoints found …" —
|
|
49
|
+
* typically because no host for the model supports `response_format`
|
|
50
|
+
* with `require_parameters` routing), swap the payload down to loose
|
|
51
|
+
* `json_object` mode and drop the routing restriction so the call still
|
|
52
|
+
* completes. Caller-side Zod validation remains the correctness
|
|
53
|
+
* backstop, exactly as before schema enforcement existed.
|
|
54
|
+
*
|
|
55
|
+
* @returns true when the payload was degraded and the caller should
|
|
56
|
+
* retry once; false when the error is unrelated.
|
|
57
|
+
*/
|
|
58
|
+
private degradeSchemaPayloadOnNoEndpoints;
|
|
36
59
|
generateCompletionStream(modelId: string, messages: ChatMessage[], options: ModelCompletionOptions): AsyncGenerator<ModelCompletionResponse, void, undefined>;
|
|
37
60
|
generateEmbeddings(modelId: string, texts: string[], options?: ProviderEmbeddingOptions): Promise<ProviderEmbeddingResponse>;
|
|
38
61
|
listAvailableModels(filter?: {
|
|
@@ -46,6 +69,26 @@ export declare class OpenRouterProvider implements IProvider {
|
|
|
46
69
|
shutdown(): Promise<void>;
|
|
47
70
|
private mapApiToCompletionResponse;
|
|
48
71
|
private mapApiToStreamChunkResponse;
|
|
72
|
+
/** Attempts per request: 1 initial + 2 retries on retryable failures. */
|
|
73
|
+
private static readonly MAX_REQUEST_ATTEMPTS;
|
|
74
|
+
/** Ceiling for a single retry sleep (Retry-After or backoff), ms. */
|
|
75
|
+
private static readonly MAX_RETRY_SLEEP_MS;
|
|
76
|
+
/**
|
|
77
|
+
* Executes one OpenRouter API request with per-attempt key rotation and
|
|
78
|
+
* bounded retry. Previously this was a single attempt with the API key
|
|
79
|
+
* baked into the axios instance at initialize() — a throttled or
|
|
80
|
+
* credit-exhausted key was reused forever and every transient 429/5xx/
|
|
81
|
+
* network blip surfaced straight to the caller as a final failure.
|
|
82
|
+
*
|
|
83
|
+
* Per attempt:
|
|
84
|
+
* - the Authorization key is drawn fresh from the {@link ApiKeyPool}
|
|
85
|
+
* (weighted round-robin, skips keys in cooldown);
|
|
86
|
+
* - a 402/429 marks the CURRENT key exhausted so the next attempt (and
|
|
87
|
+
* the next request) fails over to a different key;
|
|
88
|
+
* - 408/429/5xx and transport-level failures (no HTTP response) retry
|
|
89
|
+
* with the response's Retry-After when present (capped), else
|
|
90
|
+
* jittered exponential backoff; 4xx request errors throw immediately.
|
|
91
|
+
*/
|
|
49
92
|
private makeApiRequest;
|
|
50
93
|
private parseSseStream;
|
|
51
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenRouterProvider.d.ts","sourceRoot":"","sources":["../../../../../src/core/llm/providers/implementations/OpenRouterProvider.ts"],"names":[],"mappings":"AACA;;;;;;GAMG;AAGH,OAAO,EACL,SAAS,EACT,WAAW,EACX,sBAAsB,EACtB,uBAAuB,EACvB,SAAS,EAET,wBAAwB,EACxB,yBAAyB,EAE1B,MAAM,cAAc,CAAC;AAMtB;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAkFD,qBAAa,kBAAmB,YAAW,SAAS;IAClD,SAAgB,UAAU,EAAE,MAAM,CAAgB;IAC3C,aAAa,EAAE,OAAO,CAAS;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IAG/B,OAAO,CAAC,MAAM,CAAmL;IACjM,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAqC;;IAI7D,UAAU,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"OpenRouterProvider.d.ts","sourceRoot":"","sources":["../../../../../src/core/llm/providers/implementations/OpenRouterProvider.ts"],"names":[],"mappings":"AACA;;;;;;GAMG;AAGH,OAAO,EACL,SAAS,EACT,WAAW,EACX,sBAAsB,EACtB,uBAAuB,EACvB,SAAS,EAET,wBAAwB,EACxB,yBAAyB,EAE1B,MAAM,cAAc,CAAC;AAMtB;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAkFD,qBAAa,kBAAmB,YAAW,SAAS;IAClD,SAAgB,UAAU,EAAE,MAAM,CAAgB;IAC3C,aAAa,EAAE,OAAO,CAAS;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IAG/B,OAAO,CAAC,MAAM,CAAmL;IACjM,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAqC;;IAI7D,UAAU,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;YA0D1D,sBAAsB;IAkBpC,OAAO,CAAC,iBAAiB;IAiCzB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,uBAAuB;IAUlB,kBAAkB,CAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,uBAAuB,CAAC;IAqDnC;;;;;;;;OAQG;IACH,OAAO,CAAC,uBAAuB;IAY/B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,iCAAiC;IAwB3B,wBAAwB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,EAAE,sBAAsB,GAC9B,cAAc,CAAC,uBAAuB,EAAE,IAAI,EAAE,SAAS,CAAC;IA8H9C,kBAAkB,CAC7B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,yBAAyB,CAAC;IA8CxB,mBAAmB,CAAC,MAAM,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAgB3E,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAa7D,WAAW,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IA4BjE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtC,OAAO,CAAC,0BAA0B;IAuClC,OAAO,CAAC,2BAA2B;IAwInC,yEAAyE;IACzE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAK;IACjD,qEAAqE;IACrE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAEpD;;;;;;;;;;;;;;;OAeG;YACW,cAAc;YAiGb,cAAc;CAgC9B"}
|
|
@@ -35,8 +35,10 @@ export class OpenRouterProvider {
|
|
|
35
35
|
});
|
|
36
36
|
this.keyPool = new ApiKeyPool(config.apiKey);
|
|
37
37
|
this.defaultModelId = this.config.defaultModelId; // Store the potentially undefined value
|
|
38
|
+
// NOTE: no Authorization header here — the key is drawn from the pool
|
|
39
|
+
// PER ATTEMPT inside makeApiRequest, so a 429/402 on one key fails over
|
|
40
|
+
// to the next instead of reusing a throttled key baked at init.
|
|
38
41
|
const headers = {
|
|
39
|
-
'Authorization': `Bearer ${this.keyPool.next()}`,
|
|
40
42
|
'Content-Type': 'application/json',
|
|
41
43
|
'User-Agent': `AgentOS/1.0 (OpenRouterProvider; ${this.config.appName || 'UnknownApp'})`,
|
|
42
44
|
};
|
|
@@ -151,13 +153,73 @@ export class OpenRouterProvider {
|
|
|
151
153
|
...(options.tools !== undefined && { tools: options.tools }),
|
|
152
154
|
...(options.toolChoice !== undefined && { tool_choice: options.toolChoice }),
|
|
153
155
|
...(options.responseFormat?.type === 'json_object' && { response_format: { type: 'json_object' } }),
|
|
156
|
+
...(options.responseFormat?.type === 'json_schema' && { response_format: options.responseFormat }),
|
|
154
157
|
...(options.customModelParams || {}),
|
|
155
158
|
};
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
+
this.applySchemaRoutingPrefs(payload, options);
|
|
160
|
+
let apiResponseData;
|
|
161
|
+
try {
|
|
162
|
+
apiResponseData = await this.makeApiRequest('/chat/completions', 'POST',
|
|
163
|
+
// CR8: honor a per-call requestTimeout override over the provider default.
|
|
164
|
+
options.requestTimeout ?? this.config.requestTimeout, payload);
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
const degraded = this.degradeSchemaPayloadOnNoEndpoints(payload, error);
|
|
168
|
+
if (!degraded)
|
|
169
|
+
throw error;
|
|
170
|
+
apiResponseData = await this.makeApiRequest('/chat/completions', 'POST', options.requestTimeout ?? this.config.requestTimeout, payload);
|
|
171
|
+
}
|
|
159
172
|
return this.mapApiToCompletionResponse(apiResponseData, modelId);
|
|
160
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* When the request carries a schema-enforced `response_format`
|
|
176
|
+
* (`json_schema`), restrict OpenRouter's routing to upstream hosts that
|
|
177
|
+
* actually support the requested parameters — otherwise a host that
|
|
178
|
+
* ignores `response_format` serves the call, returns prose, and the
|
|
179
|
+
* caller's Zod validation fails with nothing to retry on. Merges over any
|
|
180
|
+
* caller-supplied `provider` prefs (e.g. `provider.sort` latency routing
|
|
181
|
+
* via customModelParams) instead of clobbering them.
|
|
182
|
+
*/
|
|
183
|
+
applySchemaRoutingPrefs(payload, options) {
|
|
184
|
+
if (options.responseFormat?.type !== 'json_schema')
|
|
185
|
+
return;
|
|
186
|
+
const existing = payload.provider && typeof payload.provider === 'object'
|
|
187
|
+
? payload.provider
|
|
188
|
+
: {};
|
|
189
|
+
payload.provider = { ...existing, require_parameters: true };
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* One-shot degrade for schema-enforced calls: when OpenRouter reports
|
|
193
|
+
* that no endpoint can serve the request (404 "No endpoints found …" —
|
|
194
|
+
* typically because no host for the model supports `response_format`
|
|
195
|
+
* with `require_parameters` routing), swap the payload down to loose
|
|
196
|
+
* `json_object` mode and drop the routing restriction so the call still
|
|
197
|
+
* completes. Caller-side Zod validation remains the correctness
|
|
198
|
+
* backstop, exactly as before schema enforcement existed.
|
|
199
|
+
*
|
|
200
|
+
* @returns true when the payload was degraded and the caller should
|
|
201
|
+
* retry once; false when the error is unrelated.
|
|
202
|
+
*/
|
|
203
|
+
degradeSchemaPayloadOnNoEndpoints(payload, error) {
|
|
204
|
+
const rf = payload.response_format;
|
|
205
|
+
if (rf?.type !== 'json_schema')
|
|
206
|
+
return false;
|
|
207
|
+
if (!(error instanceof OpenRouterProviderError))
|
|
208
|
+
return false;
|
|
209
|
+
const noEndpoints = error.httpStatus === 404 && /no endpoints/i.test(error.message);
|
|
210
|
+
if (!noEndpoints)
|
|
211
|
+
return false;
|
|
212
|
+
console.warn(`OpenRouterProvider: no endpoint supports json_schema for model ` +
|
|
213
|
+
`'${String(payload.model)}' — degrading to json_object for this call.`);
|
|
214
|
+
payload.response_format = { type: 'json_object' };
|
|
215
|
+
const provider = payload.provider;
|
|
216
|
+
if (provider && typeof provider === 'object') {
|
|
217
|
+
delete provider.require_parameters;
|
|
218
|
+
if (Object.keys(provider).length === 0)
|
|
219
|
+
delete payload.provider;
|
|
220
|
+
}
|
|
221
|
+
return true;
|
|
222
|
+
}
|
|
161
223
|
async *generateCompletionStream(modelId, messages, options) {
|
|
162
224
|
this.ensureInitialized();
|
|
163
225
|
const openRouterMessages = this.mapToOpenRouterMessages(messages);
|
|
@@ -188,11 +250,22 @@ export class OpenRouterProvider {
|
|
|
188
250
|
...(options.tools !== undefined && { tools: options.tools }),
|
|
189
251
|
...(options.toolChoice !== undefined && { tool_choice: options.toolChoice }),
|
|
190
252
|
...(options.responseFormat?.type === 'json_object' && { response_format: { type: 'json_object' } }),
|
|
253
|
+
...(options.responseFormat?.type === 'json_schema' && { response_format: options.responseFormat }),
|
|
191
254
|
...(options.customModelParams || {}),
|
|
192
255
|
};
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
256
|
+
this.applySchemaRoutingPrefs(payload, options);
|
|
257
|
+
let stream;
|
|
258
|
+
try {
|
|
259
|
+
stream = await this.makeApiRequest('/chat/completions', 'POST',
|
|
260
|
+
// CR8: honor a per-call requestTimeout override over the stream default.
|
|
261
|
+
options.requestTimeout ?? this.config.streamRequestTimeout, payload, true);
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
const degraded = this.degradeSchemaPayloadOnNoEndpoints(payload, error);
|
|
265
|
+
if (!degraded)
|
|
266
|
+
throw error;
|
|
267
|
+
stream = await this.makeApiRequest('/chat/completions', 'POST', options.requestTimeout ?? this.config.streamRequestTimeout, payload, true);
|
|
268
|
+
}
|
|
196
269
|
const accumulatedToolCalls = new Map();
|
|
197
270
|
const abortSignal = options.abortSignal;
|
|
198
271
|
if (abortSignal?.aborted) {
|
|
@@ -218,6 +291,31 @@ export class OpenRouterProvider {
|
|
|
218
291
|
const jsonData = rawChunk.substring('data: '.length);
|
|
219
292
|
try {
|
|
220
293
|
const apiChunk = JSON.parse(jsonData);
|
|
294
|
+
// OpenRouter reports upstream failures MID-STREAM as an SSE data
|
|
295
|
+
// event carrying an `error` object and no choices. Previously this
|
|
296
|
+
// fell into the empty-choices branch and surfaced as a generic
|
|
297
|
+
// "Stream chunk contained no choices" — the real upstream reason
|
|
298
|
+
// (provider outage, moderation, context overflow) was discarded,
|
|
299
|
+
// which made every mid-stream failure look identical to callers'
|
|
300
|
+
// retry/fallback routing. Surface the actual message + code and
|
|
301
|
+
// terminate the stream.
|
|
302
|
+
if (apiChunk.error && typeof apiChunk.error === 'object') {
|
|
303
|
+
const errMessage = apiChunk.error.message || 'OpenRouter mid-stream error';
|
|
304
|
+
const errCode = apiChunk.error.code;
|
|
305
|
+
yield {
|
|
306
|
+
id: apiChunk.id ?? `openrouter-error-${Date.now()}`,
|
|
307
|
+
object: 'chat.completion.chunk',
|
|
308
|
+
created: apiChunk.created ?? Math.floor(Date.now() / 1000),
|
|
309
|
+
modelId: apiChunk.model || modelId,
|
|
310
|
+
choices: [],
|
|
311
|
+
isFinal: true,
|
|
312
|
+
error: {
|
|
313
|
+
message: errCode !== undefined ? `[${errCode}] ${errMessage}` : errMessage,
|
|
314
|
+
type: 'upstream_error',
|
|
315
|
+
},
|
|
316
|
+
};
|
|
317
|
+
break;
|
|
318
|
+
}
|
|
221
319
|
yield this.mapApiToStreamChunkResponse(apiChunk, modelId, accumulatedToolCalls);
|
|
222
320
|
// Don't break on finish_reason: with stream_options.include_usage,
|
|
223
321
|
// OpenRouter (like OpenAI) emits a trailing usage-only chunk AFTER
|
|
@@ -303,7 +401,15 @@ export class OpenRouterProvider {
|
|
|
303
401
|
return { isHealthy: false, details: { message: "OpenRouterProvider not initialized (HTTP client missing)." } };
|
|
304
402
|
}
|
|
305
403
|
try {
|
|
306
|
-
|
|
404
|
+
// Auth rides per-request since the key moved off the axios instance
|
|
405
|
+
// (per-attempt pool rotation) — /models is public today, but keep the
|
|
406
|
+
// health probe representative of real authenticated traffic.
|
|
407
|
+
await this.client.get('/models', {
|
|
408
|
+
timeout: Math.min(this.config.requestTimeout || 10000, 10000),
|
|
409
|
+
headers: {
|
|
410
|
+
Authorization: `Bearer ${this.keyPool?.hasKeys ? this.keyPool.next() : this.config.apiKey}`,
|
|
411
|
+
},
|
|
412
|
+
});
|
|
307
413
|
return { isHealthy: true, details: { message: "Successfully connected to OpenRouter /models endpoint." } };
|
|
308
414
|
}
|
|
309
415
|
catch (error) {
|
|
@@ -481,45 +587,95 @@ export class OpenRouterProvider {
|
|
|
481
587
|
usage: finalUsage,
|
|
482
588
|
};
|
|
483
589
|
}
|
|
590
|
+
/**
|
|
591
|
+
* Executes one OpenRouter API request with per-attempt key rotation and
|
|
592
|
+
* bounded retry. Previously this was a single attempt with the API key
|
|
593
|
+
* baked into the axios instance at initialize() — a throttled or
|
|
594
|
+
* credit-exhausted key was reused forever and every transient 429/5xx/
|
|
595
|
+
* network blip surfaced straight to the caller as a final failure.
|
|
596
|
+
*
|
|
597
|
+
* Per attempt:
|
|
598
|
+
* - the Authorization key is drawn fresh from the {@link ApiKeyPool}
|
|
599
|
+
* (weighted round-robin, skips keys in cooldown);
|
|
600
|
+
* - a 402/429 marks the CURRENT key exhausted so the next attempt (and
|
|
601
|
+
* the next request) fails over to a different key;
|
|
602
|
+
* - 408/429/5xx and transport-level failures (no HTTP response) retry
|
|
603
|
+
* with the response's Retry-After when present (capped), else
|
|
604
|
+
* jittered exponential backoff; 4xx request errors throw immediately.
|
|
605
|
+
*/
|
|
484
606
|
async makeApiRequest(endpoint, method, timeout, body, expectStream = false) {
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
607
|
+
let lastError = null;
|
|
608
|
+
for (let attempt = 0; attempt < OpenRouterProvider.MAX_REQUEST_ATTEMPTS; attempt++) {
|
|
609
|
+
const apiKey = this.keyPool?.hasKeys ? this.keyPool.next() : this.config.apiKey;
|
|
610
|
+
try {
|
|
611
|
+
const response = await this.client.request({
|
|
612
|
+
url: endpoint,
|
|
613
|
+
method,
|
|
614
|
+
data: body,
|
|
615
|
+
timeout: timeout,
|
|
616
|
+
headers: { Authorization: `Bearer ${apiKey}` },
|
|
617
|
+
responseType: expectStream ? 'stream' : 'json',
|
|
618
|
+
});
|
|
619
|
+
return response.data;
|
|
620
|
+
}
|
|
621
|
+
catch (error) {
|
|
622
|
+
let statusCode;
|
|
623
|
+
let errorData;
|
|
624
|
+
let errorMessage = 'Unknown OpenRouter API error';
|
|
625
|
+
let errorType = 'UNKNOWN_API_ERROR';
|
|
626
|
+
let retryAfterSec;
|
|
627
|
+
let transportFailure = false;
|
|
628
|
+
if (axios.isAxiosError(error)) {
|
|
629
|
+
statusCode = error.response?.status;
|
|
630
|
+
errorData = error.response?.data;
|
|
631
|
+
transportFailure = error.response === undefined;
|
|
632
|
+
const retryAfterRaw = error.response?.headers?.['retry-after'];
|
|
633
|
+
const parsedRetryAfter = typeof retryAfterRaw === 'string' ? parseInt(retryAfterRaw, 10) : NaN;
|
|
634
|
+
if (Number.isFinite(parsedRetryAfter) && parsedRetryAfter > 0) {
|
|
635
|
+
retryAfterSec = parsedRetryAfter;
|
|
636
|
+
}
|
|
637
|
+
if (errorData?.error && typeof errorData.error === 'object') {
|
|
638
|
+
errorMessage = errorData.error.message || errorMessage;
|
|
639
|
+
errorType = errorData.error.type || errorType;
|
|
640
|
+
}
|
|
641
|
+
else if (typeof errorData === 'string') {
|
|
642
|
+
errorMessage = errorData;
|
|
643
|
+
}
|
|
644
|
+
else if (error.message) {
|
|
645
|
+
errorMessage = error.message;
|
|
646
|
+
}
|
|
509
647
|
}
|
|
510
|
-
else if (error
|
|
648
|
+
else if (error instanceof Error) {
|
|
511
649
|
errorMessage = error.message;
|
|
512
650
|
}
|
|
651
|
+
// A throttled (429) or credit-exhausted (402) key must not be
|
|
652
|
+
// reused by the next attempt/request — cool it down in the pool.
|
|
653
|
+
if ((statusCode === 402 || statusCode === 429) && this.keyPool?.hasKeys) {
|
|
654
|
+
this.keyPool.markExhausted(apiKey);
|
|
655
|
+
}
|
|
656
|
+
// Prefix the status code into the message so downstream retry/fallback
|
|
657
|
+
// logic (e.g. isRetryableError, which greps for \b402\b) can route on it
|
|
658
|
+
// even when the OR API body provides a friendlier description.
|
|
659
|
+
const decoratedMessage = statusCode ? `[${statusCode}] ${errorMessage}` : errorMessage;
|
|
660
|
+
lastError = new OpenRouterProviderError(decoratedMessage, 'API_REQUEST_FAILED', statusCode, errorType, { requestEndpoint: endpoint, requestBodyPreview: body ? JSON.stringify(body).substring(0, 200) + '...' : undefined, responseData: errorData, underlyingError: error });
|
|
661
|
+
const retryable = transportFailure ||
|
|
662
|
+
statusCode === 408 ||
|
|
663
|
+
statusCode === 429 ||
|
|
664
|
+
(typeof statusCode === 'number' && statusCode >= 500 && statusCode < 600);
|
|
665
|
+
if (!retryable || attempt === OpenRouterProvider.MAX_REQUEST_ATTEMPTS - 1) {
|
|
666
|
+
throw lastError;
|
|
667
|
+
}
|
|
668
|
+
const sleepMs = Math.min(retryAfterSec !== undefined
|
|
669
|
+
? retryAfterSec * 1000
|
|
670
|
+
: 300 * 2 ** attempt + Math.floor(Math.random() * 200), OpenRouterProvider.MAX_RETRY_SLEEP_MS);
|
|
671
|
+
console.warn(`OpenRouterProvider: attempt ${attempt + 1}/${OpenRouterProvider.MAX_REQUEST_ATTEMPTS} ` +
|
|
672
|
+
`failed (${decoratedMessage.substring(0, 160)}); retrying in ${sleepMs}ms.`);
|
|
673
|
+
await new Promise((resolve) => setTimeout(resolve, sleepMs));
|
|
513
674
|
}
|
|
514
|
-
else if (error instanceof Error) {
|
|
515
|
-
errorMessage = error.message;
|
|
516
|
-
}
|
|
517
|
-
// Prefix the status code into the message so downstream retry/fallback
|
|
518
|
-
// logic (e.g. isRetryableError, which greps for \b402\b) can route on it
|
|
519
|
-
// even when the OR API body provides a friendlier description.
|
|
520
|
-
const decoratedMessage = statusCode ? `[${statusCode}] ${errorMessage}` : errorMessage;
|
|
521
|
-
throw new OpenRouterProviderError(decoratedMessage, 'API_REQUEST_FAILED', statusCode, errorType, { requestEndpoint: endpoint, requestBodyPreview: body ? JSON.stringify(body).substring(0, 200) + '...' : undefined, responseData: errorData, underlyingError: error });
|
|
522
675
|
}
|
|
676
|
+
// Unreachable in practice (the loop either returns or throws), but keeps
|
|
677
|
+
// the compiler + any future refactor honest.
|
|
678
|
+
throw lastError ?? new OpenRouterProviderError('OpenRouter request failed.', 'API_REQUEST_FAILED');
|
|
523
679
|
}
|
|
524
680
|
async *parseSseStream(stream) {
|
|
525
681
|
let buffer = '';
|
|
@@ -557,4 +713,8 @@ export class OpenRouterProvider {
|
|
|
557
713
|
}
|
|
558
714
|
}
|
|
559
715
|
}
|
|
716
|
+
/** Attempts per request: 1 initial + 2 retries on retryable failures. */
|
|
717
|
+
OpenRouterProvider.MAX_REQUEST_ATTEMPTS = 3;
|
|
718
|
+
/** Ceiling for a single retry sleep (Retry-After or backoff), ms. */
|
|
719
|
+
OpenRouterProvider.MAX_RETRY_SLEEP_MS = 15000;
|
|
560
720
|
//# sourceMappingURL=OpenRouterProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenRouterProvider.js","sourceRoot":"","sources":["../../../../../src/core/llm/providers/implementations/OpenRouterProvider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OpenRouterProvider.js","sourceRoot":"","sources":["../../../../../src/core/llm/providers/implementations/OpenRouterProvider.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF;;;;;;GAMG;AAEH,OAAO,KAAkD,MAAM,OAAO,CAAC;AAYvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC,CAAC,wBAAwB;AAC1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AA+FjE,MAAM,OAAO,kBAAkB;IAW7B;QAVgB,eAAU,GAAW,YAAY,CAAC;QAC3C,kBAAa,GAAY,KAAK,CAAC;QAK9B,YAAO,GAAsB,IAAI,CAAC;QAEzB,yBAAoB,GAA2B,IAAI,GAAG,EAAE,CAAC;IAE3D,CAAC;IAET,KAAK,CAAC,UAAU,CAAC,MAAgC;QACtD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,uBAAuB,CAC/B,6DAA6D,EAC7D,6BAA6B,CAC9B,CAAC;QACJ,CAAC;QACD,qFAAqF;QACrF,6DAA6D;QAC7D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,8BAA8B;YACzD,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,0DAA0D;YACjG,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,mBAAmB;YAC5C,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,mBAAmB;YAC5C,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,KAAK;YAC9C,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,IAAI,MAAM;SAC5D,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,wCAAwC;QAE1F,sEAAsE;QACtE,wEAAwE;QACxE,gEAAgE;QAChE,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,YAAY,EAAE,oCAAoC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,YAAY,GAAG;SACzF,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAChD,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,kDAAkD,IAAI,CAAC,cAAc,IAAI,SAAS,WAAW,IAAI,CAAC,oBAAoB,CAAC,IAAI,yBAAyB,CAAC,CAAC;QACpK,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,MAAM,SAAS,GAAG,KAAK,YAAY,uBAAuB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAClE,uBAAuB,CAAE,kDAAkD;gBACzE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EACzD,YAAY,CAAC,kBAAkB,EAAE,uCAAuC;gBACxE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EAC/B,4CAA4C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACrG,CAAC;YACJ,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;YACjE,MAAM,SAAS,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,sBAAsB;QAClC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAC5C,SAAS,EACT,KAAK,EACL,IAAI,CAAC,MAAM,CAAC,cAAc,CAC3B,CAAC;QAEF,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACrD,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAkC,EAAE,EAAE;gBAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBACnD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAC;QAC1G,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,QAAkC;QAC1D,MAAM,YAAY,GAA8B,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACvE,IAAI,QAAQ,CAAC,YAAY,EAAE,QAAQ,KAAK,YAAY,EAAE,CAAC;YACrD,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,0BAA0B,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9G,IAAI,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC5F,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACvE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,QAA4B,EAAE,eAAuB,OAAO,EAAsB,EAAE;YACtG,IAAI,OAAO,QAAQ,KAAK,QAAQ;gBAAE,OAAO,SAAS,CAAC;YACnD,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YACnC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,YAAY,CAAC;QACzD,CAAC,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,EAAE;YACpB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,QAAQ,CAAC,IAAI;YAC1B,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;YAC/C,iBAAiB,EAAE,QAAQ,CAAC,cAAc,IAAI,SAAS;YACvD,qBAAqB,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;YAC1D,sBAAsB,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;YAC/D,iBAAiB,EAAE,IAAI;YACvB,MAAM,EAAE,QAAQ;SACjB,CAAC;IACJ,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,uBAAuB,CAC/B,mFAAmF,EACnF,0BAA0B,CAC3B,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,uBAAuB,CAAC,QAAuB;QACrD,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACxB,MAAM,SAAS,GAAyB,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;YACjF,IAAI,GAAG,CAAC,IAAI;gBAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YACxC,IAAI,GAAG,CAAC,UAAU;gBAAE,SAAS,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;YAC1D,IAAI,GAAG,CAAC,YAAY;gBAAE,SAAS,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;YAChE,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAC7B,OAAe,EACf,QAAuB,EACvB,OAA+B;QAE/B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAElE,MAAM,OAAO,GAA4B;YACvC,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,kBAAkB;YAC5B,MAAM,EAAE,KAAK;YACb,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;YAC9E,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1D,yEAAyE;YACzE,2EAA2E;YAC3E,+EAA+E;YAC/E,6EAA6E;YAC7E,6EAA6E;YAC7E,oEAAoE;YACpE,uEAAuE;YACvE,uDAAuD;YACvD,UAAU,EAAE,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI;YACpE,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;YAC3F,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS,IAAI,EAAE,iBAAiB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC9F,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3E,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7D,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAC5D,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;YAC5E,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,KAAK,aAAa,IAAI,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC;YACnG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,KAAK,aAAa,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;YAClG,GAAG,CAAC,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC;SACrC,CAAC;QACF,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE/C,IAAI,eAAoD,CAAC;QACzD,IAAI,CAAC;YACH,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CACzC,mBAAmB,EACnB,MAAM;YACN,2EAA2E;YAC3E,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EACpD,OAAO,CACR,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,iCAAiC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACxE,IAAI,CAAC,QAAQ;gBAAE,MAAM,KAAK,CAAC;YAC3B,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CACzC,mBAAmB,EACnB,MAAM,EACN,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EACpD,OAAO,CACR,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,0BAA0B,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;;;OAQG;IACK,uBAAuB,CAC7B,OAAgC,EAChC,OAA+B;QAE/B,IAAI,OAAO,CAAC,cAAc,EAAE,IAAI,KAAK,aAAa;YAAE,OAAO;QAC3D,MAAM,QAAQ,GACZ,OAAO,CAAC,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;YACtD,CAAC,CAAE,OAAO,CAAC,QAAoC;YAC/C,CAAC,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;IAC/D,CAAC;IAED;;;;;;;;;;;OAWG;IACK,iCAAiC,CACvC,OAAgC,EAChC,KAAc;QAEd,MAAM,EAAE,GAAG,OAAO,CAAC,eAAgD,CAAC;QACpE,IAAI,EAAE,EAAE,IAAI,KAAK,aAAa;YAAE,OAAO,KAAK,CAAC;QAC7C,IAAI,CAAC,CAAC,KAAK,YAAY,uBAAuB,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9D,MAAM,WAAW,GACf,KAAK,CAAC,UAAU,KAAK,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QAE/B,OAAO,CAAC,IAAI,CACV,iEAAiE;YAC/D,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,6CAA6C,CACzE,CAAC;QACF,OAAO,CAAC,eAAe,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAA+C,CAAC;QACzE,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC7C,OAAO,QAAQ,CAAC,kBAAkB,CAAC;YACnC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,OAAO,CAAC,QAAQ,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,CAAC,wBAAwB,CACpC,OAAe,EACf,QAAuB,EACvB,OAA+B;QAE/B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAElE,MAAM,OAAO,GAA4B;YACvC,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,kBAAkB;YAC5B,MAAM,EAAE,IAAI;YACZ,uEAAuE;YACvE,uEAAuE;YACvE,6DAA6D;YAC7D,iEAAiE;YACjE,cAAc,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;YACvC,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;YAC9E,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1D,yEAAyE;YACzE,2EAA2E;YAC3E,+EAA+E;YAC/E,6EAA6E;YAC7E,6EAA6E;YAC7E,oEAAoE;YACpE,uEAAuE;YACvE,uDAAuD;YACvD,UAAU,EAAE,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI;YACpE,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;YAC3F,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS,IAAI,EAAE,iBAAiB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC9F,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3E,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7D,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAC5D,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;YAC5E,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,KAAK,aAAa,IAAI,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC;YACnG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,KAAK,aAAa,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;YAClG,GAAG,CAAC,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC;SACrC,CAAC;QACF,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE/C,IAAI,MAA6B,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAChC,mBAAmB,EACnB,MAAM;YACN,yEAAyE;YACzE,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAC1D,OAAO,EACP,IAAI,CACL,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,iCAAiC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACxE,IAAI,CAAC,QAAQ;gBAAE,MAAM,KAAK,CAAC;YAC3B,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAChC,mBAAmB,EACnB,MAAM,EACN,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAC1D,OAAO,EACP,IAAI,CACL,CAAC;QACJ,CAAC;QAED,MAAM,oBAAoB,GAAuG,IAAI,GAAG,EAAE,CAAC;QAE3I,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACxC,IAAI,WAAW,EAAE,OAAO,EAAE,CAAC;YACzB,MAAM,EAAE,EAAE,EAAE,oBAAoB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,qCAAqC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACrO,OAAO;QACT,CAAC;QACD,MAAM,YAAY,GAAG,GAAG,EAAE,GAA8C,CAAC,CAAC;QAC1E,WAAW,EAAE,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAErE,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YACzD,IAAI,WAAW,EAAE,OAAO,EAAE,CAAC;gBACzB,MAAM,EAAE,EAAE,EAAE,oBAAoB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,0BAA0B,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAC1N,MAAM;YACR,CAAC;YACD,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjE,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC5D,IAAI,QAAQ,KAAK,QAAQ;oBAAE,MAAM;YACnC,CAAC;YACD,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;gBAChC,MAAM;YACR,CAAC;YAED,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACrD,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAEnC,CAAC;oBACF,iEAAiE;oBACjE,mEAAmE;oBACnE,+DAA+D;oBAC/D,iEAAiE;oBACjE,iEAAiE;oBACjE,iEAAiE;oBACjE,gEAAgE;oBAChE,wBAAwB;oBACxB,IAAI,QAAQ,CAAC,KAAK,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACzD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAI,6BAA6B,CAAC;wBAC3E,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;wBACpC,MAAM;4BACJ,EAAE,EAAE,QAAQ,CAAC,EAAE,IAAI,oBAAoB,IAAI,CAAC,GAAG,EAAE,EAAE;4BACnD,MAAM,EAAE,uBAAuB;4BAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;4BAC1D,OAAO,EAAE,QAAQ,CAAC,KAAK,IAAI,OAAO;4BAClC,OAAO,EAAE,EAAE;4BACX,OAAO,EAAE,IAAI;4BACb,KAAK,EAAE;gCACL,OAAO,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU;gCAC1E,IAAI,EAAE,gBAAgB;6BACvB;yBACF,CAAC;wBACF,MAAM;oBACR,CAAC;oBACD,MAAM,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;oBAChF,mEAAmE;oBACnE,mEAAmE;oBACnE,iEAAiE;oBACjE,mEAAmE;oBACnE,6DAA6D;gBAC/D,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,OAAO,CAAC,IAAI,CAAC,8EAA8E,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC1H,CAAC;YACH,CAAC;QACH,CAAC;QACD,WAAW,EAAE,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAC7B,OAAe,EACf,KAAe,EACf,OAAkC;QAElC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,uBAAuB,CAAC,8DAA8D,EAAE,oBAAoB,CAAC,CAAC;QAC1H,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,8BAA8B,OAAO,4EAA4E,CAAC,CAAC;QAClI,CAAC;QAED,MAAM,OAAO,GAA4B;YACvC,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,KAAK;YACZ,GAAG,CAAC,OAAO,EAAE,cAAc,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3E,GAAG,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;YAC9D,GAAG,CAAC,OAAO,EAAE,iBAAiB,IAAI,EAAE,CAAC;SACtC,CAAC;QACF,IAAI,OAAO,EAAE,SAAS,IAAI,OAAO,CAAC,iBAAiB,IAAI,OAAO,OAAO,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;YACpG,OAAO,CAAC,iBAA6C,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QACxF,CAAC;aAAM,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,iBAAiB,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QAChE,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAC/C,aAAa,EACb,MAAM,EACN,IAAI,CAAC,MAAM,CAAC,cAAc,EAC1B,OAAO,CACR,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnC,MAAM,EAAE,WAAW;gBACnB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,KAAK,EAAE,CAAC,CAAC,KAAK;aACf,CAAC,CAAC;YACH,KAAK,EAAE,eAAe,CAAC,KAAK;YAC5B,KAAK,EAAE;gBACL,aAAa,EAAE,eAAe,CAAC,KAAK,CAAC,aAAa;gBAClD,YAAY,EAAE,eAAe,CAAC,KAAK,CAAC,YAAY;aACjD;SACF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,MAAgC;QAC/D,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACtC,CAAC;YAAC,OAAO,YAAY,EAAE,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAC,yGAAyG,EAAE,YAAY,CAAC,CAAC;YACxI,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9D,IAAI,MAAM,EAAE,UAAU,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAW,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,OAAe;QACvC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,6BAA6B,OAAO,uCAAuC,CAAC,CAAC;gBACzF,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,kFAAkF,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YACpH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAEM,KAAK,CAAC,WAAW;QACtB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,2DAA2D,EAAC,EAAC,CAAC;QAC/G,CAAC;QACD,IAAI,CAAC;YACH,oEAAoE;YACpE,sEAAsE;YACtE,6DAA6D;YAC7D,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE;gBAC/B,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,KAAK,EAAE,KAAK,CAAC;gBAC7D,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;iBAC5F;aACF,CAAC,CAAC;YACH,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,wDAAwD,EAAE,EAAE,CAAC;QAC7G,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,KAAmB,CAAC;YAChC,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE;oBACP,OAAO,EAAE,mCAAmC,GAAG,CAAC,OAAO,EAAE;oBACzD,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM;oBAC5B,YAAY,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI;iBACjC;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,kFAAkF,CAAC,CAAC;IAClG,CAAC;IAEO,0BAA0B,CAChC,WAAgD,EAChD,gBAAwB;QAExB,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,uBAAuB,CAAC,+CAA+C,EAAE,wBAAwB,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;QACrK,CAAC;QAED,MAAM,KAAK,GAA2B,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC,aAAa;YAC7C,gBAAgB,EAAE,WAAW,CAAC,KAAK,CAAC,iBAAiB;YACrD,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,YAAY;YAC3C,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI;SAChC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO;YACL,EAAE,EAAE,WAAW,CAAC,EAAE;YAClB,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,OAAO,EAAE,WAAW,CAAC,KAAK,IAAI,gBAAgB;YAC9C,uEAAuE;YACvE,oEAAoE;YACpE,4DAA4D;YAC5D,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrC,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,OAAO,EAAE;oBACP,IAAI,EAAE,CAAC,CAAC,OAAQ,CAAC,IAAI;oBACrB,OAAO,EAAE,CAAC,CAAC,OAAQ,CAAC,OAAO;oBAC3B,UAAU,EAAE,CAAC,CAAC,OAAQ,CAAC,UAAU;iBAClC;gBACD,YAAY,EAAE,CAAC,CAAC,aAAa;gBAC7B,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB,CAAC,CAAC;YACH,KAAK;SACN,CAAC;IACJ,CAAC;IAEO,2BAA2B,CAC/B,QAA6C,EAC7C,gBAAwB,EACxB,oBAAwH;QAExH,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAEnC,sEAAsE;QACtE,mEAAmE;QACnE,uEAAuE;QACvE,0EAA0E;QAC1E,0DAA0D;QAC1D,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAC3E,OAAO;gBACL,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,OAAO,EAAE,QAAQ,CAAC,KAAK,IAAI,gBAAgB;gBAC3C,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE;oBACL,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;oBAC1C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,iBAAiB;oBAClD,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY;oBACxC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;iBAC7B;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACnE,OAAO,EAAE,QAAQ,CAAC,KAAK,IAAI,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI;gBACvE,KAAK,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE,IAAI,EAAE,kBAAkB,EAAE;aACnF,CAAC;QACJ,CAAC;QAED,IAAI,iBAAqC,CAAC;QAC1C,IAAI,eAA2D,CAAC;QAEhE,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;YAC1B,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QAC3C,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC;YAC7B,eAAe,GAAG,EAAE,CAAC;YACrB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACxC,IAAI,oBAAoB,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACnE,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAC1B,oBAAoB,GAAG,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAC,EAAE,CAAC;gBAClE,CAAC;gBAED,IAAI,OAAO,CAAC,EAAE;oBAAE,oBAAoB,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;gBACrD,IAAI,OAAO,CAAC,IAAI;oBAAE,oBAAoB,CAAC,IAAI,GAAG,OAAO,CAAC,IAAkB,CAAC;gBACzE,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI;oBAAE,oBAAoB,CAAC,QAAS,CAAC,IAAI,GAAG,CAAC,oBAAoB,CAAC,QAAS,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACtI,IAAI,OAAO,CAAC,QAAQ,EAAE,SAAS;oBAAE,oBAAoB,CAAC,QAAS,CAAC,SAAS,GAAG,CAAC,oBAAoB,CAAC,QAAS,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAE1J,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;gBAE9D,eAAgB,CAAC,IAAI,CAAC;oBACpB,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,IAAI,EAAE,OAAO,CAAC,IAAkB;oBAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;wBAC3B,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;wBAC3B,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS;qBAC5C,CAAC,CAAC,CAAC,SAAS;iBACd,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QACvC,IAAI,UAAkC,CAAC;QACvC,MAAM,YAAY,GAA4B,EAAE,CAAC;QAEjD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,UAAU,GAAG;oBACX,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;oBAC1C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,iBAAiB;oBAClD,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY;oBACxC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;iBAC7B,CAAC;YACJ,CAAC;YACD,MAAM,YAAY,GAAgB;gBAChC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,IAAI,oBAAoB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,WAAW,CAAC;gBAC/G,OAAO,EAAE,iBAAiB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;gBAC/D,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC;qBAClD,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;qBACxC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACb,EAAE,EAAE,KAAK,CAAC,EAAG;oBACb,IAAI,EAAE,KAAK,CAAC,IAAK;oBACjB,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,QAAS,CAAC,IAAK,EAAE,SAAS,EAAE,KAAK,CAAC,QAAS,CAAC,SAAU,EAAE;iBACjF,CAAC,CAAC;aACN,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrE,OAAO,YAAY,CAAC,UAAU,CAAC;YACjC,CAAC;YACD,IAAI,iBAAiB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,IAAI,oBAAoB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACrF,YAAY,CAAC,OAAO,GAAG,iBAAiB,CAAC;YAC3C,CAAC;iBAAM,IAAI,oBAAoB,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;gBAC3F,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;YAC9B,CAAC;YAED,YAAY,CAAC,IAAI,CAAC;gBAChB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO,EAAE,YAAY;gBACrB,YAAY,EAAE,MAAM,CAAC,aAAa;gBAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CAAC;gBAChB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,IAAI,WAAW;oBACvC,OAAO,EAAE,iBAAiB,IAAI,IAAI;iBACnC;gBACD,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,OAAO,EAAE,QAAQ,CAAC,KAAK,IAAI,gBAAgB;YAC3C,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,OAAO,EAAE,YAAY;YACrB,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB;YAC1D,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe;YACtD,OAAO;YACP,KAAK,EAAE,UAAU;SAClB,CAAC;IACN,CAAC;IAOD;;;;;;;;;;;;;;;OAeG;IACK,KAAK,CAAC,cAAc,CAC1B,QAAgB,EAChB,MAAsB,EACtB,OAAgB,EAChB,IAA8B,EAC9B,eAAwB,KAAK;QAE7B,IAAI,SAAS,GAAmC,IAAI,CAAC;QAErD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAC,oBAAoB,EAAE,OAAO,EAAE,EAAE,CAAC;YACnF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAChF,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAI;oBAC5C,GAAG,EAAE,QAAQ;oBACb,MAAM;oBACN,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE;oBAC9C,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,QAAwB,CAAC,CAAC,CAAC,MAAsB;iBAC/E,CAAC,CAAC;gBACH,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,IAAI,UAA8B,CAAC;gBACnC,IAAI,SAAc,CAAC;gBACnB,IAAI,YAAY,GAAG,8BAA8B,CAAC;gBAClD,IAAI,SAAS,GAAG,mBAAmB,CAAC;gBACpC,IAAI,aAAiC,CAAC;gBACtC,IAAI,gBAAgB,GAAG,KAAK,CAAC;gBAE7B,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC9B,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;oBACpC,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;oBACjC,gBAAgB,GAAG,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC;oBAChD,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,CAAC;oBAC/D,MAAM,gBAAgB,GACpB,OAAO,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;oBACxE,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;wBAC9D,aAAa,GAAG,gBAAgB,CAAC;oBACnC,CAAC;oBACD,IAAI,SAAS,EAAE,KAAK,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC5D,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,YAAY,CAAC;wBACvD,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;oBAChD,CAAC;yBAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;wBACzC,YAAY,GAAG,SAAS,CAAC;oBAC3B,CAAC;yBAAM,IAAK,KAAe,CAAC,OAAO,EAAE,CAAC;wBACpC,YAAY,GAAI,KAAe,CAAC,OAAO,CAAC;oBAC1C,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;oBAClC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC/B,CAAC;gBAED,8DAA8D;gBAC9D,iEAAiE;gBACjE,IAAI,CAAC,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;oBACxE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBACrC,CAAC;gBAED,uEAAuE;gBACvE,yEAAyE;gBACzE,+DAA+D;gBAC/D,MAAM,gBAAgB,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;gBACvF,SAAS,GAAG,IAAI,uBAAuB,CACrC,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,EAAE,eAAe,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,CACtK,CAAC;gBAEF,MAAM,SAAS,GACb,gBAAgB;oBAChB,UAAU,KAAK,GAAG;oBAClB,UAAU,KAAK,GAAG;oBAClB,CAAC,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG,CAAC,CAAC;gBAC5E,IAAI,CAAC,SAAS,IAAI,OAAO,KAAK,kBAAkB,CAAC,oBAAoB,GAAG,CAAC,EAAE,CAAC;oBAC1E,MAAM,SAAS,CAAC;gBAClB,CAAC;gBAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CACtB,aAAa,KAAK,SAAS;oBACzB,CAAC,CAAC,aAAa,GAAG,IAAI;oBACtB,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,EACxD,kBAAkB,CAAC,kBAAkB,CACtC,CAAC;gBACF,OAAO,CAAC,IAAI,CACV,+BAA+B,OAAO,GAAG,CAAC,IAAI,kBAAkB,CAAC,oBAAoB,GAAG;oBACtF,WAAW,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,kBAAkB,OAAO,KAAK,CAC9E,CAAC;gBACF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,yEAAyE;QACzE,6CAA6C;QAC7C,MAAM,SAAS,IAAI,IAAI,uBAAuB,CAAC,4BAA4B,EAAE,oBAAoB,CAAC,CAAC;IACrG,CAAC;IAEO,KAAK,CAAC,CAAC,cAAc,CAAC,MAA6B;QACzD,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,cAAc,GAAG,MAA0D,CAAC;QAElF,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC3B,IAAI,QAAQ,CAAC;gBACb,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;oBAClD,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;oBACxC,IAAI,IAAI,EAAE,CAAC;wBACT,MAAM,IAAI,CAAC;oBACb,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClB,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,yCAAyC,CAAC;YACnG,OAAO,CAAC,KAAK,CAAC,0DAA0D,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAC1F,IAAI,KAAK,YAAY,uBAAuB;gBAAE,MAAM,KAAK,CAAC;YAC1D,MAAM,IAAI,uBAAuB,CAAC,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAClG,CAAC;gBAAS,CAAC;YACT,IAAI,OAAO,cAAc,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBACjD,cAAc,CAAC,OAAO,EAAE,CAAC;YAC3B,CAAC;iBAAM,IAAI,OAAQ,cAAsB,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBAC9D,cAAsB,CAAC,KAAK,EAAE,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;;AArJD,yEAAyE;AACjD,uCAAoB,GAAG,CAAC,AAAJ,CAAK;AACjD,qEAAqE;AAC7C,qCAAkB,GAAG,KAAM,AAAT,CAAU"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Strict-tool-use capability helper for the Anthropic Claude
|
|
3
|
+
* models.
|
|
4
|
+
*
|
|
5
|
+
* Anthropic's structured-outputs surface (beta `structured-outputs-2025-11-13`)
|
|
6
|
+
* adds `strict: true` on a tool definition: the API then validates the model's
|
|
7
|
+
* tool input against `input_schema` server-side and guarantees conformance,
|
|
8
|
+
* instead of the best-effort schema adherence unmarked tools get. That is
|
|
9
|
+
* exactly what the forced-tool structured-output path wants — without it, a
|
|
10
|
+
* long or adversarial generation can emit tool input that drifts from the
|
|
11
|
+
* schema and the caller's Zod parse fails with nothing to retry on.
|
|
12
|
+
*
|
|
13
|
+
* The flag is NOT universally supported: models older than the 4.5
|
|
14
|
+
* generation reject unknown tool fields ("tools.0.strict: Extra inputs are
|
|
15
|
+
* not permitted"), so sending it blind would 400 every structured-output
|
|
16
|
+
* call on those models. This helper is the single gate deciding when the
|
|
17
|
+
* flag (and its beta header — see AnthropicProvider.betaHeaders) may ride.
|
|
18
|
+
*
|
|
19
|
+
* Two consumers read this:
|
|
20
|
+
* - {@link AnthropicProvider} adds `strict: true` to the forced
|
|
21
|
+
* structured-output tool when the resolved model supports it, and emits
|
|
22
|
+
* the matching `anthropic-beta` header for any payload whose tools carry
|
|
23
|
+
* the flag.
|
|
24
|
+
* - Tests pin the allowlist so a new model family gets an explicit,
|
|
25
|
+
* reviewed decision instead of silently inheriting behavior.
|
|
26
|
+
*
|
|
27
|
+
* Sibling of `modelSupportsForcedToolChoice` / `modelSupportsThinking`. Kept
|
|
28
|
+
* in its own pure module so the unit test imports no provider/SDK code.
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* Whether the Anthropic API accepts `strict: true` on a tool definition for
|
|
32
|
+
* the given Claude model id.
|
|
33
|
+
*
|
|
34
|
+
* Allow-by-explicit-family: the structured-outputs surface launched with the
|
|
35
|
+
* 4.5 generation (Sonnet 4.5, Opus 4.5, Haiku 4.5) and carries forward to
|
|
36
|
+
* every later family (Opus 4.6-4.8, Sonnet 5, Haiku 5, Fable 5). Older
|
|
37
|
+
* models (Sonnet 4.x dated snapshots, Opus 4.0/4.1, the 3.x line) reject
|
|
38
|
+
* the field. New families get added here as Anthropic releases them.
|
|
39
|
+
*
|
|
40
|
+
* @param modelId Anthropic-side model id (e.g. `"claude-sonnet-5"` or
|
|
41
|
+
* `"claude-opus-4-8"`, dated variants included).
|
|
42
|
+
* @returns `true` when the model accepts `strict: true` tool definitions.
|
|
43
|
+
*/
|
|
44
|
+
export declare function modelSupportsStrictToolUse(modelId: string): boolean;
|
|
45
|
+
//# sourceMappingURL=model-strict-tool-use.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-strict-tool-use.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/providers/model-strict-tool-use.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAInE"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Strict-tool-use capability helper for the Anthropic Claude
|
|
3
|
+
* models.
|
|
4
|
+
*
|
|
5
|
+
* Anthropic's structured-outputs surface (beta `structured-outputs-2025-11-13`)
|
|
6
|
+
* adds `strict: true` on a tool definition: the API then validates the model's
|
|
7
|
+
* tool input against `input_schema` server-side and guarantees conformance,
|
|
8
|
+
* instead of the best-effort schema adherence unmarked tools get. That is
|
|
9
|
+
* exactly what the forced-tool structured-output path wants — without it, a
|
|
10
|
+
* long or adversarial generation can emit tool input that drifts from the
|
|
11
|
+
* schema and the caller's Zod parse fails with nothing to retry on.
|
|
12
|
+
*
|
|
13
|
+
* The flag is NOT universally supported: models older than the 4.5
|
|
14
|
+
* generation reject unknown tool fields ("tools.0.strict: Extra inputs are
|
|
15
|
+
* not permitted"), so sending it blind would 400 every structured-output
|
|
16
|
+
* call on those models. This helper is the single gate deciding when the
|
|
17
|
+
* flag (and its beta header — see AnthropicProvider.betaHeaders) may ride.
|
|
18
|
+
*
|
|
19
|
+
* Two consumers read this:
|
|
20
|
+
* - {@link AnthropicProvider} adds `strict: true` to the forced
|
|
21
|
+
* structured-output tool when the resolved model supports it, and emits
|
|
22
|
+
* the matching `anthropic-beta` header for any payload whose tools carry
|
|
23
|
+
* the flag.
|
|
24
|
+
* - Tests pin the allowlist so a new model family gets an explicit,
|
|
25
|
+
* reviewed decision instead of silently inheriting behavior.
|
|
26
|
+
*
|
|
27
|
+
* Sibling of `modelSupportsForcedToolChoice` / `modelSupportsThinking`. Kept
|
|
28
|
+
* in its own pure module so the unit test imports no provider/SDK code.
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* Whether the Anthropic API accepts `strict: true` on a tool definition for
|
|
32
|
+
* the given Claude model id.
|
|
33
|
+
*
|
|
34
|
+
* Allow-by-explicit-family: the structured-outputs surface launched with the
|
|
35
|
+
* 4.5 generation (Sonnet 4.5, Opus 4.5, Haiku 4.5) and carries forward to
|
|
36
|
+
* every later family (Opus 4.6-4.8, Sonnet 5, Haiku 5, Fable 5). Older
|
|
37
|
+
* models (Sonnet 4.x dated snapshots, Opus 4.0/4.1, the 3.x line) reject
|
|
38
|
+
* the field. New families get added here as Anthropic releases them.
|
|
39
|
+
*
|
|
40
|
+
* @param modelId Anthropic-side model id (e.g. `"claude-sonnet-5"` or
|
|
41
|
+
* `"claude-opus-4-8"`, dated variants included).
|
|
42
|
+
* @returns `true` when the model accepts `strict: true` tool definitions.
|
|
43
|
+
*/
|
|
44
|
+
export function modelSupportsStrictToolUse(modelId) {
|
|
45
|
+
return /^claude-(sonnet-(4-5|5)|opus-(4-[5-9]|5)|haiku-(4-5|5)|fable-5)\b/i.test(modelId);
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=model-strict-tool-use.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-strict-tool-use.js","sourceRoot":"","sources":["../../../../src/core/llm/providers/model-strict-tool-use.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAe;IACxD,OAAO,oEAAoE,CAAC,IAAI,CAC9E,OAAO,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UncensoredModelCatalog.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/routing/UncensoredModelCatalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,qDAAqD;AACrD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,eAAe,CAAC;AAE1E,8DAA8D;AAC9D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAMrF,sDAAsD;AACtD,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,iDAAiD;IACjD,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,gEAAgE;IAChE,kBAAkB,EAAE,aAAa,EAAE,CAAC;IACpC,4EAA4E;IAC5E,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAMD,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,aAAa,CAAC,MAAM,CAAC,EAAE;QACrB,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QAClC,kBAAkB,CAAC,EAAE,aAAa,EAAE,CAAC;KACtC,GAAG,YAAY,EAAE,CAAC;IAEnB;;;OAGG;IACH,cAAc,CAAC,MAAM,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,YAAY,EAAE,CAAC;IAErE;;;;;OAKG;IACH,qBAAqB,CACnB,IAAI,EAAE,UAAU,EAChB,aAAa,CAAC,EAAE,aAAa,GAC5B,YAAY,GAAG,IAAI,CAAC;IAEvB;;;;;OAKG;IACH,sBAAsB,CACpB,IAAI,EAAE,UAAU,EAChB,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,YAAY,GAAG,IAAI,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"UncensoredModelCatalog.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/routing/UncensoredModelCatalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,qDAAqD;AACrD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,eAAe,CAAC;AAE1E,8DAA8D;AAC9D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAMrF,sDAAsD;AACtD,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,iDAAiD;IACjD,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,gEAAgE;IAChE,kBAAkB,EAAE,aAAa,EAAE,CAAC;IACpC,4EAA4E;IAC5E,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAMD,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,aAAa,CAAC,MAAM,CAAC,EAAE;QACrB,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QAClC,kBAAkB,CAAC,EAAE,aAAa,EAAE,CAAC;KACtC,GAAG,YAAY,EAAE,CAAC;IAEnB;;;OAGG;IACH,cAAc,CAAC,MAAM,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,YAAY,EAAE,CAAC;IAErE;;;;;OAKG;IACH,qBAAqB,CACnB,IAAI,EAAE,UAAU,EAChB,aAAa,CAAC,EAAE,aAAa,GAC5B,YAAY,GAAG,IAAI,CAAC;IAEvB;;;;;OAKG;IACH,sBAAsB,CACpB,IAAI,EAAE,UAAU,EAChB,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,YAAY,GAAG,IAAI,CAAC;CACxB;AAqJD;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,sBAAsB,CAsIrE"}
|