@langchain/langgraph 0.2.74 → 0.3.1

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 (105) hide show
  1. package/dist/channels/any_value.cjs +3 -0
  2. package/dist/channels/any_value.d.ts +1 -0
  3. package/dist/channels/any_value.js +3 -0
  4. package/dist/channels/any_value.js.map +1 -1
  5. package/dist/channels/base.cjs +31 -2
  6. package/dist/channels/base.d.ts +17 -2
  7. package/dist/channels/base.js +31 -2
  8. package/dist/channels/base.js.map +1 -1
  9. package/dist/channels/binop.cjs +3 -0
  10. package/dist/channels/binop.d.ts +1 -0
  11. package/dist/channels/binop.js +3 -0
  12. package/dist/channels/binop.js.map +1 -1
  13. package/dist/channels/dynamic_barrier_value.cjs +119 -9
  14. package/dist/channels/dynamic_barrier_value.d.ts +29 -0
  15. package/dist/channels/dynamic_barrier_value.js +117 -8
  16. package/dist/channels/dynamic_barrier_value.js.map +1 -1
  17. package/dist/channels/ephemeral_value.cjs +3 -0
  18. package/dist/channels/ephemeral_value.d.ts +1 -0
  19. package/dist/channels/ephemeral_value.js +3 -0
  20. package/dist/channels/ephemeral_value.js.map +1 -1
  21. package/dist/channels/last_value.cjs +82 -4
  22. package/dist/channels/last_value.d.ts +21 -0
  23. package/dist/channels/last_value.js +80 -3
  24. package/dist/channels/last_value.js.map +1 -1
  25. package/dist/channels/named_barrier_value.cjs +94 -1
  26. package/dist/channels/named_barrier_value.d.ts +23 -0
  27. package/dist/channels/named_barrier_value.js +92 -0
  28. package/dist/channels/named_barrier_value.js.map +1 -1
  29. package/dist/channels/topic.cjs +3 -0
  30. package/dist/channels/topic.d.ts +1 -0
  31. package/dist/channels/topic.js +3 -0
  32. package/dist/channels/topic.js.map +1 -1
  33. package/dist/constants.cjs +29 -8
  34. package/dist/constants.d.ts +47 -26
  35. package/dist/constants.js +27 -7
  36. package/dist/constants.js.map +1 -1
  37. package/dist/func/index.cjs +17 -4
  38. package/dist/func/index.d.ts +14 -5
  39. package/dist/func/index.js +17 -4
  40. package/dist/func/index.js.map +1 -1
  41. package/dist/func/types.d.ts +1 -1
  42. package/dist/graph/graph.d.ts +4 -2
  43. package/dist/graph/graph.js.map +1 -1
  44. package/dist/graph/index.cjs +2 -1
  45. package/dist/graph/index.d.ts +1 -1
  46. package/dist/graph/index.js +1 -1
  47. package/dist/graph/index.js.map +1 -1
  48. package/dist/graph/messages_annotation.cjs +3 -0
  49. package/dist/graph/messages_annotation.js +3 -0
  50. package/dist/graph/messages_annotation.js.map +1 -1
  51. package/dist/graph/state.cjs +67 -22
  52. package/dist/graph/state.d.ts +22 -8
  53. package/dist/graph/state.js +68 -24
  54. package/dist/graph/state.js.map +1 -1
  55. package/dist/graph/zod/schema.cjs +12 -61
  56. package/dist/graph/zod/schema.js +12 -61
  57. package/dist/graph/zod/schema.js.map +1 -1
  58. package/dist/graph/zod/state.cjs +63 -0
  59. package/dist/graph/zod/state.d.ts +10 -1
  60. package/dist/graph/zod/state.js +61 -0
  61. package/dist/graph/zod/state.js.map +1 -1
  62. package/dist/prebuilt/react_agent_executor.cjs +99 -45
  63. package/dist/prebuilt/react_agent_executor.d.ts +20 -4
  64. package/dist/prebuilt/react_agent_executor.js +99 -45
  65. package/dist/prebuilt/react_agent_executor.js.map +1 -1
  66. package/dist/pregel/algo.cjs +60 -20
  67. package/dist/pregel/algo.d.ts +1 -1
  68. package/dist/pregel/algo.js +61 -21
  69. package/dist/pregel/algo.js.map +1 -1
  70. package/dist/pregel/call.cjs +2 -1
  71. package/dist/pregel/call.d.ts +3 -2
  72. package/dist/pregel/call.js +2 -1
  73. package/dist/pregel/call.js.map +1 -1
  74. package/dist/pregel/debug.test.cjs +6 -0
  75. package/dist/pregel/debug.test.js +6 -0
  76. package/dist/pregel/debug.test.js.map +1 -1
  77. package/dist/pregel/index.cjs +99 -29
  78. package/dist/pregel/index.d.ts +19 -6
  79. package/dist/pregel/index.js +100 -30
  80. package/dist/pregel/index.js.map +1 -1
  81. package/dist/pregel/loop.cjs +126 -26
  82. package/dist/pregel/loop.d.ts +29 -2
  83. package/dist/pregel/loop.js +127 -27
  84. package/dist/pregel/loop.js.map +1 -1
  85. package/dist/pregel/read.cjs +12 -1
  86. package/dist/pregel/read.d.ts +3 -1
  87. package/dist/pregel/read.js +12 -1
  88. package/dist/pregel/read.js.map +1 -1
  89. package/dist/pregel/retry.cjs +2 -6
  90. package/dist/pregel/retry.js +2 -6
  91. package/dist/pregel/retry.js.map +1 -1
  92. package/dist/pregel/runner.cjs +1 -0
  93. package/dist/pregel/runner.js +1 -0
  94. package/dist/pregel/runner.js.map +1 -1
  95. package/dist/pregel/types.cjs +8 -1
  96. package/dist/pregel/types.d.ts +64 -8
  97. package/dist/pregel/types.js +8 -1
  98. package/dist/pregel/types.js.map +1 -1
  99. package/dist/pregel/utils/index.d.ts +15 -0
  100. package/dist/pregel/utils/index.js.map +1 -1
  101. package/dist/web.cjs +4 -1
  102. package/dist/web.d.ts +3 -3
  103. package/dist/web.js +2 -2
  104. package/dist/web.js.map +1 -1
  105. package/package.json +5 -5
