Repository navigation
feat: expose qualified AI model capabilities - #696
Open
alongubkin wants to merge 3 commits into
Open
alongubkin wants to merge 3 commits into
alongubkin wants to merge 3 commits into
Conversation
|
A Worker image or BYO container can run a gateway binary older than the app's SDK. Rejecting its model list would break getAvailableModels for every such app, so a missing matrix now means no qualification evidence. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
alongubkin
force-pushed
the
alon/alien-946-model-capability-metadata
branch
from
October 9, 2026 19:02
6823a97 to
d646d93
Compare
Member
Author
|
@greptileai review |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Member
Author
|
@greptileai review |
This branch has not been deployed
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.
Problem
GET /v1/modelsandgetAvailableModels()say which models are routable through each public Gateway API, but not which optional behaviors work through it (function tools, image input, reasoning controls, server-managed continuation, stateless replay). Callers treat the routing list as a capability claim, and it is not one.Fix
alien-coreaddsModelApiCapabilities/ModelCapabilitySupportandCatalogModel::capabilities(): one record per public API, each factsupported,unsupportedorunverified. Every API is always present, so a missing record can't be misread as "unsupported".capabilitieson every/v1/modelsentry. Provider-listed models that were never qualified get an all-unverifiedmatrix.gpt-oss-20bon the Responses API. Function tools and server-managed continuation are supported, stateless replay is unsupported, and the rest is unverified. Chat Completions and Messages stay unverified for that model.unverified, because a Worker image or BYO container can run a gateway binary older than the app's SDK.Alternatives considered: inferring capabilities from the provider-native protocol or the model family was rejected, because that is exactly the false claim this PR removes. Rejecting a response with no matrix was rejected too, because it would break
getAvailableModels()for every app running an older gateway.Proof
Run in a Linux sandbox on this branch rebased on
main(abdbe6acb):cargo test -p alien-ai-gateway --lib supplied_availability_gates_listing_and_inference_without_probingpasses. With the four"capabilities"lines removed fromlist_models, it fails withcapability matrix.vitest run src/__tests__/client.test.tspasses 29/29. Withmain'sclient.tsand these tests, 3 fail. With the first commit's strict client, the older-gateway test fails.cargo test -p alien-core --lib ai_catalogpasses 13/13, andcargo test -p alien-ai-gateway --libpasses 94/94.pnpm --filter @alienplatform/core generate(schema exporter + kubb) leaves the generated files unchanged, so the committed artifacts match the generator.tsc --noEmitare clean forpackages/ai-gateway.Rollout
The change is additive on the wire, and older SDKs ignore the new field. No migration is needed.
Linear: ALIEN-946
🤖 Generated with Claude Code