Skip to content

feat(providers): add Volcengine Ark provider presets - #611

Open
yrooogerg wants to merge 4 commits into
lidge-jun:devfrom
yrooogerg:feat/volcengine-providers
Open

feat(providers): add Volcengine Ark provider presets#611
yrooogerg wants to merge 4 commits into
lidge-jun:devfrom
yrooogerg:feat/volcengine-providers

Conversation

@yrooogerg

@yrooogerg yrooogerg commented Jul 28, 2026

Copy link
Copy Markdown

Summary

  • add first-class presets for Volcengine Ark pay-as-you-go, Coding Plan, and Agent Plan
  • keep the three billing routes explicit so Plan users do not accidentally send traffic to the pay-as-you-go endpoint
  • add registry-derived responsesPath support for the Agent Plan native Responses endpoint
  • provide curated static model catalogs and set doubao-seed-2-1-pro-260628 as the pay-as-you-go default
  • include current DeepSeek and GLM text models in the pay-as-you-go catalog
  • document the providers in English, Simplified Chinese, Japanese, Korean, and Russian
  • add focused registry, routing, adapter, GUI metadata, and reasoning-toggle regression coverage

Why

Volcengine Ark is a major model and cloud provider, particularly for developers using Doubao and China-region model services. A built-in preset removes substantial manual configuration and gives the three products clear billing boundaries:

  • volcengine: https://ark.cn-beijing.volces.com/api/v3
  • volcengine-coding-plan: https://ark.cn-beijing.volces.com/api/coding/v3
  • volcengine-agent-plan: https://ark.cn-beijing.volces.com/api/plan/v3/responses

The ordinary /api/v3 route may incur pay-as-you-go charges even when the user has a Plan subscription, so keeping these as separate provider IDs is important for billing safety.

Model discovery findings

Authenticated, read-only /models probes showed:

  • pay-as-you-go returns an OpenAI-shaped catalog containing 126 resources
  • Coding Plan returns the same broad 126-resource catalog and omits the plan routing alias ark-code-latest
  • Agent Plan returns 404 for /models

The 126-resource catalog mixes chat models with embeddings, image generation, video generation, 3D generation, and historical model versions. Publishing it directly would expose resources that the Codex chat adapter cannot call and models that a Plan subscription may not authorize. The three presets therefore use curated static catalogs with liveModels: false.

A minimal pay-as-you-go smoke request against doubao-seed-2-1-pro-260628 succeeded. The available test key did not include Coding Plan or Agent Plan entitlements: the Coding request returned InvalidSubscription, and the Agent request returned UnsupportedModel. No credential is stored in the repository, test fixtures, or PR content.

Validation

  • bun run typecheck
  • bun run test — 5,705 passed, 0 failed
  • focused Volcengine and registry tests — 36 passed, 0 failed
  • bun run privacy:scan
  • docs build — 141 pages
  • git diff --check

Follow-up opportunities

Volcengine also has strong multimodal generation products. Follow-up work can evaluate dedicated integrations for:

  • Seedream image generation
  • Seedance video generation

Those APIs have different request/response shapes and media lifecycle requirements, so they are intentionally outside this provider-preset PR and should be designed as explicit image/video capabilities.

Summary by CodeRabbit

  • New Features
    • Added Volcengine Ark, Coding Plan, and Agent Plan providers with plan-specific model catalogs and defaults, including native Responses routing.
    • Increased built-in provider preset catalog to 63.
  • UI / Localization
    • Added localized display names for Volcengine provider variants and made provider labels i18n-aware across provider UI surfaces.
  • Documentation
    • Updated Providers guides with expanded preset counts and a larger API-key provider catalog, plus clarified Volcengine billing routes and model-catalog behavior.
  • Tests
    • Expanded Volcengine provider, routing, model, and reasoning/thinking coverage.

@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Adds Volcengine Ark pay-as-you-go, Coding Plan, and Agent Plan provider presets with curated models, Responses routing metadata, localized GUI names, validation coverage, and multilingual documentation.

Changes

Volcengine provider integration

