ai_agent/tools/workflow/
workflow_tool.rs1use crate::types::*;
5
6use super::constants::WORKFLOW_TOOL_NAME;
7
8pub struct WorkflowTool;
11
12impl WorkflowTool {
13 pub fn new() -> Self {
14 Self
15 }
16
17 pub fn name(&self) -> &str {
18 WORKFLOW_TOOL_NAME
19 }
20
21 pub fn description(&self) -> &str {
22 "Manage workflows (not implemented)"
23 }
24
25 pub fn input_schema(&self) -> ToolInputSchema {
26 ToolInputSchema {
27 schema_type: "object".to_string(),
28 properties: serde_json::json!({}),
29 required: None,
30 }
31 }
32
33 pub async fn execute(
34 &self,
35 _input: serde_json::Value,
36 _context: &ToolContext,
37 ) -> Result<ToolResult, crate::error::AgentError> {
38 Err(crate::error::AgentError::ToolNotImplemented(
39 "Workflow tool is not implemented".to_string(),
40 ))
41 }
42}
43
44impl Default for WorkflowTool {
45 fn default() -> Self {
46 Self::new()
47 }
48}
49
50#[cfg(test)]
51mod tests {
52 use super::*;
53
54 #[test]
55 fn test_workflow_tool_name() {
56 let tool = WorkflowTool::new();
57 assert_eq!(tool.name(), WORKFLOW_TOOL_NAME);
58 }
59
60 #[test]
61 fn test_workflow_tool_schema() {
62 let tool = WorkflowTool::new();
63 let schema = tool.input_schema();
64 assert_eq!(schema.schema_type, "object");
65 }
66}