mirror of
https://github.com/openai/codex.git
synced 2026-11-14 21:40:39 +00:00
Add default model provider selection to the app server (#61397)
## What changed Add `modelProvider/default/set` with a `providerId` parameter to persist the default provider for new threads and model lists. Return `ConfigWriteResponse`, reject unconfigured providers, and respect managed requirements, read-only configuration, and CLI overrides. Reload the model catalog on its next read when the default changes effectively. Resolve explicit `model/list` provider selections against the current catalog configuration so clients can continue listing models for a retained provider after switching defaults. Update the protocol schemas, generated TypeScript and Python types, and app-server documentation. ## Testing Add coverage for switching defaults and switching back, rejecting unknown providers without changing the catalog, retaining explicit provider selections, reporting CLI overrides, and rejecting writes blocked by configuration restrictions. GitOrigin-RevId: 3615835f58045d33a21b3c57d47932d6d1e3fb12
This commit is contained in:
@@ -2566,6 +2566,18 @@
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"ModelProviderDefaultSetParams": {
|
||||
"properties": {
|
||||
"providerId": {
|
||||
"description": "Configured provider to use by default for new threads and unscoped model lists.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"providerId"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"ModelProviderListParams": {
|
||||
"type": "object"
|
||||
},
|
||||
@@ -8384,6 +8396,30 @@
|
||||
"title": "ModelProvider/config/writeRequest",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"id": {
|
||||
"$ref": "#/definitions/RequestId"
|
||||
},
|
||||
"method": {
|
||||
"enum": [
|
||||
"modelProvider/default/set"
|
||||
],
|
||||
"title": "ModelProvider/default/setRequestMethod",
|
||||
"type": "string"
|
||||
},
|
||||
"params": {
|
||||
"$ref": "#/definitions/ModelProviderDefaultSetParams"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id",
|
||||
"method",
|
||||
"params"
|
||||
],
|
||||
"title": "ModelProvider/default/setRequest",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"id": {
|
||||
|
||||
+38
@@ -1968,6 +1968,30 @@
|
||||
"title": "ModelProvider/config/writeRequest",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"id": {
|
||||
"$ref": "#/definitions/v2/RequestId"
|
||||
},
|
||||
"method": {
|
||||
"enum": [
|
||||
"modelProvider/default/set"
|
||||
],
|
||||
"title": "ModelProvider/default/setRequestMethod",
|
||||
"type": "string"
|
||||
},
|
||||
"params": {
|
||||
"$ref": "#/definitions/v2/ModelProviderDefaultSetParams"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id",
|
||||
"method",
|
||||
"params"
|
||||
],
|
||||
"title": "ModelProvider/default/setRequest",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"id": {
|
||||
@@ -16820,6 +16844,20 @@
|
||||
"title": "ModelProviderConfigWriteResponse",
|
||||
"type": "object"
|
||||
},
|
||||
"ModelProviderDefaultSetParams": {
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"properties": {
|
||||
"providerId": {
|
||||
"description": "Configured provider to use by default for new threads and unscoped model lists.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"providerId"
|
||||
],
|
||||
"title": "ModelProviderDefaultSetParams",
|
||||
"type": "object"
|
||||
},
|
||||
"ModelProviderError": {
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"description": "Structured JSON-RPC error data. Unknown errors must retain the client's normal fallback.",
|
||||
|
||||
+38
@@ -3956,6 +3956,30 @@
|
||||
"title": "ModelProvider/config/writeRequest",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"id": {
|
||||
"$ref": "#/definitions/RequestId"
|
||||
},
|
||||
"method": {
|
||||
"enum": [
|
||||
"modelProvider/default/set"
|
||||
],
|
||||
"title": "ModelProvider/default/setRequestMethod",
|
||||
"type": "string"
|
||||
},
|
||||
"params": {
|
||||
"$ref": "#/definitions/ModelProviderDefaultSetParams"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id",
|
||||
"method",
|
||||
"params"
|
||||
],
|
||||
"title": "ModelProvider/default/setRequest",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"id": {
|
||||
@@ -12774,6 +12798,20 @@
|
||||
"title": "ModelProviderConfigWriteResponse",
|
||||
"type": "object"
|
||||
},
|
||||
"ModelProviderDefaultSetParams": {
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"properties": {
|
||||
"providerId": {
|
||||
"description": "Configured provider to use by default for new threads and unscoped model lists.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"providerId"
|
||||
],
|
||||
"title": "ModelProviderDefaultSetParams",
|
||||
"type": "object"
|
||||
},
|
||||
"ModelProviderError": {
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"description": "Structured JSON-RPC error data. Unknown errors must retain the client's normal fallback.",
|
||||
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"properties": {
|
||||
"providerId": {
|
||||
"description": "Configured provider to use by default for new threads and unscoped model lists.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"providerId"
|
||||
],
|
||||
"title": "ModelProviderDefaultSetParams",
|
||||
"type": "object"
|
||||
}
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
File diff suppressed because one or more lines are too long
+9
@@ -0,0 +1,9 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type ModelProviderDefaultSetParams = {
|
||||
/**
|
||||
* Configured provider to use by default for new threads and unscoped model lists.
|
||||
*/
|
||||
providerId: string, };
|
||||
@@ -349,6 +349,7 @@ export type { ModelProviderCapabilitiesReadParams } from "./ModelProviderCapabil
|
||||
export type { ModelProviderCapabilitiesReadResponse } from "./ModelProviderCapabilitiesReadResponse";
|
||||
export type { ModelProviderConfigWriteParams } from "./ModelProviderConfigWriteParams";
|
||||
export type { ModelProviderConfigWriteResponse } from "./ModelProviderConfigWriteResponse";
|
||||
export type { ModelProviderDefaultSetParams } from "./ModelProviderDefaultSetParams";
|
||||
export type { ModelProviderError } from "./ModelProviderError";
|
||||
export type { ModelProviderListParams } from "./ModelProviderListParams";
|
||||
export type { ModelProviderListResponse } from "./ModelProviderListResponse";
|
||||
|
||||
@@ -1212,6 +1212,12 @@ client_request_definitions! {
|
||||
serialization: global("config"),
|
||||
response: v2::ModelProviderConfigWriteResponse,
|
||||
},
|
||||
ModelProviderDefaultSet => "modelProvider/default/set" {
|
||||
params: v2::ModelProviderDefaultSetParams,
|
||||
serialization: global("config"),
|
||||
manual_payload_conversion: manual,
|
||||
response: v2::ConfigWriteResponse,
|
||||
},
|
||||
ModelProviderCapabilitiesRead => "modelProvider/capabilities/read" {
|
||||
params: v2::ModelProviderCapabilitiesReadParams,
|
||||
serialization: None,
|
||||
|
||||
@@ -248,3 +248,11 @@ pub struct ModelProviderConfigWriteParams {
|
||||
pub struct ModelProviderConfigWriteResponse {
|
||||
pub provider: ModelProviderSummary,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, JsonSchema, TS)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[ts(export_to = "v2/")]
|
||||
pub struct ModelProviderDefaultSetParams {
|
||||
/// Configured provider to use by default for new threads and unscoped model lists.
|
||||
pub provider_id: String,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user