@@ -1,11 +1,11 @@
1
1
  import { BaseChatModel } from "@langchain/core/language_models/chat_models";
2
2
  import { LanguageModelLike } from "@langchain/core/language_models/base";
3
3
  import { BaseMessage, BaseMessageLike, SystemMessage } from "@langchain/core/messages";
4
- import { Runnable, RunnableToolLike } from "@langchain/core/runnables";
4
+ import { Runnable, RunnableToolLike, type RunnableLike } from "@langchain/core/runnables";
5
5
  import { DynamicTool, StructuredToolInterface } from "@langchain/core/tools";
6
6
  import { All, BaseCheckpointSaver, BaseStore } from "@langchain/langgraph-checkpoint";
7
7
  import { z } from "zod";
8
- import { CompiledStateGraph, AnnotationRoot } from "../graph/index.js";
8
+ import { type CompiledStateGraph, AnnotationRoot } from "../graph/index.js";
9
9
  import { MessagesAnnotation } from "../graph/messages_annotation.js";
10
10
  import { ToolNode } from "./tool_node.js";
11
11
  import { LangGraphRunnableConfig } from "../pregel/runnable_types.js";
@@ -20,11 +20,13 @@ export type StructuredResponseSchemaAndPrompt<StructuredResponseType> = {
20
20
  prompt: string;
21
21
  schema: z.ZodType<StructuredResponseType> | Record<string, any>;
22
22
  };
