Skip to main content

lellm_graph/
lib.rs

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