@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
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bedrock Converse API Types
|
|
3
|
+
*
|
|
4
|
+
* These types match the AWS Bedrock Converse API schema.
|
|
5
|
+
* Reference: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html
|
|
6
|
+
*/
|
|
7
|
+
export interface BedrockContentBlock {
|
|
8
|
+
text?: string;
|
|
9
|
+
image?: {
|
|
10
|
+
format: "png" | "jpeg" | "gif" | "webp";
|
|
11
|
+
source: {
|
|
12
|
+
bytes: string;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
document?: {
|
|
16
|
+
format: "pdf" | "csv" | "doc" | "docx" | "xls" | "xlsx" | "html" | "txt" | "md";
|
|
17
|
+
name: string;
|
|
18
|
+
source: {
|
|
19
|
+
bytes: string;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
reasoningContent?: {
|
|
23
|
+
text?: string;
|
|
24
|
+
redactedContent?: string;
|
|
25
|
+
};
|
|
26
|
+
toolUse?: {
|
|
27
|
+
toolUseId: string;
|
|
28
|
+
name: string;
|
|
29
|
+
input: Record<string, unknown>;
|
|
30
|
+
};
|
|
31
|
+
toolResult?: {
|
|
32
|
+
toolUseId: string;
|
|
33
|
+
content: BedrockContentBlock[];
|
|
34
|
+
status?: "success" | "error";
|
|
35
|
+
};
|
|
36
|
+
guardContent?: {
|
|
37
|
+
text: {
|
|
38
|
+
text: string;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
cachePoint?: {
|
|
42
|
+
type: "default";
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export interface BedrockMessage {
|
|
46
|
+
role: "user" | "assistant";
|
|
47
|
+
content: BedrockContentBlock[];
|
|
48
|
+
}
|
|
49
|
+
export interface BedrockToolSpec {
|
|
50
|
+
name: string;
|
|
51
|
+
description?: string;
|
|
52
|
+
inputSchema: {
|
|
53
|
+
json: Record<string, unknown>;
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export interface BedrockToolConfig {
|
|
57
|
+
tools: Array<{
|
|
58
|
+
toolSpec: BedrockToolSpec;
|
|
59
|
+
}>;
|
|
60
|
+
toolChoice?: {
|
|
61
|
+
auto?: Record<string, never>;
|
|
62
|
+
any?: Record<string, never>;
|
|
63
|
+
tool?: {
|
|
64
|
+
name: string;
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
export interface BedrockInferenceConfig {
|
|
69
|
+
maxTokens?: number;
|
|
70
|
+
temperature?: number;
|
|
71
|
+
topP?: number;
|
|
72
|
+
stopSequences?: string[];
|
|
73
|
+
}
|
|
74
|
+
export interface BedrockGuardrailConfig {
|
|
75
|
+
guardrailIdentifier: string;
|
|
76
|
+
guardrailVersion: string;
|
|
77
|
+
trace?: "enabled" | "disabled";
|
|
78
|
+
}
|
|
79
|
+
export interface BedrockConverseRequest {
|
|
80
|
+
messages: BedrockMessage[];
|
|
81
|
+
system?: BedrockContentBlock[];
|
|
82
|
+
toolConfig?: BedrockToolConfig;
|
|
83
|
+
guardrailConfig?: BedrockGuardrailConfig;
|
|
84
|
+
inferenceConfig?: BedrockInferenceConfig;
|
|
85
|
+
additionalModelRequestFields?: Record<string, any>;
|
|
86
|
+
}
|
|
87
|
+
export interface BedrockConverseResponse {
|
|
88
|
+
output: {
|
|
89
|
+
message: BedrockMessage;
|
|
90
|
+
};
|
|
91
|
+
stopReason: "end_turn" | "tool_use" | "max_tokens" | "stop_sequence" | "content_filtered" | "guardrail_intervening" | "guardrail_intervened";
|
|
92
|
+
usage: {
|
|
93
|
+
inputTokens: number;
|
|
94
|
+
outputTokens: number;
|
|
95
|
+
totalTokens: number;
|
|
96
|
+
cacheReadInputTokens?: number;
|
|
97
|
+
cacheWriteInputTokens?: number;
|
|
98
|
+
};
|
|
99
|
+
trace?: {
|
|
100
|
+
guardrail?: {
|
|
101
|
+
modelOutput?: string[];
|
|
102
|
+
inputAssessment?: Record<string, any>;
|
|
103
|
+
outputAssessments?: Record<string, any>;
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
metrics?: {
|
|
107
|
+
latencyMs: number;
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
export interface BedrockStreamEvent {
|
|
111
|
+
messageStart?: {
|
|
112
|
+
role: "assistant";
|
|
113
|
+
};
|
|
114
|
+
contentBlockStart?: {
|
|
115
|
+
contentBlockIndex: number;
|
|
116
|
+
start: {
|
|
117
|
+
text?: string;
|
|
118
|
+
reasoningContent?: {
|
|
119
|
+
text?: string;
|
|
120
|
+
};
|
|
121
|
+
toolUse?: {
|
|
122
|
+
toolUseId: string;
|
|
123
|
+
name: string;
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
contentBlockDelta?: {
|
|
128
|
+
contentBlockIndex: number;
|
|
129
|
+
delta: {
|
|
130
|
+
text?: string;
|
|
131
|
+
reasoningContent?: {
|
|
132
|
+
text?: string;
|
|
133
|
+
};
|
|
134
|
+
toolUse?: {
|
|
135
|
+
input: string;
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
contentBlockStop?: {
|
|
140
|
+
contentBlockIndex: number;
|
|
141
|
+
};
|
|
142
|
+
messageStop?: {
|
|
143
|
+
stopReason: string;
|
|
144
|
+
};
|
|
145
|
+
metadata?: {
|
|
146
|
+
usage: {
|
|
147
|
+
inputTokens: number;
|
|
148
|
+
outputTokens: number;
|
|
149
|
+
totalTokens: number;
|
|
150
|
+
};
|
|
151
|
+
metrics?: {
|
|
152
|
+
latencyMs: number;
|
|
153
|
+
};
|
|
154
|
+
trace?: {
|
|
155
|
+
guardrail?: {
|
|
156
|
+
modelOutput?: string[];
|
|
157
|
+
inputAssessment?: Record<string, any>;
|
|
158
|
+
outputAssessments?: Record<string, any>;
|
|
159
|
+
};
|
|
160
|
+
};
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
export interface BedrockModelSummary {
|
|
164
|
+
modelId: string;
|
|
165
|
+
modelArn: string;
|
|
166
|
+
modelName?: string;
|
|
167
|
+
providerName?: string;
|
|
168
|
+
inputModalities?: string[];
|
|
169
|
+
outputModalities?: string[];
|
|
170
|
+
responseStreamingSupported?: boolean;
|
|
171
|
+
inferenceTypesSupported?: Array<"ON_DEMAND" | "PROVISIONED" | "INFERENCE_PROFILE">;
|
|
172
|
+
modelLifecycle?: {
|
|
173
|
+
status: "ACTIVE" | "LEGACY";
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
export interface BedrockListModelsResponse {
|
|
177
|
+
modelSummaries: BedrockModelSummary[];
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/bedrock/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,14 +3,15 @@ export declare class Capabilities {
|
|
|
3
3
|
static getCapabilities(modelId: string): string[];
|
|
4
4
|
static getContextWindow(modelId: string): number | null;
|
|
5
5
|
static getMaxOutputTokens(modelId: string): number | null;
|
|
6
|
-
static supportsVision(
|
|
6
|
+
static supportsVision(modelId: string): boolean;
|
|
7
7
|
static supportsTools(modelId: string): boolean;
|
|
8
8
|
static supportsStructuredOutput(modelId: string): boolean;
|
|
9
|
-
static supportsEmbeddings(
|
|
9
|
+
static supportsEmbeddings(modelId: string): boolean;
|
|
10
10
|
static supportsImageGeneration(_modelId: string): boolean;
|
|
11
11
|
static supportsTranscription(_modelId: string): boolean;
|
|
12
12
|
static supportsModeration(_modelId: string): boolean;
|
|
13
13
|
static supportsReasoning(modelId: string): boolean;
|
|
14
14
|
static getPricing(modelId: string): ModelPricing | undefined;
|
|
15
|
+
private static findModel;
|
|
15
16
|
}
|
|
16
17
|
//# sourceMappingURL=Capabilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Capabilities.d.ts","sourceRoot":"","sources":["../../../src/providers/deepseek/Capabilities.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAa,YAAY;IACvB,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAcjD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAUvD,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOzD,MAAM,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"Capabilities.d.ts","sourceRoot":"","sources":["../../../src/providers/deepseek/Capabilities.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAa,YAAY;IACvB,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAcjD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAUvD,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOzD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAK/C,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAQ9C,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOzD,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKnD,MAAM,CAAC,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIzD,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIvD,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIpD,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOlD,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI5D,OAAO,CAAC,MAAM,CAAC,SAAS;CAGzB"}
|
|
@@ -26,17 +26,25 @@ export class Capabilities {
|
|
|
26
26
|
}
|
|
27
27
|
return 4_096;
|
|
28
28
|
}
|
|
29
|
-
static supportsVision(
|
|
30
|
-
|
|
29
|
+
static supportsVision(modelId) {
|
|
30
|
+
const model = this.findModel(modelId);
|
|
31
|
+
return model?.modalities?.input?.includes("image") || false;
|
|
31
32
|
}
|
|
32
33
|
static supportsTools(modelId) {
|
|
34
|
+
const model = this.findModel(modelId);
|
|
35
|
+
if (model?.capabilities?.includes("function_calling") || model?.capabilities?.includes("tools"))
|
|
36
|
+
return true;
|
|
33
37
|
return /deepseek-chat/.test(modelId);
|
|
34
38
|
}
|
|
35
39
|
static supportsStructuredOutput(modelId) {
|
|
36
|
-
|
|
40
|
+
const model = this.findModel(modelId);
|
|
41
|
+
if (model?.capabilities?.includes("structured_output"))
|
|
42
|
+
return true;
|
|
43
|
+
return /deepseek-chat/.test(modelId);
|
|
37
44
|
}
|
|
38
|
-
static supportsEmbeddings(
|
|
39
|
-
|
|
45
|
+
static supportsEmbeddings(modelId) {
|
|
46
|
+
const model = this.findModel(modelId);
|
|
47
|
+
return model?.modalities?.output?.includes("embeddings") || false;
|
|
40
48
|
}
|
|
41
49
|
static supportsImageGeneration(_modelId) {
|
|
42
50
|
return false;
|
|
@@ -48,9 +56,15 @@ export class Capabilities {
|
|
|
48
56
|
return false;
|
|
49
57
|
}
|
|
50
58
|
static supportsReasoning(modelId) {
|
|
59
|
+
const model = this.findModel(modelId);
|
|
60
|
+
if (model?.capabilities?.includes("reasoning"))
|
|
61
|
+
return true;
|
|
51
62
|
return /deepseek-reasoner/.test(modelId);
|
|
52
63
|
}
|
|
53
64
|
static getPricing(modelId) {
|
|
54
65
|
return PricingRegistry.getPricing(modelId, "deepseek");
|
|
55
66
|
}
|
|
67
|
+
static findModel(modelId) {
|
|
68
|
+
return ModelRegistry.find(modelId, "deepseek");
|
|
69
|
+
}
|
|
56
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../src/providers/deepseek/Chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAS,MAAM,gBAAgB,CAAC;AAgClE,qBAAa,YAAY;IAErB,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;
|
|
1
|
+
{"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../src/providers/deepseek/Chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAS,MAAM,gBAAgB,CAAC;AAgClE,qBAAa,YAAY;IAErB,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;CAoH3D"}
|
|
@@ -10,7 +10,7 @@ export class DeepSeekChat {
|
|
|
10
10
|
this.apiKey = apiKey;
|
|
11
11
|
}
|
|
12
12
|
async execute(request) {
|
|
13
|
-
const { model, messages, tools, max_tokens, response_format, headers: _headers, requestTimeout, ...rest } = request;
|
|
13
|
+
const { model, messages, tools, max_tokens, response_format, thinking: _thinking, headers: _headers, requestTimeout, ...rest } = request;
|
|
14
14
|
const mappedMessages = mapSystemMessages(messages, false);
|
|
15
15
|
const body = {
|
|
16
16
|
model,
|
|
@@ -89,6 +89,13 @@ export class DeepSeekChat {
|
|
|
89
89
|
}
|
|
90
90
|
// deepseek cost calculation if needed, otherwise just return usage
|
|
91
91
|
const calculatedUsage = ModelRegistry.calculateCost(usage, model, "deepseek");
|
|
92
|
-
|
|
92
|
+
const thinkingResult = reasoning ? { text: reasoning } : undefined;
|
|
93
|
+
return {
|
|
94
|
+
content,
|
|
95
|
+
reasoning,
|
|
96
|
+
usage: calculatedUsage,
|
|
97
|
+
thinking: thinkingResult,
|
|
98
|
+
tool_calls: toolCalls
|
|
99
|
+
};
|
|
93
100
|
}
|
|
94
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Streaming.d.ts","sourceRoot":"","sources":["../../../src/providers/deepseek/Streaming.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAMxD,qBAAa,iBAAiB;IAE1B,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/deepseek/Streaming.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAMxD,qBAAa,iBAAiB;IAE1B,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;CAkL9F"}
|
|
@@ -11,7 +11,7 @@ export class DeepSeekStreaming {
|
|
|
11
11
|
}
|
|
12
12
|
async *execute(request, controller) {
|
|
13
13
|
const abortController = controller || new AbortController();
|
|
14
|
-
const { model, messages, tools, max_tokens, response_format, headers: _headers, requestTimeout, ...rest } = request;
|
|
14
|
+
const { model, messages, tools, max_tokens, response_format, thinking: _thinking, headers: _headers, requestTimeout, ...rest } = request;
|
|
15
15
|
const mappedMessages = mapSystemMessages(messages, false);
|
|
16
16
|
const body = {
|
|
17
17
|
model,
|
|
@@ -100,7 +100,8 @@ export class DeepSeekStreaming {
|
|
|
100
100
|
if (deltaContent || deltaReasoning) {
|
|
101
101
|
yield {
|
|
102
102
|
content: deltaContent || "",
|
|
103
|
-
reasoning: deltaReasoning || ""
|
|
103
|
+
reasoning: deltaReasoning || "",
|
|
104
|
+
thinking: deltaReasoning ? { text: deltaReasoning } : undefined
|
|
104
105
|
};
|
|
105
106
|
}
|
|
106
107
|
// Handle tool calls delta
|
|
@@ -19,5 +19,6 @@ export declare class Capabilities {
|
|
|
19
19
|
static getCapabilities(modelId: string): string[];
|
|
20
20
|
static getPricing(modelId: string): ModelPricing | undefined;
|
|
21
21
|
private static normalizeModelId;
|
|
22
|
+
private static findModel;
|
|
22
23
|
}
|
|
23
24
|
//# sourceMappingURL=Capabilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Capabilities.d.ts","sourceRoot":"","sources":["../../../src/providers/gemini/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;IA2BvD,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAwBzD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAW/C,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAW9C,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAWzD,MAAM,CAAC,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI5D,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIjD,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAQnD,MAAM,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAYxD,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAQtD,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIpD,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIhG,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAY5E,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAUjD,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI5D,OAAO,CAAC,MAAM,CAAC,gBAAgB;
|
|
1
|
+
{"version":3,"file":"Capabilities.d.ts","sourceRoot":"","sources":["../../../src/providers/gemini/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;IA2BvD,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAwBzD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAW/C,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAW9C,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAWzD,MAAM,CAAC,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI5D,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIjD,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAQnD,MAAM,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAYxD,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAQtD,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIpD,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIhG,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAY5E,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAUjD,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI5D,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAI/B,OAAO,CAAC,MAAM,CAAC,SAAS;CAGzB"}
|
|
@@ -43,7 +43,7 @@ export class Capabilities {
|
|
|
43
43
|
return 4_096;
|
|
44
44
|
}
|
|
45
45
|
static supportsVision(modelId) {
|
|
46
|
-
const model =
|
|
46
|
+
const model = this.findModel(modelId);
|
|
47
47
|
if (model?.modalities?.input?.includes("image"))
|
|
48
48
|
return true;
|
|
49
49
|
const id = this.normalizeModelId(modelId);
|
|
@@ -53,7 +53,7 @@ export class Capabilities {
|
|
|
53
53
|
return !!id.match(/gemini|flash|pro|imagen/);
|
|
54
54
|
}
|
|
55
55
|
static supportsTools(modelId) {
|
|
56
|
-
const model =
|
|
56
|
+
const model = this.findModel(modelId);
|
|
57
57
|
if (model?.capabilities?.includes("function_calling"))
|
|
58
58
|
return true;
|
|
59
59
|
const id = this.normalizeModelId(modelId);
|
|
@@ -63,7 +63,7 @@ export class Capabilities {
|
|
|
63
63
|
return !!id.match(/gemini|pro|flash/);
|
|
64
64
|
}
|
|
65
65
|
static supportsStructuredOutput(modelId) {
|
|
66
|
-
const model =
|
|
66
|
+
const model = this.findModel(modelId);
|
|
67
67
|
if (model?.capabilities?.includes("structured_output"))
|
|
68
68
|
return true;
|
|
69
69
|
const id = this.normalizeModelId(modelId);
|
|
@@ -79,14 +79,14 @@ export class Capabilities {
|
|
|
79
79
|
return this.supportsStructuredOutput(modelId);
|
|
80
80
|
}
|
|
81
81
|
static supportsEmbeddings(modelId) {
|
|
82
|
-
const model =
|
|
82
|
+
const model = this.findModel(modelId);
|
|
83
83
|
if (model?.modalities?.output?.includes("embeddings"))
|
|
84
84
|
return true;
|
|
85
85
|
const id = this.normalizeModelId(modelId);
|
|
86
86
|
return !!id.match(/text-embedding|embedding|gemini-embedding/);
|
|
87
87
|
}
|
|
88
88
|
static supportsImageGeneration(modelId) {
|
|
89
|
-
const model =
|
|
89
|
+
const model = this.findModel(modelId);
|
|
90
90
|
if (model?.capabilities?.includes("image_generation") ||
|
|
91
91
|
model?.modalities?.output?.includes("image"))
|
|
92
92
|
return true;
|
|
@@ -94,7 +94,7 @@ export class Capabilities {
|
|
|
94
94
|
return !!id.match(/imagen/);
|
|
95
95
|
}
|
|
96
96
|
static supportsTranscription(modelId) {
|
|
97
|
-
const model =
|
|
97
|
+
const model = this.findModel(modelId);
|
|
98
98
|
if (model?.modalities?.input?.includes("audio"))
|
|
99
99
|
return true;
|
|
100
100
|
const id = this.normalizeModelId(modelId);
|
|
@@ -137,4 +137,7 @@ export class Capabilities {
|
|
|
137
137
|
static normalizeModelId(modelId) {
|
|
138
138
|
return modelId.replace("models/", "");
|
|
139
139
|
}
|
|
140
|
+
static findModel(modelId) {
|
|
141
|
+
return ModelRegistry.find(modelId, "gemini");
|
|
142
|
+
}
|
|
140
143
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../src/providers/gemini/Chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAS3D,qBAAa,UAAU;IAEnB,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;IAmH1D,OAAO,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../src/providers/gemini/Chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAS3D,qBAAa,UAAU;IAEnB,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;IAmH1D,OAAO,CAAC,cAAc;CAwBvB"}
|
|
@@ -46,7 +46,7 @@ export class GeminiChat {
|
|
|
46
46
|
functionDeclarations: request.tools.map((t) => ({
|
|
47
47
|
name: t.function.name,
|
|
48
48
|
description: t.function.description,
|
|
49
|
-
parameters:
|
|
49
|
+
parameters: t.function.parameters
|
|
50
50
|
}))
|
|
51
51
|
}
|
|
52
52
|
];
|
|
@@ -101,10 +101,9 @@ export class GeminiChat {
|
|
|
101
101
|
delete sanitized.$id;
|
|
102
102
|
delete sanitized.definitions;
|
|
103
103
|
// Recursively sanitize
|
|
104
|
-
if (sanitized.properties
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
props[key] = this.sanitizeSchema(props[key]);
|
|
104
|
+
if (sanitized.properties) {
|
|
105
|
+
for (const key in sanitized.properties) {
|
|
106
|
+
sanitized.properties[key] = this.sanitizeSchema(sanitized.properties[key]);
|
|
108
107
|
}
|
|
109
108
|
}
|
|
110
109
|
if (sanitized.items) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Streaming.d.ts","sourceRoot":"","sources":["../../../src/providers/gemini/Streaming.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AASxD,qBAAa,eAAe;IAExB,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/gemini/Streaming.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AASxD,qBAAa,eAAe;IAExB,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;IA+K7F,OAAO,CAAC,cAAc;CAyBvB"}
|
|
@@ -28,10 +28,20 @@ export class GeminiStreaming {
|
|
|
28
28
|
generationConfig.responseSchema = this.sanitizeSchema(request.response_format.json_schema.schema);
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
+
const { model: _model, messages: _messages, tools: _tools, temperature: _temp, max_tokens: _max, response_format: _format, headers: _headers, requestTimeout: _requestTimeout, thinking: _thinking, ...rest } = request;
|
|
31
32
|
const payload = {
|
|
32
33
|
contents,
|
|
33
|
-
generationConfig
|
|
34
|
+
generationConfig: {
|
|
35
|
+
...generationConfig,
|
|
36
|
+
...(rest.generationConfig || {})
|
|
37
|
+
},
|
|
38
|
+
...rest
|
|
34
39
|
};
|
|
40
|
+
if (_thinking) {
|
|
41
|
+
payload.thinkingConfig = {
|
|
42
|
+
includeThoughts: true
|
|
43
|
+
};
|
|
44
|
+
}
|
|
35
45
|
if (systemInstructionParts.length > 0) {
|
|
36
46
|
payload.systemInstruction = { parts: systemInstructionParts };
|
|
37
47
|
}
|
|
@@ -98,7 +108,12 @@ export class GeminiStreaming {
|
|
|
98
108
|
const parts = json.candidates?.[0]?.content?.parts || [];
|
|
99
109
|
for (const part of parts) {
|
|
100
110
|
if (part.text) {
|
|
101
|
-
|
|
111
|
+
if (part.thought) {
|
|
112
|
+
yield { content: "", thinking: { text: part.text } };
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
yield { content: part.text };
|
|
116
|
+
}
|
|
102
117
|
}
|
|
103
118
|
// Handle function calls
|
|
104
119
|
if (part.functionCall) {
|
|
@@ -12,6 +12,7 @@ export interface GeminiPart {
|
|
|
12
12
|
name: string;
|
|
13
13
|
response: Record<string, unknown>;
|
|
14
14
|
};
|
|
15
|
+
thought?: boolean;
|
|
15
16
|
}
|
|
16
17
|
export interface GeminiContent {
|
|
17
18
|
role?: "user" | "model";
|
|
@@ -42,6 +43,9 @@ export interface GeminiGenerateContentRequest {
|
|
|
42
43
|
category: string;
|
|
43
44
|
threshold: string;
|
|
44
45
|
}>;
|
|
46
|
+
thinkingConfig?: {
|
|
47
|
+
includeThoughts: boolean;
|
|
48
|
+
};
|
|
45
49
|
}
|
|
46
50
|
export interface GeminiGenerateContentResponse {
|
|
47
51
|
candidates?: Array<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/gemini/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,YAAY,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/B,CAAC;IACF,gBAAgB,CAAC,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/gemini/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Capabilities.d.ts","sourceRoot":"","sources":["../../../src/providers/ollama/Capabilities.ts"],"names":[],"mappings":"AAEA,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM;IAYhC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKvD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAc/C,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"Capabilities.d.ts","sourceRoot":"","sources":["../../../src/providers/ollama/Capabilities.ts"],"names":[],"mappings":"AAEA,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM;IAYhC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKvD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAc/C,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAQ9C,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKzD,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IASnD,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKlD,MAAM,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKxD,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKtD,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAIpD"}
|
|
@@ -27,7 +27,10 @@ export class OllamaCapabilities {
|
|
|
27
27
|
}
|
|
28
28
|
static supportsTools(modelId) {
|
|
29
29
|
const model = this.findModel(modelId);
|
|
30
|
-
|
|
30
|
+
if (model?.capabilities?.includes("tools"))
|
|
31
|
+
return true;
|
|
32
|
+
// Fallback heuristics for models not in registry
|
|
33
|
+
return /gpt-|claude|gemini|deepseek|llama/.test(modelId.toLowerCase());
|
|
31
34
|
}
|
|
32
35
|
static supportsStructuredOutput(modelId) {
|
|
33
36
|
const model = this.findModel(modelId);
|
|
@@ -22,5 +22,6 @@ export declare class Capabilities {
|
|
|
22
22
|
static normalizeTemperature(temperature: number | undefined, modelId: string): number | undefined | null;
|
|
23
23
|
static formatDisplayName(modelId: string): string;
|
|
24
24
|
static getPricing(modelId: string): ModelPricing | undefined;
|
|
25
|
+
private static findModel;
|
|
25
26
|
}
|
|
26
27
|
//# sourceMappingURL=Capabilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Capabilities.d.ts","sourceRoot":"","sources":["../../../src/providers/openai/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;IAUvD,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASzD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAO/C,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAQ9C,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOzD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIjD,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOnD,MAAM,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAWxD,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOtD,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOnD,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOlD,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAItD,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIzD,MAAM,CAAC,YAAY,CACjB,OAAO,EAAE,MAAM,GAEb,YAAY,GACZ,OAAO,GACP,YAAY,GACZ,OAAO,GACP,MAAM,GACN,qBAAqB,GACrB,cAAc;IAWlB,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAiB5E,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAsBjD,MAAM,CAAC,oBAAoB,CACzB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,SAAS,GAAG,IAAI;IAM5B,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAOjD,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"Capabilities.d.ts","sourceRoot":"","sources":["../../../src/providers/openai/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;IAUvD,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASzD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAO/C,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAQ9C,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOzD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIjD,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOnD,MAAM,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAWxD,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOtD,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOnD,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOlD,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAItD,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIzD,MAAM,CAAC,YAAY,CACjB,OAAO,EAAE,MAAM,GAEb,YAAY,GACZ,OAAO,GACP,YAAY,GACZ,OAAO,GACP,MAAM,GACN,qBAAqB,GACrB,cAAc;IAWlB,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAiB5E,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAsBjD,MAAM,CAAC,oBAAoB,CACzB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,SAAS,GAAG,IAAI;IAM5B,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAOjD,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI5D,OAAO,CAAC,MAAM,CAAC,SAAS;CAGzB"}
|
|
@@ -24,19 +24,19 @@ export class Capabilities {
|
|
|
24
24
|
return 4_096;
|
|
25
25
|
}
|
|
26
26
|
static supportsVision(modelId) {
|
|
27
|
-
const model =
|
|
27
|
+
const model = this.findModel(modelId);
|
|
28
28
|
if (model?.modalities?.input?.includes("image"))
|
|
29
29
|
return true;
|
|
30
30
|
return /gpt-4(?!-3)|o1/.test(modelId) && !/audio|realtime|voice/.test(modelId);
|
|
31
31
|
}
|
|
32
32
|
static supportsTools(modelId) {
|
|
33
|
-
const model =
|
|
33
|
+
const model = this.findModel(modelId);
|
|
34
34
|
if (model?.capabilities?.includes("function_calling") || model?.capabilities?.includes("tools"))
|
|
35
35
|
return true;
|
|
36
36
|
return !/embedding|moderation|dall-e|tts|whisper/.test(modelId);
|
|
37
37
|
}
|
|
38
38
|
static supportsStructuredOutput(modelId) {
|
|
39
|
-
const model =
|
|
39
|
+
const model = this.findModel(modelId);
|
|
40
40
|
if (model?.capabilities?.includes("structured_output"))
|
|
41
41
|
return true;
|
|
42
42
|
return /gpt-4|o1|o3/.test(modelId);
|
|
@@ -45,32 +45,32 @@ export class Capabilities {
|
|
|
45
45
|
return this.supportsStructuredOutput(modelId);
|
|
46
46
|
}
|
|
47
47
|
static supportsEmbeddings(modelId) {
|
|
48
|
-
const model =
|
|
48
|
+
const model = this.findModel(modelId);
|
|
49
49
|
if (model?.modalities?.output?.includes("embeddings"))
|
|
50
50
|
return true;
|
|
51
51
|
return /embedding/.test(modelId);
|
|
52
52
|
}
|
|
53
53
|
static supportsImageGeneration(modelId) {
|
|
54
|
-
const model =
|
|
54
|
+
const model = this.findModel(modelId);
|
|
55
55
|
if (model?.capabilities?.includes("image_generation") ||
|
|
56
56
|
model?.modalities?.output?.includes("image"))
|
|
57
57
|
return true;
|
|
58
58
|
return /dall-e|image/.test(modelId);
|
|
59
59
|
}
|
|
60
60
|
static supportsTranscription(modelId) {
|
|
61
|
-
const model =
|
|
61
|
+
const model = this.findModel(modelId);
|
|
62
62
|
if (model?.modalities?.input?.includes("audio"))
|
|
63
63
|
return true;
|
|
64
64
|
return /whisper|audio|transcribe/.test(modelId);
|
|
65
65
|
}
|
|
66
66
|
static supportsModeration(modelId) {
|
|
67
|
-
const model =
|
|
67
|
+
const model = this.findModel(modelId);
|
|
68
68
|
if (model?.modalities?.output?.includes("moderation"))
|
|
69
69
|
return true;
|
|
70
70
|
return /moderation/.test(modelId);
|
|
71
71
|
}
|
|
72
72
|
static supportsReasoning(modelId) {
|
|
73
|
-
const model =
|
|
73
|
+
const model = this.findModel(modelId);
|
|
74
74
|
if (model?.capabilities?.includes("reasoning"))
|
|
75
75
|
return true;
|
|
76
76
|
return /o\d|gpt-5/.test(modelId);
|
|
@@ -101,7 +101,7 @@ export class Capabilities {
|
|
|
101
101
|
static getModalities(modelId) {
|
|
102
102
|
const input = ["text"];
|
|
103
103
|
const output = ["text"];
|
|
104
|
-
const model =
|
|
104
|
+
const model = this.findModel(modelId);
|
|
105
105
|
if (model?.modalities)
|
|
106
106
|
return model.modalities;
|
|
107
107
|
if (this.supportsVision(modelId))
|
|
@@ -118,7 +118,7 @@ export class Capabilities {
|
|
|
118
118
|
}
|
|
119
119
|
static getCapabilities(modelId) {
|
|
120
120
|
const caps = ["streaming"];
|
|
121
|
-
const model =
|
|
121
|
+
const model = this.findModel(modelId);
|
|
122
122
|
if (model) {
|
|
123
123
|
model.capabilities.forEach((c) => {
|
|
124
124
|
if (!caps.includes(c))
|
|
@@ -148,7 +148,7 @@ export class Capabilities {
|
|
|
148
148
|
return temperature;
|
|
149
149
|
}
|
|
150
150
|
static formatDisplayName(modelId) {
|
|
151
|
-
const model =
|
|
151
|
+
const model = this.findModel(modelId);
|
|
152
152
|
if (model?.name && model.name !== modelId)
|
|
153
153
|
return model.name;
|
|
154
154
|
return modelId.replace(/-/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
|
|
@@ -156,4 +156,7 @@ export class Capabilities {
|
|
|
156
156
|
static getPricing(modelId) {
|
|
157
157
|
return PricingRegistry.getPricing(modelId, "openai");
|
|
158
158
|
}
|
|
159
|
+
static findModel(modelId) {
|
|
160
|
+
return ModelRegistry.find(modelId, "openai");
|
|
161
|
+
}
|
|
159
162
|
}
|