@node-llm/core 1.6.2 → 1.8.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 +215 -0
- package/dist/aliases.d.ts.map +1 -1
- package/dist/aliases.js +241 -26
- package/dist/chat/Chat.d.ts +12 -3
- package/dist/chat/Chat.d.ts.map +1 -1
- package/dist/chat/Chat.js +35 -5
- package/dist/chat/ChatOptions.d.ts +2 -1
- package/dist/chat/ChatOptions.d.ts.map +1 -1
- package/dist/chat/ChatResponse.d.ts +9 -2
- package/dist/chat/ChatResponse.d.ts.map +1 -1
- package/dist/chat/ChatResponse.js +12 -3
- package/dist/chat/ChatStream.d.ts.map +1 -1
- package/dist/chat/ChatStream.js +15 -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 +50 -0
- package/dist/index.d.ts +1 -0
- 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/models.d.ts +321 -76
- package/dist/models/models.d.ts.map +1 -1
- package/dist/models/models.js +7804 -2885
- package/dist/providers/Provider.d.ts +37 -0
- package/dist/providers/Provider.d.ts.map +1 -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 +23 -1
- package/dist/providers/anthropic/Streaming.d.ts.map +1 -1
- package/dist/providers/anthropic/Streaming.js +15 -0
- package/dist/providers/anthropic/types.d.ts +7 -1
- package/dist/providers/anthropic/types.d.ts.map +1 -1
- 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 +170 -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/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 +240 -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 +9 -2
- package/dist/providers/deepseek/Streaming.d.ts.map +1 -1
- package/dist/providers/deepseek/Streaming.js +3 -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 +4 -5
- package/dist/providers/gemini/Streaming.d.ts.map +1 -1
- package/dist/providers/gemini/Streaming.js +17 -2
- package/dist/providers/gemini/types.d.ts +4 -0
- package/dist/providers/gemini/types.d.ts.map +1 -1
- package/dist/providers/ollama/Capabilities.d.ts.map +1 -1
- package/dist/providers/ollama/Capabilities.js +4 -1
- 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/Chat.d.ts.map +1 -1
- package/dist/providers/openai/Chat.js +18 -3
- package/dist/providers/openai/Streaming.d.ts.map +1 -1
- package/dist/providers/openai/Streaming.js +11 -3
- package/dist/providers/registry.d.ts +2 -1
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +2 -1
- 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/package.json +1 -1
|
@@ -11,10 +11,37 @@ export interface ResponseFormat {
|
|
|
11
11
|
};
|
|
12
12
|
[key: string]: unknown;
|
|
13
13
|
}
|
|
14
|
+
export interface ThinkingConfig {
|
|
15
|
+
/**
|
|
16
|
+
* Effort level for thinking-capable models.
|
|
17
|
+
* 'low', 'medium', 'high' map to provider-specific qualitative settings.
|
|
18
|
+
* 'none' disables thinking if the model allows it.
|
|
19
|
+
*/
|
|
20
|
+
effort?: "low" | "medium" | "high" | "none";
|
|
21
|
+
/**
|
|
22
|
+
* Maximum budget (in tokens) dedicated to thinking.
|
|
23
|
+
*/
|
|
24
|
+
budget?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface ThinkingResult {
|
|
27
|
+
/**
|
|
28
|
+
* The thinking text (chain of thought).
|
|
29
|
+
*/
|
|
30
|
+
text?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Cryptographic signature or provider-specific trace ID.
|
|
33
|
+
*/
|
|
34
|
+
signature?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Tokens consumed during thinking.
|
|
37
|
+
*/
|
|
38
|
+
tokens?: number;
|
|
39
|
+
}
|
|
14
40
|
export interface ChatRequest {
|
|
15
41
|
model: string;
|
|
16
42
|
messages: Message[];
|
|
17
43
|
tools?: ToolDefinition[];
|
|
44
|
+
thinking?: ThinkingConfig;
|
|
18
45
|
temperature?: number;
|
|
19
46
|
max_tokens?: number;
|
|
20
47
|
response_format?: ResponseFormat;
|
|
@@ -24,15 +51,20 @@ export interface ChatRequest {
|
|
|
24
51
|
}
|
|
25
52
|
export interface ChatChunk {
|
|
26
53
|
content: string;
|
|
54
|
+
thinking?: ThinkingResult;
|
|
55
|
+
/** @deprecated use thinking.text */
|
|
27
56
|
reasoning?: string;
|
|
28
57
|
tool_calls?: ToolCall[];
|
|
29
58
|
done?: boolean;
|
|
30
59
|
usage?: Usage;
|
|
60
|
+
finish_reason?: string | null;
|
|
61
|
+
metadata?: Record<string, unknown>;
|
|
31
62
|
}
|
|
32
63
|
export interface Usage {
|
|
33
64
|
input_tokens: number;
|
|
34
65
|
output_tokens: number;
|
|
35
66
|
total_tokens: number;
|
|
67
|
+
reasoning_tokens?: number;
|
|
36
68
|
cached_tokens?: number;
|
|
37
69
|
cache_creation_tokens?: number;
|
|
38
70
|
cost?: number;
|
|
@@ -41,9 +73,13 @@ export interface Usage {
|
|
|
41
73
|
}
|
|
42
74
|
export interface ChatResponse {
|
|
43
75
|
content: string | null;
|
|
76
|
+
thinking?: ThinkingResult;
|
|
77
|
+
/** @deprecated use thinking.text */
|
|
44
78
|
reasoning?: string | null;
|
|
45
79
|
tool_calls?: ToolCall[];
|
|
46
80
|
usage?: Usage;
|
|
81
|
+
finish_reason?: string | null;
|
|
82
|
+
metadata?: Record<string, unknown>;
|
|
47
83
|
}
|
|
48
84
|
export interface ProviderCapabilities {
|
|
49
85
|
supportsVision(modelId: string): boolean;
|
|
@@ -78,6 +114,7 @@ export interface ImageRequest {
|
|
|
78
114
|
size?: string;
|
|
79
115
|
quality?: string;
|
|
80
116
|
n?: number;
|
|
117
|
+
headers?: Record<string, string>;
|
|
81
118
|
requestTimeout?: number;
|
|
82
119
|
}
|
|
83
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,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,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,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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"}
|
|
@@ -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,
|
|
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;AAU3E,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;CAyJ3D"}
|
|
@@ -27,7 +27,7 @@ export class AnthropicChat {
|
|
|
27
27
|
const instruction = `CRITICAL: Respond ONLY with a valid JSON object matching the requested schema.${schemaText}\n\nDo not include any other text or explanation.`;
|
|
28
28
|
system = system ? `${system}\n\n${instruction}` : instruction;
|
|
29
29
|
}
|
|
30
|
-
const { model: _model, messages: _messages, tools: _tools, temperature: _temp, max_tokens: _max, response_format: _format, headers: _headers, requestTimeout, ...rest } = request;
|
|
30
|
+
const { model: _model, messages: _messages, tools: _tools, temperature: _temp, max_tokens: _max, response_format: _format, thinking: _thinking, headers: _headers, requestTimeout, ...rest } = request;
|
|
31
31
|
const body = {
|
|
32
32
|
model: model,
|
|
33
33
|
messages: messages,
|
|
@@ -36,6 +36,16 @@ export class AnthropicChat {
|
|
|
36
36
|
stream: false,
|
|
37
37
|
...rest
|
|
38
38
|
};
|
|
39
|
+
if (_thinking?.budget) {
|
|
40
|
+
body.thinking = {
|
|
41
|
+
type: "enabled",
|
|
42
|
+
budget_tokens: _thinking.budget
|
|
43
|
+
};
|
|
44
|
+
// Extended thinking models require a larger max_tokens
|
|
45
|
+
if (!request.max_tokens) {
|
|
46
|
+
body.max_tokens = Math.max(maxTokens, _thinking.budget + 1024);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
39
49
|
if (request.temperature !== undefined) {
|
|
40
50
|
body.temperature = request.temperature;
|
|
41
51
|
}
|
|
@@ -73,6 +83,7 @@ export class AnthropicChat {
|
|
|
73
83
|
const contentBlocks = json.content;
|
|
74
84
|
// Extract text content and tool calls
|
|
75
85
|
let content = null;
|
|
86
|
+
let thinkingResult = undefined;
|
|
76
87
|
const toolCalls = [];
|
|
77
88
|
for (const block of contentBlocks) {
|
|
78
89
|
if (block.type === "text") {
|
|
@@ -80,6 +91,16 @@ export class AnthropicChat {
|
|
|
80
91
|
content = "";
|
|
81
92
|
content += block.text;
|
|
82
93
|
}
|
|
94
|
+
else if (block.type === "thinking") {
|
|
95
|
+
// Handle thinking block (Claude 3.7)
|
|
96
|
+
if (!thinkingResult)
|
|
97
|
+
thinkingResult = { text: "" };
|
|
98
|
+
if (block.thinking) {
|
|
99
|
+
thinkingResult.text = (thinkingResult.text || "") + block.thinking;
|
|
100
|
+
}
|
|
101
|
+
if (block.signature)
|
|
102
|
+
thinkingResult.signature = block.signature;
|
|
103
|
+
}
|
|
83
104
|
else if (block.type === "tool_use") {
|
|
84
105
|
toolCalls.push({
|
|
85
106
|
id: block.id,
|
|
@@ -106,6 +127,7 @@ export class AnthropicChat {
|
|
|
106
127
|
return {
|
|
107
128
|
content,
|
|
108
129
|
usage: calculatedUsage,
|
|
130
|
+
thinking: thinkingResult,
|
|
109
131
|
tool_calls: toolCalls.length > 0 ? toolCalls : undefined
|
|
110
132
|
};
|
|
111
133
|
}
|
|
@@ -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;AAQxD,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;
|
|
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;AAQxD,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;CAyN9F"}
|
|
@@ -44,6 +44,15 @@ export class AnthropicStreaming {
|
|
|
44
44
|
input_schema: tool.function.parameters
|
|
45
45
|
}));
|
|
46
46
|
}
|
|
47
|
+
if (request.thinking?.budget) {
|
|
48
|
+
body.thinking = {
|
|
49
|
+
type: "enabled",
|
|
50
|
+
budget_tokens: request.thinking.budget
|
|
51
|
+
};
|
|
52
|
+
if (!request.max_tokens) {
|
|
53
|
+
body.max_tokens = Math.max(maxTokens, request.thinking.budget + 1024);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
47
56
|
// Check if any message contains PDF content to add beta header
|
|
48
57
|
const hasPdf = messages.some((msg) => Array.isArray(msg.content) && msg.content.some((block) => block.type === "document"));
|
|
49
58
|
const headers = {
|
|
@@ -128,6 +137,12 @@ export class AnthropicStreaming {
|
|
|
128
137
|
if (data.delta && data.delta.type === "text_delta") {
|
|
129
138
|
yield { content: data.delta.text };
|
|
130
139
|
}
|
|
140
|
+
else if (data.delta && data.delta.type === "thinking_delta") {
|
|
141
|
+
yield { content: "", thinking: { text: data.delta.thinking } };
|
|
142
|
+
}
|
|
143
|
+
else if (data.delta && data.delta.type === "signature_delta") {
|
|
144
|
+
yield { content: "", thinking: { signature: data.delta.signature } };
|
|
145
|
+
}
|
|
131
146
|
else if (data.delta && data.delta.type === "input_json_delta") {
|
|
132
147
|
// Accumulate tool arguments
|
|
133
148
|
const index = data.index;
|
|
@@ -3,7 +3,7 @@ export interface AnthropicMessage {
|
|
|
3
3
|
content: string | Array<AnthropicContentBlock>;
|
|
4
4
|
}
|
|
5
5
|
export interface AnthropicContentBlock {
|
|
6
|
-
type: "text" | "image" | "tool_use" | "tool_result" | "document";
|
|
6
|
+
type: "text" | "image" | "tool_use" | "tool_result" | "document" | "thinking" | "redacted_thinking";
|
|
7
7
|
text?: string;
|
|
8
8
|
source?: {
|
|
9
9
|
type: "base64";
|
|
@@ -16,6 +16,8 @@ export interface AnthropicContentBlock {
|
|
|
16
16
|
tool_use_id?: string;
|
|
17
17
|
content?: string | Array<AnthropicContentBlock>;
|
|
18
18
|
is_error?: boolean;
|
|
19
|
+
thinking?: string;
|
|
20
|
+
signature?: string;
|
|
19
21
|
}
|
|
20
22
|
export interface AnthropicMessageRequest {
|
|
21
23
|
model: string;
|
|
@@ -37,6 +39,10 @@ export interface AnthropicMessageRequest {
|
|
|
37
39
|
type: string;
|
|
38
40
|
name?: string;
|
|
39
41
|
};
|
|
42
|
+
thinking?: {
|
|
43
|
+
type: "enabled" | "disabled";
|
|
44
|
+
budget_tokens: number;
|
|
45
|
+
};
|
|
40
46
|
}
|
|
41
47
|
export interface AnthropicUsage {
|
|
42
48
|
input_tokens: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,qBAAqB,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,qBAAqB,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EACA,MAAM,GACN,OAAO,GACP,UAAU,GACV,aAAa,GACb,UAAU,GACV,UAAU,GACV,mBAAmB,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACxC,CAAC,CAAC;IACH,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;QAC7B,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,UAAU,GAAG,YAAY,GAAG,eAAe,GAAG,UAAU,GAAG,IAAI,CAAC;IAC7E,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,cAAc,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH"}
|
|
@@ -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"}
|