#20947: feat: expand Copilot model catalog with anthropic-messages API
size: S
Cluster:
AI Provider Enhancements
## Summary
- Problem: The GitHub Copilot model catalog was outdated (8 models) and used the wrong API type (`claude` instead of `anthropic-messages`) for Claude models.
- Why it matters: Using `claude` API type prevented proper Anthropic thinking headers and caused session issues. Missing models meant users couldn't select newer Copilot-hosted models.
- What changed: Expanded model catalog from 8 to 25+ models. Switched Claude models to `anthropic-messages` API type. Added vision/reasoning capability sets. All costs set to `ZERO_COST` (Copilot uses premium request units, not per-token pricing).
- What did NOT change (scope boundary): No SDK, auth, or session runner changes — those are in separate PRs.
Split out from #17333.
## Change Type (select all)
- [ ] Bug fix
- [x] Feature
- [ ] Refactor
- [ ] Docs
- [ ] Security hardening
- [ ] Chore/infra
## Scope (select all touched areas)
- [ ] Gateway / orchestration
- [ ] Skills / tool execution
- [ ] Auth / tokens
- [ ] Memory / storage
- [x] Integrations
- [ ] API / contracts
- [ ] UI / DX
- [ ] CI/CD / infra
## Linked Issue/PR
- Related #17333
- SDK dependency: `discoverCopilotModels()` was removed; re-add once #17333 lands
## User-visible / Behavior Changes
- Claude models via GitHub Copilot now use `anthropic-messages` API type instead of `claude`. This enables proper thinking block handling.
- 17+ new models available in the Copilot provider catalog.
- Cost set to zero (premium request unit tracking is handled separately via `provider-usage.fetch.copilot.ts`).
## Security Impact (required)
- New permissions/capabilities? No
- Secrets/tokens handling changed? No
- New/changed network calls? No (same API endpoints, different request format for Claude)
- Command/tool execution surface changed? No
- Data access scope changed? No
## Evidence
- [x] Build passes
- [x] 10 tests pass in `github-copilot-models.test.ts`
## Compatibility / Migration
- Backward compatible? Mostly — Claude model API type change from `claude` to `anthropic-messages` may affect existing sessions if users had hardcoded the API type.
- Config/env changes? No
- Migration needed? No
## Risks and Mitigations
- Risk: Claude → anthropic-messages API type change could break existing sessions mid-conversation.
- Mitigation: New sessions will use the correct type; existing sessions will adapt on next model resolution.
## Failure Recovery (if this breaks)
- Revert this commit; Claude models will revert to `claude` API type and the model catalog will shrink back to 8 models.
Most Similar PRs
#20747: feat(copilot): support Claude models with correct context windows (...
by yuf1011 · 2026-02-19
78.9%
#18670: feat: add first-class Claude Code CLI auth path + CLI model UX hard...
by SmithLabsLLC · 2026-02-16
73.4%
#20095: fix(model-forward-compat): extend claude-sonnet-4.6 forward-compat ...
by SeeYangZhi · 2026-02-18
73.1%
#11447: feat(providers): add Claude models to GitHub Copilot provider
by yylonly · 2026-02-07
72.8%
#2806: [AI-Assisted] Fix: Repair tool_use/tool_result pairing for Claude o...
by Arthur742Ramos · 2026-01-27
72.0%
#18697: fix: include forward-compat models in model catalog for allowlist val…
by dmitry-orabey · 2026-02-17
71.4%
#19710: feat(nvidia): expand NIM model catalog from 3 to 38 models
by 88plug · 2026-02-18
70.6%
#19267: fix: derive failover reason from timedOut flag to prevent unknown c...
by austenstone · 2026-02-17
70.2%
#23700: feat: Claude CLI personal-use auth (no API key required) + native A...
by 88plug · 2026-02-22
70.1%
#16687: fix(antigravity): default to Gemini 3 Pro and remove broken depreca...
by vincentkoc · 2026-02-15
70.0%