@langchain/langgraph 1.4.18 → 1.4.20

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.
@@ -347,13 +347,27 @@ declare class Pregel<Nodes extends StrRecord<string, PregelNode>, Channels exten
347
347
  * @returns AsyncGenerator yielding tuples of [name, subgraph]
348
348
  */
349
349
  getSubgraphsAsync(namespace?: string, recurse?: boolean): AsyncGenerator<[string, Pregel<any, any>]>;
350
+ /**
351
+ * The checkpointer runs and state methods use: none for `checkpointer: false`,
352
+ * else the one a parent lends a subgraph through the config, else this
353
+ * graph's own.
354
+ */
355
+ private _resolveCheckpointer;
356
+ private _stateCheckpointer;
357
+ /**
358
+ * A `checkpointer: true` subgraph keeps one history per thread, stored
359
+ * under its namespace with the task ids removed.
360
+ */
361
+ private _ownCheckpointConfig;
362
+ private _subgraphForNamespace;
350
363
  /**
351
364
  * Prepares a state snapshot from saved checkpoint data.
352
365
  * This is an internal method used by getState and getStateHistory.
353
366
  *
354
367
  * @param config - Configuration for preparing the snapshot
355
368
  * @param saved - Optional saved checkpoint data
356
- * @param subgraphCheckpointer - Optional checkpointer for subgraphs
369
+ * @param saver - Checkpointer the caller resolved; a subgraph's own `checkpointer` is unset or `true`
370
+ * @param recurse - Whether to include each subgraph task's state
357
371
  * @param applyPendingWrites - Whether to apply pending writes to tasks and then to channels
358
372
  * @returns A snapshot of the graph state
359
373
  * @internal
@@ -361,12 +375,14 @@ declare class Pregel<Nodes extends StrRecord<string, PregelNode>, Channels exten
361
375
  protected _prepareStateSnapshot({
362
376
  config,
363
377
  saved,
364
- subgraphCheckpointer,
378
+ saver,
379
+ recurse,
365
380
  applyPendingWrites
366
381
  }: {
367
382
  config: RunnableConfig;
368
383
  saved?: CheckpointTuple;
369
- subgraphCheckpointer?: BaseCheckpointSaver;
384
+ saver: BaseCheckpointSaver;
385
+ recurse?: boolean;
370
386
  applyPendingWrites?: boolean;
371
387
  }): Promise<StateSnapshot>;
372
388
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/pregel/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/pregel/index.ts"],"mappings":"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"}
@@ -347,13 +347,27 @@ declare class Pregel<Nodes extends StrRecord<string, PregelNode>, Channels exten
347
347
  * @returns AsyncGenerator yielding tuples of [name, subgraph]
348
348
  */
349
349
  getSubgraphsAsync(namespace?: string, recurse?: boolean): AsyncGenerator<[string, Pregel<any, any>]>;
