From cccbae32150e277faa45cda48ecd03cb7638157c Mon Sep 17 00:00:00 2001 From: binyangzhu000-sudo <224954946+binyangzhu000-sudo@users.noreply.github.com> Date: Tue, 11 Aug 2026 09:25:47 +0800 Subject: [PATCH] feat(providers): add Atlas Cloud integration Signed-off-by: binyangzhu000-sudo <224954946+binyangzhu000-sudo@users.noreply.github.com> --- .../settings/provider-display-copy.ts | 4 ++++ .../src/__tests__/llm-connections.test.ts | 22 +++++++++++++++++++ .../models-dev-sync-contract.test.ts | 1 + packages/core/src/model-metadata.ts | 7 ++++++ packages/core/src/provider-registry.ts | 17 ++++++++++++++ 5 files changed, 51 insertions(+) diff --git a/apps/desktop/src/renderer/settings/provider-display-copy.ts b/apps/desktop/src/renderer/settings/provider-display-copy.ts index 1deb0a6ec2..63b8e9300b 100644 --- a/apps/desktop/src/renderer/settings/provider-display-copy.ts +++ b/apps/desktop/src/renderer/settings/provider-display-copy.ts @@ -184,6 +184,10 @@ export const PROVIDER_DISPLAY_COPY = { zh: { name: 'DeepInfra', description: '开源模型托管推理 · OpenAI 兼容', badge: 'API' }, en: { name: 'DeepInfra', description: 'Hosted open-model inference · OpenAI-compatible', badge: 'API' }, }, + atlascloud: { + zh: { name: 'Atlas Cloud', description: '开源模型托管推理 · OpenAI 兼容', badge: 'API' }, + en: { name: 'Atlas Cloud', description: 'Hosted open-model inference · OpenAI-compatible', badge: 'API' }, + }, cohere: { zh: { name: 'Cohere', description: 'Cohere 官方接入', badge: 'API' }, en: { name: 'Cohere', description: 'Official Cohere Chat API access.', badge: 'API' }, diff --git a/packages/core/src/__tests__/llm-connections.test.ts b/packages/core/src/__tests__/llm-connections.test.ts index da43178bb7..57ae4130d8 100644 --- a/packages/core/src/__tests__/llm-connections.test.ts +++ b/packages/core/src/__tests__/llm-connections.test.ts @@ -58,6 +58,28 @@ test('provider registry satisfies shared structural invariants', () => { } }); +test('Atlas Cloud is wired as a ready OpenAI-compatible provider', () => { + assert.deepEqual(PROVIDER_REGISTRY.atlascloud, { + label: 'Atlas Cloud', + description: 'Hosted open-model inference with OpenAI-compatible chat and tool use.', + baseUrl: 'https://api.atlascloud.ai/v1', + authKind: 'api_key', + backendKind: 'ai-sdk', + fallbackModels: ['qwen/qwen3.8-max'], + status: 'ready', + protocol: 'openai', + runtimeAdapter: { kind: 'openai-compatible', name: 'provider' }, + modelDiscovery: { kind: 'protocol', filter: 'fallback-models' }, + category: 'overseas', + catalogGroup: 'api', + catalogBadge: 'API', + readyOrder: 29.5, + catalogOrder: 29.5, + }); + assert.equal(READY_PROVIDER_TYPES.includes('atlascloud'), true); + assert.equal(CATALOG_PROVIDER_TYPES.includes('atlascloud'), true); +}); + test('connection base URLs allow HTTP(S) and reject unsafe or malformed inputs', () => { for (const value of [ undefined, diff --git a/packages/core/src/__tests__/models-dev-sync-contract.test.ts b/packages/core/src/__tests__/models-dev-sync-contract.test.ts index 0f8a1da1de..24aeea97fb 100644 --- a/packages/core/src/__tests__/models-dev-sync-contract.test.ts +++ b/packages/core/src/__tests__/models-dev-sync-contract.test.ts @@ -55,6 +55,7 @@ const NOT_IN_MODELS_DEV: Readonly> = { 'volcengine-ark': 'models.dev does not cover Volcengine Ark', 'volcengine-coding-plan': 'models.dev does not cover Volcengine Ark', 'volcengine-agent-plan': 'models.dev does not cover Volcengine Ark', + atlascloud: 'models.dev does not cover Atlas Cloud', ollama: 'local runtime, not an upstream service', 'lm-studio': 'local runtime, not an upstream service', localai: 'local runtime, not an upstream service', diff --git a/packages/core/src/model-metadata.ts b/packages/core/src/model-metadata.ts index d57e78bbc6..fe9cec39fd 100644 --- a/packages/core/src/model-metadata.ts +++ b/packages/core/src/model-metadata.ts @@ -409,6 +409,13 @@ const STATIC_MODEL_METADATA: Partial