systemprompt-ai 0.2.2

Provider-agnostic LLM integration for systemprompt.io AI governance — Anthropic, OpenAI, Gemini, and local models unified behind one governed pipeline with cost tracking and audit.
Documentation
use async_trait::async_trait;
use std::collections::HashMap;
use systemprompt_traits::{
    ToolCallRequest, ToolCallResult, ToolContext, ToolDefinition, ToolProvider, ToolProviderError,
    ToolProviderResult,
};

#[derive(Debug, Clone, Copy, Default)]
pub struct NoopToolProvider;

impl NoopToolProvider {
    pub const fn new() -> Self {
        Self
    }
}

#[async_trait]
impl ToolProvider for NoopToolProvider {
    async fn list_tools(
        &self,
        _agent_name: &str,
        _context: &ToolContext,
    ) -> ToolProviderResult<Vec<ToolDefinition>> {
        Ok(Vec::new())
    }

    async fn call_tool(
        &self,
        request: &ToolCallRequest,
        _service_id: &str,
        _context: &ToolContext,
    ) -> ToolProviderResult<ToolCallResult> {
        Err(ToolProviderError::ServiceNotFound(format!(
            "NoopToolProvider cannot execute tool: {}",
            request.name
        )))
    }

    async fn refresh_connections(&self, _agent_name: &str) -> ToolProviderResult<()> {
        Ok(())
    }

    async fn health_check(&self) -> ToolProviderResult<HashMap<String, bool>> {
        Ok(HashMap::new())
    }
}