feat: add Atlas Cloud as a new LLM provider - #13302
Open
binyangzhu000-sudo wants to merge 1 commit into
Open
binyangzhu000-sudo wants to merge 1 commit into
binyangzhu000-sudo wants to merge 1 commit into
Conversation
Atlas Cloud is an OpenAI-compatible gateway to 300+ models (OpenAI,
Anthropic, DeepSeek, Qwen, GLM, Kimi, MiniMax, ...) behind one endpoint,
using vendor/model ids like openai/gpt-4.1-mini. Mirrors the merged
MiniMax PR's exact 13-file shape:
- core/llm/llms/AtlasCloud.ts - the model class, a plain OpenAI subclass
(no request-shape overrides: unlike MiniMax, there's no found evidence
Atlas needs temperature clamping or response_format stripping)
- core/llm/llms/index.ts - import + registration
- core/llm/autodetect.ts - PROVIDER_HANDLES_TEMPLATING + PARALLEL_PROVIDERS
- docs/customize/model-providers/more/atlascloud.mdx + overview.mdx row
- gui/src/pages/AddNewModel/configs/{models,providers}.ts - 9 curated
models (context/max-output from the live GET /v1/models catalog, not
guessed) + the provider entry
- packages/config-types/src/index.ts - the zod provider enum
- packages/llm-info/src/{index.ts,providers/atlascloud.ts} - the same 9
models for autodetect/capability lookup. Regexes are anchored
(^...$) and slash-escaped (Atlas ids contain "/", which is JS regex
literal syntax, not a metacharacter)
- packages/openai-adapters/src/{apis/AtlasCloud.ts,index.ts,types.ts} -
the GUI-side adapter + config schema + discriminated union entry
No test files added - the MiniMax precedent (271 lines, 13 files) added
none either; this repo's convention for a thin OpenAI-compatible
provider is verification via tsc + the existing generic test suites,
not a per-provider test file.
Verified:
- packages/openai-adapters: tsc clean, existing vitest suite 145 passed
(no per-adapter test file for MiniMax either, so none added here)
- packages/llm-info, packages/config-types: tsc clean
- core: tsc -p ./ --noEmit clean across the whole package (had to build
the sibling packages/{llm-info,config-types,openai-adapters,fetch,
config-yaml,terminal-security} first - core's node_modules/@continuedev/*
are live symlinks to packages/*, and none had a dist/ yet); existing
vitest suite under llm/ - 465 passed
- gui: tsc -p . --noEmit clean across the whole package
- prettier --check on every touched file: clean
- Live, against the real gateway: constructed the actual AtlasCloud
class and called streamChat() with a real ATLASCLOUD_API_KEY - got a
real streamed response ("continue atlascloud ok"). This was a
throwaway vitest file removed before this commit, not left in the
diff, matching MiniMax's no-test precedent.
binyangzhu000-sudo
requested review from
sestinj
and removed request for
a team
September 20, 2026 13:22
Contributor
|
I have read the CLA Document and I hereby sign the CLA You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot. |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds Atlas Cloud as a first-class LLM provider — an OpenAI-compatible gateway to 300+ models (OpenAI, Anthropic, DeepSeek, Qwen, GLM, Kimi, MiniMax, ...) behind one endpoint, using
vendor/modelids likeopenai/gpt-4.1-mini.Mirrors the merged MiniMax PR (#11367)'s exact 13-file shape:
core/llm/llms/AtlasCloud.ts— the model class, a plainOpenAIsubclass (no request-shape overrides: unlike MiniMax, I don't have evidence Atlas needs temperature clamping orresponse_formatstripping, so I left that out rather than guessing)core/llm/llms/index.ts— import + registrationcore/llm/autodetect.ts—PROVIDER_HANDLES_TEMPLATING+PARALLEL_PROVIDERSdocs/customize/model-providers/more/atlascloud.mdx+ anoverview.mdxrowgui/src/pages/AddNewModel/configs/{models,providers}.ts— 9 curated models + the provider entrypackages/config-types/src/index.ts— the zod provider enumpackages/llm-info/src/{index.ts,providers/atlascloud.ts}— the same 9 models for autodetect/capability lookuppackages/openai-adapters/src/{apis/AtlasCloud.ts,index.ts,types.ts}— the GUI-side adapter + config schema + discriminated-union entryModels
Context/max-output numbers are from the live
GET /v1/modelscatalog (2026-09-20), not guessed.openai/gpt-4.1-mini(default)openai/gpt-5.4-minianthropic/claude-sonnet-4.6deepseek-ai/deepseek-v3.2Qwen/Qwen3-235B-A22B-Instruct-2507qwen/qwen3.5-35b-a3bzai-org/GLM-4.6moonshotai/kimi-k2.5minimaxai/minimax-m2.5One thing worth flagging: Atlas ids contain
/(they're alreadyvendor/model), which is JS regex literal syntax, not a metacharacter — theregexfields inpackages/llm-info/src/providers/atlascloud.tsescape it (/^openai\/gpt-4\.1-mini$/i) and are fully anchored so they can't accidentally match another provider's bare model name.Why
Atlas Cloud lets Continue users reach the same 300+-model catalog other aggregators (OpenRouter, MiniMax) expose, through one API key, with a low-dead-air default (
gpt-4.1-minianswered a tool-calling test in the fewest tokens of the models I checked, with no reasoning-token overhead).Testing
No test files added — the MiniMax precedent (271 lines, 13 files) added none either; this repo's convention for a thin OpenAI-compatible provider is
tsc+ the existing generic test suites, not a per-provider test file.packages/openai-adapters:tscclean, existing vitest suite — 145 passedpackages/llm-info,packages/config-types:tsccleancore:tsc -p ./ --noEmitclean across the whole package (had to build the siblingpackages/*first —core'snode_modules/@continuedev/*are live symlinks topackages/*, and none had adist/yet, which is an environment-bootstrap step unrelated to this change); existing vitest suite underllm/— 465 passedgui:tsc -p . --noEmitclean across the whole packageprettier --checkon every touched file: cleanAtlasCloudclass and calledstreamChat()with a realATLASCLOUD_API_KEY— got a real streamed response ("continue atlascloud ok"). This was a throwaway vitest file, removed before committing, matching MiniMax's no-test precedent.Screen recording or screenshot
Not included — this is a config/backend provider addition with no new UI surface (same as the MiniMax PR above, which didn't include one either). Happy to add one of the Add Model flow if that'd help review.
Checklist
tsc+ existing suites + live gateway insteadDisclosure: I work at Atlas Cloud.