Files
AgentCompany/AgentCompany-New/src/shared/provider-catalog.ts
T

157 lines
5.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { PROVIDER_AUTH_TYPE, type ProviderCatalogEntry } from "./domain";
import { listProviderModels } from "./provider-models";
const RAW_CATALOG: Omit<ProviderCatalogEntry, "models">[] = [
{
key: "openai",
label: "OpenAI",
authType: PROVIDER_AUTH_TYPE.API_KEY,
defaultModel: "gpt-5.4",
capabilityTags: ["responses", "tools", "background"],
signInUrl: null,
credentialHelp: "Generate an API key at platform.openai.com → API keys.",
},
{
key: "anthropic",
label: "Anthropic",
authType: PROVIDER_AUTH_TYPE.API_KEY,
defaultModel: "claude-sonnet-4-5",
capabilityTags: ["messages", "tool-use", "token-bucket"],
signInUrl: null,
credentialHelp: "Generate an API key at console.anthropic.com → API keys.",
},
{
key: "claude-pro",
label: "Claude Pro/Max",
authType: PROVIDER_AUTH_TYPE.OAUTH_PKCE,
defaultModel: "claude-sonnet-4-5",
capabilityTags: ["account", "subscription"],
signInUrl: "https://claude.ai/login",
credentialHelp: "Sign in with your Claude Pro or Max account in the browser; AgentCompany finishes the handshake.",
},
{
key: "xai",
label: "xAI Grok",
authType: PROVIDER_AUTH_TYPE.API_KEY,
defaultModel: "grok-4",
capabilityTags: ["chat", "reasoning"],
signInUrl: null,
credentialHelp: "Generate an API key at console.x.ai → API keys.",
},
{
key: "groq",
label: "Groq",
authType: PROVIDER_AUTH_TYPE.API_KEY,
defaultModel: "groq/compound",
capabilityTags: ["inference", "low-latency"],
signInUrl: null,
credentialHelp: "Generate an API key at console.groq.com → API keys.",
},
{
key: "mistral",
label: "Mistral",
authType: PROVIDER_AUTH_TYPE.API_KEY,
defaultModel: "mistral-large-latest",
capabilityTags: ["chat", "reasoning"],
signInUrl: null,
credentialHelp: "Generate an API key at console.mistral.ai → API keys.",
},
{
key: "cerebras",
label: "Cerebras",
authType: PROVIDER_AUTH_TYPE.API_KEY,
defaultModel: "qwen-3-235b-a22b-instruct-2507",
capabilityTags: ["inference", "fast"],
signInUrl: null,
credentialHelp: "Generate an API key at cloud.cerebras.ai → API keys.",
},
{
key: "openrouter",
label: "OpenRouter",
authType: PROVIDER_AUTH_TYPE.API_KEY,
defaultModel: "anthropic/claude-sonnet-4.5",
capabilityTags: ["router", "multi-model"],
signInUrl: null,
credentialHelp: "Generate an API key at openrouter.ai → Keys.",
},
{
key: "github-copilot",
label: "GitHub Copilot",
authType: PROVIDER_AUTH_TYPE.OAUTH_PKCE,
defaultModel: "claude-opus-4-5",
capabilityTags: ["account", "coding"],
signInUrl: "https://github.com/login/device",
credentialHelp: "Sign in with the GitHub device code shown here — no token to copy.",
},
{
key: "google-antigravity",
label: "Google Antigravity",
authType: PROVIDER_AUTH_TYPE.OAUTH_PKCE,
defaultModel: "claude-sonnet-4-5",
capabilityTags: ["account", "coding"],
signInUrl: "https://antigravity.google/",
credentialHelp: "Sign in with your Google account in the browser; AgentCompany finishes the handshake.",
},
{
key: "gpt-account",
label: "GPT account",
authType: PROVIDER_AUTH_TYPE.ACCOUNT_SUBSCRIPTION,
defaultModel: "gpt-5.3-codex",
capabilityTags: ["codex", "subscription"],
signInUrl: "https://chatgpt.com/codex",
credentialHelp: "Sign in to ChatGPT Plus/Pro in the browser; AgentCompany finishes the handshake.",
},
{
key: "azure-openai",
label: "Azure OpenAI",
authType: PROVIDER_AUTH_TYPE.CLOUD,
defaultModel: "gpt-5.4",
capabilityTags: ["enterprise", "regional"],
signInUrl: null,
credentialHelp: "Set base URL (e.g. https://<resource>.openai.azure.com), deployment name, and the api-key from Azure portal.",
},
{
key: "aws-bedrock",
label: "AWS Bedrock",
authType: PROVIDER_AUTH_TYPE.CLOUD,
defaultModel: "anthropic.claude-sonnet-4-5",
capabilityTags: ["enterprise", "multi-model"],
signInUrl: null,
credentialHelp: "Provide AWS region plus an access key + secret access key with bedrock:InvokeModel permission.",
},
{
key: "vertex-ai",
label: "Vertex AI",
authType: PROVIDER_AUTH_TYPE.CLOUD,
defaultModel: "gemini-2.5-pro",
capabilityTags: ["enterprise", "regional"],
signInUrl: null,
credentialHelp: "Provide GCP project id, region, and a service-account JSON key with aiplatform.user role.",
},
{
key: "custom-openai",
label: "Custom OpenAI-compatible",
authType: PROVIDER_AUTH_TYPE.CLOUD,
defaultModel: null,
capabilityTags: ["custom", "openai-compatible"],
signInUrl: null,
credentialHelp: "Set the base URL (ending in /v1) and an API key for any OpenAI Chat Completions–compatible endpoint, then enter the model id.",
customEndpoint: "openai",
},
{
key: "custom-anthropic",
label: "Custom Anthropic-compatible",
authType: PROVIDER_AUTH_TYPE.CLOUD,
defaultModel: null,
capabilityTags: ["custom", "anthropic-compatible"],
signInUrl: null,
credentialHelp: "Set the base URL and an API key for any Anthropic Messages–compatible endpoint, then enter the model id.",
customEndpoint: "anthropic",
},
];
export const PROVIDER_CATALOG: ProviderCatalogEntry[] = RAW_CATALOG.map((entry) => ({
...entry,
models: listProviderModels(entry.key),
}));