Skip to navigation

Trait Plugin Registration Context

View as Markdown

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) + Send + Sync>,
    ) -> Result<()>;
    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: ConditionalMiddlewareGuardrailFn,
    ) -> Result<()>;
    fn register_event_metadata_injector(
        &mut self,
        name: &str,
        priority: i32,
        callback: EventMetadataInjectorFn,
    ) -> Result<()>;
    fn register_mark_sanitize_guardrail(
        &mut self,
        name: &str,
        priority: i32,
        callback: EventSanitizeFn,
    ) -> Result<()>;
    fn register_scope_sanitize_start_guardrail(
        &mut self,
        name: &str,
        priority: i32,
        callback: EventSanitizeFn,
    ) -> Result<()>;
    fn register_scope_sanitize_end_guardrail(
        &mut self,
        name: &str,
        priority: i32,
        callback: EventSanitizeFn,
    ) -> Result<()>;
    fn register_llm_request_intercept(
        &mut self,
        name: &str,
        priority: i32,
        break_chain: bool,
        callback: LlmRequestInterceptFn,
    ) -> Result<()>;
    fn register_tool_sanitize_request_guardrail(
        &mut self,
        name: &str,
        priority: i32,
        callback: ToolSanitizeFn,
    ) -> Result<()>;
    fn register_tool_sanitize_response_guardrail(
        &mut self,
        name: &str,
        priority: i32,
        callback: ToolSanitizeFn,
    ) -> Result<()>;
    fn register_tool_conditional_execution_guardrail(
        &mut self,
        name: &str,
        priority: i32,
        callback: ToolConditionalFn,
    ) -> Result<()>;
    fn register_llm_sanitize_request_guardrail(
        &mut self,
        name: &str,
        priority: i32,
        callback: LlmSanitizeRequestFn,
    ) -> Result<()>;
    fn register_llm_sanitize_response_guardrail(
        &mut self,
        name: &str,
        priority: i32,
        callback: LlmSanitizeResponseFn,
    ) -> Result<()>;
    fn register_llm_conditional_execution_guardrail(
        &mut self,
        name: &str,
        priority: i32,
        callback: LlmConditionalFn,
    ) -> Result<()>;
    fn register_llm_execution_intercept(
        &mut self,
        name: &str,
        priority: i32,
        callback: LlmExecutionFn,
    ) -> Result<()>;
    fn register_llm_stream_execution_intercept(
        &mut self,
        name: &str,
        priority: i32,
        callback: LlmStreamExecutionFn,
    ) -> Result<()>;
    fn register_tool_request_intercept(
        &mut self,
        name: &str,
        priority: i32,
        break_chain: bool,
        callback: ToolInterceptFn,
    ) -> Result<()>;
    fn register_tool_execution_intercept(
        &mut self,
        name: &str,
        priority: i32,
        callback: ToolExecutionFn,
    ) -> Result<()>;
    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 + Send + Sync)> { ... }
    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) + Send + Sync>,
) -> Result<()>

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: ConditionalMiddlewareGuardrailFn,
) -> Result<()>

Install middleware and track its rollback.

register_event_metadata_injector

fn register_event_metadata_injector(
    &mut self,
    name: &str,
    priority: i32,
    callback: EventMetadataInjectorFn,
) -> Result<()>

Install middleware and track its rollback.

register_mark_sanitize_guardrail

fn register_mark_sanitize_guardrail(
    &mut self,
    name: &str,
    priority: i32,
    callback: EventSanitizeFn,
) -> Result<()>

Install middleware and track its rollback.

register_scope_sanitize_start_guardrail

fn register_scope_sanitize_start_guardrail(
    &mut self,
    name: &str,
    priority: i32,
    callback: EventSanitizeFn,
) -> Result<()>

Install middleware and track its rollback.

register_scope_sanitize_end_guardrail

fn register_scope_sanitize_end_guardrail(
    &mut self,
    name: &str,
    priority: i32,
    callback: EventSanitizeFn,
) -> Result<()>

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: LlmRequestInterceptFn,
) -> Result<()>

Install middleware and track its rollback.

register_tool_sanitize_request_guardrail

fn register_tool_sanitize_request_guardrail(
    &mut self,
    name: &str,
    priority: i32,
    callback: ToolSanitizeFn,
) -> Result<()>

Install middleware and track its rollback.

register_tool_sanitize_response_guardrail

fn register_tool_sanitize_response_guardrail(
    &mut self,
    name: &str,
    priority: i32,
    callback: ToolSanitizeFn,
) -> Result<()>

Install middleware and track its rollback.

register_tool_conditional_execution_guardrail

fn register_tool_conditional_execution_guardrail(
    &mut self,
    name: &str,
    priority: i32,
    callback: ToolConditionalFn,
) -> Result<()>

Install middleware and track its rollback.

register_llm_sanitize_request_guardrail

fn register_llm_sanitize_request_guardrail(
    &mut self,
    name: &str,
    priority: i32,
    callback: LlmSanitizeRequestFn,
) -> Result<()>

Install middleware and track its rollback.

register_llm_sanitize_response_guardrail

fn register_llm_sanitize_response_guardrail(
    &mut self,
    name: &str,
    priority: i32,
    callback: LlmSanitizeResponseFn,
) -> Result<()>

Install middleware and track its rollback.

register_llm_conditional_execution_guardrail

fn register_llm_conditional_execution_guardrail(
    &mut self,
    name: &str,
    priority: i32,
    callback: LlmConditionalFn,
) -> Result<()>

Install middleware and track its rollback.

register_llm_execution_intercept

fn register_llm_execution_intercept(
    &mut self,
    name: &str,
    priority: i32,
    callback: LlmExecutionFn,
) -> Result<()>

Install middleware and track its rollback.

register_llm_stream_execution_intercept

fn register_llm_stream_execution_intercept(
    &mut self,
    name: &str,
    priority: i32,
    callback: LlmStreamExecutionFn,
) -> Result<()>

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: ToolInterceptFn,
) -> Result<()>

Install middleware and track its rollback.

register_tool_execution_intercept

fn register_tool_execution_intercept(
    &mut self,
    name: &str,
    priority: i32,
    callback: ToolExecutionFn,
) -> Result<()>

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 + Send + Sync)>

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.

Implementors