meerkat_workgraph/
surface.rs1use std::sync::Arc;
2
3use meerkat_core::AgentToolDispatcher;
4
5use crate::{WorkGraphService, WorkGraphToolSurface};
6
7pub fn wire_workgraph_tools(service: WorkGraphService) -> Arc<dyn AgentToolDispatcher> {
8 Arc::new(WorkGraphToolSurface::new(service))
9}
10
11#[cfg(test)]
12mod tests {
13 use super::*;
14 use crate::{MemoryWorkGraphStore, WorkGraphService};
15
16 #[test]
17 fn wire_workgraph_tools_exposes_workgraph_tools() {
18 let dispatcher =
19 wire_workgraph_tools(WorkGraphService::new(Arc::new(MemoryWorkGraphStore::new())));
20 let names = dispatcher
21 .tools()
22 .iter()
23 .map(|tool| tool.name.clone())
24 .collect::<Vec<_>>();
25 assert!(names.iter().any(|name| name == "workgraph_create"));
26 assert!(names.iter().any(|name| name == "workgraph_ready"));
27 }
28}