1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
//! AST Module - Abstract Syntax Tree for YAML workflows
//!
//! # Two-Phase IR Architecture (v0.19)
//!
//! Nika uses a two-phase IR similar to rustc:
//!
//! 1. **raw** - Parsed from YAML with full span tracking (line:col)
//! 2. **analyzed** - Validated, references resolved, ready for execution (planned)
//!
//! The existing types (Workflow, Task, etc.) are the "legacy" AST that will
//! gradually migrate to use the new two-phase architecture.
//!
//! # Modules
//!
//! ## New (v0.19 Foundation)
//! - `raw`: Raw AST with Spanned<T> fields for precise error locations
//!
//! ## Legacy (being migrated)
//! - `workflow`: Workflow, Task, Flow, FlowEndpoint
//! - `action`: TaskAction, InferParams, ExecParams, FetchParams
//! - `invoke`: InvokeParams (v0.2 - MCP integration)
//! - `agent`: AgentParams (v0.2 - Agentic execution)
//! - `output`: OutputPolicy, OutputFormat
//! - `context`: ContextConfig (v0.9 - File loading at workflow start)
//! - `agent_def`: AgentDef (v0.6 - Reusable agent configurations)
//! - `skill_def`: SkillDef, SkillRef (v0.6 - Prompt augmentation)
//! - `include`: IncludeSpec (v0.9 - DAG fusion)
//! - `artifact`: ArtifactSpec, ArtifactsConfig (v0.18 - File persistence)
//! - `logging`: LogConfig, LogLevel (v0.18 - Level-filtered logging)
//!
//! These types represent the "what" - static structure parsed from YAML.
//! For runtime execution, see the `runtime` module.
// v0.19 Foundation - Two-Phase IR
// Legacy modules (being migrated)
// Re-export all public types
pub use ;
// AgentParams + ToolChoice are defined in agent.rs
pub use ;
// AgentDef is defined in agent_def.rs (v0.6 - Reusable agent configurations)
pub use AgentDef;
// InvokeParams is defined in invoke.rs and re-exported here
// (also used by action.rs for TaskAction::Invoke variant)
pub use InvokeParams;
// ContextConfig is defined in context.rs (v0.9 - File loading at workflow start)
pub use ContextConfig;
// IncludeSpec is defined in include.rs (v0.9 - DAG fusion)
pub use IncludeSpec;
pub use ;
// SkillDef + SkillRef are defined in skill_def.rs (v0.6 - Prompt augmentation)
pub use ;
// PkgUri is defined in pkg_resolver.rs (v0.15.2 - Skill Ecosystem)
pub use PkgUri;
pub use ;
// DecomposeSpec is defined in decompose.rs (v0.5 - Runtime DAG expansion)
pub use ;
// Loader is defined in loader.rs (v0.13 - Multi-format agent/skill loading)
pub use ;
// Include loader is defined in include_loader.rs (v0.14.2 - DAG fusion)
pub use expand_includes;