Files
openclaw/src/agents/model-runtime-policy.test.ts
T
2026-05-15 22:06:12 +01:00

133 lines
3.0 KiB
TypeScript

import { describe, expect, it } from "vitest";
import type { ModelDefinitionConfig } from "../config/types.models.js";
import type { OpenClawConfig } from "../config/types.openclaw.js";
import { resolveModelRuntimePolicy } from "./model-runtime-policy.js";
const createModelConfig = (agentRuntimeId: string): ModelDefinitionConfig => ({
id: "qwen-local",
name: "Qwen Local",
reasoning: false,
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 32_768,
maxTokens: 4096,
agentRuntime: { id: agentRuntimeId },
});
describe("resolveModelRuntimePolicy", () => {
it("honors provider wildcard agent model runtime policy entries", () => {
const config = {
agents: {
defaults: {
models: {
"vllm/*": { agentRuntime: { id: "pi" } },
},
},
},
} as OpenClawConfig;
expect(
resolveModelRuntimePolicy({
config,
provider: "vllm",
modelId: "qwen-local",
}),
).toEqual({
policy: { id: "pi" },
source: "model",
});
});
it("prefers exact agent model runtime policy entries over provider wildcards", () => {
const config = {
agents: {
defaults: {
models: {
"vllm/*": { agentRuntime: { id: "pi" } },
"vllm/qwen-local": { agentRuntime: { id: "codex" } },
},
},
},
} as OpenClawConfig;
expect(
resolveModelRuntimePolicy({
config,
provider: "vllm",
modelId: "qwen-local",
}),
).toEqual({
policy: { id: "codex" },
source: "model",
});
});
it("prefers exact provider model runtime policy over agent provider wildcards", () => {
const config = {
agents: {
defaults: {
models: {
"vllm/*": { agentRuntime: { id: "pi" } },
},
},
},
models: {
providers: {
vllm: {
baseUrl: "http://127.0.0.1:11434/v1",
models: [createModelConfig("codex")],
},
},
},
} as OpenClawConfig;
expect(
resolveModelRuntimePolicy({
config,
provider: "vllm",
modelId: "qwen-local",
}),
).toEqual({
policy: { id: "codex" },
source: "model",
});
});
it("prefers agent provider wildcard runtime policy over provider runtime policy", () => {
const config = {
agents: {
defaults: {
models: {
"vllm/*": { agentRuntime: { id: "pi" } },
},
},
},
models: {
providers: {
vllm: {
baseUrl: "http://127.0.0.1:11434/v1",
agentRuntime: { id: "codex" },
models: [],
},
},
},
} as OpenClawConfig;
expect(
resolveModelRuntimePolicy({
config,
provider: "vllm",
modelId: "qwen-local",
}),
).toEqual({
policy: { id: "pi" },
source: "model",
});
});
});