@langchain/langgraph 0.3.5 → 0.3.7

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 (66) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/channels/base.cjs +2 -2
  3. package/dist/channels/base.d.ts +3 -1
  4. package/dist/channels/base.js +2 -2
  5. package/dist/channels/base.js.map +1 -1
  6. package/dist/constants.cjs +3 -1
  7. package/dist/constants.d.ts +3 -0
  8. package/dist/constants.js +2 -0
  9. package/dist/constants.js.map +1 -1
  10. package/dist/errors.cjs +1 -6
  11. package/dist/errors.js +1 -6
  12. package/dist/errors.js.map +1 -1
  13. package/dist/graph/state.d.ts +1 -1
  14. package/dist/hash.cjs +333 -0
  15. package/dist/hash.d.ts +2 -0
  16. package/dist/hash.js +329 -0
  17. package/dist/hash.js.map +1 -0
  18. package/dist/interrupt.cjs +11 -1
  19. package/dist/interrupt.js +13 -3
  20. package/dist/interrupt.js.map +1 -1
  21. package/dist/prebuilt/react_agent_executor.cjs +78 -12
  22. package/dist/prebuilt/react_agent_executor.d.ts +4 -3
  23. package/dist/prebuilt/react_agent_executor.js +77 -12
  24. package/dist/prebuilt/react_agent_executor.js.map +1 -1
  25. package/dist/pregel/algo.cjs +29 -14
  26. package/dist/pregel/algo.js +30 -15
  27. package/dist/pregel/algo.js.map +1 -1
  28. package/dist/pregel/debug.cjs +18 -42
  29. package/dist/pregel/debug.d.ts +18 -33
  30. package/dist/pregel/debug.js +18 -42
  31. package/dist/pregel/debug.js.map +1 -1
  32. package/dist/pregel/index.cjs +77 -23
  33. package/dist/pregel/index.d.ts +7 -2
  34. package/dist/pregel/index.js +78 -24
  35. package/dist/pregel/index.js.map +1 -1
  36. package/dist/pregel/loop.cjs +157 -43
  37. package/dist/pregel/loop.d.ts +7 -1
  38. package/dist/pregel/loop.js +158 -44
  39. package/dist/pregel/loop.js.map +1 -1
  40. package/dist/pregel/messages.cjs +3 -0
  41. package/dist/pregel/messages.d.ts +1 -1
  42. package/dist/pregel/messages.js +3 -0
  43. package/dist/pregel/messages.js.map +1 -1
  44. package/dist/pregel/messages.test.cjs +18 -0
  45. package/dist/pregel/messages.test.js +18 -0
  46. package/dist/pregel/messages.test.js.map +1 -1
  47. package/dist/pregel/remote.cjs +2 -0
  48. package/dist/pregel/remote.d.ts +1 -0
  49. package/dist/pregel/remote.js +2 -0
  50. package/dist/pregel/remote.js.map +1 -1
  51. package/dist/pregel/retry.cjs +4 -0
  52. package/dist/pregel/retry.js +4 -0
  53. package/dist/pregel/retry.js.map +1 -1
  54. package/dist/pregel/types.d.ts +49 -4
  55. package/dist/pregel/types.js.map +1 -1
  56. package/dist/pregel/utils/config.cjs +2 -1
  57. package/dist/pregel/utils/config.js +2 -1
  58. package/dist/pregel/utils/config.js.map +1 -1
  59. package/dist/pregel/validate.cjs +1 -1
  60. package/dist/pregel/validate.js +1 -1
  61. package/dist/pregel/validate.js.map +1 -1
  62. package/dist/pregel/validate.test.cjs +1 -1
  63. package/dist/pregel/validate.test.js +1 -1
  64. package/dist/pregel/validate.test.js.map +1 -1
  65. package/dist/utils.js.map +1 -1
  66. package/package.json +6 -5
@@ -59,8 +59,7 @@ function* _readChannels(channels
59
59
  }
60
60
  }
61
61
  }
