| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import { describe, expect, test } from "bun:test"
- import { ModelRequest } from "@opencode-ai/core/model-request"
- describe("ModelRequest", () => {
- test("partitions AI SDK model and models.dev mode options", () => {
- expect(
- ModelRequest.normalizeAiSdkOptions("@ai-sdk/openai", {
- maxOutputTokens: 4096,
- temperature: 0.2,
- reasoningEffort: "high",
- serviceTier: "priority",
- custom_extension: { enabled: true },
- }),
- ).toEqual({
- generation: { maxTokens: 4096, temperature: 0.2 },
- options: { reasoningEffort: "high", serviceTier: "priority" },
- body: { custom_extension: { enabled: true } },
- })
- })
- test("keeps unknown-provider options as compatibility fields", () => {
- expect(ModelRequest.normalizeAiSdkOptions(undefined, { temperature: 0.2, reasoningEffort: "high" })).toEqual({
- generation: { temperature: 0.2 },
- options: {},
- body: { reasoningEffort: "high" },
- })
- })
- test("does not consult inherited package-name properties", () => {
- expect(ModelRequest.normalizeAiSdkOptions("__proto__", { reasoningEffort: "high" })).toEqual({
- generation: {},
- options: {},
- body: { reasoningEffort: "high" },
- })
- })
- test("normalizes models.dev wire aliases owned by native protocols", () => {
- expect(ModelRequest.normalizeAiSdkOptions("@ai-sdk/openai", { service_tier: "priority" })).toEqual({
- generation: {},
- options: { serviceTier: "priority" },
- body: {},
- })
- })
- })
|