Registers a tool conditional-execution guardrail and records its rollback closure.
(
&mut self,
name: &str,
priority: i32,
callback: ToolConditionalFn,
)
| 435 | |
| 436 | /// Registers a tool conditional-execution guardrail and records its rollback closure. |
| 437 | pub fn register_tool_conditional_execution_guardrail( |
| 438 | &mut self, |
| 439 | name: &str, |
| 440 | priority: i32, |
| 441 | callback: ToolConditionalFn, |
| 442 | ) -> Result<()> { |
| 443 | let qualified_name = self.qualify_name(name); |
| 444 | register_tool_conditional_execution_guardrail(&qualified_name, priority, callback) |
| 445 | .map_err(|err| { |
| 446 | PluginError::RegistrationFailed(format!( |
| 447 | "tool conditional execution guardrail: {err}" |
| 448 | )) |
| 449 | })?; |
| 450 | |
| 451 | let name_owned = qualified_name; |
| 452 | self.registrations.push(PluginRegistration::new( |
| 453 | "plugin", |
| 454 | name_owned.clone(), |
| 455 | Box::new(move || { |
| 456 | deregister_tool_conditional_execution_guardrail(&name_owned) |
| 457 | .map(|_| ()) |
| 458 | .map_err(|err| { |
| 459 | PluginError::RegistrationFailed(format!( |
| 460 | "tool conditional execution guardrail deregistration failed: {err}" |
| 461 | )) |
| 462 | }) |
| 463 | }), |
| 464 | )); |
| 465 | Ok(()) |
| 466 | } |
| 467 | |
| 468 | /// Registers an LLM sanitize-request guardrail and records its rollback closure. |
| 469 | pub fn register_llm_sanitize_request_guardrail( |