Skip to main content

streamweave_attractor/
lib.rs

1//! # streamweave-attractor
2//!
3//! Attractor pipeline implementation as a graph of StreamWeave nodes.
4//! Implements [StrongDM's Attractor spec](https://github.com/strongdm/attractor).
5//!
6//! ## Architecture
7//!
8//! All pipeline logic is implemented as StreamWeave nodes:
9//!
10//! Pipeline logic is implemented as StreamWeave nodes (see `nodes` module).
11//! Supporting nodes: ApplyContextUpdatesNode, CheckGoalGatesNode,
12//! FindStartNode, etc.
13
14/// Default directory for staging when not overridden.
15pub const DEFAULT_STAGE_DIR: &str = ".attractor";
16pub(crate) mod agent_run;
17pub mod execution_log_io;
18
19pub mod compiler;
20#[cfg(test)]
21mod compiler_test;
22pub mod dot_parser;
23#[cfg(test)]
24mod dot_parser_test;
25pub mod graphs;
26pub mod nodes;
27pub mod runner;
28#[cfg(test)]
29mod runner_test;
30pub mod types;
31
32pub use compiler::{compile_attractor_graph, validate_attractor_graph};
33pub use runner::{RunOptions, run_compiled_graph, run_streamweave_graph};
34pub use types::AttractorResult;
35pub use types::{
36  AttractorGraph, AttractorNode, ExecutionState, NodeOutcome, RunSummaryOutput,
37  run_summary_output_from_log,
38};