@wundr.io/langgraph-orchestrator 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +842 -0
  2. package/dist/checkpointing.d.ts +265 -0
  3. package/dist/checkpointing.d.ts.map +1 -0
  4. package/dist/checkpointing.js +577 -0
  5. package/dist/checkpointing.js.map +1 -0
  6. package/dist/edges/conditional-edge.d.ts +230 -0
  7. package/dist/edges/conditional-edge.d.ts.map +1 -0
  8. package/dist/edges/conditional-edge.js +439 -0
  9. package/dist/edges/conditional-edge.js.map +1 -0
  10. package/dist/edges/loop-edge.d.ts +290 -0
  11. package/dist/edges/loop-edge.d.ts.map +1 -0
  12. package/dist/edges/loop-edge.js +503 -0
  13. package/dist/edges/loop-edge.js.map +1 -0
  14. package/dist/index.d.ts +125 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +269 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/nodes/decision-node.d.ts +276 -0
  19. package/dist/nodes/decision-node.d.ts.map +1 -0
  20. package/dist/nodes/decision-node.js +403 -0
  21. package/dist/nodes/decision-node.js.map +1 -0
  22. package/dist/nodes/human-node.d.ts +272 -0
  23. package/dist/nodes/human-node.d.ts.map +1 -0
  24. package/dist/nodes/human-node.js +394 -0
  25. package/dist/nodes/human-node.js.map +1 -0
  26. package/dist/nodes/llm-node.d.ts +173 -0
  27. package/dist/nodes/llm-node.d.ts.map +1 -0
  28. package/dist/nodes/llm-node.js +325 -0
  29. package/dist/nodes/llm-node.js.map +1 -0
  30. package/dist/nodes/tool-node.d.ts +151 -0
  31. package/dist/nodes/tool-node.d.ts.map +1 -0
  32. package/dist/nodes/tool-node.js +373 -0
  33. package/dist/nodes/tool-node.js.map +1 -0
  34. package/dist/prebuilt-graphs/plan-execute-refine.d.ts +149 -0
  35. package/dist/prebuilt-graphs/plan-execute-refine.d.ts.map +1 -0
  36. package/dist/prebuilt-graphs/plan-execute-refine.js +600 -0
  37. package/dist/prebuilt-graphs/plan-execute-refine.js.map +1 -0
  38. package/dist/state-graph.d.ts +158 -0
  39. package/dist/state-graph.d.ts.map +1 -0
  40. package/dist/state-graph.js +756 -0
  41. package/dist/state-graph.js.map +1 -0
  42. package/dist/types.d.ts +762 -0
  43. package/dist/types.d.ts.map +1 -0
  44. package/dist/types.js +73 -0
  45. package/dist/types.js.map +1 -0
  46. package/package.json +57 -0
  47. package/src/checkpointing.ts +702 -0
  48. package/src/edges/conditional-edge.ts +518 -0
  49. package/src/edges/loop-edge.ts +623 -0
  50. package/src/index.ts +416 -0
  51. package/src/nodes/decision-node.ts +538 -0
  52. package/src/nodes/human-node.ts +572 -0
  53. package/src/nodes/llm-node.ts +448 -0
  54. package/src/nodes/tool-node.ts +525 -0
  55. package/src/prebuilt-graphs/plan-execute-refine.ts +769 -0
  56. package/src/state-graph.ts +990 -0
  57. package/src/types.ts +729 -0
