@llmgateway/models 1.0.1 → 1.1.1

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.
Files changed (34) hide show
  1. package/dist/get-cheapest-from-available-providers.d.ts +30 -0
  2. package/dist/get-cheapest-from-available-providers.js +183 -0
  3. package/dist/get-cheapest-from-available-providers.js.map +1 -0
  4. package/dist/get-cheapest-model-for-provider.d.ts +2 -0
  5. package/dist/get-cheapest-model-for-provider.js +49 -0
  6. package/dist/get-cheapest-model-for-provider.js.map +1 -0
  7. package/dist/get-provider-endpoint.d.ts +3 -0
  8. package/dist/get-provider-endpoint.js +243 -0
  9. package/dist/get-provider-endpoint.js.map +1 -0
  10. package/dist/get-provider-headers.d.ts +5 -0
  11. package/dist/get-provider-headers.js +45 -0
  12. package/dist/get-provider-headers.js.map +1 -0
  13. package/dist/models.spec.d.ts +1 -0
  14. package/dist/models.spec.js +263 -0
  15. package/dist/models.spec.js.map +1 -0
  16. package/dist/prepare-request-body.d.ts +10 -0
  17. package/dist/prepare-request-body.js +1081 -0
  18. package/dist/prepare-request-body.js.map +1 -0
  19. package/dist/prepare-request-body.spec.d.ts +1 -0
  20. package/dist/prepare-request-body.spec.js +231 -0
  21. package/dist/prepare-request-body.spec.js.map +1 -0
  22. package/dist/process-image-url.d.ts +4 -0
  23. package/dist/process-image-url.js +121 -0
  24. package/dist/process-image-url.js.map +1 -0
  25. package/dist/transform-anthropic-messages.d.ts +2 -0
  26. package/dist/transform-anthropic-messages.js +185 -0
  27. package/dist/transform-anthropic-messages.js.map +1 -0
  28. package/dist/transform-google-messages.d.ts +25 -0
  29. package/dist/transform-google-messages.js +122 -0
  30. package/dist/transform-google-messages.js.map +1 -0
  31. package/dist/validate-provider-key.d.ts +4 -0
  32. package/dist/validate-provider-key.js +113 -0
  33. package/dist/validate-provider-key.js.map +1 -0
  34. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-request-body.js","sourceRoot":"","sources":["../src/prepare-request-body.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,231 @@
