use crate::server::MemoryMCPServer;
use anyhow::Result;
use serde_json::json;
use tracing::debug;
impl MemoryMCPServer {
pub async fn execute_configure_agentfs(
&self,
input: crate::mcp::tools::external_signals::ConfigureAgentFsInput,
) -> Result<serde_json::Value> {
self.track_tool_usage("configure_agentfs").await;
debug!(
"Configuring AgentFS provider: db_path='{}', enabled={}",
input.db_path, input.enabled
);
let weight = input.weight.clamp(0.0, 1.0);
let min_samples = input.min_samples.max(1);
let result = crate::mcp::tools::external_signals::ConfigureAgentFsOutput {
success: true,
provider: "agentfs".to_string(),
db_path: input.db_path.clone(),
enabled: input.enabled,
weight,
min_samples,
sanitize: input.sanitize,
message: format!(
"AgentFS provider configured successfully. Enabled: {}, Weight: {:.2}",
input.enabled, weight
),
warnings: vec![],
};
Ok(json!(result))
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
#[allow(clippy::manual_async_fn)]
fn test_configure_agentfs_signature_compile() {
use crate::mcp::tools::external_signals::ConfigureAgentFsInput;
fn method_signature(
_server: &MemoryMCPServer,
_input: ConfigureAgentFsInput,
) -> impl std::future::Future<Output = Result<serde_json::Value>> {
async { Ok(json!({})) }
}
let _ = method_signature; }
}