From 569fbc1b437f5d19178fc226284293c367fd4187 Mon Sep 17 00:00:00 2001 From: Abhinav Vedmala Date: Fri, 22 May 2026 08:46:35 -0700 Subject: [PATCH] Allow hooks on request permissions --- .../src/tools/handlers/request_permissions.rs | 6 +---- codex-rs/core/src/tools/registry_tests.rs | 27 +++++-------------- 2 files changed, 8 insertions(+), 25 deletions(-) diff --git a/codex-rs/core/src/tools/handlers/request_permissions.rs b/codex-rs/core/src/tools/handlers/request_permissions.rs index ef670f8f84..70a31fe0e0 100644 --- a/codex-rs/core/src/tools/handlers/request_permissions.rs +++ b/codex-rs/core/src/tools/handlers/request_permissions.rs @@ -82,8 +82,4 @@ impl ToolExecutor for RequestPermissionsHandler { } } -impl CoreToolRuntime for RequestPermissionsHandler { - fn supports_default_function_tool_hooks(&self) -> bool { - false - } -} +impl CoreToolRuntime for RequestPermissionsHandler {} diff --git a/codex-rs/core/src/tools/registry_tests.rs b/codex-rs/core/src/tools/registry_tests.rs index 86f03a9182..dbcfe480d4 100644 --- a/codex-rs/core/src/tools/registry_tests.rs +++ b/codex-rs/core/src/tools/registry_tests.rs @@ -242,30 +242,17 @@ async fn function_hook_input_defaults_empty_arguments_to_object() { } #[tokio::test] -async fn opted_out_function_tools_do_not_expose_default_hook_payloads() { +async fn code_mode_wait_does_not_expose_default_hook_payloads() { let (session, turn) = crate::session::tests::make_session_and_context().await; - let session = Arc::new(session); - let turn = Arc::new(turn); let output = crate::tools::context::FunctionToolOutput::from_text("ok".to_string(), Some(true)); - let request_permissions = crate::tools::handlers::RequestPermissionsHandler; - let request_permissions_invocation = test_invocation( - Arc::clone(&session), - Arc::clone(&turn), - "request-permissions-call", - request_permissions.tool_name(), - ); - assert_eq!( - request_permissions.pre_tool_use_payload(&request_permissions_invocation), - None - ); - assert_eq!( - request_permissions.post_tool_use_payload(&request_permissions_invocation, &output), - None - ); - let wait = crate::tools::handlers::CodeModeWaitHandler; - let wait_invocation = test_invocation(session, turn, "wait-call", wait.tool_name()); + let wait_invocation = test_invocation( + Arc::new(session), + Arc::new(turn), + "wait-call", + wait.tool_name(), + ); assert_eq!(wait.pre_tool_use_payload(&wait_invocation), None); assert_eq!(wait.post_tool_use_payload(&wait_invocation, &output), None); }