Conversation
Add provider configs, proxy vendor entries, and API type mappings for DeepSeek, Mistral, Groq, Cerebras, Fireworks, Together AI, Deep Infra, Perplexity, NVIDIA, MiniMax, Moonshot, Scaleway, Nebius, OVHcloud, and Hugging Face. Organize all 22 providers into categories (Major, Fast Inference, Aggregators, Specialized, Regional, Local) with search in the wizard and grouped optgroups in the Add Key form. Fixes #6 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds support for 15 additional LLM providers across the dashboard UI, bot workspace template generation, and the proxy’s vendor registry—addressing the “keys can’t be saved for newly added providers” issue by ensuring backend vendor validation recognizes the new providers.
Changes:
- Extend backend provider→API-type mapping and proxy vendor registry to include 15 new OpenAI-compatible providers.
- Add categorized provider UX (wizard grouping + search) and grouped
<optgroup>provider selection in the Add Key form. - Add/extend tests covering provider lists, category integrity, API type mapping, and new vendor auth behavior.
Reviewed changes
Copilot reviewed 25 out of 25 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/bots/templates.ts | Adds new providers to getApiTypeForProvider mapping. |
| src/bots/templates.test.ts | Adds unit coverage for getApiTypeForProvider across new providers. |
| proxy/src/types.ts | Registers new vendor host/basePath/auth settings in VENDOR_CONFIGS. |
| proxy/src/types.test.ts | Verifies new vendors exist and use expected Bearer auth formatting. |
| dashboard/src/wizard/pages/Page3Toggles.tsx | Replaces “popular/other” provider UI with category grouping + provider search. |
| dashboard/src/wizard/pages/Page3Toggles.css | Styles for provider search and category labels/sections. |
| dashboard/src/secrets/AddKeyForm.tsx | Groups provider selection via categorized <optgroup> and hides no-auth providers (e.g., Ollama). |
| dashboard/src/config/providers/index.ts | Imports/exports new provider configs and exports PROVIDER_CATEGORIES; expands PROVIDERS to 22 entries. |
| dashboard/src/config/providers/categories.ts | Defines provider categories and assigns all providers to exactly one category. |
| dashboard/src/config/providers/providers.test.ts | Updates provider registry expectations and adds category integrity tests. |
| dashboard/src/config/providers/deepseek.ts | Adds DeepSeek provider config. |
| dashboard/src/config/providers/mistral.ts | Adds Mistral provider config. |
| dashboard/src/config/providers/groq.ts | Adds Groq provider config. |
| dashboard/src/config/providers/cerebras.ts | Adds Cerebras provider config. |
| dashboard/src/config/providers/fireworks.ts | Adds Fireworks provider config. |
| dashboard/src/config/providers/togetherai.ts | Adds Together AI provider config. |
| dashboard/src/config/providers/deepinfra.ts | Adds Deep Infra provider config. |
| dashboard/src/config/providers/perplexity.ts | Adds Perplexity provider config. |
| dashboard/src/config/providers/nvidia.ts | Adds NVIDIA provider config. |
| dashboard/src/config/providers/minimax.ts | Adds MiniMax provider config. |
| dashboard/src/config/providers/moonshot.ts | Adds Moonshot provider config. |
| dashboard/src/config/providers/scaleway.ts | Adds Scaleway provider config. |
| dashboard/src/config/providers/nebius.ts | Adds Nebius provider config. |
| dashboard/src/config/providers/ovhcloud.ts | Adds OVHcloud provider config. |
| dashboard/src/config/providers/huggingface.ts | Adds Hugging Face provider config. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| .filter((p) => !isSearching || p.label.toLowerCase().includes(searchLower) || p.id.toLowerCase().includes(searchLower)); | ||
| return { ...cat, providers }; | ||
| }).filter((cat) => cat.providers.length > 0); | ||
| }, [providerMap, isSearching, searchLower]); |
There was a problem hiding this comment.
filteredCategories useMemo references PROVIDER_CATEGORIES from outer scope but it isn’t listed in the dependency array, which will be flagged by react-hooks/exhaustive-deps. Add PROVIDER_CATEGORIES to the dependency list (or compute the categorized provider list outside the component if it’s static).
| }, [providerMap, isSearching, searchLower]); | |
| }, [providerMap, isSearching, searchLower, PROVIDER_CATEGORIES]); |
Avoids useMemo with empty dependency array on a module-level constant, which triggers react-hooks/exhaustive-deps and can cause stale values under HMR. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add provider configs, proxy vendor entries, and API type mappings for DeepSeek, Mistral, Groq, Cerebras, Fireworks, Together AI, Deep Infra, Perplexity, NVIDIA, MiniMax, Moonshot, Scaleway, Nebius, OVHcloud, and Hugging Face. Organize all 22 providers into categories (Major, Fast Inference, Aggregators, Specialized, Regional, Local) with search in the wizard and grouped optgroups in the Add Key form.
Fixes #6