feat(atlascloud): expand validated model pool for static resolution#2569
feat(atlascloud): expand validated model pool for static resolution#2569lucaszhu-hue wants to merge 1 commit into
Conversation
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
| const ATLASCLOUD_VALIDATED_MODELS: &[&str] = &[ | ||
| "deepseek-ai/DeepSeek-V3-0324", | ||
| "deepseek-ai/deepseek-r1-0528", | ||
| "moonshotai/Kimi-K2-Instruct", | ||
| "Qwen/Qwen3-Coder", | ||
| "Qwen/Qwen3-235B-A22B-Instruct-2507", | ||
| "deepseek-ai/DeepSeek-V3.1", | ||
| "moonshotai/Kimi-K2-Instruct-0905", | ||
| "Qwen/Qwen3-Next-80B-A3B-Instruct", | ||
| "Qwen/Qwen3-Next-80B-A3B-Thinking", | ||
| "Qwen/Qwen3-30B-A3B-Instruct-2507", | ||
| "deepseek-ai/DeepSeek-V3.1-Terminus", | ||
| "deepseek-ai/DeepSeek-V3.2-Exp", | ||
| "zai-org/GLM-4.6", | ||
| "MiniMaxAI/MiniMax-M2", | ||
| "Qwen/Qwen3-VL-235B-A22B-Instruct", | ||
| "moonshotai/Kimi-K2-Thinking", | ||
| "google/gemini-2.5-flash", | ||
| "google/gemini-2.5-flash-lite", | ||
| "openai/gpt-5.1", | ||
| "openai/gpt-5.1-chat", | ||
| "openai/gpt-4o", | ||
| "openai/gpt-4o-mini", | ||
| "openai/gpt-4.1", | ||
| "openai/gpt-4.1-mini", | ||
| "openai/gpt-4.1-nano", | ||
| "openai/o1", | ||
| "openai/o3", | ||
| "openai/o3-mini", | ||
| "openai/o4-mini", | ||
| "anthropic/claude-sonnet-4.5-20250929", | ||
| "deepseek-ai/deepseek-v3.2", | ||
| "openai/gpt-5", | ||
| "openai/gpt-5-chat", | ||
| "openai/gpt-5-mini", | ||
| "openai/gpt-5-nano", | ||
| "openai/gpt-5.2", | ||
| "openai/gpt-5.2-chat", | ||
| "google/gemini-2.5-pro", | ||
| "anthropic/claude-opus-4.5-20251101", | ||
| "google/gemini-3-flash-preview", | ||
| "zai-org/glm-4.7", | ||
| "minimaxai/minimax-m2.1", | ||
| "google/gemini-2.0-flash", | ||
| "qwen/qwen3-8b", | ||
| "qwen/qwen3-235b-a22b-thinking-2507", | ||
| "qwen/qwen3-vl-235b-a22b-thinking", | ||
| "qwen/qwen3-30b-a3b", | ||
| "qwen/qwen3-30b-a3b-thinking-2507", | ||
| "deepseek-ai/deepseek-ocr", | ||
| "xai/grok-4-0709", | ||
| ]; |
There was a problem hiding this comment.
Mixed casing within
ATLASCLOUD_VALIDATED_MODELS produces inconsistent API IDs
The list mixes Pascal-cased IDs ("deepseek-ai/DeepSeek-V3-0324", "Qwen/Qwen3-Coder", "MiniMaxAI/MiniMax-M2", "moonshotai/Kimi-K2-Instruct") with lower-snake-cased IDs ("qwen/qwen3-8b", "deepseek-ai/deepseek-r1-0528", "minimaxai/minimax-m2.1"). When a provider-hinted resolution succeeds, the returned resolved.id is the stored ID verbatim (the preserve_requested_model_id_case path is only taken in the alias-map branch, not here). That means a request for qwen/qwen3-coder routes to AtlasCloud with the model string "Qwen/Qwen3-Coder", while a request for qwen/qwen3-8b routes with "qwen/qwen3-8b". If the AtlasCloud endpoint is case-sensitive (which REST APIs typically are), requests for the Pascal-cased entries will behave differently than the lowercase ones.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
| "deepseek-ai/deepseek-ocr", | ||
| "xai/grok-4-0709", | ||
| ]; |
There was a problem hiding this comment.
deepseek-ai/deepseek-ocr is an OCR-specialised model that does not expose a chat-with-tools API. Marking it as supports_tools: true and supports_reasoning: true will cause the agent to send tool-call payloads to it, which the endpoint will reject or silently ignore. The atlascloud_model helper currently applies these flags uniformly to every entry in ATLASCLOUD_VALIDATED_MODELS, so there is no way to flag per-model capability differences. At minimum, deepseek-ocr should be excluded from the blanket helper.
| "deepseek-ai/deepseek-ocr", | |
| "xai/grok-4-0709", | |
| ]; | |
| // deepseek-ocr is an OCR-only model; add it manually with appropriate | |
| // capability flags instead of through the blanket atlascloud_model helper. | |
| "xai/grok-4-0709", | |
| ]; |
|
Thanks for pushing this, @lucaszhu-hue. The idea is useful: AtlasCloud users should be able to select models beyond the two DeepSeek fallback rows without the CLI silently falling back to the default. I harvested the low-risk slice into the v0.8.50 triage branch in #2504 as I did not pull in the full static 50-model catalog for this release because that list is too easy to stale out and the current implementation gives every entry the same
Either path should keep model ID casing exact and include registry tests for provider-hinted resolution, alias preservation, and fallback behavior. Appreciate the push here; the release branch now carries the user-facing value while leaving the heavier catalog policy for a safer follow-up. |
|
This was harvested into the v0.8.50 release — thank you for the contribution! |
Summary
deepseek-v4-*aliases and fallback behavior intact for current usersWhy This PR
Atlas Cloud support is already merged, but the static registry still behaved like a minimal provider bootstrap. This follow-up PR makes the AtlasCloud path visibly support the broader validated model pool while preserving the existing defaults.
Validation
cargois unavailableGreptile Summary
This PR expands the AtlasCloud static model registry from two legacy DeepSeek aliases to a 50-entry validated model pool, refactored into a dedicated
atlascloud_models()helper and aATLASCLOUD_VALIDATED_MODELSconstant. Documentation and README examples are updated to reflect the broader pool.crates/agent/src/lib.rs: IntroducesATLASCLOUD_VALIDATED_MODELS,atlascloud_model()helper, andatlascloud_models(), then splices the full pool into the default registry at position 6, preserving existing aliases and fallback order.README.md/docs/PROVIDERS.md: Adds--modelusage examples and updates the provider table description for AtlasCloud.Confidence Score: 3/5
The core Rust change is mechanically straightforward but ships two correctness problems in the model data itself that affect live API calls.
The atlascloud_model helper blindly stamps every entry in the 50-model pool with supports_tools/supports_reasoning true, including deepseek-ai/deepseek-ocr which is an OCR model without a tool-call interface. The ATLASCLOUD_VALIDATED_MODELS array also mixes Pascal-cased IDs with fully-lowercase IDs; since the provider-hint resolution path returns the stored ID verbatim, the casing sent to the AtlasCloud endpoint is inconsistent and may trigger failures.
crates/agent/src/lib.rs — both the capability flags and the model ID casing in ATLASCLOUD_VALIDATED_MODELS need review before merge.
Important Files Changed
deepseek-ocris incorrectly flagged as supports_tools/supports_reasoning.--modelexample commands; both model IDs exist in the validated pool with matching casing.Reviews (1): Last reviewed commit: "feat(atlascloud): expand validated model..." | Re-trigger Greptile