@cogitator-ai/core 0.20.0 → 0.21.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 +37 -21
- package/dist/agent.d.ts +2 -2
- package/dist/agent.js +2 -2
- package/dist/causal/capabilities/causal-explainer.js +1 -1
- package/dist/causal/capabilities/causal-explainer.js.map +1 -1
- package/dist/causal/capabilities/causal-planner.js +1 -1
- package/dist/causal/capabilities/causal-planner.js.map +1 -1
- package/dist/causal/capabilities/effect-predictor.js +1 -1
- package/dist/causal/capabilities/effect-predictor.js.map +1 -1
- package/dist/causal/discovery/causal-extractor.js +1 -1
- package/dist/causal/discovery/causal-extractor.js.map +1 -1
- package/dist/causal/discovery/causal-validator.js +1 -1
- package/dist/causal/discovery/causal-validator.js.map +1 -1
- package/dist/causal/discovery/hypothesis-generator.js +1 -1
- package/dist/causal/discovery/hypothesis-generator.js.map +1 -1
- package/dist/cogitator/streaming.d.ts.map +1 -1
- package/dist/cogitator/streaming.js +6 -0
- package/dist/cogitator/streaming.js.map +1 -1
- package/dist/constitutional/critique-reviser.js +2 -2
- package/dist/constitutional/critique-reviser.js.map +1 -1
- package/dist/constitutional/input-filter.js +1 -1
- package/dist/constitutional/input-filter.js.map +1 -1
- package/dist/constitutional/output-filter.js +1 -1
- package/dist/constitutional/output-filter.js.map +1 -1
- package/dist/context/context-manager.d.ts.map +1 -1
- package/dist/context/context-manager.js +11 -2
- package/dist/context/context-manager.js.map +1 -1
- package/dist/cost-routing/model-selector.d.ts.map +1 -1
- package/dist/cost-routing/model-selector.js +24 -2
- package/dist/cost-routing/model-selector.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/learning/postgres-trace-store.js +3 -3
- package/dist/learning/postgres-trace-store.js.map +1 -1
- package/dist/llm/anthropic.d.ts +10 -1
- package/dist/llm/anthropic.d.ts.map +1 -1
- package/dist/llm/anthropic.js +74 -51
- package/dist/llm/anthropic.js.map +1 -1
- package/dist/llm/bedrock.d.ts +14 -1
- package/dist/llm/bedrock.d.ts.map +1 -1
- package/dist/llm/bedrock.js +104 -85
- package/dist/llm/bedrock.js.map +1 -1
- package/dist/llm/claude-json-schema.d.ts +9 -0
- package/dist/llm/claude-json-schema.d.ts.map +1 -0
- package/dist/llm/claude-json-schema.js +102 -0
- package/dist/llm/claude-json-schema.js.map +1 -0
- package/dist/llm/claude-models.d.ts +74 -0
- package/dist/llm/claude-models.d.ts.map +1 -0
- package/dist/llm/claude-models.js +179 -0
- package/dist/llm/claude-models.js.map +1 -0
- package/dist/llm/google.d.ts.map +1 -1
- package/dist/llm/google.js +6 -8
- package/dist/llm/google.js.map +1 -1
- package/dist/llm/index.d.ts +1 -0
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +2 -0
- package/dist/llm/index.js.map +1 -1
- package/dist/llm/openai-compatible-base.d.ts +5 -0
- package/dist/llm/openai-compatible-base.d.ts.map +1 -1
- package/dist/llm/openai-compatible-base.js +24 -17
- package/dist/llm/openai-compatible-base.js.map +1 -1
- package/dist/llm/openai-responses.d.ts +18 -0
- package/dist/llm/openai-responses.d.ts.map +1 -0
- package/dist/llm/openai-responses.js +382 -0
- package/dist/llm/openai-responses.js.map +1 -0
- package/dist/llm/openai.d.ts +16 -1
- package/dist/llm/openai.d.ts.map +1 -1
- package/dist/llm/openai.js +68 -2
- package/dist/llm/openai.js.map +1 -1
- package/dist/runtime.d.ts +1 -1
- package/dist/runtime.js +1 -1
- package/dist/security/classifiers/llm-classifier.js +1 -1
- package/dist/security/classifiers/llm-classifier.js.map +1 -1
- package/dist/tools/audio-generate.d.ts +1 -1
- package/dist/tools/audio-generate.d.ts.map +1 -1
- package/dist/tools/audio-generate.js +3 -3
- package/dist/tools/audio-generate.js.map +1 -1
- package/dist/tools/audio-transcribe.d.ts +4 -2
- package/dist/tools/audio-transcribe.d.ts.map +1 -1
- package/dist/tools/audio-transcribe.js +24 -8
- package/dist/tools/audio-transcribe.js.map +1 -1
- package/dist/tools/datetime.d.ts +2 -2
- package/dist/tools/email.d.ts.map +1 -1
- package/dist/tools/email.js +3 -1
- package/dist/tools/email.js.map +1 -1
- package/dist/tools/github.js +1 -1
- package/dist/tools/github.js.map +1 -1
- package/dist/tools/image-analyze.d.ts +1 -5
- package/dist/tools/image-analyze.d.ts.map +1 -1
- package/dist/tools/image-analyze.js +2 -2
- package/dist/tools/image-analyze.js.map +1 -1
- package/dist/tools/image-generate.d.ts +52 -9
- package/dist/tools/image-generate.d.ts.map +1 -1
- package/dist/tools/image-generate.js +102 -28
- package/dist/tools/image-generate.js.map +1 -1
- package/dist/tools/index.d.ts +2 -2
- package/dist/tools/vector-search.d.ts.map +1 -1
- package/dist/tools/vector-search.js +1 -1
- package/dist/tools/vector-search.js.map +1 -1
- package/dist/tools/web-search.d.ts.map +1 -1
- package/dist/tools/web-search.js +3 -1
- package/dist/tools/web-search.js.map +1 -1
- package/dist/utils/audio-fetch.js +1 -1
- package/dist/utils/audio-fetch.js.map +1 -1
- package/dist/utils/image-fetch.js +1 -1
- package/dist/utils/image-fetch.js.map +1 -1
- package/package.json +21 -19
package/dist/llm/anthropic.js
CHANGED
|
@@ -4,10 +4,15 @@
|
|
|
4
4
|
import Anthropic from '@anthropic-ai/sdk';
|
|
5
5
|
import { BaseLLMBackend } from './base.js';
|
|
6
6
|
import { wrapSDKError } from './errors.js';
|
|
7
|
+
import { createWarnOnce, forcedToolChoiceInstruction, jsonOutputInstruction, mapClaudeStopReason, resolveClaudeSampling, supportsForcedToolChoice, supportsNativeStructuredOutput, } from './claude-models.js';
|
|
8
|
+
import { toClaudeStrictJsonSchema } from './claude-json-schema.js';
|
|
7
9
|
import { getLogger } from '../logger.js';
|
|
10
|
+
const JSON_RESPONSE_TOOL = '__json_response';
|
|
8
11
|
export class AnthropicBackend extends BaseLLMBackend {
|
|
12
|
+
static DEFAULT_MODEL = 'claude-sonnet-5-5';
|
|
9
13
|
provider = 'anthropic';
|
|
10
14
|
client;
|
|
15
|
+
warnOnce = createWarnOnce();
|
|
11
16
|
constructor(config) {
|
|
12
17
|
super();
|
|
13
18
|
this.client = new Anthropic({
|
|
@@ -15,12 +20,13 @@ export class AnthropicBackend extends BaseLLMBackend {
|
|
|
15
20
|
});
|
|
16
21
|
}
|
|
17
22
|
async chat(request) {
|
|
23
|
+
const model = this.resolveModel(request.model);
|
|
18
24
|
const ctx = {
|
|
19
25
|
provider: this.provider,
|
|
20
|
-
model
|
|
26
|
+
model,
|
|
21
27
|
};
|
|
22
28
|
const { system, messages } = this.convertMessages(request.messages);
|
|
23
|
-
const { tools, toolChoice, systemSuffix } = this.prepareJsonMode(request);
|
|
29
|
+
const { tools, toolChoice, systemSuffix, outputConfig } = this.prepareJsonMode(request, model);
|
|
24
30
|
const allTools = [
|
|
25
31
|
...(request.tools?.map((t) => ({
|
|
26
32
|
name: t.name,
|
|
@@ -32,15 +38,15 @@ export class AnthropicBackend extends BaseLLMBackend {
|
|
|
32
38
|
let response;
|
|
33
39
|
try {
|
|
34
40
|
const params = {
|
|
35
|
-
model
|
|
41
|
+
model,
|
|
36
42
|
system: this.buildSystemPrompt(system, systemSuffix),
|
|
37
43
|
messages,
|
|
38
44
|
tools: allTools.length > 0 ? allTools : undefined,
|
|
39
45
|
tool_choice: toolChoice,
|
|
40
46
|
max_tokens: request.maxTokens ?? 4096,
|
|
41
|
-
|
|
42
|
-
top_p: request.topP,
|
|
47
|
+
...this.buildSamplingParams(model, request),
|
|
43
48
|
stop_sequences: request.stop,
|
|
49
|
+
...(outputConfig && { output_config: outputConfig }),
|
|
44
50
|
};
|
|
45
51
|
response = request.signal
|
|
46
52
|
? await this.client.messages.create(params, { signal: request.signal })
|
|
@@ -57,7 +63,7 @@ export class AnthropicBackend extends BaseLLMBackend {
|
|
|
57
63
|
content += block.text;
|
|
58
64
|
}
|
|
59
65
|
else if (block.type === 'tool_use') {
|
|
60
|
-
if (block.name ===
|
|
66
|
+
if (block.name === JSON_RESPONSE_TOOL) {
|
|
61
67
|
jsonSchemaResponse = block.input;
|
|
62
68
|
}
|
|
63
69
|
else {
|
|
@@ -78,7 +84,7 @@ export class AnthropicBackend extends BaseLLMBackend {
|
|
|
78
84
|
toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
|
|
79
85
|
finishReason: jsonSchemaResponse && toolCalls.length === 0
|
|
80
86
|
? 'stop'
|
|
81
|
-
:
|
|
87
|
+
: mapClaudeStopReason(response.stop_reason),
|
|
82
88
|
usage: {
|
|
83
89
|
inputTokens: response.usage.input_tokens,
|
|
84
90
|
outputTokens: response.usage.output_tokens,
|
|
@@ -87,12 +93,13 @@ export class AnthropicBackend extends BaseLLMBackend {
|
|
|
87
93
|
};
|
|
88
94
|
}
|
|
89
95
|
async *chatStream(request) {
|
|
96
|
+
const model = this.resolveModel(request.model);
|
|
90
97
|
const ctx = {
|
|
91
98
|
provider: this.provider,
|
|
92
|
-
model
|
|
99
|
+
model,
|
|
93
100
|
};
|
|
94
101
|
const { system, messages } = this.convertMessages(request.messages);
|
|
95
|
-
const { tools, toolChoice, systemSuffix } = this.prepareJsonMode(request);
|
|
102
|
+
const { tools, toolChoice, systemSuffix, outputConfig } = this.prepareJsonMode(request, model);
|
|
96
103
|
const allTools = [
|
|
97
104
|
...(request.tools?.map((t) => ({
|
|
98
105
|
name: t.name,
|
|
@@ -104,15 +111,15 @@ export class AnthropicBackend extends BaseLLMBackend {
|
|
|
104
111
|
let stream;
|
|
105
112
|
try {
|
|
106
113
|
const params = {
|
|
107
|
-
model
|
|
114
|
+
model,
|
|
108
115
|
system: this.buildSystemPrompt(system, systemSuffix),
|
|
109
116
|
messages,
|
|
110
117
|
tools: allTools.length > 0 ? allTools : undefined,
|
|
111
118
|
tool_choice: toolChoice,
|
|
112
119
|
max_tokens: request.maxTokens ?? 4096,
|
|
113
|
-
|
|
114
|
-
top_p: request.topP,
|
|
120
|
+
...this.buildSamplingParams(model, request),
|
|
115
121
|
stop_sequences: request.stop,
|
|
122
|
+
...(outputConfig && { output_config: outputConfig }),
|
|
116
123
|
};
|
|
117
124
|
stream = request.signal
|
|
118
125
|
? this.client.messages.stream(params, { signal: request.signal })
|
|
@@ -162,7 +169,7 @@ export class AnthropicBackend extends BaseLLMBackend {
|
|
|
162
169
|
else if (event.type === 'content_block_stop') {
|
|
163
170
|
if (currentToolCall) {
|
|
164
171
|
currentToolCall.arguments = this.parseToolInput(inputJson, currentToolName);
|
|
165
|
-
if (currentToolName ===
|
|
172
|
+
if (currentToolName === JSON_RESPONSE_TOOL) {
|
|
166
173
|
jsonSchemaContent = JSON.stringify(currentToolCall.arguments);
|
|
167
174
|
}
|
|
168
175
|
else {
|
|
@@ -196,7 +203,7 @@ export class AnthropicBackend extends BaseLLMBackend {
|
|
|
196
203
|
? 'tool_calls'
|
|
197
204
|
: jsonSchemaContent
|
|
198
205
|
? 'stop'
|
|
199
|
-
:
|
|
206
|
+
: mapClaudeStopReason(streamStopReason),
|
|
200
207
|
usage: {
|
|
201
208
|
inputTokens,
|
|
202
209
|
outputTokens,
|
|
@@ -331,35 +338,46 @@ export class AnthropicBackend extends BaseLLMBackend {
|
|
|
331
338
|
.map((part) => part.text)
|
|
332
339
|
.join(' ');
|
|
333
340
|
}
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
341
|
+
resolveModel(model) {
|
|
342
|
+
const trimmed = model.trim();
|
|
343
|
+
return trimmed.length > 0 ? trimmed : AnthropicBackend.DEFAULT_MODEL;
|
|
344
|
+
}
|
|
345
|
+
buildSamplingParams(model, request) {
|
|
346
|
+
const { temperature, topP } = resolveClaudeSampling(model, {
|
|
347
|
+
temperature: request.temperature,
|
|
348
|
+
topP: request.topP,
|
|
349
|
+
});
|
|
350
|
+
return {
|
|
351
|
+
...(temperature !== undefined && { temperature }),
|
|
352
|
+
...(topP !== undefined && { top_p: topP }),
|
|
353
|
+
};
|
|
345
354
|
}
|
|
346
|
-
prepareJsonMode(request) {
|
|
355
|
+
prepareJsonMode(request, model) {
|
|
347
356
|
const format = request.responseFormat;
|
|
348
|
-
if (!format || format.type === 'text') {
|
|
357
|
+
if (!format || format.type === 'text' || format.type === 'json_object') {
|
|
358
|
+
const { toolChoice, instruction } = this.convertToolChoice(request.toolChoice, model);
|
|
359
|
+
const jsonInstruction = format?.type === 'json_object' ? jsonOutputInstruction() : '';
|
|
349
360
|
return {
|
|
350
361
|
tools: [],
|
|
351
|
-
toolChoice
|
|
352
|
-
systemSuffix: '',
|
|
362
|
+
toolChoice,
|
|
363
|
+
systemSuffix: [instruction, jsonInstruction].filter((part) => part.length > 0).join('\n\n'),
|
|
353
364
|
};
|
|
354
365
|
}
|
|
355
|
-
|
|
366
|
+
const { jsonSchema } = format;
|
|
367
|
+
if (supportsNativeStructuredOutput(model)) {
|
|
368
|
+
const { toolChoice, instruction } = this.convertToolChoice(request.toolChoice, model);
|
|
369
|
+
const schema = toClaudeStrictJsonSchema(jsonSchema.schema);
|
|
370
|
+
if (jsonSchema.description && typeof schema.description !== 'string') {
|
|
371
|
+
schema.description = jsonSchema.description;
|
|
372
|
+
}
|
|
356
373
|
return {
|
|
357
374
|
tools: [],
|
|
358
|
-
toolChoice
|
|
359
|
-
systemSuffix:
|
|
375
|
+
toolChoice,
|
|
376
|
+
systemSuffix: instruction,
|
|
377
|
+
outputConfig: { format: { type: 'json_schema', schema } },
|
|
360
378
|
};
|
|
361
379
|
}
|
|
362
|
-
const schema =
|
|
380
|
+
const schema = jsonSchema.schema;
|
|
363
381
|
const inputSchema = {
|
|
364
382
|
...schema,
|
|
365
383
|
type: 'object',
|
|
@@ -367,33 +385,38 @@ export class AnthropicBackend extends BaseLLMBackend {
|
|
|
367
385
|
required: schema.required,
|
|
368
386
|
};
|
|
369
387
|
const jsonSchemaTool = {
|
|
370
|
-
name:
|
|
371
|
-
description:
|
|
388
|
+
name: JSON_RESPONSE_TOOL,
|
|
389
|
+
description: jsonSchema.description ?? 'Respond with structured JSON data',
|
|
372
390
|
input_schema: inputSchema,
|
|
373
391
|
};
|
|
374
392
|
return {
|
|
375
393
|
tools: [jsonSchemaTool],
|
|
376
|
-
toolChoice: { type: 'tool', name:
|
|
394
|
+
toolChoice: { type: 'tool', name: JSON_RESPONSE_TOOL },
|
|
377
395
|
systemSuffix: '',
|
|
378
396
|
};
|
|
379
397
|
}
|
|
380
|
-
|
|
398
|
+
/**
|
|
399
|
+
* Map a provider-neutral tool choice to Anthropic's `tool_choice`. Models that
|
|
400
|
+
* reject forced tool use (Claude Opus 5.5, Sonnet 5.5, Fable 5.1, Mythos 5.1 and
|
|
401
|
+
* later) get `auto` plus a system-prompt instruction naming the required tool,
|
|
402
|
+
* and a one-time warning is logged per model and choice kind.
|
|
403
|
+
*/
|
|
404
|
+
convertToolChoice(choice, model) {
|
|
381
405
|
if (!choice)
|
|
382
|
-
return undefined;
|
|
383
|
-
if (
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
406
|
+
return { toolChoice: undefined, instruction: '' };
|
|
407
|
+
if (choice === 'auto')
|
|
408
|
+
return { toolChoice: { type: 'auto' }, instruction: '' };
|
|
409
|
+
if (choice === 'none')
|
|
410
|
+
return { toolChoice: { type: 'none' }, instruction: '' };
|
|
411
|
+
const toolName = choice === 'required' ? undefined : choice.function.name;
|
|
412
|
+
if (supportsForcedToolChoice(model)) {
|
|
413
|
+
return {
|
|
414
|
+
toolChoice: toolName ? { type: 'tool', name: toolName } : { type: 'any' },
|
|
415
|
+
instruction: '',
|
|
416
|
+
};
|
|
392
417
|
}
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
name: choice.function.name,
|
|
396
|
-
};
|
|
418
|
+
this.warnOnce(`forced-tool-choice:${model}:${toolName ? 'tool' : 'any'}`, `${model} does not support forced tool use; falling back to tool_choice "auto" with a system-prompt instruction`, { provider: this.provider, model, requested: toolName ?? 'required' });
|
|
419
|
+
return { toolChoice: { type: 'auto' }, instruction: forcedToolChoiceInstruction(toolName) };
|
|
397
420
|
}
|
|
398
421
|
wrapAnthropicError(error, ctx) {
|
|
399
422
|
return wrapSDKError(error, ctx);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/llm/anthropic.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/llm/anthropic.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAW1C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAiB,YAAY,EAAwB,MAAM,UAAU,CAAC;AAC7E,OAAO,EACL,cAAc,EACd,2BAA2B,EAC3B,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAMtC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AAS7C,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IAClD,MAAM,CAAU,aAAa,GAAG,mBAAmB,CAAC;IAE3C,QAAQ,GAAG,WAAoB,CAAC;IACjC,MAAM,CAAY;IACT,QAAQ,GAAG,cAAc,EAAE,CAAC;IAE7C,YAAY,MAAuB;QACjC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC;YAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAoB;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAoB;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK;SACN,CAAC;QAEF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE/F,MAAM,QAAQ,GAAG;YACf,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,YAAY,EAAE,CAAC,CAAC,UAAgC;aACjD,CAAC,CAAC,IAAI,EAAE,CAAC;YACV,GAAG,KAAK;SACT,CAAC;QAEF,IAAI,QAA2B,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG;gBACb,KAAK;gBACL,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC;gBACpD,QAAQ;gBACR,KAAK,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBACjD,WAAW,EAAE,UAAU;gBACvB,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;gBACrC,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC;gBAC3C,cAAc,EAAE,OAAO,CAAC,IAAI;gBAC5B,GAAG,CAAC,YAAY,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;aACrD,CAAC;YAEF,QAAQ,GAAG,OAAO,CAAC,MAAM;gBACvB,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;gBACvE,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,kBAAkB,GAAmC,IAAI,CAAC;QAE9D,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1B,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC;YACxB,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACrC,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;oBACtC,kBAAkB,GAAG,KAAK,CAAC,KAAgC,CAAC;gBAC9D,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,IAAI,CAAC;wBACb,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,SAAS,EAAE,KAAK,CAAC,KAAgC;qBAClD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,kBAAkB,EAAE,CAAC;YACvB,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,OAAO;YACP,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACvD,YAAY,EACV,kBAAkB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;gBAC1C,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC/C,KAAK,EAAE;gBACL,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY;gBACxC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;gBAC1C,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa;aACxE;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,CAAC,UAAU,CAAC,OAAoB;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAoB;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK;SACN,CAAC;QAEF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE/F,MAAM,QAAQ,GAAG;YACf,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,YAAY,EAAE,CAAC,CAAC,UAAgC;aACjD,CAAC,CAAC,IAAI,EAAE,CAAC;YACV,GAAG,KAAK;SACT,CAAC;QAEF,IAAI,MAAsD,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG;gBACb,KAAK;gBACL,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC;gBACpD,QAAQ;gBACR,KAAK,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBACjD,WAAW,EAAE,UAAU;gBACvB,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;gBACrC,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC;gBAC3C,cAAc,EAAE,OAAO,CAAC,IAAI;gBAC5B,GAAG,CAAC,YAAY,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;aACrD,CAAC;YAEF,MAAM,GAAG,OAAO,CAAC,MAAM;gBACrB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,IAAI,eAAe,GAA6B,IAAI,CAAC;QACrD,IAAI,eAAe,GAAG,EAAE,CAAC;QACzB,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,iBAAiB,GAAG,EAAE,CAAC;QAC3B,IAAI,gBAAgB,GAAkB,IAAI,CAAC;QAE3C,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACjC,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;oBACnC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;gBACjD,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;oBAChD,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC;oBAClC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBAC9B,eAAe,GAAG;4BAChB,EAAE,EAAE,KAAK,CAAC,EAAE;4BACZ,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,SAAS,EAAE,EAAE;yBACd,CAAC;wBACF,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC;wBAC7B,SAAS,GAAG,EAAE,CAAC;oBACjB,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;oBAChD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;oBAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;wBAChC,MAAM;4BACJ,EAAE;4BACF,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE;yBAC/B,CAAC;oBACJ,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;wBAC7C,SAAS,IAAI,KAAK,CAAC,YAAY,CAAC;oBAClC,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;oBAC/C,IAAI,eAAe,EAAE,CAAC;wBACpB,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;wBAE5E,IAAI,eAAe,KAAK,kBAAkB,EAAE,CAAC;4BAC3C,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;wBAChE,CAAC;6BAAM,CAAC;4BACN,SAAS,CAAC,IAAI,CAAC,eAA2B,CAAC,CAAC;wBAC9C,CAAC;wBACD,eAAe,GAAG,IAAI,CAAC;wBACvB,eAAe,GAAG,EAAE,CAAC;oBACvB,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;oBAC1C,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC;oBACzC,MAAM,UAAU,GAAI,KAAqD,CAAC,KAAK;wBAC7E,EAAE,WAAW,CAAC;oBAChB,IAAI,UAAU,EAAE,CAAC;wBACf,gBAAgB,GAAG,UAAU,CAAC;oBAChC,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBACzC,IAAI,iBAAiB,EAAE,CAAC;wBACtB,MAAM;4BACJ,EAAE;4BACF,KAAK,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;yBACtC,CAAC;oBACJ,CAAC;oBAED,MAAM;wBACJ,EAAE;wBACF,KAAK,EAAE;4BACL,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;yBACxD;wBACD,YAAY,EACV,SAAS,CAAC,MAAM,GAAG,CAAC;4BAClB,CAAC,CAAC,YAAY;4BACd,CAAC,CAAC,iBAAiB;gCACjB,CAAC,CAAC,MAAM;gCACR,CAAC,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;wBAC7C,KAAK,EAAE;4BACL,WAAW;4BACX,YAAY;4BACZ,WAAW,EAAE,WAAW,GAAG,YAAY;yBACxC;qBACF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,SAAiB,EAAE,QAAgB;QACxD,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YACtB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAY,CAAC;YAChD,OAAO,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC5E,CAAC,CAAE,MAAkC;gBACrC,CAAC,CAAC,EAAE,CAAC;QACT,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,SAAS,EAAE,CAAC,IAAI,CAAC,yDAAyD,EAAE;gBAC1E,QAAQ;gBACR,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBAClC,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;aAClD,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,MAAc,EAAE,MAAc;QACtD,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjF,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACpD,CAAC;IAEO,eAAe,CAAC,QAAmB;QAIzC,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,MAAM,iBAAiB,GAA6B,EAAE,CAAC;QAEvD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;gBACf,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBAC5C,IAAI,IAAI;wBAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACjC,MAAM;gBACR,CAAC;gBACD,KAAK,MAAM;oBACT,iBAAiB,CAAC,IAAI,CAAC;wBACrB,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;qBACxC,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,WAAW;oBACd,iBAAiB,CAAC,IAAI,CAAC;wBACrB,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;qBACzC,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,MAAM,UAAU,GAAmC;wBACjD,IAAI,EAAE,aAAa;wBACnB,WAAW,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE;wBAC/B,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;qBACxC,CAAC;oBACF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACjE,IACE,QAAQ,EAAE,IAAI,KAAK,MAAM;wBACzB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;wBAC/B,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;wBAC3B,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,EAC/D,CAAC;wBACD,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACpC,CAAC;yBAAM,CAAC;wBACN,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBAClE,CAAC;oBACD,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC3E,CAAC;IAEO,cAAc,CAAC,OAAuB;QAC5C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEO,uBAAuB,CAAC,OAAgB;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,SAAS,GAAI,OAAgD,CAAC,SAAS,CAAC;QAC9E,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,MAAM,GACV,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAE7F,MAAM,CAAC,IAAI,CACT,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACxB,IAAI,EAAE,UAAmB;YACzB,EAAE,EAAE,EAAE,CAAC,EAAE;YACT,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,KAAK,EAAE,EAAE,CAAC,SAAS;SACpB,CAAC,CAAC,CACJ,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,kBAAkB,CAAC,IAAiB;QAC1C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,MAAM;gBACT,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3C,KAAK,WAAW;gBACd,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,MAAM,EAAE;wBACN,IAAI,EAAE,KAAK;wBACX,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG;qBACxB;iBACF,CAAC;YACJ,KAAK,cAAc;gBACjB,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU;wBACxC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI;qBAC7B;iBACF,CAAC;QACN,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,OAAuB;QAC5C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,IAAI,EAA0C,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;aAC9E,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;aACxB,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAEO,YAAY,CAAC,KAAa;QAChC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,aAAa,CAAC;IACvE,CAAC;IAEO,mBAAmB,CACzB,KAAa,EACb,OAAoB;QAEpB,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,qBAAqB,CAAC,KAAK,EAAE;YACzD,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;QACH,OAAO;YACL,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC;YACjD,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAC3C,CAAC;IACJ,CAAC;IAEO,eAAe,CACrB,OAAoB,EACpB,KAAa;QAOb,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;QAEtC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACvE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACtF,MAAM,eAAe,GAAG,MAAM,EAAE,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,OAAO;gBACL,KAAK,EAAE,EAAE;gBACT,UAAU;gBACV,YAAY,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;aAC5F,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;QAE9B,IAAI,8BAA8B,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACtF,MAAM,MAAM,GAAG,wBAAwB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC3D,IAAI,UAAU,CAAC,WAAW,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACrE,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;YAC9C,CAAC;YACD,OAAO;gBACL,KAAK,EAAE,EAAE;gBACT,UAAU;gBACV,YAAY,EAAE,WAAW;gBACzB,YAAY,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE;aAC1D,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QACjC,MAAM,WAAW,GAAuB;YACtC,GAAG,MAAM;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAA4B;YAChE,QAAQ,EAAE,MAAM,CAAC,QAAgC;SAClD,CAAC;QAEF,MAAM,cAAc,GAAG;YACrB,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,UAAU,CAAC,WAAW,IAAI,mCAAmC;YAC1E,YAAY,EAAE,WAAW;SAC1B,CAAC;QAEF,OAAO;YACL,KAAK,EAAE,CAAC,cAAc,CAAC;YACvB,UAAU,EAAE,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,EAAE;YAC/D,YAAY,EAAE,EAAE;SACjB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,iBAAiB,CACvB,MAA8B,EAC9B,KAAa;QAEb,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;QAE/D,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;QAChF,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;QAEhF,MAAM,QAAQ,GAAG,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC1E,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO;gBACL,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;gBACzE,WAAW,EAAE,EAAE;aAChB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,CACX,sBAAsB,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,EAC1D,GAAG,KAAK,wGAAwG,EAChH,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,IAAI,UAAU,EAAE,CACtE,CAAC;QACF,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,2BAA2B,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC9F,CAAC;IAEO,kBAAkB,CAAC,KAAc,EAAE,GAAoB;QAC7D,OAAO,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC"}
|
package/dist/llm/bedrock.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export declare class BedrockBackend extends BaseLLMBackend {
|
|
|
15
15
|
readonly provider: "bedrock";
|
|
16
16
|
private config;
|
|
17
17
|
private clientPromise;
|
|
18
|
+
private readonly warnOnce;
|
|
18
19
|
constructor(config: BedrockConfig);
|
|
19
20
|
private getClient;
|
|
20
21
|
chat(request: ChatRequest): Promise<ChatResponse>;
|
|
@@ -24,10 +25,22 @@ export declare class BedrockBackend extends BaseLLMBackend {
|
|
|
24
25
|
private convertContentToBlocks;
|
|
25
26
|
private convertContentPart;
|
|
26
27
|
private getTextContent;
|
|
28
|
+
private buildInferenceConfig;
|
|
27
29
|
private convertTool;
|
|
30
|
+
/**
|
|
31
|
+
* Map a provider-neutral tool choice to Converse `toolChoice`. Claude models that
|
|
32
|
+
* reject forced tool use (Opus 5.5, Sonnet 5.5, Fable 5.1, Mythos 5.1 and later)
|
|
33
|
+
* get `auto` plus a system-prompt instruction naming the required tool, and a
|
|
34
|
+
* one-time warning is logged per model and choice kind.
|
|
35
|
+
*/
|
|
28
36
|
private convertToolChoice;
|
|
37
|
+
/**
|
|
38
|
+
* JSON output for Converse: `outputConfig.textFormat` where Bedrock enforces the
|
|
39
|
+
* schema (Claude 4.5 – 4.6), otherwise a system-prompt instruction.
|
|
40
|
+
*/
|
|
41
|
+
private prepareResponseFormat;
|
|
42
|
+
private buildConverseInput;
|
|
29
43
|
private parseResponse;
|
|
30
|
-
private mapStopReason;
|
|
31
44
|
private tryParseJson;
|
|
32
45
|
private wrapBedrockError;
|
|
33
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrock.d.ts","sourceRoot":"","sources":["../../src/llm/bedrock.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EAOhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"bedrock.d.ts","sourceRoot":"","sources":["../../src/llm/bedrock.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EAOhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AA8JxC,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,cAAe,SAAQ,cAAc;IAChD,QAAQ,CAAC,QAAQ,EAAG,SAAS,CAAU;IACvC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,aAAa,CAAkD;IACvE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;gBAEjC,MAAM,EAAE,aAAa;YAKnB,SAAS;IAgCjB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAyBhD,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,eAAe,CAAC;IAuCxE,OAAO,CAAE,kBAAkB;YAsEb,eAAe;YA0Ef,sBAAsB;YAYtB,kBAAkB;IAiChC,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,WAAW;IAYnB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAuBzB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;YA8Bf,kBAAkB;IAuChC,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,gBAAgB;CA0BzB"}
|
package/dist/llm/bedrock.js
CHANGED
|
@@ -6,12 +6,15 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { BaseLLMBackend } from './base.js';
|
|
8
8
|
import { createLLMError, llmUnavailable, llmConfigError } from './errors.js';
|
|
9
|
+
import { createWarnOnce, forcedToolChoiceInstruction, jsonOutputInstruction, mapClaudeStopReason, resolveClaudeSampling, supportsBedrockStructuredOutput, supportsForcedToolChoice, } from './claude-models.js';
|
|
10
|
+
import { toClaudeStrictJsonSchema } from './claude-json-schema.js';
|
|
9
11
|
import { fetchImageAsBase64 } from '../utils/image-fetch.js';
|
|
10
12
|
import { getLogger } from '../logger.js';
|
|
11
13
|
export class BedrockBackend extends BaseLLMBackend {
|
|
12
14
|
provider = 'bedrock';
|
|
13
15
|
config;
|
|
14
16
|
clientPromise = null;
|
|
17
|
+
warnOnce = createWarnOnce();
|
|
15
18
|
constructor(config) {
|
|
16
19
|
super();
|
|
17
20
|
this.config = config;
|
|
@@ -51,35 +54,7 @@ export class BedrockBackend extends BaseLLMBackend {
|
|
|
51
54
|
const client = await this.getClient();
|
|
52
55
|
const moduleName = '@aws-sdk/client-bedrock-runtime';
|
|
53
56
|
const { ConverseCommand } = await import(/* webpackIgnore: true */ moduleName);
|
|
54
|
-
const
|
|
55
|
-
const input = {
|
|
56
|
-
modelId: request.model,
|
|
57
|
-
messages,
|
|
58
|
-
};
|
|
59
|
-
if (system) {
|
|
60
|
-
input.system = [{ text: system }];
|
|
61
|
-
}
|
|
62
|
-
if (request.tools && request.tools.length > 0) {
|
|
63
|
-
input.toolConfig = {
|
|
64
|
-
tools: request.tools.map((t) => this.convertTool(t)),
|
|
65
|
-
};
|
|
66
|
-
const toolChoice = this.convertToolChoice(request.toolChoice);
|
|
67
|
-
if (toolChoice) {
|
|
68
|
-
input.toolConfig.toolChoice = toolChoice;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
const inferenceConfig = {};
|
|
72
|
-
if (request.maxTokens !== undefined)
|
|
73
|
-
inferenceConfig.maxTokens = request.maxTokens;
|
|
74
|
-
if (request.temperature !== undefined)
|
|
75
|
-
inferenceConfig.temperature = request.temperature;
|
|
76
|
-
if (request.topP !== undefined)
|
|
77
|
-
inferenceConfig.topP = request.topP;
|
|
78
|
-
if (request.stop)
|
|
79
|
-
inferenceConfig.stopSequences = request.stop;
|
|
80
|
-
if (Object.keys(inferenceConfig).length > 0) {
|
|
81
|
-
input.inferenceConfig = inferenceConfig;
|
|
82
|
-
}
|
|
57
|
+
const input = await this.buildConverseInput(request);
|
|
83
58
|
let response;
|
|
84
59
|
try {
|
|
85
60
|
const command = new ConverseCommand(input);
|
|
@@ -100,35 +75,7 @@ export class BedrockBackend extends BaseLLMBackend {
|
|
|
100
75
|
const client = await this.getClient();
|
|
101
76
|
const moduleName = '@aws-sdk/client-bedrock-runtime';
|
|
102
77
|
const { ConverseStreamCommand } = await import(/* webpackIgnore: true */ moduleName);
|
|
103
|
-
const
|
|
104
|
-
const input = {
|
|
105
|
-
modelId: request.model,
|
|
106
|
-
messages,
|
|
107
|
-
};
|
|
108
|
-
if (system) {
|
|
109
|
-
input.system = [{ text: system }];
|
|
110
|
-
}
|
|
111
|
-
if (request.tools && request.tools.length > 0) {
|
|
112
|
-
input.toolConfig = {
|
|
113
|
-
tools: request.tools.map((t) => this.convertTool(t)),
|
|
114
|
-
};
|
|
115
|
-
const toolChoice = this.convertToolChoice(request.toolChoice);
|
|
116
|
-
if (toolChoice) {
|
|
117
|
-
input.toolConfig.toolChoice = toolChoice;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
const inferenceConfig = {};
|
|
121
|
-
if (request.maxTokens !== undefined)
|
|
122
|
-
inferenceConfig.maxTokens = request.maxTokens;
|
|
123
|
-
if (request.temperature !== undefined)
|
|
124
|
-
inferenceConfig.temperature = request.temperature;
|
|
125
|
-
if (request.topP !== undefined)
|
|
126
|
-
inferenceConfig.topP = request.topP;
|
|
127
|
-
if (request.stop)
|
|
128
|
-
inferenceConfig.stopSequences = request.stop;
|
|
129
|
-
if (Object.keys(inferenceConfig).length > 0) {
|
|
130
|
-
input.inferenceConfig = inferenceConfig;
|
|
131
|
-
}
|
|
78
|
+
const input = await this.buildConverseInput(request);
|
|
132
79
|
const command = new ConverseStreamCommand(input);
|
|
133
80
|
let response;
|
|
134
81
|
try {
|
|
@@ -191,7 +138,7 @@ export class BedrockBackend extends BaseLLMBackend {
|
|
|
191
138
|
}
|
|
192
139
|
}
|
|
193
140
|
if (event.messageStop) {
|
|
194
|
-
const finishReason =
|
|
141
|
+
const finishReason = mapClaudeStopReason(event.messageStop.stopReason);
|
|
195
142
|
yield {
|
|
196
143
|
id,
|
|
197
144
|
delta: {
|
|
@@ -315,6 +262,22 @@ export class BedrockBackend extends BaseLLMBackend {
|
|
|
315
262
|
.map((part) => part.text)
|
|
316
263
|
.join(' ');
|
|
317
264
|
}
|
|
265
|
+
buildInferenceConfig(request) {
|
|
266
|
+
const inferenceConfig = {};
|
|
267
|
+
if (request.maxTokens !== undefined)
|
|
268
|
+
inferenceConfig.maxTokens = request.maxTokens;
|
|
269
|
+
const { temperature, topP } = resolveClaudeSampling(request.model, {
|
|
270
|
+
temperature: request.temperature,
|
|
271
|
+
topP: request.topP,
|
|
272
|
+
});
|
|
273
|
+
if (temperature !== undefined)
|
|
274
|
+
inferenceConfig.temperature = temperature;
|
|
275
|
+
if (topP !== undefined)
|
|
276
|
+
inferenceConfig.topP = topP;
|
|
277
|
+
if (request.stop)
|
|
278
|
+
inferenceConfig.stopSequences = request.stop;
|
|
279
|
+
return Object.keys(inferenceConfig).length > 0 ? inferenceConfig : undefined;
|
|
280
|
+
}
|
|
318
281
|
convertTool(tool) {
|
|
319
282
|
return {
|
|
320
283
|
toolSpec: {
|
|
@@ -326,20 +289,88 @@ export class BedrockBackend extends BaseLLMBackend {
|
|
|
326
289
|
},
|
|
327
290
|
};
|
|
328
291
|
}
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
292
|
+
/**
|
|
293
|
+
* Map a provider-neutral tool choice to Converse `toolChoice`. Claude models that
|
|
294
|
+
* reject forced tool use (Opus 5.5, Sonnet 5.5, Fable 5.1, Mythos 5.1 and later)
|
|
295
|
+
* get `auto` plus a system-prompt instruction naming the required tool, and a
|
|
296
|
+
* one-time warning is logged per model and choice kind.
|
|
297
|
+
*/
|
|
298
|
+
convertToolChoice(choice, model) {
|
|
299
|
+
if (!choice || choice === 'none')
|
|
300
|
+
return { toolChoice: undefined, instruction: '' };
|
|
301
|
+
if (choice === 'auto')
|
|
302
|
+
return { toolChoice: { auto: {} }, instruction: '' };
|
|
303
|
+
const toolName = choice === 'required' ? undefined : choice.function.name;
|
|
304
|
+
if (supportsForcedToolChoice(model)) {
|
|
305
|
+
return {
|
|
306
|
+
toolChoice: toolName ? { tool: { name: toolName } } : { any: {} },
|
|
307
|
+
instruction: '',
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
this.warnOnce(`forced-tool-choice:${model}:${toolName ? 'tool' : 'any'}`, `${model} does not support forced tool use; falling back to toolChoice "auto" with a system-prompt instruction`, { provider: this.provider, model, requested: toolName ?? 'required' });
|
|
311
|
+
return { toolChoice: { auto: {} }, instruction: forcedToolChoiceInstruction(toolName) };
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* JSON output for Converse: `outputConfig.textFormat` where Bedrock enforces the
|
|
315
|
+
* schema (Claude 4.5 – 4.6), otherwise a system-prompt instruction.
|
|
316
|
+
*/
|
|
317
|
+
prepareResponseFormat(request) {
|
|
318
|
+
const format = request.responseFormat;
|
|
319
|
+
if (!format || format.type === 'text')
|
|
320
|
+
return { instruction: '' };
|
|
321
|
+
if (format.type === 'json_object')
|
|
322
|
+
return { instruction: jsonOutputInstruction() };
|
|
323
|
+
const { jsonSchema } = format;
|
|
324
|
+
if (!supportsBedrockStructuredOutput(request.model)) {
|
|
325
|
+
return { instruction: jsonOutputInstruction(jsonSchema.schema) };
|
|
326
|
+
}
|
|
327
|
+
return {
|
|
328
|
+
instruction: '',
|
|
329
|
+
outputConfig: {
|
|
330
|
+
textFormat: {
|
|
331
|
+
type: 'json_schema',
|
|
332
|
+
structure: {
|
|
333
|
+
jsonSchema: {
|
|
334
|
+
schema: JSON.stringify(toClaudeStrictJsonSchema(jsonSchema.schema)),
|
|
335
|
+
name: jsonSchema.name,
|
|
336
|
+
...(jsonSchema.description && { description: jsonSchema.description }),
|
|
337
|
+
},
|
|
338
|
+
},
|
|
339
|
+
},
|
|
340
|
+
},
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
async buildConverseInput(request) {
|
|
344
|
+
const { system, messages } = await this.convertMessages(request.messages, request.signal);
|
|
345
|
+
const input = {
|
|
346
|
+
modelId: request.model,
|
|
347
|
+
messages,
|
|
348
|
+
};
|
|
349
|
+
const hasTools = request.tools !== undefined && request.tools.length > 0;
|
|
350
|
+
const { toolChoice, instruction: toolInstruction } = hasTools
|
|
351
|
+
? this.convertToolChoice(request.toolChoice, request.model)
|
|
352
|
+
: { toolChoice: undefined, instruction: '' };
|
|
353
|
+
if (hasTools) {
|
|
354
|
+
input.toolConfig = {
|
|
355
|
+
tools: (request.tools ?? []).map((t) => this.convertTool(t)),
|
|
356
|
+
...(toolChoice && { toolChoice }),
|
|
357
|
+
};
|
|
358
|
+
}
|
|
359
|
+
const { outputConfig, instruction: formatInstruction } = this.prepareResponseFormat(request);
|
|
360
|
+
if (outputConfig) {
|
|
361
|
+
input.outputConfig = outputConfig;
|
|
362
|
+
}
|
|
363
|
+
const systemText = [system ?? '', toolInstruction, formatInstruction]
|
|
364
|
+
.filter((part) => part.length > 0)
|
|
365
|
+
.join('\n\n');
|
|
366
|
+
if (systemText) {
|
|
367
|
+
input.system = [{ text: systemText }];
|
|
341
368
|
}
|
|
342
|
-
|
|
369
|
+
const inferenceConfig = this.buildInferenceConfig(request);
|
|
370
|
+
if (inferenceConfig) {
|
|
371
|
+
input.inferenceConfig = inferenceConfig;
|
|
372
|
+
}
|
|
373
|
+
return input;
|
|
343
374
|
}
|
|
344
375
|
parseResponse(response) {
|
|
345
376
|
const message = response.output?.message;
|
|
@@ -363,7 +394,7 @@ export class BedrockBackend extends BaseLLMBackend {
|
|
|
363
394
|
id: this.generateId(),
|
|
364
395
|
content,
|
|
365
396
|
toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
|
|
366
|
-
finishReason:
|
|
397
|
+
finishReason: mapClaudeStopReason(response.stopReason),
|
|
367
398
|
usage: {
|
|
368
399
|
inputTokens: response.usage?.inputTokens ?? 0,
|
|
369
400
|
outputTokens: response.usage?.outputTokens ?? 0,
|
|
@@ -371,18 +402,6 @@ export class BedrockBackend extends BaseLLMBackend {
|
|
|
371
402
|
},
|
|
372
403
|
};
|
|
373
404
|
}
|
|
374
|
-
mapStopReason(reason) {
|
|
375
|
-
switch (reason) {
|
|
376
|
-
case 'end_turn':
|
|
377
|
-
return 'stop';
|
|
378
|
-
case 'tool_use':
|
|
379
|
-
return 'tool_calls';
|
|
380
|
-
case 'max_tokens':
|
|
381
|
-
return 'length';
|
|
382
|
-
default:
|
|
383
|
-
return 'stop';
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
405
|
tryParseJson(str) {
|
|
387
406
|
if (!str.trim()) {
|
|
388
407
|
return {};
|