@@ -0,0 +1,265 @@
1
+ /**
2
+ * Checkpointing - State persistence and time-travel debugging
3
+ * @module @wundr.io/langgraph-orchestrator
4
+ */
5
+ import { z } from 'zod';
6
+ import type { AgentState, Checkpoint, CheckpointSummary, GraphCheckpointer } from './types';
7
+ /**
8
+ * In-memory checkpointer implementation
9
+ * Useful for development and testing
10
+ */
11
+ export declare class MemoryCheckpointer implements GraphCheckpointer {
12
+ private checkpoints;
13
+ private executionIndex;
14
+ /**
15
+ * Save a checkpoint
16
+ */
17
+ save(checkpoint: Checkpoint): Promise<void>;
18
+ /**
19
+ * Load a checkpoint by ID
20
+ */
21
+ load(checkpointId: string): Promise<Checkpoint | null>;
22
+ /**
23
+ * List checkpoints for an execution
24
+ */
25
+ list(executionId: string): Promise<CheckpointSummary[]>;
26
+ /**
27
+ * Delete a checkpoint
28
+ */
29
+ delete(checkpointId: string): Promise<void>;
30
+ /**
31
+ * Get the latest checkpoint for an execution
32
+ */
33
+ getLatest(executionId: string): Promise<Checkpoint | null>;
34
+ /**
35
+ * Clear all checkpoints
36
+ */
37
+ clear(): void;
38
+ /**
39
+ * Get statistics about stored checkpoints
40
+ */
41
+ getStats(): {
42
+ totalCheckpoints: number;
43
+ totalExecutions: number;
44
+ };
45
+ }
46
+ /**
47
+ * File-based checkpointer implementation
48
+ * Persists checkpoints to the filesystem
49
+ */
50
+ export declare class FileCheckpointer implements GraphCheckpointer {
51
+ private readonly basePath;
52
+ private readonly fs;
53
+ /**
54
+ * Create a file-based checkpointer
55
+ * @param basePath - Directory to store checkpoints
56
+ * @param fs - FileSystem interface (allows for mocking)
57
+ */
58
+ constructor(basePath: string, fs?: FileSystem);
59
+ /**
60
+ * Save a checkpoint
61
+ */
62
+ save(checkpoint: Checkpoint): Promise<void>;
63
+ /**
64
+ * Load a checkpoint by ID
65
+ */
66
+ load(checkpointId: string): Promise<Checkpoint | null>;
67
+ /**
68
+ * List checkpoints for an execution
69
+ */
70
+ list(executionId: string): Promise<CheckpointSummary[]>;
71
+ /**
72
+ * Delete a checkpoint
73
+ */
74
+ delete(checkpointId: string): Promise<void>;
75
+ /**
76
+ * Get the latest checkpoint for an execution
77
+ */
78
+ getLatest(executionId: string): Promise<Checkpoint | null>;
79
+ /**
80
+ * Load index file
81
+ */
82
+ private loadIndex;
83
+ }
84
+ /**
85
+ * FileSystem interface for abstraction
86
+ */
87
+ export interface FileSystem {
88
+ readFile(path: string, encoding: string): Promise<string>;
89
+ writeFile(path: string, data: string): Promise<void>;
90
+ mkdir(path: string, options?: {
91
+ recursive?: boolean;
92
+ }): Promise<void>;
93
+ readdir(path: string): Promise<string[]>;
94
+ unlink(path: string): Promise<void>;
95
+ exists(path: string): Promise<boolean>;
96
+ }
97
+ /**
98
+ * Time-travel debugger for workflow state
99
+ */
100
+ export declare class TimeTravelDebugger<TState extends AgentState = AgentState> {
101
+ private readonly checkpointer;
102
+ /**
103
+ * Create a time-travel debugger
104
+ * @param checkpointer - Checkpointer to use for state access
105
+ */
106
+ constructor(checkpointer: GraphCheckpointer);
107
+ /**
108
+ * Get the execution timeline
109
+ * @param executionId - Execution to get timeline for
110
+ * @returns Array of checkpoint summaries
111
+ */
112
+ getTimeline(executionId: string): Promise<CheckpointSummary[]>;
113
+ /**
114
+ * Travel to a specific checkpoint
115
+ * @param checkpointId - Checkpoint to travel to
116
+ * @returns The state at that checkpoint
117
+ */
118
+ travelTo(checkpointId: string): Promise<TState | null>;
119
+ /**
120
+ * Get state at a specific step number
121
+ * @param executionId - Execution ID
122
+ * @param stepNumber - Step number to travel to
123
+ * @returns The state at that step
124
+ */
125
+ travelToStep(executionId: string, stepNumber: number): Promise<TState | null>;
126
+ /**
127
+ * Compare two checkpoints
128
+ * @param checkpointId1 - First checkpoint
129
+ * @param checkpointId2 - Second checkpoint
130
+ * @returns Differences between the checkpoints
131
+ */
132
+ compare(checkpointId1: string, checkpointId2: string): Promise<StateDiff[]>;
133
+ /**
134
+ * Get the state history (changes over time)
135
+ * @param executionId - Execution ID
136
+ * @returns Array of state changes
137
+ */
138
+ getStateHistory(executionId: string): Promise<StateHistoryItem<TState>[]>;
139
+ /**
140
+ * Find checkpoints where a condition became true
141
+ * @param executionId - Execution ID
142
+ * @param condition - Condition to check
143
+ * @returns Checkpoints where condition became true
144
+ */
145
+ findTransitions(executionId: string, condition: (state: TState) => boolean): Promise<CheckpointSummary[]>;
146
+ /**
147
+ * Compute differences between two states
148
+ */
149
+ private diffStates;
150
+ }
151
+ /**
152
+ * State difference record
153
+ */
154
+ export interface StateDiff {
155
+ /** Path to the changed value */
156
+ path: string;
157
+ /** Type of change */
158
+ type: 'added' | 'removed' | 'changed';
159
+ /** Previous value */
160
+ oldValue?: unknown;
161
+ /** New value */
162
+ newValue?: unknown;
163
+ }
164
+ /**
165
+ * State history item
166
+ */
167
+ export interface StateHistoryItem<TState extends AgentState = AgentState> {
168
+ /** Checkpoint summary */
169
+ checkpoint: CheckpointSummary;
170
+ /** Full state at this point */
171
+ state: TState;
172
+ /** Changes from previous state */
173
+ changes: StateDiff[];
174
+ }
175
+ /**
176
+ * Create a checkpoint
177
+ *
178
+ * @example
179
+ * ```typescript
180
+ * const checkpoint = createCheckpoint({
181
+ * executionId: 'exec-123',
182
+ * stepNumber: 5,
183
+ * nodeName: 'process-node',
184
+ * state: currentState
185
+ * });
186
+ *
187
+ * await checkpointer.save(checkpoint);
188
+ * ```
189
+ *
190
+ * @param options - Checkpoint options
191
+ * @returns Checkpoint object
192
+ */
193
+ export declare function createCheckpoint<TState extends AgentState = AgentState>(options: {
194
+ executionId: string;
195
+ stepNumber: number;
196
+ nodeName: string;
197
+ state: TState;
198
+ parentId?: string;
199
+ metadata?: Record<string, unknown>;
200
+ }): Checkpoint;
201
+ /**
202
+ * Checkpoint retention policy
203
+ */
204
+ export interface RetentionPolicy {
205
+ /** Maximum number of checkpoints to keep per execution */
206
+ maxCheckpointsPerExecution?: number;
207
+ /** Maximum age of checkpoints in milliseconds */
208
+ maxAge?: number;
209
+ /** Keep every Nth checkpoint (for sampling) */
210
+ keepEveryN?: number;
211
+ /** Always keep checkpoints for these nodes */
212
+ alwaysKeepNodes?: string[];
213
+ }
214
+ /**
215
+ * Apply retention policy to checkpoints
216
+ *
217
+ * @example
218
+ * ```typescript
219
+ * await applyRetentionPolicy(checkpointer, 'exec-123', {
220
+ * maxCheckpointsPerExecution: 100,
221
+ * maxAge: 7 * 24 * 60 * 60 * 1000, // 7 days
222
+ * keepEveryN: 10,
223
+ * alwaysKeepNodes: ['decision', 'error-handler']
224
+ * });
225
+ * ```
226
+ *
227
+ * @param checkpointer - Checkpointer to clean up
228
+ * @param executionId - Execution to apply policy to
229
+ * @param policy - Retention policy
230
+ * @returns Number of checkpoints deleted
231
+ */
232
+ export declare function applyRetentionPolicy(checkpointer: GraphCheckpointer, executionId: string, policy: RetentionPolicy): Promise<number>;
233
+ /**
234
+ * Schema for checkpoint validation
235
+ */
236
+ export declare const CheckpointSchema: z.ZodObject<{
237
+ id: z.ZodString;
238
+ executionId: z.ZodString;
239
+ stepNumber: z.ZodNumber;
240
+ nodeName: z.ZodString;
241
+ timestamp: z.ZodDate;
242
+ parentId: z.ZodOptional<z.ZodString>;
243
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
244
+ }, "strip", z.ZodTypeAny, {
245
+ id: string;
246
+ timestamp: Date;
247
+ executionId: string;
248
+ stepNumber: number;
249
+ nodeName: string;
250
+ metadata?: Record<string, unknown> | undefined;
251
+ parentId?: string | undefined;
252
+ }, {
253
+ id: string;
254
+ timestamp: Date;
255
+ executionId: string;
256
+ stepNumber: number;
257
+ nodeName: string;
258
+ metadata?: Record<string, unknown> | undefined;
259
+ parentId?: string | undefined;
260
+ }>;
261
+ /**
262
+ * Validate a checkpoint
263
+ */
264
+ export declare function validateCheckpoint(checkpoint: unknown): checkpoint is Checkpoint;
265
+ //# sourceMappingURL=checkpointing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpointing.d.ts","sourceRoot":"","sources":["../src/checkpointing.ts"],"names":[],"mappings":"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"}