4d477c67c0
- createAgent() API for building agent CLIs - Context builder: reads CAS chain, builds AgentContext - Extract: LLM-based structured output extraction - StepNode writer: writes to CAS without touching threads.yaml - Stdout: outputs StepNode hash Refs #309, #314
43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
import { describe, expect, test } from "bun:test";
|
|
import type { WorkflowConfig } from "@uncaged/uwf-protocol";
|
|
import { resolveExtractModelAlias } from "../src/extract.js";
|
|
|
|
function baseConfig(overrides: Partial<WorkflowConfig> = {}): WorkflowConfig {
|
|
return {
|
|
providers: {},
|
|
models: {
|
|
sonnet: { provider: "openrouter", name: "anthropic/claude-sonnet-4" },
|
|
"gpt4o-mini": { provider: "openai", name: "gpt-4o-mini" },
|
|
},
|
|
agents: {},
|
|
defaultAgent: "hermes",
|
|
agentOverrides: null,
|
|
defaultModel: "sonnet",
|
|
modelOverrides: null,
|
|
...overrides,
|
|
};
|
|
}
|
|
|
|
describe("resolveExtractModelAlias", () => {
|
|
test("uses modelOverrides.extract when set", () => {
|
|
const config = baseConfig({
|
|
modelOverrides: { extract: "gpt4o-mini" },
|
|
});
|
|
expect(resolveExtractModelAlias(config)).toBe("gpt4o-mini");
|
|
});
|
|
|
|
test("falls back to models.extract alias when present", () => {
|
|
const config = baseConfig({
|
|
models: {
|
|
extract: { provider: "openai", name: "gpt-4o-mini" },
|
|
sonnet: { provider: "openrouter", name: "anthropic/claude-sonnet-4" },
|
|
},
|
|
});
|
|
expect(resolveExtractModelAlias(config)).toBe("extract");
|
|
});
|
|
|
|
test("falls back to defaultModel", () => {
|
|
expect(resolveExtractModelAlias(baseConfig())).toBe("sonnet");
|
|
});
|
|
});
|