2 Commits

Author SHA1 Message Date
Wolfgang Schoenberger 2f2011f5ee fix(ai): degrade Copilot Responses image detail "original" to auto
The Responses-API "original" image detail is an oh-my-pi extension that
preserves native resolution (snapcompact renders terminal-glyph frames
that do not survive the "auto" downscale). GitHub Copilot's Responses
endpoint rejects detail: "original" with an HTTP 400, so any request
carrying such an image failed outright.

- Add a supportsImageDetailOriginal compat flag in the catalog, resolved
  to false whenever the model resolves to the Copilot host (by provider id
  or base-URL marker, via modelMatchesHost, mirroring the Anthropic compat
  builder) and true for every other host, alongside the existing
  strictResponsesPairing Responses-only flag (same three type touch-points:
  optional on OpenAICompat, omitted from the chat-completions resolved type,
  required on the Responses resolved type).
- Clamp the image detail hint to "auto" when the host does not support
  "original" at both Responses image-emission sites (user content and
  tool-result content). Every other host preserves native-resolution
  frames, so snapcompact is unaffected.

Host-aware detection (rather than a bare provider-string check) keeps the
clamp in force when a model is pointed at the Copilot Responses host under
a different provider id, which would otherwise reintroduce the 400; a
regression test covers that path.

Closes #2822

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 22:38:30 -07:00
can1357 c3e5b60174 feat(catalog): added requestModelId routing and Copilot long-context discovery support
- Added optional `requestModelId` to the `Model` interface for upstream wire overrides.
- Prioritized `model.requestModelId` when resolving request model IDs for Anthropic and OpenAI paths.
- Used `COPILOT_API_HEADERS` in Copilot discovery and policy calls with API version `2026-06-01`.
- Synthesized Copilot `-1m` long-context sibling models with dedicated upstream IDs and pricing data.
2026-06-11 21:28:32 +02:00