Skip to content

Feat/atomic chat provider#12438

Open
yanalialiuk wants to merge 4 commits into
continuedev:mainfrom
yanalialiuk:feat/atomic-chat-provider
Open

Feat/atomic chat provider#12438
yanalialiuk wants to merge 4 commits into
continuedev:mainfrom
yanalialiuk:feat/atomic-chat-provider

Conversation

@yanalialiuk
Copy link
Copy Markdown

@yanalialiuk yanalialiuk commented May 19, 2026

Description

Adds Atomic Chat as a first-class local model provider (atomic-chat).
Atomic Chat exposes an OpenAI-compatible API (default http://127.0.0.1:1337/v1/). This PR wires it into Continue the same way as other local OpenAI-compatible backends:

  • core/llm/llms/AtomicChat.ts — provider class extending OpenAI
  • Registration in core/llm/llms/index.ts and core/llm/autodetect.ts
  • packages/openai-adapters — CLI (cn) support via constructLlmApi
  • GUI — Atomic Chat entry in Add Model with autodetect
  • Docs — docs/customize/model-providers/more/atomic-chat.mdx

Example config:

models:
  - name: Atomic Chat
    provider: atomic-chat
    model: "<model-id>"
    apiBase: http://127.0.0.1:1337/v1/

Checklist

Tests

Added provider smoke tests in core/llm/llms/OpenAI-compatible.vitest.ts:

createOpenAISubclassTests(AtomicChat, {
  providerName: "atomic-chat",
  defaultApiBase: "http://127.0.0.1:1337/v1/",
});

Covers default providerName, apiBase, and OpenAI-compatible request behavior shared with other local providers.

Manual test plan:

-Start Atomic Chat with a loaded model (curl http://127.0.0.1:1337/v1/models).
-Add Atomic Chat via Continue UI or config.yaml with provider: atomic-chat.
-Send a chat message in the extension — response streams from the local model.
-(Optional) Run cn with the same config.yaml and confirm chat works via CLI.

Снимок экрана 2026-05-19 в 13 13 25

Summary by cubic

Adds Atomic Chat as a first-class local model provider (atomic-chat) with OpenAI-compatible API support. Connect to models at http://127.0.0.1:1337/v1/ from the Continue UI and cn, with automatic model detection.

  • New Features

    • Provider: new core/llm/llms/AtomicChat.ts extending OpenAI with default apiBase http://127.0.0.1:1337/v1/; registered in core/llm/llms/index.ts and added to autodetect templating.
    • UI: Atomic Chat in Add Model; fetches /v1/models on load/selection without an API key, auto-selects the first detected model, and blocks Connect until a real model id is chosen; includes gui/public/logos/atomic-chat.png.
    • CLI: packages/openai-adapters adds atomic-chat to constructLlmApi and schema with the same default apiBase.
    • Tests: OpenAI-compatible smoke tests added for atomic-chat.
    • Docs: new guide at docs/customize/model-providers/more/atomic-chat.mdx.
  • Bug Fixes

    • Prevent stale model lists in Add Model by ignoring late responses when switching providers (invalidate in-flight fetches and compare via refs).

Written for commit 6196458. Summary will update on new commits. Review in cubic

yanalialiuk and others added 3 commits May 18, 2026 14:56
Fetch models from the local API on load and provider select, remove unrelated presets, and block Connect until a real model id is chosen.

Co-authored-by: Cursor <cursoragent@cursor.com>
@yanalialiuk yanalialiuk requested a review from a team as a code owner May 19, 2026 10:21
@dosubot dosubot Bot added the size:L This PR changes 100-499 lines, ignoring generated files. label May 19, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 19, 2026

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@yanalialiuk
Copy link
Copy Markdown
Author

I have read the CLA Document and I hereby sign the CLA

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 11 files

Reply with feedback, questions, or to request a fix.

Fix all with cubic | Re-trigger cubic

Comment thread gui/src/forms/AddModelForm.tsx Outdated
Invalidate in-flight fetches when the provider changes and compare against a ref so late responses cannot overwrite another provider's model list.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files.

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

1 participant