import assert from "node:assert/strict"; import test from "node:test"; import { resetInferenceManifestCache } from "./config"; import { MissingApiKeyError } from "./errors"; import { executeCompleteText } from "./execute"; test.beforeEach(() => { resetInferenceManifestCache(); delete process.env.INFERENCE_MANIFEST_PATH; delete process.env.OPENAI_API_KEY; delete process.env.GEMINI_API_KEY; }); test("executeCompleteText routes openai-api to proxy-openai adapter", async () => { await assert.rejects( () => executeCompleteText({ model: "gemini-3-flash-agent-high", explicitRequestProvider: "openai-api", user: "hello", }), (error: unknown) => { assert.ok(error instanceof MissingApiKeyError); assert.equal(error.provider, "proxy-openai"); return true; }, ); }); test("executeCompleteText rejects direct Gemini for proxy-only models", async () => { await assert.rejects( () => executeCompleteText({ model: "gemini-3.5-flash-high", explicitRequestProvider: "gemini_sdk", user: "hello", }), (error: unknown) => { return error instanceof Error && error.message === "provider_model_mismatch"; }, ); }); test("execute layer does not implement empty-turn retries", async () => { const fs = await import("node:fs/promises"); const executeSource = await fs.readFile( new URL("./execute.ts", import.meta.url), "utf8", ); assert.doesNotMatch(executeSource, /emptyTurn|emptyRetries/i); });