Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions docs/sdk.md
Original file line number Diff line number Diff line change
Expand Up @@ -410,6 +410,30 @@ with `requestedProfile` where applicable, whole exact `availableProfiles` entrie
that fit the detail budget, and `discoveryQuery: "models.profiles.list"`. The
discovery pointer is authoritative when the bounded error cannot include every ID.

### Active provider query (Q29)

`Q29` / `providers.list/active` pages the providers currently eligible for model
selection through the same authenticated, retained-snapshot envelope as Q10. Each
row is the non-secret DTO `{ provider, connectionKind }`, where `connectionKind`
is `credential` or `credentialless`.

Provider IDs are returned exactly as they appear in Q10 `model.provider`: existing
mixed-case, spaced, punctuated, and long custom IDs are preserved without aliases
or normalization. Rows are deduplicated and ordered by UTF-8 provider bytes.
Join Q29 to Q10 by exact provider ID; Q10 remains the full configured catalog.

A credentialed discovery-only provider appears only after fresh discovery proves
the exact model is usable. Static configured models can appear without a network
probe. The query never invokes a model, refreshes credentials, probes a remote
account, or exposes credentials, account metadata, paths, or provider responses.

Resolver failures are atomic and return
`{ "code": "internal", "message": "Unable to resolve active providers." }`.
They omit a page and restart metadata. An expired continuation follows the shared
cursor contract and returns `error.code: "cursor_expired"` with
`error.restartQuery: true`. Malformed cursor strings return `invalid_cursor`;
cross-query or selector mismatches return `invalid_input`.

## Answer semantics

A remote reply answers a pending ask in every session state:
Expand Down
3 changes: 3 additions & 0 deletions packages/ai/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@

- Added read-only OpenCodex provider discovery with runtime-port resolution, identity-checked health probing, cached `/api/models` catalogs, raw wire model ids, and `/login opencodex` status reprobes without credential persistence.

### Changed

- OpenAI-compatible discovery and OpenAI Completions/Responses transports now preserve query-bearing endpoint routing, including repeated query parameters. Model resolution records whether a provider discovery result was fetched so consumers can distinguish current discovery evidence from cached data.

### Fixed

Expand Down
Loading
Loading