@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 +1 @@
1
- {"version":3,"file":"messages_annotation.js","sourceRoot":"","sources":["../../src/graph/messages_annotation.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAG1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAY,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC,IAAI,CAAC;IAChD,QAAQ,EAAE,UAAU,CAA0B;QAC5C,OAAO,EAAE,oBAAoB;QAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;KAClB,CAAC;CACH,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,EAAiB,EAAE;QACjD,OAAO,EAAE;YACP,MAAM,EAAE,CAAC,CAAC,MAAM,EAAY;YAC5B,EAAE,EAAE,oBAAoB;SACzB;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;KAClB,CAAC;CACH,CAAC,CAAC"}
1
+ {"version":3,"file":"messages_annotation.js","sourceRoot":"","sources":["../../src/graph/messages_annotation.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAG1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAY,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC,IAAI,CAAC;IAChD,QAAQ,EAAE,UAAU,CAA0B;QAC5C,OAAO,EAAE,oBAAoB;QAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;KAClB,CAAC;CACH,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,EAAiB,EAAE;QACjD,OAAO,EAAE;YACP,MAAM,EAAE,CAAC,CAAC,MAAM,EAAY;YAC5B,EAAE,EAAE,oBAAoB;SACzB;QACD,eAAe,EAAE;YACf,cAAc,EAAE,UAAU;SAC3B;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;KAClB,CAAC;CACH,CAAC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CompiledStateGraph = exports.StateGraph = void 0;
4
+ exports.typedNode = typedNode;
4
5
  /* eslint-disable @typescript-eslint/no-use-before-define */
5
6
  const runnables_1 = require("@langchain/core/runnables");
6
7
  const base_js_1 = require("../channels/base.cjs");
@@ -16,7 +17,9 @@ const annotation_js_1 = require("./annotation.cjs");
16
17
  const base_js_2 = require("../managed/base.cjs");
17
18
  const subgraph_js_1 = require("../pregel/utils/subgraph.cjs");
18
19
  const state_js_1 = require("./zod/state.cjs");
20
+ const last_value_js_1 = require("../channels/last_value.cjs");
19
21
  const ROOT = "__root__";
22
+ const PartialStateSchema = Symbol.for("langgraph.state.partial");
20
23
  /**
21
24
  * A graph whose nodes communicate by reading and writing to a shared state.
22
25
  * Each node takes a defined `State` as input and returns a `Partial<State>`.
@@ -168,7 +171,7 @@ class StateGraph extends graph_js_1.Graph {
168
171
  this._schemaDefinition = stateDef;
169
172
  this._schemaRuntimeDefinition = fields.state;
170
173
  this._inputDefinition = inputDef;
171
- this._inputRuntimeDefinition = fields.input ?? fields.state.partial();
174
+ this._inputRuntimeDefinition = fields.input ?? PartialStateSchema;
172
175
  this._outputDefinition = outputDef;
173
176
  this._outputRuntimeDefinition = fields.output ?? fields.state;
174
177
  }
@@ -177,7 +180,7 @@ class StateGraph extends graph_js_1.Graph {
177
180
  this._schemaDefinition = stateDef;
178
181
  this._schemaRuntimeDefinition = fields;
179
182
  this._inputDefinition = stateDef;
180
- this._inputRuntimeDefinition = fields.partial();
183
+ this._inputRuntimeDefinition = PartialStateSchema;
181
184
  this._outputDefinition = stateDef;
182
185
  this._outputRuntimeDefinition = fields;
183
186
  }
@@ -202,7 +205,7 @@ class StateGraph extends graph_js_1.Graph {
202
205
  this._schemaDefinition = spec;
203
206
  }
204
207
  else {
205
- throw new Error("Invalid StateGraph input.");
208
+ throw new Error("Invalid StateGraph input. Make sure to pass a valid Annotation.Root or Zod schema.");
206
209
  }
207
210
  this._inputDefinition ??= this._schemaDefinition;
208
211
  this._outputDefinition ??= this._schemaDefinition;
@@ -253,7 +256,12 @@ class StateGraph extends graph_js_1.Graph {
253
256
  const nodes = (isMultipleNodes(args) // eslint-disable-line no-nested-ternary
254
257
  ? Array.isArray(args[0])
255
258
  ? args[0]
256
- : Object.entries(args[0])
259
+ : Object.entries(args[0]).map(([key, action]) => [
260
+ key,
261
+ action,
262
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
263
+ action[Symbol.for("langgraph.state.node")] ?? undefined,
264
+ ])
257
265
  : [[args[0], args[1], args[2]]]);
258
266
  if (nodes.length === 0) {
259
267
  throw new Error("No nodes provided in `addNode`");
@@ -303,9 +311,14 @@ class StateGraph extends graph_js_1.Graph {
303
311
  else {
304
312
  runnable = (0, runnables_1._coerceToRunnable)(action);
305
313
  }
314
+ let cachePolicy = options?.cachePolicy;
315
+ if (typeof cachePolicy === "boolean") {
316
+ cachePolicy = cachePolicy ? {} : undefined;
317
+ }
306
318
  const nodeSpec = {
307
319
  runnable: runnable,
308
320
  retryPolicy: options?.retryPolicy,
321
+ cachePolicy,
309
322
  metadata: options?.metadata,
310
323
  input: inputSpec ?? this._schemaDefinition,
311
324
  subgraphs: (0, subgraph_js_1.isPregelLike)(runnable)
@@ -313,6 +326,7 @@ class StateGraph extends graph_js_1.Graph {
313
326
  [runnable]
314
327
  : options?.subgraphs,
315
328
  ends: options?.ends,
329
+ defer: options?.defer,
316
330
  };
317
331
  this.nodes[key] = nodeSpec;
318
332
  }
@@ -346,7 +360,12 @@ class StateGraph extends graph_js_1.Graph {
346
360
  addSequence(nodes) {
347
361
  const parsedNodes = Array.isArray(nodes)
348
362
  ? nodes
349
- : Object.entries(nodes);
363
+ : Object.entries(nodes).map(([key, action]) => [
364
+ key,
365
+ action,
366
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
367
+ action[Symbol.for("langgraph.state.node")] ?? undefined,
368
+ ]);
350
369
  if (parsedNodes.length === 0) {
351
370
  throw new Error("Sequence requires at least one node.");
352
371
  }
@@ -364,7 +383,7 @@ class StateGraph extends graph_js_1.Graph {
364
383
  }
365
384
  return this;
366
385
  }
367
- compile({ checkpointer, store, interruptBefore, interruptAfter, name, } = {}) {
386
+ compile({ checkpointer, store, cache, interruptBefore, interruptAfter, name, } = {}) {
368
387
  // validate the graph
369
388
  this.validate([
370
389
  ...(Array.isArray(interruptBefore) ? interruptBefore : []),
@@ -392,6 +411,7 @@ class StateGraph extends graph_js_1.Graph {
392
411
  streamChannels,
393
412
  streamMode: "updates",
394
413
  store,
414
+ cache,
395
415
  name,
396
416
  });
397
417
  // attach nodes, edges and branches
@@ -551,7 +571,9 @@ class CompiledStateGraph extends graph_js_1.CompiledGraph {
551
571
  const inputValues = Object.fromEntries(Object.keys(this.builder._schemaDefinitions.get(inputDefinition)).map((k) => [k, k]));
552
572
  const isSingleInput = Object.keys(inputValues).length === 1 && ROOT in inputValues;
553
573
  const branchChannel = `branch:to:${key}`;
554
- this.channels[branchChannel] = new ephemeral_value_js_1.EphemeralValue(false);
574
+ this.channels[branchChannel] = node?.defer
575
+ ? new last_value_js_1.LastValueAfterFinish()
576
+ : new ephemeral_value_js_1.EphemeralValue(false);
555
577
  this.nodes[key] = new read_js_1.PregelNode({
556
578
  triggers: [branchChannel],
557
579
  // read state keys
@@ -567,27 +589,29 @@ class CompiledStateGraph extends graph_js_1.CompiledGraph {
567
589
  bound: node?.runnable,
568
590
  metadata: node?.metadata,
569
591
  retryPolicy: node?.retryPolicy,
592
+ cachePolicy: node?.cachePolicy,
570
593
  subgraphs: node?.subgraphs,
571
594
  ends: node?.ends,
572
595
  });
573
596
  }
574
597
  }
575
- attachEdge(start, end) {
598
+ attachEdge(starts, end) {
576
599
  if (end === constants_js_1.END)
577
600
  return;
578
- if (typeof start === "string") {
579
- this.nodes[start].writers.push(new write_js_1.ChannelWrite([{ channel: `branch:to:${end}`, value: null }], [constants_js_1.TAG_HIDDEN]));
601
+ if (typeof starts === "string") {
602
+ this.nodes[starts].writers.push(new write_js_1.ChannelWrite([{ channel: `branch:to:${end}`, value: null }], [constants_js_1.TAG_HIDDEN]));
580
603
  }
581
- else if (Array.isArray(start)) {
582
- const channelName = `join:${start.join("+")}:${end}`;
604
+ else if (Array.isArray(starts)) {
605
+ const channelName = `join:${starts.join("+")}:${end}`;
583
606
  // register channel
584
- this.channels[channelName] =
585
- new named_barrier_value_js_1.NamedBarrierValue(new Set(start));
607
+ this.channels[channelName] = this.builder.nodes[end].defer
608
+ ? new named_barrier_value_js_1.NamedBarrierValueAfterFinish(new Set(starts))
609
+ : new named_barrier_value_js_1.NamedBarrierValue(new Set(starts));
586
610
  // subscribe to channel
587
611
  this.nodes[end].triggers.push(channelName);
588
612
  // publish to channel
589
- for (const s of start) {
590
- this.nodes[s].writers.push(new write_js_1.ChannelWrite([{ channel: channelName, value: s }], [constants_js_1.TAG_HIDDEN]));
613
+ for (const start of starts) {
614
+ this.nodes[start].writers.push(new write_js_1.ChannelWrite([{ channel: channelName, value: start }], [constants_js_1.TAG_HIDDEN]));
591
615
  }
592
616
  }
593
617
  }
@@ -599,7 +623,7 @@ class CompiledStateGraph extends graph_js_1.CompiledGraph {
599
623
  const writes = filteredPackets.map((p) => {
600
624
  if ((0, constants_js_1._isSend)(p))
601
625
  return p;
602
- return { channel: `branch:to:${p}`, value: start };
626
+ return { channel: p === constants_js_1.END ? p : `branch:to:${p}`, value: start };
603
627
  });
604
628
  await write_js_1.ChannelWrite.doWrite({ ...config, tags: (config.tags ?? []).concat([constants_js_1.TAG_HIDDEN]) }, writes);
605
629
  };
@@ -611,15 +635,30 @@ class CompiledStateGraph extends graph_js_1.CompiledGraph {
611
635
  : undefined));
612
636
  }
613
637
  async _validateInput(input) {
614
- const inputSchema = this.builder._inputRuntimeDefinition;
638
+ if (input == null)
639
+ return input;
640
+ const schema = (() => {
641
+ const input = this.builder._inputRuntimeDefinition;
642
+ const schema = this.builder._schemaRuntimeDefinition;
643
+ const apply = (schema) => {
644
+ if (schema == null)
645
+ return undefined;
646
+ return (0, state_js_1.applyZodPlugin)(schema, { reducer: true });
647
+ };
648
+ if ((0, state_js_1.isAnyZodObject)(input))
649
+ return apply(input);
650
+ if (input === PartialStateSchema)
651
+ return apply(schema)?.partial();
652
+ return undefined;
653
+ })();
615
654
  if ((0, constants_js_1.isCommand)(input)) {
616
655
  const parsedInput = input;
617
- if (input.update && (0, state_js_1.isAnyZodObject)(inputSchema))
618
- parsedInput.update = inputSchema.parse(input.update);
656
+ if (input.update && schema != null)
657
+ parsedInput.update = schema.parse(input.update);
619
658
  return parsedInput;
620
659
  }
621
- if ((0, state_js_1.isAnyZodObject)(inputSchema))
622
- return inputSchema.parse(input);
660
+ if (schema != null)
661
+ return schema.parse(input);
623
662
  return input;
624
663
  }
625
664
  async _validateConfigurable(config) {
@@ -720,4 +759,10 @@ function _getControlBranch() {
720
759
  path: CONTROL_BRANCH_PATH,
721
760
  });
722
761
  }
762
+ function typedNode(_state, _options) {
763
+ return (func, options) => {
764
+ Object.assign(func, { [Symbol.for("langgraph.state.node")]: options });
765
+ return func;
766
+ };
767
+ }
723
768
  //# sourceMappingURL=state.js.map
@@ -1,10 +1,10 @@
1
1
  import { RunnableLike } from "@langchain/core/runnables";
2
- import { All, BaseCheckpointSaver, BaseStore } from "@langchain/langgraph-checkpoint";
2
+ import { All, type BaseCache, BaseCheckpointSaver, BaseStore } from "@langchain/langgraph-checkpoint";
3
3
  import { BaseChannel } from "../channels/base.js";
4
4
  import { CompiledGraph, Graph, Branch, AddNodeOptions, NodeSpec } from "./graph.js";
5
- import { END, START } from "../constants.js";
5
+ import { Command, END, START } from "../constants.js";
6
6
  import { AnnotationRoot, SingleReducer, StateDefinition, StateType, UpdateType } from "./annotation.js";
7
- import type { RetryPolicy } from "../pregel/utils/index.js";
7
+ import type { CachePolicy, RetryPolicy } from "../pregel/utils/index.js";
8
8
  import { ManagedValueSpec } from "../managed/base.js";
9
9
  import type { LangGraphRunnableConfig } from "../pregel/runnable_types.js";
10
10
  import { AnyZodObject, ZodToStateDefinition } from "./zod/state.js";
@@ -21,11 +21,13 @@ export interface StateGraphArgs<Channels extends object | unknown> {
21
21
  export type StateGraphNodeSpec<RunInput, RunOutput> = NodeSpec<RunInput, RunOutput> & {
22
22
  input?: StateDefinition;
23
23
  retryPolicy?: RetryPolicy;
24
+ cachePolicy?: CachePolicy;
24
25
  };
25
- export type StateGraphAddNodeOptions = {
26
+ export type StateGraphAddNodeOptions<Nodes extends string = string> = {
26
27
  retryPolicy?: RetryPolicy;
28
+ cachePolicy?: CachePolicy | boolean;
27
29
  input?: AnnotationRoot<any> | AnyZodObject;
28
- } & AddNodeOptions;
30
+ } & AddNodeOptions<Nodes>;
29
31
  export type StateGraphArgsWithStateSchema<SD extends StateDefinition, I extends StateDefinition, O extends StateDefinition> = {
30
32
  stateSchema: AnnotationRoot<SD>;
31
33
  input?: AnnotationRoot<I>;
@@ -44,6 +46,8 @@ type SDZod = StateDefinition | AnyZodObject;
44
46
  type ToStateDefinition<T> = T extends AnyZodObject ? ZodToStateDefinition<T> : T extends StateDefinition ? T : never;
45
47
  type NodeAction<S, U, C extends SDZod> = RunnableLike<S, U extends object ? U & Record<string, any> : U, // eslint-disable-line @typescript-eslint/no-explicit-any
46
48
  LangGraphRunnableConfig<StateType<ToStateDefinition<C>>>>;
49
+ declare const PartialStateSchema: unique symbol;
50
+ type PartialStateSchema = typeof PartialStateSchema;
47
51
  /**
48
52
  * A graph whose nodes communicate by reading and writing to a shared state.
49
53
  * Each node takes a defined `State` as input and returns a `Partial<State>`.
@@ -116,7 +120,7 @@ export declare class StateGraph<SD extends SDZod | unknown, S = SD extends SDZod
116
120
  /** @internal */
117
121
  _inputDefinition: I;
118
122
  /** @internal */
119
- _inputRuntimeDefinition: AnyZodObject | undefined;
123
+ _inputRuntimeDefinition: AnyZodObject | PartialStateSchema | undefined;
120
124
  /** @internal */
121
125
  _outputDefinition: O;
122
126
  /** @internal */
@@ -148,9 +152,10 @@ export declare class StateGraph<SD extends SDZod | unknown, S = SD extends SDZod
148
152
  options?: StateGraphAddNodeOptions
149
153
  ][]): StateGraph<SD, S, U, N | K, I, O, C>;
150
154
  addSequence<K extends string>(nodes: Record<K, NodeAction<S, U, C>>): StateGraph<SD, S, U, N | K, I, O, C>;
151
- compile({ checkpointer, store, interruptBefore, interruptAfter, name, }?: {
155
+ compile({ checkpointer, store, cache, interruptBefore, interruptAfter, name, }?: {
152
156
  checkpointer?: BaseCheckpointSaver | false;
153
157
  store?: BaseStore;
158
+ cache?: BaseCache;
154
159
  interruptBefore?: N[] | All;
155
160
  interruptAfter?: N[] | All;
156
161
  name?: string;
@@ -165,11 +170,20 @@ export declare class CompiledStateGraph<S, U, N extends string = typeof START, I
165
170
  builder: StateGraph<unknown, S, U, N, I, O, C>;
166
171
  attachNode(key: typeof START, node?: never): void;
167
172
  attachNode(key: N, node: StateGraphNodeSpec<S, U>): void;
168
- attachEdge(start: N | N[] | "__start__", end: N | "__end__"): void;
173
+ attachEdge(starts: N | N[] | "__start__", end: N | "__end__"): void;
169
174
  attachBranch(start: N | typeof START, _: string, branch: Branch<S, N>, options?: {
170
175
  withReader?: boolean;
171
176
  }): void;
172
177
  protected _validateInput(input: UpdateType<ToStateDefinition<I>>): Promise<UpdateType<ToStateDefinition<I>>>;
173
178
  protected _validateConfigurable(config: Partial<LangGraphRunnableConfig["configurable"]>): Promise<LangGraphRunnableConfig["configurable"]>;
174
179
  }
180
+ type TypedNodeAction<SD extends StateDefinition, Nodes extends string, C extends StateDefinition = StateDefinition> = RunnableLike<StateType<SD>, UpdateType<SD> | Command<unknown, UpdateType<SD>, Nodes>, LangGraphRunnableConfig<StateType<C>>>;
181
+ export declare function typedNode<SD extends SDZod, Nodes extends string, C extends SDZod = StateDefinition>(_state: SD extends StateDefinition ? AnnotationRoot<SD> : never, _options?: {
182
+ nodes?: Nodes[];
183
+ config?: C extends StateDefinition ? AnnotationRoot<C> : never;
184
+ }): (func: TypedNodeAction<ToStateDefinition<SD>, Nodes, ToStateDefinition<C>>, options?: StateGraphAddNodeOptions<Nodes>) => TypedNodeAction<ToStateDefinition<SD>, Nodes, ToStateDefinition<C>>;
185
+ export declare function typedNode<SD extends SDZod, Nodes extends string, C extends SDZod = StateDefinition>(_state: SD extends AnyZodObject ? SD : never, _options?: {
186
+ nodes?: Nodes[];
187
+ config?: C extends AnyZodObject ? C : never;
188
+ }): (func: TypedNodeAction<ToStateDefinition<SD>, Nodes, ToStateDefinition<C>>, options?: StateGraphAddNodeOptions<Nodes>) => TypedNodeAction<ToStateDefinition<SD>, Nodes, ToStateDefinition<C>>;
175
189
  export {};
@@ -4,7 +4,7 @@ import { isBaseChannel } from "../channels/base.js";
4
4
  import { CompiledGraph, Graph, Branch, } from "./graph.js";
5
5
  import { ChannelWrite, PASSTHROUGH, } from "../pregel/write.js";
6
6
  import { ChannelRead, PregelNode } from "../pregel/read.js";
7
- import { NamedBarrierValue } from "../channels/named_barrier_value.js";
7
+ import { NamedBarrierValue, NamedBarrierValueAfterFinish, } from "../channels/named_barrier_value.js";
8
8
  import { EphemeralValue } from "../channels/ephemeral_value.js";
9
9
  import { RunnableCallable } from "../utils.js";
10
10
  import { isCommand, _isSend, CHECKPOINT_NAMESPACE_END, CHECKPOINT_NAMESPACE_SEPARATOR, Command, END, SELF, START, TAG_HIDDEN, } from "../constants.js";
@@ -12,8 +12,10 @@ import { InvalidUpdateError, ParentCommand } from "../errors.js";
12
12
  import { getChannel, } from "./annotation.js";
13
13
  import { isConfiguredManagedValue } from "../managed/base.js";
14
14
  import { isPregelLike } from "../pregel/utils/subgraph.js";
15
- import { getChannelsFromZod, isAnyZodObject, } from "./zod/state.js";
15
+ import { getChannelsFromZod, applyZodPlugin, isAnyZodObject, } from "./zod/state.js";
16
+ import { LastValueAfterFinish } from "../channels/last_value.js";
16
17
  const ROOT = "__root__";
18
+ const PartialStateSchema = Symbol.for("langgraph.state.partial");
17
19
  /**
18
20
  * A graph whose nodes communicate by reading and writing to a shared state.
19
21
  * Each node takes a defined `State` as input and returns a `Partial<State>`.
@@ -165,7 +167,7 @@ export class StateGraph extends Graph {
165
167
  this._schemaDefinition = stateDef;
166
168
  this._schemaRuntimeDefinition = fields.state;
167
169
  this._inputDefinition = inputDef;
168
- this._inputRuntimeDefinition = fields.input ?? fields.state.partial();
170
+ this._inputRuntimeDefinition = fields.input ?? PartialStateSchema;
169
171
  this._outputDefinition = outputDef;
170
172
  this._outputRuntimeDefinition = fields.output ?? fields.state;
171
173
  }
@@ -174,7 +176,7 @@ export class StateGraph extends Graph {
174
176
  this._schemaDefinition = stateDef;
175
177
  this._schemaRuntimeDefinition = fields;
176
178
  this._inputDefinition = stateDef;
177
- this._inputRuntimeDefinition = fields.partial();
179
+ this._inputRuntimeDefinition = PartialStateSchema;
178
180
  this._outputDefinition = stateDef;
179
181
  this._outputRuntimeDefinition = fields;
180
182
  }
@@ -199,7 +201,7 @@ export class StateGraph extends Graph {
199
201
  this._schemaDefinition = spec;
200
202
  }
201
203
  else {
202
- throw new Error("Invalid StateGraph input.");
204
+ throw new Error("Invalid StateGraph input. Make sure to pass a valid Annotation.Root or Zod schema.");
203
205
  }
204
206
  this._inputDefinition ??= this._schemaDefinition;
205
207
  this._outputDefinition ??= this._schemaDefinition;
@@ -250,7 +252,12 @@ export class StateGraph extends Graph {
250
252
  const nodes = (isMultipleNodes(args) // eslint-disable-line no-nested-ternary
251
253
  ? Array.isArray(args[0])
252
254
  ? args[0]
253
- : Object.entries(args[0])
255
+ : Object.entries(args[0]).map(([key, action]) => [
256
+ key,
257
+ action,
258
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
259
+ action[Symbol.for("langgraph.state.node")] ?? undefined,
260
+ ])
254
261
  : [[args[0], args[1], args[2]]]);
255
262
  if (nodes.length === 0) {
256
263
  throw new Error("No nodes provided in `addNode`");
@@ -300,9 +307,14 @@ export class StateGraph extends Graph {
300
307
  else {
301
308
  runnable = _coerceToRunnable(action);
302
309
  }
310
+ let cachePolicy = options?.cachePolicy;
311
+ if (typeof cachePolicy === "boolean") {
312
+ cachePolicy = cachePolicy ? {} : undefined;
313
+ }
303
314
  const nodeSpec = {
304
315
  runnable: runnable,
305
316
  retryPolicy: options?.retryPolicy,
317
+ cachePolicy,
306
318
  metadata: options?.metadata,
307
319
  input: inputSpec ?? this._schemaDefinition,
308
320
  subgraphs: isPregelLike(runnable)
@@ -310,6 +322,7 @@ export class StateGraph extends Graph {
310
322
  [runnable]
311
323
  : options?.subgraphs,
312
324
  ends: options?.ends,
325
+ defer: options?.defer,
313
326
  };
314
327
  this.nodes[key] = nodeSpec;
315
328
  }
@@ -343,7 +356,12 @@ export class StateGraph extends Graph {
343
356
  addSequence(nodes) {
344
357
  const parsedNodes = Array.isArray(nodes)
345
358
  ? nodes
346
- : Object.entries(nodes);
359
+ : Object.entries(nodes).map(([key, action]) => [
360
+ key,
361
+ action,
362
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
363
+ action[Symbol.for("langgraph.state.node")] ?? undefined,
364
+ ]);
347
365
  if (parsedNodes.length === 0) {
348
366
  throw new Error("Sequence requires at least one node.");
349
367
  }
@@ -361,7 +379,7 @@ export class StateGraph extends Graph {
361
379
  }
362
380
  return this;
363
381
  }
364
- compile({ checkpointer, store, interruptBefore, interruptAfter, name, } = {}) {
382
+ compile({ checkpointer, store, cache, interruptBefore, interruptAfter, name, } = {}) {
365
383
  // validate the graph
366
384
  this.validate([
367
385
  ...(Array.isArray(interruptBefore) ? interruptBefore : []),
@@ -389,6 +407,7 @@ export class StateGraph extends Graph {
389
407
  streamChannels,
390
408
  streamMode: "updates",
391
409
  store,
410
+ cache,
392
411
  name,
393
412
  });
394
413
  // attach nodes, edges and branches
@@ -547,7 +566,9 @@ export class CompiledStateGraph extends CompiledGraph {
547
566
  const inputValues = Object.fromEntries(Object.keys(this.builder._schemaDefinitions.get(inputDefinition)).map((k) => [k, k]));
548
567
  const isSingleInput = Object.keys(inputValues).length === 1 && ROOT in inputValues;
549
568
  const branchChannel = `branch:to:${key}`;
550
- this.channels[branchChannel] = new EphemeralValue(false);
569
+ this.channels[branchChannel] = node?.defer
570
+ ? new LastValueAfterFinish()
571
+ : new EphemeralValue(false);
551
572
  this.nodes[key] = new PregelNode({
552
573
  triggers: [branchChannel],
553
574
  // read state keys
@@ -563,27 +584,29 @@ export class CompiledStateGraph extends CompiledGraph {
563
584
  bound: node?.runnable,
564
585
  metadata: node?.metadata,
565
586
  retryPolicy: node?.retryPolicy,
587
+ cachePolicy: node?.cachePolicy,
566
588
  subgraphs: node?.subgraphs,
567
589
  ends: node?.ends,
568
590
  });
569
591
  }
570
592
  }
571
- attachEdge(start, end) {
593
+ attachEdge(starts, end) {
572
594
  if (end === END)
573
595
  return;
574
- if (typeof start === "string") {
575
- this.nodes[start].writers.push(new ChannelWrite([{ channel: `branch:to:${end}`, value: null }], [TAG_HIDDEN]));
596
+ if (typeof starts === "string") {
597
+ this.nodes[starts].writers.push(new ChannelWrite([{ channel: `branch:to:${end}`, value: null }], [TAG_HIDDEN]));
576
598
  }
577
- else if (Array.isArray(start)) {
578
- const channelName = `join:${start.join("+")}:${end}`;
599
+ else if (Array.isArray(starts)) {
600
+ const channelName = `join:${starts.join("+")}:${end}`;
579
601
  // register channel
580
- this.channels[channelName] =
581
- new NamedBarrierValue(new Set(start));
602
+ this.channels[channelName] = this.builder.nodes[end].defer
603
+ ? new NamedBarrierValueAfterFinish(new Set(starts))
604
+ : new NamedBarrierValue(new Set(starts));
582
605
  // subscribe to channel
583
606
  this.nodes[end].triggers.push(channelName);
584
607
  // publish to channel
585
- for (const s of start) {
586
- this.nodes[s].writers.push(new ChannelWrite([{ channel: channelName, value: s }], [TAG_HIDDEN]));
608
+ for (const start of starts) {
609
+ this.nodes[start].writers.push(new ChannelWrite([{ channel: channelName, value: start }], [TAG_HIDDEN]));
587
610
  }
588
611
  }
589
612
  }
@@ -595,7 +618,7 @@ export class CompiledStateGraph extends CompiledGraph {
595
618
  const writes = filteredPackets.map((p) => {
596
619
  if (_isSend(p))
597
620
  return p;
598
- return { channel: `branch:to:${p}`, value: start };
621
+ return { channel: p === END ? p : `branch:to:${p}`, value: start };
599
622
  });
600
623
  await ChannelWrite.doWrite({ ...config, tags: (config.tags ?? []).concat([TAG_HIDDEN]) }, writes);
601
624
  };
@@ -607,15 +630,30 @@ export class CompiledStateGraph extends CompiledGraph {
607
630
  : undefined));
608
631
  }
609
632
  async _validateInput(input) {
610
- const inputSchema = this.builder._inputRuntimeDefinition;
633
+ if (input == null)
634
+ return input;
635
+ const schema = (() => {
636
+ const input = this.builder._inputRuntimeDefinition;
637
+ const schema = this.builder._schemaRuntimeDefinition;
638
+ const apply = (schema) => {
639
+ if (schema == null)
640
+ return undefined;
641
+ return applyZodPlugin(schema, { reducer: true });
642
+ };
643
+ if (isAnyZodObject(input))
644
+ return apply(input);
645
+ if (input === PartialStateSchema)
646
+ return apply(schema)?.partial();
647
+ return undefined;
648
+ })();
611
649
  if (isCommand(input)) {
612
650
  const parsedInput = input;
613
- if (input.update && isAnyZodObject(inputSchema))
614
- parsedInput.update = inputSchema.parse(input.update);
651
+ if (input.update && schema != null)
652
+ parsedInput.update = schema.parse(input.update);
615
653
  return parsedInput;
616
654
  }
617
- if (isAnyZodObject(inputSchema))
618
- return inputSchema.parse(input);
655
+ if (schema != null)
656
+ return schema.parse(input);
619
657
  return input;
620
658
  }
621
659
  async _validateConfigurable(config) {
@@ -715,4 +753,10 @@ function _getControlBranch() {
715
753
  path: CONTROL_BRANCH_PATH,
716
754
  });
717
755
  }
756
+ export function typedNode(_state, _options) {
757
+ return (func, options) => {
758
+ Object.assign(func, { [Symbol.for("langgraph.state.node")]: options });
759
+ return func;
760
+ };
761
+ }
718
762
  //# sourceMappingURL=state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/graph/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/graph/state.ts"],"names":[],"mappings":"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"}