@langchain/langgraph 0.3.4 → 0.3.6

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 (58) hide show
  1. package/dist/channels/base.cjs +2 -2
  2. package/dist/channels/base.d.ts +3 -1
  3. package/dist/channels/base.js +2 -2
  4. package/dist/channels/base.js.map +1 -1
  5. package/dist/constants.cjs +3 -1
  6. package/dist/constants.d.ts +3 -0
  7. package/dist/constants.js +2 -0
  8. package/dist/constants.js.map +1 -1
  9. package/dist/errors.cjs +1 -6
  10. package/dist/errors.js +1 -6
  11. package/dist/errors.js.map +1 -1
  12. package/dist/graph/state.d.ts +1 -1
  13. package/dist/graph/zod/zod-registry.d.ts +8 -2
  14. package/dist/graph/zod/zod-registry.js +1 -1
  15. package/dist/graph/zod/zod-registry.js.map +1 -1
  16. package/dist/hash.cjs +333 -0
  17. package/dist/hash.d.ts +2 -0
  18. package/dist/hash.js +329 -0
  19. package/dist/hash.js.map +1 -0
  20. package/dist/interrupt.cjs +8 -1
  21. package/dist/interrupt.js +8 -1
  22. package/dist/interrupt.js.map +1 -1
  23. package/dist/prebuilt/react_agent_executor.d.ts +2 -2
  24. package/dist/pregel/algo.cjs +29 -14
  25. package/dist/pregel/algo.js +30 -15
  26. package/dist/pregel/algo.js.map +1 -1
  27. package/dist/pregel/debug.cjs +42 -49
  28. package/dist/pregel/debug.d.ts +20 -34
  29. package/dist/pregel/debug.js +43 -50
  30. package/dist/pregel/debug.js.map +1 -1
  31. package/dist/pregel/debug.test.cjs +83 -20
  32. package/dist/pregel/debug.test.js +83 -20
  33. package/dist/pregel/debug.test.js.map +1 -1
  34. package/dist/pregel/index.cjs +77 -23
  35. package/dist/pregel/index.d.ts +7 -2
  36. package/dist/pregel/index.js +78 -24
  37. package/dist/pregel/index.js.map +1 -1
  38. package/dist/pregel/loop.cjs +157 -43
  39. package/dist/pregel/loop.d.ts +7 -1
  40. package/dist/pregel/loop.js +158 -44
  41. package/dist/pregel/loop.js.map +1 -1
  42. package/dist/pregel/remote.cjs +2 -0
  43. package/dist/pregel/remote.d.ts +1 -0
  44. package/dist/pregel/remote.js +2 -0
  45. package/dist/pregel/remote.js.map +1 -1
  46. package/dist/pregel/types.d.ts +50 -4
  47. package/dist/pregel/types.js.map +1 -1
  48. package/dist/pregel/utils/config.cjs +2 -1
  49. package/dist/pregel/utils/config.js +2 -1
  50. package/dist/pregel/utils/config.js.map +1 -1
  51. package/dist/pregel/validate.cjs +1 -1
  52. package/dist/pregel/validate.js +1 -1
  53. package/dist/pregel/validate.js.map +1 -1
  54. package/dist/pregel/validate.test.cjs +1 -1
  55. package/dist/pregel/validate.test.js +1 -1
  56. package/dist/pregel/validate.test.js.map +1 -1
  57. package/dist/utils.js.map +1 -1
  58. package/package.json +5 -6
@@ -3,11 +3,12 @@ import { mergeConfigs, patchConfig, } from "@langchain/core/runnables";
3
3
  import { copyCheckpoint, uuid5, maxChannelVersion, } from "@langchain/langgraph-checkpoint";
4
4
  import { createCheckpoint, emptyChannels, isBaseChannel, } from "../channels/base.js";
5
5
  import { readChannel, readChannels } from "./io.js";
