fix(providers): restore 20 missing upstream providers + add icons for 28 gap providers#2476
fix(providers): restore 20 missing upstream providers + add icons for 28 gap providers#2476oyi77 wants to merge 1 commit into
Conversation
Code Review SummaryStatus: 3 New Issues Found (1 WARNING + 2 SUGGESTION) | 5 Carried Forward | Recommendation: Address warning before merge Overview
New Issues (Incremental:
|
| File | Line | Issue |
|---|---|---|
open-sse/executors/veoaifree-web.ts |
24 | SUGGESTION: Nonce regex ([a-f0-9]+) only matches lowercase hex. WordPress nonces can be mixed-case or include -/_. Consider ([a-fA-F0-9_-]+). |
open-sse/executors/veoaifree-web.ts |
89 | SUGGESTION: Video polling loop runs up to 10 min with no AbortSignal. If request is cancelled, timers and fetches leak. Consider accepting and checking an abort signal per iteration. |
open-sse/executors/veoaifree-web.ts |
257 | WARNING: err.message from fetchNonce() exposed directly in response body. Could leak DNS errors, TLS details, or stack traces. Use generic message or sanitizeErrorMessage() per docs/security/ERROR_SANITIZATION.md. |
Previous Review Findings (Carried Forward - 5 issues)
These issues were flagged in the previous review and remain unresolved:
| File | Line | Issue |
|---|---|---|
src/shared/constants/providers.ts |
219 | Provider claude-web is added with authHint: "Paste your session cookie from claude.ai" — same concern as copilot-web: users may not know which cookie to paste. |
src/shared/constants/providers.ts |
249 | copilot-web authHint says "access_token" but also mentions .har export — unclear which is preferred. |
src/shared/constants/providers.ts |
986 | hackclub authHint says "Sign in with your Hack Club account" but providerAllowsOptionalApiKey includes hackclub, suggesting no API key is needed. |
src/shared/constants/providers.ts |
997 | github-models freeNote claims "Free GPT-5" — GPT-5 is unreleased. |
src/shared/constants/providers.ts |
2215 | providerAllowsOptionalApiKey includes copilot-web and hackclub but the auth hints suggest auth is required (cookie/sign-in). |
Other Observations (not in diff)
Issues found in PR metadata/description, outside the diff scope:
| Area | Issue |
|---|---|
veoaifree-web in providerAllowsOptionalApiKey |
Provider has hasFree: true and "No auth required" but is NOT listed in providerAllowsOptionalApiKey(). Consider adding it to match pollinations/searxng-search pattern. |
| PR Title vs Files | Title says "add icons for 28 gap providers" but only 24 SVG files were added (4 lobe aliases are code-only). Consider updating title. |
| PR Summary vs Body | Summary says "add icons for all 52 gap providers" but body details 20 restored + 24 SVG + 4 lobe aliases = 48, not 52. |
Files Reviewed (5 files)
open-sse/executors/veoaifree-web.ts— New executor for Veo AI Free (279 LOC). Error sanitization and abort signal concerns.src/app/api/v1/combos/projectCombo.ts— New projection helper (56 LOC). Clean, well-tested.src/lib/guardrails/visionBridgeHelpers.ts— Vision bridge env override (updated). Clean implementation.src/lib/zed-oauth/dockerDetect.ts— Docker detection utility (38 LOC). Clean, good dependency injection for testing.open-sse/services/antigravityHeaders.ts— Updated metadata function. Breaking shape change (addedplatform+pluginTypefields) but test updated accordingly.
Fix these issues in Kilo Cloud
Reviewed by qwen3.6-plus · 488,893 tokens
There was a problem hiding this comment.
Code Review
This pull request significantly expands the platform's provider support by adding numerous SVG icons and registering new providers across various categories, including Free, OAuth, Web Cookie, API Key, Local, and IDE providers. Key additions include opencode, zed, trae, and llama-cpp. Review feedback identifies factual errors regarding unreleased models in the github-models description and highlights inconsistencies between the optional API key logic and user-facing hints for providers like copilot-web and hackclub. Additionally, the reviewer suggests including veoaifree-web and uncloseai in the optional API key list to align with their authentication requirements.
| textIcon: "GH", | ||
| website: "https://github.com/marketplace/models", | ||
| hasFree: true, | ||
| freeNote: "Free GPT-5, o-series, DeepSeek-R1, Llama 4, Grok 3 — GitHub account only.", |
There was a problem hiding this comment.
The freeNote for github-models mentions "GPT-5", "Llama 4", and "Grok 3", which are not currently available or officially released. This appears to be incorrect information or placeholder text that should be updated to reflect currently available models (e.g., GPT-4o, Llama 3.3).
| freeNote: "Free GPT-5, o-series, DeepSeek-R1, Llama 4, Grok 3 — GitHub account only.", | |
| freeNote: "Free GPT-4o, o-series, DeepSeek-R1, Llama 3.3 — GitHub account only.", |
| providerId === "copilot-web" || | ||
| providerId === "hackclub" || |
There was a problem hiding this comment.
The providers veoaifree-web and uncloseai should be added to the providerAllowsOptionalApiKey list. Their authHint descriptions explicitly state that no authentication is required, but without being in this list, the UI will still enforce the presence of an API key or token.
| providerId === "copilot-web" || | |
| providerId === "hackclub" || | |
| providerId === "copilot-web" || | |
| providerId === "hackclub" || | |
| providerId === "veoaifree-web" || | |
| providerId === "uncloseai" || |
| authHint: | ||
| "Paste your access_token from copilot.microsoft.com (or export a .har file from DevTools while logged in)", |
There was a problem hiding this comment.
There is an inconsistency for copilot-web: it is marked as having an optional API key in providerAllowsOptionalApiKey (line 2233), but the authHint here instructs the user to paste an access_token. If it is truly optional, the hint should clarify that it's only needed for higher limits or specific features.
| authHint: | |
| "Paste your access_token from copilot.microsoft.com (or export a .har file from DevTools while logged in)", | |
| authHint: | |
| "Optional: Paste your access_token from copilot.microsoft.com (or export a .har file from DevTools while logged in) for higher limits.", |
| hasFree: true, | ||
| freeNote: "Free AI for Hack Club members — 30+ models, no credit card.", | ||
| passthroughModels: true, | ||
| authHint: "Sign in with your Hack Club account at ai.hackclub.com.", |
There was a problem hiding this comment.
Similar to copilot-web, hackclub is marked as optional in providerAllowsOptionalApiKey (line 2234), but the authHint here implies that signing in is required. The hint should be updated to reflect its optional status.
| authHint: "Sign in with your Hack Club account at ai.hackclub.com.", | |
| authHint: "Optional: Sign in with your Hack Club account at ai.hackclub.com for member-only models.", |
| website: "https://www.meta.ai", | ||
| authHint: "Paste your abra_sess value or full cookie header from meta.ai", | ||
| }, | ||
| "claude-web": { |
There was a problem hiding this comment.
SUGGESTION: Provider claude-web is added in this diff but is not listed in the PR body's "Providers Restored" table. The PR body lists 20 providers (5 in Web Cookie row) but the diff actually adds 21 providers (6 in Web Cookie: claude-web, gemini-web, deepseek-web, copilot-web, veoaifree-web, t3-web). The PR body should be updated to include claude-web and reflect the correct count of 21.
| ### Never stop coding. Save 15-95% eligible tokens with RTK+Caveman compression + auto-fallback to **FREE & low-cost AI models**. | ||
|
|
||
| _The most complete open-source AI proxy — **one endpoint**, **160+ providers**, **13 routing strategies**, zero downtime. Multi-platform: **Web**, **Desktop (Electron)**, **Mobile (PWA + Termux)**. Fully extensible via **MCP Server (37 tools)**, **A2A Protocol**, and **Memory/Skills** systems. Available in **40+ languages**._ | ||
| _The most complete open-source AI proxy — **one endpoint**, **198 providers**, **13 routing strategies**, zero downtime. Multi-platform: **Web**, **Desktop (Electron)**, **Mobile (PWA + Termux)**. Fully extensible via **MCP Server (37 tools)**, **A2A Protocol**, and **Memory/Skills** systems. Available in **40+ languages**._ |
There was a problem hiding this comment.
SUGGESTION: Provider count "198" does not match PR body ("197 providers") or actual code count (201 total provider IDs in src/shared/constants/providers.ts, 200 active + 1 deprecated). Verify the correct count and update both README and PR body consistently.
|
You're right about the unreleased model names — those were placeholder text. Will update to currently available models and fix the optional API key inconsistencies. |
Co-Authored-By: OpenClaude (mimo-v2.5-pro) <openclaude@gitlawb.com>
9524a57 to
e0c4bd3
Compare
Summary
src/shared/constants/providers.tsIDE_PROVIDER_IDS, expandedVIDEO_PROVIDER_IDS,supportsBulkApiKey(),hasFreeflags, andproviderAllowsOptionalApiKeyentriesProviders Restored (20)
opencodezed,traegemini-web,deepseek-web,copilot-web,veoaifree-web,t3-webalibaba-cn,replicate,hackclub,github-models,haiper,leonardo,ideogram,suno,udio,gitlawb,gitlawb-gmillama-cppIcons Added (24 SVGs)
bytez,cablyai,chutes,codex-cloud,completions,crof,datarobot,devin,devin-cli,enally,fenayai,freetheai,galadriel,getgoapi,glhf,jules,laozhang,llm7,oobabooga,petals,publicai,thebai,uncloseai,zai-searchLobe Aliases Added (4)
kluster→Kluster,lepton→LeptonAI,ollama-search→Ollama,auto→AutomaticTest plan
npm run lint— 0 errors (2073 warnings, all pre-existing)npm run typecheck:core— cleannpm run build— production build succeedsRoot Cause
During the v3.8.0 release merge (
release/v3.8.0→main), provider definitions from several upstream PRs were lost due to merge conflicts. The providers were added in PRs #2314, #2339, #2340, #2344, #2364, #2366, #2369, #2380, and others, but the release merge resolution dropped them.Closes #XXXX