Layer / File(s) Summary
Registry contracts and provider catalog
src/providers/registry.ts
Adds responsesPath, curated Volcengine model catalogs, reasoning metadata, and three provider registry entries.
Configuration propagation and request routing
src/providers/derive.ts, src/router.ts, gui/src/provider-payload.ts, gui/src/components/AddProviderModal.tsx, tests/provider-registry-parity.test.ts
Carries Agent Plan’s /responses path through registry-derived configuration, GUI payloads, preset selection, and routing.
Localized provider display names
gui/src/provider-icons.ts, gui/src/i18n/*, gui/src/components/provider-workspace/*, gui/src/pages/*, tests/*
Adds translated Volcengine names, passes translators through GUI display-name calls, recognizes the new catalog IDs, and updates related tests.
Provider validation and documentation
tests/volcengine-providers.test.ts, docs-site/src/content/docs/**/guides/providers.md, structure/00_overview.md
Tests registry metadata, derived presets, routing, reasoning payloads, multimodal metadata, and GUI recognition; documents endpoints, billing routes, model catalogs, defaults, and preset counts.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant OcxConfig
  participant routeModel
  participant createResponsesPassthroughAdapter
  participant VolcengineAgentPlan
  OcxConfig->>routeModel: route volcengine-agent-plan model
  routeModel->>createResponsesPassthroughAdapter: use responsesPath /responses
  createResponsesPassthroughAdapter->>VolcengineAgentPlan: build request
Loading

Possibly related PRs

Suggested labels: enhancement, bug

Suggested reviewers: lidge-jun, wibias, ingwannu

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 40.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: adding Volcengine Ark provider presets, and it is concise and specific.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the enhancement New feature or request label Jul 28, 2026
@yrooogerg
yrooogerg marked this pull request as ready for review July 28, 2026 09:09

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@gui/src/provider-icons.ts`:
- Around line 90-92: Replace the hardcoded Volcengine labels in provider-icons
with stable provider/translation keys resolved through the existing GUI i18n
locale layer, while keeping catalog-ID detection separate from display-label
resolution. Update tests/volcengine-providers.test.ts lines 150-155 to use the
localized resolver with an English locale fixture and assert the resulting
labels.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 8b47bc4c-9989-4cf7-9ded-8e1d769b17db

📥 Commits

Reviewing files that changed from the base of the PR and between 7710185 and 403cf31.

📒 Files selected for processing (12)
  • docs-site/src/content/docs/guides/providers.md
  • docs-site/src/content/docs/ja/guides/providers.md
  • docs-site/src/content/docs/ko/guides/providers.md
  • docs-site/src/content/docs/ru/guides/providers.md
  • docs-site/src/content/docs/zh-cn/guides/providers.md
  • gui/src/provider-icons.ts
  • src/providers/derive.ts
  • src/providers/registry.ts
  • src/router.ts
  • structure/00_overview.md
  • tests/provider-registry-parity.test.ts
  • tests/volcengine-providers.test.ts

Comment thread gui/src/provider-icons.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 403cf31a15

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/providers/registry.ts
Comment thread src/providers/registry.ts
Comment thread src/providers/registry.ts
Comment thread src/providers/registry.ts

@Wibias Wibias left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Maintainer review (bug + security)

Verdict: REQUEST CHANGES

Security

No medium+ findings on the new Volcengine presets (static catalog + key auth). No new secret handling.

Bug review / open bot threads

Item Status
Rabbit: localize Volcengine labels Fixed (i18n keys + locale files)
Codex P1: preserve DeepSeek reasoning on Coding Plan tool turns Still openvolcengine-coding-plan has no preserveReasoningContentModels for deepseek-v4-pro / deepseek-v4-flash
Codex P1: DeepSeek V4 effort mappings on Coding Plan Still open — no modelReasoningEfforts / modelReasoningEffortMap on that preset (will advertise/send raw Codex ladder)
Codex P2: image inputs for multimodal Coding Plan models Still openkimi-k2.6 / minimax-m3 lack modelInputModalities while liveModels: false
Codex P2: carry responsesPath on custom rename Partially fixed — Agent Plan declares responsesPath: "/responses" and derive seeds it by registry id; rename-away-from-id still needs confirmation

Please mirror the metadata already present on volcengine / Alibaba DeepSeek presets onto volcengine-coding-plan (and Agent Plan where applicable), with focused registry/parity tests.

Notes

  • Fork PR: CI surface incomplete on head SHA; blockers above are from code review of upstream/dev...HEAD.

@yrooogerg
yrooogerg requested a review from Wibias July 29, 2026 07:30
@Wibias
Wibias marked this pull request as draft July 29, 2026 07:35
@yrooogerg
yrooogerg marked this pull request as ready for review July 29, 2026 09:33

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: df46842c51

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread gui/src/components/AddProviderModal.tsx
Comment thread src/providers/registry.ts
Comment thread src/providers/registry.ts
@yrooogerg

Copy link
Copy Markdown
Author

@Wibias check this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants