SaylorTwift HF Staff commited on
Commit
50ae831
·
verified ·
1 Parent(s): afa0cbf

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. codex-rs/app-server-protocol/schema/json/ApplyPatchApprovalParams.json +114 -0
  2. codex-rs/app-server-protocol/schema/json/ApplyPatchApprovalResponse.json +146 -0
  3. codex-rs/app-server-protocol/schema/json/AttestationGenerateParams.json +5 -0
  4. codex-rs/app-server-protocol/schema/json/ChatgptAuthTokensRefreshParams.json +33 -0
  5. codex-rs/app-server-protocol/schema/json/ChatgptAuthTokensRefreshResponse.json +23 -0
  6. codex-rs/app-server-protocol/schema/json/ClientRequest.json +0 -0
  7. codex-rs/app-server-protocol/schema/json/CommandExecutionRequestApprovalParams.json +648 -0
  8. codex-rs/app-server-protocol/schema/json/DynamicToolCallParams.json +33 -0
  9. codex-rs/app-server-protocol/schema/json/DynamicToolCallResponse.json +86 -0
  10. codex-rs/app-server-protocol/schema/json/ExecCommandApprovalParams.json +165 -0
  11. codex-rs/app-server-protocol/schema/json/FileChangeRequestApprovalParams.json +41 -0
  12. codex-rs/app-server-protocol/schema/json/FuzzyFileSearchResponse.json +66 -0
  13. codex-rs/app-server-protocol/schema/json/FuzzyFileSearchSessionCompletedNotification.json +13 -0
  14. codex-rs/app-server-protocol/schema/json/JSONRPCErrorError.json +19 -0
  15. codex-rs/app-server-protocol/schema/json/JSONRPCMessage.json +137 -0
  16. codex-rs/app-server-protocol/schema/json/JSONRPCResponse.json +29 -0
  17. codex-rs/app-server-protocol/schema/json/McpServerElicitationRequestParams.json +651 -0
  18. codex-rs/app-server-protocol/schema/json/PermissionsRequestApprovalParams.json +336 -0
  19. codex-rs/app-server-protocol/schema/json/RequestId.json +13 -0
  20. codex-rs/app-server-protocol/schema/json/ServerNotification.json +0 -0
  21. codex-rs/app-server-protocol/schema/json/ServerRequest.json +2096 -0
  22. codex-rs/app-server-protocol/schema/json/ToolRequestUserInputParams.json +98 -0
  23. codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json +0 -0
  24. codex-rs/app-server-protocol/schema/json/v1/InitializeParams.json +84 -0
  25. codex-rs/app-server-protocol/schema/json/v1/InitializeResponse.json +38 -0
  26. codex-rs/app-server-protocol/schema/json/v2/AccountLoginCompletedNotification.json +43 -0
  27. codex-rs/app-server-protocol/schema/json/v2/AccountRateLimitsUpdatedNotification.json +211 -0
  28. codex-rs/app-server-protocol/schema/json/v2/AccountUpdatedNotification.json +112 -0
  29. codex-rs/app-server-protocol/schema/json/v2/AgentMessageDeltaNotification.json +25 -0
  30. codex-rs/app-server-protocol/schema/json/v2/AppListUpdatedNotification.json +288 -0
  31. codex-rs/app-server-protocol/schema/json/v2/AppsInstalledParams.json +19 -0
  32. codex-rs/app-server-protocol/schema/json/v2/AppsInstalledResponse.json +48 -0
  33. codex-rs/app-server-protocol/schema/json/v2/AppsListParams.json +35 -0
  34. codex-rs/app-server-protocol/schema/json/v2/AppsListResponse.json +295 -0
  35. codex-rs/app-server-protocol/schema/json/v2/AppsReadParams.json +29 -0
  36. codex-rs/app-server-protocol/schema/json/v2/AppsReadResponse.json +124 -0
  37. codex-rs/app-server-protocol/schema/json/v2/AuthRecoveryNotification.json +25 -0
  38. codex-rs/app-server-protocol/schema/json/v2/CancelLoginAccountParams.json +13 -0
  39. codex-rs/app-server-protocol/schema/json/v2/CancelLoginAccountResponse.json +22 -0
  40. codex-rs/app-server-protocol/schema/json/v2/CommandExecOutputDeltaNotification.json +55 -0
  41. codex-rs/app-server-protocol/schema/json/v2/CommandExecParams.json +238 -0
  42. codex-rs/app-server-protocol/schema/json/v2/CommandExecResizeParams.json +48 -0
  43. codex-rs/app-server-protocol/schema/json/v2/CommandExecResizeResponse.json +6 -0
  44. codex-rs/app-server-protocol/schema/json/v2/CommandExecResponse.json +26 -0
  45. codex-rs/app-server-protocol/schema/json/v2/CommandExecTerminateParams.json +15 -0
  46. codex-rs/app-server-protocol/schema/json/v2/CommandExecTerminateResponse.json +6 -0
  47. codex-rs/app-server-protocol/schema/json/v2/CommandExecWriteParams.json +26 -0
  48. codex-rs/app-server-protocol/schema/json/v2/CommandExecWriteResponse.json +6 -0
  49. codex-rs/app-server-protocol/schema/json/v2/CommandExecutionOutputDeltaNotification.json +25 -0
  50. codex-rs/app-server-protocol/schema/json/v2/ConfigBatchWriteParams.json +59 -0
codex-rs/app-server-protocol/schema/json/ApplyPatchApprovalParams.json ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "FileChange": {
5
+ "oneOf": [
6
+ {
7
+ "properties": {
8
+ "content": {
9
+ "type": "string"
10
+ },
11
+ "type": {
12
+ "enum": [
13
+ "add"
14
+ ],
15
+ "title": "AddFileChangeType",
16
+ "type": "string"
17
+ }
18
+ },
19
+ "required": [
20
+ "content",
21
+ "type"
22
+ ],
23
+ "title": "AddFileChange",
24
+ "type": "object"
25
+ },
26
+ {
27
+ "properties": {
28
+ "content": {
29
+ "type": "string"
30
+ },
31
+ "type": {
32
+ "enum": [
33
+ "delete"
34
+ ],
35
+ "title": "DeleteFileChangeType",
36
+ "type": "string"
37
+ }
38
+ },
39
+ "required": [
40
+ "content",
41
+ "type"
42
+ ],
43
+ "title": "DeleteFileChange",
44
+ "type": "object"
45
+ },
46
+ {
47
+ "properties": {
48
+ "move_path": {
49
+ "type": [
50
+ "string",
51
+ "null"
52
+ ]
53
+ },
54
+ "type": {
55
+ "enum": [
56
+ "update"
57
+ ],
58
+ "title": "UpdateFileChangeType",
59
+ "type": "string"
60
+ },
61
+ "unified_diff": {
62
+ "type": "string"
63
+ }
64
+ },
65
+ "required": [
66
+ "type",
67
+ "unified_diff"
68
+ ],
69
+ "title": "UpdateFileChange",
70
+ "type": "object"
71
+ }
72
+ ]
73
+ },
74
+ "ThreadId": {
75
+ "type": "string"
76
+ }
77
+ },
78
+ "properties": {
79
+ "callId": {
80
+ "description": "Use to correlate this with [codex_protocol::protocol::PatchApplyBeginEvent] and [codex_protocol::protocol::PatchApplyEndEvent].",
81
+ "type": "string"
82
+ },
83
+ "conversationId": {
84
+ "$ref": "#/definitions/ThreadId"
85
+ },
86
+ "fileChanges": {
87
+ "additionalProperties": {
88
+ "$ref": "#/definitions/FileChange"
89
+ },
90
+ "type": "object"
91
+ },
92
+ "grantRoot": {
93
+ "description": "When set, the agent is asking the user to allow writes under this root for the remainder of the session (unclear if this is honored today).",
94
+ "type": [
95
+ "string",
96
+ "null"
97
+ ]
98
+ },
99
+ "reason": {
100
+ "description": "Optional explanatory reason (e.g. request for extra write access).",
101
+ "type": [
102
+ "string",
103
+ "null"
104
+ ]
105
+ }
106
+ },
107
+ "required": [
108
+ "callId",
109
+ "conversationId",
110
+ "fileChanges"
111
+ ],
112
+ "title": "ApplyPatchApprovalParams",
113
+ "type": "object"
114
+ }
codex-rs/app-server-protocol/schema/json/ApplyPatchApprovalResponse.json ADDED
@@ -0,0 +1,146 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "NetworkPolicyAmendment": {
5
+ "properties": {
6
+ "action": {
7
+ "$ref": "#/definitions/NetworkPolicyRuleAction"
8
+ },
9
+ "host": {
10
+ "type": "string"
11
+ }
12
+ },
13
+ "required": [
14
+ "action",
15
+ "host"
16
+ ],
17
+ "type": "object"
18
+ },
19
+ "NetworkPolicyRuleAction": {
20
+ "enum": [
21
+ "allow",
22
+ "deny"
23
+ ],
24
+ "type": "string"
25
+ },
26
+ "ReviewDecision": {
27
+ "description": "User's decision in response to an ExecApprovalRequest.",
28
+ "oneOf": [
29
+ {
30
+ "description": "User has approved this command and the agent should execute it.",
31
+ "enum": [
32
+ "approved"
33
+ ],
34
+ "type": "string"
35
+ },
36
+ {
37
+ "additionalProperties": false,
38
+ "description": "User has approved this command and wants to apply the proposed execpolicy amendment so future matching commands are permitted.",
39
+ "properties": {
40
+ "approved_execpolicy_amendment": {
41
+ "properties": {
42
+ "proposed_execpolicy_amendment": {
43
+ "items": {
44
+ "type": "string"
45
+ },
46
+ "type": "array"
47
+ }
48
+ },
49
+ "required": [
50
+ "proposed_execpolicy_amendment"
51
+ ],
52
+ "type": "object"
53
+ }
54
+ },
55
+ "required": [
56
+ "approved_execpolicy_amendment"
57
+ ],
58
+ "title": "ApprovedExecpolicyAmendmentReviewDecision",
59
+ "type": "object"
60
+ },
61
+ {
62
+ "description": "User has approved this request and wants future prompts in the same session-scoped approval cache to be automatically approved for the remainder of the session.",
63
+ "enum": [
64
+ "approved_for_session"
65
+ ],
66
+ "type": "string"
67
+ },
68
+ {
69
+ "description": "User has approved this MCP tool call and wants to amend its policy so matching future calls are automatically approved across sessions.",
70
+ "enum": [
71
+ "approved_mcp_policy_amendment"
72
+ ],
73
+ "type": "string"
74
+ },
75
+ {
76
+ "additionalProperties": false,
77
+ "description": "User chose to persist a network policy rule (allow/deny) for future requests to the same host.",
78
+ "properties": {
79
+ "network_policy_amendment": {
80
+ "properties": {
81
+ "network_policy_amendment": {
82
+ "$ref": "#/definitions/NetworkPolicyAmendment"
83
+ }
84
+ },
85
+ "required": [
86
+ "network_policy_amendment"
87
+ ],
88
+ "type": "object"
89
+ }
90
+ },
91
+ "required": [
92
+ "network_policy_amendment"
93
+ ],
94
+ "title": "NetworkPolicyAmendmentReviewDecision",
95
+ "type": "object"
96
+ },
97
+ {
98
+ "additionalProperties": false,
99
+ "description": "User has denied this command and the agent should not execute it, but it should continue the session and try something else.",
100
+ "properties": {
101
+ "denied": {
102
+ "properties": {
103
+ "rejection": {
104
+ "type": "string"
105
+ }
106
+ },
107
+ "required": [
108
+ "rejection"
109
+ ],
110
+ "type": "object"
111
+ }
112
+ },
113
+ "required": [
114
+ "denied"
115
+ ],
116
+ "title": "DeniedReviewDecision",
117
+ "type": "object"
118
+ },
119
+ {
120
+ "description": "Automatic approval review timed out before reaching a decision.",
121
+ "enum": [
122
+ "timed_out"
123
+ ],
124
+ "type": "string"
125
+ },
126
+ {
127
+ "description": "User has denied this command and the agent should not do anything until the user's next command.",
128
+ "enum": [
129
+ "abort"
130
+ ],
131
+ "type": "string"
132
+ }
133
+ ]
134
+ }
135
+ },
136
+ "properties": {
137
+ "decision": {
138
+ "$ref": "#/definitions/ReviewDecision"
139
+ }
140
+ },
141
+ "required": [
142
+ "decision"
143
+ ],
144
+ "title": "ApplyPatchApprovalResponse",
145
+ "type": "object"
146
+ }
codex-rs/app-server-protocol/schema/json/AttestationGenerateParams.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "AttestationGenerateParams",
4
+ "type": "object"
5
+ }
codex-rs/app-server-protocol/schema/json/ChatgptAuthTokensRefreshParams.json ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "ChatgptAuthTokensRefreshReason": {
5
+ "oneOf": [
6
+ {
7
+ "description": "Codex attempted a backend request and received `401 Unauthorized`.",
8
+ "enum": [
9
+ "unauthorized"
10
+ ],
11
+ "type": "string"
12
+ }
13
+ ]
14
+ }
15
+ },
16
+ "properties": {
17
+ "previousAccountId": {
18
+ "description": "Workspace/account identifier that Codex was previously using.\n\nClients that manage multiple accounts/workspaces can use this as a hint to refresh the token for the correct workspace.\n\nThis may be `null` when the prior auth state did not include a workspace identifier (`chatgpt_account_id`).",
19
+ "type": [
20
+ "string",
21
+ "null"
22
+ ]
23
+ },
24
+ "reason": {
25
+ "$ref": "#/definitions/ChatgptAuthTokensRefreshReason"
26
+ }
27
+ },
28
+ "required": [
29
+ "reason"
30
+ ],
31
+ "title": "ChatgptAuthTokensRefreshParams",
32
+ "type": "object"
33
+ }
codex-rs/app-server-protocol/schema/json/ChatgptAuthTokensRefreshResponse.json ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "properties": {
4
+ "accessToken": {
5
+ "type": "string"
6
+ },
7
+ "chatgptAccountId": {
8
+ "type": "string"
9
+ },
10
+ "chatgptPlanType": {
11
+ "type": [
12
+ "string",
13
+ "null"
14
+ ]
15
+ }
16
+ },
17
+ "required": [
18
+ "accessToken",
19
+ "chatgptAccountId"
20
+ ],
21
+ "title": "ChatgptAuthTokensRefreshResponse",
22
+ "type": "object"
23
+ }
codex-rs/app-server-protocol/schema/json/ClientRequest.json ADDED
The diff for this file is too large to render. See raw diff
 
