@@ -13,6 +13,7 @@ use codex_app_server_protocol::DynamicToolCallOutputContentItem;
1313use codex_app_server_protocol:: DynamicToolCallResponse ;
1414use codex_app_server_protocol:: FileChangeApprovalDecision ;
1515use codex_app_server_protocol:: FileChangeRequestApprovalResponse ;
16+ use codex_app_server_protocol:: GrantedPermissionProfile ;
1617use codex_app_server_protocol:: InitializeCapabilities ;
1718use codex_app_server_protocol:: InitializeParams ;
1819use codex_app_server_protocol:: InitializeResponse ;
@@ -22,14 +23,16 @@ use codex_app_server_protocol::JSONRPCMessage;
2223use codex_app_server_protocol:: JSONRPCNotification ;
2324use codex_app_server_protocol:: JSONRPCRequest ;
2425use codex_app_server_protocol:: JSONRPCResponse ;
26+ use codex_app_server_protocol:: McpServerElicitationAction ;
27+ use codex_app_server_protocol:: McpServerElicitationRequestResponse ;
2528use codex_app_server_protocol:: Model ;
2629use codex_app_server_protocol:: ModelListParams ;
2730use codex_app_server_protocol:: ModelListResponse ;
31+ use codex_app_server_protocol:: PermissionGrantScope ;
32+ use codex_app_server_protocol:: PermissionsRequestApprovalResponse ;
2833use codex_app_server_protocol:: RequestId ;
2934use codex_app_server_protocol:: ServerNotification ;
3035use codex_app_server_protocol:: ServerRequest ;
31- use codex_app_server_protocol:: SkillApprovalDecision ;
32- use codex_app_server_protocol:: SkillRequestApprovalResponse ;
3336use codex_app_server_protocol:: ThreadItem ;
3437use codex_app_server_protocol:: ThreadResumeParams ;
3538use codex_app_server_protocol:: ThreadResumeResponse ;
@@ -142,6 +145,7 @@ impl AppServerClient {
142145 params : Some (
143146 serde_json:: to_value ( params) . context ( "serialize `turn/interrupt` params" ) ?,
144147 ) ,
148+ trace : None ,
145149 } ) ;
146150 self . write_jsonrpc_message ( request)
147151 }
@@ -316,13 +320,11 @@ impl AppServerClient {
316320 let response = FileChangeRequestApprovalResponse { decision } ;
317321 self . send_response ( request_id, response)
318322 }
319- Ok ( ServerRequest :: SkillRequestApproval { request_id, .. } ) => {
320- let decision = if approvals. auto_approve_commands {
321- SkillApprovalDecision :: Approve
322- } else {
323- SkillApprovalDecision :: Decline
323+ Ok ( ServerRequest :: PermissionsRequestApproval { request_id, .. } ) => {
324+ let response = PermissionsRequestApprovalResponse {
325+ permissions : GrantedPermissionProfile :: default ( ) ,
326+ scope : PermissionGrantScope :: Turn ,
324327 } ;
325- let response = SkillRequestApprovalResponse { decision } ;
326328 self . send_response ( request_id, response)
327329 }
328330 Ok ( ServerRequest :: ToolRequestUserInput { request_id, params } ) => {
@@ -344,6 +346,14 @@ impl AppServerClient {
344346 let response = ToolRequestUserInputResponse { answers } ;
345347 self . send_response ( request_id, response)
346348 }
349+ Ok ( ServerRequest :: McpServerElicitationRequest { request_id, .. } ) => {
350+ let response = McpServerElicitationRequestResponse {
351+ action : McpServerElicitationAction :: Cancel ,
352+ content : None ,
353+ meta : None ,
354+ } ;
355+ self . send_response ( request_id, response)
356+ }
347357 Ok ( ServerRequest :: DynamicToolCall { request_id, .. } ) => {
348358 let response = DynamicToolCallResponse {
349359 content_items : vec ! [ DynamicToolCallOutputContentItem :: InputText {
@@ -408,6 +418,7 @@ impl AppServerClient {
408418 id : request_id. clone ( ) ,
409419 method : method. to_string ( ) ,
410420 params : Some ( serde_json:: to_value ( params) . context ( "serialize request params" ) ?) ,
421+ trace : None ,
411422 } ) ;
412423 self . write_jsonrpc_message ( request) ?;
413424
0 commit comments