350
+ /**
351
+ * The checkpointer runs and state methods use: none for `checkpointer: false`,
352
+ * else the one a parent lends a subgraph through the config, else this
353
+ * graph's own.
354
+ */
355
+ private _resolveCheckpointer;
356
+ private _stateCheckpointer;
357
+ /**
358
+ * A `checkpointer: true` subgraph keeps one history per thread, stored
359
+ * under its namespace with the task ids removed.
360
+ */
361
+ private _ownCheckpointConfig;
362
+ private _subgraphForNamespace;
350
363
  /**
351
364
  * Prepares a state snapshot from saved checkpoint data.
352
365
  * This is an internal method used by getState and getStateHistory.
353
366
  *
354
367
  * @param config - Configuration for preparing the snapshot
355
368
  * @param saved - Optional saved checkpoint data
356
- * @param subgraphCheckpointer - Optional checkpointer for subgraphs
369
+ * @param saver - Checkpointer the caller resolved; a subgraph's own `checkpointer` is unset or `true`
370
+ * @param recurse - Whether to include each subgraph task's state
357
371
  * @param applyPendingWrites - Whether to apply pending writes to tasks and then to channels
358
372
  * @returns A snapshot of the graph state
359
373
  * @internal
@@ -361,12 +375,14 @@ declare class Pregel<Nodes extends StrRecord<string, PregelNode>, Channels exten
361
375
  protected _prepareStateSnapshot({
362
376
  config,
363
377
  saved,
364
- subgraphCheckpointer,
378
+ saver,
379
+ recurse,
365
380
  applyPendingWrites
366
381
  }: {
367
382
  config: RunnableConfig;
368
383
  saved?: CheckpointTuple;
369
- subgraphCheckpointer?: BaseCheckpointSaver;
384
+ saver: BaseCheckpointSaver;
385
+ recurse?: boolean;
370
386
  applyPendingWrites?: boolean;
371
387
  }): Promise<StateSnapshot>;
372
388
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/pregel/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/pregel/index.ts"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { CONFIG_KEY_CHECKPOINTER, CONFIG_KEY_CHECKPOINT_NS, CONFIG_KEY_NODE_FINISHED, CONFIG_KEY_READ, CONFIG_KEY_SEND, CONFIG_KEY_STREAM, INPUT, INTERRUPT, NULL_TASK_ID, PUSH, TASKS, isInterrupted } from "../constants.js";
2
2
  import { GraphDrained, GraphRecursionError, GraphValueError, InvalidUpdateError } from "../errors.js";
3
- import { channelsFromCheckpoint, createCheckpoint, getOnlyChannels } from "../channels/base.js";
3
+ import { DELTA_WRITES_VERSIONED, channelsFromCheckpoint, createCheckpoint, getOnlyChannels, isDeltaChannel, isDeltaWritesVersioned } from "../channels/base.js";
4
4
  import { ensureLangGraphConfig, getConfig, recastCheckpointNamespace } from "./utils/config.js";
5
5
  import { gatherIterator, patchConfigurable } from "../utils.js";
6
6
  import { ChannelWrite, PASSTHROUGH } from "./write.js";
@@ -423,17 +423,62 @@ var Pregel = class extends PartialRunnable {
423
423
  yield* this.getSubgraphs(namespace, recurse);
424
424
  }
425
425
  /**
426
+ * The checkpointer runs and state methods use: none for `checkpointer: false`,
427
+ * else the one a parent lends a subgraph through the config, else this
428
+ * graph's own.
429
+ */
430
+ _resolveCheckpointer(config) {
431
+ if (this.checkpointer === false) return void 0;
432
+ const lent = config?.configurable?.[CONFIG_KEY_CHECKPOINTER];
433
+ if (lent !== void 0) return lent;
434
+ if (this.checkpointer === true) throw new Error("checkpointer: true cannot be used for root graphs.");
435
+ return this.checkpointer;
436
+ }
437
+ _stateCheckpointer(config) {
438
+ const checkpointer = this._resolveCheckpointer(config);
439
+ if (typeof checkpointer !== "object" || checkpointer === null) throw new GraphValueError("No checkpointer set", { lc_error_code: "MISSING_CHECKPOINTER" });
440
+ return checkpointer;
441
+ }
442
+ /**
443
+ * A `checkpointer: true` subgraph keeps one history per thread, stored
444
+ * under its namespace with the task ids removed.
445
+ */
446
+ _ownCheckpointConfig(config) {
447
+ if (this.checkpointer !== true) return config;
448
+ const ns = config.configurable?.["checkpoint_ns"] ?? "";
449
+ return {
450
+ ...config,
451
+ configurable: {
452
+ ...config.configurable,
453
+ [CONFIG_KEY_CHECKPOINT_NS]: ns.split("|").map((part) => part.split(":")[0]).join("|")
454
+ }
455
+ };
456
+ }
457
+ /**
458
+ * The subgraph a state method's namespaced config addresses, and the config
459
+ * to call it with, lending it `checkpointer`. `undefined` when the config is
460
+ * for this graph, comes from inside a running task, or names no declared
461
+ * subgraph (a dynamically created one, such as a tool-call subgraph).
462
+ */
463
+ async _subgraphForNamespace(config, checkpointer) {
464
+ const checkpointNamespace = config.configurable?.checkpoint_ns ?? "";
465
+ if (checkpointNamespace === "" || config.configurable?.["__pregel_read"] !== void 0 || config.configurable?.["__pregel_checkpointer"] !== void 0) return;
466
+ const recastNamespace = recastCheckpointNamespace(checkpointNamespace);
467
+ for await (const [name, subgraph] of this.getSubgraphsAsync(recastNamespace, true)) if (name === recastNamespace) return [subgraph, patchConfigurable(config, { [CONFIG_KEY_CHECKPOINTER]: checkpointer })];
468
+ }
469
+ /**
426
470
  * Prepares a state snapshot from saved checkpoint data.
427
471
  * This is an internal method used by getState and getStateHistory.
428
472
  *
429
473
  * @param config - Configuration for preparing the snapshot
430
474
  * @param saved - Optional saved checkpoint data
431
- * @param subgraphCheckpointer - Optional checkpointer for subgraphs
475
+ * @param saver - Checkpointer the caller resolved; a subgraph's own `checkpointer` is unset or `true`
476
+ * @param recurse - Whether to include each subgraph task's state
432
477
  * @param applyPendingWrites - Whether to apply pending writes to tasks and then to channels
433
478
  * @returns A snapshot of the graph state
434
479
  * @internal
435
480
  */
