Skip to main content

meerkat_workgraph/
surface.rs

1use 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}