@@ -6,8 +6,6 @@ use rmcp::model::CreateElicitationRequestParam;
66use rmcp:: model:: CreateElicitationResult ;
77use rmcp:: model:: ElicitationAction ;
88use rmcp:: model:: ElicitationSchema ;
9- use rmcp:: model:: PrimitiveSchema ;
10- use rmcp:: model:: StringSchema ;
119use rmcp:: service:: RequestContext ;
1210
1311use crate :: posix:: escalate_protocol:: EscalateAction ;
@@ -54,12 +52,19 @@ impl McpEscalationPolicy {
5452 context
5553 . peer
5654 . create_elicitation ( CreateElicitationRequestParam {
57- message : format ! ( "Allow Codex to run `{command:?}` in `{workdir:?}`?" ) ,
58- #[ allow( clippy:: expect_used) ]
55+ message : format ! ( "Allow agent to run `{command}` in `{}`?" , workdir. display( ) ) ,
5956 requested_schema : ElicitationSchema :: builder ( )
60- . property ( "dummy" , PrimitiveSchema :: String ( StringSchema :: new ( ) ) )
57+ . title ( "Execution Permission Request" )
58+ . optional_string_with ( "reason" , |schema| {
59+ schema. description ( "Optional reason for allowing or denying execution" )
60+ } )
6161 . build ( )
62- . expect ( "failed to build elicitation schema" ) ,
62+ . map_err ( |e| {
63+ McpError :: internal_error (
64+ format ! ( "failed to build elicitation schema: {e}" ) ,
65+ None ,
66+ )
67+ } ) ?,
6368 } )
6469 . await
6570 . map_err ( |e| McpError :: internal_error ( e. to_string ( ) , None ) )
0 commit comments