@node-llm/core 1.7.0 → 1.9.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 +9 -8
- package/dist/aliases.d.ts +216 -0
- package/dist/aliases.d.ts.map +1 -1
- package/dist/aliases.js +241 -25
- package/dist/chat/Chat.d.ts +8 -4
- package/dist/chat/Chat.d.ts.map +1 -1
- package/dist/chat/Chat.js +33 -5
- package/dist/chat/ChatResponse.d.ts +28 -3
- package/dist/chat/ChatResponse.d.ts.map +1 -1
- package/dist/chat/ChatResponse.js +79 -6
- package/dist/chat/ChatStream.d.ts.map +1 -1
- package/dist/chat/ChatStream.js +13 -1
- package/dist/chat/Content.d.ts +7 -0
- package/dist/chat/Content.d.ts.map +1 -1
- package/dist/config.d.ts +28 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +58 -6
- package/dist/constants.d.ts +6 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +6 -0
- package/dist/errors/index.d.ts +20 -2
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +31 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/llm.d.ts.map +1 -1
- package/dist/llm.js +3 -2
- package/dist/models/ModelRegistry.d.ts.map +1 -1
- package/dist/models/ModelRegistry.js +4 -2
- package/dist/models/PricingRegistry.js +3 -3
- package/dist/models/models.json +16696 -0
- package/dist/providers/Provider.d.ts +5 -0
- package/dist/providers/Provider.d.ts.map +1 -1
- package/dist/providers/anthropic/AnthropicProvider.d.ts.map +1 -1
- package/dist/providers/anthropic/AnthropicProvider.js +2 -1
- package/dist/providers/anthropic/Capabilities.d.ts +1 -0
- package/dist/providers/anthropic/Capabilities.d.ts.map +1 -1
- package/dist/providers/anthropic/Capabilities.js +8 -5
- package/dist/providers/anthropic/Chat.d.ts.map +1 -1
- package/dist/providers/anthropic/Chat.js +2 -1
- package/dist/providers/anthropic/Errors.d.ts.map +1 -1
- package/dist/providers/anthropic/Errors.js +15 -1
- package/dist/providers/anthropic/Streaming.d.ts.map +1 -1
- package/dist/providers/anthropic/Streaming.js +19 -3
- package/dist/providers/bedrock/BedrockProvider.d.ts +53 -0
- package/dist/providers/bedrock/BedrockProvider.d.ts.map +1 -0
- package/dist/providers/bedrock/BedrockProvider.js +107 -0
- package/dist/providers/bedrock/Capabilities.d.ts +50 -0
- package/dist/providers/bedrock/Capabilities.d.ts.map +1 -0
- package/dist/providers/bedrock/Capabilities.js +233 -0
- package/dist/providers/bedrock/Chat.d.ts +26 -0
- package/dist/providers/bedrock/Chat.d.ts.map +1 -0
- package/dist/providers/bedrock/Chat.js +152 -0
- package/dist/providers/bedrock/Embeddings.d.ts +22 -0
- package/dist/providers/bedrock/Embeddings.d.ts.map +1 -0
- package/dist/providers/bedrock/Embeddings.js +100 -0
- package/dist/providers/bedrock/Errors.d.ts +2 -0
- package/dist/providers/bedrock/Errors.d.ts.map +1 -0
- package/dist/providers/bedrock/Errors.js +51 -0
- package/dist/providers/bedrock/Image.d.ts +33 -0
- package/dist/providers/bedrock/Image.d.ts.map +1 -0
- package/dist/providers/bedrock/Image.js +154 -0
- package/dist/providers/bedrock/Models.d.ts +34 -0
- package/dist/providers/bedrock/Models.d.ts.map +1 -0
- package/dist/providers/bedrock/Models.js +131 -0
- package/dist/providers/bedrock/Moderation.d.ts +23 -0
- package/dist/providers/bedrock/Moderation.d.ts.map +1 -0
- package/dist/providers/bedrock/Moderation.js +138 -0
- package/dist/providers/bedrock/Streaming.d.ts +21 -0
- package/dist/providers/bedrock/Streaming.d.ts.map +1 -0
- package/dist/providers/bedrock/Streaming.js +239 -0
- package/dist/providers/bedrock/config.d.ts +57 -0
- package/dist/providers/bedrock/config.d.ts.map +1 -0
- package/dist/providers/bedrock/config.js +33 -0
- package/dist/providers/bedrock/index.d.ts +8 -0
- package/dist/providers/bedrock/index.d.ts.map +1 -0
- package/dist/providers/bedrock/index.js +30 -0
- package/dist/providers/bedrock/mapper.d.ts +37 -0
- package/dist/providers/bedrock/mapper.d.ts.map +1 -0
- package/dist/providers/bedrock/mapper.js +204 -0
- package/dist/providers/bedrock/types.d.ts +179 -0
- package/dist/providers/bedrock/types.d.ts.map +1 -0
- package/dist/providers/bedrock/types.js +7 -0
- package/dist/providers/deepseek/Capabilities.d.ts +3 -2
- package/dist/providers/deepseek/Capabilities.d.ts.map +1 -1
- package/dist/providers/deepseek/Capabilities.js +19 -5
- package/dist/providers/deepseek/Chat.d.ts.map +1 -1
- package/dist/providers/deepseek/Chat.js +2 -2
- package/dist/providers/deepseek/DeepSeekProvider.d.ts.map +1 -1
- package/dist/providers/deepseek/DeepSeekProvider.js +2 -1
- package/dist/providers/deepseek/Errors.d.ts +2 -0
- package/dist/providers/deepseek/Errors.d.ts.map +1 -0
- package/dist/providers/deepseek/Errors.js +45 -0
- package/dist/providers/deepseek/Streaming.d.ts.map +1 -1
- package/dist/providers/deepseek/Streaming.js +13 -2
- package/dist/providers/gemini/Capabilities.d.ts +1 -0
- package/dist/providers/gemini/Capabilities.d.ts.map +1 -1
- package/dist/providers/gemini/Capabilities.js +9 -6
- package/dist/providers/gemini/Chat.d.ts.map +1 -1
- package/dist/providers/gemini/Chat.js +6 -23
- package/dist/providers/gemini/Errors.d.ts.map +1 -1
- package/dist/providers/gemini/Errors.js +13 -1
- package/dist/providers/gemini/GeminiProvider.d.ts.map +1 -1
- package/dist/providers/gemini/GeminiProvider.js +2 -1
- package/dist/providers/ollama/Capabilities.d.ts.map +1 -1
- package/dist/providers/ollama/Capabilities.js +4 -1
- package/dist/providers/ollama/OllamaProvider.d.ts.map +1 -1
- package/dist/providers/ollama/OllamaProvider.js +2 -2
- package/dist/providers/openai/Capabilities.d.ts +1 -0
- package/dist/providers/openai/Capabilities.d.ts.map +1 -1
- package/dist/providers/openai/Capabilities.js +14 -11
- package/dist/providers/openai/Errors.d.ts.map +1 -1
- package/dist/providers/openai/Errors.js +31 -5
- package/dist/providers/openai/OpenAIProvider.d.ts.map +1 -1
- package/dist/providers/openai/OpenAIProvider.js +2 -1
- package/dist/providers/openai/Streaming.d.ts.map +1 -1
- package/dist/providers/openai/Streaming.js +10 -0
- package/dist/providers/openrouter/OpenRouterProvider.d.ts.map +1 -1
- package/dist/providers/openrouter/OpenRouterProvider.js +2 -1
- package/dist/providers/registry.d.ts +5 -1
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +12 -3
- package/dist/utils/AwsSigV4.d.ts +51 -0
- package/dist/utils/AwsSigV4.d.ts.map +1 -0
- package/dist/utils/AwsSigV4.js +209 -0
- package/dist/utils/json.d.ts +6 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +43 -0
- package/package.json +1 -1
- package/dist/models/models.d.ts +0 -327
- package/dist/models/models.d.ts.map +0 -1
- package/dist/models/models.js +0 -11138
|
@@ -57,6 +57,8 @@ export interface ChatChunk {
|
|
|
57
57
|
tool_calls?: ToolCall[];
|
|
58
58
|
done?: boolean;
|
|
59
59
|
usage?: Usage;
|
|
60
|
+
finish_reason?: string | null;
|
|
61
|
+
metadata?: Record<string, unknown>;
|
|
60
62
|
}
|
|
61
63
|
export interface Usage {
|
|
62
64
|
input_tokens: number;
|
|
@@ -76,6 +78,8 @@ export interface ChatResponse {
|
|
|
76
78
|
reasoning?: string | null;
|
|
77
79
|
tool_calls?: ToolCall[];
|
|
78
80
|
usage?: Usage;
|
|
81
|
+
finish_reason?: string | null;
|
|
82
|
+
metadata?: Record<string, unknown>;
|
|
79
83
|
}
|
|
80
84
|
export interface ProviderCapabilities {
|
|
81
85
|
supportsVision(modelId: string): boolean;
|
|
@@ -110,6 +114,7 @@ export interface ImageRequest {
|
|
|
110
114
|
size?: string;
|
|
111
115
|
quality?: string;
|
|
112
116
|
n?: number;
|
|
117
|
+
headers?: Record<string, string>;
|
|
113
118
|
requestTimeout?: number;
|
|
114
119
|
}
|
|
115
120
|
export interface ImageResponse {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../src/providers/Provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,aAAa,CAAC;IAC7C,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IAE5C;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../src/providers/Provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnthropicProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic/AnthropicProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"AnthropicProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic/AnthropicProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOlD,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,iBAAkB,SAAQ,YAAa,YAAW,QAAQ;IAmBzD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAlBpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkB;IAEzC,YAAY;gCACO,MAAM;+BACP,MAAM;0CACK,MAAM;qCACX,MAAM;0CACD,MAAM;wCACR,MAAM;qCACT,MAAM;oCACP,MAAM;wCACF,MAAM;kCACZ,MAAM;MAChC;gBAE2B,OAAO,EAAE,wBAAwB;IAQvD,OAAO,IAAI,MAAM;IAIjB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQxC,SAAS,CAAC,YAAY,IAAI,MAAM;IAIhB,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAIjD,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAIhD,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC;IAIxD,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;CAKzC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BaseProvider } from "../BaseProvider.js";
|
|
2
|
+
import { DEFAULT_ANTHROPIC_BASE_URL } from "../../constants.js";
|
|
2
3
|
import { Capabilities } from "./Capabilities.js";
|
|
3
4
|
import { AnthropicChat } from "./Chat.js";
|
|
4
5
|
import { AnthropicStreaming } from "./Streaming.js";
|
|
@@ -24,7 +25,7 @@ export class AnthropicProvider extends BaseProvider {
|
|
|
24
25
|
constructor(options) {
|
|
25
26
|
super();
|
|
26
27
|
this.options = options;
|
|
27
|
-
this.baseUrl = options.baseUrl ??
|
|
28
|
+
this.baseUrl = options.baseUrl ?? DEFAULT_ANTHROPIC_BASE_URL;
|
|
28
29
|
this.chatHandler = new AnthropicChat(this.baseUrl, options.apiKey);
|
|
29
30
|
this.streamHandler = new AnthropicStreaming(this.baseUrl, options.apiKey);
|
|
30
31
|
this.modelsHandler = new AnthropicModels(this.baseUrl, options.apiKey);
|
|
@@ -8,5 +8,6 @@ export declare class Capabilities {
|
|
|
8
8
|
static supportsExtendedThinking(modelId: string): boolean;
|
|
9
9
|
static getCapabilities(modelId: string): string[];
|
|
10
10
|
static getPricing(modelId: string): ModelPricing | undefined;
|
|
11
|
+
private static findModel;
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=Capabilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Capabilities.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic/Capabilities.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAa,YAAY;IACvB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKvD,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKzD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAO/C,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAO9C,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOjD,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOzD,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAsBjD,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"Capabilities.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic/Capabilities.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAa,YAAY;IACvB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKvD,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKzD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAO/C,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAO9C,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOjD,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOzD,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAsBjD,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI5D,OAAO,CAAC,MAAM,CAAC,SAAS;CAGzB"}
|
|
@@ -10,32 +10,32 @@ export class Capabilities {
|
|
|
10
10
|
return val ?? 4_096;
|
|
11
11
|
}
|
|
12
12
|
static supportsVision(modelId) {
|
|
13
|
-
const model =
|
|
13
|
+
const model = this.findModel(modelId);
|
|
14
14
|
if (model?.modalities?.input?.includes("image"))
|
|
15
15
|
return true;
|
|
16
16
|
return /claude-3/.test(modelId);
|
|
17
17
|
}
|
|
18
18
|
static supportsTools(modelId) {
|
|
19
|
-
const model =
|
|
19
|
+
const model = this.findModel(modelId);
|
|
20
20
|
if (model?.capabilities?.includes("function_calling"))
|
|
21
21
|
return true;
|
|
22
22
|
return /claude-3/.test(modelId);
|
|
23
23
|
}
|
|
24
24
|
static supportsJsonMode(modelId) {
|
|
25
|
-
const model =
|
|
25
|
+
const model = this.findModel(modelId);
|
|
26
26
|
if (model?.capabilities.includes("json_mode"))
|
|
27
27
|
return true;
|
|
28
28
|
return this.supportsTools(modelId);
|
|
29
29
|
}
|
|
30
30
|
static supportsExtendedThinking(modelId) {
|
|
31
|
-
const model =
|
|
31
|
+
const model = this.findModel(modelId);
|
|
32
32
|
if (model?.capabilities.includes("reasoning"))
|
|
33
33
|
return true;
|
|
34
34
|
return /claude-3-7/.test(modelId) || /thinking/.test(modelId);
|
|
35
35
|
}
|
|
36
36
|
static getCapabilities(modelId) {
|
|
37
37
|
const caps = ["streaming"];
|
|
38
|
-
const model =
|
|
38
|
+
const model = this.findModel(modelId);
|
|
39
39
|
if (model) {
|
|
40
40
|
if (model.capabilities.includes("function_calling"))
|
|
41
41
|
caps.push("function_calling");
|
|
@@ -62,4 +62,7 @@ export class Capabilities {
|
|
|
62
62
|
static getPricing(modelId) {
|
|
63
63
|
return PricingRegistry.getPricing(modelId, "anthropic");
|
|
64
64
|
}
|
|
65
|
+
static findModel(modelId) {
|
|
66
|
+
return ModelRegistry.find(modelId, "anthropic");
|
|
67
|
+
}
|
|
65
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic/Chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic/Chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAW3E,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM;IAG3B,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;CA0J3D"}
|
|
@@ -4,6 +4,7 @@ import { ModelRegistry } from "../../models/ModelRegistry.js";
|
|
|
4
4
|
import { logger } from "../../utils/logger.js";
|
|
5
5
|
import { fetchWithTimeout } from "../../utils/fetch.js";
|
|
6
6
|
import { formatSystemPrompt, formatMessages } from "./Utils.js";
|
|
7
|
+
import { DEFAULT_MAX_TOKENS } from "../../constants.js";
|
|
7
8
|
export class AnthropicChat {
|
|
8
9
|
baseUrl;
|
|
9
10
|
apiKey;
|
|
@@ -13,7 +14,7 @@ export class AnthropicChat {
|
|
|
13
14
|
}
|
|
14
15
|
async execute(request) {
|
|
15
16
|
const model = request.model;
|
|
16
|
-
const maxTokens = request.max_tokens || Capabilities.getMaxOutputTokens(model) ||
|
|
17
|
+
const maxTokens = request.max_tokens || Capabilities.getMaxOutputTokens(model) || DEFAULT_MAX_TOKENS;
|
|
17
18
|
const systemPrompt = formatSystemPrompt(request.messages);
|
|
18
19
|
const messages = formatMessages(request.messages);
|
|
19
20
|
let system = systemPrompt;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Errors.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic/Errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Errors.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic/Errors.ts"],"names":[],"mappings":"AAaA,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAwD9F"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import { BadRequestError, AuthenticationError, RateLimitError, ServerError, ServiceUnavailableError, APIError } from "../../errors/index.js";
|
|
1
|
+
import { BadRequestError, ContextWindowExceededError, InsufficientQuotaError, InvalidModelError, NotFoundError, AuthenticationError, RateLimitError, ServerError, ServiceUnavailableError, APIError } from "../../errors/index.js";
|
|
2
2
|
export async function handleAnthropicError(response, modelId) {
|
|
3
3
|
const status = response.status;
|
|
4
4
|
let body;
|
|
5
5
|
let message = `Anthropic error (${status})`;
|
|
6
|
+
let errorType;
|
|
6
7
|
try {
|
|
7
8
|
body = await response.json();
|
|
8
9
|
if (body && typeof body === "object" && "error" in body) {
|
|
9
10
|
const err = body.error;
|
|
10
11
|
if (err && err.message) {
|
|
11
12
|
message = err.message;
|
|
13
|
+
errorType = err.type;
|
|
12
14
|
}
|
|
13
15
|
}
|
|
14
16
|
}
|
|
@@ -18,12 +20,24 @@ export async function handleAnthropicError(response, modelId) {
|
|
|
18
20
|
}
|
|
19
21
|
const provider = "anthropic";
|
|
20
22
|
if (status === 400) {
|
|
23
|
+
if (message.includes("prompt is too long") || message.includes("context_length")) {
|
|
24
|
+
throw new ContextWindowExceededError(message, body, provider, modelId);
|
|
25
|
+
}
|
|
21
26
|
throw new BadRequestError(message, body, provider, modelId);
|
|
22
27
|
}
|
|
23
28
|
if (status === 401 || status === 403) {
|
|
24
29
|
throw new AuthenticationError(message, status, body, provider);
|
|
25
30
|
}
|
|
31
|
+
if (status === 404) {
|
|
32
|
+
if (message.includes("model") || errorType === "not_found_error") {
|
|
33
|
+
throw new InvalidModelError(message, body, provider, modelId);
|
|
34
|
+
}
|
|
35
|
+
throw new NotFoundError(message, status, body, provider, modelId);
|
|
36
|
+
}
|
|
26
37
|
if (status === 429) {
|
|
38
|
+
if (message.includes("quota") || message.includes("credit")) {
|
|
39
|
+
throw new InsufficientQuotaError(message, body, provider, modelId);
|
|
40
|
+
}
|
|
27
41
|
throw new RateLimitError(message, body, provider, modelId);
|
|
28
42
|
}
|
|
29
43
|
if (status === 502 || status === 503 || status === 529) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Streaming.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic/Streaming.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Streaming.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic/Streaming.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AASxD,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM;IAG1B,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,eAAe,GAAG,cAAc,CAAC,SAAS,CAAC;CA0O9F"}
|
|
@@ -3,6 +3,7 @@ import { handleAnthropicError } from "./Errors.js";
|
|
|
3
3
|
import { formatSystemPrompt, formatMessages } from "./Utils.js";
|
|
4
4
|
import { logger } from "../../utils/logger.js";
|
|
5
5
|
import { fetchWithTimeout } from "../../utils/fetch.js";
|
|
6
|
+
import { DEFAULT_MAX_TOKENS } from "../../constants.js";
|
|
6
7
|
export class AnthropicStreaming {
|
|
7
8
|
baseUrl;
|
|
8
9
|
apiKey;
|
|
@@ -13,7 +14,7 @@ export class AnthropicStreaming {
|
|
|
13
14
|
async *execute(request, controller) {
|
|
14
15
|
const abortController = controller || new AbortController();
|
|
15
16
|
const model = request.model;
|
|
16
|
-
const maxTokens = request.max_tokens || Capabilities.getMaxOutputTokens(model) ||
|
|
17
|
+
const maxTokens = request.max_tokens || Capabilities.getMaxOutputTokens(model) || DEFAULT_MAX_TOKENS;
|
|
17
18
|
const systemPrompt = formatSystemPrompt(request.messages);
|
|
18
19
|
const messages = formatMessages(request.messages);
|
|
19
20
|
let system = systemPrompt;
|
|
@@ -156,10 +157,25 @@ export class AnthropicStreaming {
|
|
|
156
157
|
// Block finished
|
|
157
158
|
}
|
|
158
159
|
else if (eventType === "message_start") {
|
|
159
|
-
|
|
160
|
+
if (data.message?.usage) {
|
|
161
|
+
const usage = {
|
|
162
|
+
input_tokens: data.message.usage.input_tokens,
|
|
163
|
+
output_tokens: data.message.usage.output_tokens,
|
|
164
|
+
total_tokens: data.message.usage.input_tokens + data.message.usage.output_tokens
|
|
165
|
+
};
|
|
166
|
+
yield { content: "", usage };
|
|
167
|
+
}
|
|
160
168
|
}
|
|
161
169
|
else if (eventType === "message_delta") {
|
|
162
|
-
// Update usage
|
|
170
|
+
// Update usage
|
|
171
|
+
if (data.usage) {
|
|
172
|
+
const usage = {
|
|
173
|
+
input_tokens: 0, // Delta usually only contains output
|
|
174
|
+
output_tokens: data.usage.output_tokens,
|
|
175
|
+
total_tokens: data.usage.output_tokens
|
|
176
|
+
};
|
|
177
|
+
yield { content: "", usage };
|
|
178
|
+
}
|
|
163
179
|
if (data.delta?.stop_reason === "end_turn" && toolCallsMap.size > 0) {
|
|
164
180
|
// Yield accumulated tool calls
|
|
165
181
|
const toolCalls = Array.from(toolCallsMap.values()).map((tc) => ({
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS Bedrock Provider
|
|
3
|
+
*
|
|
4
|
+
* Unified provider for all Bedrock-hosted models using the Converse API.
|
|
5
|
+
* Supports: Claude, DeepSeek, Titan, Mistral, Llama, and other Bedrock models.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* // Using API Key (recommended)
|
|
10
|
+
* const bedrock = new BedrockProvider({
|
|
11
|
+
* region: "us-east-1",
|
|
12
|
+
* apiKey: process.env.AWS_BEARER_TOKEN_BEDROCK
|
|
13
|
+
* });
|
|
14
|
+
*
|
|
15
|
+
* // Using SigV4 (IAM credentials)
|
|
16
|
+
* const bedrock = new BedrockProvider({
|
|
17
|
+
* region: "us-east-1",
|
|
18
|
+
* accessKeyId: process.env.AWS_ACCESS_KEY_ID,
|
|
19
|
+
* secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* const response = await bedrock.chat({
|
|
23
|
+
* model: "anthropic.claude-3-5-haiku-20241022-v1:0",
|
|
24
|
+
* messages: [{ role: "user", content: "Hello!" }]
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
import { Provider, ProviderCapabilities, ModelInfo, ChatRequest, ChatResponse, ChatChunk, EmbeddingRequest, EmbeddingResponse, ImageRequest, ImageResponse, ModerationRequest, ModerationResponse } from "../Provider.js";
|
|
29
|
+
import { BaseProvider } from "../BaseProvider.js";
|
|
30
|
+
import { BedrockConfig } from "./config.js";
|
|
31
|
+
export declare class BedrockProvider extends BaseProvider implements Provider {
|
|
32
|
+
private readonly config;
|
|
33
|
+
private readonly chatHandler;
|
|
34
|
+
private readonly modelsHandler;
|
|
35
|
+
private readonly streamingHandler;
|
|
36
|
+
private readonly embeddingsHandler;
|
|
37
|
+
private readonly imageHandler;
|
|
38
|
+
private readonly moderationHandler;
|
|
39
|
+
capabilities: ProviderCapabilities;
|
|
40
|
+
constructor(config: BedrockConfig);
|
|
41
|
+
apiBase(): string;
|
|
42
|
+
headers(): Record<string, string>;
|
|
43
|
+
protected providerName(): string;
|
|
44
|
+
chat(request: ChatRequest): Promise<ChatResponse>;
|
|
45
|
+
stream(request: ChatRequest): AsyncGenerator<ChatChunk>;
|
|
46
|
+
listModels(): Promise<ModelInfo[]>;
|
|
47
|
+
embed(request: EmbeddingRequest): Promise<EmbeddingResponse>;
|
|
48
|
+
paint(request: ImageRequest): Promise<ImageResponse>;
|
|
49
|
+
moderate(request: ModerationRequest): Promise<ModerationResponse>;
|
|
50
|
+
defaultModel(feature?: string): string;
|
|
51
|
+
}
|
|
52
|
+
export { BedrockConfig } from "./config.js";
|
|
53
|
+
//# sourceMappingURL=BedrockProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BedrockProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/bedrock/BedrockProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,SAAS,EACT,WAAW,EACX,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAsB,MAAM,aAAa,CAAC;AAShE,qBAAa,eAAgB,SAAQ,YAAa,YAAW,QAAQ;IACnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IAE/C,YAAY,EAAE,oBAAoB,CAYvC;gBAEU,MAAM,EAAE,aAAa;IAW1B,OAAO,IAAI,MAAM;IAIjB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAUxC,SAAS,CAAC,YAAY,IAAI,MAAM;IAI1B,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAIhD,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC;IAIxD,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAIlC,KAAK,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI5D,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAIpD,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIvD,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM;CAOvD;AAGD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS Bedrock Provider
|
|
3
|
+
*
|
|
4
|
+
* Unified provider for all Bedrock-hosted models using the Converse API.
|
|
5
|
+
* Supports: Claude, DeepSeek, Titan, Mistral, Llama, and other Bedrock models.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* // Using API Key (recommended)
|
|
10
|
+
* const bedrock = new BedrockProvider({
|
|
11
|
+
* region: "us-east-1",
|
|
12
|
+
* apiKey: process.env.AWS_BEARER_TOKEN_BEDROCK
|
|
13
|
+
* });
|
|
14
|
+
*
|
|
15
|
+
* // Using SigV4 (IAM credentials)
|
|
16
|
+
* const bedrock = new BedrockProvider({
|
|
17
|
+
* region: "us-east-1",
|
|
18
|
+
* accessKeyId: process.env.AWS_ACCESS_KEY_ID,
|
|
19
|
+
* secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* const response = await bedrock.chat({
|
|
23
|
+
* model: "anthropic.claude-3-5-haiku-20241022-v1:0",
|
|
24
|
+
* messages: [{ role: "user", content: "Hello!" }]
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
import { BaseProvider } from "../BaseProvider.js";
|
|
29
|
+
import { getBedrockEndpoint } from "./config.js";
|
|
30
|
+
import { BedrockChat } from "./Chat.js";
|
|
31
|
+
import { BedrockModels } from "./Models.js";
|
|
32
|
+
import { BedrockStreaming } from "./Streaming.js";
|
|
33
|
+
import { BedrockEmbeddings } from "./Embeddings.js";
|
|
34
|
+
import { BedrockImage } from "./Image.js";
|
|
35
|
+
import { BedrockModeration } from "./Moderation.js";
|
|
36
|
+
import { Capabilities } from "./Capabilities.js";
|
|
37
|
+
export class BedrockProvider extends BaseProvider {
|
|
38
|
+
config;
|
|
39
|
+
chatHandler;
|
|
40
|
+
modelsHandler;
|
|
41
|
+
streamingHandler;
|
|
42
|
+
embeddingsHandler;
|
|
43
|
+
imageHandler;
|
|
44
|
+
moderationHandler;
|
|
45
|
+
capabilities = {
|
|
46
|
+
supportsVision: (model) => Capabilities.supportsVision(model),
|
|
47
|
+
supportsTools: (model) => Capabilities.supportsTools(model),
|
|
48
|
+
supportsStructuredOutput: (model) => Capabilities.supportsJsonMode(model),
|
|
49
|
+
supportsEmbeddings: (model) => Capabilities.supportsEmbeddings(model),
|
|
50
|
+
supportsImageGeneration: (model) => Capabilities.supportsImageGeneration(model),
|
|
51
|
+
supportsTranscription: (_model) => false,
|
|
52
|
+
supportsModeration: (_model) => !!(this.config.guardrailIdentifier && this.config.guardrailVersion),
|
|
53
|
+
supportsReasoning: (model) => Capabilities.supportsExtendedThinking(model),
|
|
54
|
+
supportsDeveloperRole: (_model) => true,
|
|
55
|
+
getContextWindow: (model) => Capabilities.getContextWindow(model)
|
|
56
|
+
};
|
|
57
|
+
constructor(config) {
|
|
58
|
+
super();
|
|
59
|
+
this.config = config;
|
|
60
|
+
this.chatHandler = new BedrockChat(config);
|
|
61
|
+
this.modelsHandler = new BedrockModels(config);
|
|
62
|
+
this.streamingHandler = new BedrockStreaming(config);
|
|
63
|
+
this.embeddingsHandler = new BedrockEmbeddings(config);
|
|
64
|
+
this.imageHandler = new BedrockImage(config);
|
|
65
|
+
this.moderationHandler = new BedrockModeration(config);
|
|
66
|
+
}
|
|
67
|
+
apiBase() {
|
|
68
|
+
return getBedrockEndpoint(this.config.region);
|
|
69
|
+
}
|
|
70
|
+
headers() {
|
|
71
|
+
// Headers are built dynamically based on auth mode
|
|
72
|
+
// This method is primarily for SigV4 signing, which happens at the HTTP client level.
|
|
73
|
+
// For API Key auth, the key is passed in the Authorization header directly.
|
|
74
|
+
// For now, we return a default Content-Type.
|
|
75
|
+
return {
|
|
76
|
+
"Content-Type": "application/json"
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
providerName() {
|
|
80
|
+
return "bedrock";
|
|
81
|
+
}
|
|
82
|
+
async chat(request) {
|
|
83
|
+
return this.chatHandler.execute(request);
|
|
84
|
+
}
|
|
85
|
+
async *stream(request) {
|
|
86
|
+
yield* this.streamingHandler.execute(request);
|
|
87
|
+
}
|
|
88
|
+
async listModels() {
|
|
89
|
+
return this.modelsHandler.execute();
|
|
90
|
+
}
|
|
91
|
+
async embed(request) {
|
|
92
|
+
return this.embeddingsHandler.execute(request);
|
|
93
|
+
}
|
|
94
|
+
async paint(request) {
|
|
95
|
+
return this.imageHandler.execute(request);
|
|
96
|
+
}
|
|
97
|
+
async moderate(request) {
|
|
98
|
+
return this.moderationHandler.execute(request);
|
|
99
|
+
}
|
|
100
|
+
defaultModel(feature) {
|
|
101
|
+
if (feature === "embeddings") {
|
|
102
|
+
return "amazon.titan-embed-text-v2:0";
|
|
103
|
+
}
|
|
104
|
+
// Amazon Nova Lite is available by default and cost-effective
|
|
105
|
+
return "amazon.nova-lite-v1:0";
|
|
106
|
+
}
|
|
107
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maps Bedrock model IDs to their capabilities.
|
|
3
|
+
*/
|
|
4
|
+
import { ModelPricing } from "../../models/types.js";
|
|
5
|
+
type ModelFamily = "claude3_opus" | "claude3_sonnet" | "claude3_haiku" | "claude3_5_haiku" | "claude2" | "claude_instant" | "claude4" | "nova" | "nova2" | "other";
|
|
6
|
+
export declare class Capabilities {
|
|
7
|
+
static getModelFamily(modelId: string): ModelFamily;
|
|
8
|
+
static getContextWindow(modelId: string): number | null;
|
|
9
|
+
static getMaxOutputTokens(modelId: string): number | null;
|
|
10
|
+
static supportsChat(modelId: string): boolean;
|
|
11
|
+
static supportsStreaming(modelId: string): boolean;
|
|
12
|
+
static supportsVision(modelId: string): boolean;
|
|
13
|
+
static supportsTools(modelId: string): boolean;
|
|
14
|
+
static supportsJsonMode(modelId: string): boolean;
|
|
15
|
+
static supportsExtendedThinking(modelId: string): boolean;
|
|
16
|
+
static supportsEmbeddings(modelId: string): boolean;
|
|
17
|
+
static supportsImageGeneration(modelId: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Check if a model supports audio input.
|
|
20
|
+
*/
|
|
21
|
+
static supportsAudio(_modelId: string): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Get input modalities for a model.
|
|
24
|
+
*/
|
|
25
|
+
static getInputModalities(modelId: string): string[];
|
|
26
|
+
/**
|
|
27
|
+
* Get output modalities for a model.
|
|
28
|
+
*/
|
|
29
|
+
static getOutputModalities(_modelId: string): string[];
|
|
30
|
+
/**
|
|
31
|
+
* Get all capabilities for a model.
|
|
32
|
+
*/
|
|
33
|
+
static getCapabilities(modelId: string): string[];
|
|
34
|
+
static getPricing(modelId: string): ModelPricing | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Get input price per million tokens.
|
|
37
|
+
*/
|
|
38
|
+
static getInputPrice(modelId: string): number;
|
|
39
|
+
/**
|
|
40
|
+
* Get output price per million tokens.
|
|
41
|
+
*/
|
|
42
|
+
static getOutputPrice(modelId: string): number;
|
|
43
|
+
/**
|
|
44
|
+
* Format model ID as display name.
|
|
45
|
+
*/
|
|
46
|
+
static formatDisplayName(modelId: string): string;
|
|
47
|
+
private static findModel;
|
|
48
|
+
}
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=Capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Capabilities.d.ts","sourceRoot":"","sources":["../../../src/providers/bedrock/Capabilities.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAMrD,KAAK,WAAW,GACZ,cAAc,GACd,gBAAgB,GAChB,eAAe,GACf,iBAAiB,GACjB,SAAS,GACT,gBAAgB,GAChB,SAAS,GACT,MAAM,GACN,OAAO,GACP,OAAO,CAAC;AAsCZ,qBAAa,YAAY;IACvB,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;IAOnD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IA2BvD,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOzD,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAa7C,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAalD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAQ/C,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAQ9C,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAWjD,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOzD,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOnD,MAAM,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOxD;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI/C;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAcpD;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAItD;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAuBjD,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAuB5D;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAK7C;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAK9C;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAUjD,OAAO,CAAC,MAAM,CAAC,SAAS;CAGzB"}
|