* Extensions: fix oxfmt drift on main * Plugins: restore runtime barrel exports on main * Config: restore web search compatibility types * Telegram: align test harness with reply runtime * Plugin SDK: fix channel config accessor generics * CLI: remove redundant search provider casts * Tests: restore main typecheck coverage * Lobster: fix test import formatting * Extensions: route bundled seams through plugin-sdk * Tests: use extension env helper for xai * Image generation: fix main oxfmt drift * Config: restore latest main compatibility checks * Plugin SDK: align guardrail tests with lint * Telegram: type native command skill mock
41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
import type { Model } from "@mariozechner/pi-ai";
|
|
import { describe, expect, it, vi } from "vitest";
|
|
import { runExtraParamsCase } from "./extra-params.test-support.js";
|
|
|
|
vi.mock("@mariozechner/pi-ai", () => ({
|
|
streamSimple: vi.fn(() => ({
|
|
push: vi.fn(),
|
|
result: vi.fn(),
|
|
})),
|
|
}));
|
|
|
|
describe("extra-params: Google thinking payload compatibility", () => {
|
|
it("strips negative thinking budgets and fills Gemini 3.1 thinkingLevel", () => {
|
|
const payload = runExtraParamsCase({
|
|
applyProvider: "google",
|
|
applyModelId: "gemini-3.1-pro-preview",
|
|
model: {
|
|
api: "google-generative-ai",
|
|
provider: "google",
|
|
id: "gemini-3.1-pro-preview",
|
|
} as unknown as Model<"openai-completions">,
|
|
thinkingLevel: "high",
|
|
payload: {
|
|
contents: [],
|
|
config: {
|
|
thinkingConfig: {
|
|
thinkingBudget: -1,
|
|
},
|
|
},
|
|
},
|
|
}).payload as {
|
|
config?: {
|
|
thinkingConfig?: Record<string, unknown>;
|
|
};
|
|
};
|
|
|
|
expect(payload.config?.thinkingConfig?.thinkingBudget).toBeUndefined();
|
|
expect(payload.config?.thinkingConfig?.thinkingLevel).toBe("HIGH");
|
|
});
|
|
});
|