62
- function* mapDebugTasks(step, tasks) {
63
- const ts = new Date().toISOString();
62
+ function* mapDebugTasks(tasks) {
64
63
  for (const { id, name, input, config, triggers, writes } of tasks) {
65
64
  if (config?.tags?.includes(constants_js_1.TAG_HIDDEN))
66
65
  continue;
@@ -71,43 +70,26 @@ function* mapDebugTasks(step, tasks) {
71
70
  .map(([, v]) => {
72
71
  return v;
73
72
  });
74
- yield {
75
- type: "task",
76
- timestamp: ts,
77
- step,
78
- payload: {
79
- id,
80
- name,
81
- input,
82
- triggers,
83
- interrupts,
84
- },
85
- };
73
+ yield { id, name, input, triggers, interrupts };
86
74
  }
87
75
  }
88
- function* mapDebugTaskResults(step, tasks, streamChannels) {
89
- const ts = new Date().toISOString();
76
+ function* mapDebugTaskResults(tasks, streamChannels) {
90
77
  for (const [{ id, name, config }, writes] of tasks) {
91
78
  if (config?.tags?.includes(constants_js_1.TAG_HIDDEN))
92
79
  continue;
93
80
  yield {
94
- type: "task_result",
95
- timestamp: ts,
96
- step,
97
- payload: {
98
- id,
99
- name,
100
- result: writes.filter(([channel]) => {
101
- return Array.isArray(streamChannels)
102
- ? streamChannels.includes(channel)
103
- : channel === streamChannels;
104
- }),
105
- interrupts: writes.filter((w) => w[0] === constants_js_1.INTERRUPT).map((w) => w[1]),
106
- },
81
+ id,
82
+ name,
83
+ result: writes.filter(([channel]) => {
84
+ return Array.isArray(streamChannels)
85
+ ? streamChannels.includes(channel)
86
+ : channel === streamChannels;
87
+ }),
88
+ interrupts: writes.filter((w) => w[0] === constants_js_1.INTERRUPT).map((w) => w[1]),
107
89
  };
108
90
  }
109
91
  }
110
- function* mapDebugCheckpoint(step, config, channels, streamChannels, metadata, tasks, pendingWrites, parentConfig, outputKeys) {
92
+ function* mapDebugCheckpoint(config, channels, streamChannels, metadata, tasks, pendingWrites, parentConfig, outputKeys) {
111
93
  function formatConfig(config) {
112
94
  // make sure the config is consistent with Python
113
95
  const pyConfig = {};
@@ -145,19 +127,13 @@ function* mapDebugCheckpoint(step, config, channels, streamChannels, metadata, t
145
127
  },
146
128
  };
147
129
  }
148
- const ts = new Date().toISOString();
149
130
  yield {
150
- type: "checkpoint",
151
- timestamp: ts,
152
- step,
153
- payload: {
154
- config: formatConfig(config),
155
- values: (0, io_js_1.readChannels)(channels, streamChannels),
156
- metadata,
157
- next: tasks.map((task) => task.name),
158
- tasks: tasksWithWrites(tasks, pendingWrites, taskStates, outputKeys),
159
- parentConfig: parentConfig ? formatConfig(parentConfig) : undefined,
160
- },
131
+ config: formatConfig(config),
132
+ values: (0, io_js_1.readChannels)(channels, streamChannels),
133
+ metadata,
134
+ next: tasks.map((task) => task.name),
135
+ tasks: tasksWithWrites(tasks, pendingWrites, taskStates, outputKeys),
136
+ parentConfig: parentConfig ? formatConfig(parentConfig) : undefined,
161
137
  };
162
138
  }
163
139
  function tasksWithWrites(tasks, pendingWrites, states, outputKeys) {
@@ -12,42 +12,27 @@ type ConsoleColors = {
12
12
  export declare const wrap: (color: ConsoleColors, text: string) => string;
13
13
  export declare function printCheckpoint<Value>(step: number, channels: Record<string, BaseChannel<Value>>): void;
14
14
  export declare function _readChannels<Value>(channels: Record<string, BaseChannel<Value>>): IterableIterator<[string, any]>;
15
- export declare function mapDebugTasks<N extends PropertyKey, C extends PropertyKey>(step: number, tasks: readonly PregelExecutableTask<N, C>[]): Generator<{
16
- type: string;
17
- timestamp: string;
18
- step: number;
19
- payload: {
20
- id: string;
21
- name: N;
22
- input: unknown;
23
- triggers: string[];
24
- interrupts: unknown[];
25
- };
15
+ export declare function mapDebugTasks<N extends PropertyKey, C extends PropertyKey>(tasks: readonly PregelExecutableTask<N, C>[]): Generator<{
16
+ id: string;
17
+ name: N;
18
+ input: unknown;
19
+ triggers: string[];
20
+ interrupts: unknown[];
26
21
  }, void, unknown>;
27
- export declare function mapDebugTaskResults<N extends PropertyKey, C extends PropertyKey>(step: number, tasks: readonly [PregelExecutableTask<N, C>, PendingWrite<C>[]][], streamChannels: PropertyKey | Array<PropertyKey>): Generator<{
28
- type: string;
29
- timestamp: string;
30
- step: number;
31
- payload: {
32
- id: string;
33
- name: N;
34
- result: PendingWrite<C>[];
35
- interrupts: unknown[];
36
- };
22
+ export declare function mapDebugTaskResults<N extends PropertyKey, C extends PropertyKey>(tasks: readonly [PregelExecutableTask<N, C>, PendingWrite<C>[]][], streamChannels: PropertyKey | Array<PropertyKey>): Generator<{
23
+ id: string;
24
+ name: N;
25
+ result: PendingWrite<C>[];
26
+ interrupts: unknown[];
37
27
  }, void, unknown>;
38
28
  type ChannelKey = string | number | symbol;
39
- export declare function mapDebugCheckpoint<N extends PropertyKey, C extends PropertyKey>(step: number, config: RunnableConfig, channels: Record<string, BaseChannel>, streamChannels: string | string[], metadata: CheckpointMetadata, tasks: readonly PregelExecutableTask<N, C>[], pendingWrites: CheckpointPendingWrite[], parentConfig: RunnableConfig | undefined, outputKeys: ChannelKey | ChannelKey[]): Generator<{
40
- type: string;
41
- timestamp: string;
42
- step: number;
43
- payload: {
44
- config: Partial<Record<"tags" | "metadata" | "callbacks" | "configurable" | "signal" | "timeout" | "run_name" | "max_concurrency" | "recursion_limit" | "run_id", unknown>>;
45
- values: any;
46
- metadata: CheckpointMetadata;
47
- next: N[];
48
- tasks: PregelTaskDescription[];
49
- parentConfig: Partial<Record<"tags" | "metadata" | "callbacks" | "configurable" | "signal" | "timeout" | "run_name" | "max_concurrency" | "recursion_limit" | "run_id", unknown>> | undefined;
50
- };
29
+ export declare function mapDebugCheckpoint<N extends PropertyKey, C extends PropertyKey>(config: RunnableConfig, channels: Record<string, BaseChannel>, streamChannels: string | string[], metadata: CheckpointMetadata, tasks: readonly PregelExecutableTask<N, C>[], pendingWrites: CheckpointPendingWrite[], parentConfig: RunnableConfig | undefined, outputKeys: ChannelKey | ChannelKey[]): Generator<{
30
+ config: Partial<Record<"tags" | "metadata" | "callbacks" | "configurable" | "signal" | "timeout" | "run_name" | "max_concurrency" | "recursion_limit" | "run_id", unknown>>;
31
+ values: any;
32
+ metadata: CheckpointMetadata;
33
+ next: N[];
34
+ tasks: PregelTaskDescription[];
35
+ parentConfig: Partial<Record<"tags" | "metadata" | "callbacks" | "configurable" | "signal" | "timeout" | "run_name" | "max_concurrency" | "recursion_limit" | "run_id", unknown>> | undefined;
51
36
  }, void, unknown>;
52
37
  export declare function tasksWithWrites<N extends PropertyKey, C extends PropertyKey>(tasks: PregelTaskDescription[] | readonly PregelExecutableTask<N, C>[], pendingWrites: CheckpointPendingWrite[], states: Record<string, RunnableConfig | StateSnapshot> | undefined, outputKeys: ChannelKey[] | ChannelKey): PregelTaskDescription[];
53
38
  export declare function printStepCheckpoint(step: number, channels: Record<string, BaseChannel<unknown>>, whitelist: string[]): void;
@@ -46,8 +46,7 @@ export function* _readChannels(channels
46
46
  }
47
47
  }
48
48
  }
49
- export function* mapDebugTasks(step, tasks) {
50
- const ts = new Date().toISOString();
49
+ export function* mapDebugTasks(tasks) {
51
50
  for (const { id, name, input, config, triggers, writes } of tasks) {
52
51
  if (config?.tags?.includes(TAG_HIDDEN))
53
52
  continue;
@@ -58,43 +57,26 @@ export function* mapDebugTasks(step, tasks) {
58
57
  .map(([, v]) => {
59
58
  return v;
60
59
  });
61
- yield {
62
- type: "task",
63
- timestamp: ts,
64
- step,
65
- payload: {
66
- id,
67
- name,
68
- input,
69
- triggers,
70
- interrupts,
71
- },
72
- };
60
+ yield { id, name, input, triggers, interrupts };
73
61
  }
74
62
  }
75
- export function* mapDebugTaskResults(step, tasks, streamChannels) {
76
- const ts = new Date().toISOString();
63
+ export function* mapDebugTaskResults(tasks, streamChannels) {
77
64
  for (const [{ id, name, config }, writes] of tasks) {
78
65
  if (config?.tags?.includes(TAG_HIDDEN))
79
66
  continue;
80
67
  yield {
81
- type: "task_result",
82
- timestamp: ts,
83
- step,
84
- payload: {
85
- id,
86
- name,
87
- result: writes.filter(([channel]) => {
88
- return Array.isArray(streamChannels)
89
- ? streamChannels.includes(channel)
90
- : channel === streamChannels;
91
- }),
92
- interrupts: writes.filter((w) => w[0] === INTERRUPT).map((w) => w[1]),
93
- },
68
+ id,
69
+ name,
70
+ result: writes.filter(([channel]) => {
71
+ return Array.isArray(streamChannels)
72
+ ? streamChannels.includes(channel)
73
+ : channel === streamChannels;
74
+ }),
75
+ interrupts: writes.filter((w) => w[0] === INTERRUPT).map((w) => w[1]),
94
76
  };
95
77
  }
96
78
  }
97
- export function* mapDebugCheckpoint(step, config, channels, streamChannels, metadata, tasks, pendingWrites, parentConfig, outputKeys) {
79
+ export function* mapDebugCheckpoint(config, channels, streamChannels, metadata, tasks, pendingWrites, parentConfig, outputKeys) {
98
80
  function formatConfig(config) {
99
81
  // make sure the config is consistent with Python
100
82
  const pyConfig = {};
@@ -132,19 +114,13 @@ export function* mapDebugCheckpoint(step, config, channels, streamChannels, meta
132
114
  },
133
115
  };
134
116
  }
135
- const ts = new Date().toISOString();
136
117
  yield {
137
- type: "checkpoint",
138
- timestamp: ts,
139
- step,
140
- payload: {
141
- config: formatConfig(config),
142
- values: readChannels(channels, streamChannels),
143
- metadata,
144
- next: tasks.map((task) => task.name),
145
- tasks: tasksWithWrites(tasks, pendingWrites, taskStates, outputKeys),
146
- parentConfig: parentConfig ? formatConfig(parentConfig) : undefined,
147
- },
118
+ config: formatConfig(config),
119
+ values: readChannels(channels, streamChannels),
120
+ metadata,
121
+ next: tasks.map((task) => task.name),
122
+ tasks: tasksWithWrites(tasks, pendingWrites, taskStates, outputKeys),
123
+ parentConfig: parentConfig ? formatConfig(parentConfig) : undefined,
148
124
  };
149
125
  }
150
126
  export function tasksWithWrites(tasks, pendingWrites, states, outputKeys) {
@@ -1 +1 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/pregel/debug.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/pregel/debug.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,EAEL,SAAS,EACT,MAAM,EACN,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAMjD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAWzD,MAAM,UAAU,GAAoB;IAClC,IAAI,EAAE;QACJ,KAAK,EAAE,UAAU;QACjB,GAAG,EAAE,SAAS;KACf;IACD,KAAK,EAAE;QACL,KAAK,EAAE,UAAU;QACjB,GAAG,EAAE,SAAS;KACf;IACD,MAAM,EAAE;QACN,KAAK,EAAE,YAAY;QACnB,GAAG,EAAE,SAAS;KACf;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,KAAoB,EAAE,IAAY,EAAU,EAAE,CACjE,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;AAEtC,MAAM,UAAU,eAAe,CAC7B,IAAY,EACZ,QAA4C;IAE5C,OAAO,CAAC,GAAG,CACT;QACE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,wBAAwB,CAAC,EAAE;QACpD,kBAAkB,IAAI,qBAAqB;QAC3C,KAAK,IAAI,CAAC,SAAS,CACjB,MAAM,CAAC,WAAW,CAAC,aAAa,CAAQ,QAAQ,CAAC,CAAC,EAClD,IAAI,EACJ,CAAC,CACF,EAAE;KACJ,CAAC,IAAI,CAAC,EAAE,CAAC,CACX,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,CAAC,CAAC,aAAa,CAC5B,QAA4C;AAC5C,8DAA8D;;IAE9D,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC5B,8DAA8D;QAChE,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;gBACvD,iCAAiC;gBACjC,SAAS;YACX,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC,CAAC,sDAAsD;YACrE,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,SAAS,CAAC,CAAC,aAAa,CAC5B,KAA4C;IAE5C,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QAClE,IAAI,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC;YAAE,SAAS;QAEjD,MAAM,UAAU,GAAG,MAAM;aACtB,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACvB,OAAO,OAAO,KAAK,EAAE,IAAI,CAAC,KAAK,SAAS,CAAC;QAC3C,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QACL,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAClD,CAAC;AACH,CAAC;AAED,MAAM,SAAS,CAAC,CAAC,mBAAmB,CAIlC,KAAiE,EACjE,cAAgD;IAEhD,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACnD,IAAI,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC;YAAE,SAAS;QACjD,MAAM;YACJ,EAAE;YACF,IAAI;YACJ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE;gBAClC,OAAO,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;oBAClC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAClC,CAAC,CAAC,OAAO,KAAK,cAAc,CAAC;YACjC,CAAC,CAAC;YACF,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACtE,CAAC;IACJ,CAAC;AACH,CAAC;AAID,MAAM,SAAS,CAAC,CAAC,kBAAkB,CAIjC,MAAsB,EACtB,QAAqC,EACrC,cAAiC,EACjC,QAA4B,EAC5B,KAA4C,EAC5C,aAAuC,EACvC,YAAwC,EACxC,UAAqC;IAErC,SAAS,YAAY,CAAC,MAAsB;QAY1C,iDAAiD;QACjD,MAAM,QAAQ,GAEV,EAAE,CAAC;QAEP,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI;YAAE,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACpE,IAAI,MAAM,CAAC,YAAY,IAAI,IAAI;YAC7B,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QAC9C,IAAI,MAAM,CAAC,cAAc,IAAI,IAAI;YAC/B,QAAQ,CAAC,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC;QAEnD,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI;YAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjE,IAAI,MAAM,CAAC,cAAc,IAAI,IAAI;YAC/B,QAAQ,CAAC,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC;QACnD,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI;YAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;QACzD,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI;YAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/D,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI;YAAE,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAErD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC;IACpD,MAAM,UAAU,GAAmD,EAAE,CAAC;IAEtE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC;YAAE,SAAS;QAEnD,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,IAAc,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;QACjD,IAAI,QAAQ;YAAE,MAAM,GAAG,GAAG,QAAQ,IAAI,MAAM,EAAE,CAAC;QAE/C,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;YACpB,YAAY,EAAE;gBACZ,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,SAAS;gBACzC,aAAa,EAAE,MAAM;aACtB;SACF,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC;QAC5B,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE,cAAc,CAAC;QAC9C,QAAQ;QACR,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;QACpC,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC;QACpE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;KACpE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAsE,EACtE,aAAuC,EACvC,MAAkE,EAClE,UAAqC;IAErC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAyB,EAAE;QAC/C,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,KAAK,CAC3C,EAAE,CAAC,CAAC,CAAC,CAAC;QAEP,MAAM,UAAU,GAAG,aAAa;aAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,SAAS,CAAC;aACtD,GAAG,CAAC,CAAC,CAAC,EAAE,AAAD,EAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAgB,CAAC;QAEtC,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE;YACnB,IAAI,KAAK,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM;gBAAE,OAAO,SAAS,CAAC;YAE1E,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CACjC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,MAAM,CAC9C,CAAC;YAEF,IAAI,GAAG,IAAI,CAAC;gBAAE,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAE3C,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACnC,OAAO,aAAa,CAAC,IAAI,CACvB,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,UAAU,CAClD,EAAE,CAAC,CAAC,CAAC,CAAC;YACT,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,aAAa;qBAC1B,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;qBAC/D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAE7B,IAAI,CAAC,OAAO,CAAC,MAAM;oBAAE,OAAO,SAAS,CAAC;gBACtC,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACrC,CAAC;YAED,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,EAAE,CAAC;QAEL,IAAI,KAAK,EAAE,CAAC;YACV,OAAO;gBACL,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,IAAc;gBACzB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK;gBACL,UAAU;gBACV,MAAM;aACP,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpC,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAc;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU;YACV,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,MAAM;SACP,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,QAA8C,EAC9C,SAAmB;IAEnB,OAAO,CAAC,GAAG,CACT;QACE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,IAAI,cAAc,CAAC,EAAE;QAClD,oCAAoC,IAAI,YAAY;QACpD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KAC3D,CAAC,IAAI,CAAC,EAAE,CAAC,CACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,IAAY,EACZ,SAAgD;IAEhD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAChC,OAAO,CAAC,GAAG,CACT;QACE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,IAAI,SAAS,CAAC,EAAE;QAC7C,yBAAyB,IAAI,SAAS,MAAM,QAC1C,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GACtB,YAAY;QACZ,SAAS;aACN,GAAG,CACF,CAAC,IAAI,EAAE,EAAE,CACP,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CACjE,IAAI,CAAC,KAAK,EACV,IAAI,EACJ,CAAC,CACF,EAAE,CACN;aACA,IAAI,CAAC,IAAI,CAAC;KACd,CAAC,IAAI,CAAC,EAAE,CAAC,CACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAY,EACZ,MAAsB,EACtB,SAAmB;IAEnB,8DAA8D;IAC9D,MAAM,SAAS,GAA0B,EAAE,CAAC;IAE5C,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACtC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxB,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YAC1B,CAAC;YACD,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CACT;QACE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,IAAI,UAAU,CAAC,EAAE;QAC9C,yBAAyB,IAAI,mBAC3B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MACzB,WAAW,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY;QACrE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;aACtB,GAAG,CACF,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CACf,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,IAAI;aAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aAC7B,IAAI,CAAC,IAAI,CAAC,EAAE,CAClB;aACA,IAAI,CAAC,IAAI,CAAC;KACd,CAAC,IAAI,CAAC,EAAE,CAAC,CACX,CAAC;AACJ,CAAC"}
@@ -740,7 +740,7 @@ class Pregel extends PartialRunnable {
740
740
  async *getStateHistory(config, options) {
741
741
  const checkpointer = config.configurable?.[constants_js_1.CONFIG_KEY_CHECKPOINTER] ?? this.checkpointer;
742
742
  if (!checkpointer) {
743
- throw new Error("No checkpointer set");
743
+ throw new errors_js_1.GraphValueError("No checkpointer set");
744
744
  }
745
745
  const checkpointNamespace = config.configurable?.checkpoint_ns ?? "";
746
746
  if (checkpointNamespace !== "" &&
@@ -862,7 +862,7 @@ class Pregel extends PartialRunnable {
862
862
  // tasks for this checkpoint
863
863
  const nextTasks = (0, algo_js_1._prepareNextTasks)(checkpoint, saved.pendingWrites || [], this.nodes, channels, managed, saved.config, true, {
864
864
  step: (saved.metadata?.step ?? -1) + 1,
865
- checkpointer: this.checkpointer || undefined,
865
+ checkpointer,
866
866
  store: this.store,
867
867
  });
868
868
  // apply null writes
@@ -870,13 +870,13 @@ class Pregel extends PartialRunnable {
870
870
  .filter((w) => w[0] === constants_js_1.NULL_TASK_ID)
871
871
  .map((w) => w.slice(1));
872
872
  if (nullWrites.length > 0) {
873
- (0, algo_js_1._applyWrites)(saved.checkpoint, channels, [
873
+ (0, algo_js_1._applyWrites)(checkpoint, channels, [
874
874
  {
875
875
  name: constants_js_1.INPUT,
876
876
  writes: nullWrites,
877
877
  triggers: [],
878
878
  },
879
- ], undefined, this.triggerToNodes);
879
+ ], checkpointer.getNextVersion.bind(checkpointer), this.triggerToNodes);
880
880
  }
881
881
  // apply writes from tasks that already ran
882
882
  for (const [taskId, k, v] of saved.pendingWrites || []) {
@@ -889,29 +889,61 @@ class Pregel extends PartialRunnable {
889
889
  nextTasks[taskId].writes.push([k, v]);
890
890
  }
891
891
  // clear all current tasks
892
- (0, algo_js_1._applyWrites)(checkpoint, channels, Object.values(nextTasks), undefined, this.triggerToNodes);
892
+ (0, algo_js_1._applyWrites)(checkpoint, channels, Object.values(nextTasks), checkpointer.getNextVersion.bind(checkpointer), this.triggerToNodes);
893
893
  }
894
894
  // save checkpoint
895
- const nextConfig = await checkpointer.put(checkpointConfig, (0, base_js_1.createCheckpoint)(checkpoint, undefined, step), {
895
+ const nextConfig = await checkpointer.put(checkpointConfig, (0, base_js_1.createCheckpoint)(checkpoint, channels, step), {
896
896
  ...checkpointMetadata,
897
897
  source: "update",
898
898
  step: step + 1,
899
899
  writes: {},
900
900
  parents: saved?.metadata?.parents ?? {},
901
- }, {});
901
+ }, (0, index_js_1.getNewChannelVersions)(checkpointPreviousVersions, checkpoint.channel_versions));
902
902
  return (0, index_js_1.patchCheckpointMap)(nextConfig, saved ? saved.metadata : undefined);
903
903
  }
904
- if (values == null && asNode === constants_js_1.COPY) {
904
+ if (asNode === constants_js_1.COPY) {
905
905
  if (updates.length > 1) {
906
906
  throw new errors_js_1.InvalidUpdateError(`Cannot copy checkpoint with multiple updates`);
907
907
  }
908
- const nextConfig = await checkpointer.put(saved?.parentConfig ?? checkpointConfig, (0, base_js_1.createCheckpoint)(checkpoint, undefined, step), {
908
+ if (saved == null) {
909
+ throw new errors_js_1.InvalidUpdateError(`Cannot copy a non-existent checkpoint`);
910
+ }
911
+ const isCopyWithUpdates = (values) => {
912
+ if (!Array.isArray(values))
913
+ return false;
914
+ if (values.length === 0)
915
+ return false;
916
+ return values.every((v) => Array.isArray(v) && v.length === 2);
917
+ };
918
+ const nextCheckpoint = (0, base_js_1.createCheckpoint)(checkpoint, undefined, step);
919
+ const nextConfig = await checkpointer.put(saved.parentConfig ??
920
+ (0, utils_js_1.patchConfigurable)(saved.config, { checkpoint_id: undefined }), nextCheckpoint, {
909
921
  source: "fork",
910
922
  step: step + 1,
911
923
  writes: {},
912
- parents: saved?.metadata?.parents ?? {},
924
+ parents: saved.metadata?.parents ?? {},
913
925
  }, {});
914
- return (0, index_js_1.patchCheckpointMap)(nextConfig, saved ? saved.metadata : undefined);
926
+ // We want to both clone a checkpoint and update state in one go.
927
+ // Reuse the same task ID if possible.
928
+ if (isCopyWithUpdates(values)) {
929
+ // figure out the task IDs for the next update checkpoint
930
+ const nextTasks = (0, algo_js_1._prepareNextTasks)(nextCheckpoint, saved.pendingWrites, this.nodes, channels, managed, nextConfig, false, { step: step + 2 });
931
+ const tasksGroupBy = Object.values(nextTasks).reduce((acc, { name, id }) => {
932
+ acc[name] ??= [];
933
+ acc[name].push({ id });
934
+ return acc;
935
+ }, {});
936
+ const userGroupBy = values.reduce((acc, item) => {
937
+ const [values, asNode] = item;
938
+ acc[asNode] ??= [];
939
+ const targetIdx = acc[asNode].length;
940
+ const taskId = tasksGroupBy[asNode]?.[targetIdx]?.id;
941
+ acc[asNode].push({ values, asNode, taskId });
942
+ return acc;
943
+ }, {});
944
+ return updateSuperStep((0, index_js_1.patchCheckpointMap)(nextConfig, saved.metadata), Object.values(userGroupBy).flat());
945
+ }
946
+ return (0, index_js_1.patchCheckpointMap)(nextConfig, saved.metadata);
915
947
  }
916
948
  if (asNode === constants_js_1.INPUT) {
917
949
  if (updates.length > 1) {
@@ -983,7 +1015,7 @@ class Pregel extends PartialRunnable {
983
1015
  const validUpdates = [];
984
1016
  if (updates.length === 1) {
985
1017
  // eslint-disable-next-line prefer-const
986
- let { values, asNode } = updates[0];
1018
+ let { values, asNode, taskId } = updates[0];
987
1019
  if (asNode === undefined && Object.keys(this.nodes).length === 1) {
988
1020
  // if only one node, use it
989
1021
  [asNode] = Object.keys(this.nodes);
@@ -1019,18 +1051,18 @@ class Pregel extends PartialRunnable {
1019
1051
  if (asNode === undefined) {
1020
1052
  throw new errors_js_1.InvalidUpdateError(`Ambiguous update, specify "asNode"`);
1021
1053
  }
1022
- validUpdates.push({ values, asNode });
1054
+ validUpdates.push({ values, asNode, taskId });
1023
1055
  }
1024
1056
  else {
1025
- for (const { asNode, values } of updates) {
1057
+ for (const { asNode, values, taskId } of updates) {
1026
1058
  if (asNode == null) {
1027
1059
  throw new errors_js_1.InvalidUpdateError(`"asNode" is required when applying multiple updates`);
1028
1060
  }
1029
- validUpdates.push({ values, asNode });
1061
+ validUpdates.push({ values, asNode, taskId });
1030
1062
  }
1031
1063
  }
1032
1064
  const tasks = [];
1033
- for (const { asNode, values } of validUpdates) {
1065
+ for (const { asNode, values, taskId } of validUpdates) {
1034
1066
  if (this.nodes[asNode] === undefined) {
1035
1067
  throw new errors_js_1.InvalidUpdateError(`Node "${asNode.toString()}" does not exist`);
1036
1068
  }
@@ -1050,7 +1082,7 @@ class Pregel extends PartialRunnable {
1050
1082
  : writers[0],
1051
1083
  writes: [],
1052
1084
  triggers: [constants_js_1.INTERRUPT],
1053
- id: (0, langgraph_checkpoint_1.uuid5)(constants_js_1.INTERRUPT, checkpoint.id),
1085
+ id: taskId ?? (0, langgraph_checkpoint_1.uuid5)(constants_js_1.INTERRUPT, checkpoint.id),
1054
1086
  writers: [],
1055
1087
  });
1056
1088
  }
@@ -1139,6 +1171,8 @@ class Pregel extends PartialRunnable {
1139
1171
  * - checkpointer
1140
1172
  * - store
1141
1173
  * - whether stream mode is single
1174
+ * - node cache
1175
+ * - whether checkpoint during is enabled
1142
1176
  * @internal
1143
1177
  */
1144
1178
  _defaults(config) {
@@ -1167,13 +1201,16 @@ class Pregel extends PartialRunnable {
1167
1201
  streamModeSingle = typeof streamMode === "string";
1168
1202
  }
1169
1203
  else {
1170
- defaultStreamMode = this.streamMode;
1204
+ // if being called as a node in another graph, default to values mode
1205
+ // but don't overwrite `streamMode`if provided
1206
+ if (config.configurable?.[constants_js_1.CONFIG_KEY_TASK_ID] !== undefined) {
1207
+ defaultStreamMode = ["values"];
1208
+ }
1209
+ else {
1210
+ defaultStreamMode = this.streamMode;
1211
+ }
1171
1212
  streamModeSingle = true;
1172
1213
  }
1173
- // if being called as a node in another graph, always use values mode
1174
- if (config.configurable?.[constants_js_1.CONFIG_KEY_TASK_ID] !== undefined) {
1175
- defaultStreamMode = ["values"];
1176
- }
1177
1214
  let defaultCheckpointer;
1178
1215
  if (this.checkpointer === false) {
1179
1216
  defaultCheckpointer = undefined;
@@ -1182,11 +1219,17 @@ class Pregel extends PartialRunnable {
1182
1219
  config.configurable?.[constants_js_1.CONFIG_KEY_CHECKPOINTER] !== undefined) {
1183
1220
  defaultCheckpointer = config.configurable[constants_js_1.CONFIG_KEY_CHECKPOINTER];
1184
1221
  }
1222
+ else if (this.checkpointer === true) {
1223
+ throw new Error("checkpointer: true cannot be used for root graphs.");
1224
+ }
1185
1225
  else {
1186
1226
  defaultCheckpointer = this.checkpointer;
1187
1227
  }
1188
1228
  const defaultStore = config.store ?? this.store;
1189
1229
  const defaultCache = config.cache ?? this.cache;
1230
+ const defaultCheckpointDuring = config.checkpointDuring ??
1231
+ config?.configurable?.[constants_js_1.CONFIG_KEY_CHECKPOINT_DURING] ??
1232
+ true;
1190
1233
  return [
1191
1234
  defaultDebug,
1192
1235
  defaultStreamMode,
@@ -1199,6 +1242,7 @@ class Pregel extends PartialRunnable {
1199
1242
  defaultStore,
1200
1243
  streamModeSingle,
1201
1244
  defaultCache,
1245
+ defaultCheckpointDuring,
1202
1246
  ];
1203
1247
  }
1204
1248
  /**
@@ -1345,11 +1389,20 @@ class Pregel extends PartialRunnable {
1345
1389
  const validInput = await this._validateInput(input);
1346
1390
  const { runId, ...restConfig } = inputConfig;
1347
1391
  // assign defaults
1348
- const [debug, streamMode, , outputKeys, config, interruptBefore, interruptAfter, checkpointer, store, streamModeSingle, cache,] = this._defaults(restConfig);
1392
+ const [debug, streamMode, , outputKeys, config, interruptBefore, interruptAfter, checkpointer, store, streamModeSingle, cache, checkpointDuring,] = this._defaults(restConfig);
1349
1393
  config.configurable = await this._validateConfigurable(config.configurable);
1350
1394
  const stream = new stream_js_1.IterableReadableWritableStream({
1351
1395
  modes: new Set(streamMode),
1352
1396
  });
1397
+ // set up subgraph checkpointing
1398
+ if (this.checkpointer === true) {
1399
+ config.configurable ??= {};
1400
+ const ns = config.configurable[constants_js_1.CONFIG_KEY_CHECKPOINT_NS] ?? "";
1401
+ config.configurable[constants_js_1.CONFIG_KEY_CHECKPOINT_NS] = ns
1402
+ .split(constants_js_1.CHECKPOINT_NAMESPACE_SEPARATOR)
1403
+ .map((part) => part.split(constants_js_1.CHECKPOINT_NAMESPACE_END)[0])
1404
+ .join(constants_js_1.CHECKPOINT_NAMESPACE_SEPARATOR);
1405
+ }
1353
1406
  // set up messages stream mode
1354
1407
  if (streamMode.includes("messages")) {
1355
1408
  const messageStreamer = new messages_js_1.StreamMessagesHandler((chunk) => stream.push(chunk));
@@ -1409,6 +1462,7 @@ class Pregel extends PartialRunnable {
1409
1462
  manager: runManager,
1410
1463
  debug: this.debug,
1411
1464
  triggerToNodes: this.triggerToNodes,
1465
+ checkpointDuring,
1412
1466
  });
1413
1467
  const runner = new runner_js_1.PregelRunner({
1414
1468
  loop,
@@ -222,7 +222,7 @@ export declare class Pregel<Nodes extends StrRecord<string, PregelNode>, Channel
222
222
  * When provided, saves a checkpoint of the graph state at every superstep.
223
223
  * When false or undefined, checkpointing is disabled, and the graph will not be able to save or restore state.
224
224
  */
225
- checkpointer?: BaseCheckpointSaver | false;
225
+ checkpointer?: BaseCheckpointSaver | boolean;
226
226
  /** Optional retry policy for handling failures in node execution */
227
227
  retryPolicy?: RetryPolicy;
228
228
  /** The default configuration for graph execution, can be overridden on a per-invocation basis */
@@ -412,6 +412,8 @@ export declare class Pregel<Nodes extends StrRecord<string, PregelNode>, Channel
412
412
  * - checkpointer
413
413
  * - store
414
414
  * - whether stream mode is single
415
+ * - node cache
416
+ * - whether checkpoint during is enabled
415
417
  * @internal
416
418
  */
417
419
  _defaults(config: PregelOptions<Nodes, Channels>): [
@@ -428,9 +430,12 @@ export declare class Pregel<Nodes extends StrRecord<string, PregelNode>, Channel
428
430
  All | string[],
429
431
  // interrupt after
430
432
  BaseCheckpointSaver | undefined,
433
+ // checkpointer
431
434
  BaseStore | undefined,
432
435
  boolean,
433
- BaseCache | undefined
436
+ // stream mode single
437
+ BaseCache | undefined,
438
+ boolean
434
439
  ];
435
440
  /**
436
441
  * Streams the execution of the graph, emitting state updates as they occur.