Skip to content

feat: add Avian as a new LLM provider#10871

Open
avianion wants to merge 8 commits intocontinuedev:mainfrom
avianion:feat/add-avian-provider
Open

feat: add Avian as a new LLM provider#10871
avianion wants to merge 8 commits intocontinuedev:mainfrom
avianion:feat/add-avian-provider

Conversation

@avianion
Copy link
Copy Markdown

@avianion avianion commented Feb 27, 2026

Summary

Adds Avian as a new OpenAI-compatible LLM provider. Avian provides fast inference for top open-source models.

Available Models

Model Context Input $/M Output $/M
DeepSeek V3.2 164K $0.26 $0.38
Kimi K2.5 131K $0.45 $2.20
GLM-5 131K $0.30 $2.55
MiniMax M2.5 1M $0.30 $1.10

Changes (13 files)

File Change
core/llm/llms/Avian.ts New provider class extending OpenAI (13 lines)
core/llm/llms/index.ts Register in LLMClasses array
core/llm/autodetect.ts Add to PROVIDER_HANDLES_TEMPLATING
core/llm/toolSupport.ts Add tool support for avian models
packages/openai-adapters/src/types.ts Add z.literal("avian") to Zod schema
packages/openai-adapters/src/index.ts Add case "avian" to constructLlmApi
packages/llm-info/src/providers/avian.ts Model metadata (context lengths, regex)
packages/llm-info/src/index.ts Register in allModelProviders
gui/src/pages/AddNewModel/configs/models.ts 4 model packages
gui/src/pages/AddNewModel/configs/providers.ts Provider card with API key input
gui/public/logos/avian.png Provider logo (placeholder — will replace with official)
docs/customize/model-providers/more/avian.mdx Docs page with YAML/JSON config examples
docs/docs.json Sidebar nav entry

Usage

models:
  - model: deepseek/deepseek-v3.2
    provider: avian
    apiKey: <AVIAN_API_KEY>

Test plan

  • Provider appears in "Add New Model" UI
  • API key can be entered and saved
  • All 4 models are listed in model selector
  • Chat completions work with each model
  • Streaming works correctly
  • Tool/function calling works