23
+ type ServerTool = Record<string, unknown>;
24
+ type ClientTool = StructuredToolInterface | DynamicTool | RunnableToolLike;
23
25
  interface ConfigurableModelInterface {
24
26
  _queuedMethodOperations: Record<string, any>;
25
27
  _model: () => Promise<BaseChatModel>;
26
28
  }
27
- export declare function _shouldBindTools(llm: LanguageModelLike, tools: (StructuredToolInterface | DynamicTool | RunnableToolLike)[]): Promise<boolean>;
29
+ export declare function _shouldBindTools(llm: LanguageModelLike, tools: (ClientTool | ServerTool)[]): Promise<boolean>;
28
30
  export declare function _getModel(llm: LanguageModelLike | ConfigurableModelInterface): Promise<BaseChatModel>;
29
31
  export type Prompt = SystemMessage | string | ((state: typeof MessagesAnnotation.State, config: LangGraphRunnableConfig) => BaseMessageLike[]) | ((state: typeof MessagesAnnotation.State, config: LangGraphRunnableConfig) => Promise<BaseMessageLike[]>) | Runnable;
30
32
  /** @deprecated Use Prompt instead. */
@@ -39,11 +41,15 @@ export declare const createReactAgentAnnotation: <T extends Record<string, any>
39
41
  Root: <S extends import("../web.js").StateDefinition>(sd: S) => AnnotationRoot<S>;
40
42
  };
41
43
  }>;
44
+ declare const PreHookAnnotation: AnnotationRoot<{
45
+ llmInputMessages: import("../web.js").BinaryOperatorAggregate<BaseMessage[], Messages>;
46
+ }>;
47
+ type PreHookAnnotation = typeof PreHookAnnotation;
42
48
  export type CreateReactAgentParams<A extends AnnotationRoot<any> = AnnotationRoot<any>, StructuredResponseType = Record<string, any>> = {
43
49
  /** The chat model that can utilize OpenAI-style tool calling. */
44
50
  llm: LanguageModelLike;
45
51
  /** A list of tools or a ToolNode. */
46
- tools: ToolNode | (StructuredToolInterface | DynamicTool | RunnableToolLike)[];
52
+ tools: ToolNode | (ServerTool | ClientTool)[];
47
53
  /**
48
54
  * @deprecated Use prompt instead.
49
55
  */
@@ -108,6 +114,16 @@ export type CreateReactAgentParams<A extends AnnotationRoot<any> = AnnotationRoo
108
114
  Example: `"How can I help you"` -> `"<name>agent_name</name><content>How can I help you?</content>"`
109
115
  */
110
116
  includeAgentName?: "inline" | undefined;
117
+ /**
118
+ * An optional node to add before the `agent` node (i.e., the node that calls the LLM).
119
+ * Useful for managing long message histories (e.g., message trimming, summarization, etc.).
120
+ */
121
+ preModelHook?: RunnableLike<A["State"] & PreHookAnnotation["State"], A["Update"] & PreHookAnnotation["Update"], LangGraphRunnableConfig>;
122
+ /**
123
+ * An optional node to add after the `agent` node (i.e., the node that calls the LLM).
124
+ * Useful for implementing human-in-the-loop, guardrails, validation, or other post-processing.
125
+ */
126
+ postModelHook?: RunnableLike<A["State"], A["Update"], LangGraphRunnableConfig>;
111
127
  };
112
128
  /**
113
129
  * Creates a StateGraph agent that relies on a chat model utilizing tool calling.
@@ -50,6 +50,9 @@ function _getPromptRunnable(prompt) {
50
50
  }
51
51
  return promptRunnable;
52
52
  }
53
+ function isClientTool(tool) {
54
+ return Runnable.isRunnable(tool);
55
+ }
53
56
  function _getPrompt(prompt, stateModifier, messageModifier) {
54
57
  // Check if multiple modifiers exist
55
58
  const definedCount = [prompt, stateModifier, messageModifier].filter((x) => x != null).length;
@@ -107,7 +110,7 @@ export async function _shouldBindTools(llm, tools) {
107
110
  if (tools.length !== boundTools.length) {
108
111
  throw new Error("Number of tools in the model.bindTools() and tools passed to createReactAgent must match");
109
112
  }
110
- const toolNames = new Set(tools.map((tool) => tool.name));
113
+ const toolNames = new Set(tools.flatMap((tool) => (isClientTool(tool) ? tool.name : [])));
111
114
  const boundToolNames = new Set();
112
115
  for (const boundTool of boundTools) {
113
116
  let boundToolName;
@@ -115,7 +118,7 @@ export async function _shouldBindTools(llm, tools) {
115
118
  if ("type" in boundTool && boundTool.type === "function") {
116
119
  boundToolName = boundTool.function.name;
117
120
  }
118
- // Anthropic- or Google-style tool
121
+ // Anthropic or Google-style tool
119
122
  else if ("name" in boundTool) {
120
123
  boundToolName = boundTool.name;
121
124
  }
@@ -166,6 +169,12 @@ export const createReactAgentAnnotation = () => Annotation.Root({
166
169
  }),
167
170
  structuredResponse: (Annotation),
168
171
  });
172
+ const PreHookAnnotation = Annotation.Root({
173
+ llmInputMessages: Annotation({
174
+ reducer: messagesStateReducer,
175
+ default: () => [],
176
+ }),
177
+ });
169
178
  /**
170
179
  * Creates a StateGraph agent that relies on a chat model utilizing tool calling.
171
180
  *
@@ -209,7 +218,7 @@ export const createReactAgentAnnotation = () => Annotation.Root({
209
218
  * ```
210
219
  */
