46 lines
1005 B
TypeScript
46 lines
1005 B
TypeScript
export type ModelApi =
|
|
| "openai-completions"
|
|
| "openai-responses"
|
|
| "anthropic-messages"
|
|
| "google-generative-ai"
|
|
| "github-copilot";
|
|
|
|
export type ModelCompatConfig = {
|
|
supportsStore?: boolean;
|
|
supportsDeveloperRole?: boolean;
|
|
supportsReasoningEffort?: boolean;
|
|
maxTokensField?: "max_completion_tokens" | "max_tokens";
|
|
};
|
|
|
|
export type ModelDefinitionConfig = {
|
|
id: string;
|
|
name: string;
|
|
api?: ModelApi;
|
|
reasoning: boolean;
|
|
input: Array<"text" | "image">;
|
|
cost: {
|
|
input: number;
|
|
output: number;
|
|
cacheRead: number;
|
|
cacheWrite: number;
|
|
};
|
|
contextWindow: number;
|
|
maxTokens: number;
|
|
headers?: Record<string, string>;
|
|
compat?: ModelCompatConfig;
|
|
};
|
|
|
|
export type ModelProviderConfig = {
|
|
baseUrl: string;
|
|
apiKey?: string;
|
|
api?: ModelApi;
|
|
headers?: Record<string, string>;
|
|
authHeader?: boolean;
|
|
models: ModelDefinitionConfig[];
|
|
};
|
|
|
|
export type ModelsConfig = {
|
|
mode?: "merge" | "replace";
|
|
providers?: Record<string, ModelProviderConfig>;
|
|
};
|