Skip to main content

CodeModeHost

Trait CodeModeHost 

Source
pub trait CodeModeHost: Send + Sync {
    // Required methods
    fn list_tools<'a>(
        &'a self,
        caller: &'a CodeModeCaller,
        surface: CodeModeSurface,
        scope: &'a ToolScope,
        include_snippets: bool,
        use_cache: bool,
    ) -> HostFuture<'a, Result<ToolsRender, ToolError>>;
    fn call_tool<'a>(
        &'a self,
        id: &'a str,
        params: Value,
        caller: &'a CodeModeCaller,
        surface: CodeModeSurface,
        scope: &'a ToolScope,
        ctx: ExecCtx,
    ) -> HostFuture<'a, Result<ToolCallOutcome, ToolError>>;
    fn resolve_snippet<'a>(
        &'a self,
        name: &'a str,
        input: Value,
    ) -> HostFuture<'a, Result<ResolvedSnippet, ToolError>>;

    // Provided methods
    fn semantic_search<'a>(
        &'a self,
        query: &'a str,
        caller: &'a CodeModeCaller,
        surface: CodeModeSurface,
        scope: &'a ToolScope,
        top_k: usize,
    ) -> HostFuture<'a, Result<Vec<(String, f32)>, ToolError>> { ... }
    fn decide_step<'a>(
        &'a self,
        ctx: ExecCtx,
        name: &'a str,
    ) -> HostFuture<'a, StepDecision> { ... }
    fn record_step<'a>(
        &'a self,
        ctx: ExecCtx,
        name: &'a str,
        value: &'a Value,
    ) -> HostFuture<'a, Result<(), ToolError>> { ... }
    fn openapi_registry(&self) -> Option<OpenApiRegistry> { ... }
    fn openapi_http_client(&self) -> Option<Client> { ... }
}

Required Methods§

Source

fn list_tools<'a>( &'a self, caller: &'a CodeModeCaller, surface: CodeModeSurface, scope: &'a ToolScope, include_snippets: bool, use_cache: bool, ) -> HostFuture<'a, Result<ToolsRender, ToolError>>

Source

fn call_tool<'a>( &'a self, id: &'a str, params: Value, caller: &'a CodeModeCaller, surface: CodeModeSurface, scope: &'a ToolScope, ctx: ExecCtx, ) -> HostFuture<'a, Result<ToolCallOutcome, ToolError>>

Source

fn resolve_snippet<'a>( &'a self, name: &'a str, input: Value, ) -> HostFuture<'a, Result<ResolvedSnippet, ToolError>>

Provided Methods§

Source

fn decide_step<'a>( &'a self, ctx: ExecCtx, name: &'a str, ) -> HostFuture<'a, StepDecision>

Source

fn record_step<'a>( &'a self, ctx: ExecCtx, name: &'a str, value: &'a Value, ) -> HostFuture<'a, Result<(), ToolError>>

Source

fn openapi_registry(&self) -> Option<OpenApiRegistry>

Source

fn openapi_http_client(&self) -> Option<Client>

Implementors§