@langchain/langgraph 1.4.0 → 1.4.2

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 (43) hide show
  1. package/dist/constants.cjs +1 -0
  2. package/dist/constants.js +1 -1
  3. package/dist/graph/graph.cjs +3 -3
  4. package/dist/graph/graph.cjs.map +1 -1
  5. package/dist/graph/graph.js +1 -1
  6. package/dist/graph/graph.js.map +1 -1
  7. package/dist/graph/messages_reducer.cjs +3 -3
  8. package/dist/graph/messages_reducer.cjs.map +1 -1
  9. package/dist/graph/messages_reducer.js +1 -1
  10. package/dist/graph/messages_reducer.js.map +1 -1
  11. package/dist/graph/state.cjs +34 -5
  12. package/dist/graph/state.cjs.map +1 -1
  13. package/dist/graph/state.d.cts.map +1 -1
  14. package/dist/graph/state.d.ts.map +1 -1
  15. package/dist/graph/state.js +36 -7
  16. package/dist/graph/state.js.map +1 -1
  17. package/dist/prebuilt/tool_node.cjs +69 -6
  18. package/dist/prebuilt/tool_node.cjs.map +1 -1
  19. package/dist/prebuilt/tool_node.d.cts +55 -3
  20. package/dist/prebuilt/tool_node.d.cts.map +1 -1
  21. package/dist/prebuilt/tool_node.d.ts +55 -3
  22. package/dist/prebuilt/tool_node.d.ts.map +1 -1
  23. package/dist/prebuilt/tool_node.js +69 -6
  24. package/dist/prebuilt/tool_node.js.map +1 -1
  25. package/dist/pregel/loop.cjs +2 -2
  26. package/dist/pregel/loop.cjs.map +1 -1
  27. package/dist/pregel/loop.js +1 -1
  28. package/dist/pregel/loop.js.map +1 -1
  29. package/dist/pregel/utils/config.cjs +15 -1
  30. package/dist/pregel/utils/config.cjs.map +1 -1
  31. package/dist/pregel/utils/config.d.cts +15 -1
  32. package/dist/pregel/utils/config.d.cts.map +1 -1
  33. package/dist/pregel/utils/config.d.ts +15 -1
  34. package/dist/pregel/utils/config.d.ts.map +1 -1
  35. package/dist/pregel/utils/config.js +15 -1
  36. package/dist/pregel/utils/config.js.map +1 -1
  37. package/dist/state/schema.cjs +12 -2
  38. package/dist/state/schema.cjs.map +1 -1
  39. package/dist/state/schema.d.cts.map +1 -1
  40. package/dist/state/schema.d.ts.map +1 -1
  41. package/dist/state/schema.js +12 -2
  42. package/dist/state/schema.js.map +1 -1
  43. package/package.json +3 -5
