Menu
popagent
publicLatest change 49bebb71b99af5912570045725ca987dc2837af7 - Harden autonomous workflow execution by AkurAI Build
import { describe, expect, test } from "bun:test";
import { agentRuntimeSettings } from "./agent-runtime-settings";
import { FREE_MODEL_ROUTE, LOCAL_MODEL_ROUTE, listModelCatalog, normalizeChatRequest, runtimeModelId, resolveModel } from "./models";
describe("resolveModel", () => {
test("requires an explicit model id", () => {
expect(resolveModel("test/model").modelId).toBe("test/model");
});
test("resolves an explicit model id", () => {
expect(resolveModel("cc/claude-sonnet-5").modelId).toBe("cc/claude-sonnet-5");
});
test("maps persisted runtime sources to the local and free routes", () => {
expect(runtimeModelId("ignored/model", "local")).toBe(LOCAL_MODEL_ROUTE);
expect(runtimeModelId("ignored/model", "openrouter-free")).toBe(FREE_MODEL_ROUTE);
expect(runtimeModelId("configured/model", "configured")).toBe("configured/model");
});
});
describe("normalizeChatRequest", () => {
test("merges leading system messages for the local Ornith chat template", () => {
const body = {
model: "titan/ornith-1.0-9b-mtp-q4_k_m",
messages: [
{ role: "system", content: "Agent instructions" },
{ role: "system", content: "Workspace instructions" },
{ role: "user", content: "hi" },
],
};
expect(normalizeChatRequest(body)).toEqual({
model: "titan/ornith-1.0-9b-mtp-q4_k_m",
messages: [
{ role: "system", content: "Agent instructions\n\nWorkspace instructions" },
{ role: "user", content: "hi" },
],
});
});
test("preserves multi-system requests for compatible models", () => {
const body = { model: "cx/gpt-5.6-sol", messages: [
{ role: "system", content: "One" },
{ role: "system", content: "Two" },
] };
expect(normalizeChatRequest(body)).toBe(body);
});
});
describe("listModelCatalog", () => {
test("returns context windows for the configured default model", async () => {
const configured = await agentRuntimeSettings.get();
const catalog = await listModelCatalog();
expect(catalog.models).toContain(configured.defaultModel);
expect(catalog.contextWindows[configured.defaultModel]).toBeGreaterThan(0);
expect(catalog.models).toEqual([...new Set(catalog.models)]);
});
});