feat(providers): add Volcengine Ark provider presets - #611
Conversation
📝 WalkthroughWalkthroughAdds 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. ChangesVolcengine provider integration
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
Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
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
📒 Files selected for processing (12)
docs-site/src/content/docs/guides/providers.mddocs-site/src/content/docs/ja/guides/providers.mddocs-site/src/content/docs/ko/guides/providers.mddocs-site/src/content/docs/ru/guides/providers.mddocs-site/src/content/docs/zh-cn/guides/providers.mdgui/src/provider-icons.tssrc/providers/derive.tssrc/providers/registry.tssrc/router.tsstructure/00_overview.mdtests/provider-registry-parity.test.tstests/volcengine-providers.test.ts
There was a problem hiding this comment.
💡 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".
Wibias
left a comment
There was a problem hiding this comment.
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 open — volcengine-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 open — kimi-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.
There was a problem hiding this comment.
💡 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".
|
@Wibias check this |
Summary
responsesPathsupport for the Agent Plan native Responses endpointdoubao-seed-2-1-pro-260628as the pay-as-you-go defaultWhy
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/v3volcengine-coding-plan:https://ark.cn-beijing.volces.com/api/coding/v3volcengine-agent-plan:https://ark.cn-beijing.volces.com/api/plan/v3/responsesThe ordinary
/api/v3route 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
/modelsprobes showed:ark-code-latest/modelsThe 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-260628succeeded. The available test key did not include Coding Plan or Agent Plan entitlements: the Coding request returnedInvalidSubscription, and the Agent request returnedUnsupportedModel. No credential is stored in the repository, test fixtures, or PR content.Validation
bun run typecheckbun run test— 5,705 passed, 0 failedbun run privacy:scangit diff --checkFollow-up opportunities
Volcengine also has strong multimodal generation products. Follow-up work can evaluate dedicated integrations for:
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