Registers an LLM request intercept and records its rollback closure.
(
&mut self,
name: &str,
priority: i32,
break_chain: bool,
callback: LlmRequestInterceptFn,
)
| 343 | |
| 344 | /// Registers an LLM request intercept and records its rollback closure. |
| 345 | pub fn register_llm_request_intercept( |
| 346 | &mut self, |
| 347 | name: &str, |
| 348 | priority: i32, |
| 349 | break_chain: bool, |
| 350 | callback: LlmRequestInterceptFn, |
| 351 | ) -> Result<()> { |
| 352 | let qualified_name = self.qualify_name(name); |
| 353 | register_llm_request_intercept(&qualified_name, priority, break_chain, callback).map_err( |
| 354 | |err| PluginError::RegistrationFailed(format!("llm request intercept: {err}")), |
| 355 | )?; |
| 356 | |
| 357 | let name_owned = qualified_name; |
| 358 | self.registrations.push(PluginRegistration::new( |
| 359 | "plugin", |
| 360 | name_owned.clone(), |
| 361 | Box::new(move || { |
| 362 | deregister_llm_request_intercept(&name_owned) |
| 363 | .map(|_| ()) |
| 364 | .map_err(|err| { |
| 365 | PluginError::RegistrationFailed(format!( |
| 366 | "llm request intercept deregistration failed: {err}" |
| 367 | )) |
| 368 | }) |
| 369 | }), |
| 370 | )); |
| 371 | Ok(()) |
| 372 | } |
| 373 | |
| 374 | /// Registers a tool sanitize-request guardrail and records its rollback closure. |
| 375 | pub fn register_tool_sanitize_request_guardrail( |