pub trait Activation:
Send
+ Sync
+ 'static {
type Methods: MethodEnumSchema;
// Required methods
fn namespace(&self) -> &str;
fn version(&self) -> &str;
fn methods(&self) -> Vec<&str>;
fn call<'life0, 'life1, 'async_trait>(
&'life0 self,
method: &'life1 str,
params: Value,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = PlexusStreamItem> + Send>>, PlexusError>> + Send + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn into_rpc_methods(self) -> Methods
where Self: Sized;
// Provided methods
fn description(&self) -> &str { ... }
fn long_description(&self) -> Option<&str> { ... }
fn method_help(&self, _method: &str) -> Option<String> { ... }
fn plugin_id(&self) -> Uuid { ... }
fn resolve_handle<'life0, 'life1, 'async_trait>(
&'life0 self,
_handle: &'life1 Handle,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = PlexusStreamItem> + Send>>, PlexusError>> + Send + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait { ... }
fn plugin_schema(&self) -> PluginSchema { ... }
}Required Associated Types§
Required Methods§
fn namespace(&self) -> &str
fn version(&self) -> &str
fn methods(&self) -> Vec<&str>
fn call<'life0, 'life1, 'async_trait>(
&'life0 self,
method: &'life1 str,
params: Value,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = PlexusStreamItem> + Send>>, PlexusError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn into_rpc_methods(self) -> Methodswhere
Self: Sized,
Provided Methods§
Sourcefn description(&self) -> &str
fn description(&self) -> &str
Short description (max 15 words)
Sourcefn long_description(&self) -> Option<&str>
fn long_description(&self) -> Option<&str>
Long description (optional, for detailed documentation)
fn method_help(&self, _method: &str) -> Option<String>
Sourcefn plugin_id(&self) -> Uuid
fn plugin_id(&self) -> Uuid
Stable activation instance ID for handle routing By default generates a deterministic UUID from namespace+major_version Using major version only ensures handles survive minor/patch upgrades (semver)
fn resolve_handle<'life0, 'life1, 'async_trait>(
&'life0 self,
_handle: &'life1 Handle,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = PlexusStreamItem> + Send>>, PlexusError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Sourcefn plugin_schema(&self) -> PluginSchema
fn plugin_schema(&self) -> PluginSchema
Return this activation’s schema (methods + optional children)
Implementations on Foreign Types§
Source§impl Activation for AuthHub
impl Activation for AuthHub
type Methods = AuthHubMethod
fn namespace(&self) -> &str
fn version(&self) -> &str
fn description(&self) -> &str
fn long_description(&self) -> Option<&str>
fn methods(&self) -> Vec<&str>
fn method_help(&self, method: &str) -> Option<String>
fn call<'life0, 'life1, 'async_trait>(
&'life0 self,
method: &'life1 str,
params: Value,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = PlexusStreamItem> + Send>>, PlexusError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
AuthHub: 'async_trait,
fn into_rpc_methods(self) -> Methods
fn plugin_schema(&self) -> PluginSchema
Source§impl Activation for HyperforgeHub
impl Activation for HyperforgeHub
type Methods = HyperforgeHubMethod
fn namespace(&self) -> &str
fn version(&self) -> &str
fn description(&self) -> &str
fn long_description(&self) -> Option<&str>
fn methods(&self) -> Vec<&str>
fn method_help(&self, method: &str) -> Option<String>
fn call<'life0, 'life1, 'async_trait>(
&'life0 self,
method: &'life1 str,
params: Value,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = PlexusStreamItem> + Send>>, PlexusError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
HyperforgeHub: 'async_trait,
fn into_rpc_methods(self) -> Methods
fn plugin_schema(&self) -> PluginSchema
Source§impl Activation for RepoHub
impl Activation for RepoHub
type Methods = RepoHubMethod
fn namespace(&self) -> &str
fn version(&self) -> &str
fn description(&self) -> &str
fn long_description(&self) -> Option<&str>
fn methods(&self) -> Vec<&str>
fn method_help(&self, method: &str) -> Option<String>
fn call<'life0, 'life1, 'async_trait>(
&'life0 self,
method: &'life1 str,
params: Value,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = PlexusStreamItem> + Send>>, PlexusError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
RepoHub: 'async_trait,
fn into_rpc_methods(self) -> Methods
fn plugin_schema(&self) -> PluginSchema
Source§impl Activation for WorkspaceHub
impl Activation for WorkspaceHub
type Methods = WorkspaceHubMethod
fn namespace(&self) -> &str
fn version(&self) -> &str
fn description(&self) -> &str
fn long_description(&self) -> Option<&str>
fn methods(&self) -> Vec<&str>
fn method_help(&self, method: &str) -> Option<String>
fn call<'life0, 'life1, 'async_trait>(
&'life0 self,
method: &'life1 str,
params: Value,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = PlexusStreamItem> + Send>>, PlexusError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
WorkspaceHub: 'async_trait,
fn into_rpc_methods(self) -> Methods
fn plugin_schema(&self) -> PluginSchema
Source§impl Activation for Registry
impl Activation for Registry
type Methods = RegistryMethod
fn namespace(&self) -> &str
fn version(&self) -> &str
fn description(&self) -> &str
fn long_description(&self) -> Option<&str>
fn methods(&self) -> Vec<&str>
fn method_help(&self, method: &str) -> Option<String>
fn call<'life0, 'life1, 'async_trait>(
&'life0 self,
method: &'life1 str,
params: Value,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = PlexusStreamItem> + Send>>, PlexusError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Registry: 'async_trait,
fn into_rpc_methods(self) -> Methods
fn plugin_schema(&self) -> PluginSchema
Implementors§
Source§impl Activation for Bash
impl Activation for Bash
type Methods = BashMethod
Source§impl Activation for ClaudeCodeLoopback
impl Activation for ClaudeCodeLoopback
Source§impl Activation for plexus_substrate::activations::echo::Echo
impl Activation for plexus_substrate::activations::echo::Echo
Source§impl Activation for plexus_substrate::activations::health::Health
Activation trait implementation - unified interface for Plexus
impl Activation for plexus_substrate::activations::health::Health
Activation trait implementation - unified interface for Plexus
type Methods = HealthMethod
Source§impl Activation for Interactive
impl Activation for Interactive
Source§impl Activation for plexus_core::activations::echo::activation::Echo
impl Activation for plexus_core::activations::echo::activation::Echo
Source§impl Activation for plexus_core::activations::health::activation::Health
Activation trait implementation - unified interface for Plexus
impl Activation for plexus_core::activations::health::activation::Health
Activation trait implementation - unified interface for Plexus