Similar to what @sayan-oai did in openai/codex#8956 for `config.schema.json`, this PR updates the repo so that it includes the output of `codex app-server generate-json-schema` and `codex app-server generate-ts` and adds a test to verify it is in sync with the current code. Motivation: - This makes any schema changes introduced by a PR transparent during code review. - In particular, this should help us catch PRs that would introduce a non-backwards-compatible change to the app schema (eventually, this should also be enforced by tooling). - Once https://github.com/openai/codex/pull/10231 is in to formalize the notion of "experimental" fields, we can work on ensuring the non-experimental bits are backwards-compatible. `codex-rs/app-server-protocol/tests/schema_fixtures.rs` was added as the test and `just write-app-server-schema` can be use to generate the vendored schema files. Incidentally, when I run: ``` rg _ codex-rs/app-server-protocol/schema/typescript/v2 ``` I see a number of `snake_case` names that should be `camelCase`.
109 lines
No EOL
2.2 KiB
JSON
109 lines
No EOL
2.2 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/JSONRPCRequest"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/JSONRPCNotification"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/JSONRPCResponse"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/JSONRPCError"
|
|
}
|
|
],
|
|
"definitions": {
|
|
"JSONRPCError": {
|
|
"description": "A response to a request that indicates an error occurred.",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/JSONRPCErrorError"
|
|
},
|
|
"id": {
|
|
"$ref": "#/definitions/RequestId"
|
|
}
|
|
},
|
|
"required": [
|
|
"error",
|
|
"id"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"JSONRPCErrorError": {
|
|
"properties": {
|
|
"code": {
|
|
"format": "int64",
|
|
"type": "integer"
|
|
},
|
|
"data": true,
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"code",
|
|
"message"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"JSONRPCNotification": {
|
|
"description": "A notification which does not expect a response.",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string"
|
|
},
|
|
"params": true
|
|
},
|
|
"required": [
|
|
"method"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"JSONRPCRequest": {
|
|
"description": "A request that expects a response.",
|
|
"properties": {
|
|
"id": {
|
|
"$ref": "#/definitions/RequestId"
|
|
},
|
|
"method": {
|
|
"type": "string"
|
|
},
|
|
"params": true
|
|
},
|
|
"required": [
|
|
"id",
|
|
"method"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"JSONRPCResponse": {
|
|
"description": "A successful (non-error) response to a request.",
|
|
"properties": {
|
|
"id": {
|
|
"$ref": "#/definitions/RequestId"
|
|
},
|
|
"result": true
|
|
},
|
|
"required": [
|
|
"id",
|
|
"result"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"RequestId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"format": "int64",
|
|
"type": "integer"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"description": "Refers to any valid JSON-RPC object that can be decoded off the wire, or encoded to be sent.",
|
|
"title": "JSONRPCMessage"
|
|
} |