| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- import { afterEach, expect, mock, test } from "bun:test"
- import { CopilotModels } from "@/plugin/github-copilot/models"
- const originalFetch = globalThis.fetch
- afterEach(() => {
- globalThis.fetch = originalFetch
- })
- test("preserves temperature support from existing provider models", async () => {
- globalThis.fetch = mock(() =>
- Promise.resolve(
- new Response(
- JSON.stringify({
- data: [
- {
- model_picker_enabled: true,
- id: "gpt-4o",
- name: "GPT-4o",
- version: "gpt-4o-2024-05-13",
- capabilities: {
- family: "gpt",
- limits: {
- max_context_window_tokens: 64000,
- max_output_tokens: 16384,
- max_prompt_tokens: 64000,
- },
- supports: {
- streaming: true,
- tool_calls: true,
- },
- },
- },
- {
- model_picker_enabled: true,
- id: "brand-new",
- name: "Brand New",
- version: "brand-new-2026-04-01",
- capabilities: {
- family: "test",
- limits: {
- max_context_window_tokens: 32000,
- max_output_tokens: 8192,
- max_prompt_tokens: 32000,
- },
- supports: {
- streaming: true,
- tool_calls: false,
- },
- },
- },
- ],
- }),
- { status: 200 },
- ),
- ),
- ) as unknown as typeof fetch
- const models = await CopilotModels.get(
- "https://api.githubcopilot.com",
- {},
- {
- "gpt-4o": {
- id: "gpt-4o",
- providerID: "github-copilot",
- api: {
- id: "gpt-4o",
- url: "https://api.githubcopilot.com",
- npm: "@ai-sdk/openai-compatible",
- },
- name: "GPT-4o",
- family: "gpt",
- capabilities: {
- temperature: true,
- reasoning: false,
- attachment: true,
- toolcall: true,
- input: {
- text: true,
- audio: false,
- image: true,
- video: false,
- pdf: false,
- },
- output: {
- text: true,
- audio: false,
- image: false,
- video: false,
- pdf: false,
- },
- interleaved: false,
- },
- cost: {
- input: 0,
- output: 0,
- cache: {
- read: 0,
- write: 0,
- },
- },
- limit: {
- context: 64000,
- output: 16384,
- },
- options: {},
- headers: {},
- release_date: "2024-05-13",
- variants: {},
- status: "active",
- },
- },
- )
- expect(models["gpt-4o"].capabilities.temperature).toBe(true)
- expect(models["brand-new"].capabilities.temperature).toBe(true)
- })
|