Skip to content

feat: add BytePlus and Volcengine Ark providers - #504

Open
fanziqingbyte wants to merge 10 commits into
andrewyng:mainfrom
fanziqingbyte:feat/ark-providers
Open

feat: add BytePlus and Volcengine Ark providers#504
fanziqingbyte wants to merge 10 commits into
andrewyng:mainfrom
fanziqingbyte:feat/ark-providers

Conversation

@fanziqingbyte

Copy link
Copy Markdown

Summary

  • add separate first-class providers for BytePlus Ark pay-as-you-go and Volcengine Ark Agent Plan
  • keep credentials, regional base URLs, branding, setup links, and curated model catalogs isolated
  • route both providers through the Responses API with custom endpoints
  • omit OpenAI-specific reasoning.summary only for BytePlus while preserving encrypted reasoning content
  • verify credentials through minimal Responses calls and document the supported providers

Provider and region matrix

Provider Region Base URL Curated models Live validation
BytePlus Ark ap-southeast-1 https://ark.ap-southeast.bytepluses.com/api/v3 dola-seed-evolving-latest-version, dola-seed-2-1-turbo-260628 desktop smoke test passed
Volcengine Ark Agent Plan cn-beijing https://ark.cn-beijing.volces.com/api/plan/v3 doubao-seed-evolving, doubao-seed-2.1-turbo confirmed after replacing an invalid local key

The two paths use different provider profiles and environment variables; neither can fall back to the other's credential.

Compatibility

  • no CLI flags, public wire schemas, or existing provider defaults are changed
  • stock OpenAI continues to send reasoning.summary
  • Volcengine Agent Plan keeps the existing Responses request shape
  • BytePlus omits the unsupported reasoning object and keeps include: ["reasoning.encrypted_content"]

Validation

  • .venv/bin/pytest -q: 1185 passed, 1 skipped
  • targeted provider tests: 83 passed
  • npm test: 113 passed
  • npm run build: passed
  • packaging/build_dmg.sh: passed; unsigned arm64 DMG generated
  • real desktop → sidecar → BytePlus Responses request returned OK
  • Playwright: 167 passed; the pre-existing usage-chip timing case timed out in the full 9-worker run and passed when rerun in isolation

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant