Skip to main content

Runtime

Struct Runtime 

Source
pub struct Runtime {
    pub config: ConfigToml,
    pub model_registry: ModelRegistry,
    pub thread_manager: ThreadManager,
    pub tool_registry: Arc<ToolRegistry>,
    pub mcp_manager: Arc<McpManager>,
    pub exec_policy: ExecPolicyEngine,
    pub hooks: HookDispatcher,
    pub jobs: JobManager,
}
Expand description

Top-level runtime combining config, model registry, threads, tools, MCP, and hooks.

Fields§

§config: ConfigToml

Resolved application configuration.

§model_registry: ModelRegistry

Registry of available model providers.

§thread_manager: ThreadManager

Manages conversation thread lifecycle.

§tool_registry: Arc<ToolRegistry>

Registry of callable tools.

§mcp_manager: Arc<McpManager>

Manager for MCP server connections.

§exec_policy: ExecPolicyEngine

Engine for evaluating execution policy decisions.

§hooks: HookDispatcher

Dispatcher for lifecycle hooks.

§jobs: JobManager

Manager for background job lifecycle.

Implementations§

Source§

impl Runtime

Source

pub fn new( config: ConfigToml, model_registry: ModelRegistry, state: StateStore, tool_registry: Arc<ToolRegistry>, mcp_manager: Arc<McpManager>, exec_policy: ExecPolicyEngine, hooks: HookDispatcher, ) -> Self

Constructs a new Runtime, loading existing jobs from the state store.

Source

pub async fn handle_thread( &mut self, req: ThreadRequest, ) -> Result<ThreadResponse>

Dispatches a thread request (create, start, resume, fork, list, read, etc.).

Source

pub async fn handle_prompt( &mut self, req: PromptRequest, cli_overrides: &CliRuntimeOverrides, ) -> Result<PromptResponse>

Resolves the model for a prompt, records the message, and returns the response.

Source

pub async fn invoke_tool( &self, call: ToolCall, approval_mode: AskForApproval, cwd: &Path, ) -> Result<Value>

Evaluates execution policy and dispatches a tool call.

Source

pub async fn mcp_startup(&self) -> McpStartupCompleteEvent

Starts all configured MCP servers and emits startup events via hooks.

Source

pub fn app_status(&self) -> AppResponse

Returns the current application status including all jobs and their history.

Source

pub fn provider_default(&self) -> ProviderKind

Returns the default model provider from the resolved configuration.

Source

pub fn save_thread_checkpoint( &self, thread_id: &str, checkpoint_id: &str, state: &Value, ) -> Result<()>

Saves a named checkpoint for a thread.

Source

pub fn load_thread_checkpoint( &self, thread_id: &str, checkpoint_id: Option<&str>, ) -> Result<Option<Value>>

Loads a checkpoint for a thread. Pass None for the latest.

Source

pub fn enqueue_job(&mut self, name: impl Into<String>) -> Result<JobRecord>

Enqueues a new background job and persists it immediately.

Source

pub fn set_job_running(&mut self, job_id: &str) -> Result<()>

Transitions a job to running and persists the change.

Source

pub fn update_job_progress( &mut self, job_id: &str, progress: u8, detail: Option<String>, ) -> Result<()>

Updates a job’s progress and persists the change.

Source

pub fn complete_job(&mut self, job_id: &str) -> Result<()>

Marks a job as completed and persists the change.

Source

pub fn fail_job( &mut self, job_id: &str, detail: impl Into<String>, ) -> Result<()>

Marks a job as failed and persists the change.

Source

pub fn cancel_job(&mut self, job_id: &str) -> Result<()>

Cancels a job and persists the change.

Source

pub fn pause_job(&mut self, job_id: &str, detail: Option<String>) -> Result<()>

Pauses a job and persists the change.

Source

pub fn resume_job(&mut self, job_id: &str, detail: Option<String>) -> Result<()>

Resumes a paused job and persists the change.

Source

pub fn job_history(&self, job_id: &str) -> Vec<JobHistoryEntry>

Returns the state-transition history for a job.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more