@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,577 @@
1
+ "use strict";
2
+ /**
3
+ * Checkpointing - State persistence and time-travel debugging
4
+ * @module @wundr.io/langgraph-orchestrator
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.CheckpointSchema = exports.TimeTravelDebugger = exports.FileCheckpointer = exports.MemoryCheckpointer = void 0;
41
+ exports.createCheckpoint = createCheckpoint;
42
+ exports.applyRetentionPolicy = applyRetentionPolicy;
43
+ exports.validateCheckpoint = validateCheckpoint;
44
+ const uuid_1 = require("uuid");
45
+ const zod_1 = require("zod");
46
+ /**
47
+ * In-memory checkpointer implementation
48
+ * Useful for development and testing
49
+ */
50
+ class MemoryCheckpointer {
51
+ checkpoints = new Map();
52
+ executionIndex = new Map();
53
+ /**
54
+ * Save a checkpoint
55
+ */
56
+ async save(checkpoint) {
57
+ this.checkpoints.set(checkpoint.id, checkpoint);
58
+ // Update execution index
59
+ const executionCheckpoints = this.executionIndex.get(checkpoint.executionId) ?? [];
60
+ executionCheckpoints.push(checkpoint.id);
61
+ this.executionIndex.set(checkpoint.executionId, executionCheckpoints);
62
+ }
63
+ /**
64
+ * Load a checkpoint by ID
65
+ */
66
+ async load(checkpointId) {
67
+ return this.checkpoints.get(checkpointId) ?? null;
68
+ }
69
+ /**
70
+ * List checkpoints for an execution
71
+ */
72
+ async list(executionId) {
73
+ const checkpointIds = this.executionIndex.get(executionId) ?? [];
74
+ return checkpointIds
75
+ .map(id => {
76
+ const cp = this.checkpoints.get(id);
77
+ if (!cp) {
78
+ return null;
79
+ }
80
+ return {
81
+ id: cp.id,
82
+ executionId: cp.executionId,
83
+ stepNumber: cp.stepNumber,
84
+ nodeName: cp.nodeName,
85
+ timestamp: cp.timestamp,
86
+ };
87
+ })
88
+ .filter((cp) => cp !== null)
89
+ .sort((a, b) => a.stepNumber - b.stepNumber);
90
+ }
91
+ /**
92
+ * Delete a checkpoint
93
+ */
94
+ async delete(checkpointId) {
95
+ const checkpoint = this.checkpoints.get(checkpointId);
96
+ if (checkpoint) {
97
+ this.checkpoints.delete(checkpointId);
98
+ // Update execution index
99
+ const executionCheckpoints = this.executionIndex.get(checkpoint.executionId) ?? [];
100
+ const index = executionCheckpoints.indexOf(checkpointId);
101
+ if (index > -1) {
102
+ executionCheckpoints.splice(index, 1);
103
+ this.executionIndex.set(checkpoint.executionId, executionCheckpoints);
104
+ }
105
+ }
106
+ }
107
+ /**
108
+ * Get the latest checkpoint for an execution
109
+ */
110
+ async getLatest(executionId) {
111
+ const checkpointIds = this.executionIndex.get(executionId) ?? [];
112
+ if (checkpointIds.length === 0) {
113
+ return null;
114
+ }
115
+ // Get the most recent checkpoint
116
+ let latest = null;
117
+ for (const id of checkpointIds) {
118
+ const cp = this.checkpoints.get(id);
119
+ if (cp && (!latest || cp.stepNumber > latest.stepNumber)) {
120
+ latest = cp;
121
+ }
122
+ }
123
+ return latest;
124
+ }
125
+ /**
126
+ * Clear all checkpoints
127
+ */
128
+ clear() {
129
+ this.checkpoints.clear();
130
+ this.executionIndex.clear();
131
+ }
132
+ /**
133
+ * Get statistics about stored checkpoints
134
+ */
135
+ getStats() {
136
+ return {
137
+ totalCheckpoints: this.checkpoints.size,
138
+ totalExecutions: this.executionIndex.size,
139
+ };
140
+ }
141
+ }
142
+ exports.MemoryCheckpointer = MemoryCheckpointer;
143
+ /**
144
+ * File-based checkpointer implementation
145
+ * Persists checkpoints to the filesystem
146
+ */
147
+ class FileCheckpointer {
148
+ basePath;
149
+ fs;
150
+ /**
151
+ * Create a file-based checkpointer
152
+ * @param basePath - Directory to store checkpoints
153
+ * @param fs - FileSystem interface (allows for mocking)
154
+ */
155
+ constructor(basePath, fs) {
156
+ this.basePath = basePath;
157
+ this.fs = fs ?? createNodeFileSystem();
158
+ }
159
+ /**
160
+ * Save a checkpoint
161
+ */
162
+ async save(checkpoint) {
163
+ const executionDir = `${this.basePath}/${checkpoint.executionId}`;
164
+ await this.fs.mkdir(executionDir, { recursive: true });
165
+ const filePath = `${executionDir}/${checkpoint.id}.json`;
166
+ await this.fs.writeFile(filePath, JSON.stringify(checkpoint, null, 2));
167
+ // Update index
168
+ const indexPath = `${executionDir}/index.json`;
169
+ const index = await this.loadIndex(indexPath);
170
+ index.push({
171
+ id: checkpoint.id,
172
+ stepNumber: checkpoint.stepNumber,
173
+ nodeName: checkpoint.nodeName,
174
+ timestamp: checkpoint.timestamp.toISOString(),
175
+ });
176
+ await this.fs.writeFile(indexPath, JSON.stringify(index, null, 2));
177
+ }
178
+ /**
179
+ * Load a checkpoint by ID
180
+ */
181
+ async load(checkpointId) {
182
+ // Search all execution directories
183
+ const executions = await this.fs.readdir(this.basePath).catch(() => []);
184
+ for (const executionId of executions) {
185
+ const filePath = `${this.basePath}/${executionId}/${checkpointId}.json`;
186
+ try {
187
+ const content = await this.fs.readFile(filePath, 'utf-8');
188
+ const data = JSON.parse(content);
189
+ return {
190
+ ...data,
191
+ timestamp: new Date(data.timestamp),
192
+ state: {
193
+ ...data.state,
194
+ createdAt: new Date(data.state.createdAt),
195
+ updatedAt: new Date(data.state.updatedAt),
196
+ },
197
+ };
198
+ }
199
+ catch {
200
+ // Continue searching
201
+ }
202
+ }
203
+ return null;
204
+ }
205
+ /**
206
+ * List checkpoints for an execution
207
+ */
208
+ async list(executionId) {
209
+ const indexPath = `${this.basePath}/${executionId}/index.json`;
210
+ const index = await this.loadIndex(indexPath);
211
+ return index.map(item => ({
212
+ id: item.id,
213
+ executionId,
214
+ stepNumber: item.stepNumber,
215
+ nodeName: item.nodeName,
216
+ timestamp: new Date(item.timestamp),
217
+ }));
218
+ }
219
+ /**
220
+ * Delete a checkpoint
221
+ */
222
+ async delete(checkpointId) {
223
+ const checkpoint = await this.load(checkpointId);
224
+ if (!checkpoint) {
225
+ return;
226
+ }
227
+ const filePath = `${this.basePath}/${checkpoint.executionId}/${checkpointId}.json`;
228
+ await this.fs.unlink(filePath).catch(() => { });
229
+ // Update index
230
+ const indexPath = `${this.basePath}/${checkpoint.executionId}/index.json`;
231
+ const index = await this.loadIndex(indexPath);
232
+ const filtered = index.filter(item => item.id !== checkpointId);
233
+ await this.fs.writeFile(indexPath, JSON.stringify(filtered, null, 2));
234
+ }
235
+ /**
236
+ * Get the latest checkpoint for an execution
237
+ */
238
+ async getLatest(executionId) {
239
+ const summaries = await this.list(executionId);
240
+ if (summaries.length === 0) {
241
+ return null;
242
+ }
243
+ const latest = summaries.reduce((a, b) => a.stepNumber > b.stepNumber ? a : b);
244
+ return this.load(latest.id);
245
+ }
246
+ /**
247
+ * Load index file
248
+ */
249
+ async loadIndex(path) {
250
+ try {
251
+ const content = await this.fs.readFile(path, 'utf-8');
252
+ return JSON.parse(content);
253
+ }
254
+ catch {
255
+ return [];
256
+ }
257
+ }
258
+ }
259
+ exports.FileCheckpointer = FileCheckpointer;
260
+ /**
261
+ * Create a Node.js filesystem implementation
262
+ */
263
+ function createNodeFileSystem() {
264
+ // Lazy import to avoid issues in browser environments
265
+ return {
266
+ async readFile(path, encoding) {
267
+ const fs = await Promise.resolve().then(() => __importStar(require('fs'))).then(m => m.promises);
268
+ return fs.readFile(path, encoding);
269
+ },
270
+ async writeFile(path, data) {
271
+ const fs = await Promise.resolve().then(() => __importStar(require('fs'))).then(m => m.promises);
272
+ await fs.writeFile(path, data);
273
+ },
274
+ async mkdir(path, options) {
275
+ const fs = await Promise.resolve().then(() => __importStar(require('fs'))).then(m => m.promises);
276
+ await fs.mkdir(path, options);
277
+ },
278
+ async readdir(path) {
279
+ const fs = await Promise.resolve().then(() => __importStar(require('fs'))).then(m => m.promises);
280
+ return fs.readdir(path);
281
+ },
282
+ async unlink(path) {
283
+ const fs = await Promise.resolve().then(() => __importStar(require('fs'))).then(m => m.promises);
284
+ await fs.unlink(path);
285
+ },
286
+ async exists(path) {
287
+ const fs = await Promise.resolve().then(() => __importStar(require('fs'))).then(m => m.promises);
288
+ try {
289
+ await fs.access(path);
290
+ return true;
291
+ }
292
+ catch {
293
+ return false;
294
+ }
295
+ },
296
+ };
297
+ }
298
+ /**
299
+ * Time-travel debugger for workflow state
300
+ */
301
+ class TimeTravelDebugger {
302
+ checkpointer;
303
+ /**
304
+ * Create a time-travel debugger
305
+ * @param checkpointer - Checkpointer to use for state access
306
+ */
307
+ constructor(checkpointer) {
308
+ this.checkpointer = checkpointer;
309
+ }
310
+ /**
311
+ * Get the execution timeline
312
+ * @param executionId - Execution to get timeline for
313
+ * @returns Array of checkpoint summaries
314
+ */
315
+ async getTimeline(executionId) {
316
+ return this.checkpointer.list(executionId);
317
+ }
318
+ /**
319
+ * Travel to a specific checkpoint
320
+ * @param checkpointId - Checkpoint to travel to
321
+ * @returns The state at that checkpoint
322
+ */
323
+ async travelTo(checkpointId) {
324
+ const checkpoint = await this.checkpointer.load(checkpointId);
325
+ return checkpoint?.state ?? null;
326
+ }
327
+ /**
328
+ * Get state at a specific step number
329
+ * @param executionId - Execution ID
330
+ * @param stepNumber - Step number to travel to
331
+ * @returns The state at that step
332
+ */
333
+ async travelToStep(executionId, stepNumber) {
334
+ const summaries = await this.checkpointer.list(executionId);
335
+ const summary = summaries.find(s => s.stepNumber === stepNumber);
336
+ if (!summary) {
337
+ return null;
338
+ }
339
+ return this.travelTo(summary.id);
340
+ }
341
+ /**
342
+ * Compare two checkpoints
343
+ * @param checkpointId1 - First checkpoint
344
+ * @param checkpointId2 - Second checkpoint
345
+ * @returns Differences between the checkpoints
346
+ */
347
+ async compare(checkpointId1, checkpointId2) {
348
+ const [cp1, cp2] = await Promise.all([
349
+ this.checkpointer.load(checkpointId1),
350
+ this.checkpointer.load(checkpointId2),
351
+ ]);
352
+ if (!cp1 || !cp2) {
353
+ throw new Error('One or both checkpoints not found');
354
+ }
355
+ return this.diffStates(cp1.state, cp2.state);
356
+ }
357
+ /**
358
+ * Get the state history (changes over time)
359
+ * @param executionId - Execution ID
360
+ * @returns Array of state changes
361
+ */
362
+ async getStateHistory(executionId) {
363
+ const summaries = await this.checkpointer.list(executionId);
364
+ const history = [];
365
+ let previousState = null;
366
+ for (const summary of summaries) {
367
+ const checkpoint = await this.checkpointer.load(summary.id);
368
+ if (!checkpoint) {
369
+ continue;
370
+ }
371
+ const changes = previousState
372
+ ? this.diffStates(previousState, checkpoint.state)
373
+ : [];
374
+ history.push({
375
+ checkpoint: summary,
376
+ state: checkpoint.state,
377
+ changes,
378
+ });
379
+ previousState = checkpoint.state;
380
+ }
381
+ return history;
382
+ }
383
+ /**
384
+ * Find checkpoints where a condition became true
385
+ * @param executionId - Execution ID
386
+ * @param condition - Condition to check
387
+ * @returns Checkpoints where condition became true
388
+ */
389
+ async findTransitions(executionId, condition) {
390
+ const summaries = await this.checkpointer.list(executionId);
391
+ const transitions = [];
392
+ let previousResult = false;
393
+ for (const summary of summaries) {
394
+ const checkpoint = await this.checkpointer.load(summary.id);
395
+ if (!checkpoint) {
396
+ continue;
397
+ }
398
+ const currentResult = condition(checkpoint.state);
399
+ if (currentResult && !previousResult) {
400
+ transitions.push(summary);
401
+ }
402
+ previousResult = currentResult;
403
+ }
404
+ return transitions;
405
+ }
406
+ /**
407
+ * Compute differences between two states
408
+ */
409
+ diffStates(state1, state2) {
410
+ const diffs = [];
411
+ // Compare data fields
412
+ const allKeys = new Set([
413
+ ...Object.keys(state1.data),
414
+ ...Object.keys(state2.data),
415
+ ]);
416
+ for (const key of allKeys) {
417
+ const val1 = state1.data[key];
418
+ const val2 = state2.data[key];
419
+ if (JSON.stringify(val1) !== JSON.stringify(val2)) {
420
+ diffs.push({
421
+ path: `data.${key}`,
422
+ type: val1 === undefined
423
+ ? 'added'
424
+ : val2 === undefined
425
+ ? 'removed'
426
+ : 'changed',
427
+ oldValue: val1,
428
+ newValue: val2,
429
+ });
430
+ }
431
+ }
432
+ // Compare message counts
433
+ if (state1.messages.length !== state2.messages.length) {
434
+ diffs.push({
435
+ path: 'messages.length',
436
+ type: 'changed',
437
+ oldValue: state1.messages.length,
438
+ newValue: state2.messages.length,
439
+ });
440
+ }
441
+ // Compare current step
442
+ if (state1.currentStep !== state2.currentStep) {
443
+ diffs.push({
444
+ path: 'currentStep',
445
+ type: 'changed',
446
+ oldValue: state1.currentStep,
447
+ newValue: state2.currentStep,
448
+ });
449
+ }
450
+ return diffs;
451
+ }
452
+ }
453
+ exports.TimeTravelDebugger = TimeTravelDebugger;
454
+ /**
455
+ * Create a checkpoint
456
+ *
457
+ * @example
458
+ * ```typescript
459
+ * const checkpoint = createCheckpoint({
460
+ * executionId: 'exec-123',
461
+ * stepNumber: 5,
462
+ * nodeName: 'process-node',
463
+ * state: currentState
464
+ * });
465
+ *
466
+ * await checkpointer.save(checkpoint);
467
+ * ```
468
+ *
469
+ * @param options - Checkpoint options
470
+ * @returns Checkpoint object
471
+ */
472
+ function createCheckpoint(options) {
473
+ return {
474
+ id: (0, uuid_1.v4)(),
475
+ executionId: options.executionId,
476
+ stepNumber: options.stepNumber,
477
+ nodeName: options.nodeName,
478
+ state: options.state,
479
+ timestamp: new Date(),
480
+ parentId: options.parentId,
481
+ metadata: options.metadata,
482
+ };
483
+ }
484
+ /**
485
+ * Apply retention policy to checkpoints
486
+ *
487
+ * @example
488
+ * ```typescript
489
+ * await applyRetentionPolicy(checkpointer, 'exec-123', {
490
+ * maxCheckpointsPerExecution: 100,
491
+ * maxAge: 7 * 24 * 60 * 60 * 1000, // 7 days
492
+ * keepEveryN: 10,
493
+ * alwaysKeepNodes: ['decision', 'error-handler']
494
+ * });
495
+ * ```
496
+ *
497
+ * @param checkpointer - Checkpointer to clean up
498
+ * @param executionId - Execution to apply policy to
499
+ * @param policy - Retention policy
500
+ * @returns Number of checkpoints deleted
501
+ */
502
+ async function applyRetentionPolicy(checkpointer, executionId, policy) {
503
+ const summaries = await checkpointer.list(executionId);
504
+ let deleted = 0;
505
+ const toDelete = [];
506
+ const now = Date.now();
507
+ for (let i = 0; i < summaries.length; i++) {
508
+ const summary = summaries[i];
509
+ if (!summary) {
510
+ continue;
511
+ }
512
+ // Check if node is in always-keep list
513
+ if (policy.alwaysKeepNodes?.includes(summary.nodeName)) {
514
+ continue;
515
+ }
516
+ // Check age
517
+ if (policy.maxAge) {
518
+ const age = now - summary.timestamp.getTime();
519
+ if (age > policy.maxAge) {
520
+ toDelete.push(summary.id);
521
+ continue;
522
+ }
523
+ }
524
+ // Check keepEveryN
525
+ if (policy.keepEveryN && (i + 1) % policy.keepEveryN !== 0) {
526
+ // Don't delete the latest few checkpoints
527
+ if (i < summaries.length - 5) {
528
+ toDelete.push(summary.id);
529
+ }
530
+ }
531
+ }
532
+ // Apply maxCheckpointsPerExecution
533
+ if (policy.maxCheckpointsPerExecution) {
534
+ const remaining = summaries.filter(s => !toDelete.includes(s.id));
535
+ if (remaining.length > policy.maxCheckpointsPerExecution) {
536
+ const excess = remaining.length - policy.maxCheckpointsPerExecution;
537
+ // Delete oldest checkpoints first (but not those in toDelete already)
538
+ for (let i = 0; i < excess && i < remaining.length; i++) {
539
+ const item = remaining[i];
540
+ if (item && !toDelete.includes(item.id)) {
541
+ toDelete.push(item.id);
542
+ }
543
+ }
544
+ }
545
+ }
546
+ // Delete marked checkpoints
547
+ for (const id of toDelete) {
548
+ await checkpointer.delete(id);
549
+ deleted++;
550
+ }
551
+ return deleted;
552
+ }
553
+ /**
554
+ * Schema for checkpoint validation
555
+ */
556
+ exports.CheckpointSchema = zod_1.z.object({
557
+ id: zod_1.z.string().uuid(),
558
+ executionId: zod_1.z.string(),
559
+ stepNumber: zod_1.z.number().int().min(0),
560
+ nodeName: zod_1.z.string(),
561
+ timestamp: zod_1.z.date(),
562
+ parentId: zod_1.z.string().uuid().optional(),
563
+ metadata: zod_1.z.record(zod_1.z.unknown()).optional(),
564
+ });
565
+ /**
566
+ * Validate a checkpoint
567
+ */
568
+ function validateCheckpoint(checkpoint) {
569
+ try {
570
+ exports.CheckpointSchema.parse(checkpoint);
571
+ return true;
572
+ }
573
+ catch {
574
+ return false;
575
+ }
576
+ }
577
+ //# sourceMappingURL=checkpointing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpointing.js","sourceRoot":"","sources":["../src/checkpointing.ts"],"names":[],"mappings":"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"}