51 lines
1.7 KiB
TypeScript
51 lines
1.7 KiB
TypeScript
import { afterEach, describe, expect, it } from "vitest";
|
|
import { findEnvKeys, getEnvApiKey } from "../src/env-api-keys.js";
|
|
import { getModel } from "../src/models.js";
|
|
|
|
const originalFireworksApiKey = process.env.FIREWORKS_API_KEY;
|
|
|
|
afterEach(() => {
|
|
if (originalFireworksApiKey === undefined) {
|
|
delete process.env.FIREWORKS_API_KEY;
|
|
} else {
|
|
process.env.FIREWORKS_API_KEY = originalFireworksApiKey;
|
|
}
|
|
});
|
|
|
|
describe("Fireworks models", () => {
|
|
it("registers the default Kimi K2.6 model via Anthropic-compatible Messages API", () => {
|
|
const model = getModel("fireworks", "accounts/fireworks/models/kimi-k2p6");
|
|
|
|
expect(model).toBeDefined();
|
|
expect(model.api).toBe("anthropic-messages");
|
|
expect(model.provider).toBe("fireworks");
|
|
expect(model.baseUrl).toBe("https://api.fireworks.ai/inference");
|
|
expect(model.reasoning).toBe(true);
|
|
expect(model.input).toEqual(["text", "image"]);
|
|
expect(model.contextWindow).toBe(262000);
|
|
expect(model.maxTokens).toBe(262000);
|
|
expect(model.cost).toEqual({
|
|
input: 0.95,
|
|
output: 4,
|
|
cacheRead: 0.16,
|
|
cacheWrite: 0,
|
|
});
|
|
});
|
|
|
|
it("registers the Fire Pass turbo router model", () => {
|
|
const model = getModel("fireworks", "accounts/fireworks/routers/kimi-k2p5-turbo");
|
|
|
|
expect(model).toBeDefined();
|
|
expect(model.api).toBe("anthropic-messages");
|
|
expect(model.baseUrl).toBe("https://api.fireworks.ai/inference");
|
|
expect(model.input).toEqual(["text", "image"]);
|
|
});
|
|
|
|
it("resolves FIREWORKS_API_KEY from the environment", () => {
|
|
process.env.FIREWORKS_API_KEY = "test-fireworks-key";
|
|
|
|
expect(findEnvKeys("fireworks")).toEqual(["FIREWORKS_API_KEY"]);
|
|
expect(getEnvApiKey("fireworks")).toBe("test-fireworks-key");
|
|
});
|
|
});
|