6
- import { _isSend, _isSendInterface, CONFIG_KEY_CHECKPOINT_MAP, CHECKPOINT_NAMESPACE_SEPARATOR, CONFIG_KEY_CHECKPOINTER, CONFIG_KEY_READ, CONFIG_KEY_TASK_ID, CONFIG_KEY_SEND, INTERRUPT, RESERVED, Send, TAG_HIDDEN, TASKS, CHECKPOINT_NAMESPACE_END, PUSH, PULL, RESUME, NULL_TASK_ID, CONFIG_KEY_SCRATCHPAD, RETURN, ERROR, NO_WRITES, CONFIG_KEY_PREVIOUS_STATE, PREVIOUS, CACHE_NS_WRITES, } from "../constants.js";
6
+ import { _isSend, _isSendInterface, CONFIG_KEY_CHECKPOINT_MAP, CHECKPOINT_NAMESPACE_SEPARATOR, CONFIG_KEY_CHECKPOINTER, CONFIG_KEY_READ, CONFIG_KEY_TASK_ID, CONFIG_KEY_SEND, INTERRUPT, RESERVED, Send, TAG_HIDDEN, TASKS, CHECKPOINT_NAMESPACE_END, PUSH, PULL, RESUME, NULL_TASK_ID, CONFIG_KEY_SCRATCHPAD, RETURN, ERROR, NO_WRITES, CONFIG_KEY_PREVIOUS_STATE, PREVIOUS, CACHE_NS_WRITES, CONFIG_KEY_RESUME_MAP, } from "../constants.js";
7
7
  import { isCall, } from "./types.js";
8
8
  import { EmptyChannelError, InvalidUpdateError } from "../errors.js";
9
9
  import { getNullChannelVersion } from "./utils/index.js";
10
10
  import { getRunnableForFunc } from "./call.js";
11
+ import { XXH3 } from "../hash.js";
11
12
  export const increment = (current) => {
12
13
  return current !== undefined ? current + 1 : 1;
13
14
  };
@@ -287,11 +288,14 @@ export function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processe
287
288
  taskPath[2],
288
289
  ]), checkpoint.id);
289
290
  const taskCheckpointNamespace = `${checkpointNamespace}${CHECKPOINT_NAMESPACE_END}${id}`;
291
+ // we append `true` to the task path to indicate that a call is being made
292
+ // so we should not return interrupts from this task (responsibility lies with the parent)
293
+ const outputTaskPath = [...taskPath.slice(0, 3), true];
290
294
  const metadata = {
291
295
  langgraph_step: step,
292
296
  langgraph_node: call.name,
293
297
  langgraph_triggers: triggers,
294
- langgraph_path: taskPath.slice(0, 3),
298
+ langgraph_path: outputTaskPath,
295
299
  langgraph_checkpoint_ns: taskCheckpointNamespace,
296
300
  };
297
301
  if (forExecution) {
@@ -315,7 +319,7 @@ export function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processe
315
319
  name: call.name,
316
320
  writes: writes,
317
321
  triggers,
318
- path: taskPath.slice(0, 3),
322
+ path: outputTaskPath,
319
323
  }, select_, fresh_),
320
324
  [CONFIG_KEY_CHECKPOINTER]: checkpointer ?? configurable[CONFIG_KEY_CHECKPOINTER],
321
325
  [CONFIG_KEY_CHECKPOINT_MAP]: {
@@ -326,6 +330,8 @@ export function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processe
326
330
  pendingWrites: pendingWrites ?? [],
327
331
  taskId: id,
328
332
  currentTaskInput: call.input,
333
+ resumeMap: config.configurable?.[CONFIG_KEY_RESUME_MAP],
334
+ namespaceHash: XXH3(taskCheckpointNamespace),
329
335
  }),
330
336
  [CONFIG_KEY_PREVIOUS_STATE]: checkpoint.channel_values[PREVIOUS],
331
337
  checkpoint_id: undefined,
@@ -336,14 +342,13 @@ export function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processe
336
342
  retry_policy: call.retry,
337
343
  cache_key: call.cache
338
344
  ? {
339
- // TODO: add xxh3_128 hex digest
340
- key: (call.cache.keyFunc ?? JSON.stringify)([call.input]),
345
+ key: XXH3((call.cache.keyFunc ?? JSON.stringify)([call.input])),
341
346
  ns: [CACHE_NS_WRITES, call.name ?? "__dynamic__"],
342
347
  ttl: call.cache.ttl,
343
348
  }
344
349
  : undefined,
345
350
  id,
346
- path: taskPath.slice(0, 3),
351
+ path: outputTaskPath,
347
352
  writers: [],
348
353
  };
349
354
  return task;
@@ -353,7 +358,7 @@ export function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processe
353
358
  id,
354
359
  name: call.name,
355
360
  interrupts: [],
356
- path: taskPath.slice(0, 3),
361
+ path: outputTaskPath,
357
362
  };
358
363
  }
359
364
  }
@@ -436,6 +441,8 @@ export function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processe
436
441
  pendingWrites: pendingWrites ?? [],
437
442
  taskId,
438
443
  currentTaskInput: packet.args,
444
+ resumeMap: config.configurable?.[CONFIG_KEY_RESUME_MAP],
445
+ namespaceHash: XXH3(taskCheckpointNamespace),
439
446
  }),
440
447
  [CONFIG_KEY_PREVIOUS_STATE]: checkpoint.channel_values[PREVIOUS],
441
448
  checkpoint_id: undefined,
@@ -446,9 +453,7 @@ export function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processe
446
453
  retry_policy: proc.retryPolicy,
447
454
  cache_key: proc.cachePolicy
448
455
  ? {
449
- key: (proc.cachePolicy.keyFunc ?? JSON.stringify)([
450
- packet.args,
451
- ]),
456
+ key: XXH3((proc.cachePolicy.keyFunc ?? JSON.stringify)([packet.args])),
452
457
  ns: [CACHE_NS_WRITES, proc.name ?? "__dynamic__", packet.node],
453
458
  ttl: proc.cachePolicy.ttl,
454
459
  }
@@ -576,6 +581,8 @@ export function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processe
576
581
  pendingWrites: pendingWrites ?? [],
577
582
  taskId,
578
583
  currentTaskInput: val,
584
+ resumeMap: config.configurable?.[CONFIG_KEY_RESUME_MAP],
585
+ namespaceHash: XXH3(taskCheckpointNamespace),
579
586
  }),
580
587
  [CONFIG_KEY_PREVIOUS_STATE]: checkpoint.channel_values[PREVIOUS],
581
588
  checkpoint_id: undefined,
@@ -586,7 +593,7 @@ export function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processe
586
593
  retry_policy: proc.retryPolicy,
587
594
  cache_key: proc.cachePolicy
588
595
  ? {
589
- key: (proc.cachePolicy.keyFunc ?? JSON.stringify)([val]),
596
+ key: XXH3((proc.cachePolicy.keyFunc ?? JSON.stringify)([val])),
590
597
  ns: [CACHE_NS_WRITES, proc.name ?? "__dynamic__", name],
591
598
  ttl: proc.cachePolicy.ttl,
592
599
  }
@@ -686,14 +693,22 @@ function _procInput(step, proc, managed, channels, forExecution) {
686
693
  }
687
694
  return val;
688
695
  }
