Repository navigation
feat(providers): add Alibaba Coding Plan (China + global) - #1088
Merged
Merged
Conversation
57 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Part of #860. Adds the Alibaba Coding Plan subscription cohort as two independent, persisted provider ids:
alibaba-coding-plan-cn— China (https://coding.dashscope.aliyuncs.com/v1,category: 'domestic')alibaba-coding-plan— global (https://coding-intl.dashscope.aliyuncs.com/v1,category: 'overseas')Both are subscription plans distinct from the existing
alibabadirect API path: separate endpoint, plan-onlysk-sp-key, and isolated billing. They share an identical tool-calling model snapshot. Following the registry-driven design, each is a singleproviderRegistryentry (catalogGroup: 'plans',catalogBadge: 'Plan',protocol: 'openai',runtimeAdapter: openai-compatible/provider,modelDiscovery: { kind: 'fallback' },authKind: 'api_key') inserted adjacent toalibabaatreadyOrder/catalogOrder41.1/41.2. Model metadata is regenerated from models.dev into the vendored snapshot;fallbackModelsis a hard-coded, guard-asserted allowlist of tool-calling text models only.fallbackModels(identical for both regions, from the vendored models.dev snapshot):qwen3.7-plus,qwen3.7-max,qwen3.6-plus,qwen3.6-flash,qwen3.5-plus,qwen3-max-2026-01-23,qwen3-coder-next,qwen3-coder-plus,glm-5,glm-4.7,kimi-k2.5,MiniMax-M2.5.Interactive-only license (mirrors #914 Tencent Token Plan): Coding Plan is licensed for interactive coding/agent tools only; API automation is prohibited. Neither id is added to headless
provider-env.ts, and headless boundary tests assert credentials resolve to''even when a plan env var and a credentials file are both present.Brand reuses the already-vendored
alibabacloud.svgvia a fall-throughcase(no new SVG, noTHIRD_PARTY_LICENSESchange). No reasoning wiring was needed: the models expose no reasoning-effort variants and the auto-generated conformance matrix reports no gaps for either id (pureopenai-compatible+ fallback discovery).Lifecycle note: Coding Plan is in a shrinking lifecycle phase (Lite tier withdrawn from sale; Alibaba is positioning Token Plan as the successor). The Pro tier remains on sale and usable today, so this slice ships without issue; the sibling Token Plan cohort is tracked separately under #860.
Verification
Run from the worktree; all green:
npm run typecheck— pass (all workspaces; required rebuilding@maka/coredist so the derivedProviderTypeunion propagates)npm run sync:model-metadata— regenerated; only the two new providers added to the vendored snapshot (unrelated live models.dev drift in other providers was excluded to keep the slice minimal)npm run test:scripts— 108 pass (includessync-model-metadata.test.mjswith the two new ids inPROVIDER_IDS)npm --workspace @maka/core test— 1040 passnpm --workspace @maka/runtime test— 1972 pass, 0 fail (auto-generated conformance matrix + gap report cover both new ids)npm --workspace @maka/storage test— 282 passnpm --workspace @maka/headless test— 1008 pass (interactive-only boundary assertions)npm --workspace maka-agent test— 407 passnpm --workspace @maka/desktop test— 2556 pass (brand governance contract)npm run check:stale— dist fresh (rebuilt desktop renderer)git diff --check— cleanNo per-provider add-flow E2E added (per repo AGENTS.md; providers are covered by the representative journeys and registry contract tests).
Live smoke not run: maintainers do not have a Coding Plan subscription key, so no sanitized live smoke was executed against the real endpoint. Coverage is entirely deterministic — the two-stage
fake-backend tool-call wire and fallback-discovery assertions in the conformance matrix, plus the registry/catalog/auth/storage/cli contract tests. Any real-endpoint behavior issue will be fixed on user feedback.