Skip to main content

matrixcode_core/tools/workflow/
mod.rs

1//! Workflow Tools
2//!
3//! 工作流相关工具集合
4
5mod discover;
6mod run;
7mod r#match;
8mod content;
9
10pub use discover::WorkflowDiscoverTool;
11pub use run::WorkflowRunTool;
12pub use r#match::WorkflowMatchTool;
13pub use content::ContentGenerationTool;
14
15use crate::tools::BoxedTool;
16use std::sync::Arc;
17use crate::providers::Provider;
18
19/// Get all workflow management tools
20pub fn workflow_tools() -> Vec<BoxedTool> {
21    vec![
22        Box::new(WorkflowDiscoverTool),
23        Box::new(WorkflowRunTool::new()),
24        Box::new(WorkflowMatchTool),
25    ]
26}
27
28/// Get workflow tools that need provider
29pub fn workflow_tools_with_provider(provider: Arc<dyn Provider>) -> Vec<BoxedTool> {
30    vec![
31        Box::new(WorkflowRunTool::with_provider(provider.clone())),
32        Box::new(ContentGenerationTool::new(provider)),
33    ]
34}