@node-llm/core 1.5.4 → 1.6.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 +57 -41
- package/dist/aliases.js +239 -239
- package/dist/chat/Chat.d.ts +17 -17
- package/dist/chat/Chat.d.ts.map +1 -1
- package/dist/chat/Chat.js +56 -42
- package/dist/chat/ChatOptions.d.ts +8 -9
- package/dist/chat/ChatOptions.d.ts.map +1 -1
- package/dist/chat/ChatResponse.d.ts +1 -1
- package/dist/chat/ChatResponse.d.ts.map +1 -1
- package/dist/chat/ChatResponse.js +22 -8
- package/dist/chat/ChatStream.d.ts.map +1 -1
- package/dist/chat/ChatStream.js +14 -21
- package/dist/chat/Content.d.ts +3 -3
- package/dist/chat/Content.d.ts.map +1 -1
- package/dist/chat/Content.js +3 -6
- package/dist/chat/Message.d.ts +3 -1
- package/dist/chat/Message.d.ts.map +1 -1
- package/dist/chat/Role.d.ts.map +1 -1
- package/dist/chat/Tool.d.ts +15 -15
- package/dist/chat/Tool.d.ts.map +1 -1
- package/dist/chat/Tool.js +9 -7
- package/dist/chat/ToolHandler.d.ts +4 -3
- package/dist/chat/ToolHandler.d.ts.map +1 -1
- package/dist/chat/ToolHandler.js +10 -15
- package/dist/chat/Validation.d.ts.map +1 -1
- package/dist/chat/Validation.js +9 -3
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +80 -25
- package/dist/constants.js +1 -1
- package/dist/errors/index.d.ts +21 -7
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +14 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/llm.d.ts +44 -46
- package/dist/llm.d.ts.map +1 -1
- package/dist/llm.js +201 -130
- package/dist/model_aliases.d.ts.map +1 -1
- package/dist/models/ModelRegistry.d.ts.map +1 -1
- package/dist/models/ModelRegistry.js +12 -10
- package/dist/models/PricingRegistry.d.ts +31 -0
- package/dist/models/PricingRegistry.d.ts.map +1 -0
- package/dist/models/PricingRegistry.js +101 -0
- package/dist/models/models.d.ts.map +1 -1
- package/dist/models/models.js +5954 -7352
- package/dist/models/types.d.ts +37 -34
- package/dist/models/types.d.ts.map +1 -1
- package/dist/moderation/Moderation.d.ts.map +1 -1
- package/dist/moderation/Moderation.js +15 -5
- package/dist/providers/BaseProvider.d.ts +12 -8
- package/dist/providers/BaseProvider.d.ts.map +1 -1
- package/dist/providers/BaseProvider.js +17 -7
- package/dist/providers/Provider.d.ts +20 -5
- package/dist/providers/Provider.d.ts.map +1 -1
- package/dist/providers/anthropic/AnthropicProvider.d.ts +1 -1
- package/dist/providers/anthropic/AnthropicProvider.d.ts.map +1 -1
- package/dist/providers/anthropic/AnthropicProvider.js +3 -3
- package/dist/providers/anthropic/Capabilities.d.ts +2 -1
- package/dist/providers/anthropic/Capabilities.d.ts.map +1 -1
- package/dist/providers/anthropic/Capabilities.js +3 -20
- package/dist/providers/anthropic/Chat.d.ts.map +1 -1
- package/dist/providers/anthropic/Chat.js +27 -17
- package/dist/providers/anthropic/Errors.d.ts.map +1 -1
- package/dist/providers/anthropic/Errors.js +5 -2
- package/dist/providers/anthropic/Models.d.ts.map +1 -1
- package/dist/providers/anthropic/Models.js +6 -6
- package/dist/providers/anthropic/Streaming.d.ts.map +1 -1
- package/dist/providers/anthropic/Streaming.js +17 -12
- package/dist/providers/anthropic/Utils.js +8 -5
- package/dist/providers/anthropic/index.d.ts.map +1 -1
- package/dist/providers/anthropic/index.js +4 -3
- package/dist/providers/anthropic/types.d.ts +11 -4
- package/dist/providers/anthropic/types.d.ts.map +1 -1
- package/dist/providers/deepseek/Capabilities.d.ts +7 -5
- package/dist/providers/deepseek/Capabilities.d.ts.map +1 -1
- package/dist/providers/deepseek/Capabilities.js +9 -5
- package/dist/providers/deepseek/Chat.d.ts.map +1 -1
- package/dist/providers/deepseek/Chat.js +10 -9
- package/dist/providers/deepseek/DeepSeekProvider.d.ts +1 -1
- package/dist/providers/deepseek/DeepSeekProvider.d.ts.map +1 -1
- package/dist/providers/deepseek/DeepSeekProvider.js +4 -4
- package/dist/providers/deepseek/Models.d.ts.map +1 -1
- package/dist/providers/deepseek/Models.js +7 -7
- package/dist/providers/deepseek/Streaming.d.ts.map +1 -1
- package/dist/providers/deepseek/Streaming.js +11 -8
- package/dist/providers/deepseek/index.d.ts.map +1 -1
- package/dist/providers/deepseek/index.js +5 -4
- package/dist/providers/gemini/Capabilities.d.ts +5 -33
- package/dist/providers/gemini/Capabilities.d.ts.map +1 -1
- package/dist/providers/gemini/Capabilities.js +7 -30
- package/dist/providers/gemini/Chat.d.ts.map +1 -1
- package/dist/providers/gemini/Chat.js +24 -19
- package/dist/providers/gemini/ChatUtils.d.ts.map +1 -1
- package/dist/providers/gemini/ChatUtils.js +10 -10
- package/dist/providers/gemini/Embeddings.d.ts.map +1 -1
- package/dist/providers/gemini/Embeddings.js +2 -2
- package/dist/providers/gemini/Errors.d.ts.map +1 -1
- package/dist/providers/gemini/Errors.js +5 -2
- package/dist/providers/gemini/GeminiProvider.d.ts +1 -1
- package/dist/providers/gemini/GeminiProvider.d.ts.map +1 -1
- package/dist/providers/gemini/GeminiProvider.js +3 -3
- package/dist/providers/gemini/Image.d.ts.map +1 -1
- package/dist/providers/gemini/Image.js +7 -7
- package/dist/providers/gemini/Models.d.ts.map +1 -1
- package/dist/providers/gemini/Models.js +6 -6
- package/dist/providers/gemini/Streaming.d.ts.map +1 -1
- package/dist/providers/gemini/Streaming.js +18 -14
- package/dist/providers/gemini/Transcription.d.ts.map +1 -1
- package/dist/providers/gemini/Transcription.js +11 -11
- package/dist/providers/gemini/index.d.ts +1 -1
- package/dist/providers/gemini/index.d.ts.map +1 -1
- package/dist/providers/gemini/index.js +5 -4
- package/dist/providers/gemini/types.d.ts +4 -4
- 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 +6 -2
- package/dist/providers/ollama/Models.js +1 -1
- package/dist/providers/ollama/OllamaProvider.d.ts +1 -1
- package/dist/providers/ollama/OllamaProvider.d.ts.map +1 -1
- package/dist/providers/ollama/OllamaProvider.js +2 -2
- package/dist/providers/ollama/index.d.ts +1 -1
- package/dist/providers/ollama/index.d.ts.map +1 -1
- package/dist/providers/ollama/index.js +7 -3
- package/dist/providers/openai/Capabilities.d.ts +2 -1
- package/dist/providers/openai/Capabilities.d.ts.map +1 -1
- package/dist/providers/openai/Capabilities.js +9 -21
- package/dist/providers/openai/Chat.d.ts.map +1 -1
- package/dist/providers/openai/Chat.js +18 -15
- package/dist/providers/openai/Embedding.d.ts.map +1 -1
- package/dist/providers/openai/Embedding.js +11 -7
- package/dist/providers/openai/Errors.d.ts.map +1 -1
- package/dist/providers/openai/Errors.js +5 -2
- package/dist/providers/openai/Image.d.ts.map +1 -1
- package/dist/providers/openai/Image.js +6 -6
- package/dist/providers/openai/Models.d.ts +1 -1
- package/dist/providers/openai/Models.d.ts.map +1 -1
- package/dist/providers/openai/Models.js +12 -8
- package/dist/providers/openai/Moderation.d.ts.map +1 -1
- package/dist/providers/openai/Moderation.js +6 -6
- package/dist/providers/openai/OpenAIProvider.d.ts +2 -3
- package/dist/providers/openai/OpenAIProvider.d.ts.map +1 -1
- package/dist/providers/openai/OpenAIProvider.js +4 -4
- package/dist/providers/openai/Streaming.d.ts.map +1 -1
- package/dist/providers/openai/Streaming.js +18 -13
- package/dist/providers/openai/Transcription.d.ts.map +1 -1
- package/dist/providers/openai/Transcription.js +15 -12
- package/dist/providers/openai/index.d.ts +1 -1
- package/dist/providers/openai/index.d.ts.map +1 -1
- package/dist/providers/openai/index.js +6 -5
- package/dist/providers/openai/types.d.ts +1 -1
- package/dist/providers/openai/utils.js +2 -2
- package/dist/providers/openrouter/Capabilities.d.ts +3 -3
- package/dist/providers/openrouter/Capabilities.d.ts.map +1 -1
- package/dist/providers/openrouter/Capabilities.js +21 -24
- package/dist/providers/openrouter/Models.d.ts.map +1 -1
- package/dist/providers/openrouter/Models.js +20 -16
- package/dist/providers/openrouter/OpenRouterProvider.d.ts.map +1 -1
- package/dist/providers/openrouter/OpenRouterProvider.js +1 -1
- package/dist/providers/openrouter/index.d.ts +1 -1
- package/dist/providers/openrouter/index.d.ts.map +1 -1
- package/dist/providers/openrouter/index.js +6 -5
- package/dist/providers/registry.d.ts +18 -2
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +17 -2
- package/dist/providers/utils.js +1 -1
- package/dist/schema/Schema.d.ts +3 -3
- package/dist/schema/Schema.d.ts.map +1 -1
- package/dist/schema/Schema.js +2 -2
- package/dist/schema/to-json-schema.d.ts +1 -1
- package/dist/schema/to-json-schema.d.ts.map +1 -1
- package/dist/streaming/Stream.d.ts.map +1 -1
- package/dist/streaming/Stream.js +3 -3
- package/dist/utils/Binary.d.ts.map +1 -1
- package/dist/utils/Binary.js +23 -13
- package/dist/utils/FileLoader.d.ts.map +1 -1
- package/dist/utils/FileLoader.js +25 -4
- package/dist/utils/audio.js +1 -1
- package/dist/utils/fetch.d.ts.map +1 -1
- package/dist/utils/fetch.js +3 -2
- package/dist/utils/logger.d.ts +3 -3
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +2 -2
- package/package.json +1 -1
package/dist/models/types.d.ts
CHANGED
|
@@ -1,3 +1,35 @@
|
|
|
1
|
+
export interface ModelPricing {
|
|
2
|
+
text_tokens?: {
|
|
3
|
+
standard?: {
|
|
4
|
+
input_per_million?: number;
|
|
5
|
+
cached_input_per_million?: number;
|
|
6
|
+
output_per_million?: number;
|
|
7
|
+
reasoning_output_per_million?: number;
|
|
8
|
+
};
|
|
9
|
+
batch?: {
|
|
10
|
+
input_per_million?: number;
|
|
11
|
+
cached_input_per_million?: number;
|
|
12
|
+
output_per_million?: number;
|
|
13
|
+
reasoning_output_per_million?: number;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
images?: {
|
|
17
|
+
standard?: {
|
|
18
|
+
input?: number;
|
|
19
|
+
output?: number;
|
|
20
|
+
};
|
|
21
|
+
batch?: {
|
|
22
|
+
input?: number;
|
|
23
|
+
output?: number;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
audio_tokens?: {
|
|
27
|
+
standard?: {
|
|
28
|
+
input_per_million?: number;
|
|
29
|
+
output_per_million?: number;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
}
|
|
1
33
|
export interface Model {
|
|
2
34
|
id: string;
|
|
3
35
|
name: string;
|
|
@@ -12,39 +44,10 @@ export interface Model {
|
|
|
12
44
|
output: string[];
|
|
13
45
|
};
|
|
14
46
|
capabilities: string[];
|
|
15
|
-
pricing?:
|
|
16
|
-
|
|
17
|
-
standard?: {
|
|
18
|
-
input_per_million?: number;
|
|
19
|
-
cached_input_per_million?: number;
|
|
20
|
-
output_per_million?: number;
|
|
21
|
-
reasoning_output_per_million?: number;
|
|
22
|
-
};
|
|
23
|
-
batch?: {
|
|
24
|
-
input_per_million?: number;
|
|
25
|
-
output_per_million?: number;
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
images?: {
|
|
29
|
-
standard?: {
|
|
30
|
-
input?: number;
|
|
31
|
-
output?: number;
|
|
32
|
-
};
|
|
33
|
-
batch?: {
|
|
34
|
-
input?: number;
|
|
35
|
-
output?: number;
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
|
-
audio_tokens?: {
|
|
39
|
-
standard?: {
|
|
40
|
-
input_per_million?: number;
|
|
41
|
-
output_per_million?: number;
|
|
42
|
-
};
|
|
43
|
-
};
|
|
44
|
-
};
|
|
45
|
-
metadata?: Record<string, any>;
|
|
47
|
+
pricing?: ModelPricing;
|
|
48
|
+
metadata?: Record<string, unknown>;
|
|
46
49
|
}
|
|
47
|
-
export type ProviderName =
|
|
48
|
-
export type ModelCapability =
|
|
49
|
-
export type ModelModality =
|
|
50
|
+
export type ProviderName = "openai" | "anthropic" | "gemini" | "deepseek" | "openrouter" | "ollama" | (string & {});
|
|
51
|
+
export type ModelCapability = "streaming" | "function_calling" | "structured_output" | "predicted_outputs" | "distillation" | "fine_tuning" | "batch" | "realtime" | "image_generation" | "speech_generation" | "transcription" | "translation" | "citations" | "reasoning" | "caching" | "moderation" | "json_mode" | "vision" | "chat" | "tools";
|
|
52
|
+
export type ModelModality = "text" | "image" | "audio" | "pdf" | "video" | "file" | "embeddings" | "moderation";
|
|
50
53
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/models/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/models/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE;QACZ,QAAQ,CAAC,EAAE;YACT,iBAAiB,CAAC,EAAE,MAAM,CAAC;YAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAC;YAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;YAC5B,4BAA4B,CAAC,EAAE,MAAM,CAAC;SACvC,CAAC;QACF,KAAK,CAAC,EAAE;YACN,iBAAiB,CAAC,EAAE,MAAM,CAAC;YAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAC;YAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;YAC5B,4BAA4B,CAAC,EAAE,MAAM,CAAC;SACvC,CAAC;KACH,CAAC;IACF,MAAM,CAAC,EAAE;QACP,QAAQ,CAAC,EAAE;YACT,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,KAAK,CAAC,EAAE;YACN,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC;IACF,YAAY,CAAC,EAAE;QACb,QAAQ,CAAC,EAAE;YACT,iBAAiB,CAAC,EAAE,MAAM,CAAC;YAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;SAC7B,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,UAAU,GACV,YAAY,GACZ,QAAQ,GACR,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,MAAM,MAAM,eAAe,GACvB,WAAW,GACX,kBAAkB,GAClB,mBAAmB,GACnB,mBAAmB,GACnB,cAAc,GACd,aAAa,GACb,OAAO,GACP,UAAU,GACV,kBAAkB,GAClB,mBAAmB,GACnB,eAAe,GACf,aAAa,GACb,WAAW,GACX,WAAW,GACX,SAAS,GACT,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,MAAM,GACN,OAAO,CAAC;AAEZ,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,OAAO,GACP,OAAO,GACP,KAAK,GACL,OAAO,GACP,MAAM,GACN,YAAY,GACZ,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Moderation.d.ts","sourceRoot":"","sources":["../../src/moderation/Moderation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEhF;;;GAGG;AACH,qBAAa,UAAW,YAAW,QAAQ,CAAC,cAAc,CAAC;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,kBAAkB;IAEzD,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,cAAc,EAAE,CAE9B;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,iBAAiB,IAAI,MAAM,EAAE,CAMhC;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAExC;IAED;;OAEG;IACH,IAAI,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE3C;IAGD,IAAI,kBAAkB,IAAI,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"Moderation.d.ts","sourceRoot":"","sources":["../../src/moderation/Moderation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEhF;;;GAGG;AACH,qBAAa,UAAW,YAAW,QAAQ,CAAC,cAAc,CAAC;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,kBAAkB;IAEzD,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,cAAc,EAAE,CAE9B;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,iBAAiB,IAAI,MAAM,EAAE,CAMhC;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAExC;IAED;;OAEG;IACH,IAAI,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE3C;IAGD,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAEjC;IACD,IAAI,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE5C;IACD,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACF,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC;CAK/C;AAED;;GAEG;AACH,qBAAa,cAAc;aACG,GAAG,EAAE,gBAAgB;gBAArB,GAAG,EAAE,gBAAgB;IAEjD,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAExC;IAED,IAAI,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE3C;IAED,IAAI,iBAAiB,IAAI,MAAM,EAAE,CAEhC;IAGD,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAEjC;IACD,IAAI,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE5C;CACF"}
|
|
@@ -54,9 +54,15 @@ export class Moderation {
|
|
|
54
54
|
return this.results[0]?.categoryScores || {};
|
|
55
55
|
}
|
|
56
56
|
// --- Ruby-compatible aliases ---
|
|
57
|
-
get flagged_categories() {
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
get flagged_categories() {
|
|
58
|
+
return this.flaggedCategories;
|
|
59
|
+
}
|
|
60
|
+
get category_scores() {
|
|
61
|
+
return this.categoryScores;
|
|
62
|
+
}
|
|
63
|
+
isFlagged() {
|
|
64
|
+
return this.flagged;
|
|
65
|
+
}
|
|
60
66
|
/**
|
|
61
67
|
* Makes the Moderation object iterable (yields results)
|
|
62
68
|
*/
|
|
@@ -87,6 +93,10 @@ export class ModerationItem {
|
|
|
87
93
|
return Object.keys(this.categories).filter((cat) => this.categories[cat]);
|
|
88
94
|
}
|
|
89
95
|
// --- Ruby-compatible aliases ---
|
|
90
|
-
get flagged_categories() {
|
|
91
|
-
|
|
96
|
+
get flagged_categories() {
|
|
97
|
+
return this.flaggedCategories;
|
|
98
|
+
}
|
|
99
|
+
get category_scores() {
|
|
100
|
+
return this.categoryScores;
|
|
101
|
+
}
|
|
92
102
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Message } from "../chat/Message.js";
|
|
2
|
+
import { Provider, ChatRequest, ChatResponse, ChatChunk, ModelInfo, ImageRequest, ImageResponse, TranscriptionRequest, TranscriptionResponse, ModerationRequest, ModerationResponse, EmbeddingRequest, EmbeddingResponse, ProviderCapabilities } from "./Provider.js";
|
|
2
3
|
/**
|
|
3
4
|
* Abstract base class for all LLM providers.
|
|
4
5
|
* Provides common functionality and default implementations for unsupported features.
|
|
@@ -9,15 +10,18 @@ export declare abstract class BaseProvider implements Provider {
|
|
|
9
10
|
abstract headers(): Record<string, string>;
|
|
10
11
|
protected abstract providerName(): string;
|
|
11
12
|
get id(): string;
|
|
12
|
-
defaultModel(
|
|
13
|
+
defaultModel(_feature?: string): string;
|
|
13
14
|
protected throwUnsupportedError(feature: string): never;
|
|
14
15
|
abstract chat(request: ChatRequest): Promise<ChatResponse>;
|
|
15
|
-
abstract capabilities?:
|
|
16
|
-
stream?(
|
|
16
|
+
abstract capabilities?: ProviderCapabilities;
|
|
17
|
+
stream?(_request: ChatRequest): AsyncIterable<ChatChunk>;
|
|
17
18
|
listModels?(): Promise<ModelInfo[]>;
|
|
18
|
-
paint?(
|
|
19
|
-
transcribe?(
|
|
20
|
-
moderate?(
|
|
21
|
-
embed?(
|
|
19
|
+
paint?(_request: ImageRequest): Promise<ImageResponse>;
|
|
20
|
+
transcribe?(_request: TranscriptionRequest): Promise<TranscriptionResponse>;
|
|
21
|
+
moderate?(_request: ModerationRequest): Promise<ModerationResponse>;
|
|
22
|
+
embed?(_request: EmbeddingRequest): Promise<EmbeddingResponse>;
|
|
23
|
+
formatToolResultMessage(toolCallId: string, content: string, options?: {
|
|
24
|
+
isError?: boolean;
|
|
25
|
+
}): Message;
|
|
22
26
|
}
|
|
23
27
|
//# sourceMappingURL=BaseProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseProvider.d.ts","sourceRoot":"","sources":["../../src/providers/BaseProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,SAAS,EACT,SAAS,EACT,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"BaseProvider.d.ts","sourceRoot":"","sources":["../../src/providers/BaseProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EACL,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,SAAS,EACT,SAAS,EACT,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,eAAe,CAAC;AAEvB;;;;GAIG;AACH,8BAAsB,YAAa,YAAW,QAAQ;aACpC,OAAO,IAAI,MAAM;aACjB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IACjD,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,MAAM;IAEzC,IAAI,EAAE,IAAI,MAAM,CAEf;IAEM,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAI9C,SAAS,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK;IAIvD,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAC1D,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAEtC,MAAM,CAAC,CAAC,QAAQ,EAAE,WAAW,GAAG,aAAa,CAAC,SAAS,CAAC;IAKzD,UAAU,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAInC,KAAK,CAAC,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAItD,UAAU,CAAC,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAI3E,QAAQ,CAAC,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAInE,KAAK,CAAC,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIpE,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO;CAQvG"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { UnsupportedFeatureError } from "../errors/index.js";
|
|
1
2
|
/**
|
|
2
3
|
* Abstract base class for all LLM providers.
|
|
3
4
|
* Provides common functionality and default implementations for unsupported features.
|
|
@@ -7,28 +8,37 @@ export class BaseProvider {
|
|
|
7
8
|
get id() {
|
|
8
9
|
return this.providerName();
|
|
9
10
|
}
|
|
10
|
-
defaultModel(
|
|
11
|
+
defaultModel(_feature) {
|
|
11
12
|
return "";
|
|
12
13
|
}
|
|
13
14
|
throwUnsupportedError(feature) {
|
|
14
|
-
throw new
|
|
15
|
+
throw new UnsupportedFeatureError(this.providerName(), feature);
|
|
15
16
|
}
|
|
16
|
-
async *stream(
|
|
17
|
+
async *stream(_request) {
|
|
17
18
|
this.throwUnsupportedError("stream");
|
|
19
|
+
yield* [];
|
|
18
20
|
}
|
|
19
21
|
async listModels() {
|
|
20
22
|
this.throwUnsupportedError("listModels");
|
|
21
23
|
}
|
|
22
|
-
async paint(
|
|
24
|
+
async paint(_request) {
|
|
23
25
|
this.throwUnsupportedError("paint");
|
|
24
26
|
}
|
|
25
|
-
async transcribe(
|
|
27
|
+
async transcribe(_request) {
|
|
26
28
|
this.throwUnsupportedError("transcribe");
|
|
27
29
|
}
|
|
28
|
-
async moderate(
|
|
30
|
+
async moderate(_request) {
|
|
29
31
|
this.throwUnsupportedError("moderate");
|
|
30
32
|
}
|
|
31
|
-
async embed(
|
|
33
|
+
async embed(_request) {
|
|
32
34
|
this.throwUnsupportedError("embed");
|
|
33
35
|
}
|
|
36
|
+
formatToolResultMessage(toolCallId, content, options) {
|
|
37
|
+
return {
|
|
38
|
+
role: "tool",
|
|
39
|
+
tool_call_id: toolCallId,
|
|
40
|
+
content: content,
|
|
41
|
+
isError: options?.isError
|
|
42
|
+
};
|
|
43
|
+
}
|
|
34
44
|
}
|
|
@@ -1,21 +1,33 @@
|
|
|
1
1
|
import { Message } from "../chat/Message.js";
|
|
2
2
|
import { ToolDefinition, ToolCall } from "../chat/Tool.js";
|
|
3
|
+
export interface ResponseFormat {
|
|
4
|
+
type: "text" | "json_object" | "json_schema";
|
|
5
|
+
json_schema?: {
|
|
6
|
+
name: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
strict?: boolean;
|
|
9
|
+
schema?: Record<string, unknown>;
|
|
10
|
+
[key: string]: unknown;
|
|
11
|
+
};
|
|
12
|
+
[key: string]: unknown;
|
|
13
|
+
}
|
|
3
14
|
export interface ChatRequest {
|
|
4
15
|
model: string;
|
|
5
16
|
messages: Message[];
|
|
6
17
|
tools?: ToolDefinition[];
|
|
7
18
|
temperature?: number;
|
|
8
19
|
max_tokens?: number;
|
|
9
|
-
response_format?:
|
|
20
|
+
response_format?: ResponseFormat;
|
|
10
21
|
headers?: Record<string, string>;
|
|
11
22
|
requestTimeout?: number;
|
|
12
|
-
[key: string]:
|
|
23
|
+
[key: string]: unknown;
|
|
13
24
|
}
|
|
14
25
|
export interface ChatChunk {
|
|
15
26
|
content: string;
|
|
16
27
|
reasoning?: string;
|
|
17
28
|
tool_calls?: ToolCall[];
|
|
18
29
|
done?: boolean;
|
|
30
|
+
usage?: Usage;
|
|
19
31
|
}
|
|
20
32
|
export interface Usage {
|
|
21
33
|
input_tokens: number;
|
|
@@ -57,8 +69,8 @@ export interface ModelInfo {
|
|
|
57
69
|
output: string[];
|
|
58
70
|
};
|
|
59
71
|
capabilities: string[];
|
|
60
|
-
pricing:
|
|
61
|
-
metadata?: Record<string,
|
|
72
|
+
pricing: unknown;
|
|
73
|
+
metadata?: Record<string, unknown>;
|
|
62
74
|
}
|
|
63
75
|
export interface ImageRequest {
|
|
64
76
|
model?: string;
|
|
@@ -89,7 +101,7 @@ export interface TranscriptionSegment {
|
|
|
89
101
|
end: number;
|
|
90
102
|
text: string;
|
|
91
103
|
speaker?: string;
|
|
92
|
-
[key: string]:
|
|
104
|
+
[key: string]: unknown;
|
|
93
105
|
}
|
|
94
106
|
export interface TranscriptionResponse {
|
|
95
107
|
text: string;
|
|
@@ -140,5 +152,8 @@ export interface Provider {
|
|
|
140
152
|
embed?(request: EmbeddingRequest): Promise<EmbeddingResponse>;
|
|
141
153
|
defaultModel(feature?: string): string;
|
|
142
154
|
capabilities?: ProviderCapabilities;
|
|
155
|
+
formatToolResultMessage(toolCallId: string, content: string, options?: {
|
|
156
|
+
isError?: boolean;
|
|
157
|
+
}): Message;
|
|
143
158
|
}
|
|
144
159
|
//# sourceMappingURL=Provider.d.ts.map
|
|
@@ -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,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,
|
|
1
|
+
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../src/providers/Provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ export declare class AnthropicProvider extends BaseProvider implements Provider
|
|
|
26
26
|
apiBase(): string;
|
|
27
27
|
headers(): Record<string, string>;
|
|
28
28
|
protected providerName(): string;
|
|
29
|
-
defaultModel(
|
|
29
|
+
defaultModel(_feature?: string): string;
|
|
30
30
|
chat(request: ChatRequest): Promise<ChatResponse>;
|
|
31
31
|
stream(request: ChatRequest): AsyncGenerator<ChatChunk>;
|
|
32
32
|
listModels(): Promise<ModelInfo[]>;
|
|
@@ -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,
|
|
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;AAMlD,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"}
|
|
@@ -19,7 +19,7 @@ export class AnthropicProvider extends BaseProvider {
|
|
|
19
19
|
supportsModeration: (_model) => false,
|
|
20
20
|
supportsReasoning: (_model) => false,
|
|
21
21
|
supportsDeveloperRole: (_model) => true,
|
|
22
|
-
getContextWindow: (model) => Capabilities.getContextWindow(model)
|
|
22
|
+
getContextWindow: (model) => Capabilities.getContextWindow(model)
|
|
23
23
|
};
|
|
24
24
|
constructor(options) {
|
|
25
25
|
super();
|
|
@@ -36,13 +36,13 @@ export class AnthropicProvider extends BaseProvider {
|
|
|
36
36
|
return {
|
|
37
37
|
"x-api-key": this.options.apiKey,
|
|
38
38
|
"anthropic-version": "2023-06-01",
|
|
39
|
-
"Content-Type": "application/json"
|
|
39
|
+
"Content-Type": "application/json"
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
42
|
providerName() {
|
|
43
43
|
return "Anthropic";
|
|
44
44
|
}
|
|
45
|
-
defaultModel(
|
|
45
|
+
defaultModel(_feature) {
|
|
46
46
|
return "claude-3-5-haiku-20241022";
|
|
47
47
|
}
|
|
48
48
|
async chat(request) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ModelPricing } from "../../models/types.js";
|
|
1
2
|
export declare class Capabilities {
|
|
2
3
|
static getContextWindow(modelId: string): number | null;
|
|
3
4
|
static getMaxOutputTokens(modelId: string): number | null;
|
|
@@ -6,6 +7,6 @@ export declare class Capabilities {
|
|
|
6
7
|
static supportsJsonMode(modelId: string): boolean;
|
|
7
8
|
static supportsExtendedThinking(modelId: string): boolean;
|
|
8
9
|
static getCapabilities(modelId: string): string[];
|
|
9
|
-
static getPricing(modelId: string):
|
|
10
|
+
static getPricing(modelId: string): ModelPricing | undefined;
|
|
10
11
|
}
|
|
11
12
|
//# sourceMappingURL=Capabilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Capabilities.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic/Capabilities.ts"],"names":[],"mappings":"AAEA,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,GAAG;
|
|
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;CAG7D"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ModelRegistry } from "../../models/ModelRegistry.js";
|
|
2
|
+
import { PricingRegistry } from "../../models/PricingRegistry.js";
|
|
2
3
|
export class Capabilities {
|
|
3
4
|
static getContextWindow(modelId) {
|
|
4
5
|
const val = ModelRegistry.getContextWindow(modelId, "anthropic");
|
|
@@ -42,7 +43,7 @@ export class Capabilities {
|
|
|
42
43
|
caps.push("reasoning");
|
|
43
44
|
if (model.capabilities.includes("json_mode"))
|
|
44
45
|
caps.push("json_mode");
|
|
45
|
-
model.capabilities.forEach(c => {
|
|
46
|
+
model.capabilities.forEach((c) => {
|
|
46
47
|
if (!caps.includes(c))
|
|
47
48
|
caps.push(c);
|
|
48
49
|
});
|
|
@@ -59,24 +60,6 @@ export class Capabilities {
|
|
|
59
60
|
return caps;
|
|
60
61
|
}
|
|
61
62
|
static getPricing(modelId) {
|
|
62
|
-
|
|
63
|
-
if (model?.pricing)
|
|
64
|
-
return model.pricing;
|
|
65
|
-
const inputCpm = 3.0;
|
|
66
|
-
const outputCpm = 15.0;
|
|
67
|
-
return {
|
|
68
|
-
text_tokens: {
|
|
69
|
-
standard: {
|
|
70
|
-
input_per_million: inputCpm,
|
|
71
|
-
output_per_million: outputCpm,
|
|
72
|
-
...(this.supportsExtendedThinking(modelId) ? { reasoning_output_per_million: outputCpm * 2.5 } : {})
|
|
73
|
-
},
|
|
74
|
-
batch: {
|
|
75
|
-
input_per_million: inputCpm * 0.5,
|
|
76
|
-
output_per_million: outputCpm * 0.5,
|
|
77
|
-
...(this.supportsExtendedThinking(modelId) ? { reasoning_output_per_million: outputCpm * 1.25 } : {})
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
};
|
|
63
|
+
return PricingRegistry.getPricing(modelId, "anthropic");
|
|
81
64
|
}
|
|
82
65
|
}
|
|
@@ -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,EAAE,MAAM,gBAAgB,CAAC;AAU3D,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;CAoI3D"}
|
|
@@ -19,8 +19,10 @@ export class AnthropicChat {
|
|
|
19
19
|
let system = systemPrompt;
|
|
20
20
|
if (request.response_format) {
|
|
21
21
|
let schemaText = "";
|
|
22
|
-
if (request.response_format.type === "json_schema" &&
|
|
23
|
-
|
|
22
|
+
if (request.response_format.type === "json_schema" &&
|
|
23
|
+
request.response_format.json_schema?.schema) {
|
|
24
|
+
schemaText =
|
|
25
|
+
"\nSchema:\n" + JSON.stringify(request.response_format.json_schema.schema, null, 2);
|
|
24
26
|
}
|
|
25
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.`;
|
|
26
28
|
system = system ? `${system}\n\n${instruction}` : instruction;
|
|
@@ -32,26 +34,26 @@ export class AnthropicChat {
|
|
|
32
34
|
max_tokens: maxTokens,
|
|
33
35
|
system: system,
|
|
34
36
|
stream: false,
|
|
35
|
-
...rest
|
|
37
|
+
...rest
|
|
36
38
|
};
|
|
37
39
|
if (request.temperature !== undefined) {
|
|
38
40
|
body.temperature = request.temperature;
|
|
39
41
|
}
|
|
40
42
|
// Map tools
|
|
41
43
|
if (request.tools && request.tools.length > 0) {
|
|
42
|
-
body.tools = request.tools.map(tool => ({
|
|
44
|
+
body.tools = request.tools.map((tool) => ({
|
|
43
45
|
name: tool.function.name,
|
|
44
46
|
description: tool.function.description,
|
|
45
47
|
input_schema: tool.function.parameters
|
|
46
48
|
}));
|
|
47
49
|
}
|
|
48
50
|
// Check if any message contains PDF content to add beta header
|
|
49
|
-
const hasPdf = messages.some(msg => Array.isArray(msg.content) && msg.content.some(block => block.type === "document"));
|
|
51
|
+
const hasPdf = messages.some((msg) => Array.isArray(msg.content) && msg.content.some((block) => block.type === "document"));
|
|
50
52
|
const headers = {
|
|
51
53
|
"x-api-key": this.apiKey,
|
|
52
54
|
"anthropic-version": "2023-06-01",
|
|
53
55
|
"content-type": "application/json",
|
|
54
|
-
...request.headers
|
|
56
|
+
...request.headers
|
|
55
57
|
};
|
|
56
58
|
if (hasPdf) {
|
|
57
59
|
headers["anthropic-beta"] = "pdfs-2024-09-25";
|
|
@@ -61,7 +63,7 @@ export class AnthropicChat {
|
|
|
61
63
|
const response = await fetchWithTimeout(url, {
|
|
62
64
|
method: "POST",
|
|
63
65
|
headers: headers,
|
|
64
|
-
body: JSON.stringify(body)
|
|
66
|
+
body: JSON.stringify(body)
|
|
65
67
|
}, requestTimeout);
|
|
66
68
|
if (!response.ok) {
|
|
67
69
|
await handleAnthropicError(response, model);
|
|
@@ -71,7 +73,7 @@ export class AnthropicChat {
|
|
|
71
73
|
const contentBlocks = json.content;
|
|
72
74
|
// Extract text content and tool calls
|
|
73
75
|
let content = null;
|
|
74
|
-
const toolCalls = [];
|
|
76
|
+
const toolCalls = [];
|
|
75
77
|
for (const block of contentBlocks) {
|
|
76
78
|
if (block.type === "text") {
|
|
77
79
|
if (content === null)
|
|
@@ -89,14 +91,22 @@ export class AnthropicChat {
|
|
|
89
91
|
});
|
|
90
92
|
}
|
|
91
93
|
}
|
|
92
|
-
const usage = json.usage
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
94
|
+
const usage = json.usage
|
|
95
|
+
? {
|
|
96
|
+
input_tokens: json.usage.input_tokens,
|
|
97
|
+
output_tokens: json.usage.output_tokens,
|
|
98
|
+
total_tokens: json.usage.input_tokens + json.usage.output_tokens,
|
|
99
|
+
cached_tokens: json.usage.cache_read_input_tokens,
|
|
100
|
+
cache_creation_tokens: json.usage.cache_creation_input_tokens
|
|
101
|
+
}
|
|
102
|
+
: undefined;
|
|
103
|
+
const calculatedUsage = usage
|
|
104
|
+
? ModelRegistry.calculateCost(usage, model, "anthropic")
|
|
105
|
+
: undefined;
|
|
106
|
+
return {
|
|
107
|
+
content,
|
|
108
|
+
usage: calculatedUsage,
|
|
109
|
+
tool_calls: toolCalls.length > 0 ? toolCalls : undefined
|
|
110
|
+
};
|
|
101
111
|
}
|
|
102
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Errors.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic/Errors.ts"],"names":[],"mappings":"AASA,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"Errors.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic/Errors.ts"],"names":[],"mappings":"AASA,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAyC9F"}
|
|
@@ -5,8 +5,11 @@ export async function handleAnthropicError(response, modelId) {
|
|
|
5
5
|
let message = `Anthropic error (${status})`;
|
|
6
6
|
try {
|
|
7
7
|
body = await response.json();
|
|
8
|
-
if (body
|
|
9
|
-
|
|
8
|
+
if (body && typeof body === "object" && "error" in body) {
|
|
9
|
+
const err = body.error;
|
|
10
|
+
if (err && err.message) {
|
|
11
|
+
message = err.message;
|
|
12
|
+
}
|
|
10
13
|
}
|
|
11
14
|
}
|
|
12
15
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Models.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic/Models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Models.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic/Models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI3C,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM;IAG3B,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAqDrC,IAAI,CAAC,OAAO,EAAE,MAAM;CAGrB"}
|
|
@@ -14,12 +14,12 @@ export class AnthropicModels {
|
|
|
14
14
|
headers: {
|
|
15
15
|
"x-api-key": this.apiKey,
|
|
16
16
|
"anthropic-version": "2023-06-01",
|
|
17
|
-
"content-type": "application/json"
|
|
18
|
-
}
|
|
17
|
+
"content-type": "application/json"
|
|
18
|
+
}
|
|
19
19
|
});
|
|
20
20
|
if (response.ok) {
|
|
21
|
-
const { data } = await response.json();
|
|
22
|
-
return data.map(m => {
|
|
21
|
+
const { data } = (await response.json());
|
|
22
|
+
return data.map((m) => {
|
|
23
23
|
const modelId = m.id;
|
|
24
24
|
const registryModel = ModelRegistry.find(modelId, "anthropic");
|
|
25
25
|
const info = {
|
|
@@ -46,8 +46,8 @@ export class AnthropicModels {
|
|
|
46
46
|
// Fallback
|
|
47
47
|
}
|
|
48
48
|
return ModelRegistry.all()
|
|
49
|
-
.filter(m => m.provider === "anthropic")
|
|
50
|
-
.map(m => ({
|
|
49
|
+
.filter((m) => m.provider === "anthropic")
|
|
50
|
+
.map((m) => ({
|
|
51
51
|
...m,
|
|
52
52
|
capabilities: Capabilities.getCapabilities(m.id)
|
|
53
53
|
}));
|
|
@@ -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;
|
|
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;CA2M9F"}
|