1
+ import { describe, expect, test } from "vitest";
2
+ import { prepareRequestBody } from "./prepare-request-body.js";
3
+ describe("prepareRequestBody - Anthropic", () => {
4
+ test("should extract system messages to system field for caching", async () => {
5
+ const requestBody = (await prepareRequestBody("anthropic", "claude-3-5-sonnet-20241022", [
6
+ { role: "system", content: "You are a helpful assistant." },
7
+ { role: "user", content: "Hello!" },
8
+ ], false, undefined, 1024, undefined, undefined, undefined, undefined, undefined, undefined, undefined, false, false));
9
+ expect(requestBody.system).toBeDefined();
10
+ expect(Array.isArray(requestBody.system)).toBe(true);
11
+ expect(requestBody.system).toHaveLength(1);
12
+ expect(requestBody.system[0].type).toBe("text");
13
+ expect(requestBody.system[0].text).toBe("You are a helpful assistant.");
14
+ expect(requestBody.system[0].cache_control).toBeUndefined();
15
+ expect(requestBody.messages).toHaveLength(1);
16
+ expect(requestBody.messages[0].role).toBe("user");
17
+ });
18
+ test("should add cache_control for long system prompts", async () => {
19
+ const longSystemPrompt = "A".repeat(5000);
20
+ const requestBody = (await prepareRequestBody("anthropic", "claude-3-5-sonnet-20241022", [
21
+ { role: "system", content: longSystemPrompt },
22
+ { role: "user", content: "Hello!" },
23
+ ], false, undefined, 1024, undefined, undefined, undefined, undefined, undefined, undefined, undefined, false, false));
24
+ expect(requestBody.system).toBeDefined();
25
+ expect(Array.isArray(requestBody.system)).toBe(true);
26
+ expect(requestBody.system[0].cache_control).toEqual({
27
+ type: "ephemeral",
28
+ });
29
+ });
30
+ test("should handle array content in system messages", async () => {
31
+ const requestBody = (await prepareRequestBody("anthropic", "claude-3-5-sonnet-20241022", [
32
+ {
33
+ role: "system",
34
+ content: [
35
+ { type: "text", text: "Part 1. " },
36
+ { type: "text", text: "Part 2." },
37
+ ],
38
+ },
39
+ { role: "user", content: "Hello!" },
40
+ ], false, undefined, 1024, undefined, undefined, undefined, undefined, undefined, undefined, undefined, false, false));
41
+ expect(requestBody.system).toBeDefined();
42
+ expect(Array.isArray(requestBody.system)).toBe(true);
43
+ expect(requestBody.system[0].text).toBe("Part 1. Part 2.");
44
+ });
45
+ test("should limit cache_control blocks to 4 total across system and user messages", async () => {
46
+ const longContent = "A".repeat(5000);
47
+ const requestBody = (await prepareRequestBody("anthropic", "claude-3-5-sonnet-20241022", [
48
+ { role: "system", content: longContent },
49
+ { role: "system", content: longContent },
50
+ { role: "user", content: longContent },
51
+ { role: "user", content: longContent },
52
+ { role: "user", content: longContent },
53
+ ], false, undefined, 1024, undefined, undefined, undefined, undefined, undefined, undefined, undefined, false, false));
54
+ let totalCacheControlBlocks = 0;
55
+ if (requestBody.system && Array.isArray(requestBody.system)) {
56
+ for (const block of requestBody.system) {
57
+ if (block.cache_control) {
58
+ totalCacheControlBlocks++;
59
+ }
60
+ }
61
+ }
62
+ for (const msg of requestBody.messages) {
63
+ if (Array.isArray(msg.content)) {
64
+ for (const block of msg.content) {
65
+ if (block.cache_control) {
66
+ totalCacheControlBlocks++;
67
+ }
68
+ }
69
+ }
70
+ }
71
+ expect(totalCacheControlBlocks).toBe(4);
72
+ });
73
+ });
74
+ describe("prepareRequestBody - Google AI Studio", () => {
75
+ test("should set thinkingBudget when reasoning_effort is provided", async () => {
76
+ const requestBody = (await prepareRequestBody("google-ai-studio", "gemini-2.5-pro", [{ role: "user", content: "What is 2+2?" }], false, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, "medium", true, false));
77
+ expect(requestBody.generationConfig).toBeDefined();
78
+ expect(requestBody.generationConfig.thinkingConfig).toBeDefined();
79
+ expect(requestBody.generationConfig.thinkingConfig.includeThoughts).toBe(true);
80
+ expect(requestBody.generationConfig.thinkingConfig.thinkingBudget).toBe(8192);
81
+ });
82
+ test("should map reasoning_effort values correctly", async () => {
83
+ const effortMapping = [
84
+ { effort: "minimal", expected: 512 },
85
+ { effort: "low", expected: 2048 },
86
+ { effort: "medium", expected: 8192 },
87
+ { effort: "high", expected: 24576 },
88
+ ];
89
+ for (const { effort, expected } of effortMapping) {
90
+ const requestBody = (await prepareRequestBody("google-ai-studio", "gemini-2.5-pro", [{ role: "user", content: "test" }], false, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, effort, true, false));
91
+ expect(requestBody.generationConfig.thinkingConfig.thinkingBudget).toBe(expected);
92
+ }
93
+ });
94
+ test("should not set thinkingBudget when reasoning_effort is not provided", async () => {
95
+ const requestBody = (await prepareRequestBody("google-ai-studio", "gemini-2.5-pro", [{ role: "user", content: "test" }], false, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, true, false));
96
+ expect(requestBody.generationConfig.thinkingConfig.includeThoughts).toBe(true);
97
+ expect(requestBody.generationConfig.thinkingConfig.thinkingBudget).toBeUndefined();
98
+ });
99
+ test("should not set thinkingConfig when supportsReasoning is false", async () => {
100
+ const requestBody = (await prepareRequestBody("google-ai-studio", "gemini-1.5-pro", [{ role: "user", content: "test" }], false, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, "medium", false, false));
101
+ expect(requestBody.generationConfig.thinkingConfig).toBeUndefined();
102
+ });
103
+ test("should expand $ref references in tool parameters", async () => {
104
+ const toolsWithRef = [
105
+ {
106
+ type: "function",
107
+ function: {
108
+ name: "ask_question",
109
+ description: "Ask a question",
110
+ parameters: {
111
+ type: "object",
112
+ properties: {
113
+ question: { type: "string" },
114
+ options: {
115
+ type: "array",
116
+ items: { $ref: "#/$defs/QuestionOption" },
117
+ },
118
+ },
119
+ $defs: {
120
+ QuestionOption: {
121
+ type: "object",
122
+ properties: {
123
+ label: { type: "string" },
124
+ value: { type: "string" },
125
+ },
126
+ required: ["label", "value"],
127
+ },
128
+ },
129
+ required: ["question"],
130
+ },
131
+ },
132
+ },
133
+ ];
134
+ const requestBody = (await prepareRequestBody("google-ai-studio", "gemini-2.0-flash", [{ role: "user", content: "test" }], false, undefined, undefined, undefined, undefined, undefined, undefined, toolsWithRef, undefined, undefined, false, false));
135
+ expect(requestBody.tools).toBeDefined();
136
+ expect(requestBody.tools[0].functionDeclarations).toBeDefined();
137
+ const params = requestBody.tools[0].functionDeclarations[0].parameters;
138
+ expect(params.$defs).toBeUndefined();
139
+ expect(params.properties.options.items).toEqual({
140
+ type: "object",
141
+ properties: {
142
+ label: { type: "string" },
143
+ value: { type: "string" },
144
+ },
145
+ required: ["label", "value"],
146
+ });
147
+ });
148
+ test("should strip additionalProperties from tool parameters", async () => {
149
+ const toolsWithAdditionalProps = [
150
+ {
151
+ type: "function",
152
+ function: {
153
+ name: "test_tool",
154
+ description: "Test tool",
155
+ parameters: {
156
+ type: "object",
157
+ properties: {
158
+ name: { type: "string" },
159
+ },
160
+ additionalProperties: false,
161
+ },
162
+ },
163
+ },
164
+ ];
165
+ const requestBody = (await prepareRequestBody("google-ai-studio", "gemini-2.0-flash", [{ role: "user", content: "test" }], false, undefined, undefined, undefined, undefined, undefined, undefined, toolsWithAdditionalProps, undefined, undefined, false, false));
166
+ const params = requestBody.tools[0].functionDeclarations[0].parameters;
167
+ expect(params.additionalProperties).toBeUndefined();
168
+ });
169
+ test("should add additionalProperties: false to Cerebras tool parameters", async () => {
170
+ const toolsWithoutAdditionalProps = [
171
+ {
172
+ type: "function",
173
+ function: {
174
+ name: "test_tool",
175
+ description: "Test tool",
176
+ parameters: {
177
+ type: "object",
178
+ properties: {
179
+ name: { type: "string" },
180
+ nested: {
181
+ type: "object",
182
+ properties: {
183
+ value: { type: "string" },
184
+ },
185
+ },
186
+ },
187
+ },
188
+ },
189
+ },
190
+ ];
191
+ const requestBody = (await prepareRequestBody("cerebras", "llama-4-scout-17b-16e-instruct", [{ role: "user", content: "test" }], false, undefined, undefined, undefined, undefined, undefined, undefined, toolsWithoutAdditionalProps, undefined, undefined, false, false));
192
+ const params = requestBody.tools[0].function.parameters;
193
+ expect(params.additionalProperties).toBe(false);
194
+ expect(params.properties.nested.additionalProperties).toBe(false);
195
+ expect(requestBody.tools[0].function.strict).toBe(true);
196
+ });
197
+ test("should strip unsupported string fields from Cerebras tool parameters", async () => {
198
+ const toolsWithStringFields = [
199
+ {
200
+ type: "function",
201
+ function: {
202
+ name: "fetch_url",
203
+ description: "Fetch a URL",
204
+ parameters: {
205
+ type: "object",
206
+ properties: {
207
+ url: { type: "string", format: "uri" },
208
+ email: { type: "string", format: "email" },
209
+ name: { type: "string", minLength: 1, maxLength: 100 },
210
+ code: { type: "string", pattern: "^[A-Z]+$" },
211
+ plainString: { type: "string" },
212
+ },
213
+ },
214
+ },
215
+ },
216
+ ];
217
+ const requestBody = (await prepareRequestBody("cerebras", "llama-4-scout-17b-16e-instruct", [{ role: "user", content: "test" }], false, undefined, undefined, undefined, undefined, undefined, undefined, toolsWithStringFields, undefined, undefined, false, false));
218
+ const params = requestBody.tools[0].function.parameters;
219
+ expect(params.properties.url.format).toBeUndefined();
220
+ expect(params.properties.email.format).toBeUndefined();
221
+ expect(params.properties.name.minLength).toBeUndefined();
222
+ expect(params.properties.name.maxLength).toBeUndefined();
223
+ expect(params.properties.code.pattern).toBeUndefined();
224
+ expect(params.properties.url.type).toBe("string");
225
+ expect(params.properties.email.type).toBe("string");
226
+ expect(params.properties.name.type).toBe("string");
227
+ expect(params.properties.code.type).toBe("string");
228
+ expect(params.properties.plainString.type).toBe("string");
229
+ });
230
+ });
231
+ //# sourceMappingURL=prepare-request-body.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-request-body.spec.js","sourceRoot":"","sources":["../src/prepare-request-body.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function processImageUrl(url: string, isProd?: boolean, maxSizeMB?: number, userPlan?: "free" | "pro" | null): Promise<{
2
+ data: string;
3
+ mimeType: string;
4
+ }>;
@@ -0,0 +1,121 @@
1
+ import { logger } from "@llmgateway/logger";
2
+ function getImageSizeErrorMessage(maxSizeMB, actualSizeMB, userPlan) {
3
+ const isHosted = process.env.HOSTED === "true";
4
+ const isPaidMode = process.env.PAID_MODE === "true";
5
+ const proLimitMB = Number(process.env.IMAGE_SIZE_LIMIT_PRO_MB) || 100;
6
+ let message = `Image size (${actualSizeMB.toFixed(1)}MB) exceeds your current limit of ${maxSizeMB}MB.`;
7
+ if (isHosted && isPaidMode) {
8
+ if (userPlan === "free") {
9
+ message += ` Upgrade to Pro plan for ${proLimitMB}MB image uploads.`;
10
+ }
11
+ else if (userPlan === "pro") {
12
+ message += ` Contact us for Business or Enterprise plans with higher limits.`;
13
+ }
14
+ else {
15
+ message += ` Upgrade your plan for higher limits (Pro: ${proLimitMB}MB).`;
16
+ }
17
+ }
18
+ return message;
19
+ }
20
+ export async function processImageUrl(url, isProd = false, maxSizeMB = 20, userPlan = null) {
21
+ if (url.startsWith("data:")) {
22
+ const dataUrlMatch = url.match(/^data:([^;,]+)(?:;base64)?,(.*)$/);
23
+ if (!dataUrlMatch) {
24
+ logger.warn("Invalid data URL format provided");
25
+ throw new Error("Invalid image data URL format");
26
+ }
27
+ const [, mimeType, data] = dataUrlMatch;
28
+ if (!mimeType.startsWith("image/")) {
29
+ logger.warn("Non-image MIME type in data URL", { mimeType });
30
+ throw new Error("Data URL must contain an image");
31
+ }
32
+ const isBase64 = url.includes(";base64,");
33
+ const base64Data = isBase64 ? data : btoa(data);
34
+ const estimatedSize = (base64Data.length * 3) / 4;
35
+ const maxSizeBytes = maxSizeMB * 1024 * 1024;
36
+ if (estimatedSize > maxSizeBytes) {
37
+ const actualSizeMB = estimatedSize / (1024 * 1024);
38
+ logger.warn("Data URL image size exceeds limit", {
39
+ estimatedSize,
40
+ maxSizeMB,
41
+ actualSizeMB,
42
+ });
43
+ throw new Error(getImageSizeErrorMessage(maxSizeMB, actualSizeMB, userPlan));
44
+ }
45
+ return {
46
+ data: base64Data,
47
+ mimeType,
48
+ };
49
+ }
50
+ if (!url.startsWith("https://") && isProd) {
51
+ logger.warn("Non-HTTPS URL provided for image fetch in production", {
52
+ url: url.substring(0, 20) + "...",
53
+ });
54
+ throw new Error("Image URLs must use HTTPS protocol in production");
55
+ }
56
+ try {
57
+ const response = await fetch(url);
58
+ if (!response.ok) {
59
+ logger.warn(`Failed to fetch image from URL (${response.status})`, {
60
+ url: url.substring(0, 50) + "...",
61
+ });
62
+ throw new Error(`Failed to fetch image: HTTP ${response.status}`);
63
+ }
64
+ const maxSizeBytes = maxSizeMB * 1024 * 1024;
65
+ const contentLength = response.headers.get("content-length");
66
+ if (contentLength && parseInt(contentLength, 10) > maxSizeBytes) {
67
+ const actualSizeMB = parseInt(contentLength, 10) / (1024 * 1024);
68
+ logger.warn("Image size exceeds limit via Content-Length", {
69
+ contentLength,
70
+ maxSizeMB,
71
+ actualSizeMB,
72
+ });
73
+ throw new Error(getImageSizeErrorMessage(maxSizeMB, actualSizeMB, userPlan));
74
+ }
75
+ const contentType = response.headers.get("content-type");
76
+ if (!contentType || !contentType.startsWith("image/")) {
77
+ logger.warn("Invalid content type for image URL", {
78
+ contentType,
79
+ url: url.substring(0, 50) + "...",
80
+ });
81
+ throw new Error("URL does not point to a valid image");
82
+ }
83
+ const arrayBuffer = await response.arrayBuffer();
84
+ if (arrayBuffer.byteLength > maxSizeBytes) {
85
+ const actualSizeMB = arrayBuffer.byteLength / (1024 * 1024);
86
+ logger.warn("Image size exceeds limit after download", {
87
+ size: arrayBuffer.byteLength,
88
+ maxSizeMB,
89
+ actualSizeMB,
90
+ });
91
+ throw new Error(getImageSizeErrorMessage(maxSizeMB, actualSizeMB, userPlan));
92
+ }
93
+ const uint8Array = new Uint8Array(arrayBuffer);
94
+ const binaryString = Array.from(uint8Array, (byte) => String.fromCharCode(byte)).join("");
95
+ const base64 = btoa(binaryString);
96
+ return {
97
+ data: base64,
98
+ mimeType: contentType,
99
+ };
100
+ }
101
+ catch (error) {
102
+ logger.error("Error processing image URL", {
103
+ err: error instanceof Error ? error : new Error(String(error)),
104
+ url: url.substring(0, 50) + "...",
105
+ });
106
+ if (error instanceof Error &&
107
+ error.message.includes("Image size exceeds")) {
108
+ throw error;
109
+ }
110
+ if (error instanceof Error &&
111
+ error.message.includes("Failed to fetch image: HTTP")) {
112
+ throw error;
113
+ }
114
+ if (error instanceof Error &&
115
+ error.message.includes("URL does not point to a valid image")) {
116
+ throw error;
117
+ }
118
+ throw new Error("Failed to process image from URL");
119
+ }
120
+ }
121
+ //# sourceMappingURL=process-image-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-image-url.js","sourceRoot":"","sources":["../src/process-image-url.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { type AnthropicMessage, type BaseMessage } from "./types.js";
2
+ export declare function transformAnthropicMessages(messages: BaseMessage[], isProd?: boolean, provider?: string, _model?: string, maxImageSizeMB?: number, userPlan?: "free" | "pro" | null, initialCacheControlCount?: number, minCacheableChars?: number): Promise<AnthropicMessage[]>;