Skip to content

feat: add Avian as a new LLM provider#10871

Open
avianion wants to merge 1 commit into
continuedev:mainfrom
avianion:feat/add-avian-provider
Open

feat: add Avian as a new LLM provider#10871
avianion wants to merge 1 commit into
continuedev:mainfrom
avianion:feat/add-avian-provider

Conversation

@avianion

@avianion avianion commented Feb 27, 2026

Copy link
Copy Markdown

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, tools, 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 updates, and autodetect support.

  • New Features

    • OpenAI adapter and LLM class for avian at https://api.avian.io/v1/ (trailing-slash fix); added llm-info provider and model metadata.
    • Enabled tools, images, and parallel generation; added templating autodetect.
    • UI: provider card with API key input and logo; four model presets in Add New Model; added to config-types enums and VS Code schema.
  • 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 5a62911. Summary will update on new commits.

Review in cubic

@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

github-actions Bot commented Feb 27, 2026

Copy link
Copy Markdown
Contributor

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

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

Copy link
Copy Markdown
Contributor

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.

Comment thread packages/openai-adapters/src/index.ts Outdated
@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

avianion commented Mar 5, 2026

Copy link
Copy Markdown
Author

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

@avianion

avianion commented Mar 5, 2026

Copy link
Copy Markdown
Author

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

avianion commented Mar 5, 2026

Copy link
Copy Markdown
Author

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!

@avianion

Copy link
Copy Markdown
Author

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

@RomneyDa RomneyDa left a comment

Copy link
Copy Markdown
Contributor

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?

@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

avianion commented Apr 1, 2026

Copy link
Copy Markdown
Author

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

avianion commented Apr 1, 2026

Copy link
Copy Markdown
Author

@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!

@avianion

avianion commented Apr 3, 2026

Copy link
Copy Markdown
Author

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.

@avianion

avianion commented Apr 8, 2026

Copy link
Copy Markdown
Author

All review feedback has been addressed: logo updated to proper 512x512 PNG, trailing slash added to base URL, PROVIDER_HANDLES_TEMPLATING/PROVIDER_SUPPORTS_IMAGES/PARALLEL_PROVIDERS arrays updated, and schema enums added. CI is fully green. @RomneyDa could you re-review when you get a chance?

@avianion

avianion commented Apr 8, 2026

Copy link
Copy Markdown
Author

Merged latest main to retrigger CI. The previous failures were all transient/pre-existing:

  • core-checks: npm ci hit a network error (ECONNRESET) on the CI runner
  • gui-checks: Unhandled rejection in CliInstallBanner.test.tsx (window is not defined) — pre-existing flaky test, not touched by this PR
  • e2e PromptFile.test.js (yaml): VS Code download failed mid-stream on the CI runner

None of these were caused by the Avian provider changes.

@avianion

Copy link
Copy Markdown
Author

Addressed feedback: added Avian to the allProviders array.

@avianion

Copy link
Copy Markdown
Author

@RomneyDa Hi — just verifying each item from your review against the current state of the code:

  1. PROVIDER_HANDLES_TEMPLATING"avian" present at core/llm/autodetect.ts:77
  2. PROVIDER_SUPPORTS_IMAGES"avian" present at core/llm/autodetect.ts:138
  3. PARALLEL_PROVIDERS"avian" present at core/llm/autodetect.ts:258
  4. Logo — Replaced with proper 512×512 Avian logomark (71KB PNG) at gui/public/logos/avian.png
  5. Provider schemas"avian" added to:
    • packages/config-types/src/index.ts (provider enum) ✅
    • core/control-plane/schema.ts (provider enum) ✅
    • extensions/vscode/config_schema.json (provider enum, apiKey-required enum, markdown description) ✅
  6. Trailing slash — Fixed to https://api.avian.io/v1/ in both packages/openai-adapters/src/index.ts:137 and core/llm/llms/Avian.ts:8

All items from your review have been addressed in commits d7f2f57, a2f4b86, and f3345db. Could you re-review when you get a chance? Thanks!

@avianion

Copy link
Copy Markdown
Author

All feedback from the review has been addressed — PROVIDER_HANDLES_TEMPLATING, PROVIDER_SUPPORTS_IMAGES, PARALLEL_PROVIDERS, logo, provider schemas, and trailing slash. Ready for re-review when you get a chance @RomneyDa!

@avianion

avianion commented Jun 4, 2026

Copy link
Copy Markdown
Author

@RomneyDa Just following up — all the items from your review have been addressed (PROVIDER_HANDLES_TEMPLATING, PROVIDER_SUPPORTS_IMAGES, PARALLEL_PROVIDERS, logo updated to 512x512 PNG, schema enums added, trailing slash fixed). Would you be able to take another look when you get a chance?

@avianion

avianion commented Jun 8, 2026

Copy link
Copy Markdown
Author

@RomneyDa Friendly ping — all items from your review have been addressed. Would you be able to take another look when you get a chance? Thanks!

@avianion

Copy link
Copy Markdown
Author

Independent verification of all 6 review items:

  1. PROVIDER_HANDLES_TEMPLATING"avian" present at core/llm/autodetect.ts:77
  2. PROVIDER_SUPPORTS_IMAGES"avian" present at core/llm/autodetect.ts:138
  3. PARALLEL_PROVIDERS"avian" present at core/llm/autodetect.ts:258
  4. Logo — proper 512×512 Avian logomark (not a green square) ✅
  5. Provider schema enums — "avian" in config-types/src/index.ts:65, control-plane/schema.ts:22, and config_schema.json
  6. Trailing slash — https://api.avian.io/v1/ in both Avian.ts and openai-adapters/src/index.ts

All items from the review have been addressed. @RomneyDa could you re-review when you get a chance? Thanks!

@avianion avianion force-pushed the feat/add-avian-provider branch from 560ec1c to 5a62911 Compare June 27, 2026 10:54
@avianion

Copy link
Copy Markdown
Author

Rebased on latest main to resolve merge conflicts. Squashed into a single clean commit.

Changes verified:

  • PROVIDER_HANDLES_TEMPLATING -- avian present
  • PROVIDER_SUPPORTS_IMAGES -- avian present
  • PARALLEL_PROVIDERS -- avian present
  • Tool support function in toolSupport.ts -- present
  • Provider schemas in config-types, config_schema.json -- present
  • Logo is proper 512x512 logomark (not placeholder)
  • Trailing slash on API base URL -- consistent
  • Dropped core/control-plane/schema.ts (deleted upstream)

@RomneyDa all review feedback from your earlier review has been addressed in this rebased version. Ready for re-review.

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

None yet

Development

Successfully merging this pull request may close these issues.

2 participants