pub trait ProviderPlugin: Send + Sync {
// Required methods
fn plugin_id(&self) -> &str;
fn plugin_name(&self) -> &str;
fn translate(&self, input: &PluginInput<'_>) -> Result<PluginOutput>;
fn capabilities(&self) -> BackendCapabilities;
}Expand description
Provider plugin trait for backend-specific translation.
Plugins are stateless on the forward path. They translate provider-agnostic intents into backend-native API parameters.
§Object Safety
This trait is object-safe and can be stored as Arc<dyn ProviderPlugin>.
§Thread Safety
The Send + Sync bounds allow plugins to be shared across async
tasks and threads.
Required Methods§
Sourcefn plugin_id(&self) -> &str
fn plugin_id(&self) -> &str
Unique identifier for this plugin (e.g., “anthropic”, “openai”, “passthrough”).
Sourcefn plugin_name(&self) -> &str
fn plugin_name(&self) -> &str
Human-readable name for this plugin.
Sourcefn translate(&self, input: &PluginInput<'_>) -> Result<PluginOutput>
fn translate(&self, input: &PluginInput<'_>) -> Result<PluginOutput>
Translate intents into backend-native API parameters.
Sourcefn capabilities(&self) -> BackendCapabilities
fn capabilities(&self) -> BackendCapabilities
Report the capabilities of the backend this plugin targets.