mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
feat: widen ai_provider_type enum for chatd providers (#25394)
This commit is contained in:
Generated
+7
-1
@@ -12,7 +12,13 @@ CREATE TYPE agent_key_scope_enum AS ENUM (
|
||||
|
||||
CREATE TYPE ai_provider_type AS ENUM (
|
||||
'openai',
|
||||
'anthropic'
|
||||
'anthropic',
|
||||
'azure',
|
||||
'bedrock',
|
||||
'google',
|
||||
'openai-compat',
|
||||
'openrouter',
|
||||
'vercel'
|
||||
);
|
||||
|
||||
CREATE TYPE ai_seat_usage_reason AS ENUM (
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
-- No-op: Postgres does not allow removing enum values safely.
|
||||
-- Matches the precedent in 000495_ai_providers.down.sql for ALTER
|
||||
-- TYPE resource_type / api_key_scope ADD VALUE.
|
||||
@@ -0,0 +1,15 @@
|
||||
-- Widen ai_provider_type to carry the full chatd provider set so the
|
||||
-- chatd-side migration can preserve type fidelity when it lands. The
|
||||
-- aibridge runtime currently has native support only for OpenAI and
|
||||
-- Anthropic (with a Bedrock variant on the Anthropic client); the new
|
||||
-- non-Bedrock types route through the OpenAI fantasy client today
|
||||
-- because chatd already configures these providers against their
|
||||
-- OpenAI-compatible endpoints. Native gateway-side support for these
|
||||
-- providers comes later, at which point this enum already carries the
|
||||
-- right discriminator and no further migration is needed.
|
||||
ALTER TYPE ai_provider_type ADD VALUE IF NOT EXISTS 'azure';
|
||||
ALTER TYPE ai_provider_type ADD VALUE IF NOT EXISTS 'bedrock';
|
||||
ALTER TYPE ai_provider_type ADD VALUE IF NOT EXISTS 'google';
|
||||
ALTER TYPE ai_provider_type ADD VALUE IF NOT EXISTS 'openai-compat';
|
||||
ALTER TYPE ai_provider_type ADD VALUE IF NOT EXISTS 'openrouter';
|
||||
ALTER TYPE ai_provider_type ADD VALUE IF NOT EXISTS 'vercel';
|
||||
@@ -19,8 +19,14 @@ import (
|
||||
type AIProviderType string
|
||||
|
||||
const (
|
||||
AiProviderTypeOpenai AIProviderType = "openai"
|
||||
AiProviderTypeAnthropic AIProviderType = "anthropic"
|
||||
AiProviderTypeOpenai AIProviderType = "openai"
|
||||
AiProviderTypeAnthropic AIProviderType = "anthropic"
|
||||
AiProviderTypeAzure AIProviderType = "azure"
|
||||
AiProviderTypeBedrock AIProviderType = "bedrock"
|
||||
AiProviderTypeGoogle AIProviderType = "google"
|
||||
AiProviderTypeOpenaiCompat AIProviderType = "openai-compat"
|
||||
AiProviderTypeOpenrouter AIProviderType = "openrouter"
|
||||
AiProviderTypeVercel AIProviderType = "vercel"
|
||||
)
|
||||
|
||||
func (e *AIProviderType) Scan(src interface{}) error {
|
||||
@@ -61,7 +67,13 @@ func (ns NullAIProviderType) Value() (driver.Value, error) {
|
||||
func (e AIProviderType) Valid() bool {
|
||||
switch e {
|
||||
case AiProviderTypeOpenai,
|
||||
AiProviderTypeAnthropic:
|
||||
AiProviderTypeAnthropic,
|
||||
AiProviderTypeAzure,
|
||||
AiProviderTypeBedrock,
|
||||
AiProviderTypeGoogle,
|
||||
AiProviderTypeOpenaiCompat,
|
||||
AiProviderTypeOpenrouter,
|
||||
AiProviderTypeVercel:
|
||||
return true
|
||||
}
|
||||
return false
|
||||
@@ -71,6 +83,12 @@ func AllAIProviderTypeValues() []AIProviderType {
|
||||
return []AIProviderType{
|
||||
AiProviderTypeOpenai,
|
||||
AiProviderTypeAnthropic,
|
||||
AiProviderTypeAzure,
|
||||
AiProviderTypeBedrock,
|
||||
AiProviderTypeGoogle,
|
||||
AiProviderTypeOpenaiCompat,
|
||||
AiProviderTypeOpenrouter,
|
||||
AiProviderTypeVercel,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,20 @@ type AIProviderType string
|
||||
const (
|
||||
AIProviderTypeOpenAI AIProviderType = "openai"
|
||||
AIProviderTypeAnthropic AIProviderType = "anthropic"
|
||||
// AIProviderTypeAzure, AIProviderTypeGoogle, AIProviderTypeOpenAICompat,
|
||||
// AIProviderTypeOpenrouter, and AIProviderTypeVercel route through
|
||||
// aibridge's OpenAI client today because chatd configures these
|
||||
// providers against their OpenAI-compatible endpoints. Native
|
||||
// gateway-side support arrives later without an enum change.
|
||||
AIProviderTypeAzure AIProviderType = "azure"
|
||||
AIProviderTypeGoogle AIProviderType = "google"
|
||||
AIProviderTypeOpenAICompat AIProviderType = "openai-compat"
|
||||
AIProviderTypeOpenrouter AIProviderType = "openrouter"
|
||||
AIProviderTypeVercel AIProviderType = "vercel"
|
||||
// AIProviderTypeBedrock routes through aibridge's Anthropic client
|
||||
// using the Bedrock discriminator in Settings; native support is
|
||||
// future work.
|
||||
AIProviderTypeBedrock AIProviderType = "bedrock"
|
||||
)
|
||||
|
||||
// AIProviderSettings is the discriminated container for type-specific
|
||||
|
||||
Generated
+19
-2
@@ -424,9 +424,26 @@ export interface AIProviderSettings {}
|
||||
export const AIProviderSettingsTypeBedrock = "bedrock";
|
||||
|
||||
// From codersdk/aiproviders.go
|
||||
export type AIProviderType = "anthropic" | "openai";
|
||||
export type AIProviderType =
|
||||
| "anthropic"
|
||||
| "azure"
|
||||
| "bedrock"
|
||||
| "google"
|
||||
| "openai"
|
||||
| "openai-compat"
|
||||
| "openrouter"
|
||||
| "vercel";
|
||||
|
||||
export const AIProviderTypes: AIProviderType[] = ["anthropic", "openai"];
|
||||
export const AIProviderTypes: AIProviderType[] = [
|
||||
"anthropic",
|
||||
"azure",
|
||||
"bedrock",
|
||||
"google",
|
||||
"openai",
|
||||
"openai-compat",
|
||||
"openrouter",
|
||||
"vercel",
|
||||
];
|
||||
|
||||
// From codersdk/allowlist.go
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user