211
220
  export function createReactAgent(params) {
212
- const { llm, tools, messageModifier, stateModifier, prompt, stateSchema, checkpointSaver, checkpointer, interruptBefore, interruptAfter, store, responseFormat, name, includeAgentName, } = params;
221
+ const { llm, tools, messageModifier, stateModifier, prompt, stateSchema, checkpointSaver, checkpointer, interruptBefore, interruptAfter, store, responseFormat, preModelHook, postModelHook, name, includeAgentName, } = params;
213
222
  let toolClasses;
214
223
  let toolNode;
215
224
  if (!Array.isArray(tools)) {
@@ -218,7 +227,7 @@ export function createReactAgent(params) {
218
227
  }
219
228
  else {
220
229
  toolClasses = tools;
221
- toolNode = new ToolNode(tools);
230
+ toolNode = new ToolNode(toolClasses.filter(isClientTool));
222
231
  }
223
232
  let cachedModelRunnable = null;
224
233
  const getModelRunnable = async (llm) => {
@@ -245,19 +254,16 @@ export function createReactAgent(params) {
245
254
  // If any of the tools are configured to return_directly after running,
246
255
  // our graph needs to check if these were called
247
256
  const shouldReturnDirect = new Set(toolClasses
257
+ .filter(isClientTool)
248
258
  .filter((tool) => "returnDirect" in tool && tool.returnDirect)
249
259
  .map((tool) => tool.name));
250
- const shouldContinue = (state) => {
251
- const { messages } = state;
252
- const lastMessage = messages[messages.length - 1];
253
- if (isAIMessage(lastMessage) &&
254
- (!lastMessage.tool_calls || lastMessage.tool_calls.length === 0)) {
255
- return responseFormat != null ? "generate_structured_response" : END;
256
- }
257
- else {
258
- return "continue";
260
+ function getModelInputState(state) {
261
+ const { messages, llmInputMessages, ...rest } = state;
262
+ if (llmInputMessages != null && llmInputMessages.length > 0) {
263
+ return { messages: llmInputMessages, ...rest };
259
264
  }
260
- };
265
+ return { messages, ...rest };
266
+ }
261
267
  const generateStructuredResponse = async (state, config) => {
262
268
  if (responseFormat == null) {
263
269
  throw new Error("Attempted to generate structured output with no passed response schema. Please contact us for help.");
@@ -282,54 +288,102 @@ export function createReactAgent(params) {
282
288
  // to ensure that we can validate ConfigurableModel properly
283
289
  const modelRunnable = await getModelRunnable(llm);
284
290
  // TODO: Auto-promote streaming.
285
- const response = (await modelRunnable.invoke(state, config));
291
+ const response = (await modelRunnable.invoke(getModelInputState(state), config));
286
292
  // add agent name to the AIMessage
287
293
  // TODO: figure out if we can avoid mutating the message directly
288
294
  response.name = name;
289
295
  response.lc_kwargs.name = name;
290
296
  return { messages: [response] };
291
297
  };
292
- const workflow = new StateGraph(stateSchema ?? createReactAgentAnnotation())
293
- .addNode("agent", callModel)
294
- .addNode("tools", toolNode)
295
- .addEdge(START, "agent");
296
- if (responseFormat !== undefined) {
297
- workflow
298
- .addNode("generate_structured_response", generateStructuredResponse)
299
- .addEdge("generate_structured_response", END)
300
- .addConditionalEdges("agent", shouldContinue, {
301
- continue: "tools",
302
- [END]: END,
303
- generate_structured_response: "generate_structured_response",
298
+ const schema = stateSchema ?? createReactAgentAnnotation();
299
+ const workflow = new StateGraph(schema).addNode("tools", toolNode);
300
+ const allNodeWorkflows = workflow;
301
+ const conditionalMap = (map) => {
302
+ return Object.fromEntries(Object.entries(map).filter(([_, v]) => v != null));
303
+ };
304
+ let entrypoint = "agent";
305
+ let inputSchema;
306
+ if (preModelHook != null) {
307
+ allNodeWorkflows
308
+ .addNode("pre_model_hook", preModelHook)
309
+ .addEdge("pre_model_hook", "agent");
310
+ entrypoint = "pre_model_hook";
311
+ inputSchema = Annotation.Root({
312
+ ...schema.spec,
313
+ ...PreHookAnnotation.spec,
304
314
  });
305
315
  }
306
316
  else {
307
- workflow.addConditionalEdges("agent", shouldContinue, {
308
- continue: "tools",
309
- [END]: END,
310
- });
317
+ entrypoint = "agent";
311
318
  }
312
- const routeToolResponses = (state) => {
313
- // Check the last consecutive tool calls
314
- for (let i = state.messages.length - 1; i >= 0; i -= 1) {
315
- const message = state.messages[i];
316
- if (!isToolMessage(message)) {
317
- break;
319
+ allNodeWorkflows
320
+ .addNode("agent", callModel, { input: inputSchema })
321
+ .addEdge(START, entrypoint);
322
+ if (postModelHook != null) {
323
+ allNodeWorkflows
324
+ .addNode("post_model_hook", postModelHook)
325
+ .addEdge("agent", "post_model_hook")
326
+ .addConditionalEdges("post_model_hook", (state) => {
327
+ const { messages } = state;
328
+ const lastMessage = messages[messages.length - 1];
329
+ if (isAIMessage(lastMessage) && lastMessage.tool_calls?.length) {
330
+ return "tools";
318
331
  }
319
- // Check if this tool is configured to return directly
320
- if (message.name !== undefined && shouldReturnDirect.has(message.name)) {
332
+ if (isToolMessage(lastMessage))
333
+ return entrypoint;
334
+ if (responseFormat != null)
335
+ return "generate_structured_response";
336
+ return END;
337
+ }, conditionalMap({
338
+ tools: "tools",
339
+ [entrypoint]: entrypoint,
340
+ generate_structured_response: responseFormat != null ? "generate_structured_response" : null,
341
+ [END]: responseFormat != null ? null : END,
342
+ }));
343
+ }
344
+ if (responseFormat !== undefined) {
345
+ workflow
346
+ .addNode("generate_structured_response", generateStructuredResponse)
347
+ .addEdge("generate_structured_response", END);
348
+ }
349
+ if (postModelHook == null) {
350
+ allNodeWorkflows.addConditionalEdges("agent", (state) => {
351
+ const { messages } = state;
352
+ const lastMessage = messages[messages.length - 1];
353
+ // if there's no function call, we finish
354
+ if (!isAIMessage(lastMessage) || !lastMessage.tool_calls?.length) {
355
+ if (responseFormat != null)
356
+ return "generate_structured_response";
321
357
  return END;
322
358
  }
323
- }
324
- return "agent";
325
- };
359
+ // there are function calls, we continue
360
+ return "tools";
361
+ }, conditionalMap({
362
+ tools: "tools",
363
+ generate_structured_response: responseFormat != null ? "generate_structured_response" : null,
364
+ [END]: responseFormat != null ? null : END,
365
+ }));
366
+ }
326
367
  if (shouldReturnDirect.size > 0) {
327
- workflow.addConditionalEdges("tools", routeToolResponses, ["agent", END]);
368
+ allNodeWorkflows.addConditionalEdges("tools", (state) => {
369
+ // Check the last consecutive tool calls
370
+ for (let i = state.messages.length - 1; i >= 0; i -= 1) {
371
+ const message = state.messages[i];
372
+ if (!isToolMessage(message))
373
+ break;
374
+ // Check if this tool is configured to return directly
375
+ if (message.name !== undefined &&
376
+ shouldReturnDirect.has(message.name)) {
377
+ return END;
378
+ }
379
+ }
380
+ return entrypoint;
381
+ }, conditionalMap({ [entrypoint]: entrypoint, [END]: END }));
328
382
  }
329
383
  else {
330
- workflow.addEdge("tools", "agent");
384
+ allNodeWorkflows.addEdge("tools", entrypoint);
331
385
  }
332
- return workflow.compile({
386
+ return allNodeWorkflows.compile({
333
387
  checkpointer: checkpointer ?? checkpointSaver,
334
388
  interruptBefore,
335
389
  interruptAfter,
@@ -1 +1 @@
1
- {"version":3,"file":"react_agent_executor.js","sourceRoot":"","sources":["../../src/prebuilt/react_agent_executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react_agent_executor.js","sourceRoot":"","sources":["../../src/prebuilt/react_agent_executor.ts"],"names":[],"mappings":"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"}
@@ -62,7 +62,7 @@ function _localRead(step, checkpoint, channels, managed, task, select, fresh = f
62
62
  const localChannels = Object.fromEntries(Object.entries(channels).filter(([k, _]) => updated.has(k)));
63
63
  const newCheckpoint = (0, base_js_1.createCheckpoint)(checkpoint, localChannels, -1);
64
64
  const newChannels = (0, base_js_1.emptyChannels)(localChannels, newCheckpoint);
65
- _applyWrites((0, langgraph_checkpoint_1.copyCheckpoint)(newCheckpoint), newChannels, [task]);
65
+ _applyWrites((0, langgraph_checkpoint_1.copyCheckpoint)(newCheckpoint), newChannels, [task], undefined, undefined);
66
66
  values = (0, io_js_1.readChannels)({ ...channels, ...newChannels }, select);
67
67
  }
68
68
  else {
@@ -108,7 +108,7 @@ const IGNORE = new Set([
108
108
  ]);
109
109
  function _applyWrites(checkpoint, channels, tasks,
110
110
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
111
- getNextVersion) {
111
+ getNextVersion, triggerToNodes) {
112
112
  // Sort tasks by first 3 path elements for deterministic order
113
113
  // Later path parts (like task IDs) are ignored for sorting
114
114
  tasks.sort((a, b) => {
@@ -131,9 +131,7 @@ getNextVersion) {
131
131
  const onlyChannels = Object.fromEntries(Object.entries(channels).filter(([_, value]) => (0, base_js_1.isBaseChannel)(value)));
132
132
  // Update seen versions
133
133
  for (const task of tasks) {
134
- if (checkpoint.versions_seen[task.name] === undefined) {
135
- checkpoint.versions_seen[task.name] = {};
136
- }
134
+ checkpoint.versions_seen[task.name] ??= {};
137
135
  for (const chan of task.triggers) {
138
136
  if (chan in checkpoint.channel_versions) {
139
137
  checkpoint.versions_seen[task.name][chan] =
@@ -177,20 +175,12 @@ getNextVersion) {
177
175
  });
178
176
  }
179
177
  else if (chan in onlyChannels) {
180
- if (chan in pendingWriteValuesByChannel) {
181
- pendingWriteValuesByChannel[chan].push(val);
182
- }
183
- else {
184
- pendingWriteValuesByChannel[chan] = [val];
185
- }
178
+ pendingWriteValuesByChannel[chan] ??= [];
179
+ pendingWriteValuesByChannel[chan].push(val);
186
180
  }
187
181
  else {
188
- if (chan in pendingWritesByManaged) {
189
- pendingWritesByManaged[chan].push(val);
190
- }
191
- else {
192
- pendingWritesByManaged[chan] = [val];
193
- }
182
+ pendingWritesByManaged[chan] ??= [];
183
+ pendingWritesByManaged[chan].push(val);
194
184
  }
195
185
  }
196
186
  }
@@ -220,17 +210,38 @@ getNextVersion) {
220
210
  }
221
211
  if (updated && getNextVersion !== undefined) {
222
212
  checkpoint.channel_versions[chan] = getNextVersion(maxVersion, onlyChannels[chan]);
213
+ // unavailable channels can't trigger tasks, so don't add them
214
+ if (onlyChannels[chan].isAvailable()) {
215
+ updatedChannels.add(chan);
216
+ }
223
217
  }
224
- updatedChannels.add(chan);
225
218
  }
226
219
  }
227
220
  // Channels that weren't updated in this step are notified of a new step
228
221
  if (bumpStep) {
229
222
  for (const chan of Object.keys(onlyChannels)) {
230
- if (!updatedChannels.has(chan)) {
223
+ if (onlyChannels[chan].isAvailable() && !updatedChannels.has(chan)) {
231
224
  const updated = onlyChannels[chan].update([]);
232
225
  if (updated && getNextVersion !== undefined) {
233
226
  checkpoint.channel_versions[chan] = getNextVersion(maxVersion, onlyChannels[chan]);
227
+ // unavailable channels can't trigger tasks, so don't add them
228
+ if (onlyChannels[chan].isAvailable()) {
229
+ updatedChannels.add(chan);
230
+ }
231
+ }
232
+ }
233
+ }
234
+ }
235
+ // If this is (tentatively) the last superstep, notify all channels of finish
236
+ if (bumpStep &&
237
+ checkpoint.pending_sends.length === 0 &&
238
+ !Object.keys(triggerToNodes ?? {}).some((channel) => updatedChannels.has(channel))) {
239
+ for (const chan of Object.keys(onlyChannels)) {
240
+ if (onlyChannels[chan].finish() && getNextVersion !== undefined) {
241
+ checkpoint.channel_versions[chan] = getNextVersion(maxVersion, onlyChannels[chan]);
242
+ // unavailable channels can't trigger tasks, so don't add them
243
+ if (onlyChannels[chan].isAvailable()) {
244
+ updatedChannels.add(chan);
234
245
  }
235
246
  }
236
247
  }
@@ -333,6 +344,14 @@ function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processes, chan
333
344
  }),
334
345
  triggers,
335
346
  retry_policy: call.retry,
347
+ cache_key: call.cache
348
+ ? {
349
+ // TODO: add xxh3_128 hex digest
350
+ key: (call.cache.keyFunc ?? JSON.stringify)([call.input]),
351
+ ns: [constants_js_1.CACHE_NS_WRITES, call.name ?? "__dynamic__"],
352
+ ttl: call.cache.ttl,
353
+ }
354
+ : undefined,
336
355
  id,
337
356
  path: taskPath.slice(0, 3),
338
357
  writers: [],
@@ -435,6 +454,15 @@ function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processes, chan
435
454
  }),
436
455
  triggers,
437
456
  retry_policy: proc.retryPolicy,
457
+ cache_key: proc.cachePolicy
458
+ ? {
459
+ key: (proc.cachePolicy.keyFunc ?? JSON.stringify)([
460
+ packet.args,
461
+ ]),
462
+ ns: [constants_js_1.CACHE_NS_WRITES, proc.name ?? "__dynamic__", packet.node],
463
+ ttl: proc.cachePolicy.ttl,
464
+ }
465
+ : undefined,
438
466
  id: taskId,
439
467
  path: taskPath,
440
468
  writers: proc.getWriters(),
@@ -566,6 +594,13 @@ function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processes, chan
566
594
  }),
567
595
  triggers,
568
596
  retry_policy: proc.retryPolicy,
597
+ cache_key: proc.cachePolicy
598
+ ? {
599
+ key: (proc.cachePolicy.keyFunc ?? JSON.stringify)([val]),
600
+ ns: [constants_js_1.CACHE_NS_WRITES, proc.name ?? "__dynamic__", name],
601
+ ttl: proc.cachePolicy.ttl,
602
+ }
603
+ : undefined,
569
604
  id: taskId,
570
605
  path: taskPath,
571
606
  writers: proc.getWriters(),
@@ -573,7 +608,12 @@ function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processes, chan
573
608
  }
574
609
  }
575
610
  else {
576
- return { id: taskId, name, interrupts: [], path: taskPath };
611
+ return {
612
+ id: taskId,
613
+ name,
614
+ interrupts: [],
615
+ path: taskPath,
616
+ };
577
617
  }
578
618
  }
579
619
  }
@@ -22,7 +22,7 @@ export declare const increment: (current?: number) => number;
22
22
  export declare function shouldInterrupt<N extends PropertyKey, C extends PropertyKey>(checkpoint: Checkpoint, interruptNodes: All | N[], tasks: PregelExecutableTask<N, C>[]): boolean;
23
23
  export declare function _localRead<Cc extends Record<string, BaseChannel>>(step: number, checkpoint: ReadonlyCheckpoint, channels: Cc, managed: ManagedValueMapping, task: WritesProtocol<keyof Cc>, select: Array<keyof Cc> | keyof Cc, fresh?: boolean): Record<string, unknown> | unknown;
24
24
  export declare function _localWrite(step: number, commit: (writes: [string, any][]) => any, processes: Record<string, PregelNode>, managed: ManagedValueMapping, writes: [string, any][]): void;
25
- export declare function _applyWrites<Cc extends Record<string, BaseChannel>>(checkpoint: Checkpoint, channels: Cc, tasks: WritesProtocol<keyof Cc>[], getNextVersion?: (version: any, channel: BaseChannel) => any): Record<string, PendingWriteValue[]>;
25
+ export declare function _applyWrites<Cc extends Record<string, BaseChannel>>(checkpoint: Checkpoint, channels: Cc, tasks: WritesProtocol<keyof Cc>[], getNextVersion: ((version: any, channel: BaseChannel) => any) | undefined, triggerToNodes: Record<string, string[]> | undefined): Record<string, PendingWriteValue[]>;
26
26
  export type NextTaskExtraFields = {
27
27
  step: number;
28
28
  isResuming?: boolean;