pub struct AdaptedPlugin { /* private fields */ }Expand description
Wraps a legacy closure-based Plugin as an EnhancedPlugin.
This adapter enables existing plugins to participate in the enhanced pipeline without modification. Legacy callbacks are invoked for their side effects, but the adapter does not modify tool arguments or results (legacy callbacks don’t have access to them).
For model hooks, the adapter maps between the legacy BeforeModelResult
and the new BeforeModelCallResult, preserving short-circuit semantics.
Implementations§
Source§impl AdaptedPlugin
impl AdaptedPlugin
Sourcepub fn new(plugin: Plugin, priority: i32) -> Self
pub fn new(plugin: Plugin, priority: i32) -> Self
Create a new adapter wrapping a legacy plugin with the given priority.
§Arguments
plugin- The legacyPluginto wrappriority- Execution priority (lower values execute first, default: 100)
§Example
ⓘ
use adk_plugin::{AdaptedPlugin, Plugin, PluginConfig};
let plugin = Plugin::new(PluginConfig {
name: "logger".to_string(),
..Default::default()
});
let adapted = AdaptedPlugin::new(plugin, 50);
assert_eq!(adapted.priority(), 50);Trait Implementations§
Source§impl EnhancedPlugin for AdaptedPlugin
impl EnhancedPlugin for AdaptedPlugin
Source§fn priority(&self) -> i32
fn priority(&self) -> i32
Execution priority. Lower values execute first. Default: 100. Read more
Source§fn before_tool_call<'life0, 'life1, 'async_trait>(
&'life0 self,
_tool: Arc<dyn Tool>,
args: Value,
ctx: Arc<dyn CallbackContext>,
_plugin_ctx: &'life1 PluginContext,
) -> Pin<Box<dyn Future<Output = Result<BeforeToolCallResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn before_tool_call<'life0, 'life1, 'async_trait>(
&'life0 self,
_tool: Arc<dyn Tool>,
args: Value,
ctx: Arc<dyn CallbackContext>,
_plugin_ctx: &'life1 PluginContext,
) -> Pin<Box<dyn Future<Output = Result<BeforeToolCallResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called before a tool is executed. Read more
Source§fn after_tool_call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_tool: Arc<dyn Tool>,
_args: &'life1 Value,
result: Value,
ctx: Arc<dyn CallbackContext>,
_plugin_ctx: &'life2 PluginContext,
) -> Pin<Box<dyn Future<Output = Result<AfterToolCallResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn after_tool_call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_tool: Arc<dyn Tool>,
_args: &'life1 Value,
result: Value,
ctx: Arc<dyn CallbackContext>,
_plugin_ctx: &'life2 PluginContext,
) -> Pin<Box<dyn Future<Output = Result<AfterToolCallResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called after a tool executes successfully. Read more
Source§fn before_model_call<'life0, 'life1, 'async_trait>(
&'life0 self,
request: LlmRequest,
ctx: Arc<dyn CallbackContext>,
_plugin_ctx: &'life1 PluginContext,
) -> Pin<Box<dyn Future<Output = Result<BeforeModelCallResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn before_model_call<'life0, 'life1, 'async_trait>(
&'life0 self,
request: LlmRequest,
ctx: Arc<dyn CallbackContext>,
_plugin_ctx: &'life1 PluginContext,
) -> Pin<Box<dyn Future<Output = Result<BeforeModelCallResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called before a model (LLM) call is made. Read more
Source§fn after_model_call<'life0, 'life1, 'async_trait>(
&'life0 self,
response: LlmResponse,
ctx: Arc<dyn CallbackContext>,
_plugin_ctx: &'life1 PluginContext,
) -> Pin<Box<dyn Future<Output = Result<AfterModelCallResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn after_model_call<'life0, 'life1, 'async_trait>(
&'life0 self,
response: LlmResponse,
ctx: Arc<dyn CallbackContext>,
_plugin_ctx: &'life1 PluginContext,
) -> Pin<Box<dyn Future<Output = Result<AfterModelCallResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called after a model (LLM) call completes. Read more
Auto Trait Implementations§
impl Freeze for AdaptedPlugin
impl !RefUnwindSafe for AdaptedPlugin
impl Send for AdaptedPlugin
impl Sync for AdaptedPlugin
impl Unpin for AdaptedPlugin
impl UnsafeUnpin for AdaptedPlugin
impl !UnwindSafe for AdaptedPlugin
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more