436
- async _prepareStateSnapshot({ config, saved, subgraphCheckpointer, applyPendingWrites = false }) {
481
+ async _prepareStateSnapshot({ config, saved, saver, recurse = false, applyPendingWrites = false }) {
437
482
  if (saved === void 0) return {
438
483
  values: {},
439
484
  next: [],
@@ -441,8 +486,9 @@ var Pregel = class extends PartialRunnable {
441
486
  tasks: []
442
487
  };
443
488
  const channels = await channelsFromCheckpoint(this.channels, saved.checkpoint, {
444
- saver: typeof this.checkpointer === "object" ? this.checkpointer : void 0,
445
- config: saved.config ?? config
489
+ saver,
490
+ config: saved.config ?? config,
491
+ deltaWritesVersioned: isDeltaWritesVersioned(saved.metadata)
446
492
  });
447
493
  if (saved.pendingWrites?.length) {
448
494
  const nullWrites = saved.pendingWrites.filter(([taskId, _]) => taskId === NULL_TASK_ID).map(([_, channel, value]) => [String(channel), value]);
@@ -461,10 +507,10 @@ var Pregel = class extends PartialRunnable {
461
507
  const taskStates = {};
462
508
  for (const task of nextTasks) {
463
509
  const matchingSubgraph = subgraphs.find(([name]) => name === task.name);
464
- if (!matchingSubgraph) continue;
510
+ if (!matchingSubgraph || matchingSubgraph[1].checkpointer === false) continue;
465
511
  let taskNs = `${String(task.name)}:${task.id}`;
466
512
  if (parentNamespace) taskNs = `${parentNamespace}|${taskNs}`;
467
- if (subgraphCheckpointer === void 0) {
513
+ if (!recurse) {
468
514
  const config = { configurable: {
469
515
  thread_id: saved.config.configurable?.thread_id,
470
516
  checkpoint_ns: taskNs
@@ -472,7 +518,7 @@ var Pregel = class extends PartialRunnable {
472
518
  taskStates[task.id] = config;
473
519
  } else {
474
520
  const subgraphConfig = { configurable: {
475
- [CONFIG_KEY_CHECKPOINTER]: subgraphCheckpointer,
521
+ [CONFIG_KEY_CHECKPOINTER]: saver,
476
522
  thread_id: saved.config.configurable?.thread_id,
477
523
  checkpoint_ns: taskNs
478
524
  } };
@@ -520,19 +566,20 @@ var Pregel = class extends PartialRunnable {
520
566
  * @throws {GraphValueError} If no checkpointer is configured
521
567
  */
522
568
  async getState(config, options) {
523
- const checkpointer = config.configurable?.["__pregel_checkpointer"] ?? this.checkpointer;
524
- if (!checkpointer) throw new GraphValueError("No checkpointer set", { lc_error_code: "MISSING_CHECKPOINTER" });
525
- const checkpointNamespace = config.configurable?.checkpoint_ns ?? "";
526
- if (checkpointNamespace !== "" && config.configurable?.["__pregel_read"] === void 0 && config.configurable?.["__pregel_checkpointer"] === void 0) {
527
- const recastNamespace = recastCheckpointNamespace(checkpointNamespace);
528
- for await (const [name, subgraph] of this.getSubgraphsAsync(recastNamespace, true)) if (name === recastNamespace) return await subgraph.getState(patchConfigurable(config, { [CONFIG_KEY_CHECKPOINTER]: checkpointer }), { subgraphs: options?.subgraphs });
569
+ const checkpointer = this._stateCheckpointer(config);
570
+ const subgraph = await this._subgraphForNamespace(config, checkpointer);
571
+ if (subgraph !== void 0) {
572
+ const [pregel, subgraphConfig] = subgraph;
573
+ return await pregel.getState(subgraphConfig, { subgraphs: options?.subgraphs });
529
574
  }
530
- const mergedConfig = mergeConfigs(this.config, config);
531
- const saved = await checkpointer.getTuple(config);
575
+ const ownConfig = this._ownCheckpointConfig(config);
576
+ const mergedConfig = mergeConfigs(this.config, ownConfig);
577
+ const saved = await checkpointer.getTuple(ownConfig);
532
578
  return await this._prepareStateSnapshot({
533
579
  config: mergedConfig,
534
580
  saved,
535
- subgraphCheckpointer: options?.subgraphs ? checkpointer : void 0,
581
+ saver: checkpointer,
582
+ recurse: options?.subgraphs,
536
583
  applyPendingWrites: !config.configurable?.checkpoint_id
537
584
  });
538
585
  }
@@ -550,20 +597,18 @@ var Pregel = class extends PartialRunnable {
550
597
  * @throws {Error} If no checkpointer is configured
551
598
  */
552
599
  async *getStateHistory(config, options) {
553
- const checkpointer = config.configurable?.["__pregel_checkpointer"] ?? this.checkpointer;
554
- if (!checkpointer) throw new GraphValueError("No checkpointer set", { lc_error_code: "MISSING_CHECKPOINTER" });
555
- const checkpointNamespace = config.configurable?.checkpoint_ns ?? "";
556
- if (checkpointNamespace !== "" && config.configurable?.["__pregel_checkpointer"] === void 0) {
557
- const recastNamespace = recastCheckpointNamespace(checkpointNamespace);
558
- for await (const [name, pregel] of this.getSubgraphsAsync(recastNamespace, true)) if (name === recastNamespace) {
559
- yield* pregel.getStateHistory(patchConfigurable(config, { [CONFIG_KEY_CHECKPOINTER]: checkpointer }), options);
560
- return;
561
- }
600
+ const checkpointer = this._stateCheckpointer(config);
601
+ const subgraph = await this._subgraphForNamespace(config, checkpointer);
602
+ if (subgraph !== void 0) {
603
+ const [pregel, subgraphConfig] = subgraph;
604
+ yield* pregel.getStateHistory(subgraphConfig, options);
605
+ return;
562
606
  }
563
- const mergedConfig = mergeConfigs(this.config, config, { configurable: { checkpoint_ns: checkpointNamespace } });
607
+ const mergedConfig = this._ownCheckpointConfig(mergeConfigs(this.config, config, { configurable: { checkpoint_ns: config.configurable?.checkpoint_ns ?? "" } }));
564
608
  for await (const checkpointTuple of checkpointer.list(mergedConfig, options)) yield this._prepareStateSnapshot({
565
609
  config: checkpointTuple.config,
566
- saved: checkpointTuple
610
+ saved: checkpointTuple,
611
+ saver: checkpointer
567
612
  });
568
613
  }
569
614
  /**
@@ -583,18 +628,18 @@ var Pregel = class extends PartialRunnable {
583
628
  * @throws {InvalidUpdateError} If the update cannot be attributed to a node or an update can be only applied in sequence.
584
629
  */
585
630
  async bulkUpdateState(startConfig, supersteps) {
586
- const checkpointer = startConfig.configurable?.["__pregel_checkpointer"] ?? this.checkpointer;
587
- if (!checkpointer) throw new GraphValueError("No checkpointer set", { lc_error_code: "MISSING_CHECKPOINTER" });
631
+ const checkpointer = this._stateCheckpointer(startConfig);
588
632
  if (supersteps.length === 0) throw new Error("No supersteps provided");
589
633
  if (supersteps.some((s) => s.updates.length === 0)) throw new Error("No updates provided");
590
- const checkpointNamespace = startConfig.configurable?.checkpoint_ns ?? "";
591
- if (checkpointNamespace !== "" && startConfig.configurable?.["__pregel_checkpointer"] === void 0) {
592
- const recastNamespace = recastCheckpointNamespace(checkpointNamespace);
593
- for await (const [, pregel] of this.getSubgraphsAsync(recastNamespace, true)) return await pregel.bulkUpdateState(patchConfigurable(startConfig, { [CONFIG_KEY_CHECKPOINTER]: checkpointer }), supersteps);
594
- throw new Error(`Subgraph "${recastNamespace}" not found`);
634
+ const subgraph = await this._subgraphForNamespace(startConfig, checkpointer);
635
+ if (subgraph !== void 0) {
636
+ const [pregel, subgraphConfig] = subgraph;
637
+ return await pregel.bulkUpdateState(subgraphConfig, supersteps);
595
638
  }
639
+ const checkpointNamespace = startConfig.configurable?.checkpoint_ns ?? "";
640
+ if (checkpointNamespace !== "" && startConfig.configurable?.["__pregel_read"] === void 0 && startConfig.configurable?.["__pregel_checkpointer"] === void 0) throw new Error(`Subgraph "${recastCheckpointNamespace(checkpointNamespace)}" not found`);
596
641
  const updateSuperStep = async (inputConfig, updates) => {
597
- const config = this.config ? mergeConfigs(this.config, inputConfig) : inputConfig;
642
+ const config = this._ownCheckpointConfig(this.config ? mergeConfigs(this.config, inputConfig) : inputConfig);
598
643
  const saved = await checkpointer.getTuple(config);
599
644
  const checkpoint = saved !== void 0 ? copyCheckpoint(saved.checkpoint) : emptyCheckpoint();
600
645
  const checkpointPreviousVersions = { ...saved?.checkpoint.channel_versions };
@@ -608,18 +653,22 @@ var Pregel = class extends PartialRunnable {
608
653
  ...checkpointMetadata
609
654
  };
610
655
  }
656
+ const deltaWritesVersioned = Object.values(this.channels).some(isDeltaChannel) && (saved === void 0 || isDeltaWritesVersioned(saved.metadata));
657
+ const versionedMetadata = deltaWritesVersioned ? { [DELTA_WRITES_VERSIONED]: true } : {};
611
658
  const { values, asNode } = updates[0];
612
659
  if (values == null && asNode === void 0) {
613
660
  if (updates.length > 1) throw new InvalidUpdateError(`Cannot create empty checkpoint with multiple updates`);
614
661
  return patchCheckpointMap(await checkpointer.put(checkpointConfig, createCheckpoint(checkpoint, void 0, step), {
615
662
  source: "update",
616
663
  step: step + 1,
617
- parents: saved?.metadata?.parents ?? {}
664
+ parents: saved?.metadata?.parents ?? {},
665
+ ...versionedMetadata
618
666
  }, {}), saved ? saved.metadata : void 0);
619
667
  }
620
668
  const channels = await channelsFromCheckpoint(this.channels, checkpoint, {
621
669
  saver: checkpointer,
622
- config: saved?.config ?? checkpointConfig
670
+ config: saved?.config ?? checkpointConfig,
671
+ deltaWritesVersioned
623
672
  });
624
673
  if (values === null && asNode === "__end__") {
625
674
  if (updates.length > 1) throw new InvalidUpdateError(`Cannot apply multiple updates when clearing state`);
@@ -646,11 +695,13 @@ var Pregel = class extends PartialRunnable {
646
695
  }
647
696
  _applyWrites(checkpoint, channels, Object.values(nextTasks), checkpointer.getNextVersion.bind(checkpointer), this.triggerToNodes);
648
697
  }
698
+ const { [DELTA_WRITES_VERSIONED]: _carried, ...endMetadata } = checkpointMetadata;
649
699
  return patchCheckpointMap(await checkpointer.put(checkpointConfig, createCheckpoint(checkpoint, channels, step), {
650
- ...checkpointMetadata,
700
+ ...endMetadata,
651
701
  source: "update",
652
702
  step: step + 1,
653
- parents: saved?.metadata?.parents ?? {}
703
+ parents: saved?.metadata?.parents ?? {},
704
+ ...versionedMetadata
654
705
  }, getNewChannelVersions(checkpointPreviousVersions, checkpoint.channel_versions)), saved ? saved.metadata : void 0);
655
706
  }
656
707
  if (asNode === "__copy__") {
@@ -665,7 +716,8 @@ var Pregel = class extends PartialRunnable {
665
716
  const nextConfig = await checkpointer.put(saved.parentConfig ?? patchConfigurable(saved.config, { checkpoint_id: void 0 }), nextCheckpoint, {
666
717
  source: "fork",
667
718
  step: step + 1,
668
- parents: saved.metadata?.parents ?? {}
719
+ parents: saved.metadata?.parents ?? {},
720
+ ...versionedMetadata
669
721
  }, {});
670
722
  if (isCopyWithUpdates(values)) {
671
723
  const nextTasks = _prepareNextTasks(nextCheckpoint, saved.pendingWrites, this.nodes, channels, nextConfig, false, { step: step + 2 });
@@ -698,12 +750,13 @@ var Pregel = class extends PartialRunnable {
698
750
  name: INPUT,
699
751
  writes: inputWrites,
700
752
  triggers: []
701
- }], checkpointer.getNextVersion.bind(this.checkpointer), this.triggerToNodes);
753
+ }], checkpointer.getNextVersion.bind(checkpointer), this.triggerToNodes);
702
754
  const nextStep = saved?.metadata?.step != null ? saved.metadata.step + 1 : -1;
703
755
  const nextConfig = await checkpointer.put(checkpointConfig, createCheckpoint(checkpoint, channels, nextStep), {
704
756
  source: "input",
705
757
  step: nextStep,
706
- parents: saved?.metadata?.parents ?? {}
758
+ parents: saved?.metadata?.parents ?? {},
759
+ ...versionedMetadata
707
760
  }, getNewChannelVersions(checkpointPreviousVersions, checkpoint.channel_versions));
708
761
  await checkpointer.putWrites(nextConfig, inputWrites, uuid5(INPUT, checkpoint.id));
709
762
  return patchCheckpointMap(nextConfig, saved ? saved.metadata : void 0);
@@ -715,11 +768,11 @@ var Pregel = class extends PartialRunnable {
715
768
  step: (saved.metadata?.step ?? -1) + 1
716
769
  });
717
770
  const nullWrites = (saved.pendingWrites ?? []).filter((w) => w[0] === NULL_TASK_ID).map((w) => w.slice(1));
718
- if (nullWrites.length > 0) _applyWrites(saved.checkpoint, channels, [{
771
+ if (nullWrites.length > 0) _applyWrites(checkpoint, channels, [{
719
772
  name: INPUT,
720
773
  writes: nullWrites,
721
774
  triggers: []
722
- }], void 0, this.triggerToNodes);
775
+ }], checkpointer.getNextVersion.bind(checkpointer), this.triggerToNodes);
723
776
  for (const [tid, k, v] of saved.pendingWrites) {
724
777
  if ([
725
778
  "__error__",
@@ -731,7 +784,7 @@ var Pregel = class extends PartialRunnable {
731
784
  const tasks = Object.values(nextTasks).filter((task) => {
732
785
  return task.writes.length > 0;
733
786
  });
734
- if (tasks.length > 0) _applyWrites(checkpoint, channels, tasks, void 0, this.triggerToNodes);
787
+ if (tasks.length > 0) _applyWrites(checkpoint, channels, tasks, checkpointer.getNextVersion.bind(checkpointer), this.triggerToNodes);
735
788
  }
736
789
  const nonNullVersion = Object.values(checkpoint.versions_seen).map((seenVersions) => {
737
790
  return Object.values(seenVersions);
@@ -768,7 +821,7 @@ var Pregel = class extends PartialRunnable {
768
821
  });
769
822
  }
770
823
  const tasks = [];
771
- for (const { asNode, values, taskId } of validUpdates) {
824
+ for (const [i, { asNode, values, taskId }] of validUpdates.entries()) {
772
825
  if (this.nodes[asNode] === void 0) throw new InvalidUpdateError(`Node "${asNode.toString()}" does not exist`);
773
826
  const writers = this.nodes[asNode].getWriters();
774
827
  if (!writers.length) throw new InvalidUpdateError(`No writers found for node "${asNode.toString()}"`);
@@ -778,7 +831,7 @@ var Pregel = class extends PartialRunnable {
778
831
  proc: writers.length > 1 ? RunnableSequence.from(writers, { omitSequenceTags: true }) : writers[0],
779
832
  writes: [],
780
833
  triggers: [INTERRUPT],
781
- id: taskId ?? uuid5("__interrupt__", checkpoint.id),
834
+ id: taskId ?? uuid5(i === 0 ? "__interrupt__" : `__interrupt__:${i}`, checkpoint.id),
782
835
  writers: []
783
836
  });
784
837
  }
@@ -796,12 +849,17 @@ var Pregel = class extends PartialRunnable {
796
849
  const channelWrites = task.writes.filter((w) => w[0] !== PUSH);
797
850
  if (saved !== void 0 && channelWrites.length > 0) await checkpointer.putWrites(checkpointConfig, channelWrites, task.id);
798
851
  }
799
- _applyWrites(checkpoint, channels, tasks, checkpointer.getNextVersion.bind(this.checkpointer), this.triggerToNodes);
852
+ _applyWrites(checkpoint, channels, tasks, checkpointer.getNextVersion.bind(checkpointer), this.triggerToNodes);
853
+ const channelsToSnapshot = /* @__PURE__ */ new Set();
854
+ if (saved === void 0) {
855
+ for (const [k, ch] of Object.entries(channels)) if (isDeltaChannel(ch) && checkpoint.channel_versions[k] !== void 0) channelsToSnapshot.add(k);
856
+ }
800
857
  const newVersions = getNewChannelVersions(checkpointPreviousVersions, checkpoint.channel_versions);
801
- const nextConfig = await checkpointer.put(checkpointConfig, createCheckpoint(checkpoint, channels, step + 1), {
858
+ const nextConfig = await checkpointer.put(checkpointConfig, createCheckpoint(checkpoint, channels, step + 1, { channelsToSnapshot }), {
802
859
  source: "update",
803
860
  step: step + 1,
804
- parents: saved?.metadata?.parents ?? {}
861
+ parents: saved?.metadata?.parents ?? {},
862
+ ...versionedMetadata
805
863
  }, newVersions);
806
864
  for (const task of tasks) {
807
865
  const pushWrites = task.writes.filter((w) => w[0] === PUSH);
@@ -876,11 +934,7 @@ var Pregel = class extends PartialRunnable {
876
934
  else defaultStreamMode = this.streamMode;
877
935
  streamModeSingle = true;
878
936
  }
879
- let defaultCheckpointer;
880
- if (this.checkpointer === false) defaultCheckpointer = void 0;
881
- else if (config !== void 0 && config.configurable?.["__pregel_checkpointer"] !== void 0) defaultCheckpointer = config.configurable[CONFIG_KEY_CHECKPOINTER];
882
- else if (this.checkpointer === true) throw new Error("checkpointer: true cannot be used for root graphs.");
883
- else defaultCheckpointer = this.checkpointer;
937
+ const defaultCheckpointer = this._resolveCheckpointer(config);
884
938
  const defaultStore = config.store ?? this.store;
885
939
  const defaultCache = config.cache ?? this.cache;
886
940
  if (config.durability != null && config.checkpointDuring != null) throw new Error("Cannot use both `durability` and `checkpointDuring` at the same time.");
@@ -1020,11 +1074,7 @@ var Pregel = class extends PartialRunnable {
1020
1074
  if (typeof config.context !== "undefined") config.context = await this._validateContext(config.context);
1021
1075
  else config.configurable = await this._validateContext(config.configurable);
1022
1076
  const stream = new IterableReadableWritableStream({ modes: new Set(streamMode) });
1023
- if (this.checkpointer === true) {
1024
- config.configurable ??= {};
1025
- const ns = config.configurable["checkpoint_ns"] ?? "";
1026
- config.configurable[CONFIG_KEY_CHECKPOINT_NS] = ns.split("|").map((part) => part.split(":")[0]).join("|");
1027
- }
1077
+ config.configurable = this._ownCheckpointConfig(config).configurable;
1028
1078
  if (streamMode.includes("messages")) {
1029
1079
  const messageStreamer = isV3 ? new StreamProtocolMessagesHandler((chunk) => stream.push(chunk)) : new StreamMessagesHandler((chunk) => stream.push(chunk));
1030
1080
  const { callbacks } = config;