@earendil-works/pi-ai
Version:
Unified LLM API with automatic model discovery and provider configuration
26 lines • 1.5 kB
JavaScript
import { anthropicMessagesApi } from "../api/anthropic-messages.lazy.js";
import { googleGenerativeAIApi } from "../api/google-generative-ai.lazy.js";
import { openAICompletionsApi } from "../api/openai-completions.lazy.js";
import { openAIResponsesApi } from "../api/openai-responses.lazy.js";
import { typesafeSystemOneApi } from "../api/typesafe-system-one.lazy.js";
import { envApiKeyAuth } from "../auth/helpers.js";
import { createProvider } from "../models.js";
import { OPENCODE_CLASSIFIER_MODELS, OPENCODE_MODELS } from "./opencode.models.js";
import { withOpenCodeSessionHeader } from "./opencode-headers.js";
export function opencodeProvider() {
return createProvider({
id: "opencode",
name: "OpenCode Zen",
auth: { apiKey: envApiKeyAuth("OpenCode API key", ["OPENCODE_API_KEY"]) },
models: [...Object.values(OPENCODE_MODELS), ...Object.values(OPENCODE_CLASSIFIER_MODELS)],
api: {
"anthropic-messages": withOpenCodeSessionHeader(anthropicMessagesApi()),
"google-generative-ai": withOpenCodeSessionHeader(googleGenerativeAIApi()),
"openai-completions": withOpenCodeSessionHeader(openAICompletionsApi()),
"openai-responses": withOpenCodeSessionHeader(openAIResponsesApi()),
},
// OpenCode Zen serves TypeSafe's System One protocol at /inference/systemone/v1/systemone.
classifiers: { "typesafe-system-one": typesafeSystemOneApi() },
});
}
//# sourceMappingURL=opencode.js.map