feat(providers): add gemini web search provider (#2763)

* add gemini web search provider

* fix(web): prefer free providers before Gemini in auto mode

* fix(web): expose gemini api key and model settings

* fix(web): prefer configured providers before Gemini in auto mode

* fix(web): satisfy gemini lint checks

* fix(web): address gemini provider review feedback

* test(web): align auto-provider expectations

* fix(web): let gemini ignore search range
This commit is contained in:
Anton Bogdanovich
2026-05-13 18:50:47 -07:00
committed by GitHub
parent eb0653074b
commit 794eb04f32
12 changed files with 431 additions and 15 deletions
+1
View File
@@ -30,6 +30,7 @@ export interface WebSearchProviderConfig {
max_results: number
base_url?: string
api_key?: string
model?: string
api_key_set?: boolean
}
@@ -30,10 +30,13 @@ const apiKeyProviders = new Set([
"brave",
"tavily",
"perplexity",
"gemini",
"glm_search",
"baidu_search",
])
const modelProviders = new Set(["gemini"])
export function WebSearchProviderSettings({
providerLabelMap,
settings,
@@ -226,6 +229,27 @@ function ProviderCard({
/>
</ProviderField>
)}
{modelProviders.has(providerId) && (
<ProviderField
label={t("pages.agent.tools.web_search.model", "Model")}
>
<Input
value={settings.model ?? ""}
onChange={(event) =>
updateSettings((current) => ({
...current,
model: event.target.value,
}))
}
placeholder={t(
"pages.agent.tools.web_search.model_placeholder",
"Optional model override",
)}
className="bg-muted/40 hover:bg-muted/60 focus:bg-background focus:ring-primary/20 h-10 rounded-xl border-transparent shadow-none transition-colors"
/>
</ProviderField>
)}
</div>
</div>
)}