langchain
Version:
Typescript bindings for langchain
1 lines • 2.37 kB
Source Map (JSON)
{"version":3,"file":"state.cjs","names":["middleware: AgentMiddleware<InteropZodObject | undefined>","node: AgentNode","#nodes","name: string"],"sources":["../../src/agents/state.ts"],"sourcesContent":["import type { InteropZodObject } from \"@langchain/core/utils/types\";\nimport type { RunnableCallable } from \"./RunnableCallable.js\";\nimport type { AgentMiddleware } from \"./middleware/types.js\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AgentNode = RunnableCallable<any, any>;\n\n/**\n * The StateManager is responsible for managing the state of the agent.\n * The `createAgent` maintains different nodes with their own state. For the user\n * however, they only see the combined state of all nodes. This class is helps\n * to share the state between different nodes.\n *\n * @internal\n */\nexport class StateManager {\n #nodes = new Map<string, AgentNode[]>();\n\n /**\n * Add node to middleware group.\n * @param name - The name of the middleware group.\n * @param node - The node to add.\n */\n addNode(\n middleware: AgentMiddleware<InteropZodObject | undefined>,\n node: AgentNode\n ) {\n this.#nodes.set(middleware.name, [\n ...(this.#nodes.get(middleware.name) ?? []),\n node,\n ]);\n }\n\n /**\n * Get the state of a middleware group.\n * @param name - The name of the middleware group.\n * @returns The state of the middleware group.\n */\n getState(name: string) {\n const middlewareNodes = this.#nodes.get(name) ?? [];\n const state = middlewareNodes.reduce(\n (prev, node) => {\n return {\n ...prev,\n ...((node.getState() as Record<string, unknown>) ?? {}),\n };\n },\n {} as Record<string, unknown>\n );\n\n /**\n * we internally reset the jumpTo property and shouldn't propagate this value\n * to the middleware hooks.\n */\n delete state.jumpTo;\n\n return state;\n }\n}\n"],"mappings":";;;;;;;;;;AAeA,IAAa,eAAb,MAA0B;CACxB,yBAAS,IAAI;;;;;;CAOb,QACEA,YACAC,MACA;EACA,KAAKC,OAAO,IAAI,WAAW,MAAM,CAC/B,GAAI,KAAKA,OAAO,IAAI,WAAW,KAAK,IAAI,CAAE,GAC1C,IACD,EAAC;CACH;;;;;;CAOD,SAASC,MAAc;EACrB,MAAM,kBAAkB,KAAKD,OAAO,IAAI,KAAK,IAAI,CAAE;EACnD,MAAM,QAAQ,gBAAgB,OAC5B,CAAC,MAAM,SAAS;AACd,UAAO;IACL,GAAG;IACH,GAAK,KAAK,UAAU,IAAgC,CAAE;GACvD;EACF,GACD,CAAE,EACH;;;;;EAMD,OAAO,MAAM;AAEb,SAAO;CACR;AACF"}