Skip to content

Commit b4ed0fd

Browse files
committed
feat: add gemini support
1 parent 411089f commit b4ed0fd

File tree

2 files changed

+36
-1
lines changed

2 files changed

+36
-1
lines changed

apps/array/src/shared/types/models.ts

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export type ModelProvider = "anthropic" | "openai";
1+
export type ModelProvider = "anthropic" | "openai" | "gemini";
22

33
export type ModelProviderConfig = {
44
name: string;
@@ -18,6 +18,9 @@ export const MODEL_PROVIDERS: Record<ModelProvider, ModelProviderConfig> = {
1818
openai: {
1919
name: "OpenAI",
2020
},
21+
gemini: {
22+
name: "Google",
23+
},
2124
};
2225

2326
export const AVAILABLE_MODELS: ModelOption[] = [
@@ -46,6 +49,18 @@ export const AVAILABLE_MODELS: ModelOption[] = [
4649
provider: "openai",
4750
enabled: true,
4851
},
52+
{
53+
id: "gemini/gemini-3-pro-preview",
54+
name: "Gemini 3.0 Pro",
55+
provider: "gemini",
56+
enabled: true,
57+
},
58+
{
59+
id: "gemini/gemini-3-flash-preview",
60+
name: "Gemini 3.0 Flash",
61+
provider: "gemini",
62+
enabled: true,
63+
},
4964
];
5065

5166
export const DEFAULT_MODEL = "claude-opus-4-5";
@@ -71,5 +86,11 @@ export function getModelsByProvider(): Record<
7186
(m) => m.provider === "openai" && m.enabled,
7287
),
7388
},
89+
gemini: {
90+
...MODEL_PROVIDERS.gemini,
91+
models: AVAILABLE_MODELS.filter(
92+
(m) => m.provider === "gemini" && m.enabled,
93+
),
94+
},
7495
};
7596
}

packages/agent/src/agent.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ export class Agent {
140140
process.env.ANTHROPIC_BASE_URL = gatewayUrl;
141141
process.env.ANTHROPIC_AUTH_TOKEN = apiKey;
142142
this.ensureOpenAIGatewayEnv(gatewayUrl, apiKey);
143+
this.ensureGeminiGatewayEnv(gatewayUrl, apiKey);
143144
} catch (error) {
144145
this.logger.error("Failed to configure LLM gateway", error);
145146
throw error;
@@ -530,6 +531,19 @@ Generated by PostHog Agent`;
530531
}
531532
}
532533

534+
private ensureGeminiGatewayEnv(gatewayUrl?: string, token?: string): void {
535+
const resolvedGatewayUrl = gatewayUrl || process.env.ANTHROPIC_BASE_URL;
536+
const resolvedToken = token || process.env.ANTHROPIC_AUTH_TOKEN;
537+
538+
if (resolvedGatewayUrl) {
539+
process.env.GEMINI_BASE_URL = resolvedGatewayUrl;
540+
}
541+
542+
if (resolvedToken) {
543+
process.env.GEMINI_API_KEY = resolvedToken;
544+
}
545+
}
546+
533547
async runTaskCloud(
534548
taskId: string,
535549
taskRunId: string,

0 commit comments

Comments
 (0)