mirror of
https://github.com/badlogic/pi-mono.git
synced 2026-11-05 23:37:25 +00:00
models.dev deprecated several Baseten, GitHub Copilot, and Together models, which broke type checks and the default-model test. - Default GitHub Copilot model: gpt-5.4 -> gpt-6.1-sol - Move Copilot live tests to gpt-6-luna/gpt-6-sol - Remove tests and generator entries for retired models, including the Together reasoning-only model list
81 lines
2.4 KiB
TypeScript
81 lines
2.4 KiB
TypeScript
import { afterEach, describe, expect, it } from "vitest";
|
|
import { getModel } from "../src/compat.ts";
|
|
import { findEnvKeys, getEnvApiKey } from "../src/env-api-keys.ts";
|
|
|
|
const originalTogetherApiKey = process.env.TOGETHER_API_KEY;
|
|
|
|
afterEach(() => {
|
|
if (originalTogetherApiKey === undefined) {
|
|
delete process.env.TOGETHER_API_KEY;
|
|
} else {
|
|
process.env.TOGETHER_API_KEY = originalTogetherApiKey;
|
|
}
|
|
});
|
|
|
|
describe("Together models", () => {
|
|
it("registers the default Kimi K3 model via OpenAI-compatible Chat Completions API", () => {
|
|
const model = getModel("together", "moonshotai/Kimi-K3");
|
|
|
|
expect(model).toBeDefined();
|
|
expect(model.api).toBe("openai-completions");
|
|
expect(model.provider).toBe("together");
|
|
expect(model.baseUrl).toBe("https://api.together.ai/v1");
|
|
expect(model.reasoning).toBe(true);
|
|
expect(model.thinkingLevelMap).toEqual({ minimal: null, low: null, medium: null });
|
|
expect(model.input).toEqual(["text", "image"]);
|
|
expect(model.contextWindow).toBe(1048576);
|
|
expect(model.maxTokens).toBe(131072);
|
|
expect(model.cost).toEqual({
|
|
input: 3,
|
|
output: 15,
|
|
cacheRead: 0.3,
|
|
cacheWrite: 0,
|
|
});
|
|
expect(model.compat).toEqual({
|
|
supportsStore: false,
|
|
supportsDeveloperRole: false,
|
|
supportsReasoningEffort: false,
|
|
maxTokensField: "max_tokens",
|
|
thinkingFormat: "together",
|
|
supportsStrictMode: false,
|
|
supportsLongCacheRetention: false,
|
|
});
|
|
});
|
|
|
|
it("models Together reasoning controls from the Together API surface", () => {
|
|
const gptOss = getModel("together", "openai/gpt-oss-120b");
|
|
expect(gptOss.thinkingLevelMap).toEqual({
|
|
off: null,
|
|
minimal: null,
|
|
low: "low",
|
|
medium: "medium",
|
|
high: "high",
|
|
max: null,
|
|
xhigh: null,
|
|
});
|
|
expect(gptOss.compat).toMatchObject({
|
|
supportsReasoningEffort: true,
|
|
thinkingFormat: "openai",
|
|
});
|
|
|
|
const deepSeekV4 = getModel("together", "deepseek-ai/DeepSeek-V4-Pro-0813");
|
|
expect(deepSeekV4.thinkingLevelMap).toEqual({
|
|
minimal: null,
|
|
low: null,
|
|
medium: null,
|
|
high: "high",
|
|
xhigh: null,
|
|
});
|
|
expect(deepSeekV4.compat).toMatchObject({
|
|
supportsReasoningEffort: true,
|
|
thinkingFormat: "together",
|
|
});
|
|
});
|
|
|
|
it("resolves TOGETHER_API_KEY from the environment", () => {
|
|
process.env.TOGETHER_API_KEY = "test-together-key";
|
|
|
|
expect(findEnvKeys("together")).toEqual(["TOGETHER_API_KEY"]);
|
|
expect(getEnvApiKey("together")).toBe("test-together-key");
|
|
});
|
|
});
|