cc @RomneyDa @sestinj — follows the same pattern as the z.AI provider PR (#10638). Happy to address any feedback!


Continue Tasks: ❌ 7 failed — View all


Summary by cubic

Add Avian as an OpenAI-compatible provider with streaming, tool calling, image support, and parallel generation for DeepSeek V3.2, Kimi K2.5, GLM-5, and MiniMax M2.5. Includes UI, docs, llm-info metadata, schema/VS Code config support, and autodetect templating.

  • New Features

    • OpenAI adapter for avian at https://api.avian.io/v1/ (fixed trailing-slash base URL); added LLM class and llm-info provider.
    • Enabled tool/function calling, image support, and parallel generation for supported models.
    • UI: provider card with API key input and official logo; four model packages in Add New Model; added to control-plane/config-types enums and VS Code schema for validation and autocomplete.
    • Docs page and sidebar entry for configuration.
  • Migration

    • Set AVIAN_API_KEY or enter it in the UI.
    • Configure models with provider: "avian" (e.g., deepseek/deepseek-v3.2).

Written for commit a2f4b86. Summary will update on new commits.

Add Avian (https://api.avian.io/v1) as an OpenAI-compatible provider
with support for DeepSeek V3.2, Kimi K2.5, GLM-5, and MiniMax M2.5
models. Auth via AVIAN_API_KEY environment variable.
@avianion avianion requested a review from a team as a code owner February 27, 2026 02:08
@avianion avianion requested review from Patrick-Erichsen and removed request for a team February 27, 2026 02:08
@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Feb 27, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Feb 27, 2026

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

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 13 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="packages/openai-adapters/src/index.ts">

<violation number="1" location="packages/openai-adapters/src/index.ts:107">
P2: Inconsistent trailing slash in Avian base URL - should use `/v1/` to match other providers and prevent endpoint resolution issues</violation>
</file>

Since this is your first cubic review, here's how it works:

  • cubic automatically reviews your code and comments on bugs and improvements
  • Teach cubic by replying to its comments. cubic learns from your replies and gets better over time
  • Add one-off context when rerunning by tagging @cubic-dev-ai with guidance or docs links (including llms.txt)
  • Ask questions if you need clarification on any suggestion

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

@avianion
Copy link
Copy Markdown
Author

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

@avianion
Copy link
Copy Markdown
Author

Fixed the trailing slash issue flagged by cubic-dev — updated base URL to https://api.avian.io/v1/ for consistency with other providers (f3345db).

@avianion
Copy link
Copy Markdown
Author

avianion commented Mar 5, 2026

Friendly follow-up — this PR is still active and ready for review. Would appreciate a look when you get a chance! cc @sestinj

@avianion
Copy link
Copy Markdown
Author

avianion commented Mar 5, 2026

Friendly follow-up — this PR is still active and ready for review. All feedback has been addressed. Would appreciate a look when you get a chance! cc @sestinj

@avianion
Copy link
Copy Markdown
Author

avianion commented Mar 5, 2026

Hey @sestinj @RomneyDa — friendly follow-up on this PR. Avian is an OpenAI-compatible inference provider that's already live and powering apps like ISEKAI ZERO. This is a lightweight integration (standard OpenAI-compatible endpoint) and we're happy to address any feedback or make adjustments. Would love to get this merged if you have a moment to review. Thanks!

…an and tensorix)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@avianion
Copy link
Copy Markdown
Author

Merged latest upstream main to resolve merge conflicts. Kept both Avian and new Tensorix provider in autodetect.ts.

Copy link
Copy Markdown
Contributor

@RomneyDa RomneyDa left a comment

Choose a reason for hiding this comment

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

@avianion can you check PROVIDER_HANDLES_TEMPLATING, PROVIDER_SUPPORTS_IMAGES, and other fields which will cause issues here? Look up e.g. "nebius" to see where needs to be added.

Also, looks like the logo might be just a green square?

@github-project-automation github-project-automation bot moved this from Todo to In Progress in Issues and PRs Mar 24, 2026
- Add "avian" to PROVIDER_SUPPORTS_IMAGES (enables image support for vision models)
- Add "avian" to PARALLEL_PROVIDERS (enables parallel generation)
- Replace placeholder logo (32x32 green square) with proper Avian logomark (512x512)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@avianion
Copy link
Copy Markdown
Author

Addressed feedback in d7f2f57:

  • Added avian to PROVIDER_SUPPORTS_IMAGES (enables image support for vision-capable models)
  • Added avian to PARALLEL_PROVIDERS (enables parallel generation)
  • Replaced the placeholder logo (was a 32x32 green square) with the proper Avian logomark (512x512, RGBA)

PROVIDER_HANDLES_TEMPLATING already had avian (line 75). Let me know if anything else needs attention!

@avianion
Copy link
Copy Markdown
Author

@RomneyDa All feedback has been addressed in commit d7f2f57 — added avian to PROVIDER_SUPPORTS_IMAGES and PARALLEL_PROVIDERS, confirmed PROVIDER_HANDLES_TEMPLATING already included it, and replaced the placeholder logo with the proper Avian logomark (512×512). Could you re-review when you get a chance? Thanks!

@avianion
Copy link
Copy Markdown
Author

avianion commented Apr 1, 2026

Hi @RomneyDa, just wanted to flag that all the feedback from your review has been addressed in commit d7f2f57:

  • PROVIDER_HANDLES_TEMPLATING: "avian" added ✅
  • PROVIDER_SUPPORTS_IMAGES: "avian" added ✅
  • PARALLEL_PROVIDERS: "avian" added ✅
  • Logo: Replaced the 99-byte green square placeholder with a proper 512x512 Avian logomark (71KB) ✅

The trailing slash on the base URL (/v1/) was also fixed in f3345db.

Would you mind taking another look when you get a chance? Thanks!

@avianion
Copy link
Copy Markdown
Author

avianion commented Apr 1, 2026

@RomneyDa All your feedback has been addressed in commit d7f2f57:

  • Added avian to PROVIDER_HANDLES_TEMPLATING
  • Added avian to PROVIDER_SUPPORTS_IMAGES
  • Added avian to PARALLEL_PROVIDERS
  • Replaced the green square logo with a proper 512x512 Avian logomark

Could you re-review when you get a chance? Thank you!

- Add "avian" to provider enums in config-types, control-plane schema,
  and VS Code config_schema.json (with apiKey requirement + description)
- Fix missing trailing slash in Avian LLM class apiBase, which caused
  new URL() to resolve endpoints incorrectly (e.g. /chat/completions
  instead of /v1/chat/completions)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@avianion
Copy link
Copy Markdown
Author

avianion commented Apr 3, 2026

Addressed the remaining review feedback:

Fixes in this update (a2f4b86):

  1. Added avian to provider schemas — was missing from:

    • packages/config-types/src/index.ts (modelDescriptionSchema.provider enum)
    • core/control-plane/schema.ts (modelDescriptionSchema.provider enum)
    • extensions/vscode/config_schema.json (main provider enum, apiKey-required enum, and markdown description)
  2. Fixed trailing slash in LLM class apiBasecore/llm/llms/Avian.ts had https://api.avian.io/v1 (without trailing slash), which causes new URL("chat/completions", apiBase) to resolve to https://api.avian.io/chat/completions instead of the correct https://api.avian.io/v1/chat/completions. Now matches the fix already applied in the openai-adapters layer.

Previously addressed (d7f2f57, f3345db):

  • Trailing slash in openai-adapters base URL ✓
  • Added to PROVIDER_HANDLES_TEMPLATING, PROVIDER_SUPPORTS_IMAGES, PARALLEL_PROVIDERS
  • Replaced placeholder logo with proper 512×512 Avian logomark ✓

CI note: The 7 failing "Continuous AI" checks all show "Agent encountered an error" — these are automated AI agent tasks on hub.continue.dev that appear to be experiencing internal errors, not issues caused by this PR's code changes. All actual CI checks (build, test, lint, prettier, core-checks, gui-checks, packages-checks, e2e tests) are passing.

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: In Progress

Development

Successfully merging this pull request may close these issues.

2 participants