feat: add Gemini and Bedrock model providers

Add native GeminiClient using @google/generative-ai SDK and BedrockClient
using @aws-sdk/client-bedrock-runtime. Replace the previous Gemini fallback
(OpenAI-compatible shim) with the real implementation. Add OpenRouter as a
provider option (OpenAI-compatible with custom baseURL). Update model costs,
doctor CLI checks, and client factory tests.
This commit is contained in:
William Valentin
2026-02-06 16:51:32 -08:00
parent e8e4fcd758
commit 0eb1f7a073
8 changed files with 908 additions and 5 deletions
+12
View File
@@ -7,8 +7,20 @@ export const MODEL_COSTS_PER_MILLION: Record<string, { input: number; output: nu
// OpenAI
'gpt-4o': { input: 2.50, output: 10 },
'gpt-4o-mini': { input: 0.15, output: 0.60 },
// Gemini
'gemini-2.0-flash': { input: 0.10, output: 0.40 },
'gemini-2.0-flash-lite': { input: 0.025, output: 0.10 },
'gemini-2.5-pro': { input: 1.25, output: 10 },
'gemini-2.5-flash': { input: 0.15, output: 0.60 },
'gemini-1.5-pro': { input: 1.25, output: 5 },
'gemini-1.5-flash': { input: 0.075, output: 0.30 },
// Local / unknown models
'default': { input: 0, output: 0 },
// Bedrock (Meta Llama)
'meta.llama3-1-70b-instruct-v1:0': { input: 0.72, output: 0.72 },
'meta.llama3-1-8b-instruct-v1:0': { input: 0.22, output: 0.22 },
// Bedrock (Amazon Titan)
'amazon.titan-text-express-v1': { input: 0.20, output: 0.60 },
};
/**