codex-rs/app-server-protocol/schema/json/CommandExecutionRequestApprovalParams.json ADDED
@@ -0,0 +1,648 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "AdditionalFileSystemPermissions": {
5
+ "properties": {
6
+ "entries": {
7
+ "items": {
8
+ "$ref": "#/definitions/FileSystemSandboxEntry"
9
+ },
10
+ "type": [
11
+ "array",
12
+ "null"
13
+ ]
14
+ },
15
+ "globScanMaxDepth": {
16
+ "format": "uint",
17
+ "minimum": 1.0,
18
+ "type": [
19
+ "integer",
20
+ "null"
21
+ ]
22
+ },
23
+ "read": {
24
+ "description": "This will be removed in favor of `entries`.",
25
+ "items": {
26
+ "$ref": "#/definitions/LegacyAppPathString"
27
+ },
28
+ "type": [
29
+ "array",
30
+ "null"
31
+ ]
32
+ },
33
+ "write": {
34
+ "description": "This will be removed in favor of `entries`.",
35
+ "items": {
36
+ "$ref": "#/definitions/LegacyAppPathString"
37
+ },
38
+ "type": [
39
+ "array",
40
+ "null"
41
+ ]
42
+ }
43
+ },
44
+ "type": "object"
45
+ },
46
+ "AdditionalNetworkPermissions": {
47
+ "properties": {
48
+ "enabled": {
49
+ "type": [
50
+ "boolean",
51
+ "null"
52
+ ]
53
+ }
54
+ },
55
+ "type": "object"
56
+ },
57
+ "AdditionalPermissionProfile": {
58
+ "properties": {
59
+ "fileSystem": {
60
+ "anyOf": [
61
+ {
62
+ "$ref": "#/definitions/AdditionalFileSystemPermissions"
63
+ },
64
+ {
65
+ "type": "null"
66
+ }
67
+ ]
68
+ },
69
+ "network": {
70
+ "anyOf": [
71
+ {
72
+ "$ref": "#/definitions/AdditionalNetworkPermissions"
73
+ },
74
+ {
75
+ "type": "null"
76
+ }
77
+ ],
78
+ "description": "Partial overlay used for per-command permission requests."
79
+ }
80
+ },
81
+ "type": "object"
82
+ },
83
+ "CommandAction": {
84
+ "oneOf": [
85
+ {
86
+ "properties": {
87
+ "command": {
88
+ "type": "string"
89
+ },
90
+ "name": {
91
+ "type": "string"
92
+ },
93
+ "path": {
94
+ "$ref": "#/definitions/LegacyAppPathString"
95
+ },
96
+ "type": {
97
+ "enum": [
98
+ "read"
99
+ ],
100
+ "title": "ReadCommandActionType",
101
+ "type": "string"
102
+ }
103
+ },
104
+ "required": [
105
+ "command",
106
+ "name",
107
+ "path",
108
+ "type"
109
+ ],
110
+ "title": "ReadCommandAction",
111
+ "type": "object"
112
+ },
113
+ {
114
+ "properties": {
115
+ "command": {
116
+ "type": "string"
117
+ },
118
+ "path": {
119
+ "type": [
120
+ "string",
121
+ "null"
122
+ ]
123
+ },
124
+ "type": {
125
+ "enum": [
126
+ "listFiles"
127
+ ],
128
+ "title": "ListFilesCommandActionType",
129
+ "type": "string"
130
+ }
131
+ },
132
+ "required": [
133
+ "command",
134
+ "type"
135
+ ],
136
+ "title": "ListFilesCommandAction",
137
+ "type": "object"
138
+ },
139
+ {
140
+ "properties": {
141
+ "command": {
142
+ "type": "string"
143
+ },
144
+ "path": {
145
+ "type": [
146
+ "string",
147
+ "null"
148
+ ]
149
+ },
150
+ "query": {
151
+ "type": [
152
+ "string",
153
+ "null"
154
+ ]
155
+ },
156
+ "type": {
157
+ "enum": [
158
+ "search"
159
+ ],
160
+ "title": "SearchCommandActionType",
161
+ "type": "string"
162
+ }
163
+ },
164
+ "required": [
165
+ "command",
166
+ "type"
167
+ ],
168
+ "title": "SearchCommandAction",
169
+ "type": "object"
170
+ },
171
+ {
172
+ "properties": {
173
+ "command": {
174
+ "type": "string"
175
+ },
176
+ "type": {
177
+ "enum": [
178
+ "unknown"
179
+ ],
180
+ "title": "UnknownCommandActionType",
181
+ "type": "string"
182
+ }
183
+ },
184
+ "required": [
185
+ "command",
186
+ "type"
187
+ ],
188
+ "title": "UnknownCommandAction",
189
+ "type": "object"
190
+ }
191
+ ]
192
+ },
193
+ "CommandExecutionApprovalDecision": {
194
+ "oneOf": [
195
+ {
196
+ "description": "User approved the command.",
197
+ "enum": [
198
+ "accept"
199
+ ],
200
+ "type": "string"
201
+ },
202
+ {
203
+ "description": "User approved the command and future prompts in the same session-scoped approval cache should run without prompting.",
204
+ "enum": [
205
+ "acceptForSession"
206
+ ],
207
+ "type": "string"
208
+ },
209
+ {
210
+ "additionalProperties": false,
211
+ "description": "User approved the command, and wants to apply the proposed execpolicy amendment so future matching commands can run without prompting.",
212
+ "properties": {
213
+ "acceptWithExecpolicyAmendment": {
214
+ "properties": {
215
+ "execpolicy_amendment": {
216
+ "items": {
217
+ "type": "string"
218
+ },
219
+ "type": "array"
220
+ }
221
+ },
222
+ "required": [
223
+ "execpolicy_amendment"
224
+ ],
225
+ "type": "object"
226
+ }
227
+ },
228
+ "required": [
229
+ "acceptWithExecpolicyAmendment"
230
+ ],
231
+ "title": "AcceptWithExecpolicyAmendmentCommandExecutionApprovalDecision",
232
+ "type": "object"
233
+ },
234
+ {
235
+ "additionalProperties": false,
236
+ "description": "User chose a persistent network policy rule (allow/deny) for this host.",
237
+ "properties": {
238
+ "applyNetworkPolicyAmendment": {
239
+ "properties": {
240
+ "network_policy_amendment": {
241
+ "$ref": "#/definitions/NetworkPolicyAmendment"
242
+ }
243
+ },
244
+ "required": [
245
+ "network_policy_amendment"
246
+ ],
247
+ "type": "object"
248
+ }
249
+ },
250
+ "required": [
251
+ "applyNetworkPolicyAmendment"
252
+ ],
253
+ "title": "ApplyNetworkPolicyAmendmentCommandExecutionApprovalDecision",
254
+ "type": "object"
255
+ },
256
+ {
257
+ "description": "User denied the command. The agent will continue the turn.",
258
+ "enum": [
259
+ "decline"
260
+ ],
261
+ "type": "string"
262
+ },
263
+ {
264
+ "description": "User denied the command. The turn will also be immediately interrupted.",
265
+ "enum": [
266
+ "cancel"
267
+ ],
268
+ "type": "string"
269
+ }
270
+ ]
271
+ },
272
+ "CommandExecutionApprovalKind": {
273
+ "description": "Distinguishes a command approval from input sent to an existing terminal.",
274
+ "enum": [
275
+ "command",
276
+ "writeStdin"
277
+ ],
278
+ "type": "string"
279
+ },
280
+ "FileSystemAccessMode": {
281
+ "enum": [
282
+ "read",
283
+ "write",
284
+ "deny"
285
+ ],
286
+ "type": "string"
287
+ },
288
+ "FileSystemPath": {
289
+ "oneOf": [
290
+ {
291
+ "properties": {
292
+ "path": {
293
+ "$ref": "#/definitions/LegacyAppPathString"
294
+ },
295
+ "type": {
296
+ "enum": [
297
+ "path"
298
+ ],
299
+ "title": "PathFileSystemPathType",
300
+ "type": "string"
301
+ }
302
+ },
303
+ "required": [
304
+ "path",
305
+ "type"
306
+ ],
307
+ "title": "PathFileSystemPath",
308
+ "type": "object"
309
+ },
310
+ {
311
+ "properties": {
312
+ "pattern": {
313
+ "type": "string"
314
+ },
315
+ "type": {
316
+ "enum": [
317
+ "glob_pattern"
318
+ ],
319
+ "title": "GlobPatternFileSystemPathType",
320
+ "type": "string"
321
+ }
322
+ },
323
+ "required": [
324
+ "pattern",
325
+ "type"
326
+ ],
327
+ "title": "GlobPatternFileSystemPath",
328
+ "type": "object"
329
+ },
330
+ {
331
+ "properties": {
332
+ "type": {
333
+ "enum": [
334
+ "special"
335
+ ],
336
+ "title": "SpecialFileSystemPathType",
337
+ "type": "string"
338
+ },
339
+ "value": {
340
+ "$ref": "#/definitions/FileSystemSpecialPath"
341
+ }
342
+ },
343
+ "required": [
344
+ "type",
345
+ "value"
346
+ ],
347
+ "title": "SpecialFileSystemPath",
348
+ "type": "object"
349
+ }
350
+ ]
351
+ },
352
+ "FileSystemSandboxEntry": {
353
+ "properties": {
354
+ "access": {
355
+ "$ref": "#/definitions/FileSystemAccessMode"
356
+ },
357
+ "path": {
358
+ "$ref": "#/definitions/FileSystemPath"
359
+ }
360
+ },
361
+ "required": [
362
+ "access",
363
+ "path"
364
+ ],
365
+ "type": "object"
366
+ },
367
+ "FileSystemSpecialPath": {
368
+ "oneOf": [
369
+ {
370
+ "properties": {
371
+ "kind": {
372
+ "enum": [
373
+ "root"
374
+ ],
375
+ "type": "string"
376
+ }
377
+ },
378
+ "required": [
379
+ "kind"
380
+ ],
381
+ "title": "RootFileSystemSpecialPath",
382
+ "type": "object"
383
+ },
384
+ {
385
+ "properties": {
386
+ "kind": {
387
+ "enum": [
388
+ "minimal"
389
+ ],
390
+ "type": "string"
391
+ }
392
+ },
393
+ "required": [
394
+ "kind"
395
+ ],
396
+ "title": "MinimalFileSystemSpecialPath",
397
+ "type": "object"
398
+ },
399
+ {
400
+ "properties": {
401
+ "kind": {
402
+ "enum": [
403
+ "project_roots"
404
+ ],
405
+ "type": "string"
406
+ },
407
+ "subpath": {
408
+ "anyOf": [
409
+ {
410
+ "$ref": "#/definitions/LegacyAppPathString"
411
+ },
412
+ {
413
+ "type": "null"
414
+ }
415
+ ]
416
+ }
417
+ },
418
+ "required": [
419
+ "kind"
420
+ ],
421
+ "title": "KindFileSystemSpecialPath",
422
+ "type": "object"
423
+ },
424
+ {
425
+ "properties": {
426
+ "kind": {
427
+ "enum": [
428
+ "tmpdir"
429
+ ],
430
+ "type": "string"
431
+ }
432
+ },
433
+ "required": [
434
+ "kind"
435
+ ],
436
+ "title": "TmpdirFileSystemSpecialPath",
437
+ "type": "object"
438
+ },
439
+ {
440
+ "properties": {
441
+ "kind": {
442
+ "enum": [
443
+ "slash_tmp"
444
+ ],
445
+ "type": "string"
446
+ }
447
+ },
448
+ "required": [
449
+ "kind"
450
+ ],
451
+ "title": "SlashTmpFileSystemSpecialPath",
452
+ "type": "object"
453
+ },
454
+ {
455
+ "properties": {
456
+ "kind": {
457
+ "enum": [
458
+ "unknown"
459
+ ],
460
+ "type": "string"
461
+ },
462
+ "path": {
463
+ "type": "string"
464
+ },
465
+ "subpath": {
466
+ "anyOf": [
467
+ {
468
+ "$ref": "#/definitions/LegacyAppPathString"
469
+ },
470
+ {
471
+ "type": "null"
472
+ }
473
+ ]
474
+ }
475
+ },
476
+ "required": [
477
+ "kind",
478
+ "path"
479
+ ],
480
+ "type": "object"
481
+ }
482
+ ]
483
+ },
484
+ "LegacyAppPathString": {
485
+ "type": "string"
486
+ },
487
+ "NetworkApprovalContext": {
488
+ "properties": {
489
+ "host": {
490
+ "type": "string"
491
+ },
492
+ "protocol": {
493
+ "$ref": "#/definitions/NetworkApprovalProtocol"
494
+ }
495
+ },
496
+ "required": [
497
+ "host",
498
+ "protocol"
499
+ ],
500
+ "type": "object"
501
+ },
502
+ "NetworkApprovalProtocol": {
503
+ "enum": [
504
+ "http",
505
+ "https",
506
+ "socks5Tcp",
507
+ "socks5Udp"
508
+ ],
509
+ "type": "string"
510
+ },
511
+ "NetworkPolicyAmendment": {
512
+ "properties": {
513
+ "action": {
514
+ "$ref": "#/definitions/NetworkPolicyRuleAction"
515
+ },
516
+ "host": {
517
+ "type": "string"
518
+ }
519
+ },
520
+ "required": [
521
+ "action",
522
+ "host"
523
+ ],
524
+ "type": "object"
525
+ },
526
+ "NetworkPolicyRuleAction": {
527
+ "enum": [
528
+ "allow",
529
+ "deny"
530
+ ],
531
+ "type": "string"
532
+ }
533
+ },
534
+ "properties": {
535
+ "approvalId": {
536
+ "description": "Unique identifier for this specific approval callback.\n\nFor regular shell/unified_exec approvals, this is null.\n\nFor zsh-exec-bridge subcommand approvals, multiple callbacks can belong to one parent `itemId`, so `approvalId` is a distinct opaque callback id (a UUID) used to disambiguate routing. Stdin approvals also use a distinct callback id; inspect `kind` to distinguish them.",
537
+ "type": [
538
+ "string",
539
+ "null"
540
+ ]
541
+ },
542
+ "command": {
543
+ "description": "The command to be executed.",
544
+ "type": [
545
+ "string",
546
+ "null"
547
+ ]
548
+ },
549
+ "commandActions": {
550
+ "description": "Best-effort parsed command actions for friendly display.",
551
+ "items": {
552
+ "$ref": "#/definitions/CommandAction"
553
+ },
554
+ "type": [
555
+ "array",
556
+ "null"
557
+ ]
558
+ },
559
+ "cwd": {
560
+ "anyOf": [
561
+ {
562
+ "$ref": "#/definitions/LegacyAppPathString"
563
+ },
564
+ {
565
+ "type": "null"
566
+ }
567
+ ],
568
+ "description": "The command's working directory."
569
+ },
570
+ "environmentId": {
571
+ "default": null,
572
+ "description": "Environment in which the command will run.",
573
+ "type": [
574
+ "string",
575
+ "null"
576
+ ]
577
+ },
578
+ "itemId": {
579
+ "type": "string"
580
+ },
581
+ "kind": {
582
+ "allOf": [
583
+ {
584
+ "$ref": "#/definitions/CommandExecutionApprovalKind"
585
+ }
586
+ ],
587
+ "default": "command",
588
+ "description": "Kind of action under review. Defaults to `command` for older servers."
589
+ },
590
+ "networkApprovalContext": {
591
+ "anyOf": [
592
+ {
593
+ "$ref": "#/definitions/NetworkApprovalContext"
594
+ },
595
+ {
596
+ "type": "null"
597
+ }
598
+ ],
599
+ "description": "Optional context for a managed-network approval prompt."
600
+ },
601
+ "proposedExecpolicyAmendment": {
602
+ "description": "Optional proposed execpolicy amendment to allow similar commands without prompting.",
603
+ "items": {
604
+ "type": "string"
605
+ },
606
+ "type": [
607
+ "array",
608
+ "null"
609
+ ]
610
+ },
611
+ "proposedNetworkPolicyAmendments": {
612
+ "description": "Optional proposed network policy amendments (allow/deny host) for future requests.",
613
+ "items": {
614
+ "$ref": "#/definitions/NetworkPolicyAmendment"
615
+ },
616
+ "type": [
617
+ "array",
618
+ "null"
619
+ ]
620
+ },
621
+ "reason": {
622
+ "description": "Optional explanatory reason (e.g. request for network access).",
623
+ "type": [
624
+ "string",
625
+ "null"
626
+ ]
627
+ },
628
+ "startedAtMs": {
629
+ "description": "Unix timestamp (in milliseconds) when this approval request started.",
630
+ "format": "int64",
631
+ "type": "integer"
632
+ },
633
+ "threadId": {
634
+ "type": "string"
635
+ },
636
+ "turnId": {
637
+ "type": "string"
638
+ }
639
+ },
640
+ "required": [
641
+ "itemId",
642
+ "startedAtMs",
643
+ "threadId",
644
+ "turnId"
645
+ ],
646
+ "title": "CommandExecutionRequestApprovalParams",
647
+ "type": "object"
648
+ }
codex-rs/app-server-protocol/schema/json/DynamicToolCallParams.json ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "properties": {
4
+ "arguments": true,
5
+ "callId": {
6
+ "type": "string"
7
+ },
8
+ "namespace": {
9
+ "type": [
10
+ "string",
11
+ "null"
12
+ ]
13
+ },
14
+ "threadId": {
15
+ "type": "string"
16
+ },
17
+ "tool": {
18
+ "type": "string"
19
+ },
20
+ "turnId": {
21
+ "type": "string"
22
+ }
23
+ },
24
+ "required": [
25
+ "arguments",
26
+ "callId",
27
+ "threadId",
28
+ "tool",
29
+ "turnId"
30
+ ],
31
+ "title": "DynamicToolCallParams",
32
+ "type": "object"
33
+ }
codex-rs/app-server-protocol/schema/json/DynamicToolCallResponse.json ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "DynamicToolCallOutputContentItem": {
5
+ "oneOf": [
6
+ {
7
+ "properties": {
8
+ "text": {
9
+ "type": "string"
10
+ },
11
+ "type": {
12
+ "enum": [
13
+ "inputText"
14
+ ],
15
+ "title": "InputTextDynamicToolCallOutputContentItemType",
16
+ "type": "string"
17
+ }
18
+ },
19
+ "required": [
20
+ "text",
21
+ "type"
22
+ ],
23
+ "title": "InputTextDynamicToolCallOutputContentItem",
24
+ "type": "object"
25
+ },
26
+ {
27
+ "properties": {
28
+ "imageUrl": {
29
+ "type": "string"
30
+ },
31
+ "type": {
32
+ "enum": [
33
+ "inputImage"
34
+ ],
35
+ "title": "InputImageDynamicToolCallOutputContentItemType",
36
+ "type": "string"
37
+ }
38
+ },
39
+ "required": [
40
+ "imageUrl",
41
+ "type"
42
+ ],
43
+ "title": "InputImageDynamicToolCallOutputContentItem",
44
+ "type": "object"
45
+ },
46
+ {
47
+ "properties": {
48
+ "audioUrl": {
49
+ "type": "string"
50
+ },
51
+ "type": {
52
+ "enum": [
53
+ "inputAudio"
54
+ ],
55
+ "title": "InputAudioDynamicToolCallOutputContentItemType",
56
+ "type": "string"
57
+ }
58
+ },
59
+ "required": [
60
+ "audioUrl",
61
+ "type"
62
+ ],
63
+ "title": "InputAudioDynamicToolCallOutputContentItem",
64
+ "type": "object"
65
+ }
66
+ ]
67
+ }
68
+ },
69
+ "properties": {
70
+ "contentItems": {
71
+ "items": {
72
+ "$ref": "#/definitions/DynamicToolCallOutputContentItem"
73
+ },
74
+ "type": "array"
75
+ },
76
+ "success": {
77
+ "type": "boolean"
78
+ }
79
+ },
80
+ "required": [
81
+ "contentItems",
82
+ "success"
83
+ ],
84
+ "title": "DynamicToolCallResponse",
85
+ "type": "object"
86
+ }
codex-rs/app-server-protocol/schema/json/ExecCommandApprovalParams.json ADDED
@@ -0,0 +1,165 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "ParsedCommand": {
5
+ "oneOf": [
6
+ {
7
+ "properties": {
8
+ "cmd": {
9
+ "type": "string"
10
+ },
11
+ "name": {
12
+ "type": "string"
13
+ },
14
+ "path": {
15
+ "description": "(Best effort) Path to the file being read by the command. When possible, this is an absolute path, though when relative, it should be resolved against the `cwd`` that will be used to run the command to derive the absolute path.",
16
+ "type": "string"
17
+ },
18
+ "type": {
19
+ "enum": [
20
+ "read"
21
+ ],
22
+ "title": "ReadParsedCommandType",
23
+ "type": "string"
24
+ }
25
+ },
26
+ "required": [
27
+ "cmd",
28
+ "name",
29
+ "path",
30
+ "type"
31
+ ],
32
+ "title": "ReadParsedCommand",
33
+ "type": "object"
34
+ },
35
+ {
36
+ "properties": {
37
+ "cmd": {
38
+ "type": "string"
39
+ },
40
+ "path": {
41
+ "type": [
42
+ "string",
43
+ "null"
44
+ ]
45
+ },
46
+ "type": {
47
+ "enum": [
48
+ "list_files"
49
+ ],
50
+ "title": "ListFilesParsedCommandType",
51
+ "type": "string"
52
+ }
53
+ },
54
+ "required": [
55
+ "cmd",
56
+ "type"
57
+ ],
58
+ "title": "ListFilesParsedCommand",
59
+ "type": "object"
60
+ },
61
+ {
62
+ "properties": {
63
+ "cmd": {
64
+ "type": "string"
65
+ },
66
+ "path": {
67
+ "type": [
68
+ "string",
69
+ "null"
70
+ ]
71
+ },
72
+ "query": {
73
+ "type": [
74
+ "string",
75
+ "null"
76
+ ]
77
+ },
78
+ "type": {
79
+ "enum": [
80
+ "search"
81
+ ],
82
+ "title": "SearchParsedCommandType",
83
+ "type": "string"
84
+ }
85
+ },
86
+ "required": [
87
+ "cmd",
88
+ "type"
89
+ ],
90
+ "title": "SearchParsedCommand",
91
+ "type": "object"
92
+ },
93
+ {
94
+ "properties": {
95
+ "cmd": {
96
+ "type": "string"
97
+ },
98
+ "type": {
99
+ "enum": [
100
+ "unknown"
101
+ ],
102
+ "title": "UnknownParsedCommandType",
103
+ "type": "string"
104
+ }
105
+ },
106
+ "required": [
107
+ "cmd",
108
+ "type"
109
+ ],
110
+ "title": "UnknownParsedCommand",
111
+ "type": "object"
112
+ }
113
+ ]
114
+ },
115
+ "ThreadId": {
116
+ "type": "string"
117
+ }
118
+ },
119
+ "properties": {
120
+ "approvalId": {
121
+ "description": "Identifier for this specific approval callback.",
122
+ "type": [
123
+ "string",
124
+ "null"
125
+ ]
126
+ },
127
+ "callId": {
128
+ "description": "Use to correlate this with [codex_protocol::protocol::ExecCommandBeginEvent] and [codex_protocol::protocol::ExecCommandEndEvent].",
129
+ "type": "string"
130
+ },
131
+ "command": {
132
+ "items": {
133
+ "type": "string"
134
+ },
135
+ "type": "array"
136
+ },
137
+ "conversationId": {
138
+ "$ref": "#/definitions/ThreadId"
139
+ },
140
+ "cwd": {
141
+ "type": "string"
142
+ },
143
+ "parsedCmd": {
144
+ "items": {
145
+ "$ref": "#/definitions/ParsedCommand"
146
+ },
147
+ "type": "array"
148
+ },
149
+ "reason": {
150
+ "type": [
151
+ "string",
152
+ "null"
153
+ ]
154
+ }
155
+ },
156
+ "required": [
157
+ "callId",
158
+ "command",
159
+ "conversationId",
160
+ "cwd",
161
+ "parsedCmd"
162
+ ],
163
+ "title": "ExecCommandApprovalParams",
164
+ "type": "object"
165
+ }
codex-rs/app-server-protocol/schema/json/FileChangeRequestApprovalParams.json ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "properties": {
4
+ "grantRoot": {
5
+ "description": "[UNSTABLE] When set, the agent is asking the user to allow writes under this root for the remainder of the session (unclear if this is honored today).",
6
+ "type": [
7
+ "string",
8
+ "null"
9
+ ]
10
+ },
11
+ "itemId": {
12
+ "type": "string"
13
+ },
14
+ "reason": {
15
+ "description": "Optional explanatory reason (e.g. request for extra write access).",
16
+ "type": [
17
+ "string",
18
+ "null"
19
+ ]
20
+ },
21
+ "startedAtMs": {
22
+ "description": "Unix timestamp (in milliseconds) when this approval request started.",
23
+ "format": "int64",
24
+ "type": "integer"
25
+ },
26
+ "threadId": {
27
+ "type": "string"
28
+ },
29
+ "turnId": {
30
+ "type": "string"
31
+ }
32
+ },
33
+ "required": [
34
+ "itemId",
35
+ "startedAtMs",
36
+ "threadId",
37
+ "turnId"
38
+ ],
39
+ "title": "FileChangeRequestApprovalParams",
40
+ "type": "object"
41
+ }
codex-rs/app-server-protocol/schema/json/FuzzyFileSearchResponse.json ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "FuzzyFileSearchMatchType": {
5
+ "enum": [
6
+ "file",
7
+ "directory"
8
+ ],
9
+ "type": "string"
10
+ },
11
+ "FuzzyFileSearchResult": {
12
+ "description": "Superset of [`codex_file_search::FileMatch`]",
13
+ "properties": {
14
+ "file_name": {
15
+ "type": "string"
16
+ },
17
+ "indices": {
18
+ "items": {
19
+ "format": "uint32",
20
+ "minimum": 0.0,
21
+ "type": "integer"
22
+ },
23
+ "type": [
24
+ "array",
25
+ "null"
26
+ ]
27
+ },
28
+ "match_type": {
29
+ "$ref": "#/definitions/FuzzyFileSearchMatchType"
30
+ },
31
+ "path": {
32
+ "type": "string"
33
+ },
34
+ "root": {
35
+ "type": "string"
36
+ },
37
+ "score": {
38
+ "format": "uint32",
39
+ "minimum": 0.0,
40
+ "type": "integer"
41
+ }
42
+ },
43
+ "required": [
44
+ "file_name",
45
+ "match_type",
46
+ "path",
47
+ "root",
48
+ "score"
49
+ ],
50
+ "type": "object"
51
+ }
52
+ },
53
+ "properties": {
54
+ "files": {
55
+ "items": {
56
+ "$ref": "#/definitions/FuzzyFileSearchResult"
57
+ },
58
+ "type": "array"
59
+ }
60
+ },
61
+ "required": [
62
+ "files"
63
+ ],
64
+ "title": "FuzzyFileSearchResponse",
65
+ "type": "object"
66
+ }
codex-rs/app-server-protocol/schema/json/FuzzyFileSearchSessionCompletedNotification.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "properties": {
4
+ "sessionId": {
5
+ "type": "string"
6
+ }
7
+ },
8
+ "required": [
9
+ "sessionId"
10
+ ],
11
+ "title": "FuzzyFileSearchSessionCompletedNotification",
12
+ "type": "object"
13
+ }
codex-rs/app-server-protocol/schema/json/JSONRPCErrorError.json ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "properties": {
4
+ "code": {
5
+ "format": "int64",
6
+ "type": "integer"
7
+ },
8
+ "data": true,
9
+ "message": {
10
+ "type": "string"
11
+ }
12
+ },
13
+ "required": [
14
+ "code",
15
+ "message"
16
+ ],
17
+ "title": "JSONRPCErrorError",
18
+ "type": "object"
19
+ }
codex-rs/app-server-protocol/schema/json/JSONRPCMessage.json ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "anyOf": [
4
+ {
5
+ "$ref": "#/definitions/JSONRPCRequest"
6
+ },
7
+ {
8
+ "$ref": "#/definitions/JSONRPCNotification"
9
+ },
10
+ {
11
+ "$ref": "#/definitions/JSONRPCResponse"
12
+ },
13
+ {
14
+ "$ref": "#/definitions/JSONRPCError"
15
+ }
16
+ ],
17
+ "definitions": {
18
+ "JSONRPCError": {
19
+ "description": "A response to a request that indicates an error occurred.",
20
+ "properties": {
21
+ "error": {
22
+ "$ref": "#/definitions/JSONRPCErrorError"
23
+ },
24
+ "id": {
25
+ "$ref": "#/definitions/RequestId"
26
+ }
27
+ },
28
+ "required": [
29
+ "error",
30
+ "id"
31
+ ],
32
+ "type": "object"
33
+ },
34
+ "JSONRPCErrorError": {
35
+ "properties": {
36
+ "code": {
37
+ "format": "int64",
38
+ "type": "integer"
39
+ },
40
+ "data": true,
41
+ "message": {
42
+ "type": "string"
43
+ }
44
+ },
45
+ "required": [
46
+ "code",
47
+ "message"
48
+ ],
49
+ "type": "object"
50
+ },
51
+ "JSONRPCNotification": {
52
+ "description": "A notification which does not expect a response.",
53
+ "properties": {
54
+ "method": {
55
+ "type": "string"
56
+ },
57
+ "params": true
58
+ },
59
+ "required": [
60
+ "method"
61
+ ],
62
+ "type": "object"
63
+ },
64
+ "JSONRPCRequest": {
65
+ "description": "A request that expects a response.",
66
+ "properties": {
67
+ "id": {
68
+ "$ref": "#/definitions/RequestId"
69
+ },
70
+ "method": {
71
+ "type": "string"
72
+ },
73
+ "params": true,
74
+ "trace": {
75
+ "anyOf": [
76
+ {
77
+ "$ref": "#/definitions/W3cTraceContext"
78
+ },
79
+ {
80
+ "type": "null"
81
+ }
82
+ ],
83
+ "description": "Optional W3C Trace Context for distributed tracing."
84
+ }
85
+ },
86
+ "required": [
87
+ "id",
88
+ "method"
89
+ ],
90
+ "type": "object"
91
+ },
92
+ "JSONRPCResponse": {
93
+ "description": "A successful (non-error) response to a request.",
94
+ "properties": {
95
+ "id": {
96
+ "$ref": "#/definitions/RequestId"
97
+ },
98
+ "result": true
99
+ },
100
+ "required": [
101
+ "id",
102
+ "result"
103
+ ],
104
+ "type": "object"
105
+ },
106
+ "RequestId": {
107
+ "anyOf": [
108
+ {
109
+ "type": "string"
110
+ },
111
+ {
112
+ "format": "int64",
113
+ "type": "integer"
114
+ }
115
+ ]
116
+ },
117
+ "W3cTraceContext": {
118
+ "properties": {
119
+ "traceparent": {
120
+ "type": [
121
+ "string",
122
+ "null"
123
+ ]
124
+ },
125
+ "tracestate": {
126
+ "type": [
127
+ "string",
128
+ "null"
129
+ ]
130
+ }
131
+ },
132
+ "type": "object"
133
+ }
134
+ },
135
+ "description": "Refers to any valid JSON-RPC object that can be decoded off the wire, or encoded to be sent.",
136
+ "title": "JSONRPCMessage"
137
+ }
codex-rs/app-server-protocol/schema/json/JSONRPCResponse.json ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "RequestId": {
5
+ "anyOf": [
6
+ {
7
+ "type": "string"
8
+ },
9
+ {
10
+ "format": "int64",
11
+ "type": "integer"
12
+ }
13
+ ]
14
+ }
15
+ },
16
+ "description": "A successful (non-error) response to a request.",
17
+ "properties": {
18
+ "id": {
19
+ "$ref": "#/definitions/RequestId"
20
+ },
21
+ "result": true
22
+ },
23
+ "required": [
24
+ "id",
25
+ "result"
26
+ ],
27
+ "title": "JSONRPCResponse",
28
+ "type": "object"
29
+ }
codex-rs/app-server-protocol/schema/json/McpServerElicitationRequestParams.json ADDED
@@ -0,0 +1,651 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "McpElicitationArrayType": {
5
+ "enum": [
6
+ "array"
7
+ ],
8
+ "type": "string"
9
+ },
10
+ "McpElicitationBooleanSchema": {
11
+ "additionalProperties": false,
12
+ "properties": {
13
+ "default": {
14
+ "type": [
15
+ "boolean",
16
+ "null"
17
+ ]
18
+ },
19
+ "description": {
20
+ "type": [
21
+ "string",
22
+ "null"
23
+ ]
24
+ },
25
+ "title": {
26
+ "type": [
27
+ "string",
28
+ "null"
29
+ ]
30
+ },
31
+ "type": {
32
+ "$ref": "#/definitions/McpElicitationBooleanType"
33
+ }
34
+ },
35
+ "required": [
36
+ "type"
37
+ ],
38
+ "type": "object"
39
+ },
40
+ "McpElicitationBooleanType": {
41
+ "enum": [
42
+ "boolean"
43
+ ],
44
+ "type": "string"
45
+ },
46
+ "McpElicitationConstOption": {
47
+ "additionalProperties": false,
48
+ "properties": {
49
+ "const": {
50
+ "type": "string"
51
+ },
52
+ "title": {
53
+ "type": "string"
54
+ }
55
+ },
56
+ "required": [
57
+ "const",
58
+ "title"
59
+ ],
60
+ "type": "object"
61
+ },
62
+ "McpElicitationEnumSchema": {
63
+ "anyOf": [
64
+ {
65
+ "$ref": "#/definitions/McpElicitationSingleSelectEnumSchema"
66
+ },
67
+ {
68
+ "$ref": "#/definitions/McpElicitationMultiSelectEnumSchema"
69
+ },
70
+ {
71
+ "$ref": "#/definitions/McpElicitationLegacyTitledEnumSchema"
72
+ }
73
+ ]
74
+ },
75
+ "McpElicitationLegacyTitledEnumSchema": {
76
+ "additionalProperties": false,
77
+ "properties": {
78
+ "default": {
79
+ "type": [
80
+ "string",
81
+ "null"
82
+ ]
83
+ },
84
+ "description": {
85
+ "type": [
86
+ "string",
87
+ "null"
88
+ ]
89
+ },
90
+ "enum": {
91
+ "items": {
92
+ "type": "string"
93
+ },
94
+ "type": "array"
95
+ },
96
+ "enumNames": {
97
+ "items": {
98
+ "type": "string"
99
+ },
100
+ "type": [
101
+ "array",
102
+ "null"
103
+ ]
104
+ },
105
+ "title": {
106
+ "type": [
107
+ "string",
108
+ "null"
109
+ ]
110
+ },
111
+ "type": {
112
+ "$ref": "#/definitions/McpElicitationStringType"
113
+ }
114
+ },
115
+ "required": [
116
+ "enum",
117
+ "type"
118
+ ],
119
+ "type": "object"
120
+ },
121
+ "McpElicitationMultiSelectEnumSchema": {
122
+ "anyOf": [
123
+ {
124
+ "$ref": "#/definitions/McpElicitationUntitledMultiSelectEnumSchema"
125
+ },
126
+ {
127
+ "$ref": "#/definitions/McpElicitationTitledMultiSelectEnumSchema"
128
+ }
129
+ ]
130
+ },
131
+ "McpElicitationNumberSchema": {
132
+ "additionalProperties": false,
133
+ "properties": {
134
+ "default": {
135
+ "format": "double",
136
+ "type": [
137
+ "number",
138
+ "null"
139
+ ]
140
+ },
141
+ "description": {
142
+ "type": [
143
+ "string",
144
+ "null"
145
+ ]
146
+ },
147
+ "maximum": {
148
+ "format": "double",
149
+ "type": [
150
+ "number",
151
+ "null"
152
+ ]
153
+ },
154
+ "minimum": {
155
+ "format": "double",
156
+ "type": [
157
+ "number",
158
+ "null"
159
+ ]
160
+ },
161
+ "title": {
162
+ "type": [
163
+ "string",
164
+ "null"
165
+ ]
166
+ },
167
+ "type": {
168
+ "$ref": "#/definitions/McpElicitationNumberType"
169
+ }
170
+ },
171
+ "required": [
172
+ "type"
173
+ ],
174
+ "type": "object"
175
+ },
176
+ "McpElicitationNumberType": {
177
+ "enum": [
178
+ "number",
179
+ "integer"
180
+ ],
181
+ "type": "string"
182
+ },
183
+ "McpElicitationObjectType": {
184
+ "enum": [
185
+ "object"
186
+ ],
187
+ "type": "string"
188
+ },
189
+ "McpElicitationPrimitiveSchema": {
190
+ "anyOf": [
191
+ {
192
+ "$ref": "#/definitions/McpElicitationEnumSchema"
193
+ },
194
+ {
195
+ "$ref": "#/definitions/McpElicitationStringSchema"
196
+ },
197
+ {
198
+ "$ref": "#/definitions/McpElicitationNumberSchema"
199
+ },
200
+ {
201
+ "$ref": "#/definitions/McpElicitationBooleanSchema"
202
+ }
203
+ ]
204
+ },
205
+ "McpElicitationSchema": {
206
+ "additionalProperties": false,
207
+ "description": "Typed form schema for MCP `elicitation/create` requests.\n\nThis matches the `requestedSchema` shape from the MCP 2025-11-25 `ElicitRequestFormParams` schema.",
208
+ "properties": {
209
+ "$schema": {
210
+ "type": [
211
+ "string",
212
+ "null"
213
+ ]
214
+ },
215
+ "properties": {
216
+ "additionalProperties": {
217
+ "$ref": "#/definitions/McpElicitationPrimitiveSchema"
218
+ },
219
+ "type": "object"
220
+ },
221
+ "required": {
222
+ "items": {
223
+ "type": "string"
224
+ },
225
+ "type": [
226
+ "array",
227
+ "null"
228
+ ]
229
+ },
230
+ "type": {
231
+ "$ref": "#/definitions/McpElicitationObjectType"
232
+ }
233
+ },
234
+ "required": [
235
+ "properties",
236
+ "type"
237
+ ],
238
+ "type": "object"
239
+ },
240
+ "McpElicitationSingleSelectEnumSchema": {
241
+ "anyOf": [
242
+ {
243
+ "$ref": "#/definitions/McpElicitationUntitledSingleSelectEnumSchema"
244
+ },
245
+ {
246
+ "$ref": "#/definitions/McpElicitationTitledSingleSelectEnumSchema"
247
+ }
248
+ ]
249
+ },
250
+ "McpElicitationStringFormat": {
251
+ "enum": [
252
+ "email",
253
+ "uri",
254
+ "date",
255
+ "date-time"
256
+ ],
257
+ "type": "string"
258
+ },
259
+ "McpElicitationStringSchema": {
260
+ "additionalProperties": false,
261
+ "properties": {
262
+ "default": {
263
+ "type": [
264
+ "string",
265
+ "null"
266
+ ]
267
+ },
268
+ "description": {
269
+ "type": [
270
+ "string",
271
+ "null"
272
+ ]
273
+ },
274
+ "format": {
275
+ "anyOf": [
276
+ {
277
+ "$ref": "#/definitions/McpElicitationStringFormat"
278
+ },
279
+ {
280
+ "type": "null"
281
+ }
282
+ ]
283
+ },
284
+ "maxLength": {
285
+ "format": "uint32",
286
+ "minimum": 0.0,
287
+ "type": [
288
+ "integer",
289
+ "null"
290
+ ]
291
+ },
292
+ "minLength": {
293
+ "format": "uint32",
294
+ "minimum": 0.0,
295
+ "type": [
296
+ "integer",
297
+ "null"
298
+ ]
299
+ },
300
+ "title": {
301
+ "type": [
302
+ "string",
303
+ "null"
304
+ ]
305
+ },
306
+ "type": {
307
+ "$ref": "#/definitions/McpElicitationStringType"
308
+ }
309
+ },
310
+ "required": [
311
+ "type"
312
+ ],
313
+ "type": "object"
314
+ },
315
+ "McpElicitationStringType": {
316
+ "enum": [
317
+ "string"
318
+ ],
319
+ "type": "string"
320
+ },
321
+ "McpElicitationTitledEnumItems": {
322
+ "additionalProperties": false,
323
+ "properties": {
324
+ "anyOf": {
325
+ "items": {
326
+ "$ref": "#/definitions/McpElicitationConstOption"
327
+ },
328
+ "type": "array"
329
+ }
330
+ },
331
+ "required": [
332
+ "anyOf"
333
+ ],
334
+ "type": "object"
335
+ },
336
+ "McpElicitationTitledMultiSelectEnumSchema": {
337
+ "additionalProperties": false,
338
+ "properties": {
339
+ "default": {
340
+ "items": {
341
+ "type": "string"
342
+ },
343
+ "type": [
344
+ "array",
345
+ "null"
346
+ ]
347
+ },
348
+ "description": {
349
+ "type": [
350
+ "string",
351
+ "null"
352
+ ]
353
+ },
354
+ "items": {
355
+ "$ref": "#/definitions/McpElicitationTitledEnumItems"
356
+ },
357
+ "maxItems": {
358
+ "format": "uint64",
359
+ "minimum": 0.0,
360
+ "type": [
361
+ "integer",
362
+ "null"
363
+ ]
364
+ },
365
+ "minItems": {
366
+ "format": "uint64",
367
+ "minimum": 0.0,
368
+ "type": [
369
+ "integer",
370
+ "null"
371
+ ]
372
+ },
373
+ "title": {
374
+ "type": [
375
+ "string",
376
+ "null"
377
+ ]
378
+ },
379
+ "type": {
380
+ "$ref": "#/definitions/McpElicitationArrayType"
381
+ }
382
+ },
383
+ "required": [
384
+ "items",
385
+ "type"
386
+ ],
387
+ "type": "object"
388
+ },
389
+ "McpElicitationTitledSingleSelectEnumSchema": {
390
+ "additionalProperties": false,
391
+ "properties": {
392
+ "default": {
393
+ "type": [
394
+ "string",
395
+ "null"
396
+ ]
397
+ },
398
+ "description": {
399
+ "type": [
400
+ "string",
401
+ "null"
402
+ ]
403
+ },
404
+ "oneOf": {
405
+ "items": {
406
+ "$ref": "#/definitions/McpElicitationConstOption"
407
+ },
408
+ "type": "array"
409
+ },
410
+ "title": {
411
+ "type": [
412
+ "string",
413
+ "null"
414
+ ]
415
+ },
416
+ "type": {
417
+ "$ref": "#/definitions/McpElicitationStringType"
418
+ }
419
+ },
420
+ "required": [
421
+ "oneOf",
422
+ "type"
423
+ ],
424
+ "type": "object"
425
+ },
426
+ "McpElicitationUntitledEnumItems": {
427
+ "additionalProperties": false,
428
+ "properties": {
429
+ "enum": {
430
+ "items": {
431
+ "type": "string"
432
+ },
433
+ "type": "array"
434
+ },
435
+ "type": {
436
+ "$ref": "#/definitions/McpElicitationStringType"
437
+ }
438
+ },
439
+ "required": [
440
+ "enum",
441
+ "type"
442
+ ],
443
+ "type": "object"
444
+ },
445
+ "McpElicitationUntitledMultiSelectEnumSchema": {
446
+ "additionalProperties": false,
447
+ "properties": {
448
+ "default": {
449
+ "items": {
450
+ "type": "string"
451
+ },
452
+ "type": [
453
+ "array",
454
+ "null"
455
+ ]
456
+ },
457
+ "description": {
458
+ "type": [
459
+ "string",
460
+ "null"
461
+ ]
462
+ },
463
+ "items": {
464
+ "$ref": "#/definitions/McpElicitationUntitledEnumItems"
465
+ },
466
+ "maxItems": {
467
+ "format": "uint64",
468
+ "minimum": 0.0,
469
+ "type": [
470
+ "integer",
471
+ "null"
472
+ ]
473
+ },
474
+ "minItems": {
475
+ "format": "uint64",
476
+ "minimum": 0.0,
477
+ "type": [
478
+ "integer",
479
+ "null"
480
+ ]
481
+ },
482
+ "title": {
483
+ "type": [
484
+ "string",
485
+ "null"
486
+ ]
487
+ },
488
+ "type": {
489
+ "$ref": "#/definitions/McpElicitationArrayType"
490
+ }
491
+ },
492
+ "required": [
493
+ "items",
494
+ "type"
495
+ ],
496
+ "type": "object"
497
+ },
498
+ "McpElicitationUntitledSingleSelectEnumSchema": {
499
+ "additionalProperties": false,
500
+ "properties": {
501
+ "default": {
502
+ "type": [
503
+ "string",
504
+ "null"
505
+ ]
506
+ },
507
+ "description": {
508
+ "type": [
509
+ "string",
510
+ "null"
511
+ ]
512
+ },
513
+ "enum": {
514
+ "items": {
515
+ "type": "string"
516
+ },
517
+ "type": "array"
518
+ },
519
+ "title": {
520
+ "type": [
521
+ "string",
522
+ "null"
523
+ ]
524
+ },
525
+ "type": {
526
+ "$ref": "#/definitions/McpElicitationStringType"
527
+ }
528
+ },
529
+ "required": [
530
+ "enum",
531
+ "type"
532
+ ],
533
+ "type": "object"
534
+ }
535
+ },
536
+ "oneOf": [
537
+ {
538
+ "properties": {
539
+ "_meta": true,
540
+ "message": {
541
+ "type": "string"
542
+ },
543
+ "mode": {
544
+ "enum": [
545
+ "form"
546
+ ],
547
+ "type": "string"
548
+ },
549
+ "requestedSchema": {
550
+ "$ref": "#/definitions/McpElicitationSchema"
551
+ }
552
+ },
553
+ "required": [
554
+ "message",
555
+ "mode",
556
+ "requestedSchema"
557
+ ],
558
+ "type": "object"
559
+ },
560
+ {
561
+ "properties": {
562
+ "_meta": true,
563
+ "message": {
564
+ "type": "string"
565
+ },
566
+ "mode": {
567
+ "enum": [
568
+ "openai/form"
569
+ ],
570
+ "type": "string"
571
+ },
572
+ "requestedSchema": true
573
+ },
574
+ "required": [
575
+ "message",
576
+ "mode",
577
+ "requestedSchema"
578
+ ],
579
+ "type": "object"
580
+ },
581
+ {
582
+ "properties": {
583
+ "_meta": true,
584
+ "message": {
585
+ "type": "string"
586
+ },
587
+ "mode": {
588
+ "enum": [
589
+ "openaiForm"
590
+ ],
591
+ "type": "string"
592
+ },
593
+ "requestedSchema": true
594
+ },
595
+ "required": [
596
+ "message",
597
+ "mode",
598
+ "requestedSchema"
599
+ ],
600
+ "type": "object"
601
+ },
602
+ {
603
+ "properties": {
604
+ "_meta": true,
605
+ "elicitationId": {
606
+ "type": "string"
607
+ },
608
+ "message": {
609
+ "type": "string"
610
+ },
611
+ "mode": {
612
+ "enum": [
613
+ "url"
614
+ ],
615
+ "type": "string"
616
+ },
617
+ "url": {
618
+ "type": "string"
619
+ }
620
+ },
621
+ "required": [
622
+ "elicitationId",
623
+ "message",
624
+ "mode",
625
+ "url"
626
+ ],
627
+ "type": "object"
628
+ }
629
+ ],
630
+ "properties": {
631
+ "serverName": {
632
+ "type": "string"
633
+ },
634
+ "threadId": {
635
+ "type": "string"
636
+ },
637
+ "turnId": {
638
+ "description": "Active Codex turn when this elicitation was observed, if app-server could correlate one.\n\nThis is nullable because MCP models elicitation as a standalone server-to-client request identified by the MCP server request id. It may be triggered during a turn, but turn context is app-server correlation rather than part of the protocol identity of the elicitation itself.",
639
+ "type": [
640
+ "string",
641
+ "null"
642
+ ]
643
+ }
644
+ },
645
+ "required": [
646
+ "serverName",
647
+ "threadId"
648
+ ],
649
+ "title": "McpServerElicitationRequestParams",
650
+ "type": "object"
651
+ }
codex-rs/app-server-protocol/schema/json/PermissionsRequestApprovalParams.json ADDED
@@ -0,0 +1,336 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "AdditionalFileSystemPermissions": {
5
+ "properties": {
6
+ "entries": {
7
+ "items": {
8
+ "$ref": "#/definitions/FileSystemSandboxEntry"
9
+ },
10
+ "type": [
11
+ "array",
12
+ "null"
13
+ ]
14
+ },
15
+ "globScanMaxDepth": {
16
+ "format": "uint",
17
+ "minimum": 1.0,
18
+ "type": [
19
+ "integer",
20
+ "null"
21
+ ]
22
+ },
23
+ "read": {
24
+ "description": "This will be removed in favor of `entries`.",
25
+ "items": {
26
+ "$ref": "#/definitions/LegacyAppPathString"
27
+ },
28
+ "type": [
29
+ "array",
30
+ "null"
31
+ ]
32
+ },
33
+ "write": {
34
+ "description": "This will be removed in favor of `entries`.",
35
+ "items": {
36
+ "$ref": "#/definitions/LegacyAppPathString"
37
+ },
38
+ "type": [
39
+ "array",
40
+ "null"
41
+ ]
42
+ }
43
+ },
44
+ "type": "object"
45
+ },
46
+ "AdditionalNetworkPermissions": {
47
+ "properties": {
48
+ "enabled": {
49
+ "type": [
50
+ "boolean",
51
+ "null"
52
+ ]
53
+ }
54
+ },
55
+ "type": "object"
56
+ },
57
+ "FileSystemAccessMode": {
58
+ "enum": [
59
+ "read",
60
+ "write",
61
+ "deny"
62
+ ],
63
+ "type": "string"
64
+ },
65
+ "FileSystemPath": {
66
+ "oneOf": [
67
+ {
68
+ "properties": {
69
+ "path": {
70
+ "$ref": "#/definitions/LegacyAppPathString"
71
+ },
72
+ "type": {
73
+ "enum": [
74
+ "path"
75
+ ],
76
+ "title": "PathFileSystemPathType",
77
+ "type": "string"
78
+ }
79
+ },
80
+ "required": [
81
+ "path",
82
+ "type"
83
+ ],
84
+ "title": "PathFileSystemPath",
85
+ "type": "object"
86
+ },
87
+ {
88
+ "properties": {
89
+ "pattern": {
90
+ "type": "string"
91
+ },
92
+ "type": {
93
+ "enum": [
94
+ "glob_pattern"
95
+ ],
96
+ "title": "GlobPatternFileSystemPathType",
97
+ "type": "string"
98
+ }
99
+ },
100
+ "required": [
101
+ "pattern",
102
+ "type"
103
+ ],
104
+ "title": "GlobPatternFileSystemPath",
105
+ "type": "object"
106
+ },
107
+ {
108
+ "properties": {
109
+ "type": {
110
+ "enum": [
111
+ "special"
112
+ ],
113
+ "title": "SpecialFileSystemPathType",
114
+ "type": "string"
115
+ },
116
+ "value": {
117
+ "$ref": "#/definitions/FileSystemSpecialPath"
118
+ }
119
+ },
120
+ "required": [
121
+ "type",
122
+ "value"
123
+ ],
124
+ "title": "SpecialFileSystemPath",
125
+ "type": "object"
126
+ }
127
+ ]
128
+ },
129
+ "FileSystemSandboxEntry": {
130
+ "properties": {
131
+ "access": {
132
+ "$ref": "#/definitions/FileSystemAccessMode"
133
+ },
134
+ "path": {
135
+ "$ref": "#/definitions/FileSystemPath"
136
+ }
137
+ },
138
+ "required": [
139
+ "access",
140
+ "path"
141
+ ],
142
+ "type": "object"
143
+ },
144
+ "FileSystemSpecialPath": {
145
+ "oneOf": [
146
+ {
147
+ "properties": {
148
+ "kind": {
149
+ "enum": [
150
+ "root"
151
+ ],
152
+ "type": "string"
153
+ }
154
+ },
155
+ "required": [
156
+ "kind"
157
+ ],
158
+ "title": "RootFileSystemSpecialPath",
159
+ "type": "object"
160
+ },
161
+ {
162
+ "properties": {
163
+ "kind": {
164
+ "enum": [
165
+ "minimal"
166
+ ],
167
+ "type": "string"
168
+ }
169
+ },
170
+ "required": [
171
+ "kind"
172
+ ],
173
+ "title": "MinimalFileSystemSpecialPath",
174
+ "type": "object"
175
+ },
176
+ {
177
+ "properties": {
178
+ "kind": {
179
+ "enum": [
180
+ "project_roots"
181
+ ],
182
+ "type": "string"
183
+ },
184
+ "subpath": {
185
+ "anyOf": [
186
+ {
187
+ "$ref": "#/definitions/LegacyAppPathString"
188
+ },
189
+ {
190
+ "type": "null"
191
+ }
192
+ ]
193
+ }
194
+ },
195
+ "required": [
196
+ "kind"
197
+ ],
198
+ "title": "KindFileSystemSpecialPath",
199
+ "type": "object"
200
+ },
201
+ {
202
+ "properties": {
203
+ "kind": {
204
+ "enum": [
205
+ "tmpdir"
206
+ ],
207
+ "type": "string"
208
+ }
209
+ },
210
+ "required": [
211
+ "kind"
212
+ ],
213
+ "title": "TmpdirFileSystemSpecialPath",
214
+ "type": "object"
215
+ },
216
+ {
217
+ "properties": {
218
+ "kind": {
219
+ "enum": [
220
+ "slash_tmp"
221
+ ],
222
+ "type": "string"
223
+ }
224
+ },
225
+ "required": [
226
+ "kind"
227
+ ],
228
+ "title": "SlashTmpFileSystemSpecialPath",
229
+ "type": "object"
230
+ },
231
+ {
232
+ "properties": {
233
+ "kind": {
234
+ "enum": [
235
+ "unknown"
236
+ ],
237
+ "type": "string"
238
+ },
239
+ "path": {
240
+ "type": "string"
241
+ },
242
+ "subpath": {
243
+ "anyOf": [
244
+ {
245
+ "$ref": "#/definitions/LegacyAppPathString"
246
+ },
247
+ {
248
+ "type": "null"
249
+ }
250
+ ]
251
+ }
252
+ },
253
+ "required": [
254
+ "kind",
255
+ "path"
256
+ ],
257
+ "type": "object"
258
+ }
259
+ ]
260
+ },
261
+ "LegacyAppPathString": {
262
+ "type": "string"
263
+ },
264
+ "RequestPermissionProfile": {
265
+ "additionalProperties": false,
266
+ "properties": {
267
+ "fileSystem": {
268
+ "anyOf": [
269
+ {
270
+ "$ref": "#/definitions/AdditionalFileSystemPermissions"
271
+ },
272
+ {
273
+ "type": "null"
274
+ }
275
+ ]
276
+ },
277
+ "network": {
278
+ "anyOf": [
279
+ {
280
+ "$ref": "#/definitions/AdditionalNetworkPermissions"
281
+ },
282
+ {
283
+ "type": "null"
284
+ }
285
+ ]
286
+ }
287
+ },
288
+ "type": "object"
289
+ }
290
+ },
291
+ "properties": {
292
+ "cwd": {
293
+ "$ref": "#/definitions/LegacyAppPathString"
294
+ },
295
+ "environmentId": {
296
+ "default": null,
297
+ "type": [
298
+ "string",
299
+ "null"
300
+ ]
301
+ },
302
+ "itemId": {
303
+ "type": "string"
304
+ },
305
+ "permissions": {
306
+ "$ref": "#/definitions/RequestPermissionProfile"
307
+ },
308
+ "reason": {
309
+ "type": [
310
+ "string",
311
+ "null"
312
+ ]
313
+ },
314
+ "startedAtMs": {
315
+ "description": "Unix timestamp (in milliseconds) when this approval request started.",
316
+ "format": "int64",
317
+ "type": "integer"
318
+ },
319
+ "threadId": {
320
+ "type": "string"
321
+ },
322
+ "turnId": {
323
+ "type": "string"
324
+ }
325
+ },
326
+ "required": [
327
+ "cwd",
328
+ "itemId",
329
+ "permissions",
330
+ "startedAtMs",
331
+ "threadId",
332
+ "turnId"
333
+ ],
334
+ "title": "PermissionsRequestApprovalParams",
335
+ "type": "object"
336
+ }
codex-rs/app-server-protocol/schema/json/RequestId.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "anyOf": [
4
+ {
5
+ "type": "string"
6
+ },
7
+ {
8
+ "format": "int64",
9
+ "type": "integer"
10
+ }
11
+ ],
12
+ "title": "RequestId"
13
+ }
codex-rs/app-server-protocol/schema/json/ServerNotification.json ADDED
The diff for this file is too large to render. See raw diff
 
