@llmgateway/models 1.113.2 → 1.114.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/dist/helpers.d.ts +3 -0
- package/dist/helpers.js +53 -0
- package/dist/helpers.js.map +1 -1
- package/dist/models/google.d.ts +27 -0
- package/dist/models/google.js +27 -0
- package/dist/models/google.js.map +1 -1
- package/dist/models/openai.d.ts +16 -0
- package/dist/models/openai.js +10 -0
- package/dist/models/openai.js.map +1 -1
- package/dist/models.d.ts +46 -0
- package/dist/models.js.map +1 -1
- package/dist/providers.js +28 -0
- package/dist/providers.js.map +1 -1
- package/dist/providers.spec.js +44 -1
- package/dist/providers.spec.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/dist/providers.spec.js
CHANGED
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { getSupportedServiceTiers, supportsServiceTier } from "./helpers.js";
|
|
2
3
|
import { formatServiceTierMultiplier, getServiceTier } from "./providers.js";
|
|
3
4
|
describe("getServiceTier", () => {
|
|
4
5
|
it("returns the configured Vertex Flex / Priority tiers", () => {
|
|
5
6
|
expect(getServiceTier("google-vertex", "flex")?.multiplier).toBe(0.5);
|
|
6
7
|
expect(getServiceTier("google-vertex", "priority")?.multiplier).toBe(1.8);
|
|
7
8
|
});
|
|
9
|
+
it("returns the configured OpenAI Flex / Priority tiers", () => {
|
|
10
|
+
expect(getServiceTier("openai", "flex")?.multiplier).toBe(0.5);
|
|
11
|
+
expect(getServiceTier("openai", "priority")?.multiplier).toBe(2.5);
|
|
12
|
+
});
|
|
13
|
+
it("returns the configured Google AI Studio Flex / Priority tiers", () => {
|
|
14
|
+
expect(getServiceTier("google-ai-studio", "flex")?.multiplier).toBe(0.5);
|
|
15
|
+
expect(getServiceTier("google-ai-studio", "priority")?.multiplier).toBe(1.8);
|
|
16
|
+
});
|
|
8
17
|
it("returns undefined for unknown tiers or providers without tiers", () => {
|
|
9
18
|
expect(getServiceTier("google-vertex", "nope")).toBeUndefined();
|
|
10
|
-
expect(getServiceTier("
|
|
19
|
+
expect(getServiceTier("anthropic", "priority")).toBeUndefined();
|
|
11
20
|
});
|
|
12
21
|
});
|
|
13
22
|
describe("formatServiceTierMultiplier", () => {
|
|
@@ -21,4 +30,38 @@ describe("formatServiceTierMultiplier", () => {
|
|
|
21
30
|
expect(formatServiceTierMultiplier(1)).toBe("");
|
|
22
31
|
});
|
|
23
32
|
});
|
|
33
|
+
describe("model service tier support", () => {
|
|
34
|
+
it("returns explicit OpenAI tiers for supported models", () => {
|
|
35
|
+
expect(getSupportedServiceTiers("gpt-5.5", "openai").map((tier) => tier.id)).toEqual(["flex", "priority"]);
|
|
36
|
+
expect(getSupportedServiceTiers("gpt-5.5", "openai").find((tier) => tier.id === "priority")?.multiplier).toBe(2.5);
|
|
37
|
+
expect(getSupportedServiceTiers("gpt-5.4", "openai").find((tier) => tier.id === "priority")?.multiplier).toBe(2);
|
|
38
|
+
expect(getSupportedServiceTiers("gpt-5.4-mini", "openai").find((tier) => tier.id === "priority")?.multiplier).toBe(2);
|
|
39
|
+
expect(getSupportedServiceTiers("gpt-5.5-pro", "openai").map((tier) => tier.id)).toEqual(["flex"]);
|
|
40
|
+
expect(getSupportedServiceTiers("gpt-5.3-codex", "openai").map((tier) => tier.id)).toEqual(["priority"]);
|
|
41
|
+
expect(getSupportedServiceTiers("gpt-5.3-codex", "openai").find((tier) => tier.id === "priority")?.multiplier).toBe(2);
|
|
42
|
+
});
|
|
43
|
+
it("returns explicit Google Vertex tiers for supported models", () => {
|
|
44
|
+
expect(getSupportedServiceTiers("gemini-2.5-pro", "google-vertex").map((tier) => tier.id)).toEqual(["priority"]);
|
|
45
|
+
expect(getSupportedServiceTiers("gemini-2.5-flash", "google-vertex").map((tier) => tier.id)).toEqual(["priority"]);
|
|
46
|
+
expect(getSupportedServiceTiers("gemini-3.5-flash", "google-vertex").map((tier) => tier.id)).toEqual(["flex", "priority"]);
|
|
47
|
+
expect(getSupportedServiceTiers("gemini-3-pro-image-preview", "google-vertex").map((tier) => tier.id)).toEqual(["flex"]);
|
|
48
|
+
});
|
|
49
|
+
it("returns explicit Google AI Studio tiers for supported models", () => {
|
|
50
|
+
expect(getSupportedServiceTiers("gemini-2.5-pro", "google-ai-studio").map((tier) => tier.id)).toEqual(["flex", "priority"]);
|
|
51
|
+
expect(getSupportedServiceTiers("gemini-2.5-flash", "google-ai-studio").map((tier) => tier.id)).toEqual(["flex", "priority"]);
|
|
52
|
+
expect(getSupportedServiceTiers("gemini-3.5-flash", "google-ai-studio").map((tier) => tier.id)).toEqual(["flex", "priority"]);
|
|
53
|
+
expect(getSupportedServiceTiers("gemini-3-pro-image-preview", "google-ai-studio").map((tier) => tier.id)).toEqual(["flex"]);
|
|
54
|
+
});
|
|
55
|
+
it("limits Google Vertex service tiers to the global endpoint", () => {
|
|
56
|
+
expect(supportsServiceTier("gemini-3.5-flash", "google-vertex", "priority", "global")).toBe(true);
|
|
57
|
+
expect(supportsServiceTier("gemini-3.5-flash", "google-vertex", "priority", "us-central1")).toBe(false);
|
|
58
|
+
expect(getSupportedServiceTiers("gemini-3.5-flash", "google-vertex", "us-central1")).toEqual([]);
|
|
59
|
+
});
|
|
60
|
+
it("does not infer support from provider-level tiers", () => {
|
|
61
|
+
expect(supportsServiceTier("gpt-4o", "openai", "priority")).toBe(false);
|
|
62
|
+
expect(getSupportedServiceTiers("gpt-4o", "openai")).toEqual([]);
|
|
63
|
+
expect(supportsServiceTier("gemini-3-pro-preview", "google-vertex", "priority")).toBe(false);
|
|
64
|
+
expect(supportsServiceTier("gemini-3.1-flash-image-preview", "google-ai-studio", "flex")).toBe(false);
|
|
65
|
+
});
|
|
66
|
+
});
|
|
24
67
|
//# sourceMappingURL=providers.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.spec.js","sourceRoot":"","sources":["../src/providers.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,2BAA2B,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE7E,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC9D,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtE,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACzE,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAChE,MAAM,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"providers.spec.js","sourceRoot":"","sources":["../src/providers.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -157,6 +157,7 @@ export interface BaseRequestBody {
|
|
|
157
157
|
frequency_penalty?: number;
|
|
158
158
|
presence_penalty?: number;
|
|
159
159
|
stream?: boolean;
|
|
160
|
+
service_tier?: "auto" | "default" | "flex" | "priority";
|
|
160
161
|
}
|
|
161
162
|
export interface OpenAIRequestBody extends BaseRequestBody {
|
|
162
163
|
messages: OpenAIMessage[];
|
|
@@ -195,6 +196,7 @@ export type OpenAIResponsesInputItem = OpenAIMessage | OpenAIResponsesFunctionCa
|
|
|
195
196
|
export interface OpenAIResponsesRequestBody {
|
|
196
197
|
model: string;
|
|
197
198
|
input: OpenAIResponsesInputItem[];
|
|
199
|
+
service_tier?: "auto" | "default" | "flex" | "priority";
|
|
198
200
|
prompt_cache_key?: string;
|
|
199
201
|
prompt_cache_retention?: PromptCacheRetention;
|
|
200
202
|
reasoning: {
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAicA,MAAM,UAAU,aAAa,CAAC,OAAuB;IACpD,OAAO,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAChC,OAAuB;IAEvB,OAAO,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,cAAc,CAC7B,OAAuB;IAEvB,OAAO,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAClC,OAAuB;IAEvB,OAAO,OAAO,CAAC,IAAI,KAAK,aAAa,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAuB;IACpD,OAAO,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC/B,OAAuB;IAEvB,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAClC,OAAuB;IAEvB,OAAO,OAAO,CAAC,IAAI,KAAK,aAAa,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,YAAY,CAC3B,IAA6C;IAE7C,OAAO,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,eAAe,CAC9B,IAA6C;IAE7C,OAAO,MAAM,IAAI,IAAI,IAAI,cAAc,IAAI,IAAI,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,YAAY,CAC3B,IAA6C;IAE7C,OAAO,sBAAsB,IAAI,IAAI,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,YAAY,CAC3B,WAAgC;IAEhC,OAAO,YAAY,IAAI,WAAW,CAAC;AACpC,CAAC"}
|