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//! CreateCheckpointNode, FindStartNode, etc.
13
14/// Default directory for outcome.json, checkpoint, and staging when not overridden.
15pub const DEFAULT_STAGE_DIR: &str = ".attractor";
16pub(crate) mod agent_run;
17pub mod checkpoint_io;
18
19#[cfg(test)]
20mod checkpoint_io_test;
21pub mod compiler;
22#[cfg(test)]
23mod compiler_test;
24pub mod dot_parser;
25#[cfg(test)]
26mod dot_parser_test;
27pub mod graphs;
28pub mod nodes;
29pub mod runner;
30#[cfg(test)]
31mod runner_test;
32pub mod types;
33
34pub use compiler::compile_attractor_graph;
35pub use nodes::AttractorResult;
36pub use runner::{RunOptions, run_compiled_graph, run_streamweave_graph};
37pub use types::{AttractorGraph, AttractorNode, ExecutionState, NodeOutcome};