codex-rs/app-server-protocol/schema/json/ServerRequest.json ADDED
@@ -0,0 +1,2096 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "AdditionalFileSystemPermissions": {
5
+ "properties": {
6
+ "entries": {
7
+ "items": {
8
+ "$ref": "#/definitions/FileSystemSandboxEntry"
9
+ },
10
+ "type": [
11
+ "array",
12
+ "null"
13
+ ]
14
+ },
15
+ "globScanMaxDepth": {
16
+ "format": "uint",
17
+ "minimum": 1.0,
18
+ "type": [
19
+ "integer",
20
+ "null"
21
+ ]
22
+ },
23
+ "read": {
24
+ "description": "This will be removed in favor of `entries`.",
25
+ "items": {
26
+ "$ref": "#/definitions/LegacyAppPathString"
27
+ },
28
+ "type": [
29
+ "array",
30
+ "null"
31
+ ]
32
+ },
33
+ "write": {
34
+ "description": "This will be removed in favor of `entries`.",
35
+ "items": {
36
+ "$ref": "#/definitions/LegacyAppPathString"
37
+ },
38
+ "type": [
39
+ "array",
40
+ "null"
41
+ ]
42
+ }
43
+ },
44
+ "type": "object"
45
+ },
46
+ "AdditionalNetworkPermissions": {
47
+ "properties": {
48
+ "enabled": {
49
+ "type": [
50
+ "boolean",
51
+ "null"
52
+ ]
53
+ }
54
+ },
55
+ "type": "object"
56
+ },
57
+ "AdditionalPermissionProfile": {
58
+ "properties": {
59
+ "fileSystem": {
60
+ "anyOf": [
61
+ {
62
+ "$ref": "#/definitions/AdditionalFileSystemPermissions"
63
+ },
64
+ {
65
+ "type": "null"
66
+ }
67
+ ]
68
+ },
69
+ "network": {
70
+ "anyOf": [
71
+ {
72
+ "$ref": "#/definitions/AdditionalNetworkPermissions"
73
+ },
74
+ {
75
+ "type": "null"
76
+ }
77
+ ],
78
+ "description": "Partial overlay used for per-command permission requests."
79
+ }
80
+ },
81
+ "type": "object"
82
+ },
83
+ "ApplyPatchApprovalParams": {
84
+ "properties": {
85
+ "callId": {
86
+ "description": "Use to correlate this with [codex_protocol::protocol::PatchApplyBeginEvent] and [codex_protocol::protocol::PatchApplyEndEvent].",
87
+ "type": "string"
88
+ },
89
+ "conversationId": {
90
+ "$ref": "#/definitions/ThreadId"
91
+ },
92
+ "fileChanges": {
93
+ "additionalProperties": {
94
+ "$ref": "#/definitions/FileChange"
95
+ },
96
+ "type": "object"
97
+ },
98
+ "grantRoot": {
99
+ "description": "When set, the agent is asking the user to allow writes under this root for the remainder of the session (unclear if this is honored today).",
100
+ "type": [
101
+ "string",
102
+ "null"
103
+ ]
104
+ },
105
+ "reason": {
106
+ "description": "Optional explanatory reason (e.g. request for extra write access).",
107
+ "type": [
108
+ "string",
109
+ "null"
110
+ ]
111
+ }
112
+ },
113
+ "required": [
114
+ "callId",
115
+ "conversationId",
116
+ "fileChanges"
117
+ ],
118
+ "type": "object"
119
+ },
120
+ "AttestationGenerateParams": {
121
+ "type": "object"
122
+ },
123
+ "ChatgptAuthTokensRefreshParams": {
124
+ "properties": {
125
+ "previousAccountId": {
126
+ "description": "Workspace/account identifier that Codex was previously using.\n\nClients that manage multiple accounts/workspaces can use this as a hint to refresh the token for the correct workspace.\n\nThis may be `null` when the prior auth state did not include a workspace identifier (`chatgpt_account_id`).",
127
+ "type": [
128
+ "string",
129
+ "null"
130
+ ]
131
+ },
132
+ "reason": {
133
+ "$ref": "#/definitions/ChatgptAuthTokensRefreshReason"
134
+ }
135
+ },
136
+ "required": [
137
+ "reason"
138
+ ],
139
+ "type": "object"
140
+ },
141
+ "ChatgptAuthTokensRefreshReason": {
142
+ "oneOf": [
143
+ {
144
+ "description": "Codex attempted a backend request and received `401 Unauthorized`.",
145
+ "enum": [
146
+ "unauthorized"
147
+ ],
148
+ "type": "string"
149
+ }
150
+ ]
151
+ },
152
+ "CommandAction": {
153
+ "oneOf": [
154
+ {
155
+ "properties": {
156
+ "command": {
157
+ "type": "string"
158
+ },
159
+ "name": {
160
+ "type": "string"
161
+ },
162
+ "path": {
163
+ "$ref": "#/definitions/LegacyAppPathString"
164
+ },
165
+ "type": {
166
+ "enum": [
167
+ "read"
168
+ ],
169
+ "title": "ReadCommandActionType",
170
+ "type": "string"
171
+ }
172
+ },
173
+ "required": [
174
+ "command",
175
+ "name",
176
+ "path",
177
+ "type"
178
+ ],
179
+ "title": "ReadCommandAction",
180
+ "type": "object"
181
+ },
182
+ {
183
+ "properties": {
184
+ "command": {
185
+ "type": "string"
186
+ },
187
+ "path": {
188
+ "type": [
189
+ "string",
190
+ "null"
191
+ ]
192
+ },
193
+ "type": {
194
+ "enum": [
195
+ "listFiles"
196
+ ],
197
+ "title": "ListFilesCommandActionType",
198
+ "type": "string"
199
+ }
200
+ },
201
+ "required": [
202
+ "command",
203
+ "type"
204
+ ],
205
+ "title": "ListFilesCommandAction",
206
+ "type": "object"
207
+ },
208
+ {
209
+ "properties": {
210
+ "command": {
211
+ "type": "string"
212
+ },
213
+ "path": {
214
+ "type": [
215
+ "string",
216
+ "null"
217
+ ]
218
+ },
219
+ "query": {
220
+ "type": [
221
+ "string",
222
+ "null"
223
+ ]
224
+ },
225
+ "type": {
226
+ "enum": [
227
+ "search"
228
+ ],
229
+ "title": "SearchCommandActionType",
230
+ "type": "string"
231
+ }
232
+ },
233
+ "required": [
234
+ "command",
235
+ "type"
236
+ ],
237
+ "title": "SearchCommandAction",
238
+ "type": "object"
239
+ },
240
+ {
241
+ "properties": {
242
+ "command": {
243
+ "type": "string"
244
+ },
245
+ "type": {
246
+ "enum": [
247
+ "unknown"
248
+ ],
249
+ "title": "UnknownCommandActionType",
250
+ "type": "string"
251
+ }
252
+ },
253
+ "required": [
254
+ "command",
255
+ "type"
256
+ ],
257
+ "title": "UnknownCommandAction",
258
+ "type": "object"
259
+ }
260
+ ]
261
+ },
262
+ "CommandExecutionApprovalDecision": {
263
+ "oneOf": [
264
+ {
265
+ "description": "User approved the command.",
266
+ "enum": [
267
+ "accept"
268
+ ],
269
+ "type": "string"
270
+ },
271
+ {
272
+ "description": "User approved the command and future prompts in the same session-scoped approval cache should run without prompting.",
273
+ "enum": [
274
+ "acceptForSession"
275
+ ],
276
+ "type": "string"
277
+ },
278
+ {
279
+ "additionalProperties": false,
280
+ "description": "User approved the command, and wants to apply the proposed execpolicy amendment so future matching commands can run without prompting.",
281
+ "properties": {
282
+ "acceptWithExecpolicyAmendment": {
283
+ "properties": {
284
+ "execpolicy_amendment": {
285
+ "items": {
286
+ "type": "string"
287
+ },
288
+ "type": "array"
289
+ }
290
+ },
291
+ "required": [
292
+ "execpolicy_amendment"
293
+ ],
294
+ "type": "object"
295
+ }
296
+ },
297
+ "required": [
298
+ "acceptWithExecpolicyAmendment"
299
+ ],
300
+ "title": "AcceptWithExecpolicyAmendmentCommandExecutionApprovalDecision",
301
+ "type": "object"
302
+ },
303
+ {
304
+ "additionalProperties": false,
305
+ "description": "User chose a persistent network policy rule (allow/deny) for this host.",
306
+ "properties": {
307
+ "applyNetworkPolicyAmendment": {
308
+ "properties": {
309
+ "network_policy_amendment": {
310
+ "$ref": "#/definitions/NetworkPolicyAmendment"
311
+ }
312
+ },
313
+ "required": [
314
+ "network_policy_amendment"
315
+ ],
316
+ "type": "object"
317
+ }
318
+ },
319
+ "required": [
320
+ "applyNetworkPolicyAmendment"
321
+ ],
322
+ "title": "ApplyNetworkPolicyAmendmentCommandExecutionApprovalDecision",
323
+ "type": "object"
324
+ },
325
+ {
326
+ "description": "User denied the command. The agent will continue the turn.",
327
+ "enum": [
328
+ "decline"
329
+ ],
330
+ "type": "string"
331
+ },
332
+ {
333
+ "description": "User denied the command. The turn will also be immediately interrupted.",
334
+ "enum": [
335
+ "cancel"
336
+ ],
337
+ "type": "string"
338
+ }
339
+ ]
340
+ },
341
+ "CommandExecutionApprovalKind": {
342
+ "description": "Distinguishes a command approval from input sent to an existing terminal.",
343
+ "enum": [
344
+ "command",
345
+ "writeStdin"
346
+ ],
347
+ "type": "string"
348
+ },
349
+ "CommandExecutionRequestApprovalParams": {
350
+ "properties": {
351
+ "approvalId": {
352
+ "description": "Unique identifier for this specific approval callback.\n\nFor regular shell/unified_exec approvals, this is null.\n\nFor zsh-exec-bridge subcommand approvals, multiple callbacks can belong to one parent `itemId`, so `approvalId` is a distinct opaque callback id (a UUID) used to disambiguate routing. Stdin approvals also use a distinct callback id; inspect `kind` to distinguish them.",
353
+ "type": [
354
+ "string",
355
+ "null"
356
+ ]
357
+ },
358
+ "command": {
359
+ "description": "The command to be executed.",
360
+ "type": [
361
+ "string",
362
+ "null"
363
+ ]
364
+ },
365
+ "commandActions": {
366
+ "description": "Best-effort parsed command actions for friendly display.",
367
+ "items": {
368
+ "$ref": "#/definitions/CommandAction"
369
+ },
370
+ "type": [
371
+ "array",
372
+ "null"
373
+ ]
374
+ },
375
+ "cwd": {
376
+ "anyOf": [
377
+ {
378
+ "$ref": "#/definitions/LegacyAppPathString"
379
+ },
380
+ {
381
+ "type": "null"
382
+ }
383
+ ],
384
+ "description": "The command's working directory."
385
+ },
386
+ "environmentId": {
387
+ "default": null,
388
+ "description": "Environment in which the command will run.",
389
+ "type": [
390
+ "string",
391
+ "null"
392
+ ]
393
+ },
394
+ "itemId": {
395
+ "type": "string"
396
+ },
397
+ "kind": {
398
+ "allOf": [
399
+ {
400
+ "$ref": "#/definitions/CommandExecutionApprovalKind"
401
+ }
402
+ ],
403
+ "default": "command",
404
+ "description": "Kind of action under review. Defaults to `command` for older servers."
405
+ },
406
+ "networkApprovalContext": {
407
+ "anyOf": [
408
+ {
409
+ "$ref": "#/definitions/NetworkApprovalContext"
410
+ },
411
+ {
412
+ "type": "null"
413
+ }
414
+ ],
415
+ "description": "Optional context for a managed-network approval prompt."
416
+ },
417
+ "proposedExecpolicyAmendment": {
418
+ "description": "Optional proposed execpolicy amendment to allow similar commands without prompting.",
419
+ "items": {
420
+ "type": "string"
421
+ },
422
+ "type": [
423
+ "array",
424
+ "null"
425
+ ]
426
+ },
427
+ "proposedNetworkPolicyAmendments": {
428
+ "description": "Optional proposed network policy amendments (allow/deny host) for future requests.",
429
+ "items": {
430
+ "$ref": "#/definitions/NetworkPolicyAmendment"
431
+ },
432
+ "type": [
433
+ "array",
434
+ "null"
435
+ ]
436
+ },
437
+ "reason": {
438
+ "description": "Optional explanatory reason (e.g. request for network access).",
439
+ "type": [
440
+ "string",
441
+ "null"
442
+ ]
443
+ },
444
+ "startedAtMs": {
445
+ "description": "Unix timestamp (in milliseconds) when this approval request started.",
446
+ "format": "int64",
447
+ "type": "integer"
448
+ },
449
+ "threadId": {
450
+ "type": "string"
451
+ },
452
+ "turnId": {
453
+ "type": "string"
454
+ }
455
+ },
456
+ "required": [
457
+ "itemId",
458
+ "startedAtMs",
459
+ "threadId",
460
+ "turnId"
461
+ ],
462
+ "type": "object"
463
+ },
464
+ "DynamicToolCallParams": {
465
+ "properties": {
466
+ "arguments": true,
467
+ "callId": {
468
+ "type": "string"
469
+ },
470
+ "namespace": {
471
+ "type": [
472
+ "string",
473
+ "null"
474
+ ]
475
+ },
476
+ "threadId": {
477
+ "type": "string"
478
+ },
479
+ "tool": {
480
+ "type": "string"
481
+ },
482
+ "turnId": {
483
+ "type": "string"
484
+ }
485
+ },
486
+ "required": [
487
+ "arguments",
488
+ "callId",
489
+ "threadId",
490
+ "tool",
491
+ "turnId"
492
+ ],
493
+ "type": "object"
494
+ },
495
+ "ExecCommandApprovalParams": {
496
+ "properties": {
497
+ "approvalId": {
498
+ "description": "Identifier for this specific approval callback.",
499
+ "type": [
500
+ "string",
501
+ "null"
502
+ ]
503
+ },
504
+ "callId": {
505
+ "description": "Use to correlate this with [codex_protocol::protocol::ExecCommandBeginEvent] and [codex_protocol::protocol::ExecCommandEndEvent].",
506
+ "type": "string"
507
+ },
508
+ "command": {
509
+ "items": {
510
+ "type": "string"
511
+ },
512
+ "type": "array"
513
+ },
514
+ "conversationId": {
515
+ "$ref": "#/definitions/ThreadId"
516
+ },
517
+ "cwd": {
518
+ "type": "string"
519
+ },
520
+ "parsedCmd": {
521
+ "items": {
522
+ "$ref": "#/definitions/ParsedCommand"
523
+ },
524
+ "type": "array"
525
+ },
526
+ "reason": {
527
+ "type": [
528
+ "string",
529
+ "null"
530
+ ]
531
+ }
532
+ },
533
+ "required": [
534
+ "callId",
535
+ "command",
536
+ "conversationId",
537
+ "cwd",
538
+ "parsedCmd"
539
+ ],
540
+ "type": "object"
541
+ },
542
+ "FileChange": {
543
+ "oneOf": [
544
+ {
545
+ "properties": {
546
+ "content": {
547
+ "type": "string"
548
+ },
549
+ "type": {
550
+ "enum": [
551
+ "add"
552
+ ],
553
+ "title": "AddFileChangeType",
554
+ "type": "string"
555
+ }
556
+ },
557
+ "required": [
558
+ "content",
559
+ "type"
560
+ ],
561
+ "title": "AddFileChange",
562
+ "type": "object"
563
+ },
564
+ {
565
+ "properties": {
566
+ "content": {
567
+ "type": "string"
568
+ },
569
+ "type": {
570
+ "enum": [
571
+ "delete"
572
+ ],
573
+ "title": "DeleteFileChangeType",
574
+ "type": "string"
575
+ }
576
+ },
577
+ "required": [
578
+ "content",
579
+ "type"
580
+ ],
581
+ "title": "DeleteFileChange",
582
+ "type": "object"
583
+ },
584
+ {
585
+ "properties": {
586
+ "move_path": {
587
+ "type": [
588
+ "string",
589
+ "null"
590
+ ]
591
+ },
592
+ "type": {
593
+ "enum": [
594
+ "update"
595
+ ],
596
+ "title": "UpdateFileChangeType",
597
+ "type": "string"
598
+ },
599
+ "unified_diff": {
600
+ "type": "string"
601
+ }
602
+ },
603
+ "required": [
604
+ "type",
605
+ "unified_diff"
606
+ ],
607
+ "title": "UpdateFileChange",
608
+ "type": "object"
609
+ }
610
+ ]
611
+ },
612
+ "FileChangeRequestApprovalParams": {
613
+ "properties": {
614
+ "grantRoot": {
615
+ "description": "[UNSTABLE] When set, the agent is asking the user to allow writes under this root for the remainder of the session (unclear if this is honored today).",
616
+ "type": [
617
+ "string",
618
+ "null"
619
+ ]
620
+ },
621
+ "itemId": {
622
+ "type": "string"
623
+ },
624
+ "reason": {
625
+ "description": "Optional explanatory reason (e.g. request for extra write access).",
626
+ "type": [
627
+ "string",
628
+ "null"
629
+ ]
630
+ },
631
+ "startedAtMs": {
632
+ "description": "Unix timestamp (in milliseconds) when this approval request started.",
633
+ "format": "int64",
634
+ "type": "integer"
635
+ },
636
+ "threadId": {
637
+ "type": "string"
638
+ },
639
+ "turnId": {
640
+ "type": "string"
641
+ }
642
+ },
643
+ "required": [
644
+ "itemId",
645
+ "startedAtMs",
646
+ "threadId",
647
+ "turnId"
648
+ ],
649
+ "type": "object"
650
+ },
651
+ "FileSystemAccessMode": {
652
+ "enum": [
653
+ "read",
654
+ "write",
655
+ "deny"
656
+ ],
657
+ "type": "string"
658
+ },
659
+ "FileSystemPath": {
660
+ "oneOf": [
661
+ {
662
+ "properties": {
663
+ "path": {
664
+ "$ref": "#/definitions/LegacyAppPathString"
665
+ },
666
+ "type": {
667
+ "enum": [
668
+ "path"
669
+ ],
670
+ "title": "PathFileSystemPathType",
671
+ "type": "string"
672
+ }
673
+ },
674
+ "required": [
675
+ "path",
676
+ "type"
677
+ ],
678
+ "title": "PathFileSystemPath",
679
+ "type": "object"
680
+ },
681
+ {
682
+ "properties": {
683
+ "pattern": {
684
+ "type": "string"
685
+ },
686
+ "type": {
687
+ "enum": [
688
+ "glob_pattern"
689
+ ],
690
+ "title": "GlobPatternFileSystemPathType",
691
+ "type": "string"
692
+ }
693
+ },
694
+ "required": [
695
+ "pattern",
696
+ "type"
697
+ ],
698
+ "title": "GlobPatternFileSystemPath",
699
+ "type": "object"
700
+ },
701
+ {
702
+ "properties": {
703
+ "type": {
704
+ "enum": [
705
+ "special"
706
+ ],
707
+ "title": "SpecialFileSystemPathType",
708
+ "type": "string"
709
+ },
710
+ "value": {
711
+ "$ref": "#/definitions/FileSystemSpecialPath"
712
+ }
713
+ },
714
+ "required": [
715
+ "type",
716
+ "value"
717
+ ],
718
+ "title": "SpecialFileSystemPath",
719
+ "type": "object"
720
+ }
721
+ ]
722
+ },
723
+ "FileSystemSandboxEntry": {
724
+ "properties": {
725
+ "access": {
726
+ "$ref": "#/definitions/FileSystemAccessMode"
727
+ },
728
+ "path": {
729
+ "$ref": "#/definitions/FileSystemPath"
730
+ }
731
+ },
732
+ "required": [
733
+ "access",
734
+ "path"
735
+ ],
736
+ "type": "object"
737
+ },
738
+ "FileSystemSpecialPath": {
739
+ "oneOf": [
740
+ {
741
+ "properties": {
742
+ "kind": {
743
+ "enum": [
744
+ "root"
745
+ ],
746
+ "type": "string"
747
+ }
748
+ },
749
+ "required": [
750
+ "kind"
751
+ ],
752
+ "title": "RootFileSystemSpecialPath",
753
+ "type": "object"
754
+ },
755
+ {
756
+ "properties": {
757
+ "kind": {
758
+ "enum": [
759
+ "minimal"
760
+ ],
761
+ "type": "string"
762
+ }
763
+ },
764
+ "required": [
765
+ "kind"
766
+ ],
767
+ "title": "MinimalFileSystemSpecialPath",
768
+ "type": "object"
769
+ },
770
+ {
771
+ "properties": {
772
+ "kind": {
773
+ "enum": [
774
+ "project_roots"
775
+ ],
776
+ "type": "string"
777
+ },
778
+ "subpath": {
779
+ "anyOf": [
780
+ {
781
+ "$ref": "#/definitions/LegacyAppPathString"
782
+ },
783
+ {
784
+ "type": "null"
785
+ }
786
+ ]
787
+ }
788
+ },
789
+ "required": [
790
+ "kind"
791
+ ],
792
+ "title": "KindFileSystemSpecialPath",
793
+ "type": "object"
794
+ },
795
+ {
796
+ "properties": {
797
+ "kind": {
798
+ "enum": [
799
+ "tmpdir"
800
+ ],
801
+ "type": "string"
802
+ }
803
+ },
804
+ "required": [
805
+ "kind"
806
+ ],
807
+ "title": "TmpdirFileSystemSpecialPath",
808
+ "type": "object"
809
+ },
810
+ {
811
+ "properties": {
812
+ "kind": {
813
+ "enum": [
814
+ "slash_tmp"
815
+ ],
816
+ "type": "string"
817
+ }
818
+ },
819
+ "required": [
820
+ "kind"
821
+ ],
822
+ "title": "SlashTmpFileSystemSpecialPath",
823
+ "type": "object"
824
+ },
825
+ {
826
+ "properties": {
827
+ "kind": {
828
+ "enum": [
829
+ "unknown"
830
+ ],
831
+ "type": "string"
832
+ },
833
+ "path": {
834
+ "type": "string"
835
+ },
836
+ "subpath": {
837
+ "anyOf": [
838
+ {
839
+ "$ref": "#/definitions/LegacyAppPathString"
840
+ },
841
+ {
842
+ "type": "null"
843
+ }
844
+ ]
845
+ }
846
+ },
847
+ "required": [
848
+ "kind",
849
+ "path"
850
+ ],
851
+ "type": "object"
852
+ }
853
+ ]
854
+ },
855
+ "LegacyAppPathString": {
856
+ "type": "string"
857
+ },
858
+ "McpElicitationArrayType": {
859
+ "enum": [
860
+ "array"
861
+ ],
862
+ "type": "string"
863
+ },
864
+ "McpElicitationBooleanSchema": {
865
+ "additionalProperties": false,
866
+ "properties": {
867
+ "default": {
868
+ "type": [
869
+ "boolean",
870
+ "null"
871
+ ]
872
+ },
873
+ "description": {
874
+ "type": [
875
+ "string",
876
+ "null"
877
+ ]
878
+ },
879
+ "title": {
880
+ "type": [
881
+ "string",
882
+ "null"
883
+ ]
884
+ },
885
+ "type": {
886
+ "$ref": "#/definitions/McpElicitationBooleanType"
887
+ }
888
+ },
889
+ "required": [
890
+ "type"
891
+ ],
892
+ "type": "object"
893
+ },
894
+ "McpElicitationBooleanType": {
895
+ "enum": [
896
+ "boolean"
897
+ ],
898
+ "type": "string"
899
+ },
900
+ "McpElicitationConstOption": {
901
+ "additionalProperties": false,
902
+ "properties": {
903
+ "const": {
904
+ "type": "string"
905
+ },
906
+ "title": {
907
+ "type": "string"
908
+ }
909
+ },
910
+ "required": [
911
+ "const",
912
+ "title"
913
+ ],
914
+ "type": "object"
915
+ },
916
+ "McpElicitationEnumSchema": {
917
+ "anyOf": [
918
+ {
919
+ "$ref": "#/definitions/McpElicitationSingleSelectEnumSchema"
920
+ },
921
+ {
922
+ "$ref": "#/definitions/McpElicitationMultiSelectEnumSchema"
923
+ },
924
+ {
925
+ "$ref": "#/definitions/McpElicitationLegacyTitledEnumSchema"
926
+ }
927
+ ]
928
+ },
929
+ "McpElicitationLegacyTitledEnumSchema": {
930
+ "additionalProperties": false,
931
+ "properties": {
932
+ "default": {
933
+ "type": [
934
+ "string",
935
+ "null"
936
+ ]
937
+ },
938
+ "description": {
939
+ "type": [
940
+ "string",
941
+ "null"
942
+ ]
943
+ },
944
+ "enum": {
945
+ "items": {
946
+ "type": "string"
947
+ },
948
+ "type": "array"
949
+ },
950
+ "enumNames": {
951
+ "items": {
952
+ "type": "string"
953
+ },
954
+ "type": [
955
+ "array",
956
+ "null"
957
+ ]
958
+ },
959
+ "title": {
960
+ "type": [
961
+ "string",
962
+ "null"
963
+ ]
964
+ },
965
+ "type": {
966
+ "$ref": "#/definitions/McpElicitationStringType"
967
+ }
968
+ },
969
+ "required": [
970
+ "enum",
971
+ "type"
972
+ ],
973
+ "type": "object"
974
+ },
975
+ "McpElicitationMultiSelectEnumSchema": {
976
+ "anyOf": [
977
+ {
978
+ "$ref": "#/definitions/McpElicitationUntitledMultiSelectEnumSchema"
979
+ },
980
+ {
981
+ "$ref": "#/definitions/McpElicitationTitledMultiSelectEnumSchema"
982
+ }
983
+ ]
984
+ },
985
+ "McpElicitationNumberSchema": {
986
+ "additionalProperties": false,
987
+ "properties": {
988
+ "default": {
989
+ "format": "double",
990
+ "type": [
991
+ "number",
992
+ "null"
993
+ ]
994
+ },
995
+ "description": {
996
+ "type": [
997
+ "string",
998
+ "null"
999
+ ]
1000
+ },
1001
+ "maximum": {
1002
+ "format": "double",
1003
+ "type": [
1004
+ "number",
1005
+ "null"
1006
+ ]
1007
+ },
1008
+ "minimum": {
1009
+ "format": "double",
1010
+ "type": [
1011
+ "number",
1012
+ "null"
1013
+ ]
1014
+ },
1015
+ "title": {
1016
+ "type": [
1017
+ "string",
1018
+ "null"
1019
+ ]
1020
+ },
1021
+ "type": {
1022
+ "$ref": "#/definitions/McpElicitationNumberType"
1023
+ }
1024
+ },
1025
+ "required": [
1026
+ "type"
1027
+ ],
1028
+ "type": "object"
1029
+ },
1030
+ "McpElicitationNumberType": {
1031
+ "enum": [
1032
+ "number",
1033
+ "integer"
1034
+ ],
1035
+ "type": "string"
1036
+ },
1037
+ "McpElicitationObjectType": {
1038
+ "enum": [
1039
+ "object"
1040
+ ],
1041
+ "type": "string"
1042
+ },
1043
+ "McpElicitationPrimitiveSchema": {
1044
+ "anyOf": [
1045
+ {
1046
+ "$ref": "#/definitions/McpElicitationEnumSchema"
1047
+ },
1048
+ {
1049
+ "$ref": "#/definitions/McpElicitationStringSchema"
1050
+ },
1051
+ {
1052
+ "$ref": "#/definitions/McpElicitationNumberSchema"
1053
+ },
1054
+ {
1055
+ "$ref": "#/definitions/McpElicitationBooleanSchema"
1056
+ }
1057
+ ]
1058
+ },
1059
+ "McpElicitationSchema": {
1060
+ "additionalProperties": false,
1061
+ "description": "Typed form schema for MCP `elicitation/create` requests.\n\nThis matches the `requestedSchema` shape from the MCP 2025-11-25 `ElicitRequestFormParams` schema.",
1062
+ "properties": {
1063
+ "$schema": {
1064
+ "type": [
1065
+ "string",
1066
+ "null"
1067
+ ]
1068
+ },
1069
+ "properties": {
1070
+ "additionalProperties": {
1071
+ "$ref": "#/definitions/McpElicitationPrimitiveSchema"
1072
+ },
1073
+ "type": "object"
1074
+ },
1075
+ "required": {
1076
+ "items": {
1077
+ "type": "string"
1078
+ },
1079
+ "type": [
1080
+ "array",
1081
+ "null"
1082
+ ]
1083
+ },
1084
+ "type": {
1085
+ "$ref": "#/definitions/McpElicitationObjectType"
1086
+ }
1087
+ },
1088
+ "required": [
1089
+ "properties",
1090
+ "type"
1091
+ ],
1092
+ "type": "object"
1093
+ },
1094
+ "McpElicitationSingleSelectEnumSchema": {
1095
+ "anyOf": [
1096
+ {
1097
+ "$ref": "#/definitions/McpElicitationUntitledSingleSelectEnumSchema"
1098
+ },
1099
+ {
1100
+ "$ref": "#/definitions/McpElicitationTitledSingleSelectEnumSchema"
1101
+ }
1102
+ ]
1103
+ },
1104
+ "McpElicitationStringFormat": {
1105
+ "enum": [
1106
+ "email",
1107
+ "uri",
1108
+ "date",
1109
+ "date-time"
1110
+ ],
1111
+ "type": "string"
1112
+ },
1113
+ "McpElicitationStringSchema": {
1114
+ "additionalProperties": false,
1115
+ "properties": {
1116
+ "default": {
1117
+ "type": [
1118
+ "string",
1119
+ "null"
1120
+ ]
1121
+ },
1122
+ "description": {
1123
+ "type": [
1124
+ "string",
1125
+ "null"
1126
+ ]
1127
+ },
1128
+ "format": {
1129
+ "anyOf": [
1130
+ {
1131
+ "$ref": "#/definitions/McpElicitationStringFormat"
1132
+ },
1133
+ {
1134
+ "type": "null"
1135
+ }
1136
+ ]
1137
+ },
1138
+ "maxLength": {
1139
+ "format": "uint32",
1140
+ "minimum": 0.0,
1141
+ "type": [
1142
+ "integer",
1143
+ "null"
1144
+ ]
1145
+ },
1146
+ "minLength": {
1147
+ "format": "uint32",
1148
+ "minimum": 0.0,
1149
+ "type": [
1150
+ "integer",
1151
+ "null"
1152
+ ]
1153
+ },
1154
+ "title": {
1155
+ "type": [
1156
+ "string",
1157
+ "null"
1158
+ ]
1159
+ },
1160
+ "type": {
1161
+ "$ref": "#/definitions/McpElicitationStringType"
1162
+ }
1163
+ },
1164
+ "required": [
1165
+ "type"
1166
+ ],
1167
+ "type": "object"
1168
+ },
1169
+ "McpElicitationStringType": {
1170
+ "enum": [
1171
+ "string"
1172
+ ],
1173
+ "type": "string"
1174
+ },
1175
+ "McpElicitationTitledEnumItems": {
1176
+ "additionalProperties": false,
1177
+ "properties": {
1178
+ "anyOf": {
1179
+ "items": {
1180
+ "$ref": "#/definitions/McpElicitationConstOption"
1181
+ },
1182
+ "type": "array"
1183
+ }
1184
+ },
1185
+ "required": [
1186
+ "anyOf"
1187
+ ],
1188
+ "type": "object"
1189
+ },
1190
+ "McpElicitationTitledMultiSelectEnumSchema": {
1191
+ "additionalProperties": false,
1192
+ "properties": {
1193
+ "default": {
1194
+ "items": {
1195
+ "type": "string"
1196
+ },
1197
+ "type": [
1198
+ "array",
1199
+ "null"
1200
+ ]
1201
+ },
1202
+ "description": {
1203
+ "type": [
1204
+ "string",
1205
+ "null"
1206
+ ]
1207
+ },
1208
+ "items": {
1209
+ "$ref": "#/definitions/McpElicitationTitledEnumItems"
1210
+ },
1211
+ "maxItems": {
1212
+ "format": "uint64",
1213
+ "minimum": 0.0,
1214
+ "type": [
1215
+ "integer",
1216
+ "null"
1217
+ ]
1218
+ },
1219
+ "minItems": {
1220
+ "format": "uint64",
1221
+ "minimum": 0.0,
1222
+ "type": [
1223
+ "integer",
1224
+ "null"
1225
+ ]
1226
+ },
1227
+ "title": {
1228
+ "type": [
1229
+ "string",
1230
+ "null"
1231
+ ]
1232
+ },
1233
+ "type": {
1234
+ "$ref": "#/definitions/McpElicitationArrayType"
1235
+ }
1236
+ },
1237
+ "required": [
1238
+ "items",
1239
+ "type"
1240
+ ],
1241
+ "type": "object"
1242
+ },
1243
+ "McpElicitationTitledSingleSelectEnumSchema": {
1244
+ "additionalProperties": false,
1245
+ "properties": {
1246
+ "default": {
1247
+ "type": [
1248
+ "string",
1249
+ "null"
1250
+ ]
1251
+ },
1252
+ "description": {
1253
+ "type": [
1254
+ "string",
1255
+ "null"
1256
+ ]
1257
+ },
1258
+ "oneOf": {
1259
+ "items": {
1260
+ "$ref": "#/definitions/McpElicitationConstOption"
1261
+ },
1262
+ "type": "array"
1263
+ },
1264
+ "title": {
1265
+ "type": [
1266
+ "string",
1267
+ "null"
1268
+ ]
1269
+ },
1270
+ "type": {
1271
+ "$ref": "#/definitions/McpElicitationStringType"
1272
+ }
1273
+ },
1274
+ "required": [
1275
+ "oneOf",
1276
+ "type"
1277
+ ],
1278
+ "type": "object"
1279
+ },
1280
+ "McpElicitationUntitledEnumItems": {
1281
+ "additionalProperties": false,
1282
+ "properties": {
1283
+ "enum": {
1284
+ "items": {
1285
+ "type": "string"
1286
+ },
1287
+ "type": "array"
1288
+ },
1289
+ "type": {
1290
+ "$ref": "#/definitions/McpElicitationStringType"
1291
+ }
1292
+ },
1293
+ "required": [
1294
+ "enum",
1295
+ "type"
1296
+ ],
1297
+ "type": "object"
1298
+ },
1299
+ "McpElicitationUntitledMultiSelectEnumSchema": {
1300
+ "additionalProperties": false,
1301
+ "properties": {
1302
+ "default": {
1303
+ "items": {
1304
+ "type": "string"
1305
+ },
1306
+ "type": [
1307
+ "array",
1308
+ "null"
1309
+ ]
1310
+ },
1311
+ "description": {
1312
+ "type": [
1313
+ "string",
1314
+ "null"
1315
+ ]
1316
+ },
1317
+ "items": {
1318
+ "$ref": "#/definitions/McpElicitationUntitledEnumItems"
1319
+ },
1320
+ "maxItems": {
1321
+ "format": "uint64",
1322
+ "minimum": 0.0,
1323
+ "type": [
1324
+ "integer",
1325
+ "null"
1326
+ ]
1327
+ },
1328
+ "minItems": {
1329
+ "format": "uint64",
1330
+ "minimum": 0.0,
1331
+ "type": [
1332
+ "integer",
1333
+ "null"
1334
+ ]
1335
+ },
1336
+ "title": {
1337
+ "type": [
1338
+ "string",
1339
+ "null"
1340
+ ]
1341
+ },
1342
+ "type": {
1343
+ "$ref": "#/definitions/McpElicitationArrayType"
1344
+ }
1345
+ },
1346
+ "required": [
1347
+ "items",
1348
+ "type"
1349
+ ],
1350
+ "type": "object"
1351
+ },
1352
+ "McpElicitationUntitledSingleSelectEnumSchema": {
1353
+ "additionalProperties": false,
1354
+ "properties": {
1355
+ "default": {
1356
+ "type": [
1357
+ "string",
1358
+ "null"
1359
+ ]
1360
+ },
1361
+ "description": {
1362
+ "type": [
1363
+ "string",
1364
+ "null"
1365
+ ]
1366
+ },
1367
+ "enum": {
1368
+ "items": {
1369
+ "type": "string"
1370
+ },
1371
+ "type": "array"
1372
+ },
1373
+ "title": {
1374
+ "type": [
1375
+ "string",
1376
+ "null"
1377
+ ]
1378
+ },
1379
+ "type": {
1380
+ "$ref": "#/definitions/McpElicitationStringType"
1381
+ }
1382
+ },
1383
+ "required": [
1384
+ "enum",
1385
+ "type"
1386
+ ],
1387
+ "type": "object"
1388
+ },
1389
+ "McpServerElicitationRequestParams": {
1390
+ "oneOf": [
1391
+ {
1392
+ "properties": {
1393
+ "_meta": true,
1394
+ "message": {
1395
+ "type": "string"
1396
+ },
1397
+ "mode": {
1398
+ "enum": [
1399
+ "form"
1400
+ ],
1401
+ "type": "string"
1402
+ },
1403
+ "requestedSchema": {
1404
+ "$ref": "#/definitions/McpElicitationSchema"
1405
+ }
1406
+ },
1407
+ "required": [
1408
+ "message",
1409
+ "mode",
1410
+ "requestedSchema"
1411
+ ],
1412
+ "type": "object"
1413
+ },
1414
+ {
1415
+ "properties": {
1416
+ "_meta": true,
1417
+ "message": {
1418
+ "type": "string"
1419
+ },
1420
+ "mode": {
1421
+ "enum": [
1422
+ "openai/form"
1423
+ ],
1424
+ "type": "string"
1425
+ },
1426
+ "requestedSchema": true
1427
+ },
1428
+ "required": [
1429
+ "message",
1430
+ "mode",
1431
+ "requestedSchema"
1432
+ ],
1433
+ "type": "object"
1434
+ },
1435
+ {
1436
+ "properties": {
1437
+ "_meta": true,
1438
+ "message": {
1439
+ "type": "string"
1440
+ },
1441
+ "mode": {
1442
+ "enum": [
1443
+ "openaiForm"
1444
+ ],
1445
+ "type": "string"
1446
+ },
1447
+ "requestedSchema": true
1448
+ },
1449
+ "required": [
1450
+ "message",
1451
+ "mode",
1452
+ "requestedSchema"
1453
+ ],
1454
+ "type": "object"
1455
+ },
1456
+ {
1457
+ "properties": {
1458
+ "_meta": true,
1459
+ "elicitationId": {
1460
+ "type": "string"
1461
+ },
1462
+ "message": {
1463
+ "type": "string"
1464
+ },
1465
+ "mode": {
1466
+ "enum": [
1467
+ "url"
1468
+ ],
1469
+ "type": "string"
1470
+ },
1471
+ "url": {
1472
+ "type": "string"
1473
+ }
1474
+ },
1475
+ "required": [
1476
+ "elicitationId",
1477
+ "message",
1478
+ "mode",
1479
+ "url"
1480
+ ],
1481
+ "type": "object"
1482
+ }
1483
+ ],
1484
+ "properties": {
1485
+ "serverName": {
1486
+ "type": "string"
1487
+ },
1488
+ "threadId": {
1489
+ "type": "string"
1490
+ },
1491
+ "turnId": {
1492
+ "description": "Active Codex turn when this elicitation was observed, if app-server could correlate one.\n\nThis is nullable because MCP models elicitation as a standalone server-to-client request identified by the MCP server request id. It may be triggered during a turn, but turn context is app-server correlation rather than part of the protocol identity of the elicitation itself.",
1493
+ "type": [
1494
+ "string",
1495
+ "null"
1496
+ ]
1497
+ }
1498
+ },
1499
+ "required": [
1500
+ "serverName",
1501
+ "threadId"
1502
+ ],
1503
+ "type": "object"
1504
+ },
1505
+ "NetworkApprovalContext": {
1506
+ "properties": {
1507
+ "host": {
1508
+ "type": "string"
1509
+ },
1510
+ "protocol": {
1511
+ "$ref": "#/definitions/NetworkApprovalProtocol"
1512
+ }
1513
+ },
1514
+ "required": [
1515
+ "host",
1516
+ "protocol"
1517
+ ],
1518
+ "type": "object"
1519
+ },
1520
+ "NetworkApprovalProtocol": {
1521
+ "enum": [
1522
+ "http",
1523
+ "https",
1524
+ "socks5Tcp",
1525
+ "socks5Udp"
1526
+ ],
1527
+ "type": "string"
1528
+ },
1529
+ "NetworkPolicyAmendment": {
1530
+ "properties": {
1531
+ "action": {
1532
+ "$ref": "#/definitions/NetworkPolicyRuleAction"
1533
+ },
1534
+ "host": {
1535
+ "type": "string"
1536
+ }
1537
+ },
1538
+ "required": [
1539
+ "action",
1540
+ "host"
1541
+ ],
1542
+ "type": "object"
1543
+ },
1544
+ "NetworkPolicyRuleAction": {
1545
+ "enum": [
1546
+ "allow",
1547
+ "deny"
1548
+ ],
1549
+ "type": "string"
1550
+ },
1551
+ "ParsedCommand": {
1552
+ "oneOf": [
1553
+ {
1554
+ "properties": {
1555
+ "cmd": {
1556
+ "type": "string"
1557
+ },
1558
+ "name": {
1559
+ "type": "string"
1560
+ },
1561
+ "path": {
1562
+ "description": "(Best effort) Path to the file being read by the command. When possible, this is an absolute path, though when relative, it should be resolved against the `cwd`` that will be used to run the command to derive the absolute path.",
1563
+ "type": "string"
1564
+ },
1565
+ "type": {
1566
+ "enum": [
1567
+ "read"
1568
+ ],
1569
+ "title": "ReadParsedCommandType",
1570
+ "type": "string"
1571
+ }
1572
+ },
1573
+ "required": [
1574
+ "cmd",
1575
+ "name",
1576
+ "path",
1577
+ "type"
1578
+ ],
1579
+ "title": "ReadParsedCommand",
1580
+ "type": "object"
1581
+ },
1582
+ {
1583
+ "properties": {
1584
+ "cmd": {
1585
+ "type": "string"
1586
+ },
1587
+ "path": {
1588
+ "type": [
1589
+ "string",
1590
+ "null"
1591
+ ]
1592
+ },
1593
+ "type": {
1594
+ "enum": [
1595
+ "list_files"
1596
+ ],
1597
+ "title": "ListFilesParsedCommandType",
1598
+ "type": "string"
1599
+ }
1600
+ },
1601
+ "required": [
1602
+ "cmd",
1603
+ "type"
1604
+ ],
1605
+ "title": "ListFilesParsedCommand",
1606
+ "type": "object"
1607
+ },
1608
+ {
1609
+ "properties": {
1610
+ "cmd": {
1611
+ "type": "string"
1612
+ },
1613
+ "path": {
1614
+ "type": [
1615
+ "string",
1616
+ "null"
1617
+ ]
1618
+ },
1619
+ "query": {
1620
+ "type": [
1621
+ "string",
1622
+ "null"
1623
+ ]
1624
+ },
1625
+ "type": {
1626
+ "enum": [
1627
+ "search"
1628
+ ],
1629
+ "title": "SearchParsedCommandType",
1630
+ "type": "string"
1631
+ }
1632
+ },
1633
+ "required": [
1634
+ "cmd",
1635
+ "type"
1636
+ ],
1637
+ "title": "SearchParsedCommand",
1638
+ "type": "object"
1639
+ },
1640
+ {
1641
+ "properties": {
1642
+ "cmd": {
1643
+ "type": "string"
1644
+ },
1645
+ "type": {
1646
+ "enum": [
1647
+ "unknown"
1648
+ ],
1649
+ "title": "UnknownParsedCommandType",
1650
+ "type": "string"
1651
+ }
1652
+ },
1653
+ "required": [
1654
+ "cmd",
1655
+ "type"
1656
+ ],
1657
+ "title": "UnknownParsedCommand",
1658
+ "type": "object"
1659
+ }
1660
+ ]
1661
+ },
1662
+ "PermissionsRequestApprovalParams": {
1663
+ "properties": {
1664
+ "cwd": {
1665
+ "$ref": "#/definitions/LegacyAppPathString"
1666
+ },
1667
+ "environmentId": {
1668
+ "default": null,
1669
+ "type": [
1670
+ "string",
1671
+ "null"
1672
+ ]
1673
+ },
1674
+ "itemId": {
1675
+ "type": "string"
1676
+ },
1677
+ "permissions": {
1678
+ "$ref": "#/definitions/RequestPermissionProfile"
1679
+ },
1680
+ "reason": {
1681
+ "type": [
1682
+ "string",
1683
+ "null"
1684
+ ]
1685
+ },
1686
+ "startedAtMs": {
1687
+ "description": "Unix timestamp (in milliseconds) when this approval request started.",
1688
+ "format": "int64",
1689
+ "type": "integer"
1690
+ },
1691
+ "threadId": {
1692
+ "type": "string"
1693
+ },
1694
+ "turnId": {
1695
+ "type": "string"
1696
+ }
1697
+ },
1698
+ "required": [
1699
+ "cwd",
1700
+ "itemId",
1701
+ "permissions",
1702
+ "startedAtMs",
1703
+ "threadId",
1704
+ "turnId"
1705
+ ],
1706
+ "type": "object"
1707
+ },
1708
+ "RequestId": {
1709
+ "anyOf": [
1710
+ {
1711
+ "type": "string"
1712
+ },
1713
+ {
1714
+ "format": "int64",
1715
+ "type": "integer"
1716
+ }
1717
+ ]
1718
+ },
1719
+ "RequestPermissionProfile": {
1720
+ "additionalProperties": false,
1721
+ "properties": {
1722
+ "fileSystem": {
1723
+ "anyOf": [
1724
+ {
1725
+ "$ref": "#/definitions/AdditionalFileSystemPermissions"
1726
+ },
1727
+ {
1728
+ "type": "null"
1729
+ }
1730
+ ]
1731
+ },
1732
+ "network": {
1733
+ "anyOf": [
1734
+ {
1735
+ "$ref": "#/definitions/AdditionalNetworkPermissions"
1736
+ },
1737
+ {
1738
+ "type": "null"
1739
+ }
1740
+ ]
1741
+ }
1742
+ },
1743
+ "type": "object"
1744
+ },
1745
+ "ThreadId": {
1746
+ "type": "string"
1747
+ },
1748
+ "ToolRequestUserInputOption": {
1749
+ "description": "EXPERIMENTAL. Defines a single selectable option for request_user_input.",
1750
+ "properties": {
1751
+ "description": {
1752
+ "type": "string"
1753
+ },
1754
+ "label": {
1755
+ "type": "string"
1756
+ }
1757
+ },
1758
+ "required": [
1759
+ "description",
1760
+ "label"
1761
+ ],
1762
+ "type": "object"
1763
+ },
1764
+ "ToolRequestUserInputParams": {
1765
+ "description": "EXPERIMENTAL. Params sent with a request_user_input event.",
1766
+ "properties": {
1767
+ "autoResolutionMs": {
1768
+ "default": null,
1769
+ "description": "@deprecated Use `isBlocking` to decide whether the request should block.",
1770
+ "format": "uint64",
1771
+ "minimum": 0.0,
1772
+ "type": [
1773
+ "integer",
1774
+ "null"
1775
+ ]
1776
+ },
1777
+ "isBlocking": {
1778
+ "type": "boolean"
1779
+ },
1780
+ "itemId": {
1781
+ "type": "string"
1782
+ },
1783
+ "questions": {
1784
+ "items": {
1785
+ "$ref": "#/definitions/ToolRequestUserInputQuestion"
1786
+ },
1787
+ "type": "array"
1788
+ },
1789
+ "threadId": {
1790
+ "type": "string"
1791
+ },
1792
+ "turnId": {
1793
+ "type": "string"
1794
+ }
1795
+ },
1796
+ "required": [
1797
+ "isBlocking",
1798
+ "itemId",
1799
+ "questions",
1800
+ "threadId",
1801
+ "turnId"
1802
+ ],
1803
+ "type": "object"
1804
+ },
1805
+ "ToolRequestUserInputQuestion": {
1806
+ "description": "EXPERIMENTAL. Represents one request_user_input question and its required options.",
1807
+ "properties": {
1808
+ "header": {
1809
+ "type": "string"
1810
+ },
1811
+ "id": {
1812
+ "type": "string"
1813
+ },
1814
+ "isOther": {
1815
+ "default": false,
1816
+ "type": "boolean"
1817
+ },
1818
+ "isSecret": {
1819
+ "default": false,
1820
+ "type": "boolean"
1821
+ },
1822
+ "options": {
1823
+ "items": {
1824
+ "$ref": "#/definitions/ToolRequestUserInputOption"
1825
+ },
1826
+ "type": [
1827
+ "array",
1828
+ "null"
1829
+ ]
1830
+ },
1831
+ "question": {
1832
+ "type": "string"
1833
+ }
1834
+ },
1835
+ "required": [
1836
+ "header",
1837
+ "id",
1838
+ "question"
1839
+ ],
1840
+ "type": "object"
1841
+ }
1842
+ },
1843
+ "description": "Request initiated from the server and sent to the client.",
1844
+ "oneOf": [
1845
+ {
1846
+ "description": "NEW APIs Sent when approval is requested for a specific command execution. This request is used for Turns started via turn/start.",
1847
+ "properties": {
1848
+ "id": {
1849
+ "$ref": "#/definitions/RequestId"
1850
+ },
1851
+ "method": {
1852
+ "enum": [
1853
+ "item/commandExecution/requestApproval"
1854
+ ],
1855
+ "title": "Item/commandExecution/requestApprovalRequestMethod",
1856
+ "type": "string"
1857
+ },
1858
+ "params": {
1859
+ "$ref": "#/definitions/CommandExecutionRequestApprovalParams"
1860
+ }
1861
+ },
1862
+ "required": [
1863
+ "id",
1864
+ "method",
1865
+ "params"
1866
+ ],
1867
+ "title": "Item/commandExecution/requestApprovalRequest",
1868
+ "type": "object"
1869
+ },
1870
+ {
1871
+ "description": "Sent when approval is requested for a specific file change. This request is used for Turns started via turn/start.",
1872
+ "properties": {
1873
+ "id": {
1874
+ "$ref": "#/definitions/RequestId"
1875
+ },
1876
+ "method": {
1877
+ "enum": [
1878
+ "item/fileChange/requestApproval"
1879
+ ],
1880
+ "title": "Item/fileChange/requestApprovalRequestMethod",
1881
+ "type": "string"
1882
+ },
1883
+ "params": {
1884
+ "$ref": "#/definitions/FileChangeRequestApprovalParams"
1885
+ }
1886
+ },
1887
+ "required": [
1888
+ "id",
1889
+ "method",
1890
+ "params"
1891
+ ],
1892
+ "title": "Item/fileChange/requestApprovalRequest",
1893
+ "type": "object"
1894
+ },
1895
+ {
1896
+ "description": "EXPERIMENTAL - Request input from the user for a tool call.",
1897
+ "properties": {
1898
+ "id": {
1899
+ "$ref": "#/definitions/RequestId"
1900
+ },
1901
+ "method": {
1902
+ "enum": [
1903
+ "item/tool/requestUserInput"
1904
+ ],
1905
+ "title": "Item/tool/requestUserInputRequestMethod",
1906
+ "type": "string"
1907
+ },
1908
+ "params": {
1909
+ "$ref": "#/definitions/ToolRequestUserInputParams"
1910
+ }
1911
+ },
1912
+ "required": [
1913
+ "id",
1914
+ "method",
1915
+ "params"
1916
+ ],
1917
+ "title": "Item/tool/requestUserInputRequest",
1918
+ "type": "object"
1919
+ },
1920
+ {
1921
+ "description": "Request input for an MCP server elicitation.",
1922
+ "properties": {
1923
+ "id": {
1924
+ "$ref": "#/definitions/RequestId"
1925
+ },
1926
+ "method": {
1927
+ "enum": [
1928
+ "mcpServer/elicitation/request"
1929
+ ],
1930
+ "title": "McpServer/elicitation/requestRequestMethod",
1931
+ "type": "string"
1932
+ },
1933
+ "params": {
1934
+ "$ref": "#/definitions/McpServerElicitationRequestParams"
1935
+ }
1936
+ },
1937
+ "required": [
1938
+ "id",
1939
+ "method",
1940
+ "params"
1941
+ ],
1942
+ "title": "McpServer/elicitation/requestRequest",
1943
+ "type": "object"
1944
+ },
1945
+ {
1946
+ "description": "Request approval for additional permissions from the user.",
1947
+ "properties": {
1948
+ "id": {
1949
+ "$ref": "#/definitions/RequestId"
1950
+ },
1951
+ "method": {
1952
+ "enum": [
1953
+ "item/permissions/requestApproval"
1954
+ ],
1955
+ "title": "Item/permissions/requestApprovalRequestMethod",
1956
+ "type": "string"
1957
+ },
1958
+ "params": {
1959
+ "$ref": "#/definitions/PermissionsRequestApprovalParams"
1960
+ }
1961
+ },
1962
+ "required": [
1963
+ "id",
1964
+ "method",
1965
+ "params"
1966
+ ],
1967
+ "title": "Item/permissions/requestApprovalRequest",
1968
+ "type": "object"
1969
+ },
1970
+ {
1971
+ "description": "Execute a dynamic tool call on the client.",
1972
+ "properties": {
1973
+ "id": {
1974
+ "$ref": "#/definitions/RequestId"
1975
+ },
1976
+ "method": {
1977
+ "enum": [
1978
+ "item/tool/call"
1979
+ ],
1980
+ "title": "Item/tool/callRequestMethod",
1981
+ "type": "string"
1982
+ },
1983
+ "params": {
1984
+ "$ref": "#/definitions/DynamicToolCallParams"
1985
+ }
1986
+ },
1987
+ "required": [
1988
+ "id",
1989
+ "method",
1990
+ "params"
1991
+ ],
1992
+ "title": "Item/tool/callRequest",
1993
+ "type": "object"
1994
+ },
1995
+ {
1996
+ "properties": {
1997
+ "id": {
1998
+ "$ref": "#/definitions/RequestId"
1999
+ },
2000
+ "method": {
2001
+ "enum": [
2002
+ "account/chatgptAuthTokens/refresh"
2003
+ ],
2004
+ "title": "Account/chatgptAuthTokens/refreshRequestMethod",
2005
+ "type": "string"
2006
+ },
2007
+ "params": {
2008
+ "$ref": "#/definitions/ChatgptAuthTokensRefreshParams"
2009
+ }
2010
+ },
2011
+ "required": [
2012
+ "id",
2013
+ "method",
2014
+ "params"
2015
+ ],
2016
+ "title": "Account/chatgptAuthTokens/refreshRequest",
2017
+ "type": "object"
2018
+ },
2019
+ {
2020
+ "description": "Generate a fresh upstream attestation result on demand.",
2021
+ "properties": {
2022
+ "id": {
2023
+ "$ref": "#/definitions/RequestId"
2024
+ },
2025
+ "method": {
2026
+ "enum": [
2027
+ "attestation/generate"
2028
+ ],
2029
+ "title": "Attestation/generateRequestMethod",
2030
+ "type": "string"
2031
+ },
2032
+ "params": {
2033
+ "$ref": "#/definitions/AttestationGenerateParams"
2034
+ }
2035
+ },
2036
+ "required": [
2037
+ "id",
2038
+ "method",
2039
+ "params"
2040
+ ],
2041
+ "title": "Attestation/generateRequest",
2042
+ "type": "object"
2043
+ },
2044
+ {
2045
+ "description": "DEPRECATED APIs below Request to approve a patch. This request is used for Turns started via the legacy APIs (i.e. SendUserTurn, SendUserMessage).",
2046
+ "properties": {
2047
+ "id": {
2048
+ "$ref": "#/definitions/RequestId"
2049
+ },
2050
+ "method": {
2051
+ "enum": [
2052
+ "applyPatchApproval"
2053
+ ],
2054
+ "title": "ApplyPatchApprovalRequestMethod",
2055
+ "type": "string"
2056
+ },
2057
+ "params": {
2058
+ "$ref": "#/definitions/ApplyPatchApprovalParams"
2059
+ }
2060
+ },
2061
+ "required": [
2062
+ "id",
2063
+ "method",
2064
+ "params"
2065
+ ],
2066
+ "title": "ApplyPatchApprovalRequest",
2067
+ "type": "object"
2068
+ },
2069
+ {
2070
+ "description": "Request to exec a command. This request is used for Turns started via the legacy APIs (i.e. SendUserTurn, SendUserMessage).",
2071
+ "properties": {
2072
+ "id": {
2073
+ "$ref": "#/definitions/RequestId"
2074
+ },
2075
+ "method": {
2076
+ "enum": [
2077
+ "execCommandApproval"
2078
+ ],
2079
+ "title": "ExecCommandApprovalRequestMethod",
2080
+ "type": "string"
2081
+ },
2082
+ "params": {
2083
+ "$ref": "#/definitions/ExecCommandApprovalParams"
2084
+ }
2085
+ },
2086
+ "required": [
2087
+ "id",
2088
+ "method",
2089
+ "params"
2090
+ ],
2091
+ "title": "ExecCommandApprovalRequest",
2092
+ "type": "object"
2093
+ }
2094
+ ],
2095
+ "title": "ServerRequest"
2096
+ }
codex-rs/app-server-protocol/schema/json/ToolRequestUserInputParams.json ADDED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "ToolRequestUserInputOption": {
5
+ "description": "EXPERIMENTAL. Defines a single selectable option for request_user_input.",
6
+ "properties": {
7
+ "description": {
8
+ "type": "string"
9
+ },
10
+ "label": {
11
+ "type": "string"
12
+ }
13
+ },
14
+ "required": [
15
+ "description",
16
+ "label"
17
+ ],
18
+ "type": "object"
19
+ },
20
+ "ToolRequestUserInputQuestion": {
21
+ "description": "EXPERIMENTAL. Represents one request_user_input question and its required options.",
22
+ "properties": {
23
+ "header": {
24
+ "type": "string"
25
+ },
26
+ "id": {
27
+ "type": "string"
28
+ },
29
+ "isOther": {
30
+ "default": false,
31
+ "type": "boolean"
32
+ },
33
+ "isSecret": {
34
+ "default": false,
35
+ "type": "boolean"
36
+ },
37
+ "options": {
38
+ "items": {
39
+ "$ref": "#/definitions/ToolRequestUserInputOption"
40
+ },
41
+ "type": [
42
+ "array",
43
+ "null"
44
+ ]
45
+ },
46
+ "question": {
47
+ "type": "string"
48
+ }
49
+ },
50
+ "required": [
51
+ "header",
52
+ "id",
53
+ "question"
54
+ ],
55
+ "type": "object"
56
+ }
57
+ },
58
+ "description": "EXPERIMENTAL. Params sent with a request_user_input event.",
59
+ "properties": {
60
+ "autoResolutionMs": {
61
+ "default": null,
62
+ "description": "@deprecated Use `isBlocking` to decide whether the request should block.",
63
+ "format": "uint64",
64
+ "minimum": 0.0,
65
+ "type": [
66
+ "integer",
67
+ "null"
68
+ ]
69
+ },
70
+ "isBlocking": {
71
+ "type": "boolean"
72
+ },
73
+ "itemId": {
74
+ "type": "string"
75
+ },
76
+ "questions": {
77
+ "items": {
78
+ "$ref": "#/definitions/ToolRequestUserInputQuestion"
79
+ },
80
+ "type": "array"
81
+ },
82
+ "threadId": {
83
+ "type": "string"
84
+ },
85
+ "turnId": {
86
+ "type": "string"
87
+ }
88
+ },
89
+ "required": [
90
+ "isBlocking",
91
+ "itemId",
92
+ "questions",
93
+ "threadId",
94
+ "turnId"
95
+ ],
96
+ "title": "ToolRequestUserInputParams",
97
+ "type": "object"
98
+ }
codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json ADDED
The diff for this file is too large to render. See raw diff
 