@@ -1 +1 @@
1
- {"version":3,"file":"state.cjs","names":["Graph","schemaMetaRegistry","StateGraphInputError","StateSchema","coerceTimeoutPolicy","RunnableCallable","CONFIG_KEY_NODE_ERROR","isStateGraphInit","AnnotationRoot","isStateDefinitionInit","Runnable","isPregelLike","START","EphemeralValue","SELF","getChannel","CompiledGraph","isCommand","Command","InvalidUpdateError","PASSTHROUGH","PregelNode","TAG_HIDDEN","ChannelWrite","LastValueAfterFinish","NamedBarrierValueAfterFinish","NamedBarrierValue","END","_isSend","ChannelRead","isInterrupted","ParentCommand","Branch"],"sources":["../../src/graph/state.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\nimport { _coerceToRunnable, Runnable } from \"@langchain/core/runnables\";\nimport {\n All,\n type BaseCache,\n BaseCheckpointSaver,\n BaseStore,\n} from \"@langchain/langgraph-checkpoint\";\nimport {\n type InteropZodObject,\n interopParse,\n interopZodObjectPartial,\n isInteropZodObject,\n} from \"@langchain/core/utils/types\";\nimport type {\n RunnableLike,\n LangGraphRunnableConfig,\n Runtime,\n} from \"../pregel/runnable_types.js\";\nimport { BaseChannel } from \"../channels/base.js\";\nimport {\n CompiledGraph,\n Graph,\n Branch,\n AddNodeOptions,\n NodeSpec,\n NodeErrorHandler,\n} from \"./graph.js\";\nimport {\n ChannelWrite,\n ChannelWriteEntry,\n ChannelWriteTupleEntry,\n PASSTHROUGH,\n} from \"../pregel/write.js\";\nimport { ChannelRead, PregelNode } from \"../pregel/read.js\";\nimport {\n NamedBarrierValue,\n NamedBarrierValueAfterFinish,\n} from \"../channels/named_barrier_value.js\";\nimport { EphemeralValue } from \"../channels/ephemeral_value.js\";\nimport { RunnableCallable } from \"../utils.js\";\nimport {\n isCommand,\n _isSend,\n CHECKPOINT_NAMESPACE_END,\n CHECKPOINT_NAMESPACE_SEPARATOR,\n Command,\n SELF,\n Send,\n START,\n END,\n TAG_HIDDEN,\n CommandInstance,\n isInterrupted,\n Interrupt,\n INTERRUPT,\n CONFIG_KEY_NODE_ERROR,\n} from \"../constants.js\";\nimport {\n InvalidUpdateError,\n NodeError,\n ParentCommand,\n StateGraphInputError,\n} from \"../errors.js\";\nimport {\n AnnotationRoot,\n getChannel,\n SingleReducer,\n StateDefinition,\n StateType,\n} from \"./annotation.js\";\nimport { StateSchema } from \"../state/index.js\";\nimport type {\n CachePolicy,\n RetryPolicy,\n TimeoutPolicy,\n} from \"../pregel/utils/index.js\";\nimport { coerceTimeoutPolicy } from \"../pregel/utils/index.js\";\nimport { isPregelLike } from \"../pregel/utils/subgraph.js\";\nimport { LastValueAfterFinish } from \"../channels/last_value.js\";\nimport { type SchemaMetaRegistry, schemaMetaRegistry } from \"./zod/meta.js\";\nimport type {\n InferInterruptResumeType,\n InferInterruptInputType,\n} from \"../interrupt.js\";\nimport type { InferWriterType } from \"../writer.js\";\nimport type { AnyStateSchema } from \"../state/schema.js\";\nimport {\n ContextSchemaInit,\n ExtractStateType,\n ExtractUpdateType,\n isStateDefinitionInit,\n isStateGraphInit,\n StateGraphInit,\n StateGraphOptions,\n ToStateDefinition,\n type StateDefinitionInit,\n} from \"./types.js\";\nimport type { StreamTransformer } from \"../stream/types.js\";\nimport type { Pregel } from \"../pregel/index.js\";\n\nconst ROOT = \"__root__\";\n\n/**\n * Reserved node name for the single shared error handler that is materialized\n * when a graph-wide default error handler is set via\n * {@link StateGraph.setNodeDefaults}. Every regular node that lacks its own\n * `errorHandler` routes failures to this node. Mirrors Python's\n * `__default_error_handler__`.\n */\nconst DEFAULT_ERROR_HANDLER_NODE = \"__default_error_handler__\";\n\nexport type ChannelReducers<Channels extends object> = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [K in keyof Channels]: SingleReducer<Channels[K], any>;\n};\n\nexport interface StateGraphArgs<Channels extends object | unknown> {\n channels: Channels extends object\n ? Channels extends unknown[]\n ? ChannelReducers<{ __root__: Channels }>\n : ChannelReducers<Channels>\n : ChannelReducers<{ __root__: Channels }>;\n}\n\n/**\n * Retry and cache policies configurable on graph nodes.\n *\n * Use with {@link StateGraph.addNode} for per-node overrides, or with\n * {@link StateGraph.setNodeDefaults} for graph-wide defaults applied at\n * `compile()` time. Per-node values always take precedence over defaults.\n * `setNodeDefaults` may be called before or after `addNode`, including as the\n * last step before `compile()`.\n */\nexport type NodePolicyOptions = {\n /**\n * Retry policy controlling backoff, max attempts, and which errors trigger\n * a retry.\n *\n * @see {@link RetryPolicy}\n */\n retryPolicy?: RetryPolicy;\n /**\n * Cache policy controlling how node results are keyed and how long they\n * persist.\n *\n * - Pass a {@link CachePolicy} object for fine-grained control (e.g. custom\n * `keyFunc`, `ttl`).\n * - Pass `true` to enable caching with default settings.\n * - Pass `false` to disable caching.\n *\n * @see {@link CachePolicy}\n */\n cachePolicy?: CachePolicy | boolean;\n /**\n * Maximum duration for a single attempt of this node. Accepts a number of\n * milliseconds (a hard wall-clock cap) or a {@link TimeoutPolicy} for finer\n * control over run / idle timeouts. When exceeded, a {@link NodeTimeoutError}\n * is raised and the node's retry policy (if any) decides whether to retry.\n *\n * @see {@link TimeoutPolicy}\n */\n timeout?: number | TimeoutPolicy;\n};\n\n/**\n * Resolved retry and cache policies stored on a node after boolean\n * `cachePolicy` shorthand is normalized.\n *\n * @internal\n */\nexport type NodePolicies = {\n retryPolicy?: RetryPolicy;\n /** `false` opts out of graph defaults set via {@link StateGraph.setNodeDefaults}. */\n cachePolicy?: CachePolicy | false;\n /** Resolved timeout policy after the `number` shorthand is normalized. */\n timeout?: TimeoutPolicy;\n};\n\n/**\n * Graph-wide node defaults captured by {@link StateGraph.setNodeDefaults} and\n * resolved at {@link StateGraph.compile} time.\n *\n * @internal\n */\ntype ResolvedNodeDefaults = NodePolicies & {\n /**\n * Default error handler applied to every regular node that does not set its\n * own via `addNode(..., { errorHandler })`. Never applied to error-handler\n * nodes themselves — handlers must not catch their own failures.\n */\n errorHandler?: NodeErrorHandler;\n};\n\nexport type StateGraphNodeSpec<RunInput, RunOutput> = NodeSpec<\n RunInput,\n RunOutput\n> &\n NodePolicies & {\n input?: StateDefinition;\n };\n\n/**\n * Options for StateGraph.addNode() method.\n *\n * @template Nodes - Node name constraints\n * @template InputSchema - Per-node input schema type (inferred from options.input)\n * @template HandlerState - State type passed to the node-level error handler\n * @template Update - The update type the error handler may return\n */\nexport type StateGraphAddNodeOptions<\n Nodes extends string = string,\n InputSchema extends StateDefinitionInit | undefined =\n | StateDefinitionInit\n | undefined,\n HandlerState = InputSchema extends StateDefinitionInit\n ? ExtractStateType<InputSchema>\n : unknown,\n Update = unknown,\n> = {\n input?: InputSchema;\n /**\n * Optional node-level error handler. Runs only after this node's\n * {@link RetryPolicy} is exhausted. Receives a {@link NodeError} with the\n * failed node name and error, and may return a state update or `Command`.\n */\n errorHandler?: NodeErrorHandler<HandlerState, Update, Nodes>;\n} & NodePolicyOptions &\n AddNodeOptions<Nodes>;\n\ntype StateGraphAddNodeOptionsWithNodeInput<\n Nodes extends string,\n NodeInput,\n Update = unknown,\n> = StateGraphAddNodeOptions<\n Nodes,\n StateDefinitionInit | undefined,\n NodeInput,\n Update\n>;\n\nexport type StateGraphArgsWithStateSchema<\n SD extends StateDefinition,\n I extends StateDefinition,\n O extends StateDefinition,\n> = {\n stateSchema: AnnotationRoot<SD>;\n input?: AnnotationRoot<I>;\n output?: AnnotationRoot<O>;\n};\n\nexport type StateGraphArgsWithInputOutputSchemas<\n SD extends StateDefinition,\n O extends StateDefinition = SD,\n> = {\n input: AnnotationRoot<SD>;\n output: AnnotationRoot<O>;\n};\n\ntype ExtractStateDefinition<T> = T extends AnyStateSchema\n ? T // Keep StateSchema as-is to preserve type information\n : T extends StateDefinitionInit\n ? ToStateDefinition<T>\n : StateDefinition;\n\ntype NodeAction<\n S,\n U,\n C extends StateDefinitionInit,\n InterruptType,\n WriterType,\n> = RunnableLike<\n S,\n U extends object ? U & Record<string, any> : U, // eslint-disable-line @typescript-eslint/no-explicit-any\n Runtime<StateType<ToStateDefinition<C>>, InterruptType, WriterType>\n>;\n\ntype StrictNodeAction<\n S,\n U,\n C extends StateDefinitionInit,\n Nodes extends string,\n InterruptType,\n WriterType,\n> = RunnableLike<\n Prettify<S>,\n | U\n | Command<\n InferInterruptResumeType<InterruptType>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n U & Record<string, any>,\n Nodes\n >,\n Runtime<StateType<ToStateDefinition<C>>, InterruptType, WriterType>\n>;\n\nconst PartialStateSchema = Symbol.for(\"langgraph.state.partial\");\ntype PartialStateSchema = typeof PartialStateSchema;\n\ntype MergeReturnType<Prev, Curr> = Prev & Curr extends infer T\n ? { [K in keyof T]: T[K] } & unknown\n : never;\n\ntype Prettify<T> = {\n [K in keyof T]: T[K];\n // eslint-disable-next-line @typescript-eslint/ban-types\n} & {};\n\n/**\n * A graph whose nodes communicate by reading and writing to a shared state.\n * Each node takes a defined `State` as input and returns a `Partial<State>`.\n *\n * Each state key can optionally be annotated with a reducer function that\n * will be used to aggregate the values of that key received from multiple nodes.\n * The signature of a reducer function is (left: Value, right: UpdateValue) => Value.\n *\n * See {@link Annotation} for more on defining state.\n *\n * After adding nodes and edges to your graph, you must call `.compile()` on it before\n * you can use it.\n *\n * @typeParam SD - The state definition used to construct the graph. Can be an\n * {@link AnnotationRoot}, {@link StateSchema}, or Zod object schema. This is the\n * primary generic from which `S` and `U` are derived.\n *\n * @typeParam S - The full state type representing the complete shape of your graph's\n * state after all reducers have been applied. Automatically inferred from `SD`.\n *\n * @typeParam U - The update type representing what nodes can return to modify state.\n * Typically a partial of the state type. Automatically inferred from `SD`.\n *\n * @typeParam N - Union of all node names in the graph (e.g., `\"agent\" | \"tool\"`).\n * Accumulated as you call `.addNode()`. Used for type-safe routing.\n *\n * @typeParam I - The input schema definition. Set via the `input` option in the\n * constructor to restrict what data the graph accepts when invoked.\n *\n * @typeParam O - The output schema definition. Set via the `output` option in the\n * constructor to restrict what data the graph returns after execution.\n *\n * @typeParam C - The config/context schema definition. Set via the `context` option\n * to define additional configuration passed at runtime.\n *\n * @typeParam NodeReturnType - Constrains what types nodes in this graph can return.\n *\n * @typeParam InterruptType - The type for {@link interrupt} resume values. Set via\n * the `interrupt` option for typed human-in-the-loop patterns.\n *\n * @typeParam WriterType - The type for custom stream writers. Set via the `writer`\n * option to enable typed custom streaming from within nodes.\n *\n * @example\n * ```ts\n * import {\n * type BaseMessage,\n * AIMessage,\n * HumanMessage,\n * } from \"@langchain/core/messages\";\n * import { StateGraph, Annotation } from \"@langchain/langgraph\";\n *\n * // Define a state with a single key named \"messages\" that will\n * // combine a returned BaseMessage or arrays of BaseMessages\n * const StateAnnotation = Annotation.Root({\n * sentiment: Annotation<string>,\n * messages: Annotation<BaseMessage[]>({\n * reducer: (left: BaseMessage[], right: BaseMessage | BaseMessage[]) => {\n * if (Array.isArray(right)) {\n * return left.concat(right);\n * }\n * return left.concat([right]);\n * },\n * default: () => [],\n * }),\n * });\n *\n * const graphBuilder = new StateGraph(StateAnnotation);\n *\n * // A node in the graph that returns an object with a \"messages\" key\n * // will update the state by combining the existing value with the returned one.\n * const myNode = (state: typeof StateAnnotation.State) => {\n * return {\n * messages: [new AIMessage(\"Some new response\")],\n * sentiment: \"positive\",\n * };\n * };\n *\n * const graph = graphBuilder\n * .addNode(\"myNode\", myNode)\n * .addEdge(\"__start__\", \"myNode\")\n * .addEdge(\"myNode\", \"__end__\")\n * .compile();\n *\n * await graph.invoke({ messages: [new HumanMessage(\"how are you?\")] });\n *\n * // {\n * // messages: [HumanMessage(\"how are you?\"), AIMessage(\"Some new response\")],\n * // sentiment: \"positive\",\n * // }\n * ```\n */\nexport class StateGraph<\n SD extends StateDefinitionInit | unknown,\n S = ExtractStateType<SD>,\n U = ExtractUpdateType<SD, S>,\n N extends string = typeof START,\n I extends StateDefinitionInit = ExtractStateDefinition<SD>,\n O extends StateDefinitionInit = ExtractStateDefinition<SD>,\n C extends StateDefinitionInit = StateDefinition,\n NodeReturnType = unknown,\n InterruptType = unknown,\n WriterType = unknown,\n> extends Graph<N, S, U, StateGraphNodeSpec<S, U>, ToStateDefinition<C>> {\n channels: Record<string, BaseChannel> = {};\n\n // TODO: this doesn't dedupe edges as in py, so worth fixing at some point\n waitingEdges: Set<[N[], N]> = new Set();\n\n /** @internal */\n _schemaDefinition: StateDefinition;\n\n /** @internal */\n _schemaRuntimeDefinition: InteropZodObject | AnyStateSchema | undefined;\n\n /** @internal */\n _inputDefinition: I;\n\n /** @internal */\n _inputRuntimeDefinition:\n | InteropZodObject\n | AnyStateSchema\n | PartialStateSchema\n | undefined;\n\n /** @internal */\n _outputDefinition: O;\n\n /** @internal */\n _outputRuntimeDefinition: InteropZodObject | AnyStateSchema | undefined;\n\n /**\n * Map schemas to managed values\n * @internal\n */\n _schemaDefinitions = new Map();\n\n /** @internal */\n _metaRegistry: SchemaMetaRegistry = schemaMetaRegistry;\n\n /** @internal Used only for typing. */\n _configSchema: ToStateDefinition<C> | undefined;\n\n /** @internal */\n _configRuntimeSchema: InteropZodObject | undefined;\n\n /** @internal */\n _interrupt: InterruptType;\n\n /** @internal */\n _writer: WriterType;\n\n /**\n * Graph-wide default node policies, resolved at `compile()` time.\n * @internal\n */\n _nodeDefaults: ResolvedNodeDefaults = {};\n\n declare Node: StrictNodeAction<S, U, C, N, InterruptType, WriterType>;\n\n /**\n * Create a new StateGraph for building stateful, multi-step workflows.\n *\n * Accepts state definitions via `Annotation.Root`, `StateSchema`, or Zod schemas.\n *\n * @example Direct schema\n * ```ts\n * const StateAnnotation = Annotation.Root({\n * messages: Annotation<string[]>({ reducer: (a, b) => [...a, ...b] }),\n * });\n * const graph = new StateGraph(StateAnnotation);\n * ```\n *\n * @example Direct schema with input/output filtering\n * ```ts\n * const graph = new StateGraph(StateAnnotation, {\n * input: InputSchema,\n * output: OutputSchema,\n * });\n * ```\n *\n * @example Object pattern with state, input, output\n * ```ts\n * const graph = new StateGraph({\n * state: FullStateSchema,\n * input: InputSchema,\n * output: OutputSchema,\n * });\n * ```\n *\n * @example Input/output only (state inferred from input)\n * ```ts\n * const graph = new StateGraph({\n * input: InputAnnotation,\n * output: OutputAnnotation,\n * });\n * ```\n */\n constructor(\n state: SD extends StateDefinitionInit ? SD : never,\n options?:\n | C\n | AnnotationRoot<ToStateDefinition<C>>\n | StateGraphOptions<I, O, C, N, InterruptType, WriterType>\n );\n\n constructor(\n fields: SD extends StateDefinition\n ? StateGraphArgsWithInputOutputSchemas<SD, ToStateDefinition<O>>\n : never,\n contextSchema?: C | AnnotationRoot<ToStateDefinition<C>>\n );\n\n constructor(\n fields: SD extends StateDefinition\n ?\n | AnnotationRoot<SD>\n | StateGraphArgsWithStateSchema<\n SD,\n ToStateDefinition<I>,\n ToStateDefinition<O>\n >\n : never,\n contextSchema?: C | AnnotationRoot<ToStateDefinition<C>>\n );\n\n constructor(\n init: Omit<\n StateGraphInit<\n SD extends StateDefinitionInit ? SD : StateDefinitionInit,\n SD extends StateDefinitionInit ? SD : StateDefinitionInit,\n O,\n C extends ContextSchemaInit ? C : undefined,\n N,\n InterruptType,\n WriterType\n >,\n \"state\" | \"stateSchema\" | \"input\"\n > & {\n input: SD extends StateDefinitionInit ? SD : never;\n state?: never;\n stateSchema?: never;\n },\n contextSchema?: C | AnnotationRoot<ToStateDefinition<C>>\n );\n\n constructor(\n init: StateGraphInit<\n SD extends StateDefinitionInit ? SD : StateDefinitionInit,\n I,\n O,\n C extends ContextSchemaInit ? C : undefined,\n N,\n InterruptType,\n WriterType\n >\n );\n\n /** @deprecated Use `Annotation.Root`, `StateSchema`, or Zod schemas instead. */\n constructor(\n fields: StateGraphArgs<S>,\n contextSchema?: C | AnnotationRoot<ToStateDefinition<C>>\n );\n\n constructor(\n stateOrInit:\n | StateDefinitionInit\n | StateGraphInit<StateDefinitionInit, I, O>\n | StateGraphArgs<S>,\n options?:\n | C\n | AnnotationRoot<ToStateDefinition<C>>\n | StateGraphOptions<\n I,\n O,\n C extends ContextSchemaInit ? C : undefined,\n N,\n InterruptType,\n WriterType\n >\n ) {\n super();\n\n // Normalize all input patterns to StateGraphInit format\n const init = this._normalizeToStateGraphInit(stateOrInit, options);\n\n // Resolve state schema: state > stateSchema (deprecated) > input\n const stateSchema = init.state ?? init.stateSchema ?? init.input;\n if (!stateSchema) {\n throw new StateGraphInputError();\n }\n\n // Get channel definitions from the schema (may contain channel factories)\n const stateChannelDef = this._getChannelsFromSchema(stateSchema);\n\n // Set schema definitions (these may contain channel factories)\n this._schemaDefinition = stateChannelDef;\n\n // Set runtime definitions for validation\n if (StateSchema.isInstance(stateSchema)) {\n this._schemaRuntimeDefinition = stateSchema;\n } else if (isInteropZodObject(stateSchema)) {\n this._schemaRuntimeDefinition = stateSchema;\n }\n\n // Set input runtime definition\n if (init.input) {\n if (StateSchema.isInstance(init.input)) {\n this._inputRuntimeDefinition = init.input;\n } else if (isInteropZodObject(init.input)) {\n this._inputRuntimeDefinition = init.input;\n } else {\n this._inputRuntimeDefinition = PartialStateSchema;\n }\n } else {\n this._inputRuntimeDefinition = PartialStateSchema;\n }\n\n // Set output runtime definition\n if (init.output) {\n if (StateSchema.isInstance(init.output)) {\n this._outputRuntimeDefinition = init.output;\n } else if (isInteropZodObject(init.output)) {\n this._outputRuntimeDefinition = init.output;\n } else {\n this._outputRuntimeDefinition = this._schemaRuntimeDefinition;\n }\n } else {\n this._outputRuntimeDefinition = this._schemaRuntimeDefinition;\n }\n\n // Set input/output definitions (default to state)\n const inputChannelDef = init.input\n ? this._getChannelsFromSchema(init.input)\n : stateChannelDef;\n const outputChannelDef = init.output\n ? (this._getChannelsFromSchema(init.output) as O)\n : stateChannelDef;\n this._inputDefinition = inputChannelDef as I;\n this._outputDefinition = outputChannelDef as O;\n\n // Add all schemas (_addSchema instantiates channel factories and populates this.channels)\n this._addSchema(this._schemaDefinition);\n this._addSchema(this._inputDefinition);\n this._addSchema(this._outputDefinition);\n\n // Handle context schema\n if (init.context) {\n if (isInteropZodObject(init.context)) {\n this._configRuntimeSchema = init.context;\n }\n }\n\n // Handle interrupt and writer\n this._interrupt = init.interrupt as InterruptType;\n this._writer = init.writer as WriterType;\n }\n\n /**\n * Set graph-wide default node policies that apply to every node in this\n * graph.\n *\n * Per-node values passed to {@link addNode} always take precedence over these\n * defaults. Defaults are resolved at {@link compile} time, so call order does\n * not matter — you may call this before or after `addNode`, including as the\n * last step before `compile()`. Calling it multiple times merges the provided\n * fields, with later calls overriding earlier ones on a per-field basis.\n *\n * Policies set here are **not** inherited by subgraphs.\n *\n * `retryPolicy` and `timeout` defaults apply to **all** nodes, including\n * auto-generated error-handler nodes. `cachePolicy` and `errorHandler`\n * defaults apply to **regular nodes only** — caching an error-handler result\n * is unsafe, and a handler must never catch its own (or another handler's)\n * failure.\n *\n * @param defaults - The default node policies to apply.\n * @returns The builder instance, for chaining.\n *\n * @example Call before `addNode`\n * ```ts\n * const graph = new StateGraph(State)\n * .setNodeDefaults({\n * retryPolicy: { maxAttempts: 3 },\n * cachePolicy: { ttl: 60 },\n * timeout: 60_000,\n * errorHandler: (state, { node, error }) => ({ lastError: error.message }),\n * })\n * .addNode(\"a\", nodeA)\n * .addNode(\"b\", nodeB, { retryPolicy: { maxAttempts: 5 } }) // overrides default\n * .addEdge(START, \"a\")\n * .compile();\n * ```\n *\n * @example Call after `addNode`, immediately before `compile()`\n * ```ts\n * const graph = new StateGraph(State)\n * .addNode(\"a\", nodeA)\n * .addNode(\"b\", nodeB, { retryPolicy: { maxAttempts: 5 } }) // overrides default\n * .addEdge(START, \"a\")\n * .setNodeDefaults({\n * retryPolicy: { maxAttempts: 3 },\n * cachePolicy: { ttl: 60 },\n * })\n * .compile();\n * ```\n */\n setNodeDefaults(\n defaults: NodePolicyOptions & {\n /**\n * Default node-level error handler invoked when any **regular** node\n * raises and does not have its own handler set via\n * `addNode(..., { errorHandler })`. Runs only after the failing node's\n * retry policy is exhausted. It is never invoked when an error-handler\n * node itself raises — handler failures fail the run.\n *\n * Because a single shared handler serves every node, its `state`\n * argument is typed as `unknown`: at runtime it receives the **failing\n * node's input** (see `addNode(..., { input })`), which may be a subset\n * of the graph state and differs per node. Narrow it yourself before\n * reading fields. The handler may still return a graph-level update (`U`)\n * or route via `new Command({ goto })` to any node (`N`).\n */\n errorHandler?: NodeErrorHandler<unknown, U, N>;\n }\n ): this {\n if (defaults.retryPolicy !== undefined) {\n this._nodeDefaults.retryPolicy = defaults.retryPolicy;\n }\n if (defaults.cachePolicy !== undefined) {\n this._nodeDefaults.cachePolicy =\n typeof defaults.cachePolicy === \"boolean\"\n ? defaults.cachePolicy\n ? {}\n : undefined\n : defaults.cachePolicy;\n }\n if (defaults.timeout !== undefined) {\n this._nodeDefaults.timeout = coerceTimeoutPolicy(defaults.timeout);\n }\n if (defaults.errorHandler !== undefined) {\n this._nodeDefaults.errorHandler =\n defaults.errorHandler as NodeErrorHandler;\n }\n return this;\n }\n\n /**\n * Build the shared spec for a graph-wide default error handler, or\n * `undefined` when {@link setNodeDefaults} did not configure one. The spec is\n * installed under {@link DEFAULT_ERROR_HANDLER_NODE} for the duration of a\n * single {@link compile} call and routes failures from every regular node\n * that lacks its own handler.\n * @internal\n */\n protected _createDefaultErrorHandlerSpec():\n | StateGraphNodeSpec<S, U>\n | undefined {\n const userHandler = this._nodeDefaults.errorHandler;\n if (userHandler === undefined) {\n return undefined;\n }\n const handlerRunnable = new RunnableCallable({\n func: (state: unknown, config: LangGraphRunnableConfig) => {\n // Per-task failure context, injected when the handler task is prepared\n // (see _prepareNodeErrorHandlerTask). `state` is the failing node's\n // input, which may be a per-node subset of the graph state — hence the\n // handler's `state` parameter is typed `unknown`.\n const nodeError = config?.configurable?.[CONFIG_KEY_NODE_ERROR] as\n | NodeError\n | undefined;\n return userHandler(state, nodeError as NodeError, config);\n },\n name: DEFAULT_ERROR_HANDLER_NODE,\n trace: false,\n });\n return {\n runnable: handlerRunnable as unknown as Runnable<S, U>,\n metadata: undefined,\n input: this._schemaDefinition,\n retryPolicy: undefined,\n cachePolicy: undefined,\n isErrorHandler: true,\n };\n }\n\n /**\n * Normalize all constructor input patterns to a unified StateGraphInit object.\n * @internal\n */\n private _normalizeToStateGraphInit(\n stateOrInit: unknown,\n options?: unknown\n ): StateGraphInit<StateDefinitionInit, I, O, C> {\n // Check if already StateGraphInit format\n if (isStateGraphInit(stateOrInit)) {\n // Second arg can be either a direct context schema or an options object\n if (isInteropZodObject(options) || AnnotationRoot.isInstance(options)) {\n return {\n ...stateOrInit,\n context: options as C,\n };\n }\n // Merge any 2nd arg options\n const opts = options as StateGraphOptions<I, O> | undefined;\n return {\n ...stateOrInit,\n input: stateOrInit.input ?? opts?.input,\n output: stateOrInit.output ?? opts?.output,\n context: stateOrInit.context ?? opts?.context,\n interrupt: stateOrInit.interrupt ?? opts?.interrupt,\n writer: stateOrInit.writer ?? opts?.writer,\n nodes: stateOrInit.nodes ?? opts?.nodes,\n } as StateGraphInit<StateDefinitionInit, I, O, C>;\n }\n\n // Check if direct schema (StateSchema, Zod, Annotation, StateDefinition)\n if (isStateDefinitionInit(stateOrInit)) {\n // Second arg can be either a direct context schema or an options object\n if (isInteropZodObject(options) || AnnotationRoot.isInstance(options)) {\n return {\n state: stateOrInit,\n context: options as C,\n };\n }\n const opts = options as StateGraphOptions<I, O> | undefined;\n return {\n state: stateOrInit as StateDefinitionInit,\n input: opts?.input as I,\n output: opts?.output as O,\n context: opts?.context,\n interrupt: opts?.interrupt,\n writer: opts?.writer,\n nodes: opts?.nodes,\n };\n }\n\n // Check for legacy { channels } format\n if (isStateGraphArgs(stateOrInit as StateGraphArgs<S>)) {\n const legacyArgs = stateOrInit as StateGraphArgs<S>;\n const spec = _getChannels(legacyArgs.channels);\n return {\n state: spec as StateDefinitionInit,\n };\n }\n\n throw new StateGraphInputError();\n }\n\n /**\n * Convert any supported schema type to a StateDefinition (channel map).\n * @internal\n */\n private _getChannelsFromSchema(schema: StateDefinitionInit): StateDefinition {\n if (StateSchema.isInstance(schema)) {\n return schema.getChannels();\n }\n\n if (isInteropZodObject(schema)) {\n return this._metaRegistry.getChannelsForSchema(schema);\n }\n\n // AnnotationRoot - has .spec property that is the StateDefinition\n if (\n typeof schema === \"object\" &&\n \"lc_graph_name\" in schema &&\n (schema as { lc_graph_name: unknown }).lc_graph_name === \"AnnotationRoot\"\n ) {\n return (schema as AnnotationRoot<StateDefinition>).spec;\n }\n\n // StateDefinition (raw channel map) - return as-is\n if (\n typeof schema === \"object\" &&\n !Array.isArray(schema) &&\n Object.keys(schema).length > 0\n ) {\n return schema as StateDefinition;\n }\n\n throw new StateGraphInputError(\n \"Invalid schema type. Expected StateSchema, Zod object, AnnotationRoot, or StateDefinition.\"\n );\n }\n\n get allEdges(): Set<[string, string]> {\n return new Set([\n ...this.edges,\n ...Array.from(this.waitingEdges).flatMap(([starts, end]) =>\n starts.map((start) => [start, end] as [string, string])\n ),\n ]);\n }\n\n _addSchema(stateDefinition: StateDefinitionInit) {\n if (this._schemaDefinitions.has(stateDefinition)) {\n return;\n }\n // TODO: Support managed values\n this._schemaDefinitions.set(stateDefinition, stateDefinition);\n for (const [key, val] of Object.entries(stateDefinition)) {\n let channel;\n if (typeof val === \"function\") {\n channel = val();\n } else {\n channel = val;\n }\n if (this.channels[key] !== undefined) {\n if (!this.channels[key].equals(channel)) {\n if (channel.lc_graph_name !== \"LastValue\") {\n throw new Error(\n `Channel \"${key}\" already exists with a different type.`\n );\n }\n }\n } else {\n this.channels[key] = channel;\n }\n }\n }\n\n override addNode<\n K extends string,\n NodeMap extends Record<K, NodeAction<S, U, C, InterruptType, WriterType>>,\n >(\n nodes: NodeMap\n ): StateGraph<\n SD,\n S,\n U,\n N | K,\n I,\n O,\n C,\n MergeReturnType<\n NodeReturnType,\n {\n [key in keyof NodeMap]: NodeMap[key] extends NodeAction<\n S,\n infer U,\n C,\n InterruptType,\n WriterType\n >\n ? U\n : never;\n }\n >\n >;\n\n override addNode<K extends string, NodeInput = S, NodeOutput extends U = U>(\n nodes: [\n key: K,\n action: NodeAction<NodeInput, NodeOutput, C, InterruptType, WriterType>,\n options?: StateGraphAddNodeOptionsWithNodeInput<N | K, NodeInput, U>,\n ][]\n ): StateGraph<\n SD,\n S,\n U,\n N | K,\n I,\n O,\n C,\n MergeReturnType<NodeReturnType, { [key in K]: NodeOutput }>\n >;\n\n override addNode<\n K extends string,\n InputSchema extends StateDefinitionInit,\n NodeOutput extends U = U,\n >(\n key: K,\n action: NodeAction<\n ExtractStateType<InputSchema>,\n NodeOutput,\n C,\n InterruptType,\n WriterType\n >,\n options: StateGraphAddNodeOptions<\n N | K,\n InputSchema,\n ExtractStateType<InputSchema>,\n U\n >\n ): StateGraph<\n SD,\n S,\n U,\n N | K,\n I,\n O,\n C,\n MergeReturnType<NodeReturnType, { [key in K]: NodeOutput }>\n >;\n\n override addNode<\n K extends string,\n InputSchema extends StateDefinitionInit,\n NodeOutput extends U = U,\n >(\n key: K,\n action: NodeAction<\n ExtractStateType<InputSchema>,\n NodeOutput,\n C,\n InterruptType,\n WriterType\n >,\n options: StateGraphAddNodeOptions<\n N | K,\n InputSchema,\n ExtractStateType<InputSchema>,\n U\n >\n ): StateGraph<\n SD,\n S,\n U,\n N | K,\n I,\n O,\n C,\n MergeReturnType<NodeReturnType, { [key in K]: NodeOutput }>\n >;\n\n override addNode<K extends string, NodeInput = S, NodeOutput extends U = U>(\n key: K,\n action: NodeAction<NodeInput, NodeOutput, C, InterruptType, WriterType>,\n options?: StateGraphAddNodeOptionsWithNodeInput<N | K, NodeInput, U>\n ): StateGraph<\n SD,\n S,\n U,\n N | K,\n I,\n O,\n C,\n MergeReturnType<NodeReturnType, { [key in K]: NodeOutput }>\n >;\n\n override addNode<K extends string, NodeInput = S>(\n key: K,\n action: NodeAction<NodeInput, U, C, InterruptType, WriterType>,\n options?: StateGraphAddNodeOptionsWithNodeInput<N | K, NodeInput, U>\n ): StateGraph<SD, S, U, N | K, I, O, C, NodeReturnType>;\n\n override addNode<K extends string, NodeInput = S, NodeOutput extends U = U>(\n ...args:\n | [\n key: K,\n action: NodeAction<\n NodeInput,\n NodeOutput,\n C,\n InterruptType,\n WriterType\n >,\n options?: StateGraphAddNodeOptionsWithNodeInput<N | K, NodeInput, U>,\n ]\n | [\n nodes:\n | Record<K, NodeAction<NodeInput, U, C, InterruptType, WriterType>>\n | [\n key: K,\n action: NodeAction<NodeInput, U, C, InterruptType, WriterType>,\n options?: StateGraphAddNodeOptionsWithNodeInput<\n N | K,\n NodeInput,\n U\n >,\n ][],\n ]\n ): StateGraph<SD, S, U, N | K, I, O, C> {\n function isMultipleNodes(\n args: unknown[]\n ): args is [\n nodes:\n | Record<K, NodeAction<NodeInput, U, C, InterruptType, WriterType>>\n | [\n key: K,\n action: NodeAction<NodeInput, U, C, InterruptType, WriterType>,\n options?: StateGraphAddNodeOptionsWithNodeInput<\n N | K,\n NodeInput,\n U\n >,\n ][],\n ] {\n return args.length >= 1 && typeof args[0] !== \"string\";\n }\n\n const nodes = (\n isMultipleNodes(args) // eslint-disable-line no-nested-ternary\n ? Array.isArray(args[0])\n ? args[0]\n : Object.entries(args[0]).map(([key, action]) => [key, action])\n : [[args[0], args[1], args[2]]]\n ) as [\n K,\n NodeAction<NodeInput, U, C, InterruptType, WriterType>,\n StateGraphAddNodeOptionsWithNodeInput<N | K, NodeInput, U> | undefined,\n ][];\n\n if (nodes.length === 0) {\n throw new Error(\"No nodes provided in `addNode`\");\n }\n\n for (const [key, action, options] of nodes) {\n if (key in this.channels) {\n throw new Error(\n `${key} is already being used as a state attribute (a.k.a. a channel), cannot also be used as a node name.`\n );\n }\n\n for (const reservedChar of [\n CHECKPOINT_NAMESPACE_SEPARATOR,\n CHECKPOINT_NAMESPACE_END,\n ]) {\n if (key.includes(reservedChar)) {\n throw new Error(\n `\"${reservedChar}\" is a reserved character and is not allowed in node names.`\n );\n }\n }\n this.warnIfCompiled(\n `Adding a node to a graph that has already been compiled. This will not be reflected in the compiled graph.`\n );\n\n if (key in this.nodes) {\n throw new Error(`Node \\`${key}\\` already present.`);\n }\n if (key === END || key === START) {\n throw new Error(`Node \\`${key}\\` is reserved.`);\n }\n\n let inputSpec: StateDefinition = this._schemaDefinition;\n if (options?.input !== undefined) {\n inputSpec = this._getChannelsFromSchema(options.input);\n }\n this._addSchema(inputSpec);\n\n let runnable;\n if (Runnable.isRunnable(action)) {\n runnable = action;\n } else if (typeof action === \"function\") {\n runnable = new RunnableCallable({\n func: action,\n name: key,\n trace: false,\n });\n } else {\n runnable = _coerceToRunnable(action);\n }\n\n const rawCachePolicy = options?.cachePolicy;\n let cachePolicy: CachePolicy | false | undefined;\n if (rawCachePolicy !== undefined) {\n cachePolicy =\n typeof rawCachePolicy === \"boolean\"\n ? rawCachePolicy\n ? {}\n : false\n : rawCachePolicy;\n }\n\n // If an error handler is provided, register an auto-generated handler\n // node that runs only after this node's retry policy is exhausted.\n let errorHandlerNode: string | undefined;\n if (options?.errorHandler !== undefined) {\n errorHandlerNode = `__error_handler__${key}`;\n if (errorHandlerNode in this.nodes) {\n throw new Error(\n `Cannot add error handler to node \\`${key}\\`: the reserved name \\`${errorHandlerNode}\\` is already in use. ` +\n `StateGraph registers \\`__error_handler__<nodeName>\\` when you pass \\`errorHandler\\` in addNode options. ` +\n `Remove or rename the existing node with that name (for example, you may have added it manually).`\n );\n }\n const userHandler = options.errorHandler;\n const handlerRunnable = new RunnableCallable({\n func: (state: unknown, config: LangGraphRunnableConfig) => {\n // Per-task failure context, injected when the handler task is\n // prepared (see _prepareNodeErrorHandlerTask).\n const nodeError = config?.configurable?.[CONFIG_KEY_NODE_ERROR] as\n | NodeError\n | undefined;\n return userHandler(\n state as NodeInput,\n nodeError as NodeError,\n config\n );\n },\n name: errorHandlerNode,\n trace: false,\n });\n const handlerSpec: StateGraphNodeSpec<S, U> = {\n runnable: handlerRunnable as unknown as Runnable<S, U>,\n metadata: undefined,\n input: inputSpec ?? this._schemaDefinition,\n retryPolicy: undefined,\n cachePolicy: undefined,\n isErrorHandler: true,\n };\n this.nodes[errorHandlerNode as N] = handlerSpec;\n }\n\n const nodeSpec: StateGraphNodeSpec<S, U> = {\n runnable: runnable as unknown as Runnable<S, U>,\n retryPolicy: options?.retryPolicy,\n cachePolicy,\n timeout: coerceTimeoutPolicy(options?.timeout),\n metadata: options?.metadata,\n input: inputSpec ?? this._schemaDefinition,\n subgraphs: isPregelLike(runnable)\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [runnable as Pregel<any, any>]\n : options?.subgraphs,\n ends: options?.ends,\n defer: options?.defer,\n errorHandlerNode,\n };\n\n this.nodes[key as unknown as N] = nodeSpec;\n }\n\n return this as StateGraph<SD, S, U, N | K, I, O, C>;\n }\n\n override addEdge(\n startKey: typeof START | N | N[],\n endKey: N | typeof END\n ): this {\n if (typeof startKey === \"string\") {\n return super.addEdge(startKey, endKey);\n }\n\n if (this.compiled) {\n console.warn(\n \"Adding an edge to a graph that has already been compiled. This will \" +\n \"not be reflected in the compiled graph.\"\n );\n }\n\n for (const start of startKey) {\n if (start === END) {\n throw new Error(\"END cannot be a start node\");\n }\n if (!Object.keys(this.nodes).some((node) => node === start)) {\n throw new Error(`Need to add a node named \"${start}\" first`);\n }\n }\n if (endKey === END) {\n throw new Error(\"END cannot be an end node\");\n }\n if (!Object.keys(this.nodes).some((node) => node === endKey)) {\n throw new Error(`Need to add a node named \"${endKey}\" first`);\n }\n\n this.waitingEdges.add([startKey, endKey]);\n\n return this;\n }\n\n addSequence<K extends string, NodeInput = S, NodeOutput extends U = U>(\n nodes: [\n key: K,\n action: NodeAction<NodeInput, NodeOutput, C, InterruptType, WriterType>,\n options?: StateGraphAddNodeOptionsWithNodeInput<N | K, NodeInput, U>,\n ][]\n ): StateGraph<\n SD,\n S,\n U,\n N | K,\n I,\n O,\n C,\n MergeReturnType<NodeReturnType, { [key in K]: NodeOutput }>\n >;\n\n addSequence<\n K extends string,\n NodeMap extends Record<K, NodeAction<S, U, C, InterruptType, WriterType>>,\n >(\n nodes: NodeMap\n ): StateGraph<\n SD,\n S,\n U,\n N | K,\n I,\n O,\n C,\n MergeReturnType<\n NodeReturnType,\n {\n [key in keyof NodeMap]: NodeMap[key] extends NodeAction<\n S,\n infer U,\n C,\n InterruptType,\n WriterType\n >\n ? U\n : never;\n }\n >\n >;\n\n addSequence<K extends string, NodeInput = S, NodeOutput extends U = U>(\n nodes:\n | [\n key: K,\n action: NodeAction<\n NodeInput,\n NodeOutput,\n C,\n InterruptType,\n WriterType\n >,\n options?: StateGraphAddNodeOptionsWithNodeInput<N | K, NodeInput, U>,\n ][]\n | Record<\n K,\n NodeAction<NodeInput, NodeOutput, C, InterruptType, WriterType>\n >\n ): StateGraph<\n SD,\n S,\n U,\n N | K,\n I,\n O,\n C,\n MergeReturnType<NodeReturnType, { [key in K]: NodeOutput }>\n > {\n const parsedNodes = Array.isArray(nodes) ? nodes : Object.entries(nodes);\n\n if (parsedNodes.length === 0) {\n throw new Error(\"Sequence requires at least one node.\");\n }\n\n let previousNode: N | undefined;\n for (const [key, action, options] of parsedNodes) {\n if (key in this.nodes) {\n throw new Error(\n `Node names must be unique: node with the name \"${key}\" already exists.`\n );\n }\n\n const validKey = key as unknown as N;\n this.addNode(\n key as K,\n action as NodeAction<\n NodeInput,\n NodeOutput,\n C,\n InterruptType,\n WriterType\n >,\n options\n );\n if (previousNode != null) {\n this.addEdge(previousNode, validKey);\n }\n\n previousNode = validKey;\n }\n\n return this as StateGraph<\n SD,\n S,\n U,\n N | K,\n I,\n O,\n C,\n MergeReturnType<NodeReturnType, { [key in K]: NodeOutput }>\n >;\n }\n\n override compile<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const TTransformers extends ReadonlyArray<() => StreamTransformer<any>> =\n [],\n >({\n checkpointer,\n store,\n cache,\n interruptBefore,\n interruptAfter,\n name,\n description,\n transformers,\n }: {\n checkpointer?: BaseCheckpointSaver | boolean;\n store?: BaseStore;\n cache?: BaseCache;\n interruptBefore?: N[] | All;\n interruptAfter?: N[] | All;\n name?: string;\n description?: string;\n /**\n * Stream transformer factories baked into the compiled graph. These run\n * automatically for every `streamEvents(..., { version: \"v3\" })` call,\n * before any call-site transformers.\n */\n transformers?: TTransformers;\n } = {}): CompiledStateGraph<\n Prettify<S>,\n Prettify<U>,\n N,\n I,\n O,\n C,\n NodeReturnType,\n InterruptType,\n WriterType,\n TTransformers\n > {\n // Materialize the single shared default error-handler node (when\n // `setNodeDefaults({ errorHandler })` configured one) BEFORE validation so\n // reachability and `Command({ goto })` target checks treat it like any\n // other error-handler node. It is removed in `finally` so the builder stays\n // immutable across repeated `compile()` calls.\n const defaultErrorHandlerSpec = this._createDefaultErrorHandlerSpec();\n if (defaultErrorHandlerSpec !== undefined) {\n if (DEFAULT_ERROR_HANDLER_NODE in this.nodes) {\n throw new Error(\n `Cannot apply a default error handler: the reserved node name ` +\n `\\`${DEFAULT_ERROR_HANDLER_NODE}\\` is already in use. ` +\n `setNodeDefaults({ errorHandler }) registers a node with that name; ` +\n `rename the conflicting node.`\n );\n }\n this.nodes[DEFAULT_ERROR_HANDLER_NODE as N] = defaultErrorHandlerSpec;\n }\n\n try {\n return this._compileResolved({\n checkpointer,\n store,\n cache,\n interruptBefore,\n interruptAfter,\n name,\n description,\n transformers,\n defaultErrorHandlerNode:\n defaultErrorHandlerSpec !== undefined\n ? DEFAULT_ERROR_HANDLER_NODE\n : undefined,\n });\n } finally {\n if (defaultErrorHandlerSpec !== undefined) {\n delete this.nodes[DEFAULT_ERROR_HANDLER_NODE as N];\n }\n }\n }\n\n /** @internal */\n protected _compileResolved<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const TTransformers extends ReadonlyArray<() => StreamTransformer<any>> =\n [],\n >({\n checkpointer,\n store,\n cache,\n interruptBefore,\n interruptAfter,\n name,\n description,\n transformers,\n defaultErrorHandlerNode,\n }: {\n checkpointer?: BaseCheckpointSaver | boolean;\n store?: BaseStore;\n cache?: BaseCache;\n interruptBefore?: N[] | All;\n interruptAfter?: N[] | All;\n name?: string;\n description?: string;\n transformers?: TTransformers;\n defaultErrorHandlerNode?: string;\n }): CompiledStateGraph<\n Prettify<S>,\n Prettify<U>,\n N,\n I,\n O,\n C,\n NodeReturnType,\n InterruptType,\n WriterType,\n TTransformers\n > {\n // validate the graph\n this.validate([\n ...(Array.isArray(interruptBefore) ? interruptBefore : []),\n ...(Array.isArray(interruptAfter) ? interruptAfter : []),\n ]);\n\n // prepare output channels\n const outputKeys = Object.keys(\n this._schemaDefinitions.get(this._outputDefinition)\n );\n const outputChannels =\n outputKeys.length === 1 && outputKeys[0] === ROOT ? ROOT : outputKeys;\n\n const streamKeys = Object.keys(this.channels);\n const streamChannels =\n streamKeys.length === 1 && streamKeys[0] === ROOT ? ROOT : streamKeys;\n\n const userInterrupt = this._interrupt;\n // create empty compiled graph\n const compiled = new CompiledStateGraph<\n S,\n U,\n N,\n I,\n O,\n C,\n NodeReturnType,\n InterruptType,\n WriterType,\n TTransformers\n >({\n builder: this,\n checkpointer,\n interruptAfter,\n interruptBefore,\n autoValidate: false,\n nodes: {} as Record<N | typeof START, PregelNode<S, U>>,\n channels: {\n ...this.channels,\n [START]: new EphemeralValue(),\n } as Record<N | typeof START | typeof END | string, BaseChannel>,\n inputChannels: START,\n outputChannels,\n streamChannels,\n streamMode: \"updates\",\n store,\n cache,\n name,\n description,\n userInterrupt,\n streamTransformers: transformers,\n });\n\n // attach nodes, edges and branches\n compiled.attachNode(START);\n // Resolve graph-wide node defaults. Per-node values always win. Defaults\n // are merged into a copy of each spec so repeated `compile()` calls remain\n // stable (the builder's node specs are never mutated).\n //\n // - `retryPolicy` / `timeout` apply to all nodes, including error-handler\n // nodes (a stuck or transiently-failing handler is treated like any\n // other node).\n // - `cachePolicy` and the default `errorHandler` apply to regular nodes\n // only — caching a handler result is unsafe, and a handler must never\n // catch its own (or another handler's) failure.\n const nodeDefaults = this._nodeDefaults;\n const hasNodeDefaults =\n nodeDefaults.retryPolicy !== undefined ||\n nodeDefaults.cachePolicy !== undefined ||\n nodeDefaults.timeout !== undefined ||\n defaultErrorHandlerNode !== undefined;\n for (const [key, node] of Object.entries<StateGraphNodeSpec<S, U>>(\n this.nodes\n )) {\n const isErrorHandlerNode = node.isErrorHandler === true;\n const resolvedNode = hasNodeDefaults\n ? {\n ...node,\n retryPolicy: node.retryPolicy ?? nodeDefaults.retryPolicy,\n cachePolicy: isErrorHandlerNode\n ? undefined\n : node.cachePolicy === false\n ? undefined\n : (node.cachePolicy ?? nodeDefaults.cachePolicy),\n timeout: node.timeout ?? nodeDefaults.timeout,\n errorHandlerNode:\n !isErrorHandlerNode &&\n defaultErrorHandlerNode !== undefined &&\n node.errorHandlerNode === undefined\n ? defaultErrorHandlerNode\n : node.errorHandlerNode,\n }\n : node;\n compiled.attachNode(key as N, resolvedNode);\n }\n compiled.attachBranch(START, SELF, _getControlBranch() as Branch<S, N>, {\n withReader: false,\n });\n for (const [key] of Object.entries<StateGraphNodeSpec<S, U>>(this.nodes)) {\n compiled.attachBranch(\n key as N,\n SELF,\n _getControlBranch() as Branch<S, N>,\n {\n withReader: false,\n }\n );\n }\n for (const [start, end] of this.edges) {\n compiled.attachEdge(start, end);\n }\n for (const [starts, end] of this.waitingEdges) {\n compiled.attachEdge(starts, end);\n }\n for (const [start, branches] of Object.entries(this.branches)) {\n for (const [name, branch] of Object.entries(branches)) {\n compiled.attachBranch(start as N, name, branch);\n }\n }\n\n return compiled.validate();\n }\n}\n\nfunction _getChannels<Channels extends Record<string, unknown> | unknown>(\n schema: StateGraphArgs<Channels>[\"channels\"]\n): Record<string, BaseChannel> {\n const channels: Record<string, BaseChannel> = {};\n for (const [name, val] of Object.entries(schema)) {\n if (name === ROOT) {\n channels[name] = getChannel<Channels>(val as SingleReducer<Channels>);\n } else {\n const key = name as keyof Channels;\n channels[name] = getChannel<Channels[typeof key]>(\n val as SingleReducer<Channels[typeof key]>\n );\n }\n }\n return channels;\n}\n\n/**\n * Final result from building and compiling a {@link StateGraph}.\n * Should not be instantiated directly, only using the StateGraph `.compile()`\n * instance method.\n *\n * @typeParam S - The full state type representing the complete shape of your graph's\n * state after all reducers have been applied. This is the type you receive when\n * reading state in nodes or after invoking the graph.\n *\n * @typeParam U - The update type representing what nodes can return to modify state.\n * Typically a partial of the state type, allowing nodes to update only specific fields.\n * Can also include {@link Command} objects for advanced control flow.\n *\n * @typeParam N - Union of all node names in the graph (e.g., `\"agent\" | \"tool\"`).\n * Used for type-safe routing with {@link Command.goto} and edge definitions.\n *\n * @typeParam I - The input schema definition. Determines what shape of data the graph\n * accepts when invoked. Defaults to the main state schema if not explicitly set.\n *\n * @typeParam O - The output schema definition. Determines what shape of data the graph\n * returns after execution. Defaults to the main state schema if not explicitly set.\n *\n * @typeParam C - The config/context schema definition. Defines additional configuration\n * that can be passed to the graph at runtime via {@link LangGraphRunnableConfig}.\n *\n * @typeParam NodeReturnType - Constrains what types nodes in this graph can return.\n * Useful for enforcing consistent return patterns across all nodes.\n *\n * @typeParam InterruptType - The type of values that can be passed when resuming from\n * an {@link interrupt}. Used with human-in-the-loop patterns.\n *\n * @typeParam WriterType - The type for custom stream writers. Used with the `writer`\n * option to enable typed custom streaming from within nodes.\n *\n * @typeParam TStreamTransformers - Stream transformer factories registered at\n * compile time via the `transformers` option. Used to type extensions on\n * `streamEvents(..., { version: \"v3\" })`.\n */\nexport class CompiledStateGraph<\n S,\n U,\n N extends string = typeof START,\n I extends StateDefinitionInit = StateDefinition,\n O extends StateDefinitionInit = StateDefinition,\n C extends StateDefinitionInit = StateDefinition,\n NodeReturnType = unknown,\n InterruptType = unknown,\n WriterType = unknown,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n TStreamTransformers extends ReadonlyArray<() => StreamTransformer<any>> = [],\n> extends CompiledGraph<\n N,\n S,\n U,\n ExtractStateType<C>,\n ExtractUpdateType<I, ExtractStateType<I>>,\n ExtractStateType<O>,\n NodeReturnType,\n CommandInstance<InferInterruptResumeType<InterruptType>, Prettify<U>, N>,\n InferWriterType<WriterType>,\n TStreamTransformers\n> {\n declare builder: StateGraph<unknown, S, U, N, I, O, C, NodeReturnType>;\n\n /**\n * The description of the compiled graph.\n * This is used by the supervisor agent to describe the handoff to the agent.\n */\n description?: string;\n\n /** @internal */\n _metaRegistry: SchemaMetaRegistry = schemaMetaRegistry;\n\n constructor({\n description,\n ...rest\n }: { description?: string } & ConstructorParameters<\n typeof CompiledGraph<\n N,\n S,\n U,\n ExtractStateType<C>,\n ExtractUpdateType<I, ExtractStateType<I>>,\n ExtractStateType<O>,\n NodeReturnType,\n CommandInstance<InferInterruptResumeType<InterruptType>, Prettify<U>, N>,\n InferWriterType<WriterType>,\n TStreamTransformers\n >\n >[0]) {\n super(rest);\n this.description = description;\n }\n\n attachNode(key: typeof START, node?: never): void;\n\n attachNode(key: N, node: StateGraphNodeSpec<S, U>): void;\n\n attachNode(key: N | typeof START, node?: StateGraphNodeSpec<S, U>): void {\n let outputKeys: string[];\n if (key === START) {\n // Get input schema keys excluding managed values\n outputKeys = Object.entries(\n this.builder._schemaDefinitions.get(this.builder._inputDefinition)\n ).map(([k]) => k);\n } else {\n outputKeys = Object.keys(this.builder.channels);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function _getRoot(input: unknown): [string, any][] | null {\n if (isCommand(input)) {\n if (input.graph === Command.PARENT) {\n return null;\n }\n return input._updateAsTuples();\n } else if (\n Array.isArray(input) &&\n input.length > 0 &&\n input.some((i) => isCommand(i))\n ) {\n const updates: [string, unknown][] = [];\n for (const i of input) {\n if (isCommand(i)) {\n if (i.graph === Command.PARENT) {\n continue;\n }\n updates.push(...i._updateAsTuples());\n } else {\n updates.push([ROOT, i]);\n }\n }\n return updates;\n } else if (input != null) {\n return [[ROOT, input]];\n }\n return null;\n }\n\n // to avoid name collision below\n const nodeKey = key;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function _getUpdates(input: U): [string, any][] | null {\n if (!input) {\n return null;\n } else if (isCommand(input)) {\n if (input.graph === Command.PARENT) {\n return null;\n }\n return input._updateAsTuples().filter(([k]) => outputKeys.includes(k));\n } else if (\n Array.isArray(input) &&\n input.length > 0 &&\n input.some(isCommand)\n ) {\n const updates: [string, unknown][] = [];\n for (const item of input) {\n if (isCommand(item)) {\n if (item.graph === Command.PARENT) {\n continue;\n }\n updates.push(\n ...item._updateAsTuples().filter(([k]) => outputKeys.includes(k))\n );\n } else {\n const itemUpdates = _getUpdates(item);\n if (itemUpdates) {\n updates.push(...(itemUpdates ?? []));\n }\n }\n }\n return updates;\n } else if (typeof input === \"object\" && !Array.isArray(input)) {\n return Object.entries(input).filter(([k]) => outputKeys.includes(k));\n } else {\n const typeofInput = Array.isArray(input) ? \"array\" : typeof input;\n throw new InvalidUpdateError(\n `Expected node \"${nodeKey.toString()}\" to return an object or an array containing at least one Command object, received ${typeofInput}`,\n {\n lc_error_code: \"INVALID_GRAPH_NODE_RETURN_VALUE\",\n }\n );\n }\n }\n\n const stateWriteEntries: (ChannelWriteTupleEntry | ChannelWriteEntry)[] = [\n {\n value: PASSTHROUGH,\n mapper: new RunnableCallable({\n func:\n outputKeys.length && outputKeys[0] === ROOT\n ? _getRoot\n : _getUpdates,\n trace: false,\n recurse: false,\n }),\n },\n ];\n\n // add node and output channel\n if (key === START) {\n this.nodes[key] = new PregelNode<S, U>({\n tags: [TAG_HIDDEN],\n triggers: [START],\n channels: [START],\n writers: [new ChannelWrite(stateWriteEntries, [TAG_HIDDEN])],\n });\n } else {\n const inputDefinition = node?.input ?? this.builder._schemaDefinition;\n const inputValues = Object.fromEntries(\n Object.keys(this.builder._schemaDefinitions.get(inputDefinition)).map(\n (k) => [k, k]\n )\n );\n const isSingleInput =\n Object.keys(inputValues).length === 1 && ROOT in inputValues;\n const branchChannel = `branch:to:${key}` as string | N;\n this.channels[branchChannel] = node?.defer\n ? new LastValueAfterFinish()\n : new EphemeralValue(false);\n const nodeCachePolicy = node?.cachePolicy;\n const cachePolicy =\n nodeCachePolicy === false ? undefined : nodeCachePolicy;\n this.nodes[key] = new PregelNode<S, U>({\n triggers: [branchChannel],\n // read state keys\n channels: isSingleInput ? Object.keys(inputValues) : inputValues,\n // publish to state keys\n writers: [new ChannelWrite(stateWriteEntries, [TAG_HIDDEN])],\n mapper: isSingleInput\n ? undefined\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (input: Record<string, any>) => {\n return Object.fromEntries(\n Object.entries(input).filter(([k]) => k in inputValues)\n );\n },\n bound: node?.runnable,\n metadata: node?.metadata,\n retryPolicy: node?.retryPolicy,\n cachePolicy,\n timeout: node?.timeout,\n subgraphs: node?.subgraphs,\n ends: node?.ends,\n isErrorHandler: node?.isErrorHandler,\n errorHandlerNode: node?.errorHandlerNode,\n });\n }\n }\n\n attachEdge(starts: N | N[] | \"__start__\", end: N | \"__end__\"): void {\n if (end === END) return;\n if (typeof starts === \"string\") {\n this.nodes[starts].writers.push(\n new ChannelWrite(\n [{ channel: `branch:to:${end}`, value: null }],\n [TAG_HIDDEN]\n )\n );\n } else if (Array.isArray(starts)) {\n const channelName = `join:${starts.join(\"+\")}:${end}`;\n // register channel\n this.channels[channelName as string | N] = this.builder.nodes[end].defer\n ? new NamedBarrierValueAfterFinish(new Set(starts))\n : new NamedBarrierValue(new Set(starts));\n // subscribe to channel\n this.nodes[end].triggers.push(channelName);\n // publish to channel\n for (const start of starts) {\n this.nodes[start].writers.push(\n new ChannelWrite(\n [{ channel: channelName, value: start }],\n [TAG_HIDDEN]\n )\n );\n }\n }\n }\n\n attachBranch(\n start: N | typeof START,\n _: string,\n branch: Branch<S, N>,\n options: { withReader?: boolean } = { withReader: true }\n ): void {\n const branchWriter = async (\n packets: (string | Send)[],\n config: LangGraphRunnableConfig\n ) => {\n const filteredPackets = packets.filter((p) => p !== END);\n if (!filteredPackets.length) return;\n\n const writes: (ChannelWriteEntry | Send)[] = filteredPackets.map((p) => {\n if (_isSend(p)) return p;\n return { channel: p === END ? p : `branch:to:${p}`, value: start };\n });\n await ChannelWrite.doWrite(\n { ...config, tags: (config.tags ?? []).concat([TAG_HIDDEN]) },\n writes\n );\n };\n // attach branch publisher\n this.nodes[start].writers.push(\n branch.run(\n branchWriter,\n // reader\n options.withReader\n ? (config) =>\n ChannelRead.doRead<S>(\n config,\n this.streamChannels ?? this.outputChannels,\n true\n )\n : undefined\n )\n );\n }\n\n protected async _validateInput(\n input: ExtractUpdateType<I, ExtractStateType<I>>\n ): Promise<ExtractUpdateType<I, ExtractStateType<I>>> {\n if (input == null) return input;\n\n const inputDef = this.builder._inputRuntimeDefinition;\n const schemaDef = this.builder._schemaRuntimeDefinition;\n\n // Determine which schema to use for validation\n // Priority: inputDef (if it's a validatable schema), otherwise fall back to schemaDef\n\n // Handle StateSchema validation for input schema\n if (StateSchema.isInstance(inputDef)) {\n if (isCommand(input)) {\n const parsedInput = input;\n if (input.update) {\n parsedInput.update = await inputDef.validateInput(\n Array.isArray(input.update)\n ? Object.fromEntries(input.update)\n : input.update\n );\n }\n return parsedInput;\n }\n return await inputDef.validateInput(input);\n }\n\n // Handle StateSchema validation for state schema (when input is partial state)\n if (inputDef === PartialStateSchema && StateSchema.isInstance(schemaDef)) {\n if (isCommand(input)) {\n const parsedInput = input;\n if (input.update) {\n parsedInput.update = await schemaDef.validateInput(\n Array.isArray(input.update)\n ? Object.fromEntries(input.update)\n : input.update\n );\n }\n return parsedInput;\n }\n return await schemaDef.validateInput(input);\n }\n\n // Handle InteropZodObject validation\n const schema = (() => {\n const apply = (schema: InteropZodObject | undefined) => {\n if (schema == null) return undefined;\n return this._metaRegistry.getExtendedChannelSchemas(schema, {\n withReducerSchema: true,\n });\n };\n\n if (isInteropZodObject(inputDef)) return apply(inputDef);\n if (inputDef === PartialStateSchema) {\n if (isInteropZodObject(schemaDef)) {\n return interopZodObjectPartial(apply(schemaDef)!);\n }\n return undefined;\n }\n return undefined;\n })();\n\n if (isCommand(input)) {\n const parsedInput = input;\n if (input.update && schema != null) {\n const updateObj = Array.isArray(input.update)\n ? Object.fromEntries(input.update)\n : input.update;\n const parsed = interopParse(schema, updateObj);\n parsedInput.update = Object.fromEntries(\n Object.keys(updateObj).map((k) => [k, parsed[k]])\n );\n }\n return parsedInput;\n }\n if (schema != null) return interopParse(schema, input);\n return input;\n }\n\n public isInterrupted(input: unknown): input is {\n [INTERRUPT]: Interrupt<InferInterruptInputType<InterruptType>>[];\n } {\n return isInterrupted(input);\n }\n\n protected async _validateContext(\n config: Partial<Record<string, unknown>>\n ): Promise<Partial<Record<string, unknown>>> {\n const configSchema = this.builder._configRuntimeSchema;\n if (isInteropZodObject(configSchema)) interopParse(configSchema, config);\n return config;\n }\n}\n\n/**\n * Check if value is a legacy StateGraphArgs with channels.\n * @internal\n * @deprecated Use StateGraphInit instead\n */\nfunction isStateGraphArgs<Channels extends object | unknown>(\n obj: unknown | StateGraphArgs<Channels>\n): obj is StateGraphArgs<Channels> {\n return (\n typeof obj === \"object\" &&\n obj !== null &&\n (obj as StateGraphArgs<Channels>).channels !== undefined\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _controlBranch(value: any): (string | Send)[] {\n if (_isSend(value)) {\n return [value];\n }\n const commands = [];\n if (isCommand(value)) {\n commands.push(value);\n } else if (Array.isArray(value)) {\n commands.push(...value.filter(isCommand));\n }\n const destinations: (string | Send)[] = [];\n\n for (const command of commands) {\n if (command.graph === Command.PARENT) {\n throw new ParentCommand(command);\n }\n\n if (_isSend(command.goto)) {\n destinations.push(command.goto);\n } else if (typeof command.goto === \"string\") {\n destinations.push(command.goto);\n } else {\n if (Array.isArray(command.goto)) {\n destinations.push(...command.goto);\n }\n }\n }\n return destinations;\n}\n\nfunction _getControlBranch() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const CONTROL_BRANCH_PATH = new RunnableCallable<any, (string | Send)[]>({\n func: _controlBranch,\n tags: [TAG_HIDDEN],\n trace: false,\n recurse: false,\n name: \"<control_branch>\",\n });\n return new Branch({\n path: CONTROL_BRANCH_PATH,\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"state.cjs","names":["Graph","schemaMetaRegistry","StateGraphInputError","StateSchema","coerceTimeoutPolicy","RunnableCallable","CONFIG_KEY_NODE_ERROR","isStateGraphInit","AnnotationRoot","isStateDefinitionInit","Runnable","isPregelLike","START","EphemeralValue","SELF","getChannel","CompiledGraph","isCommand","Command","_getOverwriteValue","OVERWRITE","InvalidUpdateError","PASSTHROUGH","PregelNode","TAG_HIDDEN","ChannelWrite","LastValueAfterFinish","NamedBarrierValueAfterFinish","NamedBarrierValue","END","_isSend","ChannelRead","isInterrupted","ParentCommand","Branch"],"sources":["../../src/graph/state.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\nimport { _coerceToRunnable, Runnable } from \"@langchain/core/runnables\";\nimport {\n All,\n type BaseCache,\n BaseCheckpointSaver,\n BaseStore,\n} from \"@langchain/langgraph-checkpoint\";\nimport {\n getInteropZodObjectShape,\n type InteropZodObject,\n interopParse,\n interopZodObjectPartial,\n isInteropZodObject,\n} from \"@langchain/core/utils/types\";\nimport type {\n RunnableLike,\n LangGraphRunnableConfig,\n Runtime,\n} from \"../pregel/runnable_types.js\";\nimport { BaseChannel } from \"../channels/base.js\";\nimport {\n CompiledGraph,\n Graph,\n Branch,\n AddNodeOptions,\n NodeSpec,\n NodeErrorHandler,\n} from \"./graph.js\";\nimport {\n ChannelWrite,\n ChannelWriteEntry,\n ChannelWriteTupleEntry,\n PASSTHROUGH,\n} from \"../pregel/write.js\";\nimport { ChannelRead, PregelNode } from \"../pregel/read.js\";\nimport {\n NamedBarrierValue,\n NamedBarrierValueAfterFinish,\n} from \"../channels/named_barrier_value.js\";\nimport { EphemeralValue } from \"../channels/ephemeral_value.js\";\nimport { RunnableCallable } from \"../utils.js\";\nimport {\n isCommand,\n _isSend,\n CHECKPOINT_NAMESPACE_END,\n CHECKPOINT_NAMESPACE_SEPARATOR,\n Command,\n SELF,\n Send,\n START,\n END,\n TAG_HIDDEN,\n CommandInstance,\n isInterrupted,\n Interrupt,\n INTERRUPT,\n CONFIG_KEY_NODE_ERROR,\n _getOverwriteValue,\n OVERWRITE,\n} from \"../constants.js\";\nimport {\n InvalidUpdateError,\n NodeError,\n ParentCommand,\n StateGraphInputError,\n} from \"../errors.js\";\nimport {\n AnnotationRoot,\n getChannel,\n SingleReducer,\n StateDefinition,\n StateType,\n} from \"./annotation.js\";\nimport { StateSchema } from \"../state/index.js\";\nimport type {\n CachePolicy,\n RetryPolicy,\n TimeoutPolicy,\n} from \"../pregel/utils/index.js\";\nimport { coerceTimeoutPolicy } from \"../pregel/utils/index.js\";\nimport { isPregelLike } from \"../pregel/utils/subgraph.js\";\nimport { LastValueAfterFinish } from \"../channels/last_value.js\";\nimport { type SchemaMetaRegistry, schemaMetaRegistry } from \"./zod/meta.js\";\nimport type {\n InferInterruptResumeType,\n InferInterruptInputType,\n} from \"../interrupt.js\";\nimport type { InferWriterType } from \"../writer.js\";\nimport type { AnyStateSchema } from \"../state/schema.js\";\nimport {\n ContextSchemaInit,\n ExtractStateType,\n ExtractUpdateType,\n isStateDefinitionInit,\n isStateGraphInit,\n StateGraphInit,\n StateGraphOptions,\n ToStateDefinition,\n type StateDefinitionInit,\n} from \"./types.js\";\nimport type { StreamTransformer } from \"../stream/types.js\";\nimport type { Pregel } from \"../pregel/index.js\";\n\nconst ROOT = \"__root__\";\n\n/**\n * Reserved node name for the single shared error handler that is materialized\n * when a graph-wide default error handler is set via\n * {@link StateGraph.setNodeDefaults}. Every regular node that lacks its own\n * `errorHandler` routes failures to this node. Mirrors Python's\n * `__default_error_handler__`.\n */\nconst DEFAULT_ERROR_HANDLER_NODE = \"__default_error_handler__\";\n\nexport type ChannelReducers<Channels extends object> = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [K in keyof Channels]: SingleReducer<Channels[K], any>;\n};\n\nexport interface StateGraphArgs<Channels extends object | unknown> {\n channels: Channels extends object\n ? Channels extends unknown[]\n ? ChannelReducers<{ __root__: Channels }>\n : ChannelReducers<Channels>\n : ChannelReducers<{ __root__: Channels }>;\n}\n\n/**\n * Retry and cache policies configurable on graph nodes.\n *\n * Use with {@link StateGraph.addNode} for per-node overrides, or with\n * {@link StateGraph.setNodeDefaults} for graph-wide defaults applied at\n * `compile()` time. Per-node values always take precedence over defaults.\n * `setNodeDefaults` may be called before or after `addNode`, including as the\n * last step before `compile()`.\n */\nexport type NodePolicyOptions = {\n /**\n * Retry policy controlling backoff, max attempts, and which errors trigger\n * a retry.\n *\n * @see {@link RetryPolicy}\n */\n retryPolicy?: RetryPolicy;\n /**\n * Cache policy controlling how node results are keyed and how long they\n * persist.\n *\n * - Pass a {@link CachePolicy} object for fine-grained control (e.g. custom\n * `keyFunc`, `ttl`).\n * - Pass `true` to enable caching with default settings.\n * - Pass `false` to disable caching.\n *\n * @see {@link CachePolicy}\n */\n cachePolicy?: CachePolicy | boolean;\n /**\n * Maximum duration for a single attempt of this node. Accepts a number of\n * milliseconds (a hard wall-clock cap) or a {@link TimeoutPolicy} for finer\n * control over run / idle timeouts. When exceeded, a {@link NodeTimeoutError}\n * is raised and the node's retry policy (if any) decides whether to retry.\n *\n * @see {@link TimeoutPolicy}\n */\n timeout?: number | TimeoutPolicy;\n};\n\n/**\n * Resolved retry and cache policies stored on a node after boolean\n * `cachePolicy` shorthand is normalized.\n *\n * @internal\n */\nexport type NodePolicies = {\n retryPolicy?: RetryPolicy;\n /** `false` opts out of graph defaults set via {@link StateGraph.setNodeDefaults}. */\n cachePolicy?: CachePolicy | false;\n /** Resolved timeout policy after the `number` shorthand is normalized. */\n timeout?: TimeoutPolicy;\n};\n\n/**\n * Graph-wide node defaults captured by {@link StateGraph.setNodeDefaults} and\n * resolved at {@link StateGraph.compile} time.\n *\n * @internal\n */\ntype ResolvedNodeDefaults = NodePolicies & {\n /**\n * Default error handler applied to every regular node that does not set its\n * own via `addNode(..., { errorHandler })`. Never applied to error-handler\n * nodes themselves — handlers must not catch their own failures.\n */\n errorHandler?: NodeErrorHandler;\n};\n\nexport type StateGraphNodeSpec<RunInput, RunOutput> = NodeSpec<\n RunInput,\n RunOutput\n> &\n NodePolicies & {\n input?: StateDefinition;\n };\n\n/**\n * Options for StateGraph.addNode() method.\n *\n * @template Nodes - Node name constraints\n * @template InputSchema - Per-node input schema type (inferred from options.input)\n * @template HandlerState - State type passed to the node-level error handler\n * @template Update - The update type the error handler may return\n */\nexport type StateGraphAddNodeOptions<\n Nodes extends string = string,\n InputSchema extends StateDefinitionInit | undefined =\n | StateDefinitionInit\n | undefined,\n HandlerState = InputSchema extends StateDefinitionInit\n ? ExtractStateType<InputSchema>\n : unknown,\n Update = unknown,\n> = {\n input?: InputSchema;\n /**\n * Optional node-level error handler. Runs only after this node's\n * {@link RetryPolicy} is exhausted. Receives a {@link NodeError} with the\n * failed node name and error, and may return a state update or `Command`.\n */\n errorHandler?: NodeErrorHandler<HandlerState, Update, Nodes>;\n} & NodePolicyOptions &\n AddNodeOptions<Nodes>;\n\ntype StateGraphAddNodeOptionsWithNodeInput<\n Nodes extends string,\n NodeInput,\n Update = unknown,\n> = StateGraphAddNodeOptions<\n Nodes,\n StateDefinitionInit | undefined,\n NodeInput,\n Update\n>;\n\nexport type StateGraphArgsWithStateSchema<\n SD extends StateDefinition,\n I extends StateDefinition,\n O extends StateDefinition,\n> = {\n stateSchema: AnnotationRoot<SD>;\n input?: AnnotationRoot<I>;\n output?: AnnotationRoot<O>;\n};\n\nexport type StateGraphArgsWithInputOutputSchemas<\n SD extends StateDefinition,\n O extends StateDefinition = SD,\n> = {\n input: AnnotationRoot<SD>;\n output: AnnotationRoot<O>;\n};\n\ntype ExtractStateDefinition<T> = T extends AnyStateSchema\n ? T // Keep StateSchema as-is to preserve type information\n : T extends StateDefinitionInit\n ? ToStateDefinition<T>\n : StateDefinition;\n\ntype NodeAction<\n S,\n U,\n C extends StateDefinitionInit,\n InterruptType,\n WriterType,\n> = RunnableLike<\n S,\n U extends object ? U & Record<string, any> : U, // eslint-disable-line @typescript-eslint/no-explicit-any\n Runtime<StateType<ToStateDefinition<C>>, InterruptType, WriterType>\n>;\n\ntype StrictNodeAction<\n S,\n U,\n C extends StateDefinitionInit,\n Nodes extends string,\n InterruptType,\n WriterType,\n> = RunnableLike<\n Prettify<S>,\n | U\n | Command<\n InferInterruptResumeType<InterruptType>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n U & Record<string, any>,\n Nodes\n >,\n Runtime<StateType<ToStateDefinition<C>>, InterruptType, WriterType>\n>;\n\nconst PartialStateSchema = Symbol.for(\"langgraph.state.partial\");\ntype PartialStateSchema = typeof PartialStateSchema;\n\ntype MergeReturnType<Prev, Curr> = Prev & Curr extends infer T\n ? { [K in keyof T]: T[K] } & unknown\n : never;\n\ntype Prettify<T> = {\n [K in keyof T]: T[K];\n // eslint-disable-next-line @typescript-eslint/ban-types\n} & {};\n\n/**\n * A graph whose nodes communicate by reading and writing to a shared state.\n * Each node takes a defined `State` as input and returns a `Partial<State>`.\n *\n * Each state key can optionally be annotated with a reducer function that\n * will be used to aggregate the values of that key received from multiple nodes.\n * The signature of a reducer function is (left: Value, right: UpdateValue) => Value.\n *\n * See {@link Annotation} for more on defining state.\n *\n * After adding nodes and edges to your graph, you must call `.compile()` on it before\n * you can use it.\n *\n * @typeParam SD - The state definition used to construct the graph. Can be an\n * {@link AnnotationRoot}, {@link StateSchema}, or Zod object schema. This is the\n * primary generic from which `S` and `U` are derived.\n *\n * @typeParam S - The full state type representing the complete shape of your graph's\n * state after all reducers have been applied. Automatically inferred from `SD`.\n *\n * @typeParam U - The update type representing what nodes can return to modify state.\n * Typically a partial of the state type. Automatically inferred from `SD`.\n *\n * @typeParam N - Union of all node names in the graph (e.g., `\"agent\" | \"tool\"`).\n * Accumulated as you call `.addNode()`. Used for type-safe routing.\n *\n * @typeParam I - The input schema definition. Set via the `input` option in the\n * constructor to restrict what data the graph accepts when invoked.\n *\n * @typeParam O - The output schema definition. Set via the `output` option in the\n * constructor to restrict what data the graph returns after execution.\n *\n * @typeParam C - The config/context schema definition. Set via the `context` option\n * to define additional configuration passed at runtime.\n *\n * @typeParam NodeReturnType - Constrains what types nodes in this graph can return.\n *\n * @typeParam InterruptType - The type for {@link interrupt} resume values. Set via\n * the `interrupt` option for typed human-in-the-loop patterns.\n *\n * @typeParam WriterType - The type for custom stream writers. Set via the `writer`\n * option to enable typed custom streaming from within nodes.\n *\n * @example\n * ```ts\n * import {\n * type BaseMessage,\n * AIMessage,\n * HumanMessage,\n * } from \"@langchain/core/messages\";\n * import { StateGraph, Annotation } from \"@langchain/langgraph\";\n *\n * // Define a state with a single key named \"messages\" that will\n * // combine a returned BaseMessage or arrays of BaseMessages\n * const StateAnnotation = Annotation.Root({\n * sentiment: Annotation<string>,\n * messages: Annotation<BaseMessage[]>({\n * reducer: (left: BaseMessage[], right: BaseMessage | BaseMessage[]) => {\n * if (Array.isArray(right)) {\n * return left.concat(right);\n * }\n * return left.concat([right]);\n * },\n * default: () => [],\n * }),\n * });\n *\n * const graphBuilder = new StateGraph(StateAnnotation);\n *\n * // A node in the graph that returns an object with a \"messages\" key\n * // will update the state by combining the existing value with the returned one.\n * const myNode = (state: typeof StateAnnotation.State) => {\n * return {\n * messages: [new AIMessage(\"Some new response\")],\n * sentiment: \"positive\",\n * };\n * };\n *\n * const graph = graphBuilder\n * .addNode(\"myNode\", myNode)\n * .addEdge(\"__start__\", \"myNode\")\n * .addEdge(\"myNode\", \"__end__\")\n * .compile();\n *\n * await graph.invoke({ messages: [new HumanMessage(\"how are you?\")] });\n *\n * // {\n * // messages: [HumanMessage(\"how are you?\"), AIMessage(\"Some new response\")],\n * // sentiment: \"positive\",\n * // }\n * ```\n */\nexport class StateGraph<\n SD extends StateDefinitionInit | unknown,\n S = ExtractStateType<SD>,\n U = ExtractUpdateType<SD, S>,\n N extends string = typeof START,\n I extends StateDefinitionInit = ExtractStateDefinition<SD>,\n O extends StateDefinitionInit = ExtractStateDefinition<SD>,\n C extends StateDefinitionInit = StateDefinition,\n NodeReturnType = unknown,\n InterruptType = unknown,\n WriterType = unknown,\n> extends Graph<N, S, U, StateGraphNodeSpec<S, U>, ToStateDefinition<C>> {\n channels: Record<string, BaseChannel> = {};\n\n // TODO: this doesn't dedupe edges as in py, so worth fixing at some point\n waitingEdges: Set<[N[], N]> = new Set();\n\n /** @internal */\n _schemaDefinition: StateDefinition;\n\n /** @internal */\n _schemaRuntimeDefinition: InteropZodObject | AnyStateSchema | undefined;\n\n /** @internal */\n _inputDefinition: I;\n\n /** @internal */\n _inputRuntimeDefinition:\n | InteropZodObject\n | AnyStateSchema\n | PartialStateSchema\n | undefined;\n\n /** @internal */\n _outputDefinition: O;\n\n /** @internal */\n _outputRuntimeDefinition: InteropZodObject | AnyStateSchema | undefined;\n\n /**\n * Map schemas to managed values\n * @internal\n */\n _schemaDefinitions = new Map();\n\n /** @internal */\n _metaRegistry: SchemaMetaRegistry = schemaMetaRegistry;\n\n /** @internal Used only for typing. */\n _configSchema: ToStateDefinition<C> | undefined;\n\n /** @internal */\n _configRuntimeSchema: InteropZodObject | undefined;\n\n /** @internal */\n _interrupt: InterruptType;\n\n /** @internal */\n _writer: WriterType;\n\n /**\n * Graph-wide default node policies, resolved at `compile()` time.\n * @internal\n */\n _nodeDefaults: ResolvedNodeDefaults = {};\n\n declare Node: StrictNodeAction<S, U, C, N, InterruptType, WriterType>;\n\n /**\n * Create a new StateGraph for building stateful, multi-step workflows.\n *\n * Accepts state definitions via `Annotation.Root`, `StateSchema`, or Zod schemas.\n *\n * @example Direct schema\n * ```ts\n * const StateAnnotation = Annotation.Root({\n * messages: Annotation<string[]>({ reducer: (a, b) => [...a, ...b] }),\n * });\n * const graph = new StateGraph(StateAnnotation);\n * ```\n *\n * @example Direct schema with input/output filtering\n * ```ts\n * const graph = new StateGraph(StateAnnotation, {\n * input: InputSchema,\n * output: OutputSchema,\n * });\n * ```\n *\n * @example Object pattern with state, input, output\n * ```ts\n * const graph = new StateGraph({\n * state: FullStateSchema,\n * input: InputSchema,\n * output: OutputSchema,\n * });\n * ```\n *\n * @example Input/output only (state inferred from input)\n * ```ts\n * const graph = new StateGraph({\n * input: InputAnnotation,\n * output: OutputAnnotation,\n * });\n * ```\n */\n constructor(\n state: SD extends StateDefinitionInit ? SD : never,\n options?:\n | C\n | AnnotationRoot<ToStateDefinition<C>>\n | StateGraphOptions<I, O, C, N, InterruptType, WriterType>\n );\n\n constructor(\n fields: SD extends StateDefinition\n ? StateGraphArgsWithInputOutputSchemas<SD, ToStateDefinition<O>>\n : never,\n contextSchema?: C | AnnotationRoot<ToStateDefinition<C>>\n );\n\n constructor(\n fields: SD extends StateDefinition\n ?\n | AnnotationRoot<SD>\n | StateGraphArgsWithStateSchema<\n SD,\n ToStateDefinition<I>,\n ToStateDefinition<O>\n >\n : never,\n contextSchema?: C | AnnotationRoot<ToStateDefinition<C>>\n );\n\n constructor(\n init: Omit<\n StateGraphInit<\n SD extends StateDefinitionInit ? SD : StateDefinitionInit,\n SD extends StateDefinitionInit ? SD : StateDefinitionInit,\n O,\n C extends ContextSchemaInit ? C : undefined,\n N,\n InterruptType,\n WriterType\n >,\n \"state\" | \"stateSchema\" | \"input\"\n > & {\n input: SD extends StateDefinitionInit ? SD : never;\n state?: never;\n stateSchema?: never;\n },\n contextSchema?: C | AnnotationRoot<ToStateDefinition<C>>\n );\n\n constructor(\n init: StateGraphInit<\n SD extends StateDefinitionInit ? SD : StateDefinitionInit,\n I,\n O,\n C extends ContextSchemaInit ? C : undefined,\n N,\n InterruptType,\n WriterType\n >\n );\n\n /** @deprecated Use `Annotation.Root`, `StateSchema`, or Zod schemas instead. */\n constructor(\n fields: StateGraphArgs<S>,\n contextSchema?: C | AnnotationRoot<ToStateDefinition<C>>\n );\n\n constructor(\n stateOrInit:\n | StateDefinitionInit\n | StateGraphInit<StateDefinitionInit, I, O>\n | StateGraphArgs<S>,\n options?:\n | C\n | AnnotationRoot<ToStateDefinition<C>>\n | StateGraphOptions<\n I,\n O,\n C extends ContextSchemaInit ? C : undefined,\n N,\n InterruptType,\n WriterType\n >\n ) {\n super();\n\n // Normalize all input patterns to StateGraphInit format\n const init = this._normalizeToStateGraphInit(stateOrInit, options);\n\n // Resolve state schema: state > stateSchema (deprecated) > input\n const stateSchema = init.state ?? init.stateSchema ?? init.input;\n if (!stateSchema) {\n throw new StateGraphInputError();\n }\n\n // Get channel definitions from the schema (may contain channel factories)\n const stateChannelDef = this._getChannelsFromSchema(stateSchema);\n\n // Set schema definitions (these may contain channel factories)\n this._schemaDefinition = stateChannelDef;\n\n // Set runtime definitions for validation\n if (StateSchema.isInstance(stateSchema)) {\n this._schemaRuntimeDefinition = stateSchema;\n } else if (isInteropZodObject(stateSchema)) {\n this._schemaRuntimeDefinition = stateSchema;\n }\n\n // Set input runtime definition\n if (init.input) {\n if (StateSchema.isInstance(init.input)) {\n this._inputRuntimeDefinition = init.input;\n } else if (isInteropZodObject(init.input)) {\n this._inputRuntimeDefinition = init.input;\n } else {\n this._inputRuntimeDefinition = PartialStateSchema;\n }\n } else {\n this._inputRuntimeDefinition = PartialStateSchema;\n }\n\n // Set output runtime definition\n if (init.output) {\n if (StateSchema.isInstance(init.output)) {\n this._outputRuntimeDefinition = init.output;\n } else if (isInteropZodObject(init.output)) {\n this._outputRuntimeDefinition = init.output;\n } else {\n this._outputRuntimeDefinition = this._schemaRuntimeDefinition;\n }\n } else {\n this._outputRuntimeDefinition = this._schemaRuntimeDefinition;\n }\n\n // Set input/output definitions (default to state)\n const inputChannelDef = init.input\n ? this._getChannelsFromSchema(init.input)\n : stateChannelDef;\n const outputChannelDef = init.output\n ? (this._getChannelsFromSchema(init.output) as O)\n : stateChannelDef;\n this._inputDefinition = inputChannelDef as I;\n this._outputDefinition = outputChannelDef as O;\n\n // Add all schemas (_addSchema instantiates channel factories and populates this.channels)\n this._addSchema(this._schemaDefinition);\n this._addSchema(this._inputDefinition);\n this._addSchema(this._outputDefinition);\n\n // Handle context schema\n if (init.context) {\n if (isInteropZodObject(init.context)) {\n this._configRuntimeSchema = init.context;\n }\n }\n\n // Handle interrupt and writer\n this._interrupt = init.interrupt as InterruptType;\n this._writer = init.writer as WriterType;\n }\n\n /**\n * Set graph-wide default node policies that apply to every node in this\n * graph.\n *\n * Per-node values passed to {@link addNode} always take precedence over these\n * defaults. Defaults are resolved at {@link compile} time, so call order does\n * not matter — you may call this before or after `addNode`, including as the\n * last step before `compile()`. Calling it multiple times merges the provided\n * fields, with later calls overriding earlier ones on a per-field basis.\n *\n * Policies set here are **not** inherited by subgraphs.\n *\n * `retryPolicy` and `timeout` defaults apply to **all** nodes, including\n * auto-generated error-handler nodes. `cachePolicy` and `errorHandler`\n * defaults apply to **regular nodes only** — caching an error-handler result\n * is unsafe, and a handler must never catch its own (or another handler's)\n * failure.\n *\n * @param defaults - The default node policies to apply.\n * @returns The builder instance, for chaining.\n *\n * @example Call before `addNode`\n * ```ts\n * const graph = new StateGraph(State)\n * .setNodeDefaults({\n * retryPolicy: { maxAttempts: 3 },\n * cachePolicy: { ttl: 60 },\n * timeout: 60_000,\n * errorHandler: (state, { node, error }) => ({ lastError: error.message }),\n * })\n * .addNode(\"a\", nodeA)\n * .addNode(\"b\", nodeB, { retryPolicy: { maxAttempts: 5 } }) // overrides default\n * .addEdge(START, \"a\")\n * .compile();\n * ```\n *\n * @example Call after `addNode`, immediately before `compile()`\n * ```ts\n * const graph = new StateGraph(State)\n * .addNode(\"a\", nodeA)\n * .addNode(\"b\", nodeB, { retryPolicy: { maxAttempts: 5 } }) // overrides default\n * .addEdge(START, \"a\")\n * .setNodeDefaults({\n * retryPolicy: { maxAttempts: 3 },\n * cachePolicy: { ttl: 60 },\n * })\n * .compile();\n * ```\n */\n setNodeDefaults(\n defaults: NodePolicyOptions & {\n /**\n * Default node-level error handler invoked when any **regular** node\n * raises and does not have its own handler set via\n * `addNode(..., { errorHandler })`. Runs only after the failing node's\n * retry policy is exhausted. It is never invoked when an error-handler\n * node itself raises — handler failures fail the run.\n *\n * Because a single shared handler serves every node, its `state`\n * argument is typed as `unknown`: at runtime it receives the **failing\n * node's input** (see `addNode(..., { input })`), which may be a subset\n * of the graph state and differs per node. Narrow it yourself before\n * reading fields. The handler may still return a graph-level update (`U`)\n * or route via `new Command({ goto })` to any node (`N`).\n */\n errorHandler?: NodeErrorHandler<unknown, U, N>;\n }\n ): this {\n if (defaults.retryPolicy !== undefined) {\n this._nodeDefaults.retryPolicy = defaults.retryPolicy;\n }\n if (defaults.cachePolicy !== undefined) {\n this._nodeDefaults.cachePolicy =\n typeof defaults.cachePolicy === \"boolean\"\n ? defaults.cachePolicy\n ? {}\n : undefined\n : defaults.cachePolicy;\n }\n if (defaults.timeout !== undefined) {\n this._nodeDefaults.timeout = coerceTimeoutPolicy(defaults.timeout);\n }\n if (defaults.errorHandler !== undefined) {\n this._nodeDefaults.errorHandler =\n defaults.errorHandler as NodeErrorHandler;\n }\n return this;\n }\n\n /**\n * Build the shared spec for a graph-wide default error handler, or\n * `undefined` when {@link setNodeDefaults} did not configure one. The spec is\n * installed under {@link DEFAULT_ERROR_HANDLER_NODE} for the duration of a\n * single {@link compile} call and routes failures from every regular node\n * that lacks its own handler.\n * @internal\n */\n protected _createDefaultErrorHandlerSpec():\n | StateGraphNodeSpec<S, U>\n | undefined {\n const userHandler = this._nodeDefaults.errorHandler;\n if (userHandler === undefined) {\n return undefined;\n }\n const handlerRunnable = new RunnableCallable({\n func: (state: unknown, config: LangGraphRunnableConfig) => {\n // Per-task failure context, injected when the handler task is prepared\n // (see _prepareNodeErrorHandlerTask). `state` is the failing node's\n // input, which may be a per-node subset of the graph state — hence the\n // handler's `state` parameter is typed `unknown`.\n const nodeError = config?.configurable?.[CONFIG_KEY_NODE_ERROR] as\n | NodeError\n | undefined;\n return userHandler(state, nodeError as NodeError, config);\n },\n name: DEFAULT_ERROR_HANDLER_NODE,\n trace: false,\n });\n return {\n runnable: handlerRunnable as unknown as Runnable<S, U>,\n metadata: undefined,\n input: this._schemaDefinition,\n retryPolicy: undefined,\n cachePolicy: undefined,\n isErrorHandler: true,\n };\n }\n\n /**\n * Normalize all constructor input patterns to a unified StateGraphInit object.\n * @internal\n */\n private _normalizeToStateGraphInit(\n stateOrInit: unknown,\n options?: unknown\n ): StateGraphInit<StateDefinitionInit, I, O, C> {\n // Check if already StateGraphInit format\n if (isStateGraphInit(stateOrInit)) {\n // Second arg can be either a direct context schema or an options object\n if (isInteropZodObject(options) || AnnotationRoot.isInstance(options)) {\n return {\n ...stateOrInit,\n context: options as C,\n };\n }\n // Merge any 2nd arg options\n const opts = options as StateGraphOptions<I, O> | undefined;\n return {\n ...stateOrInit,\n input: stateOrInit.input ?? opts?.input,\n output: stateOrInit.output ?? opts?.output,\n context: stateOrInit.context ?? opts?.context,\n interrupt: stateOrInit.interrupt ?? opts?.interrupt,\n writer: stateOrInit.writer ?? opts?.writer,\n nodes: stateOrInit.nodes ?? opts?.nodes,\n } as StateGraphInit<StateDefinitionInit, I, O, C>;\n }\n\n // Check if direct schema (StateSchema, Zod, Annotation, StateDefinition)\n if (isStateDefinitionInit(stateOrInit)) {\n // Second arg can be either a direct context schema or an options object\n if (isInteropZodObject(options) || AnnotationRoot.isInstance(options)) {\n return {\n state: stateOrInit,\n context: options as C,\n };\n }\n const opts = options as StateGraphOptions<I, O> | undefined;\n return {\n state: stateOrInit as StateDefinitionInit,\n input: opts?.input as I,\n output: opts?.output as O,\n context: opts?.context,\n interrupt: opts?.interrupt,\n writer: opts?.writer,\n nodes: opts?.nodes,\n };\n }\n\n // Check for legacy { channels } format\n if (isStateGraphArgs(stateOrInit as StateGraphArgs<S>)) {\n const legacyArgs = stateOrInit as StateGraphArgs<S>;\n const spec = _getChannels(legacyArgs.channels);\n return {\n state: spec as StateDefinitionInit,\n };\n }\n\n throw new StateGraphInputError();\n }\n\n /**\n * Convert any supported schema type to a StateDefinition (channel map).\n * @internal\n */\n private _getChannelsFromSchema(schema: StateDefinitionInit): StateDefinition {\n if (StateSchema.isInstance(schema)) {\n return schema.getChannels();\n }\n\n if (isInteropZodObject(schema)) {\n return this._metaRegistry.getChannelsForSchema(schema);\n }\n\n // AnnotationRoot - has .spec property that is the StateDefinition\n if (\n typeof schema === \"object\" &&\n \"lc_graph_name\" in schema &&\n (schema as { lc_graph_name: unknown }).lc_graph_name === \"AnnotationRoot\"\n ) {\n return (schema as AnnotationRoot<StateDefinition>).spec;\n }\n\n // StateDefinition (raw channel map) - return as-is\n if (\n typeof schema === \"object\" &&\n !Array.isArray(schema) &&\n Object.keys(schema).length > 0\n ) {\n return schema as StateDefinition;\n }\n\n throw new StateGraphInputError(\n \"Invalid schema type. Expected StateSchema, Zod object, AnnotationRoot, or StateDefinition.\"\n );\n }\n\n get allEdges(): Set<[string, string]> {\n return new Set([\n ...this.edges,\n ...Array.from(this.waitingEdges).flatMap(([starts, end]) =>\n starts.map((start) => [start, end] as [string, string])\n ),\n ]);\n }\n\n _addSchema(stateDefinition: StateDefinitionInit) {\n if (this._schemaDefinitions.has(stateDefinition)) {\n return;\n }\n // TODO: Support managed values\n this._schemaDefinitions.set(stateDefinition, stateDefinition);\n for (const [key, val] of Object.entries(stateDefinition)) {\n let channel;\n if (typeof val === \"function\") {\n channel = val();\n } else {\n channel = val;\n }\n if (this.channels[key] !== undefined) {\n if (!this.channels[key].equals(channel)) {\n if (channel.lc_graph_name !== \"LastValue\") {\n throw new Error(\n `Channel \"${key}\" already exists with a different type.`\n );\n }\n }\n } else {\n this.channels[key] = channel;\n }\n }\n }\n\n override addNode<\n K extends string,\n NodeMap extends Record<K, NodeAction<S, U, C, InterruptType, WriterType>>,\n >(\n nodes: NodeMap\n ): StateGraph<\n SD,\n S,\n U,\n N | K,\n I,\n O,\n C,\n MergeReturnType<\n NodeReturnType,\n {\n [key in keyof NodeMap]: NodeMap[key] extends NodeAction<\n S,\n infer U,\n C,\n InterruptType,\n WriterType\n >\n ? U\n : never;\n }\n >\n >;\n\n override addNode<K extends string, NodeInput = S, NodeOutput extends U = U>(\n nodes: [\n key: K,\n action: NodeAction<NodeInput, NodeOutput, C, InterruptType, WriterType>,\n options?: StateGraphAddNodeOptionsWithNodeInput<N | K, NodeInput, U>,\n ][]\n ): StateGraph<\n SD,\n S,\n U,\n N | K,\n I,\n O,\n C,\n MergeReturnType<NodeReturnType, { [key in K]: NodeOutput }>\n >;\n\n override addNode<\n K extends string,\n InputSchema extends StateDefinitionInit,\n NodeOutput extends U = U,\n >(\n key: K,\n action: NodeAction<\n ExtractStateType<InputSchema>,\n NodeOutput,\n C,\n InterruptType,\n WriterType\n >,\n options: StateGraphAddNodeOptions<\n N | K,\n InputSchema,\n ExtractStateType<InputSchema>,\n U\n >\n ): StateGraph<\n SD,\n S,\n U,\n N | K,\n I,\n O,\n C,\n MergeReturnType<NodeReturnType, { [key in K]: NodeOutput }>\n >;\n\n override addNode<\n K extends string,\n InputSchema extends StateDefinitionInit,\n NodeOutput extends U = U,\n >(\n key: K,\n action: NodeAction<\n ExtractStateType<InputSchema>,\n NodeOutput,\n C,\n InterruptType,\n WriterType\n >,\n options: StateGraphAddNodeOptions<\n N | K,\n InputSchema,\n ExtractStateType<InputSchema>,\n U\n >\n ): StateGraph<\n SD,\n S,\n U,\n N | K,\n I,\n O,\n C,\n MergeReturnType<NodeReturnType, { [key in K]: NodeOutput }>\n >;\n\n override addNode<K extends string, NodeInput = S, NodeOutput extends U = U>(\n key: K,\n action: NodeAction<NodeInput, NodeOutput, C, InterruptType, WriterType>,\n options?: StateGraphAddNodeOptionsWithNodeInput<N | K, NodeInput, U>\n ): StateGraph<\n SD,\n S,\n U,\n N | K,\n I,\n O,\n C,\n MergeReturnType<NodeReturnType, { [key in K]: NodeOutput }>\n >;\n\n override addNode<K extends string, NodeInput = S>(\n key: K,\n action: NodeAction<NodeInput, U, C, InterruptType, WriterType>,\n options?: StateGraphAddNodeOptionsWithNodeInput<N | K, NodeInput, U>\n ): StateGraph<SD, S, U, N | K, I, O, C, NodeReturnType>;\n\n override addNode<K extends string, NodeInput = S, NodeOutput extends U = U>(\n ...args:\n | [\n key: K,\n action: NodeAction<\n NodeInput,\n NodeOutput,\n C,\n InterruptType,\n WriterType\n >,\n options?: StateGraphAddNodeOptionsWithNodeInput<N | K, NodeInput, U>,\n ]\n | [\n nodes:\n | Record<K, NodeAction<NodeInput, U, C, InterruptType, WriterType>>\n | [\n key: K,\n action: NodeAction<NodeInput, U, C, InterruptType, WriterType>,\n options?: StateGraphAddNodeOptionsWithNodeInput<\n N | K,\n NodeInput,\n U\n >,\n ][],\n ]\n ): StateGraph<SD, S, U, N | K, I, O, C> {\n function isMultipleNodes(\n args: unknown[]\n ): args is [\n nodes:\n | Record<K, NodeAction<NodeInput, U, C, InterruptType, WriterType>>\n | [\n key: K,\n action: NodeAction<NodeInput, U, C, InterruptType, WriterType>,\n options?: StateGraphAddNodeOptionsWithNodeInput<\n N | K,\n NodeInput,\n U\n >,\n ][],\n ] {\n return args.length >= 1 && typeof args[0] !== \"string\";\n }\n\n const nodes = (\n isMultipleNodes(args) // eslint-disable-line no-nested-ternary\n ? Array.isArray(args[0])\n ? args[0]\n : Object.entries(args[0]).map(([key, action]) => [key, action])\n : [[args[0], args[1], args[2]]]\n ) as [\n K,\n NodeAction<NodeInput, U, C, InterruptType, WriterType>,\n StateGraphAddNodeOptionsWithNodeInput<N | K, NodeInput, U> | undefined,\n ][];\n\n if (nodes.length === 0) {\n throw new Error(\"No nodes provided in `addNode`\");\n }\n\n for (const [key, action, options] of nodes) {\n if (key in this.channels) {\n throw new Error(\n `${key} is already being used as a state attribute (a.k.a. a channel), cannot also be used as a node name.`\n );\n }\n\n for (const reservedChar of [\n CHECKPOINT_NAMESPACE_SEPARATOR,\n CHECKPOINT_NAMESPACE_END,\n ]) {\n if (key.includes(reservedChar)) {\n throw new Error(\n `\"${reservedChar}\" is a reserved character and is not allowed in node names.`\n );\n }\n }\n this.warnIfCompiled(\n `Adding a node to a graph that has already been compiled. This will not be reflected in the compiled graph.`\n );\n\n if (key in this.nodes) {\n throw new Error(`Node \\`${key}\\` already present.`);\n }\n if (key === END || key === START) {\n throw new Error(`Node \\`${key}\\` is reserved.`);\n }\n\n let inputSpec: StateDefinition = this._schemaDefinition;\n if (options?.input !== undefined) {\n inputSpec = this._getChannelsFromSchema(options.input);\n }\n this._addSchema(inputSpec);\n\n let runnable;\n if (Runnable.isRunnable(action)) {\n runnable = action;\n } else if (typeof action === \"function\") {\n runnable = new RunnableCallable({\n func: action,\n name: key,\n trace: false,\n });\n } else {\n runnable = _coerceToRunnable(action);\n }\n\n const rawCachePolicy = options?.cachePolicy;\n let cachePolicy: CachePolicy | false | undefined;\n if (rawCachePolicy !== undefined) {\n cachePolicy =\n typeof rawCachePolicy === \"boolean\"\n ? rawCachePolicy\n ? {}\n : false\n : rawCachePolicy;\n }\n\n // If an error handler is provided, register an auto-generated handler\n // node that runs only after this node's retry policy is exhausted.\n let errorHandlerNode: string | undefined;\n if (options?.errorHandler !== undefined) {\n errorHandlerNode = `__error_handler__${key}`;\n if (errorHandlerNode in this.nodes) {\n throw new Error(\n `Cannot add error handler to node \\`${key}\\`: the reserved name \\`${errorHandlerNode}\\` is already in use. ` +\n `StateGraph registers \\`__error_handler__<nodeName>\\` when you pass \\`errorHandler\\` in addNode options. ` +\n `Remove or rename the existing node with that name (for example, you may have added it manually).`\n );\n }\n const userHandler = options.errorHandler;\n const handlerRunnable = new RunnableCallable({\n func: (state: unknown, config: LangGraphRunnableConfig) => {\n // Per-task failure context, injected when the handler task is\n // prepared (see _prepareNodeErrorHandlerTask).\n const nodeError = config?.configurable?.[CONFIG_KEY_NODE_ERROR] as\n | NodeError\n | undefined;\n return userHandler(\n state as NodeInput,\n nodeError as NodeError,\n config\n );\n },\n name: errorHandlerNode,\n trace: false,\n });\n const handlerSpec: StateGraphNodeSpec<S, U> = {\n runnable: handlerRunnable as unknown as Runnable<S, U>,\n metadata: undefined,\n input: inputSpec ?? this._schemaDefinition,\n retryPolicy: undefined,\n cachePolicy: undefined,\n isErrorHandler: true,\n };\n this.nodes[errorHandlerNode as N] = handlerSpec;\n }\n\n const nodeSpec: StateGraphNodeSpec<S, U> = {\n runnable: runnable as unknown as Runnable<S, U>,\n retryPolicy: options?.retryPolicy,\n cachePolicy,\n timeout: coerceTimeoutPolicy(options?.timeout),\n metadata: options?.metadata,\n input: inputSpec ?? this._schemaDefinition,\n subgraphs: isPregelLike(runnable)\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [runnable as Pregel<any, any>]\n : options?.subgraphs,\n ends: options?.ends,\n defer: options?.defer,\n errorHandlerNode,\n };\n\n this.nodes[key as unknown as N] = nodeSpec;\n }\n\n return this as StateGraph<SD, S, U, N | K, I, O, C>;\n }\n\n override addEdge(\n startKey: typeof START | N | N[],\n endKey: N | typeof END\n ): this {\n if (typeof startKey === \"string\") {\n return super.addEdge(startKey, endKey);\n }\n\n if (this.compiled) {\n console.warn(\n \"Adding an edge to a graph that has already been compiled. This will \" +\n \"not be reflected in the compiled graph.\"\n );\n }\n\n for (const start of startKey) {\n if (start === END) {\n throw new Error(\"END cannot be a start node\");\n }\n if (!Object.keys(this.nodes).some((node) => node === start)) {\n throw new Error(`Need to add a node named \"${start}\" first`);\n }\n }\n if (endKey === END) {\n throw new Error(\"END cannot be an end node\");\n }\n if (!Object.keys(this.nodes).some((node) => node === endKey)) {\n throw new Error(`Need to add a node named \"${endKey}\" first`);\n }\n\n this.waitingEdges.add([startKey, endKey]);\n\n return this;\n }\n\n addSequence<K extends string, NodeInput = S, NodeOutput extends U = U>(\n nodes: [\n key: K,\n action: NodeAction<NodeInput, NodeOutput, C, InterruptType, WriterType>,\n options?: StateGraphAddNodeOptionsWithNodeInput<N | K, NodeInput, U>,\n ][]\n ): StateGraph<\n SD,\n S,\n U,\n N | K,\n I,\n O,\n C,\n MergeReturnType<NodeReturnType, { [key in K]: NodeOutput }>\n >;\n\n addSequence<\n K extends string,\n NodeMap extends Record<K, NodeAction<S, U, C, InterruptType, WriterType>>,\n >(\n nodes: NodeMap\n ): StateGraph<\n SD,\n S,\n U,\n N | K,\n I,\n O,\n C,\n MergeReturnType<\n NodeReturnType,\n {\n [key in keyof NodeMap]: NodeMap[key] extends NodeAction<\n S,\n infer U,\n C,\n InterruptType,\n WriterType\n >\n ? U\n : never;\n }\n >\n >;\n\n addSequence<K extends string, NodeInput = S, NodeOutput extends U = U>(\n nodes:\n | [\n key: K,\n action: NodeAction<\n NodeInput,\n NodeOutput,\n C,\n InterruptType,\n WriterType\n >,\n options?: StateGraphAddNodeOptionsWithNodeInput<N | K, NodeInput, U>,\n ][]\n | Record<\n K,\n NodeAction<NodeInput, NodeOutput, C, InterruptType, WriterType>\n >\n ): StateGraph<\n SD,\n S,\n U,\n N | K,\n I,\n O,\n C,\n MergeReturnType<NodeReturnType, { [key in K]: NodeOutput }>\n > {\n const parsedNodes = Array.isArray(nodes) ? nodes : Object.entries(nodes);\n\n if (parsedNodes.length === 0) {\n throw new Error(\"Sequence requires at least one node.\");\n }\n\n let previousNode: N | undefined;\n for (const [key, action, options] of parsedNodes) {\n if (key in this.nodes) {\n throw new Error(\n `Node names must be unique: node with the name \"${key}\" already exists.`\n );\n }\n\n const validKey = key as unknown as N;\n this.addNode(\n key as K,\n action as NodeAction<\n NodeInput,\n NodeOutput,\n C,\n InterruptType,\n WriterType\n >,\n options\n );\n if (previousNode != null) {\n this.addEdge(previousNode, validKey);\n }\n\n previousNode = validKey;\n }\n\n return this as StateGraph<\n SD,\n S,\n U,\n N | K,\n I,\n O,\n C,\n MergeReturnType<NodeReturnType, { [key in K]: NodeOutput }>\n >;\n }\n\n override compile<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const TTransformers extends ReadonlyArray<() => StreamTransformer<any>> =\n [],\n >({\n checkpointer,\n store,\n cache,\n interruptBefore,\n interruptAfter,\n name,\n description,\n transformers,\n }: {\n checkpointer?: BaseCheckpointSaver | boolean;\n store?: BaseStore;\n cache?: BaseCache;\n interruptBefore?: N[] | All;\n interruptAfter?: N[] | All;\n name?: string;\n description?: string;\n /**\n * Stream transformer factories baked into the compiled graph. These run\n * automatically for every `streamEvents(..., { version: \"v3\" })` call,\n * before any call-site transformers.\n */\n transformers?: TTransformers;\n } = {}): CompiledStateGraph<\n Prettify<S>,\n Prettify<U>,\n N,\n I,\n O,\n C,\n NodeReturnType,\n InterruptType,\n WriterType,\n TTransformers\n > {\n // Materialize the single shared default error-handler node (when\n // `setNodeDefaults({ errorHandler })` configured one) BEFORE validation so\n // reachability and `Command({ goto })` target checks treat it like any\n // other error-handler node. It is removed in `finally` so the builder stays\n // immutable across repeated `compile()` calls.\n const defaultErrorHandlerSpec = this._createDefaultErrorHandlerSpec();\n if (defaultErrorHandlerSpec !== undefined) {\n if (DEFAULT_ERROR_HANDLER_NODE in this.nodes) {\n throw new Error(\n `Cannot apply a default error handler: the reserved node name ` +\n `\\`${DEFAULT_ERROR_HANDLER_NODE}\\` is already in use. ` +\n `setNodeDefaults({ errorHandler }) registers a node with that name; ` +\n `rename the conflicting node.`\n );\n }\n this.nodes[DEFAULT_ERROR_HANDLER_NODE as N] = defaultErrorHandlerSpec;\n }\n\n try {\n return this._compileResolved({\n checkpointer,\n store,\n cache,\n interruptBefore,\n interruptAfter,\n name,\n description,\n transformers,\n defaultErrorHandlerNode:\n defaultErrorHandlerSpec !== undefined\n ? DEFAULT_ERROR_HANDLER_NODE\n : undefined,\n });\n } finally {\n if (defaultErrorHandlerSpec !== undefined) {\n delete this.nodes[DEFAULT_ERROR_HANDLER_NODE as N];\n }\n }\n }\n\n /** @internal */\n protected _compileResolved<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const TTransformers extends ReadonlyArray<() => StreamTransformer<any>> =\n [],\n >({\n checkpointer,\n store,\n cache,\n interruptBefore,\n interruptAfter,\n name,\n description,\n transformers,\n defaultErrorHandlerNode,\n }: {\n checkpointer?: BaseCheckpointSaver | boolean;\n store?: BaseStore;\n cache?: BaseCache;\n interruptBefore?: N[] | All;\n interruptAfter?: N[] | All;\n name?: string;\n description?: string;\n transformers?: TTransformers;\n defaultErrorHandlerNode?: string;\n }): CompiledStateGraph<\n Prettify<S>,\n Prettify<U>,\n N,\n I,\n O,\n C,\n NodeReturnType,\n InterruptType,\n WriterType,\n TTransformers\n > {\n // validate the graph\n this.validate([\n ...(Array.isArray(interruptBefore) ? interruptBefore : []),\n ...(Array.isArray(interruptAfter) ? interruptAfter : []),\n ]);\n\n // prepare output channels\n const outputKeys = Object.keys(\n this._schemaDefinitions.get(this._outputDefinition)\n );\n const outputChannels =\n outputKeys.length === 1 && outputKeys[0] === ROOT ? ROOT : outputKeys;\n\n const streamKeys = Object.keys(this.channels);\n const streamChannels =\n streamKeys.length === 1 && streamKeys[0] === ROOT ? ROOT : streamKeys;\n\n const userInterrupt = this._interrupt;\n // create empty compiled graph\n const compiled = new CompiledStateGraph<\n S,\n U,\n N,\n I,\n O,\n C,\n NodeReturnType,\n InterruptType,\n WriterType,\n TTransformers\n >({\n builder: this,\n checkpointer,\n interruptAfter,\n interruptBefore,\n autoValidate: false,\n nodes: {} as Record<N | typeof START, PregelNode<S, U>>,\n channels: {\n ...this.channels,\n [START]: new EphemeralValue(),\n } as Record<N | typeof START | typeof END | string, BaseChannel>,\n inputChannels: START,\n outputChannels,\n streamChannels,\n streamMode: \"updates\",\n store,\n cache,\n name,\n description,\n userInterrupt,\n streamTransformers: transformers,\n });\n\n // attach nodes, edges and branches\n compiled.attachNode(START);\n // Resolve graph-wide node defaults. Per-node values always win. Defaults\n // are merged into a copy of each spec so repeated `compile()` calls remain\n // stable (the builder's node specs are never mutated).\n //\n // - `retryPolicy` / `timeout` apply to all nodes, including error-handler\n // nodes (a stuck or transiently-failing handler is treated like any\n // other node).\n // - `cachePolicy` and the default `errorHandler` apply to regular nodes\n // only — caching a handler result is unsafe, and a handler must never\n // catch its own (or another handler's) failure.\n const nodeDefaults = this._nodeDefaults;\n const hasNodeDefaults =\n nodeDefaults.retryPolicy !== undefined ||\n nodeDefaults.cachePolicy !== undefined ||\n nodeDefaults.timeout !== undefined ||\n defaultErrorHandlerNode !== undefined;\n for (const [key, node] of Object.entries<StateGraphNodeSpec<S, U>>(\n this.nodes\n )) {\n const isErrorHandlerNode = node.isErrorHandler === true;\n const resolvedNode = hasNodeDefaults\n ? {\n ...node,\n retryPolicy: node.retryPolicy ?? nodeDefaults.retryPolicy,\n cachePolicy: isErrorHandlerNode\n ? undefined\n : node.cachePolicy === false\n ? undefined\n : (node.cachePolicy ?? nodeDefaults.cachePolicy),\n timeout: node.timeout ?? nodeDefaults.timeout,\n errorHandlerNode:\n !isErrorHandlerNode &&\n defaultErrorHandlerNode !== undefined &&\n node.errorHandlerNode === undefined\n ? defaultErrorHandlerNode\n : node.errorHandlerNode,\n }\n : node;\n compiled.attachNode(key as N, resolvedNode);\n }\n compiled.attachBranch(START, SELF, _getControlBranch() as Branch<S, N>, {\n withReader: false,\n });\n for (const [key] of Object.entries<StateGraphNodeSpec<S, U>>(this.nodes)) {\n compiled.attachBranch(\n key as N,\n SELF,\n _getControlBranch() as Branch<S, N>,\n {\n withReader: false,\n }\n );\n }\n for (const [start, end] of this.edges) {\n compiled.attachEdge(start, end);\n }\n for (const [starts, end] of this.waitingEdges) {\n compiled.attachEdge(starts, end);\n }\n for (const [start, branches] of Object.entries(this.branches)) {\n for (const [name, branch] of Object.entries(branches)) {\n compiled.attachBranch(start as N, name, branch);\n }\n }\n\n return compiled.validate();\n }\n}\n\nfunction _getChannels<Channels extends Record<string, unknown> | unknown>(\n schema: StateGraphArgs<Channels>[\"channels\"]\n): Record<string, BaseChannel> {\n const channels: Record<string, BaseChannel> = {};\n for (const [name, val] of Object.entries(schema)) {\n if (name === ROOT) {\n channels[name] = getChannel<Channels>(val as SingleReducer<Channels>);\n } else {\n const key = name as keyof Channels;\n channels[name] = getChannel<Channels[typeof key]>(\n val as SingleReducer<Channels[typeof key]>\n );\n }\n }\n return channels;\n}\n\n/**\n * Final result from building and compiling a {@link StateGraph}.\n * Should not be instantiated directly, only using the StateGraph `.compile()`\n * instance method.\n *\n * @typeParam S - The full state type representing the complete shape of your graph's\n * state after all reducers have been applied. This is the type you receive when\n * reading state in nodes or after invoking the graph.\n *\n * @typeParam U - The update type representing what nodes can return to modify state.\n * Typically a partial of the state type, allowing nodes to update only specific fields.\n * Can also include {@link Command} objects for advanced control flow.\n *\n * @typeParam N - Union of all node names in the graph (e.g., `\"agent\" | \"tool\"`).\n * Used for type-safe routing with {@link Command.goto} and edge definitions.\n *\n * @typeParam I - The input schema definition. Determines what shape of data the graph\n * accepts when invoked. Defaults to the main state schema if not explicitly set.\n *\n * @typeParam O - The output schema definition. Determines what shape of data the graph\n * returns after execution. Defaults to the main state schema if not explicitly set.\n *\n * @typeParam C - The config/context schema definition. Defines additional configuration\n * that can be passed to the graph at runtime via {@link LangGraphRunnableConfig}.\n *\n * @typeParam NodeReturnType - Constrains what types nodes in this graph can return.\n * Useful for enforcing consistent return patterns across all nodes.\n *\n * @typeParam InterruptType - The type of values that can be passed when resuming from\n * an {@link interrupt}. Used with human-in-the-loop patterns.\n *\n * @typeParam WriterType - The type for custom stream writers. Used with the `writer`\n * option to enable typed custom streaming from within nodes.\n *\n * @typeParam TStreamTransformers - Stream transformer factories registered at\n * compile time via the `transformers` option. Used to type extensions on\n * `streamEvents(..., { version: \"v3\" })`.\n */\nexport class CompiledStateGraph<\n S,\n U,\n N extends string = typeof START,\n I extends StateDefinitionInit = StateDefinition,\n O extends StateDefinitionInit = StateDefinition,\n C extends StateDefinitionInit = StateDefinition,\n NodeReturnType = unknown,\n InterruptType = unknown,\n WriterType = unknown,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n TStreamTransformers extends ReadonlyArray<() => StreamTransformer<any>> = [],\n> extends CompiledGraph<\n N,\n S,\n U,\n ExtractStateType<C>,\n ExtractUpdateType<I, ExtractStateType<I>>,\n ExtractStateType<O>,\n NodeReturnType,\n CommandInstance<InferInterruptResumeType<InterruptType>, Prettify<U>, N>,\n InferWriterType<WriterType>,\n TStreamTransformers\n> {\n declare builder: StateGraph<unknown, S, U, N, I, O, C, NodeReturnType>;\n\n /**\n * The description of the compiled graph.\n * This is used by the supervisor agent to describe the handoff to the agent.\n */\n description?: string;\n\n /** @internal */\n _metaRegistry: SchemaMetaRegistry = schemaMetaRegistry;\n\n constructor({\n description,\n ...rest\n }: { description?: string } & ConstructorParameters<\n typeof CompiledGraph<\n N,\n S,\n U,\n ExtractStateType<C>,\n ExtractUpdateType<I, ExtractStateType<I>>,\n ExtractStateType<O>,\n NodeReturnType,\n CommandInstance<InferInterruptResumeType<InterruptType>, Prettify<U>, N>,\n InferWriterType<WriterType>,\n TStreamTransformers\n >\n >[0]) {\n super(rest);\n this.description = description;\n }\n\n attachNode(key: typeof START, node?: never): void;\n\n attachNode(key: N, node: StateGraphNodeSpec<S, U>): void;\n\n attachNode(key: N | typeof START, node?: StateGraphNodeSpec<S, U>): void {\n let outputKeys: string[];\n if (key === START) {\n // Get input schema keys excluding managed values\n outputKeys = Object.entries(\n this.builder._schemaDefinitions.get(this.builder._inputDefinition)\n ).map(([k]) => k);\n } else {\n outputKeys = Object.keys(this.builder.channels);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function _getRoot(input: unknown): [string, any][] | null {\n if (isCommand(input)) {\n if (input.graph === Command.PARENT) {\n return null;\n }\n return input._updateAsTuples();\n } else if (\n Array.isArray(input) &&\n input.length > 0 &&\n input.some((i) => isCommand(i))\n ) {\n const updates: [string, unknown][] = [];\n for (const i of input) {\n if (isCommand(i)) {\n if (i.graph === Command.PARENT) {\n continue;\n }\n updates.push(...i._updateAsTuples());\n } else {\n updates.push([ROOT, i]);\n }\n }\n return updates;\n } else if (input != null) {\n return [[ROOT, input]];\n }\n return null;\n }\n\n // to avoid name collision below\n const nodeKey = key;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const validateStateUpdates = async (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n updates: [string, any][] | null\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Promise<[string, any][] | null> => {\n if (updates == null || updates.length === 0) return updates;\n\n const schemaDef = this.builder._schemaRuntimeDefinition;\n if (StateSchema.isInstance(schemaDef)) {\n const schemaKeys = new Set(schemaDef.getChannelKeys());\n return Promise.all(\n updates.map(async ([k, v]) => {\n if (!schemaKeys.has(k)) return [k, v];\n\n const parsed = await schemaDef.validateInput({ [k]: v });\n return [\n k,\n Object.prototype.hasOwnProperty.call(parsed, k) ? parsed[k] : v,\n ];\n })\n );\n }\n\n if (isInteropZodObject(schemaDef)) {\n const schemaKeys = new Set(\n Object.keys(getInteropZodObjectShape(schemaDef))\n );\n const schemaUpdates = updates.filter(([k]) => schemaKeys.has(k));\n if (schemaUpdates.length === 0) return updates;\n\n const updateSchema = interopZodObjectPartial(\n this._metaRegistry.getExtendedChannelSchemas(schemaDef, {\n withReducerSchema: true,\n })\n );\n const valueSchema = interopZodObjectPartial(schemaDef);\n return updates.map(([k, v]) => {\n if (!schemaKeys.has(k)) return [k, v];\n\n const [isOverwrite, overwriteValue] = _getOverwriteValue(v);\n if (isOverwrite) {\n const parsed = interopParse(valueSchema, { [k]: overwriteValue });\n return [\n k,\n Object.prototype.hasOwnProperty.call(parsed, k)\n ? { [OVERWRITE]: parsed[k] }\n : v,\n ];\n }\n\n const parsed = interopParse(updateSchema, { [k]: v });\n return [\n k,\n Object.prototype.hasOwnProperty.call(parsed, k) ? parsed[k] : v,\n ];\n });\n }\n\n return updates;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async function _getUpdates(input: U): Promise<[string, any][] | null> {\n if (!input) {\n return null;\n } else if (isCommand(input)) {\n if (input.graph === Command.PARENT) {\n return null;\n }\n return validateStateUpdates(\n input._updateAsTuples().filter(([k]) => outputKeys.includes(k))\n );\n } else if (\n Array.isArray(input) &&\n input.length > 0 &&\n input.some(isCommand)\n ) {\n const updates: [string, unknown][] = [];\n for (const item of input) {\n if (isCommand(item)) {\n if (item.graph === Command.PARENT) {\n continue;\n }\n updates.push(\n ...item._updateAsTuples().filter(([k]) => outputKeys.includes(k))\n );\n } else {\n const itemUpdates = await _getUpdates(item);\n if (itemUpdates) {\n updates.push(...(itemUpdates ?? []));\n }\n }\n }\n return validateStateUpdates(updates);\n } else if (typeof input === \"object\" && !Array.isArray(input)) {\n return validateStateUpdates(\n Object.entries(input).filter(([k]) => outputKeys.includes(k))\n );\n } else {\n const typeofInput = Array.isArray(input) ? \"array\" : typeof input;\n throw new InvalidUpdateError(\n `Expected node \"${nodeKey.toString()}\" to return an object or an array containing at least one Command object, received ${typeofInput}`,\n {\n lc_error_code: \"INVALID_GRAPH_NODE_RETURN_VALUE\",\n }\n );\n }\n }\n\n const stateWriteEntries: (ChannelWriteTupleEntry | ChannelWriteEntry)[] = [\n {\n value: PASSTHROUGH,\n mapper: new RunnableCallable({\n func:\n outputKeys.length && outputKeys[0] === ROOT\n ? _getRoot\n : _getUpdates,\n trace: false,\n recurse: false,\n }),\n },\n ];\n\n // add node and output channel\n if (key === START) {\n this.nodes[key] = new PregelNode<S, U>({\n tags: [TAG_HIDDEN],\n triggers: [START],\n channels: [START],\n writers: [new ChannelWrite(stateWriteEntries, [TAG_HIDDEN])],\n });\n } else {\n const inputDefinition = node?.input ?? this.builder._schemaDefinition;\n const inputValues = Object.fromEntries(\n Object.keys(this.builder._schemaDefinitions.get(inputDefinition)).map(\n (k) => [k, k]\n )\n );\n const isSingleInput =\n Object.keys(inputValues).length === 1 && ROOT in inputValues;\n const branchChannel = `branch:to:${key}` as string | N;\n this.channels[branchChannel] = node?.defer\n ? new LastValueAfterFinish()\n : new EphemeralValue(false);\n const nodeCachePolicy = node?.cachePolicy;\n const cachePolicy =\n nodeCachePolicy === false ? undefined : nodeCachePolicy;\n this.nodes[key] = new PregelNode<S, U>({\n triggers: [branchChannel],\n // read state keys\n channels: isSingleInput ? Object.keys(inputValues) : inputValues,\n // publish to state keys\n writers: [new ChannelWrite(stateWriteEntries, [TAG_HIDDEN])],\n mapper: isSingleInput\n ? undefined\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (input: Record<string, any>) => {\n return Object.fromEntries(\n Object.entries(input).filter(([k]) => k in inputValues)\n );\n },\n bound: node?.runnable,\n metadata: node?.metadata,\n retryPolicy: node?.retryPolicy,\n cachePolicy,\n timeout: node?.timeout,\n subgraphs: node?.subgraphs,\n ends: node?.ends,\n isErrorHandler: node?.isErrorHandler,\n errorHandlerNode: node?.errorHandlerNode,\n });\n }\n }\n\n attachEdge(starts: N | N[] | \"__start__\", end: N | \"__end__\"): void {\n if (end === END) return;\n if (typeof starts === \"string\") {\n this.nodes[starts].writers.push(\n new ChannelWrite(\n [{ channel: `branch:to:${end}`, value: null }],\n [TAG_HIDDEN]\n )\n );\n } else if (Array.isArray(starts)) {\n const channelName = `join:${starts.join(\"+\")}:${end}`;\n // register channel\n this.channels[channelName as string | N] = this.builder.nodes[end].defer\n ? new NamedBarrierValueAfterFinish(new Set(starts))\n : new NamedBarrierValue(new Set(starts));\n // subscribe to channel\n this.nodes[end].triggers.push(channelName);\n // publish to channel\n for (const start of starts) {\n this.nodes[start].writers.push(\n new ChannelWrite(\n [{ channel: channelName, value: start }],\n [TAG_HIDDEN]\n )\n );\n }\n }\n }\n\n attachBranch(\n start: N | typeof START,\n _: string,\n branch: Branch<S, N>,\n options: { withReader?: boolean } = { withReader: true }\n ): void {\n const branchWriter = async (\n packets: (string | Send)[],\n config: LangGraphRunnableConfig\n ) => {\n const filteredPackets = packets.filter((p) => p !== END);\n if (!filteredPackets.length) return;\n\n const writes: (ChannelWriteEntry | Send)[] = filteredPackets.map((p) => {\n if (_isSend(p)) return p;\n return { channel: p === END ? p : `branch:to:${p}`, value: start };\n });\n await ChannelWrite.doWrite(\n { ...config, tags: (config.tags ?? []).concat([TAG_HIDDEN]) },\n writes\n );\n };\n // attach branch publisher\n this.nodes[start].writers.push(\n branch.run(\n branchWriter,\n // reader\n options.withReader\n ? (config) =>\n ChannelRead.doRead<S>(\n config,\n this.streamChannels ?? this.outputChannels,\n true\n )\n : undefined\n )\n );\n }\n\n protected async _validateInput(\n input: ExtractUpdateType<I, ExtractStateType<I>>\n ): Promise<ExtractUpdateType<I, ExtractStateType<I>>> {\n if (input == null) return input;\n\n const inputDef = this.builder._inputRuntimeDefinition;\n const schemaDef = this.builder._schemaRuntimeDefinition;\n\n // Determine which schema to use for validation\n // Priority: inputDef (if it's a validatable schema), otherwise fall back to schemaDef\n\n // Handle StateSchema validation for input schema\n if (StateSchema.isInstance(inputDef)) {\n if (isCommand(input)) {\n const parsedInput = input;\n if (input.update) {\n parsedInput.update = await inputDef.validateInput(\n Array.isArray(input.update)\n ? Object.fromEntries(input.update)\n : input.update\n );\n }\n return parsedInput;\n }\n return await inputDef.validateInput(input);\n }\n\n // Handle StateSchema validation for state schema (when input is partial state)\n if (inputDef === PartialStateSchema && StateSchema.isInstance(schemaDef)) {\n if (isCommand(input)) {\n const parsedInput = input;\n if (input.update) {\n parsedInput.update = await schemaDef.validateInput(\n Array.isArray(input.update)\n ? Object.fromEntries(input.update)\n : input.update\n );\n }\n return parsedInput;\n }\n return await schemaDef.validateInput(input);\n }\n\n // Handle InteropZodObject validation\n const schema = (() => {\n const apply = (schema: InteropZodObject | undefined) => {\n if (schema == null) return undefined;\n return this._metaRegistry.getExtendedChannelSchemas(schema, {\n withReducerSchema: true,\n });\n };\n\n if (isInteropZodObject(inputDef)) return apply(inputDef);\n if (inputDef === PartialStateSchema) {\n if (isInteropZodObject(schemaDef)) {\n return interopZodObjectPartial(apply(schemaDef)!);\n }\n return undefined;\n }\n return undefined;\n })();\n\n if (isCommand(input)) {\n const parsedInput = input;\n if (input.update && schema != null) {\n const updateObj = Array.isArray(input.update)\n ? Object.fromEntries(input.update)\n : input.update;\n const parsed = interopParse(schema, updateObj);\n parsedInput.update = Object.fromEntries(\n Object.keys(updateObj).map((k) => [k, parsed[k]])\n );\n }\n return parsedInput;\n }\n if (schema != null) return interopParse(schema, input);\n return input;\n }\n\n public isInterrupted(input: unknown): input is {\n [INTERRUPT]: Interrupt<InferInterruptInputType<InterruptType>>[];\n } {\n return isInterrupted(input);\n }\n\n protected async _validateContext(\n config: Partial<Record<string, unknown>>\n ): Promise<Partial<Record<string, unknown>>> {\n const configSchema = this.builder._configRuntimeSchema;\n if (isInteropZodObject(configSchema)) interopParse(configSchema, config);\n return config;\n }\n}\n\n/**\n * Check if value is a legacy StateGraphArgs with channels.\n * @internal\n * @deprecated Use StateGraphInit instead\n */\nfunction isStateGraphArgs<Channels extends object | unknown>(\n obj: unknown | StateGraphArgs<Channels>\n): obj is StateGraphArgs<Channels> {\n return (\n typeof obj === \"object\" &&\n obj !== null &&\n (obj as StateGraphArgs<Channels>).channels !== undefined\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _controlBranch(value: any): (string | Send)[] {\n if (_isSend(value)) {\n return [value];\n }\n const commands = [];\n if (isCommand(value)) {\n commands.push(value);\n } else if (Array.isArray(value)) {\n commands.push(...value.filter(isCommand));\n }\n const destinations: (string | Send)[] = [];\n\n for (const command of commands) {\n if (command.graph === Command.PARENT) {\n throw new ParentCommand(command);\n }\n\n if (_isSend(command.goto)) {\n destinations.push(command.goto);\n } else if (typeof command.goto === \"string\") {\n destinations.push(command.goto);\n } else {\n if (Array.isArray(command.goto)) {\n destinations.push(...command.goto);\n }\n }\n }\n return destinations;\n}\n\nfunction _getControlBranch() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const CONTROL_BRANCH_PATH = new RunnableCallable<any, (string | Send)[]>({\n func: _controlBranch,\n tags: [TAG_HIDDEN],\n trace: false,\n recurse: false,\n name: \"<control_branch>\",\n });\n return new Branch({\n path: CONTROL_BRANCH_PATH,\n });\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.cts","names":[],"sources":["../../src/graph/state.ts"],"mappings":"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"}
1
+ {"version":3,"file":"state.d.cts","names":[],"sources":["../../src/graph/state.ts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","names":[],"sources":["../../src/graph/state.ts"],"mappings":"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"}
1
+ {"version":3,"file":"state.d.ts","names":[],"sources":["../../src/graph/state.ts"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { coerceTimeoutPolicy } from "../pregel/utils/timeout.js";
2
- import { CONFIG_KEY_NODE_ERROR, Command, END, SELF, START, TAG_HIDDEN, _isSend, isCommand, isInterrupted } from "../constants.js";
2
+ import { CONFIG_KEY_NODE_ERROR, Command, END, OVERWRITE, SELF, START, TAG_HIDDEN, _getOverwriteValue, _isSend, isCommand, isInterrupted } from "../constants.js";
3
3
  import { InvalidUpdateError, ParentCommand, StateGraphInputError } from "../errors.js";
4
4
  import { LastValueAfterFinish } from "../channels/last_value.js";
5
5
  import { AnnotationRoot, getChannel } from "./annotation.js";
@@ -16,7 +16,7 @@ import "../state/index.js";
16
16
  import { schemaMetaRegistry } from "./zod/meta.js";
17
17
  import { isStateDefinitionInit, isStateGraphInit } from "./types.js";
18
18
  import { Runnable, _coerceToRunnable } from "@langchain/core/runnables";
19
- import { interopParse, interopZodObjectPartial, isInteropZodObject } from "@langchain/core/utils/types";
19
+ import { getInteropZodObjectShape, interopParse, interopZodObjectPartial, isInteropZodObject } from "@langchain/core/utils/types";
20
20
  //#region src/graph/state.ts
21
21
  const ROOT = "__root__";
22
22
  /**
@@ -578,22 +578,51 @@ var CompiledStateGraph = class extends CompiledGraph {
578
578
  return null;
579
579
  }
580
580
  const nodeKey = key;
581
- function _getUpdates(input) {
581
+ const validateStateUpdates = async (updates) => {
582
+ if (updates == null || updates.length === 0) return updates;
583
+ const schemaDef = this.builder._schemaRuntimeDefinition;
584
+ if (StateSchema.isInstance(schemaDef)) {
585
+ const schemaKeys = new Set(schemaDef.getChannelKeys());
586
+ return Promise.all(updates.map(async ([k, v]) => {
587
+ if (!schemaKeys.has(k)) return [k, v];
588
+ const parsed = await schemaDef.validateInput({ [k]: v });
589
+ return [k, Object.prototype.hasOwnProperty.call(parsed, k) ? parsed[k] : v];
590
+ }));
591
+ }
592
+ if (isInteropZodObject(schemaDef)) {
593
+ const schemaKeys = new Set(Object.keys(getInteropZodObjectShape(schemaDef)));
594
+ if (updates.filter(([k]) => schemaKeys.has(k)).length === 0) return updates;
595
+ const updateSchema = interopZodObjectPartial(this._metaRegistry.getExtendedChannelSchemas(schemaDef, { withReducerSchema: true }));
596
+ const valueSchema = interopZodObjectPartial(schemaDef);
597
+ return updates.map(([k, v]) => {
598
+ if (!schemaKeys.has(k)) return [k, v];
599
+ const [isOverwrite, overwriteValue] = _getOverwriteValue(v);
600
+ if (isOverwrite) {
601
+ const parsed = interopParse(valueSchema, { [k]: overwriteValue });
602
+ return [k, Object.prototype.hasOwnProperty.call(parsed, k) ? { [OVERWRITE]: parsed[k] } : v];
603
+ }
604
+ const parsed = interopParse(updateSchema, { [k]: v });
605
+ return [k, Object.prototype.hasOwnProperty.call(parsed, k) ? parsed[k] : v];
606
+ });
607
+ }
608
+ return updates;
609
+ };
610
+ async function _getUpdates(input) {
582
611
  if (!input) return null;
583
612
  else if (isCommand(input)) {
584
613
  if (input.graph === Command.PARENT) return null;
585
- return input._updateAsTuples().filter(([k]) => outputKeys.includes(k));
614
+ return validateStateUpdates(input._updateAsTuples().filter(([k]) => outputKeys.includes(k)));
586
615
  } else if (Array.isArray(input) && input.length > 0 && input.some(isCommand)) {
587
616
  const updates = [];
588
617
  for (const item of input) if (isCommand(item)) {
589
618
  if (item.graph === Command.PARENT) continue;
590
619
  updates.push(...item._updateAsTuples().filter(([k]) => outputKeys.includes(k)));
591
620
  } else {
592
- const itemUpdates = _getUpdates(item);
621
+ const itemUpdates = await _getUpdates(item);
593
622
  if (itemUpdates) updates.push(...itemUpdates ?? []);
594
623
  }
595
- return updates;
596
- } else if (typeof input === "object" && !Array.isArray(input)) return Object.entries(input).filter(([k]) => outputKeys.includes(k));
624
+ return validateStateUpdates(updates);
625
+ } else if (typeof input === "object" && !Array.isArray(input)) return validateStateUpdates(Object.entries(input).filter(([k]) => outputKeys.includes(k)));
597
626
  else {
598
627
  const typeofInput = Array.isArray(input) ? "array" : typeof input;
599
628
  throw new InvalidUpdateError(`Expected node "${nodeKey.toString()}" to return an object or an array containing at least one Command object, received ${typeofInput}`, { lc_error_code: "INVALID_GRAPH_NODE_RETURN_VALUE" });