Skip to main content

lellm_graph/
lib.rs

1//! lellm-graph — Graph/Node/Edge 编排层 + 状态管理 + Checkpoint。
2//!
3//! 通用工作流引擎(类似 LangGraph / Temporal / Prefect)。
4
5pub mod barrier_node;
6pub mod barrier_wait;
7pub mod checkpoint;
8pub mod checkpoint_codec;
9pub mod checkpoint_policy;
10pub mod compiled_subgraph;
11pub mod compiler;
12pub mod error;
13pub mod event;
14pub mod execution_engine;
15pub mod execution_loop;
16pub mod graph;
17pub mod graph_analysis;
18pub mod ids;
19pub mod mutation_log;
20pub mod node;
21pub mod node_context;
22pub mod parallel_node;
23pub mod runtime_event;
24pub mod session;
25pub mod state;
26pub mod state_lens;
27pub mod statekey;
28pub mod store;
29pub mod stream_chunk;
30pub mod stream_emitter;
31pub mod subgraph_spec;
32pub mod test_executor;
33pub mod workflow_state;
34
35// ─── IDs ─────────────────────────────────────────────────────
36pub use checkpoint::TraceId;
37pub use ids::SpanId;
38
39// ─── State ───────────────────────────────────────────────────
40pub use state::{
41    ExecutionEntry, GraphResult, State, StateError, StateExt, StateMerge, StateMutation,
42    StateReducer, array_reducer,
43};
44
45// ─── StateKey ────────────────────────────────────────────────
46pub use statekey::{
47    Reducer, SK_COUNT, SK_ITERATIONS, SK_MESSAGES, SK_OUTPUT_TOKENS, SK_PENDING_TOOL_CALLS,
48    SK_REASONING_TOKENS, SK_STEPS, SK_TOTAL_TOOL_CALLS, StateKey, StateKeyExt,
49};
50
51// ─── Checkpoint ──────────────────────────────────────────────
52#[allow(deprecated)]
53pub use checkpoint::{
54    Checkpoint, CheckpointBlob, CheckpointId, CheckpointPolicy, CheckpointStoreError, NodeId,
55};
56
57// ─── Checkpoint Policy ───────────────────────────────────────
58pub use checkpoint_policy::{RetentionPolicy, TriggerPolicy};
59
60// ─── Checkpoint Codec ────────────────────────────────────────
61pub use checkpoint_codec::{CheckpointCodec, SerdeCheckpointCodec, TypedCheckpointStore};
62
63// ─── Store ───────────────────────────────────────────────────
64pub use store::{BlobCheckpointStore, InMemoryBlobStore};
65
66// ─── Error Types ─────────────────────────────────────────────
67pub use error::{
68    BuildError, BuildErrors, Diagnostic, DiagnosticCategory, DiagnosticSeverity, GraphDiagnostics,
69    GraphError, ObservedError, TerminalError,
70};
71
72// ─── Events ──────────────────────────────────────────────────
73pub use event::{
74    BarrierDecision, BarrierId, FlowEvent, GraphEvent, GraphExecution, GraphHandle, GraphStream,
75};
76
77// ─── Graph ───────────────────────────────────────────────────
78pub use graph::{Edge, Graph, GraphBuilder};
79pub use graph_analysis::CycleAnalysis;
80
81// ─── Nodes ───────────────────────────────────────────────────
82pub use node::{
83    BarrierDefaultAction, BarrierNode, BranchCondition, ConditionNode, ConditionNodeBuilder,
84    ExecutorOperation, FlowNode, LeafNode, NodeKind, ParallelErrorStrategy, ParallelNode,
85    ParallelNodeBuilder, TaskFn, TaskNode,
86};
87
88// ─── CompiledSubgraph + StateProjector ─────────────────────
89pub use compiled_subgraph::{CompiledSubgraph, StateProjector};
90
91// ─── StateLens + SubgraphSpec ──────────────────────────────
92pub use state_lens::{IdentityLens, StateLens};
93pub use subgraph_spec::SubgraphSpec;
94
95// ─── ExecutionSession + SessionCheckpoint + SessionError ────
96pub use session::{ExecutionSession, SessionCheckpoint, SessionError};
97
98// ─── Test Executor (SimpleExecutor 兼容层) ────────────────────
99pub use test_executor::SimpleExecutor;
100
101// ─── v04: ExecutionEngine + NodeContext + Stream ─────────────
102pub use execution_engine::{
103    ExecutionContext, ExecutionControl, ExecutionEngine, ExecutionSignal, ExecutionView,
104    ExecutorState, NextAction, NodeMetadata, OwnedExecutionEngine,
105};
106pub use node_context::{LeafContext, NodeContext};
107pub use runtime_event::RuntimeEvent;
108pub use stream_chunk::{StreamChunk, ToolPhase};
109pub use stream_emitter::{
110    BufferedSink, ChannelSink, NoopSink, StreamHub, StreamSink, noop_sink, sink_arc,
111    spawn_forward_task,
112};
113pub use tokio_util::sync::CancellationToken;
114pub use workflow_state::{LastWriteWins, MergeStrategy, WorkflowError, WorkflowState};
115
116// ─── Trace ───────────────────────────────────────────────────
117pub mod trace;
118pub use trace::{
119    ExecutionTrace, ExportedTrace, ExportedTraceStep, MemoryTraceSink, TraceSink, TraceStep,
120};
121
122// ─── MutationLog ─────────────────────────────────────────────
123pub use mutation_log::{
124    InMemoryMutationLog, MutationLogEntry, MutationLogStore, mutations_to_log_entries,
125};