codex-rs/app-server-protocol/schema/json/v1/InitializeParams.json ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "ClientInfo": {
5
+ "properties": {
6
+ "name": {
7
+ "type": "string"
8
+ },
9
+ "title": {
10
+ "type": [
11
+ "string",
12
+ "null"
13
+ ]
14
+ },
15
+ "version": {
16
+ "type": "string"
17
+ }
18
+ },
19
+ "required": [
20
+ "name",
21
+ "version"
22
+ ],
23
+ "type": "object"
24
+ },
25
+ "InitializeCapabilities": {
26
+ "description": "Client-declared capabilities negotiated during initialize.",
27
+ "properties": {
28
+ "experimentalApi": {
29
+ "default": false,
30
+ "description": "Opt into receiving experimental API methods and fields.",
31
+ "type": "boolean"
32
+ },
33
+ "extensions": {
34
+ "additionalProperties": true,
35
+ "description": "MCP extension settings declared by the app-server client.",
36
+ "type": [
37
+ "object",
38
+ "null"
39
+ ]
40
+ },
41
+ "mcpServerOpenaiFormElicitation": {
42
+ "description": "Legacy opt-in for the `openai/form` MCP extension.\n\nNew clients should declare `openai/form` in [`Self::extensions`].",
43
+ "type": "boolean"
44
+ },
45
+ "optOutNotificationMethods": {
46
+ "description": "Exact notification method names that should be suppressed for this connection (for example `thread/started`).",
47
+ "items": {
48
+ "type": "string"
49
+ },
50
+ "type": [
51
+ "array",
52
+ "null"
53
+ ]
54
+ },
55
+ "requestAttestation": {
56
+ "default": false,
57
+ "description": "Opt into `attestation/generate` requests for upstream `x-oai-attestation`.",
58
+ "type": "boolean"
59
+ }
60
+ },
61
+ "type": "object"
62
+ }
63
+ },
64
+ "properties": {
65
+ "capabilities": {
66
+ "anyOf": [
67
+ {
68
+ "$ref": "#/definitions/InitializeCapabilities"
69
+ },
70
+ {
71
+ "type": "null"
72
+ }
73
+ ]
74
+ },
75
+ "clientInfo": {
76
+ "$ref": "#/definitions/ClientInfo"
77
+ }
78
+ },
79
+ "required": [
80
+ "clientInfo"
81
+ ],
82
+ "title": "InitializeParams",
83
+ "type": "object"
84
+ }
codex-rs/app-server-protocol/schema/json/v1/InitializeResponse.json ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "AbsolutePathBuf": {
5
+ "description": "A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).\n\nIMPORTANT: When deserializing an `AbsolutePathBuf`, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute.",
6
+ "type": "string"
7
+ }
8
+ },
9
+ "properties": {
10
+ "codexHome": {
11
+ "allOf": [
12
+ {
13
+ "$ref": "#/definitions/AbsolutePathBuf"
14
+ }
15
+ ],
16
+ "description": "Absolute path to the server's $CODEX_HOME directory."
17
+ },
18
+ "platformFamily": {
19
+ "description": "Platform family for the running app-server target, for example `\"unix\"` or `\"windows\"`.",
20
+ "type": "string"
21
+ },
22
+ "platformOs": {
23
+ "description": "Operating system for the running app-server target, for example `\"macos\"`, `\"linux\"`, or `\"windows\"`.",
24
+ "type": "string"
25
+ },
26
+ "userAgent": {
27
+ "type": "string"
28
+ }
29
+ },
30
+ "required": [
31
+ "codexHome",
32
+ "platformFamily",
33
+ "platformOs",
34
+ "userAgent"
35
+ ],
36
+ "title": "InitializeResponse",
37
+ "type": "object"
38
+ }
codex-rs/app-server-protocol/schema/json/v2/AccountLoginCompletedNotification.json ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "DesktopOnboardingEntrypoint": {
5
+ "enum": [
6
+ "life_sciences"
7
+ ],
8
+ "type": "string"
9
+ }
10
+ },
11
+ "properties": {
12
+ "error": {
13
+ "type": [
14
+ "string",
15
+ "null"
16
+ ]
17
+ },
18
+ "loginId": {
19
+ "type": [
20
+ "string",
21
+ "null"
22
+ ]
23
+ },
24
+ "onboardingEntrypoint": {
25
+ "anyOf": [
26
+ {
27
+ "$ref": "#/definitions/DesktopOnboardingEntrypoint"
28
+ },
29
+ {
30
+ "type": "null"
31
+ }
32
+ ]
33
+ },
34
+ "success": {
35
+ "type": "boolean"
36
+ }
37
+ },
38
+ "required": [
39
+ "success"
40
+ ],
41
+ "title": "AccountLoginCompletedNotification",
42
+ "type": "object"
43
+ }
codex-rs/app-server-protocol/schema/json/v2/AccountRateLimitsUpdatedNotification.json ADDED
@@ -0,0 +1,211 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "CreditsSnapshot": {
5
+ "properties": {
6
+ "balance": {
7
+ "type": [
8
+ "string",
9
+ "null"
10
+ ]
11
+ },
12
+ "hasCredits": {
13
+ "type": "boolean"
14
+ },
15
+ "unlimited": {
16
+ "type": "boolean"
17
+ }
18
+ },
19
+ "required": [
20
+ "hasCredits",
21
+ "unlimited"
22
+ ],
23
+ "type": "object"
24
+ },
25
+ "PlanType": {
26
+ "enum": [
27
+ "free",
28
+ "go",
29
+ "plus",
30
+ "pro",
31
+ "prolite",
32
+ "team",
33
+ "self_serve_business_prolite",
34
+ "self_serve_business_usage_based",
35
+ "business",
36
+ "ent26",
37
+ "enterprise_cbp_automation",
38
+ "enterprise_cbp_usage_based",
39
+ "enterprise",
40
+ "edu",
41
+ "edu_plus",
42
+ "edu_pro",
43
+ "unknown"
44
+ ],
45
+ "type": "string"
46
+ },
47
+ "RateLimitReachedType": {
48
+ "enum": [
49
+ "rate_limit_reached",
50
+ "workspace_owner_credits_depleted",
51
+ "workspace_member_credits_depleted",
52
+ "workspace_owner_usage_limit_reached",
53
+ "workspace_member_usage_limit_reached"
54
+ ],
55
+ "type": "string"
56
+ },
57
+ "RateLimitSnapshot": {
58
+ "properties": {
59
+ "credits": {
60
+ "anyOf": [
61
+ {
62
+ "$ref": "#/definitions/CreditsSnapshot"
63
+ },
64
+ {
65
+ "type": "null"
66
+ }
67
+ ]
68
+ },
69
+ "individualLimit": {
70
+ "anyOf": [
71
+ {
72
+ "$ref": "#/definitions/SpendControlLimitSnapshot"
73
+ },
74
+ {
75
+ "type": "null"
76
+ }
77
+ ]
78
+ },
79
+ "limitId": {
80
+ "type": [
81
+ "string",
82
+ "null"
83
+ ]
84
+ },
85
+ "limitName": {
86
+ "type": [
87
+ "string",
88
+ "null"
89
+ ]
90
+ },
91
+ "normalModelSlug": {
92
+ "description": "Normal model whose display name and reasoning options describe this quota alias.",
93
+ "type": [
94
+ "string",
95
+ "null"
96
+ ]
97
+ },
98
+ "planType": {
99
+ "anyOf": [
100
+ {
101
+ "$ref": "#/definitions/PlanType"
102
+ },
103
+ {
104
+ "type": "null"
105
+ }
106
+ ]
107
+ },
108
+ "primary": {
109
+ "anyOf": [
110
+ {
111
+ "$ref": "#/definitions/RateLimitWindow"
112
+ },
113
+ {
114
+ "type": "null"
115
+ }
116
+ ]
117
+ },
118
+ "rateLimitReachedType": {
119
+ "anyOf": [
120
+ {
121
+ "$ref": "#/definitions/RateLimitReachedType"
122
+ },
123
+ {
124
+ "type": "null"
125
+ }
126
+ ]
127
+ },
128
+ "secondary": {
129
+ "anyOf": [
130
+ {
131
+ "$ref": "#/definitions/RateLimitWindow"
132
+ },
133
+ {
134
+ "type": "null"
135
+ }
136
+ ]
137
+ },
138
+ "spendControlReached": {
139
+ "description": "Backend-reported spend-control state. `None` is unavailable, not a sparse-update recovery.",
140
+ "type": [
141
+ "boolean",
142
+ "null"
143
+ ]
144
+ }
145
+ },
146
+ "type": "object"
147
+ },
148
+ "RateLimitWindow": {
149
+ "properties": {
150
+ "resetsAt": {
151
+ "format": "int64",
152
+ "type": [
153
+ "integer",
154
+ "null"
155
+ ]
156
+ },
157
+ "usedPercent": {
158
+ "format": "int32",
159
+ "type": "integer"
160
+ },
161
+ "windowDurationMins": {
162
+ "format": "int64",
163
+ "type": [
164
+ "integer",
165
+ "null"
166
+ ]
167
+ }
168
+ },
169
+ "required": [
170
+ "usedPercent"
171
+ ],
172
+ "type": "object"
173
+ },
174
+ "SpendControlLimitSnapshot": {
175
+ "properties": {
176
+ "limit": {
177
+ "type": "string"
178
+ },
179
+ "remainingPercent": {
180
+ "format": "int32",
181
+ "type": "integer"
182
+ },
183
+ "resetsAt": {
184
+ "format": "int64",
185
+ "type": "integer"
186
+ },
187
+ "used": {
188
+ "type": "string"
189
+ }
190
+ },
191
+ "required": [
192
+ "limit",
193
+ "remainingPercent",
194
+ "resetsAt",
195
+ "used"
196
+ ],
197
+ "type": "object"
198
+ }
199
+ },
200
+ "description": "Sparse rolling rate-limit update.\n\nClients should merge available values into the most recent `account/rateLimits/read` response or refetch that snapshot. Nullable account metadata may be unavailable in a rolling update and does not clear a previously observed value.",
201
+ "properties": {
202
+ "rateLimits": {
203
+ "$ref": "#/definitions/RateLimitSnapshot"
204
+ }
205
+ },
206
+ "required": [
207
+ "rateLimits"
208
+ ],
209
+ "title": "AccountRateLimitsUpdatedNotification",
210
+ "type": "object"
211
+ }
codex-rs/app-server-protocol/schema/json/v2/AccountUpdatedNotification.json ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "AuthMode": {
5
+ "description": "Authentication mode for OpenAI-backed providers.",
6
+ "oneOf": [
7
+ {
8
+ "description": "OpenAI API key provided by the caller and stored by Codex.",
9
+ "enum": [
10
+ "apikey"
11
+ ],
12
+ "type": "string"
13
+ },
14
+ {
15
+ "description": "ChatGPT OAuth managed by Codex (tokens persisted and refreshed by Codex).",
16
+ "enum": [
17
+ "chatgpt"
18
+ ],
19
+ "type": "string"
20
+ },
21
+ {
22
+ "description": "[UNSTABLE] FOR OPENAI INTERNAL USE ONLY - DO NOT USE.\n\nChatGPT auth tokens are supplied by an external host app and are only stored in memory. Token refresh must be handled by the external host app.",
23
+ "enum": [
24
+ "chatgptAuthTokens"
25
+ ],
26
+ "type": "string"
27
+ },
28
+ {
29
+ "description": "Backend auth supplied as request headers.",
30
+ "enum": [
31
+ "headers"
32
+ ],
33
+ "type": "string"
34
+ },
35
+ {
36
+ "description": "Programmatic Codex auth backed by a registered Agent Identity.",
37
+ "enum": [
38
+ "agentIdentity"
39
+ ],
40
+ "type": "string"
41
+ },
42
+ {
43
+ "description": "Programmatic Codex auth backed by a personal access token.",
44
+ "enum": [
45
+ "personalAccessToken"
46
+ ],
47
+ "type": "string"
48
+ },
49
+ {
50
+ "description": "Amazon Bedrock bearer token managed by Codex.",
51
+ "enum": [
52
+ "bedrockApiKey"
53
+ ],
54
+ "type": "string"
55
+ },
56
+ {
57
+ "description": "Amazon Bedrock AWS access keys managed by Codex.",
58
+ "enum": [
59
+ "bedrockAccessKeys"
60
+ ],
61
+ "type": "string"
62
+ }
63
+ ]
64
+ },
65
+ "PlanType": {
66
+ "enum": [
67
+ "free",
68
+ "go",
69
+ "plus",
70
+ "pro",
71
+ "prolite",
72
+ "team",
73
+ "self_serve_business_prolite",
74
+ "self_serve_business_usage_based",
75
+ "business",
76
+ "ent26",
77
+ "enterprise_cbp_automation",
78
+ "enterprise_cbp_usage_based",
79
+ "enterprise",
80
+ "edu",
81
+ "edu_plus",
82
+ "edu_pro",
83
+ "unknown"
84
+ ],
85
+ "type": "string"
86
+ }
87
+ },
88
+ "properties": {
89
+ "authMode": {
90
+ "anyOf": [
91
+ {
92
+ "$ref": "#/definitions/AuthMode"
93
+ },
94
+ {
95
+ "type": "null"
96
+ }
97
+ ]
98
+ },
99
+ "planType": {
100
+ "anyOf": [
101
+ {
102
+ "$ref": "#/definitions/PlanType"
103
+ },
104
+ {
105
+ "type": "null"
106
+ }
107
+ ]
108
+ }
109
+ },
110
+ "title": "AccountUpdatedNotification",
111
+ "type": "object"
112
+ }
codex-rs/app-server-protocol/schema/json/v2/AgentMessageDeltaNotification.json ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "properties": {
4
+ "delta": {
5
+ "type": "string"
6
+ },
7
+ "itemId": {
8
+ "type": "string"
9
+ },
10
+ "threadId": {
11
+ "type": "string"
12
+ },
13
+ "turnId": {
14
+ "type": "string"
15
+ }
16
+ },
17
+ "required": [
18
+ "delta",
19
+ "itemId",
20
+ "threadId",
21
+ "turnId"
22
+ ],
23
+ "title": "AgentMessageDeltaNotification",
24
+ "type": "object"
25
+ }
codex-rs/app-server-protocol/schema/json/v2/AppListUpdatedNotification.json ADDED
@@ -0,0 +1,288 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "AppBranding": {
5
+ "description": "EXPERIMENTAL - app metadata returned by app-list APIs.",
6
+ "properties": {
7
+ "category": {
8
+ "type": [
9
+ "string",
10
+ "null"
11
+ ]
12
+ },
13
+ "developer": {
14
+ "type": [
15
+ "string",
16
+ "null"
17
+ ]
18
+ },
19
+ "isDiscoverableApp": {
20
+ "type": "boolean"
21
+ },
22
+ "privacyPolicy": {
23
+ "type": [
24
+ "string",
25
+ "null"
26
+ ]
27
+ },
28
+ "termsOfService": {
29
+ "type": [
30
+ "string",
31
+ "null"
32
+ ]
33
+ },
34
+ "website": {
35
+ "type": [
36
+ "string",
37
+ "null"
38
+ ]
39
+ }
40
+ },
41
+ "required": [
42
+ "isDiscoverableApp"
43
+ ],
44
+ "type": "object"
45
+ },
46
+ "AppInfo": {
47
+ "description": "EXPERIMENTAL - app metadata returned by app-list APIs.",
48
+ "properties": {
49
+ "appMetadata": {
50
+ "anyOf": [
51
+ {
52
+ "$ref": "#/definitions/AppMetadata"
53
+ },
54
+ {
55
+ "type": "null"
56
+ }
57
+ ]
58
+ },
59
+ "branding": {
60
+ "anyOf": [
61
+ {
62
+ "$ref": "#/definitions/AppBranding"
63
+ },
64
+ {
65
+ "type": "null"
66
+ }
67
+ ]
68
+ },
69
+ "description": {
70
+ "type": [
71
+ "string",
72
+ "null"
73
+ ]
74
+ },
75
+ "distributionChannel": {
76
+ "type": [
77
+ "string",
78
+ "null"
79
+ ]
80
+ },
81
+ "iconAssets": {
82
+ "additionalProperties": {
83
+ "type": "string"
84
+ },
85
+ "type": [
86
+ "object",
87
+ "null"
88
+ ]
89
+ },
90
+ "iconDarkAssets": {
91
+ "additionalProperties": {
92
+ "type": "string"
93
+ },
94
+ "type": [
95
+ "object",
96
+ "null"
97
+ ]
98
+ },
99
+ "id": {
100
+ "type": "string"
101
+ },
102
+ "installUrl": {
103
+ "type": [
104
+ "string",
105
+ "null"
106
+ ]
107
+ },
108
+ "isAccessible": {
109
+ "default": false,
110
+ "type": "boolean"
111
+ },
112
+ "isEnabled": {
113
+ "default": true,
114
+ "description": "Whether this app is enabled in config.toml. Example: ```toml [apps.bad_app] enabled = false ```",
115
+ "type": "boolean"
116
+ },
117
+ "labels": {
118
+ "additionalProperties": {
119
+ "type": "string"
120
+ },
121
+ "type": [
122
+ "object",
123
+ "null"
124
+ ]
125
+ },
126
+ "logoUrl": {
127
+ "type": [
128
+ "string",
129
+ "null"
130
+ ]
131
+ },
132
+ "logoUrlDark": {
133
+ "type": [
134
+ "string",
135
+ "null"
136
+ ]
137
+ },
138
+ "name": {
139
+ "type": "string"
140
+ },
141
+ "pluginDisplayNames": {
142
+ "default": [],
143
+ "items": {
144
+ "type": "string"
145
+ },
146
+ "type": "array"
147
+ }
148
+ },
149
+ "required": [
150
+ "id",
151
+ "name"
152
+ ],
153
+ "type": "object"
154
+ },
155
+ "AppMetadata": {
156
+ "properties": {
157
+ "categories": {
158
+ "items": {
159
+ "type": "string"
160
+ },
161
+ "type": [
162
+ "array",
163
+ "null"
164
+ ]
165
+ },
166
+ "developer": {
167
+ "type": [
168
+ "string",
169
+ "null"
170
+ ]
171
+ },
172
+ "firstPartyRequiresInstall": {
173
+ "type": [
174
+ "boolean",
175
+ "null"
176
+ ]
177
+ },
178
+ "review": {
179
+ "anyOf": [
180
+ {
181
+ "$ref": "#/definitions/AppReview"
182
+ },
183
+ {
184
+ "type": "null"
185
+ }
186
+ ]
187
+ },
188
+ "screenshots": {
189
+ "items": {
190
+ "$ref": "#/definitions/AppScreenshot"
191
+ },
192
+ "type": [
193
+ "array",
194
+ "null"
195
+ ]
196
+ },
197
+ "seoDescription": {
198
+ "type": [
199
+ "string",
200
+ "null"
201
+ ]
202
+ },
203
+ "showInComposerWhenUnlinked": {
204
+ "type": [
205
+ "boolean",
206
+ "null"
207
+ ]
208
+ },
209
+ "subCategories": {
210
+ "items": {
211
+ "type": "string"
212
+ },
213
+ "type": [
214
+ "array",
215
+ "null"
216
+ ]
217
+ },
218
+ "version": {
219
+ "type": [
220
+ "string",
221
+ "null"
222
+ ]
223
+ },
224
+ "versionId": {
225
+ "type": [
226
+ "string",
227
+ "null"
228
+ ]
229
+ },
230
+ "versionNotes": {
231
+ "type": [
232
+ "string",
233
+ "null"
234
+ ]
235
+ }
236
+ },
237
+ "type": "object"
238
+ },
239
+ "AppReview": {
240
+ "properties": {
241
+ "status": {
242
+ "type": "string"
243
+ }
244
+ },
245
+ "required": [
246
+ "status"
247
+ ],
248
+ "type": "object"
249
+ },
250
+ "AppScreenshot": {
251
+ "properties": {
252
+ "fileId": {
253
+ "type": [
254
+ "string",
255
+ "null"
256
+ ]
257
+ },
258
+ "url": {
259
+ "type": [
260
+ "string",
261
+ "null"
262
+ ]
263
+ },
264
+ "userPrompt": {
265
+ "type": "string"
266
+ }
267
+ },
268
+ "required": [
269
+ "userPrompt"
270
+ ],
271
+ "type": "object"
272
+ }
273
+ },
274
+ "description": "EXPERIMENTAL - notification emitted when the app list changes.",
275
+ "properties": {
276
+ "data": {
277
+ "items": {
278
+ "$ref": "#/definitions/AppInfo"
279
+ },
280
+ "type": "array"
281
+ }
282
+ },
283
+ "required": [
284
+ "data"
285
+ ],
286
+ "title": "AppListUpdatedNotification",
287
+ "type": "object"
288
+ }
codex-rs/app-server-protocol/schema/json/v2/AppsInstalledParams.json ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "description": "Read the committed installed connector runtime snapshot.",
4
+ "properties": {
5
+ "forceRefresh": {
6
+ "description": "When true and Apps are permitted, refresh and publish the hosted connector runtime tool snapshot first.",
7
+ "type": "boolean"
8
+ },
9
+ "threadId": {
10
+ "description": "Optional loaded thread id used to evaluate effective app configuration.",
11
+ "type": [
12
+ "string",
13
+ "null"
14
+ ]
15
+ }
16
+ },
17
+ "title": "AppsInstalledParams",
18
+ "type": "object"
19
+ }
codex-rs/app-server-protocol/schema/json/v2/AppsInstalledResponse.json ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "InstalledApp": {
5
+ "description": "Installed connector runtime state.",
6
+ "properties": {
7
+ "callable": {
8
+ "description": "Whether the connector is enabled and has a non-synthetic, model-visible tool allowed by effective MCP and app/tool policy in the committed runtime snapshot.",
9
+ "type": "boolean"
10
+ },
11
+ "enabled": {
12
+ "description": "Effective enabled state after applying global, workspace, local, and managed configuration at read time.",
13
+ "type": "boolean"
14
+ },
15
+ "id": {
16
+ "type": "string"
17
+ },
18
+ "runtimeName": {
19
+ "description": "Best-effort name carried by the runtime tool catalog. Canonical app metadata remains owned by `app/read`.",
20
+ "type": [
21
+ "string",
22
+ "null"
23
+ ]
24
+ }
25
+ },
26
+ "required": [
27
+ "callable",
28
+ "enabled",
29
+ "id"
30
+ ],
31
+ "type": "object"
32
+ }
33
+ },
34
+ "description": "The installed connectors in one committed runtime snapshot.",
35
+ "properties": {
36
+ "apps": {
37
+ "items": {
38
+ "$ref": "#/definitions/InstalledApp"
39
+ },
40
+ "type": "array"
41
+ }
42
+ },
43
+ "required": [
44
+ "apps"
45
+ ],
46
+ "title": "AppsInstalledResponse",
47
+ "type": "object"
48
+ }
codex-rs/app-server-protocol/schema/json/v2/AppsListParams.json ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "description": "EXPERIMENTAL - list available apps/connectors.",
4
+ "properties": {
5
+ "cursor": {
6
+ "description": "Opaque pagination cursor returned by a previous call.",
7
+ "type": [
8
+ "string",
9
+ "null"
10
+ ]
11
+ },
12
+ "forceRefetch": {
13
+ "description": "When true, bypass app caches and fetch the latest data from sources.",
14
+ "type": "boolean"
15
+ },
16
+ "limit": {
17
+ "description": "Optional page size; defaults to a reasonable server-side value.",
18
+ "format": "uint32",
19
+ "minimum": 0.0,
20
+ "type": [
21
+ "integer",
22
+ "null"
23
+ ]
24
+ },
25
+ "threadId": {
26
+ "description": "Optional thread id used to evaluate app feature gating from that thread's config.",
27
+ "type": [
28
+ "string",
29
+ "null"
30
+ ]
31
+ }
32
+ },
33
+ "title": "AppsListParams",
34
+ "type": "object"
35
+ }
codex-rs/app-server-protocol/schema/json/v2/AppsListResponse.json ADDED
@@ -0,0 +1,295 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "AppBranding": {
5
+ "description": "EXPERIMENTAL - app metadata returned by app-list APIs.",
6
+ "properties": {
7
+ "category": {
8
+ "type": [
9
+ "string",
10
+ "null"
11
+ ]
12
+ },
13
+ "developer": {
14
+ "type": [
15
+ "string",
16
+ "null"
17
+ ]
18
+ },
19
+ "isDiscoverableApp": {
20
+ "type": "boolean"
21
+ },
22
+ "privacyPolicy": {
23
+ "type": [
24
+ "string",
25
+ "null"
26
+ ]
27
+ },
28
+ "termsOfService": {
29
+ "type": [
30
+ "string",
31
+ "null"
32
+ ]
33
+ },
34
+ "website": {
35
+ "type": [
36
+ "string",
37
+ "null"
38
+ ]
39
+ }
40
+ },
41
+ "required": [
42
+ "isDiscoverableApp"
43
+ ],
44
+ "type": "object"
45
+ },
46
+ "AppInfo": {
47
+ "description": "EXPERIMENTAL - app metadata returned by app-list APIs.",
48
+ "properties": {
49
+ "appMetadata": {
50
+ "anyOf": [
51
+ {
52
+ "$ref": "#/definitions/AppMetadata"
53
+ },
54
+ {
55
+ "type": "null"
56
+ }
57
+ ]
58
+ },
59
+ "branding": {
60
+ "anyOf": [
61
+ {
62
+ "$ref": "#/definitions/AppBranding"
63
+ },
64
+ {
65
+ "type": "null"
66
+ }
67
+ ]
68
+ },
69
+ "description": {
70
+ "type": [
71
+ "string",
72
+ "null"
73
+ ]
74
+ },
75
+ "distributionChannel": {
76
+ "type": [
77
+ "string",
78
+ "null"
79
+ ]
80
+ },
81
+ "iconAssets": {
82
+ "additionalProperties": {
83
+ "type": "string"
84
+ },
85
+ "type": [
86
+ "object",
87
+ "null"
88
+ ]
89
+ },
90
+ "iconDarkAssets": {
91
+ "additionalProperties": {
92
+ "type": "string"
93
+ },
94
+ "type": [
95
+ "object",
96
+ "null"
97
+ ]
98
+ },
99
+ "id": {
100
+ "type": "string"
101
+ },
102
+ "installUrl": {
103
+ "type": [
104
+ "string",
105
+ "null"
106
+ ]
107
+ },
108
+ "isAccessible": {
109
+ "default": false,
110
+ "type": "boolean"
111
+ },
112
+ "isEnabled": {
113
+ "default": true,
114
+ "description": "Whether this app is enabled in config.toml. Example: ```toml [apps.bad_app] enabled = false ```",
115
+ "type": "boolean"
116
+ },
117
+ "labels": {
118
+ "additionalProperties": {
119
+ "type": "string"
120
+ },
121
+ "type": [
122
+ "object",
123
+ "null"
124
+ ]
125
+ },
126
+ "logoUrl": {
127
+ "type": [
128
+ "string",
129
+ "null"
130
+ ]
131
+ },
132
+ "logoUrlDark": {
133
+ "type": [
134
+ "string",
135
+ "null"
136
+ ]
137
+ },
138
+ "name": {
139
+ "type": "string"
140
+ },
141
+ "pluginDisplayNames": {
142
+ "default": [],
143
+ "items": {
144
+ "type": "string"
145
+ },
146
+ "type": "array"
147
+ }
148
+ },
149
+ "required": [
150
+ "id",
151
+ "name"
152
+ ],
153
+ "type": "object"
154
+ },
155
+ "AppMetadata": {
156
+ "properties": {
157
+ "categories": {
158
+ "items": {
159
+ "type": "string"
160
+ },
161
+ "type": [
162
+ "array",
163
+ "null"
164
+ ]
165
+ },
166
+ "developer": {
167
+ "type": [
168
+ "string",
169
+ "null"
170
+ ]
171
+ },
172
+ "firstPartyRequiresInstall": {
173
+ "type": [
174
+ "boolean",
175
+ "null"
176
+ ]
177
+ },
178
+ "review": {
179
+ "anyOf": [
180
+ {
181
+ "$ref": "#/definitions/AppReview"
182
+ },
183
+ {
184
+ "type": "null"
185
+ }
186
+ ]
187
+ },
188
+ "screenshots": {
189
+ "items": {
190
+ "$ref": "#/definitions/AppScreenshot"
191
+ },
192
+ "type": [
193
+ "array",
194
+ "null"
195
+ ]
196
+ },
197
+ "seoDescription": {
198
+ "type": [
199
+ "string",
200
+ "null"
201
+ ]
202
+ },
203
+ "showInComposerWhenUnlinked": {
204
+ "type": [
205
+ "boolean",
206
+ "null"
207
+ ]
208
+ },
209
+ "subCategories": {
210
+ "items": {
211
+ "type": "string"
212
+ },
213
+ "type": [
214
+ "array",
215
+ "null"
216
+ ]
217
+ },
218
+ "version": {
219
+ "type": [
220
+ "string",
221
+ "null"
222
+ ]
223
+ },
224
+ "versionId": {
225
+ "type": [
226
+ "string",
227
+ "null"
228
+ ]
229
+ },
230
+ "versionNotes": {
231
+ "type": [
232
+ "string",
233
+ "null"
234
+ ]
235
+ }
236
+ },
237
+ "type": "object"
238
+ },
239
+ "AppReview": {
240
+ "properties": {
241
+ "status": {
242
+ "type": "string"
243
+ }
244
+ },
245
+ "required": [
246
+ "status"
247
+ ],
248
+ "type": "object"
249
+ },
250
+ "AppScreenshot": {
251
+ "properties": {
252
+ "fileId": {
253
+ "type": [
254
+ "string",
255
+ "null"
256
+ ]
257
+ },
258
+ "url": {
259
+ "type": [
260
+ "string",
261
+ "null"
262
+ ]
263
+ },
264
+ "userPrompt": {
265
+ "type": "string"
266
+ }
267
+ },
268
+ "required": [
269
+ "userPrompt"
270
+ ],
271
+ "type": "object"
272
+ }
273
+ },
274
+ "description": "EXPERIMENTAL - app list response.",
275
+ "properties": {
276
+ "data": {
277
+ "items": {
278
+ "$ref": "#/definitions/AppInfo"
279
+ },
280
+ "type": "array"
281
+ },
282
+ "nextCursor": {
283
+ "description": "Opaque cursor to pass to the next call to continue after the last item. If None, there are no more items to return.",
284
+ "type": [
285
+ "string",
286
+ "null"
287
+ ]
288
+ }
289
+ },
290
+ "required": [
291
+ "data"
292
+ ],
293
+ "title": "AppsListResponse",
294
+ "type": "object"
295
+ }
codex-rs/app-server-protocol/schema/json/v2/AppsReadParams.json ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "description": "EXPERIMENTAL - read metadata for specific apps/connectors.",
4
+ "properties": {
5
+ "appIds": {
6
+ "description": "App ids to read. The server accepts at most 100 ids and deduplicates repeated ids while preserving their first-request order.",
7
+ "items": {
8
+ "type": "string"
9
+ },
10
+ "type": "array"
11
+ },
12
+ "includeTools": {
13
+ "description": "When true, include display-only public tool summaries in the returned metadata.",
14
+ "type": "boolean"
15
+ },
16
+ "threadId": {
17
+ "description": "Optional loaded thread id used to evaluate effective app configuration.",
18
+ "type": [
19
+ "string",
20
+ "null"
21
+ ]
22
+ }
23
+ },
24
+ "required": [
25
+ "appIds"
26
+ ],
27
+ "title": "AppsReadParams",
28
+ "type": "object"
29
+ }
codex-rs/app-server-protocol/schema/json/v2/AppsReadResponse.json ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "AppToolSummary": {
5
+ "description": "EXPERIMENTAL - metadata returned by app/read.",
6
+ "properties": {
7
+ "description": {
8
+ "type": "string"
9
+ },
10
+ "disabledReason": {
11
+ "type": [
12
+ "string",
13
+ "null"
14
+ ]
15
+ },
16
+ "isEnabled": {
17
+ "default": true,
18
+ "type": "boolean"
19
+ },
20
+ "isReadOnly": {
21
+ "default": false,
22
+ "type": "boolean"
23
+ },
24
+ "name": {
25
+ "type": "string"
26
+ },
27
+ "title": {
28
+ "type": [
29
+ "string",
30
+ "null"
31
+ ]
32
+ }
33
+ },
34
+ "required": [
35
+ "description",
36
+ "name"
37
+ ],
38
+ "type": "object"
39
+ },
40
+ "ConnectorMetadata": {
41
+ "description": "EXPERIMENTAL - metadata returned by app/read.",
42
+ "properties": {
43
+ "description": {
44
+ "type": [
45
+ "string",
46
+ "null"
47
+ ]
48
+ },
49
+ "distributionChannel": {
50
+ "type": [
51
+ "string",
52
+ "null"
53
+ ]
54
+ },
55
+ "iconUrl": {
56
+ "type": [
57
+ "string",
58
+ "null"
59
+ ]
60
+ },
61
+ "iconUrlDark": {
62
+ "type": [
63
+ "string",
64
+ "null"
65
+ ]
66
+ },
67
+ "id": {
68
+ "type": "string"
69
+ },
70
+ "installUrl": {
71
+ "type": [
72
+ "string",
73
+ "null"
74
+ ]
75
+ },
76
+ "name": {
77
+ "type": "string"
78
+ },
79
+ "pluginDisplayNames": {
80
+ "default": [],
81
+ "items": {
82
+ "type": "string"
83
+ },
84
+ "type": "array"
85
+ },
86
+ "toolSummaries": {
87
+ "items": {
88
+ "$ref": "#/definitions/AppToolSummary"
89
+ },
90
+ "type": [
91
+ "array",
92
+ "null"
93
+ ]
94
+ }
95
+ },
96
+ "required": [
97
+ "id",
98
+ "name"
99
+ ],
100
+ "type": "object"
101
+ }
102
+ },
103
+ "description": "EXPERIMENTAL - app/read response.",
104
+ "properties": {
105
+ "apps": {
106
+ "items": {
107
+ "$ref": "#/definitions/ConnectorMetadata"
108
+ },
109
+ "type": "array"
110
+ },
111
+ "missingAppIds": {
112
+ "items": {
113
+ "type": "string"
114
+ },
115
+ "type": "array"
116
+ }
117
+ },
118
+ "required": [
119
+ "apps",
120
+ "missingAppIds"
121
+ ],
122
+ "title": "AppsReadResponse",
123
+ "type": "object"
124
+ }
codex-rs/app-server-protocol/schema/json/v2/AuthRecoveryNotification.json ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "properties": {
4
+ "message": {
5
+ "type": "string"
6
+ },
7
+ "provider": {
8
+ "type": "string"
9
+ },
10
+ "threadId": {
11
+ "type": "string"
12
+ },
13
+ "turnId": {
14
+ "type": "string"
15
+ }
16
+ },
17
+ "required": [
18
+ "message",
19
+ "provider",
20
+ "threadId",
21
+ "turnId"
22
+ ],
23
+ "title": "AuthRecoveryNotification",
24
+ "type": "object"
25
+ }
codex-rs/app-server-protocol/schema/json/v2/CancelLoginAccountParams.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "properties": {
4
+ "loginId": {
5
+ "type": "string"
6
+ }
7
+ },
8
+ "required": [
9
+ "loginId"
10
+ ],
11
+ "title": "CancelLoginAccountParams",
12
+ "type": "object"
13
+ }
codex-rs/app-server-protocol/schema/json/v2/CancelLoginAccountResponse.json ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "CancelLoginAccountStatus": {
5
+ "enum": [
6
+ "canceled",
7
+ "notFound"
8
+ ],
9
+ "type": "string"
10
+ }
11
+ },
12
+ "properties": {
13
+ "status": {
14
+ "$ref": "#/definitions/CancelLoginAccountStatus"
15
+ }
16
+ },
17
+ "required": [
18
+ "status"
19
+ ],
20
+ "title": "CancelLoginAccountResponse",
21
+ "type": "object"
22
+ }
codex-rs/app-server-protocol/schema/json/v2/CommandExecOutputDeltaNotification.json ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "CommandExecOutputStream": {
5
+ "description": "Stream label for `command/exec/outputDelta` notifications.",
6
+ "oneOf": [
7
+ {
8
+ "description": "stdout stream. PTY mode multiplexes terminal output here.",
9
+ "enum": [
10
+ "stdout"
11
+ ],
12
+ "type": "string"
13
+ },
14
+ {
15
+ "description": "stderr stream.",
16
+ "enum": [
17
+ "stderr"
18
+ ],
19
+ "type": "string"
20
+ }
21
+ ]
22
+ }
23
+ },
24
+ "description": "Base64-encoded output chunk emitted for a streaming `command/exec` request.\n\nThese notifications are connection-scoped. If the originating connection closes, the server terminates the process.",
25
+ "properties": {
26
+ "capReached": {
27
+ "description": "`true` on the final streamed chunk for a stream when `outputBytesCap` truncated later output on that stream.",
28
+ "type": "boolean"
29
+ },
30
+ "deltaBase64": {
31
+ "description": "Base64-encoded output bytes.",
32
+ "type": "string"
33
+ },
34
+ "processId": {
35
+ "description": "Client-supplied, connection-scoped `processId` from the original `command/exec` request.",
36
+ "type": "string"
37
+ },
38
+ "stream": {
39
+ "allOf": [
40
+ {
41
+ "$ref": "#/definitions/CommandExecOutputStream"
42
+ }
43
+ ],
44
+ "description": "Output stream for this chunk."
45
+ }
46
+ },
47
+ "required": [
48
+ "capReached",
49
+ "deltaBase64",
50
+ "processId",
51
+ "stream"
52
+ ],
53
+ "title": "CommandExecOutputDeltaNotification",
54
+ "type": "object"
55
+ }
codex-rs/app-server-protocol/schema/json/v2/CommandExecParams.json ADDED
@@ -0,0 +1,238 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "AbsolutePathBuf": {
5
+ "description": "A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).\n\nIMPORTANT: When deserializing an `AbsolutePathBuf`, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute.",
6
+ "type": "string"
7
+ },
8
+ "CommandExecTerminalSize": {
9
+ "description": "PTY size in character cells for `command/exec` PTY sessions.",
10
+ "properties": {
11
+ "cols": {
12
+ "description": "Terminal width in character cells.",
13
+ "format": "uint16",
14
+ "minimum": 0.0,
15
+ "type": "integer"
16
+ },
17
+ "rows": {
18
+ "description": "Terminal height in character cells.",
19
+ "format": "uint16",
20
+ "minimum": 0.0,
21
+ "type": "integer"
22
+ }
23
+ },
24
+ "required": [
25
+ "cols",
26
+ "rows"
27
+ ],
28
+ "type": "object"
29
+ },
30
+ "NetworkAccess": {
31
+ "enum": [
32
+ "restricted",
33
+ "enabled"
34
+ ],
35
+ "type": "string"
36
+ },
37
+ "SandboxPolicy": {
38
+ "oneOf": [
39
+ {
40
+ "properties": {
41
+ "type": {
42
+ "enum": [
43
+ "dangerFullAccess"
44
+ ],
45
+ "title": "DangerFullAccessSandboxPolicyType",
46
+ "type": "string"
47
+ }
48
+ },
49
+ "required": [
50
+ "type"
51
+ ],
52
+ "title": "DangerFullAccessSandboxPolicy",
53
+ "type": "object"
54
+ },
55
+ {
56
+ "properties": {
57
+ "networkAccess": {
58
+ "default": false,
59
+ "type": "boolean"
60
+ },
61
+ "type": {
62
+ "enum": [
63
+ "readOnly"
64
+ ],
65
+ "title": "ReadOnlySandboxPolicyType",
66
+ "type": "string"
67
+ }
68
+ },
69
+ "required": [
70
+ "type"
71
+ ],
72
+ "title": "ReadOnlySandboxPolicy",
73
+ "type": "object"
74
+ },
75
+ {
76
+ "properties": {
77
+ "networkAccess": {
78
+ "allOf": [
79
+ {
80
+ "$ref": "#/definitions/NetworkAccess"
81
+ }
82
+ ],
83
+ "default": "restricted"
84
+ },
85
+ "type": {
86
+ "enum": [
87
+ "externalSandbox"
88
+ ],
89
+ "title": "ExternalSandboxSandboxPolicyType",
90
+ "type": "string"
91
+ }
92
+ },
93
+ "required": [
94
+ "type"
95
+ ],
96
+ "title": "ExternalSandboxSandboxPolicy",
97
+ "type": "object"
98
+ },
99
+ {
100
+ "properties": {
101
+ "excludeSlashTmp": {
102
+ "default": false,
103
+ "type": "boolean"
104
+ },
105
+ "excludeTmpdirEnvVar": {
106
+ "default": false,
107
+ "type": "boolean"
108
+ },
109
+ "networkAccess": {
110
+ "default": false,
111
+ "type": "boolean"
112
+ },
113
+ "type": {
114
+ "enum": [
115
+ "workspaceWrite"
116
+ ],
117
+ "title": "WorkspaceWriteSandboxPolicyType",
118
+ "type": "string"
119
+ },
120
+ "writableRoots": {
121
+ "default": [],
122
+ "items": {
123
+ "$ref": "#/definitions/AbsolutePathBuf"
124
+ },
125
+ "type": "array"
126
+ }
127
+ },
128
+ "required": [
129
+ "type"
130
+ ],
131
+ "title": "WorkspaceWriteSandboxPolicy",
132
+ "type": "object"
133
+ }
134
+ ]
135
+ }
136
+ },
137
+ "description": "Run a standalone command (argv vector) in the server sandbox without creating a thread or turn.\n\nThe final `command/exec` response is deferred until the process exits and is sent only after all `command/exec/outputDelta` notifications for that connection have been emitted.",
138
+ "properties": {
139
+ "command": {
140
+ "description": "Command argv vector. Empty arrays are rejected.",
141
+ "items": {
142
+ "type": "string"
143
+ },
144
+ "type": "array"
145
+ },
146
+ "cwd": {
147
+ "description": "Optional working directory. Defaults to the server cwd.",
148
+ "type": [
149
+ "string",
150
+ "null"
151
+ ]
152
+ },
153
+ "disableOutputCap": {
154
+ "description": "Disable stdout/stderr capture truncation for this request.\n\nCannot be combined with `outputBytesCap`.",
155
+ "type": "boolean"
156
+ },
157
+ "disableTimeout": {
158
+ "description": "Disable the timeout entirely for this request.\n\nCannot be combined with `timeoutMs`.",
159
+ "type": "boolean"
160
+ },
161
+ "env": {
162
+ "additionalProperties": {
163
+ "type": [
164
+ "string",
165
+ "null"
166
+ ]
167
+ },
168
+ "description": "Optional environment overrides merged into the server-computed environment.\n\nMatching names override inherited values. Set a key to `null` to unset an inherited variable.",
169
+ "type": [
170
+ "object",
171
+ "null"
172
+ ]
173
+ },
174
+ "outputBytesCap": {
175
+ "description": "Optional per-stream stdout/stderr capture cap in bytes.\n\nWhen omitted, the server default applies. Cannot be combined with `disableOutputCap`.",
176
+ "format": "uint",
177
+ "minimum": 0.0,
178
+ "type": [
179
+ "integer",
180
+ "null"
181
+ ]
182
+ },
183
+ "processId": {
184
+ "description": "Optional client-supplied, connection-scoped process id.\n\nRequired for `tty`, `streamStdin`, `streamStdoutStderr`, and follow-up `command/exec/write`, `command/exec/resize`, and `command/exec/terminate` calls. When omitted, buffered execution gets an internal id that is not exposed to the client.",
185
+ "type": [
186
+ "string",
187
+ "null"
188
+ ]
189
+ },
190
+ "sandboxPolicy": {
191
+ "anyOf": [
192
+ {
193
+ "$ref": "#/definitions/SandboxPolicy"
194
+ },
195
+ {
196
+ "type": "null"
197
+ }
198
+ ],
199
+ "description": "Optional sandbox policy for this command.\n\nUses the same shape as thread/turn execution sandbox configuration and defaults to the user's configured policy when omitted. Cannot be combined with `permissionProfile`."
200
+ },
201
+ "size": {
202
+ "anyOf": [
203
+ {
204
+ "$ref": "#/definitions/CommandExecTerminalSize"
205
+ },
206
+ {
207
+ "type": "null"
208
+ }
209
+ ],
210
+ "description": "Optional initial PTY size in character cells. Only valid when `tty` is true."
211
+ },
212
+ "streamStdin": {
213
+ "description": "Allow follow-up `command/exec/write` requests to write stdin bytes.\n\nRequires a client-supplied `processId`.",
214
+ "type": "boolean"
215
+ },
216
+ "streamStdoutStderr": {
217
+ "description": "Stream stdout/stderr via `command/exec/outputDelta` notifications.\n\nStreamed bytes are not duplicated into the final response and require a client-supplied `processId`.",
218
+ "type": "boolean"
219
+ },
220
+ "timeoutMs": {
221
+ "description": "Optional timeout in milliseconds.\n\nWhen omitted, the server default applies. Cannot be combined with `disableTimeout`.",
222
+ "format": "int64",
223
+ "type": [
224
+ "integer",
225
+ "null"
226
+ ]
227
+ },
228
+ "tty": {
229
+ "description": "Enable PTY mode.\n\nThis implies `streamStdin` and `streamStdoutStderr`.",
230
+ "type": "boolean"
231
+ }
232
+ },
233
+ "required": [
234
+ "command"
235
+ ],
236
+ "title": "CommandExecParams",
237
+ "type": "object"
238
+ }
codex-rs/app-server-protocol/schema/json/v2/CommandExecResizeParams.json ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "CommandExecTerminalSize": {
5
+ "description": "PTY size in character cells for `command/exec` PTY sessions.",
6
+ "properties": {
7
+ "cols": {
8
+ "description": "Terminal width in character cells.",
9
+ "format": "uint16",
10
+ "minimum": 0.0,
11
+ "type": "integer"
12
+ },
13
+ "rows": {
14
+ "description": "Terminal height in character cells.",
15
+ "format": "uint16",
16
+ "minimum": 0.0,
17
+ "type": "integer"
18
+ }
19
+ },
20
+ "required": [
21
+ "cols",
22
+ "rows"
23
+ ],
24
+ "type": "object"
25
+ }
26
+ },
27
+ "description": "Resize a running PTY-backed `command/exec` session.",
28
+ "properties": {
29
+ "processId": {
30
+ "description": "Client-supplied, connection-scoped `processId` from the original `command/exec` request.",
31
+ "type": "string"
32
+ },
33
+ "size": {
34
+ "allOf": [
35
+ {
36
+ "$ref": "#/definitions/CommandExecTerminalSize"
37
+ }
38
+ ],
39
+ "description": "New PTY size in character cells."
40
+ }
41
+ },
42
+ "required": [
43
+ "processId",
44
+ "size"
45
+ ],
46
+ "title": "CommandExecResizeParams",
47
+ "type": "object"
48
+ }
codex-rs/app-server-protocol/schema/json/v2/CommandExecResizeResponse.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "description": "Empty success response for `command/exec/resize`.",
4
+ "title": "CommandExecResizeResponse",
5
+ "type": "object"
6
+ }
codex-rs/app-server-protocol/schema/json/v2/CommandExecResponse.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "description": "Final buffered result for `command/exec`.",
4
+ "properties": {
5
+ "exitCode": {
6
+ "description": "Process exit code.",
7
+ "format": "int32",
8
+ "type": "integer"
9
+ },
10
+ "stderr": {
11
+ "description": "Buffered stderr capture.\n\nEmpty when stderr was streamed via `command/exec/outputDelta`.",
12
+ "type": "string"
13
+ },
14
+ "stdout": {
15
+ "description": "Buffered stdout capture.\n\nEmpty when stdout was streamed via `command/exec/outputDelta`.",
16
+ "type": "string"
17
+ }
18
+ },
19
+ "required": [
20
+ "exitCode",
21
+ "stderr",
22
+ "stdout"
23
+ ],
24
+ "title": "CommandExecResponse",
25
+ "type": "object"
26
+ }
codex-rs/app-server-protocol/schema/json/v2/CommandExecTerminateParams.json ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "description": "Terminate a running `command/exec` session.",
4
+ "properties": {
5
+ "processId": {
6
+ "description": "Client-supplied, connection-scoped `processId` from the original `command/exec` request.",
7
+ "type": "string"
8
+ }
9
+ },
10
+ "required": [
11
+ "processId"
12
+ ],
13
+ "title": "CommandExecTerminateParams",
14
+ "type": "object"
15
+ }
codex-rs/app-server-protocol/schema/json/v2/CommandExecTerminateResponse.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "description": "Empty success response for `command/exec/terminate`.",
4
+ "title": "CommandExecTerminateResponse",
5
+ "type": "object"
6
+ }
codex-rs/app-server-protocol/schema/json/v2/CommandExecWriteParams.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "description": "Write stdin bytes to a running `command/exec` session, close stdin, or both.",
4
+ "properties": {
5
+ "closeStdin": {
6
+ "description": "Close stdin after writing `deltaBase64`, if present.",
7
+ "type": "boolean"
8
+ },
9
+ "deltaBase64": {
10
+ "description": "Optional base64-encoded stdin bytes to write.",
11
+ "type": [
12
+ "string",
13
+ "null"
14
+ ]
15
+ },
16
+ "processId": {
17
+ "description": "Client-supplied, connection-scoped `processId` from the original `command/exec` request.",
18
+ "type": "string"
19
+ }
20
+ },
21
+ "required": [
22
+ "processId"
23
+ ],
24
+ "title": "CommandExecWriteParams",
25
+ "type": "object"
26
+ }
codex-rs/app-server-protocol/schema/json/v2/CommandExecWriteResponse.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "description": "Empty success response for `command/exec/write`.",
4
+ "title": "CommandExecWriteResponse",
5
+ "type": "object"
6
+ }
codex-rs/app-server-protocol/schema/json/v2/CommandExecutionOutputDeltaNotification.json ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "properties": {
4
+ "delta": {
5
+ "type": "string"
6
+ },
7
+ "itemId": {
8
+ "type": "string"
9
+ },
10
+ "threadId": {
11
+ "type": "string"
12
+ },
13
+ "turnId": {
14
+ "type": "string"
15
+ }
16
+ },
17
+ "required": [
18
+ "delta",
19
+ "itemId",
20
+ "threadId",
21
+ "turnId"
22
+ ],
23
+ "title": "CommandExecutionOutputDeltaNotification",
24
+ "type": "object"
25
+ }
codex-rs/app-server-protocol/schema/json/v2/ConfigBatchWriteParams.json ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "ConfigEdit": {
5
+ "properties": {
6
+ "keyPath": {
7
+ "type": "string"
8
+ },
9
+ "mergeStrategy": {
10
+ "$ref": "#/definitions/MergeStrategy"
11
+ },
12
+ "value": true
13
+ },
14
+ "required": [
15
+ "keyPath",
16
+ "mergeStrategy",
17
+ "value"
18
+ ],
19
+ "type": "object"
20
+ },
21
+ "MergeStrategy": {
22
+ "enum": [
23
+ "replace",
24
+ "upsert"
25
+ ],
26
+ "type": "string"
27
+ }
28
+ },
29
+ "properties": {
30
+ "edits": {
31
+ "items": {
32
+ "$ref": "#/definitions/ConfigEdit"
33
+ },
34
+ "type": "array"
35
+ },
36
+ "expectedVersion": {
37
+ "type": [
38
+ "string",
39
+ "null"
40
+ ]
41
+ },
42
+ "filePath": {
43
+ "description": "Path to the config file to write; defaults to the user's `config.toml` when omitted.",
44
+ "type": [
45
+ "string",
46
+ "null"
47
+ ]
48
+ },
49
+ "reloadUserConfig": {
50
+ "description": "When true, hot-reload updated runtime settings into loaded threads after writing. Session-static model, reasoning-effort, Plan-mode reasoning-effort, and service-tier defaults are not reloaded. The deprecated personality setting is also not reloaded.",
51
+ "type": "boolean"
52
+ }
53
+ },
54
+ "required": [
55
+ "edits"
56
+ ],
57
+ "title": "ConfigBatchWriteParams",
58
+ "type": "object"
59
+ }