import { describe, test, expect } from "bun:test" import { createBuiltinAgents } from "./utils" describe("createBuiltinAgents with model overrides", () => { test("Sisyphus with default model has thinking config", () => { // #given - no overrides // #when const agents = createBuiltinAgents() // #then expect(agents.Sisyphus.model).toBe("anthropic/claude-opus-4-5") expect(agents.Sisyphus.thinking).toEqual({ type: "enabled", budgetTokens: 32000 }) expect(agents.Sisyphus.reasoningEffort).toBeUndefined() }) test("Sisyphus with GPT model override has reasoningEffort, no thinking", () => { // #given const overrides = { Sisyphus: { model: "github-copilot/gpt-5.2" }, } // #when const agents = createBuiltinAgents([], overrides) // #then expect(agents.Sisyphus.model).toBe("github-copilot/gpt-5.2") expect(agents.Sisyphus.reasoningEffort).toBe("medium") expect(agents.Sisyphus.thinking).toBeUndefined() }) test("Sisyphus with systemDefaultModel GPT has reasoningEffort, no thinking", () => { // #given const systemDefaultModel = "openai/gpt-5.2" // #when const agents = createBuiltinAgents([], {}, undefined, systemDefaultModel) // #then expect(agents.Sisyphus.model).toBe("openai/gpt-5.2") expect(agents.Sisyphus.reasoningEffort).toBe("medium") expect(agents.Sisyphus.thinking).toBeUndefined() }) test("Oracle with default model has reasoningEffort", () => { // #given - no overrides // #when const agents = createBuiltinAgents() // #then expect(agents.oracle.model).toBe("openai/gpt-5.2") expect(agents.oracle.reasoningEffort).toBe("medium") expect(agents.oracle.textVerbosity).toBe("high") expect(agents.oracle.thinking).toBeUndefined() }) test("Oracle with Claude model override has thinking, no reasoningEffort", () => { // #given const overrides = { oracle: { model: "anthropic/claude-sonnet-4" }, } // #when const agents = createBuiltinAgents([], overrides) // #then expect(agents.oracle.model).toBe("anthropic/claude-sonnet-4") expect(agents.oracle.thinking).toEqual({ type: "enabled", budgetTokens: 32000 }) expect(agents.oracle.reasoningEffort).toBeUndefined() expect(agents.oracle.textVerbosity).toBeUndefined() }) test("non-model overrides are still applied after factory rebuild", () => { // #given const overrides = { Sisyphus: { model: "github-copilot/gpt-5.2", temperature: 0.5 }, } // #when const agents = createBuiltinAgents([], overrides) // #then expect(agents.Sisyphus.model).toBe("github-copilot/gpt-5.2") expect(agents.Sisyphus.temperature).toBe(0.5) }) })