Trait Plugin Registration Context
Generated from cargo doc --no-deps -p nemo-relay-builtins -p nemo-relay-diagnostics -p nemo-relay-logging -p nemo-relay-plugin-host -p nemo-relay-codecs -p nemo-relay -p nemo-relay-runtime -p nemo-relay-model-pricing -p nemo-relay-resource-metrics -p nemo-relay-observability -p nemo-relay-adaptive -p nemo-relay-pii-redaction -p nemo-relay-ffi -p nemo-relay-types -p nemo-relay-plugin -p nemo-relay-worker-proto -p nemo-relay-worker.
pub trait PluginRegistrationContext: Send {
Show 27 methods // Required methods
fn qualify_name(&self, name: &str) -> String;
fn register_subscriber(
&mut self,
name: &str,
callback: Arc<dyn Fn(&Event) + Sync + Send>,
) -> Result<(), PluginError>;
fn add_registration(&mut self, registration: PluginRegistration);
fn record_activation_diagnostic(&mut self, diagnostic: ConfigDiagnostic);
fn record_nonfatal_activation_failure(
&mut self,
component_key: &'static str,
classification: Classification,
diagnostic: ConfigDiagnostic,
);
fn activation_diagnostics(&self) -> &[ConfigDiagnostic];
fn register_conditional_middleware_guardrail(
&mut self,
name: &str,
kinds: BTreeSet<RuntimeRegistrationKind>,
registration_name: &str,
guardrail: Arc<dyn Fn(&BTreeSet<RuntimeRegistrationKind>, &str) -> Option<String> + Sync + Send>,
) -> Result<(), PluginError>;
fn register_event_metadata_injector(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(Arc<Event>) -> Pin<Box<dyn Future<Output = Result<BTreeMap<String, Value>, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>;
fn register_mark_sanitize_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(Arc<Event>, EventSanitizeFields) -> Pin<Box<dyn Future<Output = Result<EventSanitizeFields, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>;
fn register_scope_sanitize_start_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(Arc<Event>, EventSanitizeFields) -> Pin<Box<dyn Future<Output = Result<EventSanitizeFields, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>;
fn register_scope_sanitize_end_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(Arc<Event>, EventSanitizeFields) -> Pin<Box<dyn Future<Output = Result<EventSanitizeFields, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>;
fn register_llm_request_intercept(
&mut self,
name: &str,
priority: i32,
break_chain: bool,
callback: Arc<dyn Fn(String, LlmRequest, Option<AnnotatedLlmRequest>) -> Pin<Box<dyn Future<Output = Result<LlmRequestInterceptOutcome, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>;
fn register_tool_sanitize_request_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(String, Value) -> Pin<Box<dyn Future<Output = Result<Value, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>;
fn register_tool_sanitize_response_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(String, Value) -> Pin<Box<dyn Future<Output = Result<Value, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>;
fn register_tool_conditional_execution_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(String, Value) -> Pin<Box<dyn Future<Output = Result<Option<String>, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>;
fn register_llm_sanitize_request_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(LlmRequest, LlmSanitizeRequestContext) -> Pin<Box<dyn Future<Output = Result<Option<LlmRequest>, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>;
fn register_llm_sanitize_response_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(Value, LlmSanitizeResponseContext) -> Pin<Box<dyn Future<Output = Result<Option<Value>, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>;
fn register_llm_conditional_execution_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(LlmRequest) -> Pin<Box<dyn Future<Output = Result<Option<String>, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>;
fn register_llm_execution_intercept(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(&str, LlmRequest, LlmExecutionContext, Arc<dyn Fn(LlmRequest) -> Pin<Box<dyn Future<Output = Result<Value, FlowError>> + Send>> + Sync + Send>) -> Pin<Box<dyn Future<Output = Result<Value, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>;
fn register_llm_stream_execution_intercept(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(&str, LlmRequest, LlmExecutionContext, Arc<dyn Fn(LlmRequest) -> Pin<Box<dyn Future<Output = Result<LlmJsonStream, FlowError>> + Send>> + Sync + Send>) -> Pin<Box<dyn Future<Output = Result<LlmJsonStream, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>;
fn register_tool_request_intercept(
&mut self,
name: &str,
priority: i32,
break_chain: bool,
callback: Arc<dyn Fn(String, Value) -> Pin<Box<dyn Future<Output = Result<Value, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>;
fn register_tool_execution_intercept(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(ToolExecutionContext, Arc<dyn Fn(Value) -> Pin<Box<dyn Future<Output = Result<ToolExecutionResult, FlowError>> + Send>> + Sync + Send>) -> Pin<Box<dyn Future<Output = Result<ToolExecutionInterceptOutcome, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>;
fn uses_plugin_component_namespace(&self) -> bool;
fn with_child_namespace(
&self,
name: &str,
) -> Box<dyn PluginRegistrationContext>;
fn into_registrations(self: Box<Self>) -> Vec<PluginRegistration>;
// Provided methods
fn diagnostics_context(&self) -> Option<&(dyn Any + Sync + Send + 'static)> { ... }
fn extend_registrations(&mut self, registrations: Vec<PluginRegistration>) { ... }
}
Host capabilities available to plugins during component activation.
Hosts retain ownership of registry mutation, namespacing, rollback, and activation diagnostics. Implementations do not depend on a runtime crate.
Required Methods
qualify_name
fn qualify_name(&self, name: &str) -> String
Qualify a component-local registration name.
register_subscriber
fn register_subscriber(
&mut self,
name: &str,
callback: Arc<dyn Fn(&Event) + Sync + Send>,
) -> Result<(), PluginError>
Install a subscriber and track its rollback.
add_registration
fn add_registration(&mut self, registration: PluginRegistration)
Track an already-created resource’s cleanup operation.
record_activation_diagnostic
fn record_activation_diagnostic(&mut self, diagnostic: ConfigDiagnostic)
Record an activation diagnostic.
record_nonfatal_activation_failure
fn record_nonfatal_activation_failure(
&mut self,
component_key: &'static str,
classification: Classification,
diagnostic: ConfigDiagnostic,
)
Record an optional exporter initialization failure without aborting activation.
activation_diagnostics
fn activation_diagnostics(&self) -> &[ConfigDiagnostic]
Read activation diagnostics recorded so far.
register_conditional_middleware_guardrail
fn register_conditional_middleware_guardrail(
&mut self,
name: &str,
kinds: BTreeSet<RuntimeRegistrationKind>,
registration_name: &str,
guardrail: Arc<dyn Fn(&BTreeSet<RuntimeRegistrationKind>, &str) -> Option<String> + Sync + Send>,
) -> Result<(), PluginError>
Install middleware and track its rollback.
register_event_metadata_injector
fn register_event_metadata_injector(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(Arc<Event>) -> Pin<Box<dyn Future<Output = Result<BTreeMap<String, Value>, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
Install middleware and track its rollback.
register_mark_sanitize_guardrail
fn register_mark_sanitize_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(Arc<Event>, EventSanitizeFields) -> Pin<Box<dyn Future<Output = Result<EventSanitizeFields, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
Install middleware and track its rollback.
register_scope_sanitize_start_guardrail
fn register_scope_sanitize_start_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(Arc<Event>, EventSanitizeFields) -> Pin<Box<dyn Future<Output = Result<EventSanitizeFields, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
Install middleware and track its rollback.
register_scope_sanitize_end_guardrail
fn register_scope_sanitize_end_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(Arc<Event>, EventSanitizeFields) -> Pin<Box<dyn Future<Output = Result<EventSanitizeFields, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
Install middleware and track its rollback.
register_llm_request_intercept
fn register_llm_request_intercept(
&mut self,
name: &str,
priority: i32,
break_chain: bool,
callback: Arc<dyn Fn(String, LlmRequest, Option<AnnotatedLlmRequest>) -> Pin<Box<dyn Future<Output = Result<LlmRequestInterceptOutcome, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
Install middleware and track its rollback.
register_tool_sanitize_request_guardrail
fn register_tool_sanitize_request_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(String, Value) -> Pin<Box<dyn Future<Output = Result<Value, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
Install middleware and track its rollback.
register_tool_sanitize_response_guardrail
fn register_tool_sanitize_response_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(String, Value) -> Pin<Box<dyn Future<Output = Result<Value, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
Install middleware and track its rollback.
register_tool_conditional_execution_guardrail
fn register_tool_conditional_execution_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(String, Value) -> Pin<Box<dyn Future<Output = Result<Option<String>, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
Install middleware and track its rollback.
register_llm_sanitize_request_guardrail
fn register_llm_sanitize_request_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(LlmRequest, LlmSanitizeRequestContext) -> Pin<Box<dyn Future<Output = Result<Option<LlmRequest>, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
Install middleware and track its rollback.
register_llm_sanitize_response_guardrail
fn register_llm_sanitize_response_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(Value, LlmSanitizeResponseContext) -> Pin<Box<dyn Future<Output = Result<Option<Value>, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
Install middleware and track its rollback.
register_llm_conditional_execution_guardrail
fn register_llm_conditional_execution_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(LlmRequest) -> Pin<Box<dyn Future<Output = Result<Option<String>, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
Install middleware and track its rollback.
register_llm_execution_intercept
fn register_llm_execution_intercept(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(&str, LlmRequest, LlmExecutionContext, Arc<dyn Fn(LlmRequest) -> Pin<Box<dyn Future<Output = Result<Value, FlowError>> + Send>> + Sync + Send>) -> Pin<Box<dyn Future<Output = Result<Value, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
Install middleware and track its rollback.
register_llm_stream_execution_intercept
fn register_llm_stream_execution_intercept(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(&str, LlmRequest, LlmExecutionContext, Arc<dyn Fn(LlmRequest) -> Pin<Box<dyn Future<Output = Result<LlmJsonStream, FlowError>> + Send>> + Sync + Send>) -> Pin<Box<dyn Future<Output = Result<LlmJsonStream, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
Install middleware and track its rollback.
register_tool_request_intercept
fn register_tool_request_intercept(
&mut self,
name: &str,
priority: i32,
break_chain: bool,
callback: Arc<dyn Fn(String, Value) -> Pin<Box<dyn Future<Output = Result<Value, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
Install middleware and track its rollback.
register_tool_execution_intercept
fn register_tool_execution_intercept(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(ToolExecutionContext, Arc<dyn Fn(Value) -> Pin<Box<dyn Future<Output = Result<ToolExecutionResult, FlowError>> + Send>> + Sync + Send>) -> Pin<Box<dyn Future<Output = Result<ToolExecutionInterceptOutcome, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
Install middleware and track its rollback.
uses_plugin_component_namespace
fn uses_plugin_component_namespace(&self) -> bool
Whether registration names belong to a plugin component namespace.
with_child_namespace
fn with_child_namespace(&self, name: &str) -> Box<dyn PluginRegistrationContext>
Create an independent registration context nested under this namespace.
into_registrations
fn into_registrations(self: Box<Self>) -> Vec<PluginRegistration>
Consume this context’s cleanup entries.
Provided Methods
diagnostics_context
fn diagnostics_context(&self) -> Option<&(dyn Any + Sync + Send + 'static)>
Optional diagnostic producer context supplied by the embedding runtime.
Runtime-specific components may downcast this handle to their runtime’s diagnostic facade. Shared plugins must tolerate an unavailable context.
extend_registrations
fn extend_registrations(&mut self, registrations: Vec<PluginRegistration>)
Track cleanup entries returned by a nested context or language adapter.
Implementations on Foreign Types
impl PluginRegistrationContext for HostPluginRegistrationContext
impl PluginRegistrationContext for HostPluginRegistrationContext
diagnostics_context
fn diagnostics_context(&self) -> Option<&(dyn Any + Sync + Send + 'static)>
qualify_name
fn qualify_name(&self, name: &str) -> String
register_subscriber
fn register_subscriber(
&mut self,
name: &str,
callback: Arc<dyn Fn(&Event) + Sync + Send>,
) -> Result<(), PluginError>
add_registration
fn add_registration(&mut self, registration: PluginRegistration)
record_activation_diagnostic
fn record_activation_diagnostic(&mut self, diagnostic: ConfigDiagnostic)
record_nonfatal_activation_failure
fn record_nonfatal_activation_failure(
&mut self,
component_key: &'static str,
classification: Classification,
diagnostic: ConfigDiagnostic,
)
activation_diagnostics
fn activation_diagnostics(&self) -> &[ConfigDiagnostic]
register_conditional_middleware_guardrail
fn register_conditional_middleware_guardrail(
&mut self,
name: &str,
kinds: BTreeSet<RuntimeRegistrationKind>,
registration_name: &str,
guardrail: Arc<dyn Fn(&BTreeSet<RuntimeRegistrationKind>, &str) -> Option<String> + Sync + Send>,
) -> Result<(), PluginError>
register_event_metadata_injector
fn register_event_metadata_injector(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(Arc<Event>) -> Pin<Box<dyn Future<Output = Result<BTreeMap<String, Value>, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
register_mark_sanitize_guardrail
fn register_mark_sanitize_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(Arc<Event>, EventSanitizeFields) -> Pin<Box<dyn Future<Output = Result<EventSanitizeFields, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
register_scope_sanitize_start_guardrail
fn register_scope_sanitize_start_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(Arc<Event>, EventSanitizeFields) -> Pin<Box<dyn Future<Output = Result<EventSanitizeFields, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
register_scope_sanitize_end_guardrail
fn register_scope_sanitize_end_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(Arc<Event>, EventSanitizeFields) -> Pin<Box<dyn Future<Output = Result<EventSanitizeFields, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
register_llm_request_intercept
fn register_llm_request_intercept(
&mut self,
name: &str,
priority: i32,
break_chain: bool,
callback: Arc<dyn Fn(String, LlmRequest, Option<AnnotatedLlmRequest>) -> Pin<Box<dyn Future<Output = Result<LlmRequestInterceptOutcome, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
register_tool_sanitize_request_guardrail
fn register_tool_sanitize_request_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(String, Value) -> Pin<Box<dyn Future<Output = Result<Value, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
register_tool_sanitize_response_guardrail
fn register_tool_sanitize_response_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(String, Value) -> Pin<Box<dyn Future<Output = Result<Value, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
register_tool_conditional_execution_guardrail
fn register_tool_conditional_execution_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(String, Value) -> Pin<Box<dyn Future<Output = Result<Option<String>, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
register_llm_sanitize_request_guardrail
fn register_llm_sanitize_request_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(LlmRequest, LlmSanitizeRequestContext) -> Pin<Box<dyn Future<Output = Result<Option<LlmRequest>, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
register_llm_sanitize_response_guardrail
fn register_llm_sanitize_response_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(Value, LlmSanitizeResponseContext) -> Pin<Box<dyn Future<Output = Result<Option<Value>, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
register_llm_conditional_execution_guardrail
fn register_llm_conditional_execution_guardrail(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(LlmRequest) -> Pin<Box<dyn Future<Output = Result<Option<String>, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
register_llm_execution_intercept
fn register_llm_execution_intercept(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(&str, LlmRequest, LlmExecutionContext, Arc<dyn Fn(LlmRequest) -> Pin<Box<dyn Future<Output = Result<Value, FlowError>> + Send>> + Sync + Send>) -> Pin<Box<dyn Future<Output = Result<Value, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
register_llm_stream_execution_intercept
fn register_llm_stream_execution_intercept(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(&str, LlmRequest, LlmExecutionContext, Arc<dyn Fn(LlmRequest) -> Pin<Box<dyn Future<Output = Result<LlmJsonStream, FlowError>> + Send>> + Sync + Send>) -> Pin<Box<dyn Future<Output = Result<LlmJsonStream, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
register_tool_request_intercept
fn register_tool_request_intercept(
&mut self,
name: &str,
priority: i32,
break_chain: bool,
callback: Arc<dyn Fn(String, Value) -> Pin<Box<dyn Future<Output = Result<Value, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
register_tool_execution_intercept
fn register_tool_execution_intercept(
&mut self,
name: &str,
priority: i32,
callback: Arc<dyn Fn(ToolExecutionContext, Arc<dyn Fn(Value) -> Pin<Box<dyn Future<Output = Result<ToolExecutionResult, FlowError>> + Send>> + Sync + Send>) -> Pin<Box<dyn Future<Output = Result<ToolExecutionInterceptOutcome, FlowError>> + Send>> + Sync + Send>,
) -> Result<(), PluginError>
uses_plugin_component_namespace
fn uses_plugin_component_namespace(&self) -> bool
with_child_namespace
fn with_child_namespace(&self, name: &str) -> Box<dyn PluginRegistrationContext>
into_registrations
fn into_registrations(
self: Box<HostPluginRegistrationContext>,
) -> Vec<PluginRegistration>