mirror of
https://github.com/Heretek-AI/opencode.git
synced 2026-11-09 10:29:42 -10:00
63 lines
1.9 KiB
TypeScript
63 lines
1.9 KiB
TypeScript
import { describe, expect, test } from "bun:test"
|
|
import { Effect } from "effect"
|
|
import { Provider } from "@opencode/core/provider"
|
|
|
|
describe("Provider", () => {
|
|
test("loads bundled native provider entrypoints", async () => {
|
|
const packages = [
|
|
"@opencode/ai/providers/baseten",
|
|
"@opencode/ai/providers/cerebras",
|
|
"@opencode/ai/providers/cloudflare-ai-gateway",
|
|
"@opencode/ai/providers/cloudflare-workers-ai",
|
|
"@opencode/ai/providers/cohere",
|
|
"@opencode/ai/providers/cohere/chat",
|
|
"@opencode/ai/providers/deepinfra",
|
|
"@opencode/ai/providers/deepseek",
|
|
"@opencode/ai/providers/fireworks",
|
|
"@opencode/ai/providers/google-vertex",
|
|
"@opencode/ai/providers/google-vertex/gemini",
|
|
"@opencode/ai/providers/google-vertex/chat",
|
|
"@opencode/ai/providers/google-vertex/responses",
|
|
"@opencode/ai/providers/google-vertex/messages",
|
|
"@opencode/ai/providers/groq",
|
|
"@opencode/ai/providers/mistral",
|
|
"@opencode/ai/providers/togetherai",
|
|
]
|
|
|
|
for (const specifier of packages) {
|
|
const loaded = await Effect.runPromise(Provider.loadPackage(specifier))
|
|
expect(loaded.model).toBeFunction()
|
|
}
|
|
})
|
|
|
|
test("passes flat settings to native packages without Core settings", () => {
|
|
expect(
|
|
Provider.nativeSettings({
|
|
apiKey: "secret",
|
|
reasoningEffort: "high",
|
|
chunkTimeout: 1000,
|
|
compaction: { type: "native" },
|
|
transport: "websocket",
|
|
}),
|
|
).toEqual({
|
|
apiKey: "secret",
|
|
reasoningEffort: "high",
|
|
})
|
|
})
|
|
|
|
test("inherits shared and loose settings without provider-only policies", () => {
|
|
expect(
|
|
Provider.modelSettings({
|
|
timeout: 60_000,
|
|
chunkTimeout: 30_000,
|
|
transport: "websocket",
|
|
compaction: { type: "native" },
|
|
reasoningEffort: "high",
|
|
}),
|
|
).toEqual({
|
|
compaction: { type: "native" },
|
|
reasoningEffort: "high",
|
|
})
|
|
})
|
|
})
|