mirror of
https://github.com/openai/codex.git
synced 2026-11-14 14:49:31 +00:00
Expose available access programs in model discovery (#44893)
## What changed Carry optional `available_access_programs` metadata through model information, presets, caches, and the TUI, and expose it as `availableAccessPrograms` in app-server `model/list` responses. Update the generated JSON schemas, TypeScript types, and Python models. Preserve the distinction between missing metadata and an empty `cyber` list. Ignore unknown cyber program names when reading the catalog so new server programs do not prevent older clients from loading it. Discovery metadata does not grant access; inference still enforces authorization. ## Testing Add coverage for absent, null, empty, and populated metadata, unknown program names, and app-server serialization. Extend cache tests and verify that online refreshes persist changed access metadata even when the catalog ETag stays unchanged. GitOrigin-RevId: b3ef5805c1c61b8d64b9b896c9c0a79120143667
This commit is contained in:
1 parent
4dcce4f0c4
commit
e3a52b87b2
31 files changed
+405
-44
No files matched your search
@@ -1,6 +1,15 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"definitions": {
|
||||
"CyberAccessProgram": {
|
||||
"description": "Requested cyber treatment for a ChatGPT-authenticated Codex turn. Authorization and model-tier restrictions remain server-owned.",
|
||||
"enum": [
|
||||
"standard",
|
||||
"daybreakBlue",
|
||||
"daybreakRed"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"InputModality": {
|
||||
"description": "Canonical user-input modality tags advertised by a model.",
|
||||
"oneOf": [
|
||||
@@ -47,6 +56,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"availableAccessPrograms": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ModelAccessPrograms"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null,
|
||||
"description": "Null when the catalog does not provide access-program metadata."
|
||||
},
|
||||
"defaultReasoningEffort": {
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
@@ -150,6 +171,22 @@
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"ModelAccessPrograms": {
|
||||
"description": "Caller-specific explicit access programs advertised by model discovery.",
|
||||
"properties": {
|
||||
"cyber": {
|
||||
"description": "Accepted explicit selections.",
|
||||
"items": {
|
||||
"$ref": "#/definitions/CyberAccessProgram"
|
||||
},
|
||||
"type": "array"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"cyber"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"ModelAvailabilityNux": {
|
||||
"properties": {
|
||||
"message": {
|
||||
|
||||
Reference in new issue
Block a user