Skip to main content

RuntimeHostAdapter

Trait RuntimeHostAdapter 

Source
pub trait RuntimeHostAdapter:
    Send
    + Sync
    + Clone
    + 'static {
Show 29 methods // Required methods fn get_agent<'life0, 'async_trait>( &'life0 self, org_id: i64, agent_id: AgentId, ) -> Pin<Box<dyn Future<Output = Result<Option<Agent>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_harness<'life0, 'async_trait>( &'life0 self, org_id: i64, harness_id: HarnessId, ) -> Pin<Box<dyn Future<Output = Result<Option<Harness>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn set_session_status<'life0, 'async_trait>( &'life0 self, org_id: i64, session_id: SessionId, status: SessionStatus, ) -> Pin<Box<dyn Future<Output = Result<Session>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn load_turn_context<'life0, 'async_trait>( &'life0 self, org_id: i64, session_id: SessionId, ) -> Pin<Box<dyn Future<Output = Result<RuntimeHostTurnContext>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn capability_registry(&self) -> CapabilityRegistry; fn driver_registry(&self) -> DriverRegistry; fn harness_store(&self, org_id: i64) -> Arc<dyn HarnessStore>; fn agent_store(&self, org_id: i64) -> Arc<dyn AgentStore>; fn session_store(&self, org_id: i64) -> Arc<dyn SessionStore>; fn session_mutator(&self, org_id: i64) -> Arc<dyn SessionMutator>; fn provider_store(&self, org_id: i64) -> Arc<dyn LlmProviderStore>; fn message_store(&self) -> Arc<dyn MessageRetriever>; fn event_emitter(&self) -> Arc<dyn EventEmitter>; fn file_store(&self) -> Arc<dyn SessionFileSystem>; // Provided methods fn image_resolver(&self, _org_id: i64) -> Option<Arc<dyn ImageResolver>> { ... } fn image_artifact_store( &self, _org_id: i64, ) -> Option<Arc<dyn ImageArtifactStore>> { ... } fn provider_credential_store( &self, _org_id: i64, ) -> Option<Arc<dyn ProviderCredentialStore>> { ... } fn utility_llm_service(&self) -> Option<Arc<dyn UtilityLlmService>> { ... } fn egress_service(&self) -> Option<Arc<dyn EgressService>> { ... } fn storage_store(&self) -> Option<Arc<dyn SessionStorageStore>> { ... } fn memory_store(&self, _org_id: i64) -> Option<Arc<dyn MemoryStoreBackend>> { ... } fn connection_resolver(&self) -> Option<Arc<dyn UserConnectionResolver>> { ... } fn sqldb_store(&self) -> Option<SessionSqlDbStoreRef> { ... } fn leased_resource_store(&self) -> Option<Arc<dyn LeasedResourceStore>> { ... } fn session_resource_registry( &self, ) -> Option<Arc<dyn SessionResourceRegistry>> { ... } fn schedule_store( &self, _org_id: i64, ) -> Option<Arc<dyn SessionScheduleStore>> { ... } fn platform_store( &self, _org_id: i64, _session_id: SessionId, ) -> Option<Arc<dyn PlatformStore>> { ... } fn budget_checker( &self, _org_id: i64, _agent_id: Option<AgentId>, ) -> Option<Arc<dyn BudgetChecker>> { ... } fn payment_authority( &self, _org_id: i64, _agent_id: Option<AgentId>, ) -> Option<Arc<dyn PaymentAuthority>> { ... }
}
Expand description

Public adapter contract for server-backed or durable runtime hosts.

everruns-runtime owns shared host orchestration for both embedded and durable execution. That includes phase execution (input -> reason -> act), lifecycle emission, and the generic turn-strategy decisions used by durable or custom hosts.

Host crates implement this trait to provide persistence, session-lifecycle plumbing, event delivery, and their own orchestration backend. The durable engine itself remains outside this crate.

Required Methods§

Source

fn get_agent<'life0, 'async_trait>( &'life0 self, org_id: i64, agent_id: AgentId, ) -> Pin<Box<dyn Future<Output = Result<Option<Agent>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn get_harness<'life0, 'async_trait>( &'life0 self, org_id: i64, harness_id: HarnessId, ) -> Pin<Box<dyn Future<Output = Result<Option<Harness>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn set_session_status<'life0, 'async_trait>( &'life0 self, org_id: i64, session_id: SessionId, status: SessionStatus, ) -> Pin<Box<dyn Future<Output = Result<Session>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn load_turn_context<'life0, 'async_trait>( &'life0 self, org_id: i64, session_id: SessionId, ) -> Pin<Box<dyn Future<Output = Result<RuntimeHostTurnContext>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn capability_registry(&self) -> CapabilityRegistry

Source

fn driver_registry(&self) -> DriverRegistry

Source

fn harness_store(&self, org_id: i64) -> Arc<dyn HarnessStore>

Source

fn agent_store(&self, org_id: i64) -> Arc<dyn AgentStore>

Source

fn session_store(&self, org_id: i64) -> Arc<dyn SessionStore>

Source

fn session_mutator(&self, org_id: i64) -> Arc<dyn SessionMutator>

Source

fn provider_store(&self, org_id: i64) -> Arc<dyn LlmProviderStore>

Source

fn message_store(&self) -> Arc<dyn MessageRetriever>

Source

fn event_emitter(&self) -> Arc<dyn EventEmitter>

Source

fn file_store(&self) -> Arc<dyn SessionFileSystem>

Provided Methods§

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§