Files
codex/codex-rs/app-server-protocol/schema/json/v2/ModelProviderConfigWriteParams.json
T
alexsong-oai 053e5b1ca9 Add model provider configuration writes to the app-server (#58876)
## What changed

Add `modelProvider/config/write` to create custom gateways and patch existing custom gateway, Bedrock, and GCP settings. Return the saved provider using the same safe summary as `modelProvider/list`.

Omitted fields retain their values; explicit `null` clears nullable user overrides. Apply patches through the shared configuration queue with last-write-wins semantics, enforce field editability and validation, and preserve unexposed authentication settings.

Saving leaves provider selection and authentication unchanged. Saving the provider used by `model/list` invalidates its catalog for the next access. Include documentation and generated JSON, TypeScript, and Python protocol types.

## Testing

Add coverage for gateway creation and ID allocation, patch and null semantics, configuration policy enforcement, authentication preservation, and catalog refresh after active-provider edits. Extend Python protocol tests to verify wire round trips and reject mismatched provider IDs or fields.

GitOrigin-RevId: 850fe2c48ef5274944400efb5a859d720179c923
2026-11-02 12:22:22 +00:00

147 lines
3.6 KiB
JSON
Generated

{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"BedrockProviderId": {
"enum": [
"amazon-bedrock",
"amazon-bedrock-runtime"
],
"type": "string"
},
"GcpProviderId": {
"enum": [
"gcp"
],
"type": "string"
},
"ProviderSettingsPatch": {
"description": "Omitted patch fields preserve their values. Explicit null clears a nullable field.",
"oneOf": [
{
"additionalProperties": false,
"properties": {
"baseUrl": {
"type": [
"string",
"null"
]
},
"envKey": {
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"providerId": {
"description": "Omit or pass null to allocate a new custom provider ID.",
"type": [
"string",
"null"
]
},
"type": {
"enum": [
"customGateway"
],
"title": "CustomGatewayProviderSettingsPatchType",
"type": "string"
}
},
"required": [
"type"
],
"title": "CustomGatewayProviderSettingsPatch",
"type": "object"
},
{
"additionalProperties": false,
"description": "AWS configuration fields for built-in Bedrock providers.",
"properties": {
"profile": {
"type": [
"string",
"null"
]
},
"providerId": {
"$ref": "#/definitions/BedrockProviderId"
},
"region": {
"type": [
"string",
"null"
]
},
"type": {
"enum": [
"bedrock"
],
"title": "BedrockProviderSettingsPatchType",
"type": "string"
}
},
"required": [
"providerId",
"type"
],
"title": "BedrockProviderSettingsPatch",
"type": "object"
},
{
"additionalProperties": false,
"description": "GCP configuration fields. Credential-file paths refer to the app-server host.",
"properties": {
"credentialFile": {
"type": [
"string",
"null"
]
},
"location": {
"type": [
"string",
"null"
]
},
"projectId": {
"type": [
"string",
"null"
]
},
"providerId": {
"$ref": "#/definitions/GcpProviderId"
},
"type": {
"enum": [
"gcp"
],
"title": "GcpProviderSettingsPatchType",
"type": "string"
}
},
"required": [
"providerId",
"type"
],
"title": "GcpProviderSettingsPatch",
"type": "object"
}
]
}
},
"properties": {
"settings": {
"$ref": "#/definitions/ProviderSettingsPatch"
}
},
"required": [
"settings"
],
"title": "ModelProviderConfigWriteParams",
"type": "object"
}