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 error;
11pub mod event;
12pub mod execution_engine;
13pub mod execution_loop;
14pub mod graph;
15pub mod graph_analysis;
16pub mod ids;
17pub mod mutation_log;
18pub mod node;
19pub mod node_context;
20pub mod parallel_node;
21pub mod runtime_event;
22pub mod state;
23pub mod statekey;
24pub mod store;
25pub mod stream_chunk;
26pub mod stream_emitter;
27pub mod test_executor;
28pub mod workflow_state;
29
30// ─── IDs ─────────────────────────────────────────────────────
31pub use checkpoint::TraceId;
32pub use ids::SpanId;
33
34// ─── State ───────────────────────────────────────────────────
35pub use state::{
36    ExecutionEntry, GraphResult, State, StateError, StateExt, StateMerge, StateMutation,
37    StateReducer, array_reducer,
38};
39
40// ─── StateKey ────────────────────────────────────────────────
41pub use statekey::{
42    Reducer, SK_COUNT, SK_ITERATIONS, SK_MESSAGES, SK_OUTPUT_TOKENS, SK_PENDING_TOOL_CALLS,
43    SK_REASONING_TOKENS, SK_STEPS, SK_TOTAL_TOOL_CALLS, StateKey, StateKeyExt,
44};
45
46// ─── Checkpoint ──────────────────────────────────────────────
47#[allow(deprecated)]
48pub use checkpoint::{
49    Checkpoint, CheckpointBlob, CheckpointId, CheckpointPolicy, CheckpointStoreError, NodeId,
50};
51
52// ─── Checkpoint Policy ───────────────────────────────────────
53pub use checkpoint_policy::{RetentionPolicy, TriggerPolicy};
54
55// ─── Checkpoint Codec ────────────────────────────────────────
56pub use checkpoint_codec::{CheckpointCodec, SerdeCheckpointCodec, TypedCheckpointStore};
57
58// ─── Store ───────────────────────────────────────────────────
59pub use store::{BlobCheckpointStore, InMemoryBlobStore};
60
61// ─── Error Types ─────────────────────────────────────────────
62pub use error::{
63    BuildError, BuildErrors, Diagnostic, DiagnosticCategory, DiagnosticSeverity, GraphDiagnostics,
64    GraphError, ObservedError, TerminalError,
65};
66
67// ─── Events ──────────────────────────────────────────────────
68pub use event::{
69    BarrierDecision, BarrierId, FlowEvent, GraphEvent, GraphExecution, GraphHandle, GraphStream,
70};
71
72// ─── Graph ───────────────────────────────────────────────────
73pub use graph::{Edge, Graph, GraphBuilder};
74pub use graph_analysis::CycleAnalysis;
75
76// ─── Nodes ───────────────────────────────────────────────────
77pub use node::{
78    BarrierDefaultAction, BarrierNode, BranchCondition, ConditionNode, ConditionNodeBuilder,
79    ExecutorOperation, FlowNode, LeafNode, NodeKind, ParallelErrorStrategy, ParallelNode,
80    ParallelNodeBuilder, TaskFn, TaskNode,
81};
82
83// ─── Test Executor (SimpleExecutor 兼容层) ────────────────────
84pub use test_executor::SimpleExecutor;
85
86// ─── v04: ExecutionEngine + NodeContext + Stream ─────────────
87pub use execution_engine::{
88    ExecutionContext, ExecutionControl, ExecutionEngine, ExecutionSignal, ExecutionView,
89    ExecutorState, NextAction, NodeMetadata,
90};
91pub use node_context::{LeafContext, NodeContext};
92pub use runtime_event::RuntimeEvent;
93pub use stream_chunk::{StreamChunk, ToolPhase};
94pub use stream_emitter::{
95    BufferedSink, ChannelSink, NoopSink, StreamHub, StreamSink, noop_sink, sink_arc,
96    spawn_forward_task,
97};
98pub use tokio_util::sync::CancellationToken;
99pub use workflow_state::{LastWriteWins, MergeStrategy, WorkflowError, WorkflowState};
100
101// ─── Trace ───────────────────────────────────────────────────
102pub mod trace;
103pub use trace::{
104    ExecutionTrace, ExportedTrace, ExportedTraceStep, MemoryTraceSink, TraceSink, TraceStep,
105};
106
107// ─── MutationLog ─────────────────────────────────────────────
108pub use mutation_log::{
109    InMemoryMutationLog, MutationLogEntry, MutationLogStore, mutations_to_log_entries,
110};