689
- function _scratchpad({ pendingWrites, taskId, currentTaskInput, }) {
696
+ function _scratchpad({ pendingWrites, taskId, currentTaskInput, resumeMap, namespaceHash, }) {
690
697
  const nullResume = pendingWrites.find(([writeTaskId, chan]) => writeTaskId === NULL_TASK_ID && chan === RESUME)?.[2];
698
+ const resume = (() => {
699
+ const result = pendingWrites
700
+ .filter(([writeTaskId, chan]) => writeTaskId === taskId && chan === RESUME)
701
+ .flatMap(([_writeTaskId, _chan, resume]) => resume);
702
+ if (resumeMap != null && namespaceHash in resumeMap) {
703
+ const mappedResume = resumeMap[namespaceHash];
704
+ result.push(mappedResume);
705
+ }
706
+ return result;
707
+ })();
691
708
  const scratchpad = {
692
709
  callCounter: 0,
693
710
  interruptCounter: -1,
694
- resume: pendingWrites
695
- .filter(([writeTaskId, chan]) => writeTaskId === taskId && chan === RESUME)
696
- .flatMap(([_writeTaskId, _chan, resume]) => resume),
711
+ resume,
697
712
  nullResume,
698
713
  subgraphCounter: 0,
699
714
  currentTaskInput,
@@ -1 +1 @@
1
- {"version":3,"file":"algo.js","sourceRoot":"","sources":["../../src/pregel/algo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"algo.js","sourceRoot":"","sources":["../../src/pregel/algo.ts"],"names":[],"mappings":"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"}
@@ -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) {
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,31 +127,40 @@ 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),
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
- function tasksWithWrites(tasks, pendingWrites, states) {
139
+ function tasksWithWrites(tasks, pendingWrites, states, outputKeys) {
164
140
  return tasks.map((task) => {
165
141
  const error = pendingWrites.find(([id, n]) => id === task.id && n === constants_js_1.ERROR)?.[2];
166
142
  const interrupts = pendingWrites
167
- .filter(([id, n]) => {
168
- return id === task.id && n === constants_js_1.INTERRUPT;
169
- })
170
- .map(([, , v]) => {
171
- return v;
172
- });
143
+ .filter(([id, n]) => id === task.id && n === constants_js_1.INTERRUPT)
144
+ .map(([, , v]) => v);
145
+ const result = (() => {
146
+ if (error || interrupts.length || !pendingWrites.length)
147
+ return undefined;
148
+ const idx = pendingWrites.findIndex(([tid, n]) => tid === task.id && n === constants_js_1.RETURN);
149
+ if (idx >= 0)
150
+ return pendingWrites[idx][2];
151
+ if (typeof outputKeys === "string") {
152
+ return pendingWrites.find(([tid, n]) => tid === task.id && n === outputKeys)?.[2];
153
+ }
154
+ if (Array.isArray(outputKeys)) {
155
+ const results = pendingWrites
156
+ .filter(([tid, n]) => tid === task.id && outputKeys.includes(n))
157
+ .map(([, n, v]) => [n, v]);
158
+ if (!results.length)
159
+ return undefined;
160
+ return Object.fromEntries(results);
161
+ }
162
+ return undefined;
163
+ })();
173
164
  if (error) {
174
165
  return {
175
166
  id: task.id,
@@ -177,6 +168,7 @@ function tasksWithWrites(tasks, pendingWrites, states) {
177
168
  path: task.path,
178
169
  error,
179
170
  interrupts,
171
+ result,
180
172
  };
181
173
  }
182
174
  const taskState = states?.[task.id];
@@ -186,6 +178,7 @@ function tasksWithWrites(tasks, pendingWrites, states) {
186
178
  path: task.path,
187
179
  interrupts,
188
180
  ...(taskState !== undefined ? { state: taskState } : {}),
181
+ result,
189
182
  };
190
183
  });
191
184
  }
@@ -12,43 +12,29 @@ 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
- 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): Generator<{
39
- type: string;
40
- timestamp: string;
41
- step: number;
42
- payload: {
43
- config: Partial<Record<"tags" | "metadata" | "callbacks" | "configurable" | "signal" | "timeout" | "run_name" | "max_concurrency" | "recursion_limit" | "run_id", unknown>>;
44
- values: any;
45
- metadata: CheckpointMetadata;
46
- next: N[];
47
- tasks: PregelTaskDescription[];
48
- parentConfig: Partial<Record<"tags" | "metadata" | "callbacks" | "configurable" | "signal" | "timeout" | "run_name" | "max_concurrency" | "recursion_limit" | "run_id", unknown>> | undefined;
49
- };
28
+ type ChannelKey = string | number | symbol;
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;
50
36
  }, void, unknown>;
51
- export declare function tasksWithWrites<N extends PropertyKey, C extends PropertyKey>(tasks: PregelTaskDescription[] | readonly PregelExecutableTask<N, C>[], pendingWrites: CheckpointPendingWrite[], states?: Record<string, RunnableConfig | StateSnapshot>): PregelTaskDescription[];
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[];
52
38
  export declare function printStepCheckpoint(step: number, channels: Record<string, BaseChannel<unknown>>, whitelist: string[]): void;
53
39
  export declare function printStepTasks<N extends PropertyKey, C extends PropertyKey>(step: number, nextTasks: readonly PregelExecutableTask<N, C>[]): void;
54
40
  export declare function printStepWrites(step: number, writes: PendingWrite[], whitelist: string[]): void;
@@ -1,4 +1,4 @@
1
- import { ERROR, INTERRUPT, TAG_HIDDEN } from "../constants.js";
1
+ import { ERROR, INTERRUPT, RETURN, TAG_HIDDEN, } from "../constants.js";
2
2
  import { EmptyChannelError } from "../errors.js";
3
3
  import { readChannels } from "./io.js";
4
4
  import { findSubgraphPregel } from "./utils/subgraph.js";
@@ -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) {
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,31 +114,40 @@ 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),
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
- export function tasksWithWrites(tasks, pendingWrites, states) {
126
+ export function tasksWithWrites(tasks, pendingWrites, states, outputKeys) {
151
127
  return tasks.map((task) => {
152
128
  const error = pendingWrites.find(([id, n]) => id === task.id && n === ERROR)?.[2];
153
129
  const interrupts = pendingWrites
154
- .filter(([id, n]) => {
155
- return id === task.id && n === INTERRUPT;
156
- })
157
- .map(([, , v]) => {
158
- return v;
159
- });
130
+ .filter(([id, n]) => id === task.id && n === INTERRUPT)
131
+ .map(([, , v]) => v);
132
+ const result = (() => {
133
+ if (error || interrupts.length || !pendingWrites.length)
134
+ return undefined;
135
+ const idx = pendingWrites.findIndex(([tid, n]) => tid === task.id && n === RETURN);
136
+ if (idx >= 0)
137
+ return pendingWrites[idx][2];
138
+ if (typeof outputKeys === "string") {
139
+ return pendingWrites.find(([tid, n]) => tid === task.id && n === outputKeys)?.[2];
140
+ }
141
+ if (Array.isArray(outputKeys)) {
142
+ const results = pendingWrites
143
+ .filter(([tid, n]) => tid === task.id && outputKeys.includes(n))
144
+ .map(([, n, v]) => [n, v]);
145
+ if (!results.length)
146
+ return undefined;
147
+ return Object.fromEntries(results);
148
+ }
149
+ return undefined;
150
+ })();
160
151
  if (error) {
161
152
  return {
162
153
  id: task.id,
@@ -164,6 +155,7 @@ export function tasksWithWrites(tasks, pendingWrites, states) {
164
155
  path: task.path,
165
156
  error,
166
157
  interrupts,
158
+ result,
167
159
  };
168
160
  }
169
161
  const taskState = states?.[task.id];
@@ -173,6 +165,7 @@ export function tasksWithWrites(tasks, pendingWrites, states) {
173
165
  path: task.path,
174
166
  interrupts,
175
167
  ...(taskState !== undefined ? { state: taskState } : {}),
168
+ result,
176
169
  };
177
170
  });
178
171
  }