@llmgateway/models 1.391.0 → 1.391.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.
package/dist/virtual-models.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { type ModelDefinition } from "./models.js";
|
|
2
|
+
export declare function getModelAliases(modelId: string): string[];
|
|
3
|
+
export declare function getModelDenyRefs(modelId: string): string[];
|
|
4
|
+
export declare function getRequestedModelAlias(modelInput: string | undefined, modelId: string): string | undefined;
|
|
2
5
|
export declare function getVirtualModelTarget(id: string): ModelDefinition | undefined;
|
|
3
6
|
export declare function expandVirtualModels<T extends {
|
|
4
7
|
id: string;
|
package/dist/virtual-models.js
CHANGED
|
@@ -1,4 +1,33 @@
|
|
|
1
1
|
import { models } from "./models.js";
|
|
2
|
+
export function getModelAliases(modelId) {
|
|
3
|
+
return [
|
|
4
|
+
...(models.find((model) => model.id === modelId)
|
|
5
|
+
?.aliases ?? []),
|
|
6
|
+
];
|
|
7
|
+
}
|
|
8
|
+
export function getModelDenyRefs(modelId) {
|
|
9
|
+
const catalogue = models;
|
|
10
|
+
const canonical = catalogue.find((model) => model.id === modelId) ??
|
|
11
|
+
catalogue.find((model) => model.aliases?.includes(modelId));
|
|
12
|
+
return Array.from(new Set([
|
|
13
|
+
modelId,
|
|
14
|
+
...(canonical ? [canonical.id, ...(canonical.aliases ?? [])] : []),
|
|
15
|
+
]));
|
|
16
|
+
}
|
|
17
|
+
export function getRequestedModelAlias(modelInput, modelId) {
|
|
18
|
+
if (!modelInput) {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
const slash = modelInput.indexOf("/");
|
|
22
|
+
let name = slash === -1 ? modelInput : modelInput.slice(slash + 1);
|
|
23
|
+
const colon = name.lastIndexOf(":");
|
|
24
|
+
if (slash !== -1 && colon !== -1) {
|
|
25
|
+
name = name.slice(0, colon);
|
|
26
|
+
}
|
|
27
|
+
return name !== modelId && getModelAliases(modelId).includes(name)
|
|
28
|
+
? name
|
|
29
|
+
: undefined;
|
|
30
|
+
}
|
|
2
31
|
export function getVirtualModelTarget(id) {
|
|
3
32
|
return models.find((model) => model.aliasesAreVirtual && model.aliases?.includes(id));
|
|
4
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtual-models.js","sourceRoot":"","sources":["../src/virtual-models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAwB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"virtual-models.js","sourceRoot":"","sources":["../src/virtual-models.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { describe, expect, it } from "vitest";
|
|
2
2
|
import { models } from "./models.js";
|
|
3
3
|
import { isModelAllowedByPolicy } from "./providers.js";
|
|
4
|
-
import { expandVirtualModels, getVirtualModelTarget, } from "./virtual-models.js";
|
|
4
|
+
import { expandVirtualModels, getModelAliases, getModelDenyRefs, getRequestedModelAlias, getVirtualModelTarget, } from "./virtual-models.js";
|
|
5
5
|
describe("virtual models", () => {
|
|
6
6
|
it.each([
|
|
7
7
|
["deepseek-v4.1-flash-latest", "deepseek-v4.1-flash-1017"],
|
|
@@ -45,6 +45,38 @@ describe("virtual models", () => {
|
|
|
45
45
|
}
|
|
46
46
|
});
|
|
47
47
|
});
|
|
48
|
+
describe("requested model aliases", () => {
|
|
49
|
+
it("lists a model's catalogue aliases", () => {
|
|
50
|
+
expect(getModelAliases("jev-1.14.0")).toEqual([
|
|
51
|
+
"jev",
|
|
52
|
+
"jev-latest",
|
|
53
|
+
"jev-preview",
|
|
54
|
+
]);
|
|
55
|
+
expect(getModelAliases("missing-model")).toEqual([]);
|
|
56
|
+
});
|
|
57
|
+
it.each([
|
|
58
|
+
["deepseek-v4.1-flash-latest", "deepseek-v4.1-flash-latest"],
|
|
59
|
+
["tencent/deepseek-v4.1-flash-latest", "deepseek-v4.1-flash-latest"],
|
|
60
|
+
[
|
|
61
|
+
"tencent/deepseek-v4.1-flash-latest:ap-guangzhou",
|
|
62
|
+
"deepseek-v4.1-flash-latest",
|
|
63
|
+
],
|
|
64
|
+
["deepseek-v4.1-flash-1017", undefined],
|
|
65
|
+
["tencent/deepseek-v4.1-flash-1017", undefined],
|
|
66
|
+
[undefined, undefined],
|
|
67
|
+
])("reads the alias named by %s", (input, alias) => {
|
|
68
|
+
expect(getRequestedModelAlias(input, "deepseek-v4.1-flash-1017")).toBe(alias);
|
|
69
|
+
});
|
|
70
|
+
it("relates a model, its aliases and listings named after them for deny lists", () => {
|
|
71
|
+
const refs = ["deepseek-v4.1-flash-latest", "deepseek-v4.1-flash-1017"];
|
|
72
|
+
expect(getModelDenyRefs("deepseek-v4.1-flash-1017").sort()).toEqual([...refs].sort());
|
|
73
|
+
expect(getModelDenyRefs("deepseek-v4.1-flash-latest").sort()).toEqual([...refs].sort());
|
|
74
|
+
expect(getModelDenyRefs("unknown-model")).toEqual(["unknown-model"]);
|
|
75
|
+
});
|
|
76
|
+
it("ignores an alias of another model", () => {
|
|
77
|
+
expect(getRequestedModelAlias("jev-latest", "deepseek-v4.1-flash-1017")).toBeUndefined();
|
|
78
|
+
});
|
|
79
|
+
});
|
|
48
80
|
it("does not expand organization-defined custom models", () => {
|
|
49
81
|
const custom = { id: "jev-1.14.0", source: "custom" };
|
|
50
82
|
expect(expandVirtualModels([custom])).toEqual([custom]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtual-models.spec.js","sourceRoot":"","sources":["../src/virtual-models.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"virtual-models.spec.js","sourceRoot":"","sources":["../src/virtual-models.spec.ts"],"names":[],"mappings":"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"}
|