Skip to content

feat: add Avian as a new API provider#11779

Open
avianion wants to merge 2 commits intoRooCodeInc:mainfrom
avianion:feat/add-avian-provider
Open

feat: add Avian as a new API provider#11779
avianion wants to merge 2 commits intoRooCodeInc:mainfrom
avianion:feat/add-avian-provider

Conversation

@avianion
Copy link

@avianion avianion commented Feb 27, 2026

Summary

  • Adds Avian as a new OpenAI-compatible LLM API provider
  • Follows the BaseOpenAiCompatibleProvider pattern (same as SambaNova, Fireworks)
  • Includes 4 models with competitive pricing via the AVIAN_API_KEY environment variable

Models

Model Context Max Output Input Price Output Price
deepseek/deepseek-v3.2 (default) 164K 65K $0.26/M $0.38/M
moonshotai/kimi-k2.5 131K 8K $0.45/M $2.20/M
z-ai/glm-5 131K 16K $0.30/M $2.55/M
minimax/minimax-m2.5 1M 1M $0.30/M $1.10/M

Changes

New files:

  • packages/types/src/providers/avian.ts — model type definitions and pricing
  • src/api/providers/avian.ts — handler extending BaseOpenAiCompatibleProvider
  • src/api/providers/__tests__/avian.spec.ts — 17 unit tests
  • webview-ui/src/components/settings/providers/Avian.tsx — settings UI

Modified files (provider registration):

  • packages/types/src/providers/index.ts — export types + default model
  • packages/types/src/provider-settings.ts — schema, provider name, model ID key, MODELS_BY_PROVIDER
  • src/api/providers/index.ts — export handler
  • src/api/index.ts — factory switch case
  • src/shared/ProfileValidator.ts — profile model ID resolution
  • webview-ui/src/components/settings/providers/index.ts — export UI component
  • webview-ui/src/components/settings/constants.ts — MODELS_BY_PROVIDER + PROVIDERS list
  • webview-ui/src/components/settings/utils/providerModelConfig.ts — service config + defaults
  • webview-ui/src/components/settings/ApiOptions.tsx — provider rendering + model config
  • webview-ui/src/components/ui/hooks/useSelectedModel.ts — model selection case
  • webview-ui/src/i18n/locales/en/settings.json — English translations

Test plan

  • All 17 new unit tests pass (npx vitest run src/api/providers/__tests__/avian.spec.ts)
  • TypeScript type checks pass across all 14 packages (turbo check-types)
  • ESLint passes across all 14 packages with zero warnings (turbo lint)
  • Prettier formatting validated via pre-commit hook
  • All 146 existing types package tests still pass
  • ProfileValidator and constants tests pass without regression
  • Manual testing: select Avian provider in settings, enter API key, verify model picker shows all 4 models
  • Manual testing: send a message using DeepSeek V3.2 via Avian and verify streaming response

Interactively review PR in Roo Code Cloud

Add Avian (https://avian.io) as an OpenAI-compatible LLM provider with
four models: DeepSeek V3.2, Kimi K2.5, GLM-5, and MiniMax M2.5.

Follows the BaseOpenAiCompatibleProvider pattern (same as SambaNova,
Fireworks). Includes model definitions, handler, settings UI, tests,
and localization.
@dosubot dosubot bot added size:L This PR changes 100-499 lines, ignoring generated files. Enhancement New feature or request labels Feb 27, 2026
Add avianApiKey and getAvianApiKey entries to all 17 non-English
locale settings.json files to fix the check-translations CI check.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Enhancement New feature or request size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant