pub trait Extension: Send + Sync {
Show 34 methods
// Required methods
fn name(&self) -> &str;
fn description(&self) -> &str;
// Provided methods
fn manifest(&self) -> ExtensionManifest { ... }
fn register_tools(&self) -> Vec<Arc<dyn AgentTool>> { ... }
fn register_commands(&self) -> Vec<Command> { ... }
fn on_load(&self, _ctx: &ExtensionContext) { ... }
fn on_unload(&self) { ... }
fn on_message_sent(&self, _msg: &str) { ... }
fn on_message_received(&self, _msg: &str) { ... }
fn on_tool_call(&self, _tool: &str, _params: &Value) { ... }
fn on_tool_result(&self, _tool: &str, _result: &AgentToolResult) { ... }
fn on_session_start(&self, _session_id: &str) { ... }
fn on_session_end(&self, _session_id: &str) { ... }
fn on_settings_changed(&self, _settings: &Settings) { ... }
fn on_event(&self, _event: &AgentEvent) { ... }
fn on_before_tool_call(
&self,
_tool: &str,
_args: &Value,
) -> Result<(), Error> { ... }
fn on_after_tool_call(
&self,
_tool: &str,
_result: &AgentToolResult,
) -> Result<(), Error> { ... }
fn on_before_compaction(
&self,
_ctx: &CompactionContext,
) -> Result<(), Error> { ... }
fn on_after_compaction(&self, _summary: &str) -> Result<(), Error> { ... }
fn on_error(&self, _error: &Error) -> Result<(), Error> { ... }
fn session_before_switch(
&self,
_event: &SessionBeforeSwitchEvent,
) -> Result<(), Error> { ... }
fn session_before_fork(
&self,
_event: &SessionBeforeForkEvent,
) -> Result<(), Error> { ... }
fn session_before_compact(
&self,
_event: &SessionBeforeCompactEvent,
) -> Result<(), Error> { ... }
fn session_compact(&self, _event: &SessionCompactEvent) -> Result<(), Error> { ... }
fn session_shutdown(&self, _event: &SessionShutdownEvent) { ... }
fn session_before_tree(
&self,
_event: &SessionBeforeTreeEvent,
) -> Result<(), Error> { ... }
fn session_tree(&self, _event: &SessionTreeEvent) { ... }
fn context(&self, _event: &mut ContextEvent) -> Result<(), Error> { ... }
fn before_provider_request(
&self,
_event: &mut BeforeProviderRequestEvent,
) -> Result<(), Error> { ... }
fn after_provider_response(
&self,
_event: &AfterProviderResponseEvent,
) -> Result<(), Error> { ... }
fn model_select(&self, _event: &ModelSelectEvent) { ... }
fn thinking_level_select(&self, _event: &ThinkingLevelSelectEvent) { ... }
fn bash(&self, _event: &BashEvent) { ... }
fn input(&self, _event: &InputEvent) -> InputEventResult { ... }
}Expand description
Core trait that every oxi extension must implement.
Required Methods§
Provided Methods§
Sourcefn manifest(&self) -> ExtensionManifest
fn manifest(&self) -> ExtensionManifest
TODO: document.
Sourcefn register_tools(&self) -> Vec<Arc<dyn AgentTool>>
fn register_tools(&self) -> Vec<Arc<dyn AgentTool>>
TODO: document.
Sourcefn register_commands(&self) -> Vec<Command>
fn register_commands(&self) -> Vec<Command>
TODO: document.
Sourcefn on_load(&self, _ctx: &ExtensionContext)
fn on_load(&self, _ctx: &ExtensionContext)
TODO: document.
Sourcefn on_message_sent(&self, _msg: &str)
fn on_message_sent(&self, _msg: &str)
TODO: document.
Sourcefn on_message_received(&self, _msg: &str)
fn on_message_received(&self, _msg: &str)
TODO: document.
Sourcefn on_tool_call(&self, _tool: &str, _params: &Value)
fn on_tool_call(&self, _tool: &str, _params: &Value)
TODO: document.
Sourcefn on_tool_result(&self, _tool: &str, _result: &AgentToolResult)
fn on_tool_result(&self, _tool: &str, _result: &AgentToolResult)
TODO: document.
Sourcefn on_session_start(&self, _session_id: &str)
fn on_session_start(&self, _session_id: &str)
TODO: document.
Sourcefn on_session_end(&self, _session_id: &str)
fn on_session_end(&self, _session_id: &str)
TODO: document.
Sourcefn on_settings_changed(&self, _settings: &Settings)
fn on_settings_changed(&self, _settings: &Settings)
TODO: document.
Sourcefn on_event(&self, _event: &AgentEvent)
fn on_event(&self, _event: &AgentEvent)
TODO: document.
Sourcefn on_after_tool_call(
&self,
_tool: &str,
_result: &AgentToolResult,
) -> Result<(), Error>
fn on_after_tool_call( &self, _tool: &str, _result: &AgentToolResult, ) -> Result<(), Error>
TODO: document.
Sourcefn on_before_compaction(&self, _ctx: &CompactionContext) -> Result<(), Error>
fn on_before_compaction(&self, _ctx: &CompactionContext) -> Result<(), Error>
TODO: document.
Sourcefn session_before_switch(
&self,
_event: &SessionBeforeSwitchEvent,
) -> Result<(), Error>
fn session_before_switch( &self, _event: &SessionBeforeSwitchEvent, ) -> Result<(), Error>
TODO: document.
Sourcefn session_before_fork(
&self,
_event: &SessionBeforeForkEvent,
) -> Result<(), Error>
fn session_before_fork( &self, _event: &SessionBeforeForkEvent, ) -> Result<(), Error>
TODO: document.
Sourcefn session_before_compact(
&self,
_event: &SessionBeforeCompactEvent,
) -> Result<(), Error>
fn session_before_compact( &self, _event: &SessionBeforeCompactEvent, ) -> Result<(), Error>
TODO: document.
Sourcefn session_compact(&self, _event: &SessionCompactEvent) -> Result<(), Error>
fn session_compact(&self, _event: &SessionCompactEvent) -> Result<(), Error>
TODO: document.
Sourcefn session_shutdown(&self, _event: &SessionShutdownEvent)
fn session_shutdown(&self, _event: &SessionShutdownEvent)
TODO: document.
Sourcefn session_before_tree(
&self,
_event: &SessionBeforeTreeEvent,
) -> Result<(), Error>
fn session_before_tree( &self, _event: &SessionBeforeTreeEvent, ) -> Result<(), Error>
TODO: document.
Sourcefn session_tree(&self, _event: &SessionTreeEvent)
fn session_tree(&self, _event: &SessionTreeEvent)
TODO: document.
Sourcefn before_provider_request(
&self,
_event: &mut BeforeProviderRequestEvent,
) -> Result<(), Error>
fn before_provider_request( &self, _event: &mut BeforeProviderRequestEvent, ) -> Result<(), Error>
TODO: document.
Sourcefn after_provider_response(
&self,
_event: &AfterProviderResponseEvent,
) -> Result<(), Error>
fn after_provider_response( &self, _event: &AfterProviderResponseEvent, ) -> Result<(), Error>
TODO: document.
Sourcefn model_select(&self, _event: &ModelSelectEvent)
fn model_select(&self, _event: &ModelSelectEvent)
TODO: document.
Sourcefn thinking_level_select(&self, _event: &ThinkingLevelSelectEvent)
fn thinking_level_select(&self, _event: &ThinkingLevelSelectEvent)
TODO: document.
Sourcefn input(&self, _event: &InputEvent) -> InputEventResult
fn input(&self, _event: &InputEvent) -> InputEventResult
TODO: document.