Skip to main content

motosan_workflow_model/
lib.rs

1//! # motosan-workflow-model
2//!
3//! Data types, core traits, graph algorithms, loader, and templates for the
4//! motosan-workflow DAG-based agent workflow engine.
5//!
6//! This crate is the foundation layer -- everything except the execution engine.
7
8pub mod context;
9pub mod cost;
10pub mod dag;
11pub mod error;
12pub mod event;
13pub mod execution;
14pub mod loader;
15pub mod node;
16pub mod orch_config;
17pub mod schema;
18pub mod state;
19pub mod templates;
20pub mod tool_registry;
21pub mod traits;
22pub mod validation;
23pub mod workflow;
24
25// ── Re-exports ────────────────────────────────────────────────────────────────
26
27// traits.rs
28pub use traits::{
29    HumanInputProvider, HumanResponse, LlmClient, LlmResponse, Message, MessageContent,
30    MessageRole, NodeOutput, ResumeToken, StopReason, TokenUsage, ToolCallRequest, ToolDefinition,
31    ToolExecutor, WorkflowResult, WorkflowStatus,
32};
33
34// error.rs
35pub use error::{Result, WorkflowError};
36
37// event.rs
38pub use event::WorkflowEvent;
39
40// execution.rs
41pub use execution::{
42    workflow_fingerprint, Checkpoint, ErrorSummary, ExecutionFilter, ExecutionObserver,
43    ExecutionRecord, ExecutionStats, ExecutionStatus, ExecutionStore, LlmCallRecord, NodeRecord,
44    NodeStatus, ToolCallRecord, TriggerType, WorkflowStats,
45};
46
47// context.rs
48pub use context::WorkflowContext;
49
50// cost.rs
51pub use cost::{estimate_cost, CostEstimate, ModelPricing, NodeCostEstimate};
52
53// node.rs
54pub use node::{
55    AcpCapabilities, AcpFallback, AcpNodeConfig, AcpSessionMode, AgencySkill, AgentConfig,
56    AsyncTransformFn, ConditionBranch, ConditionConfig, ConditionOp, FailureMode, FileAccessConfig,
57    ForeachErrorMode, HumanConfig, IntoInputIds, LoopConfig, McpServerConfig, Node, NodeKind,
58    RetryPolicy, SkillSelectStrategy, SubWorkflowConfig, SwarmCompletionCriteria, SwarmConfig,
59    SwarmWorkerConfig, TransformConfig, TransformFn,
60};
61
62// loader.rs
63pub use loader::{load_workflow, load_workflow_from_str, load_workflow_with_base, Format};
64
65// orch_config.rs
66pub use orch_config::OrchestratorConfig;
67
68// state.rs
69pub use state::{diff_and_store, DiffResult, FileStateStore, StateStore};
70
71// templates.rs
72pub use templates::{builtin_workflow, builtin_workflows};
73
74// tool_registry.rs
75pub use tool_registry::ToolRegistry;
76
77// validation.rs
78pub use validation::{validate_agents, validate_condition_paths, AgentIssue, IssueSeverity};
79
80// workflow.rs
81pub use workflow::{Edge, Workflow, WorkflowBuilder};