@langchain/langgraph 1.0.0-alpha.2 → 1.0.0-alpha.4
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.
- package/CHANGELOG.md +13 -0
- package/dist/graph/message.cjs +3 -4
- package/dist/graph/message.cjs.map +1 -1
- package/dist/graph/message.d.cts +2 -1
- package/dist/graph/message.d.cts.map +1 -1
- package/dist/graph/message.d.ts +2 -1
- package/dist/graph/message.d.ts.map +1 -1
- package/dist/graph/message.js +3 -4
- package/dist/graph/message.js.map +1 -1
- package/dist/graph/messages_annotation.d.cts +5 -4
- package/dist/graph/messages_annotation.d.cts.map +1 -1
- package/dist/graph/messages_annotation.d.ts +5 -4
- package/dist/graph/messages_annotation.d.ts.map +1 -1
- package/dist/graph/state.cjs +5 -1
- package/dist/graph/state.cjs.map +1 -1
- package/dist/graph/state.d.cts +6 -9
- package/dist/graph/state.d.cts.map +1 -1
- package/dist/graph/state.d.ts +6 -9
- package/dist/graph/state.d.ts.map +1 -1
- package/dist/graph/state.js +5 -1
- package/dist/graph/state.js.map +1 -1
- package/dist/graph/zod/zod-registry.cjs.map +1 -1
- package/dist/graph/zod/zod-registry.d.cts.map +1 -1
- package/dist/graph/zod/zod-registry.js.map +1 -1
- package/dist/interrupt.cjs.map +1 -1
- package/dist/interrupt.d.cts +10 -1
- package/dist/interrupt.d.cts.map +1 -1
- package/dist/interrupt.d.ts +10 -1
- package/dist/interrupt.d.ts.map +1 -1
- package/dist/interrupt.js.map +1 -1
- package/dist/prebuilt/agentName.cjs +8 -5
- package/dist/prebuilt/agentName.cjs.map +1 -1
- package/dist/prebuilt/agentName.js +8 -5
- package/dist/prebuilt/agentName.js.map +1 -1
- package/dist/prebuilt/agent_executor.d.cts +5 -4
- package/dist/prebuilt/agent_executor.d.cts.map +1 -1
- package/dist/prebuilt/agent_executor.d.ts +5 -4
- package/dist/prebuilt/agent_executor.d.ts.map +1 -1
- package/dist/prebuilt/react_agent_executor.d.cts +3 -2
- package/dist/prebuilt/react_agent_executor.d.cts.map +1 -1
- package/dist/prebuilt/react_agent_executor.d.ts +3 -2
- package/dist/prebuilt/react_agent_executor.d.ts.map +1 -1
- package/dist/prebuilt/tool_node.cjs +2 -2
- package/dist/prebuilt/tool_node.cjs.map +1 -1
- package/dist/prebuilt/tool_node.js +3 -3
- package/dist/prebuilt/tool_node.js.map +1 -1
- package/dist/pregel/index.cjs +40 -12
- package/dist/pregel/index.cjs.map +1 -1
- package/dist/pregel/index.d.cts +13 -4
- package/dist/pregel/index.d.cts.map +1 -1
- package/dist/pregel/index.d.ts +13 -4
- package/dist/pregel/index.d.ts.map +1 -1
- package/dist/pregel/index.js +41 -13
- package/dist/pregel/index.js.map +1 -1
- package/dist/pregel/stream.cjs +107 -0
- package/dist/pregel/stream.cjs.map +1 -1
- package/dist/pregel/stream.js +107 -1
- package/dist/pregel/stream.js.map +1 -1
- package/dist/pregel/types.cjs.map +1 -1
- package/dist/pregel/types.d.cts +15 -2
- package/dist/pregel/types.d.cts.map +1 -1
- package/dist/pregel/types.d.ts +15 -2
- package/dist/pregel/types.d.ts.map +1 -1
- package/dist/pregel/types.js.map +1 -1
- package/dist/writer.cjs.map +1 -1
- package/dist/writer.d.cts +3 -1
- package/dist/writer.d.cts.map +1 -1
- package/dist/writer.d.ts +3 -1
- package/dist/writer.d.ts.map +1 -1
- package/dist/writer.js.map +1 -1
- package/package.json +29 -32
- package/dist/ui/index.cjs +0 -4
- package/dist/ui/index.d.cts +0 -5
- package/dist/ui/index.d.ts +0 -5
- package/dist/ui/index.js +0 -3
- package/dist/ui/stream.cjs +0 -145
- package/dist/ui/stream.cjs.map +0 -1
- package/dist/ui/stream.d.cts +0 -25
- package/dist/ui/stream.d.cts.map +0 -1
- package/dist/ui/stream.d.ts +0 -25
- package/dist/ui/stream.d.ts.map +0 -1
- package/dist/ui/stream.js +0 -143
- package/dist/ui/stream.js.map +0 -1
- package/dist/ui/types.infer.d.cts +0 -53
- package/dist/ui/types.infer.d.cts.map +0 -1
- package/dist/ui/types.infer.d.ts +0 -53
- package/dist/ui/types.infer.d.ts.map +0 -1
- package/dist/ui/types.message.d.cts +0 -95
- package/dist/ui/types.message.d.cts.map +0 -1
- package/dist/ui/types.message.d.ts +0 -95
- package/dist/ui/types.message.d.ts.map +0 -1
- package/dist/ui/types.schema.d.cts +0 -228
- package/dist/ui/types.schema.d.cts.map +0 -1
- package/dist/ui/types.schema.d.ts +0 -228
- package/dist/ui/types.schema.d.ts.map +0 -1
package/dist/interrupt.d.ts
CHANGED
|
@@ -44,6 +44,15 @@
|
|
|
44
44
|
*/
|
|
45
45
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
46
46
|
declare function interrupt<I = unknown, R = any>(value: I): R;
|
|
47
|
+
type FilterAny<X> = (<T>() => T extends X ? 1 : 2) extends (<T
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
49
|
+
>() => (T extends any ? 1 : 2)) ? never : X;
|
|
50
|
+
type InferInterruptInputType<T> = T extends typeof interrupt<infer I, unknown> ? I : T extends {
|
|
51
|
+
[key: string]: typeof interrupt<any, any>;
|
|
52
|
+
} ? { [K in keyof T]: InferInterruptInputType<T[K]> }[keyof T] : unknown;
|
|
53
|
+
type InferInterruptResumeType<T, TInner = false> = T extends typeof interrupt<never, infer R> ? TInner extends true ? FilterAny<R> : R : T extends {
|
|
54
|
+
[key: string]: typeof interrupt<any, any>;
|
|
55
|
+
} ? { [K in keyof T]: InferInterruptResumeType<T[K], true> }[keyof T] : unknown;
|
|
47
56
|
//#endregion
|
|
48
|
-
export { interrupt };
|
|
57
|
+
export { InferInterruptInputType, InferInterruptResumeType, interrupt };
|
|
49
58
|
//# sourceMappingURL=interrupt.d.ts.map
|
package/dist/interrupt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interrupt.d.ts","names":["interrupt","I","R"],"sources":["../src/interrupt.d.ts"],"sourcesContent":["/**\n * Interrupts the execution of a graph node.\n * This function can be used to pause execution of a node, and return the value of the `resume`\n * input when the graph is re-invoked using `Command`.\n * Multiple interrupts can be called within a single node, and each will be handled sequentially.\n *\n * When an interrupt is called:\n * 1. If there's a `resume` value available (from a previous `Command`), it returns that value.\n * 2. Otherwise, it throws a `GraphInterrupt` with the provided value\n * 3. The graph can be resumed by passing a `Command` with a `resume` value\n *\n * Because the `interrupt` function propagates by throwing a special `GraphInterrupt` error,\n * you should avoid using `try/catch` blocks around the `interrupt` function,\n * or if you do, ensure that the `GraphInterrupt` error is thrown again within your `catch` block.\n *\n * @param value - The value to include in the interrupt. This will be available in task.interrupts[].value\n * @returns The `resume` value provided when the graph is re-invoked with a Command\n *\n * @example\n * ```typescript\n * // Define a node that uses multiple interrupts\n * const nodeWithInterrupts = () => {\n * // First interrupt - will pause execution and include {value: 1} in task values\n * const answer1 = interrupt({ value: 1 });\n *\n * // Second interrupt - only called after first interrupt is resumed\n * const answer2 = interrupt({ value: 2 });\n *\n * // Use the resume values\n * return { myKey: answer1 + \" \" + answer2 };\n * };\n *\n * // Resume the graph after first interrupt\n * await graph.stream(new Command({ resume: \"answer 1\" }));\n *\n * // Resume the graph after second interrupt\n * await graph.stream(new Command({ resume: \"answer 2\" }));\n * // Final result: { myKey: \"answer 1 answer 2\" }\n * ```\n *\n * @throws {Error} If called outside the context of a graph\n * @throws {GraphInterrupt} When no resume value is available\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport declare function interrupt<I = unknown, R = any>(value: I): R;\n"],"mappings":";;AA4CA
|
|
1
|
+
{"version":3,"file":"interrupt.d.ts","names":["interrupt","I","R","FilterAny","T","X","InferInterruptInputType","K","InferInterruptResumeType","TInner"],"sources":["../src/interrupt.d.ts"],"sourcesContent":["/**\n * Interrupts the execution of a graph node.\n * This function can be used to pause execution of a node, and return the value of the `resume`\n * input when the graph is re-invoked using `Command`.\n * Multiple interrupts can be called within a single node, and each will be handled sequentially.\n *\n * When an interrupt is called:\n * 1. If there's a `resume` value available (from a previous `Command`), it returns that value.\n * 2. Otherwise, it throws a `GraphInterrupt` with the provided value\n * 3. The graph can be resumed by passing a `Command` with a `resume` value\n *\n * Because the `interrupt` function propagates by throwing a special `GraphInterrupt` error,\n * you should avoid using `try/catch` blocks around the `interrupt` function,\n * or if you do, ensure that the `GraphInterrupt` error is thrown again within your `catch` block.\n *\n * @param value - The value to include in the interrupt. This will be available in task.interrupts[].value\n * @returns The `resume` value provided when the graph is re-invoked with a Command\n *\n * @example\n * ```typescript\n * // Define a node that uses multiple interrupts\n * const nodeWithInterrupts = () => {\n * // First interrupt - will pause execution and include {value: 1} in task values\n * const answer1 = interrupt({ value: 1 });\n *\n * // Second interrupt - only called after first interrupt is resumed\n * const answer2 = interrupt({ value: 2 });\n *\n * // Use the resume values\n * return { myKey: answer1 + \" \" + answer2 };\n * };\n *\n * // Resume the graph after first interrupt\n * await graph.stream(new Command({ resume: \"answer 1\" }));\n *\n * // Resume the graph after second interrupt\n * await graph.stream(new Command({ resume: \"answer 2\" }));\n * // Final result: { myKey: \"answer 1 answer 2\" }\n * ```\n *\n * @throws {Error} If called outside the context of a graph\n * @throws {GraphInterrupt} When no resume value is available\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport declare function interrupt<I = unknown, R = any>(value: I): R;\ntype FilterAny<X> = (<T>() => T extends X ? 1 : 2) extends <T\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n>() => (T extends any ? 1 : 2) ? never : X;\nexport type InferInterruptInputType<T> = T extends typeof interrupt<infer I, unknown> ? I : T extends {\n [key: string]: typeof interrupt<any, any>;\n} ? {\n [K in keyof T]: InferInterruptInputType<T[K]>;\n}[keyof T] : unknown;\nexport type InferInterruptResumeType<T, TInner = false> = T extends typeof interrupt<never, infer R> ? TInner extends true ? FilterAny<R> : R : T extends {\n [key: string]: typeof interrupt<any, any>;\n} ? {\n [K in keyof T]: InferInterruptResumeType<T[K], true>;\n}[keyof T] : unknown;\nexport {};\n"],"mappings":";;AA4CA;;;;;AAAqE;;;;;;;AAIrE;;;;;;;;;;;;;AAKA;;;;;;;;;;;;;;;;;;iBATwBA,uCAAuCC,IAAIC;KAC9DC,yBAAyBC,UAAUC;;QAEhCD,kCAAiCC;KAC7BC,6BAA6BF,iBAAiBJ,8BAA8BC,IAAIG;wBAClEJ;kBAEVI,IAAIE,wBAAwBF,EAAEG,YACtCH;KACII,8CAA8CJ,iBAAiBJ,4BAA4BS,sBAAsBN,UAAUD,KAAKA,IAAIE;wBACtHJ;kBAEVI,IAAII,yBAAyBJ,EAAEG,kBACvCH"}
|
package/dist/interrupt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interrupt.js","names":["config: RunnableConfig | undefined","checkpointer: BaseCheckpointSaver","scratchpad: PregelScratchpad","ns: string[] | undefined"],"sources":["../src/interrupt.ts"],"sourcesContent":["import { AsyncLocalStorageProviderSingleton } from \"@langchain/core/singletons\";\nimport { RunnableConfig } from \"@langchain/core/runnables\";\nimport {\n BaseCheckpointSaver,\n type PendingWrite,\n} from \"@langchain/langgraph-checkpoint\";\nimport { GraphInterrupt, GraphValueError } from \"./errors.js\";\nimport {\n CONFIG_KEY_CHECKPOINT_NS,\n CONFIG_KEY_SCRATCHPAD,\n CONFIG_KEY_SEND,\n CONFIG_KEY_CHECKPOINTER,\n CHECKPOINT_NAMESPACE_SEPARATOR,\n RESUME,\n} from \"./constants.js\";\nimport { PregelScratchpad } from \"./pregel/types.js\";\nimport { XXH3 } from \"./hash.js\";\n\n/**\n * Interrupts the execution of a graph node.\n * This function can be used to pause execution of a node, and return the value of the `resume`\n * input when the graph is re-invoked using `Command`.\n * Multiple interrupts can be called within a single node, and each will be handled sequentially.\n *\n * When an interrupt is called:\n * 1. If there's a `resume` value available (from a previous `Command`), it returns that value.\n * 2. Otherwise, it throws a `GraphInterrupt` with the provided value\n * 3. The graph can be resumed by passing a `Command` with a `resume` value\n *\n * Because the `interrupt` function propagates by throwing a special `GraphInterrupt` error,\n * you should avoid using `try/catch` blocks around the `interrupt` function,\n * or if you do, ensure that the `GraphInterrupt` error is thrown again within your `catch` block.\n *\n * @param value - The value to include in the interrupt. This will be available in task.interrupts[].value\n * @returns The `resume` value provided when the graph is re-invoked with a Command\n *\n * @example\n * ```typescript\n * // Define a node that uses multiple interrupts\n * const nodeWithInterrupts = () => {\n * // First interrupt - will pause execution and include {value: 1} in task values\n * const answer1 = interrupt({ value: 1 });\n *\n * // Second interrupt - only called after first interrupt is resumed\n * const answer2 = interrupt({ value: 2 });\n *\n * // Use the resume values\n * return { myKey: answer1 + \" \" + answer2 };\n * };\n *\n * // Resume the graph after first interrupt\n * await graph.stream(new Command({ resume: \"answer 1\" }));\n *\n * // Resume the graph after second interrupt\n * await graph.stream(new Command({ resume: \"answer 2\" }));\n * // Final result: { myKey: \"answer 1 answer 2\" }\n * ```\n *\n * @throws {Error} If called outside the context of a graph\n * @throws {GraphInterrupt} When no resume value is available\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function interrupt<I = unknown, R = any>(value: I): R {\n const config: RunnableConfig | undefined =\n AsyncLocalStorageProviderSingleton.getRunnableConfig();\n if (!config) {\n throw new Error(\"Called interrupt() outside the context of a graph.\");\n }\n\n const conf = config.configurable;\n if (!conf) {\n throw new Error(\"No configurable found in config\");\n }\n\n const checkpointer: BaseCheckpointSaver = conf[CONFIG_KEY_CHECKPOINTER];\n if (!checkpointer) {\n throw new GraphValueError(\"No checkpointer set\", {\n lc_error_code: \"MISSING_CHECKPOINTER\",\n });\n }\n\n // Track interrupt index\n const scratchpad: PregelScratchpad = conf[CONFIG_KEY_SCRATCHPAD];\n scratchpad.interruptCounter += 1;\n const idx = scratchpad.interruptCounter;\n\n // Find previous resume values\n if (scratchpad.resume.length > 0 && idx < scratchpad.resume.length) {\n conf[CONFIG_KEY_SEND]?.([[RESUME, scratchpad.resume] as PendingWrite]);\n return scratchpad.resume[idx] as R;\n }\n\n // Find current resume value\n if (scratchpad.nullResume !== undefined) {\n if (scratchpad.resume.length !== idx) {\n throw new Error(\n `Resume length mismatch: ${scratchpad.resume.length} !== ${idx}`\n );\n }\n const v = scratchpad.consumeNullResume();\n scratchpad.resume.push(v);\n conf[CONFIG_KEY_SEND]?.([[RESUME, scratchpad.resume] as PendingWrite]);\n return v as R;\n }\n\n // No resume value found\n const ns: string[] | undefined = conf[CONFIG_KEY_CHECKPOINT_NS]?.split(\n CHECKPOINT_NAMESPACE_SEPARATOR\n );\n\n const id = ns ? XXH3(ns.join(CHECKPOINT_NAMESPACE_SEPARATOR)) : undefined;\n throw new GraphInterrupt([{ id, value }]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,SAAgB,UAAgC,OAAa;CAC3D,MAAMA,SACJ,mCAAmC;AACrC,KAAI,CAAC,OACH,OAAM,IAAI,MAAM;CAGlB,MAAM,OAAO,OAAO;AACpB,KAAI,CAAC,KACH,OAAM,IAAI,MAAM;CAGlB,MAAMC,eAAoC,KAAK;AAC/C,KAAI,CAAC,aACH,OAAM,IAAI,gBAAgB,uBAAuB,EAC/C,eAAe;CAKnB,MAAMC,aAA+B,KAAK;AAC1C,YAAW,oBAAoB;CAC/B,MAAM,MAAM,WAAW;AAGvB,KAAI,WAAW,OAAO,SAAS,KAAK,MAAM,WAAW,OAAO,QAAQ;AAClE,OAAK,mBAAmB,CAAC,CAAC,QAAQ,WAAW;AAC7C,SAAO,WAAW,OAAO;;AAI3B,KAAI,WAAW,eAAe,QAAW;AACvC,MAAI,WAAW,OAAO,WAAW,IAC/B,OAAM,IAAI,MACR,2BAA2B,WAAW,OAAO,OAAO,OAAO;EAG/D,MAAM,IAAI,WAAW;AACrB,aAAW,OAAO,KAAK;AACvB,OAAK,mBAAmB,CAAC,CAAC,QAAQ,WAAW;AAC7C,SAAO;;CAIT,MAAMC,KAA2B,KAAK,2BAA2B,MAC/D;CAGF,MAAM,KAAK,KAAK,KAAK,GAAG,KAAK,mCAAmC;AAChE,OAAM,IAAI,eAAe,CAAC;EAAE;EAAI"}
|
|
1
|
+
{"version":3,"file":"interrupt.js","names":["config: RunnableConfig | undefined","checkpointer: BaseCheckpointSaver","scratchpad: PregelScratchpad","ns: string[] | undefined"],"sources":["../src/interrupt.ts"],"sourcesContent":["import { AsyncLocalStorageProviderSingleton } from \"@langchain/core/singletons\";\nimport { RunnableConfig } from \"@langchain/core/runnables\";\nimport {\n BaseCheckpointSaver,\n type PendingWrite,\n} from \"@langchain/langgraph-checkpoint\";\nimport { GraphInterrupt, GraphValueError } from \"./errors.js\";\nimport {\n CONFIG_KEY_CHECKPOINT_NS,\n CONFIG_KEY_SCRATCHPAD,\n CONFIG_KEY_SEND,\n CONFIG_KEY_CHECKPOINTER,\n CHECKPOINT_NAMESPACE_SEPARATOR,\n RESUME,\n} from \"./constants.js\";\nimport { PregelScratchpad } from \"./pregel/types.js\";\nimport { XXH3 } from \"./hash.js\";\n\n/**\n * Interrupts the execution of a graph node.\n * This function can be used to pause execution of a node, and return the value of the `resume`\n * input when the graph is re-invoked using `Command`.\n * Multiple interrupts can be called within a single node, and each will be handled sequentially.\n *\n * When an interrupt is called:\n * 1. If there's a `resume` value available (from a previous `Command`), it returns that value.\n * 2. Otherwise, it throws a `GraphInterrupt` with the provided value\n * 3. The graph can be resumed by passing a `Command` with a `resume` value\n *\n * Because the `interrupt` function propagates by throwing a special `GraphInterrupt` error,\n * you should avoid using `try/catch` blocks around the `interrupt` function,\n * or if you do, ensure that the `GraphInterrupt` error is thrown again within your `catch` block.\n *\n * @param value - The value to include in the interrupt. This will be available in task.interrupts[].value\n * @returns The `resume` value provided when the graph is re-invoked with a Command\n *\n * @example\n * ```typescript\n * // Define a node that uses multiple interrupts\n * const nodeWithInterrupts = () => {\n * // First interrupt - will pause execution and include {value: 1} in task values\n * const answer1 = interrupt({ value: 1 });\n *\n * // Second interrupt - only called after first interrupt is resumed\n * const answer2 = interrupt({ value: 2 });\n *\n * // Use the resume values\n * return { myKey: answer1 + \" \" + answer2 };\n * };\n *\n * // Resume the graph after first interrupt\n * await graph.stream(new Command({ resume: \"answer 1\" }));\n *\n * // Resume the graph after second interrupt\n * await graph.stream(new Command({ resume: \"answer 2\" }));\n * // Final result: { myKey: \"answer 1 answer 2\" }\n * ```\n *\n * @throws {Error} If called outside the context of a graph\n * @throws {GraphInterrupt} When no resume value is available\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function interrupt<I = unknown, R = any>(value: I): R {\n const config: RunnableConfig | undefined =\n AsyncLocalStorageProviderSingleton.getRunnableConfig();\n if (!config) {\n throw new Error(\"Called interrupt() outside the context of a graph.\");\n }\n\n const conf = config.configurable;\n if (!conf) {\n throw new Error(\"No configurable found in config\");\n }\n\n const checkpointer: BaseCheckpointSaver = conf[CONFIG_KEY_CHECKPOINTER];\n if (!checkpointer) {\n throw new GraphValueError(\"No checkpointer set\", {\n lc_error_code: \"MISSING_CHECKPOINTER\",\n });\n }\n\n // Track interrupt index\n const scratchpad: PregelScratchpad = conf[CONFIG_KEY_SCRATCHPAD];\n scratchpad.interruptCounter += 1;\n const idx = scratchpad.interruptCounter;\n\n // Find previous resume values\n if (scratchpad.resume.length > 0 && idx < scratchpad.resume.length) {\n conf[CONFIG_KEY_SEND]?.([[RESUME, scratchpad.resume] as PendingWrite]);\n return scratchpad.resume[idx] as R;\n }\n\n // Find current resume value\n if (scratchpad.nullResume !== undefined) {\n if (scratchpad.resume.length !== idx) {\n throw new Error(\n `Resume length mismatch: ${scratchpad.resume.length} !== ${idx}`\n );\n }\n const v = scratchpad.consumeNullResume();\n scratchpad.resume.push(v);\n conf[CONFIG_KEY_SEND]?.([[RESUME, scratchpad.resume] as PendingWrite]);\n return v as R;\n }\n\n // No resume value found\n const ns: string[] | undefined = conf[CONFIG_KEY_CHECKPOINT_NS]?.split(\n CHECKPOINT_NAMESPACE_SEPARATOR\n );\n\n const id = ns ? XXH3(ns.join(CHECKPOINT_NAMESPACE_SEPARATOR)) : undefined;\n throw new GraphInterrupt([{ id, value }]);\n}\n\ntype FilterAny<X> = (<T>() => T extends X ? 1 : 2) extends <\n T\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n>() => T extends any ? 1 : 2\n ? never\n : X;\n\nexport type InferInterruptInputType<T> = T extends typeof interrupt<\n infer I,\n unknown\n>\n ? I\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n T extends { [key: string]: typeof interrupt<any, any> }\n ? { [K in keyof T]: InferInterruptInputType<T[K]> }[keyof T]\n : unknown;\n\nexport type InferInterruptResumeType<\n T,\n TInner = false\n> = T extends typeof interrupt<never, infer R>\n ? TInner extends true\n ? FilterAny<R>\n : R\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n T extends { [key: string]: typeof interrupt<any, any> }\n ? { [K in keyof T]: InferInterruptResumeType<T[K], true> }[keyof T]\n : unknown;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,SAAgB,UAAgC,OAAa;CAC3D,MAAMA,SACJ,mCAAmC;AACrC,KAAI,CAAC,OACH,OAAM,IAAI,MAAM;CAGlB,MAAM,OAAO,OAAO;AACpB,KAAI,CAAC,KACH,OAAM,IAAI,MAAM;CAGlB,MAAMC,eAAoC,KAAK;AAC/C,KAAI,CAAC,aACH,OAAM,IAAI,gBAAgB,uBAAuB,EAC/C,eAAe;CAKnB,MAAMC,aAA+B,KAAK;AAC1C,YAAW,oBAAoB;CAC/B,MAAM,MAAM,WAAW;AAGvB,KAAI,WAAW,OAAO,SAAS,KAAK,MAAM,WAAW,OAAO,QAAQ;AAClE,OAAK,mBAAmB,CAAC,CAAC,QAAQ,WAAW;AAC7C,SAAO,WAAW,OAAO;;AAI3B,KAAI,WAAW,eAAe,QAAW;AACvC,MAAI,WAAW,OAAO,WAAW,IAC/B,OAAM,IAAI,MACR,2BAA2B,WAAW,OAAO,OAAO,OAAO;EAG/D,MAAM,IAAI,WAAW;AACrB,aAAW,OAAO,KAAK;AACvB,OAAK,mBAAmB,CAAC,CAAC,QAAQ,WAAW;AAC7C,SAAO;;CAIT,MAAMC,KAA2B,KAAK,2BAA2B,MAC/D;CAGF,MAAM,KAAK,KAAK,KAAK,GAAG,KAAK,mCAAmC;AAChE,OAAM,IAAI,eAAe,CAAC;EAAE;EAAI"}
|
|
@@ -25,11 +25,14 @@ function _addInlineAgentName(message) {
|
|
|
25
25
|
const isAI = (0, __langchain_core_messages.isBaseMessage)(message) && ((0, __langchain_core_messages.isAIMessage)(message) || (0, __langchain_core_messages.isBaseMessageChunk)(message) && (0, __langchain_core_messages.isAIMessageChunk)(message));
|
|
26
26
|
if (!isAI || !message.name) return message;
|
|
27
27
|
const { name } = message;
|
|
28
|
-
if (typeof message.content === "string")
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
if (typeof message.content === "string") {
|
|
29
|
+
const fields = Object.keys(message.lc_kwargs ?? {}).length > 0 ? message.lc_kwargs : message;
|
|
30
|
+
return new __langchain_core_messages.AIMessage({
|
|
31
|
+
...fields,
|
|
32
|
+
content: `<name>${name}</name><content>${message.content}</content>`,
|
|
33
|
+
name: void 0
|
|
34
|
+
});
|
|
35
|
+
}
|
|
33
36
|
const updatedContent = [];
|
|
34
37
|
let textBlockCount = 0;
|
|
35
38
|
for (const contentBlock of message.content) if (typeof contentBlock === "string") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentName.cjs","names":["AIMessage","updatedContent: MessageContent","updatedName: string | undefined","processInputMessage: (message: BaseMessageLike) => BaseMessageLike","processOutputMessage: (message: BaseMessage) => BaseMessage","RunnableSequence","RunnableLambda"],"sources":["../../src/prebuilt/agentName.ts"],"sourcesContent":["import { LanguageModelLike } from \"@langchain/core/language_models/base\";\nimport {\n AIMessage,\n BaseMessage,\n BaseMessageLike,\n isAIMessage,\n isAIMessageChunk,\n isBaseMessage,\n isBaseMessageChunk,\n MessageContent,\n} from \"@langchain/core/messages\";\nimport { RunnableLambda, RunnableSequence } from \"@langchain/core/runnables\";\n\nconst NAME_PATTERN = /<name>(.*?)<\\/name>/s;\nconst CONTENT_PATTERN = /<content>(.*?)<\\/content>/s;\n\nexport type AgentNameMode = \"inline\";\n\n/**\n * Attach formatted agent names to the messages passed to and from a language model.\n *\n * This is useful for making a message history with multiple agents more coherent.\n *\n * NOTE: agent name is consumed from the message.name field.\n * If you're using an agent built with createReactAgent, name is automatically set.\n * If you're building a custom agent, make sure to set the name on the AI message returned by the LLM.\n *\n * @deprecated migrated to `langchain` package.\n *\n * @param message - Message to add agent name formatting to\n * @returns Message with agent name formatting\n *\n * @internal\n */\nexport function _addInlineAgentName<T extends BaseMessageLike>(\n message: T\n): T | AIMessage {\n const isAI =\n isBaseMessage(message) &&\n (isAIMessage(message) ||\n (isBaseMessageChunk(message) && isAIMessageChunk(message)));\n\n if (!isAI || !message.name) {\n return message;\n }\n\n const { name } = message;\n\n if (typeof message.content === \"string\") {\n
|
|
1
|
+
{"version":3,"file":"agentName.cjs","names":["AIMessage","updatedContent: MessageContent","updatedName: string | undefined","processInputMessage: (message: BaseMessageLike) => BaseMessageLike","processOutputMessage: (message: BaseMessage) => BaseMessage","RunnableSequence","RunnableLambda"],"sources":["../../src/prebuilt/agentName.ts"],"sourcesContent":["import { LanguageModelLike } from \"@langchain/core/language_models/base\";\nimport {\n AIMessage,\n AIMessageFields,\n BaseMessage,\n BaseMessageLike,\n isAIMessage,\n isAIMessageChunk,\n isBaseMessage,\n isBaseMessageChunk,\n MessageContent,\n} from \"@langchain/core/messages\";\nimport { RunnableLambda, RunnableSequence } from \"@langchain/core/runnables\";\n\nconst NAME_PATTERN = /<name>(.*?)<\\/name>/s;\nconst CONTENT_PATTERN = /<content>(.*?)<\\/content>/s;\n\nexport type AgentNameMode = \"inline\";\n\n/**\n * Attach formatted agent names to the messages passed to and from a language model.\n *\n * This is useful for making a message history with multiple agents more coherent.\n *\n * NOTE: agent name is consumed from the message.name field.\n * If you're using an agent built with createReactAgent, name is automatically set.\n * If you're building a custom agent, make sure to set the name on the AI message returned by the LLM.\n *\n * @deprecated migrated to `langchain` package.\n *\n * @param message - Message to add agent name formatting to\n * @returns Message with agent name formatting\n *\n * @internal\n */\nexport function _addInlineAgentName<T extends BaseMessageLike>(\n message: T\n): T | AIMessage {\n const isAI =\n isBaseMessage(message) &&\n (isAIMessage(message) ||\n (isBaseMessageChunk(message) && isAIMessageChunk(message)));\n\n if (!isAI || !message.name) {\n return message;\n }\n\n const { name } = message;\n\n if (typeof message.content === \"string\") {\n const fields = (\n Object.keys(message.lc_kwargs ?? {}).length > 0\n ? message.lc_kwargs\n : message\n ) as AIMessageFields;\n\n return new AIMessage({\n ...fields,\n content: `<name>${name}</name><content>${message.content}</content>`,\n name: undefined,\n });\n }\n\n const updatedContent = [];\n let textBlockCount = 0;\n\n for (const contentBlock of message.content) {\n if (typeof contentBlock === \"string\") {\n textBlockCount += 1;\n updatedContent.push(\n `<name>${name}</name><content>${contentBlock}</content>`\n );\n } else if (\n typeof contentBlock === \"object\" &&\n \"type\" in contentBlock &&\n contentBlock.type === \"text\"\n ) {\n textBlockCount += 1;\n updatedContent.push({\n ...contentBlock,\n text: `<name>${name}</name><content>${contentBlock.text}</content>`,\n });\n } else {\n updatedContent.push(contentBlock);\n }\n }\n\n if (!textBlockCount) {\n updatedContent.unshift({\n type: \"text\",\n text: `<name>${name}</name><content></content>`,\n });\n }\n return new AIMessage({\n ...message.lc_kwargs,\n content: updatedContent as MessageContent,\n name: undefined,\n });\n}\n\n/**\n * Remove explicit name and content XML tags from the AI message content.\n *\n * @deprecated migrated to `langchain` package.\n *\n * Examples:\n *\n * @example\n * ```typescript\n * removeInlineAgentName(new AIMessage({ content: \"<name>assistant</name><content>Hello</content>\", name: \"assistant\" }))\n * // AIMessage with content: \"Hello\"\n *\n * removeInlineAgentName(new AIMessage({ content: [{type: \"text\", text: \"<name>assistant</name><content>Hello</content>\"}], name: \"assistant\" }))\n * // AIMessage with content: [{type: \"text\", text: \"Hello\"}]\n * ```\n *\n * @internal\n */\nexport function _removeInlineAgentName<T extends BaseMessage>(message: T): T {\n if (!isAIMessage(message) || !message.content) {\n return message;\n }\n\n let updatedContent: MessageContent = [];\n let updatedName: string | undefined;\n\n if (Array.isArray(message.content)) {\n updatedContent = message.content\n .filter((block) => {\n if (block.type === \"text\" && typeof block.text === \"string\") {\n const nameMatch = block.text.match(NAME_PATTERN);\n const contentMatch = block.text.match(CONTENT_PATTERN);\n // don't include empty content blocks that were added because there was no text block to modify\n if (nameMatch && (!contentMatch || contentMatch[1] === \"\")) {\n // capture name from text block\n // eslint-disable-next-line prefer-destructuring\n updatedName = nameMatch[1];\n return false;\n }\n return true;\n }\n return true;\n })\n .map((block) => {\n if (block.type === \"text\" && typeof block.text === \"string\") {\n const nameMatch = block.text.match(NAME_PATTERN);\n const contentMatch = block.text.match(CONTENT_PATTERN);\n\n if (!nameMatch || !contentMatch) {\n return block;\n }\n\n // capture name from text block\n // eslint-disable-next-line prefer-destructuring\n updatedName = nameMatch[1];\n\n return {\n ...block,\n text: contentMatch[1],\n };\n }\n return block;\n });\n } else {\n const content = message.content as string;\n const nameMatch = content.match(NAME_PATTERN);\n const contentMatch = content.match(CONTENT_PATTERN);\n\n if (!nameMatch || !contentMatch) {\n return message;\n }\n\n // eslint-disable-next-line prefer-destructuring\n updatedName = nameMatch[1];\n // eslint-disable-next-line prefer-destructuring\n updatedContent = contentMatch[1];\n }\n\n return new AIMessage({\n ...(Object.keys(message.lc_kwargs ?? {}).length > 0\n ? message.lc_kwargs\n : message),\n content: updatedContent,\n name: updatedName,\n }) as T;\n}\n\n/**\n * Attach formatted agent names to the messages passed to and from a language model.\n *\n * This is useful for making a message history with multiple agents more coherent.\n *\n * * @deprecated migrated to `langchain` package.\n *\n * NOTE: agent name is consumed from the message.name field.\n * If you're using an agent built with createReactAgent, name is automatically set.\n * If you're building a custom agent, make sure to set the name on the AI message returned by the LLM.\n *\n * @param model - Language model to add agent name formatting to\n * @param agentNameMode - How to expose the agent name to the LLM\n * - \"inline\": Add the agent name directly into the content field of the AI message using XML-style tags.\n * Example: \"How can I help you\" -> \"<name>agent_name</name><content>How can I help you?</content>\".\n */\nexport function withAgentName(\n model: LanguageModelLike,\n agentNameMode: AgentNameMode\n): LanguageModelLike {\n let processInputMessage: (message: BaseMessageLike) => BaseMessageLike;\n let processOutputMessage: (message: BaseMessage) => BaseMessage;\n\n if (agentNameMode === \"inline\") {\n processInputMessage = _addInlineAgentName;\n processOutputMessage = _removeInlineAgentName;\n } else {\n throw new Error(\n `Invalid agent name mode: ${agentNameMode}. Needs to be one of: \"inline\"`\n );\n }\n\n function processInputMessages(\n messages: BaseMessageLike[]\n ): BaseMessageLike[] {\n return messages.map(processInputMessage);\n }\n\n return RunnableSequence.from([\n RunnableLambda.from(processInputMessages),\n model,\n RunnableLambda.from(processOutputMessage),\n ]);\n}\n"],"mappings":";;;;;AAcA,MAAM,eAAe;AACrB,MAAM,kBAAkB;;;;;;;;;;;;;;;;;AAoBxB,SAAgB,oBACd,SACe;CACf,MAAM,oDACU,wDACD,8DACS,4DAA6B;AAErD,KAAI,CAAC,QAAQ,CAAC,QAAQ,KACpB,QAAO;CAGT,MAAM,EAAE,SAAS;AAEjB,KAAI,OAAO,QAAQ,YAAY,UAAU;EACvC,MAAM,SACJ,OAAO,KAAK,QAAQ,aAAa,IAAI,SAAS,IAC1C,QAAQ,YACR;AAGN,SAAO,IAAIA,oCAAU;GACnB,GAAG;GACH,SAAS,SAAS,KAAK,kBAAkB,QAAQ,QAAQ;GACzD,MAAM;;;CAIV,MAAM,iBAAiB;CACvB,IAAI,iBAAiB;AAErB,MAAK,MAAM,gBAAgB,QAAQ,QACjC,KAAI,OAAO,iBAAiB,UAAU;AACpC,oBAAkB;AAClB,iBAAe,KACb,SAAS,KAAK,kBAAkB,aAAa;YAG/C,OAAO,iBAAiB,YACxB,UAAU,gBACV,aAAa,SAAS,QACtB;AACA,oBAAkB;AAClB,iBAAe,KAAK;GAClB,GAAG;GACH,MAAM,SAAS,KAAK,kBAAkB,aAAa,KAAK;;OAG1D,gBAAe,KAAK;AAIxB,KAAI,CAAC,eACH,gBAAe,QAAQ;EACrB,MAAM;EACN,MAAM,SAAS,KAAK;;AAGxB,QAAO,IAAIA,oCAAU;EACnB,GAAG,QAAQ;EACX,SAAS;EACT,MAAM;;;;;;;;;;;;;;;;;;;;;AAsBV,SAAgB,uBAA8C,SAAe;AAC3E,KAAI,4CAAa,YAAY,CAAC,QAAQ,QACpC,QAAO;CAGT,IAAIC,iBAAiC;CACrC,IAAIC;AAEJ,KAAI,MAAM,QAAQ,QAAQ,SACxB,kBAAiB,QAAQ,QACtB,QAAQ,UAAU;AACjB,MAAI,MAAM,SAAS,UAAU,OAAO,MAAM,SAAS,UAAU;GAC3D,MAAM,YAAY,MAAM,KAAK,MAAM;GACnC,MAAM,eAAe,MAAM,KAAK,MAAM;AAEtC,OAAI,cAAc,CAAC,gBAAgB,aAAa,OAAO,KAAK;AAG1D,kBAAc,UAAU;AACxB,WAAO;;AAET,UAAO;;AAET,SAAO;IAER,KAAK,UAAU;AACd,MAAI,MAAM,SAAS,UAAU,OAAO,MAAM,SAAS,UAAU;GAC3D,MAAM,YAAY,MAAM,KAAK,MAAM;GACnC,MAAM,eAAe,MAAM,KAAK,MAAM;AAEtC,OAAI,CAAC,aAAa,CAAC,aACjB,QAAO;AAKT,iBAAc,UAAU;AAExB,UAAO;IACL,GAAG;IACH,MAAM,aAAa;;;AAGvB,SAAO;;MAEN;EACL,MAAM,UAAU,QAAQ;EACxB,MAAM,YAAY,QAAQ,MAAM;EAChC,MAAM,eAAe,QAAQ,MAAM;AAEnC,MAAI,CAAC,aAAa,CAAC,aACjB,QAAO;AAIT,gBAAc,UAAU;AAExB,mBAAiB,aAAa;;AAGhC,QAAO,IAAIF,oCAAU;EACnB,GAAI,OAAO,KAAK,QAAQ,aAAa,IAAI,SAAS,IAC9C,QAAQ,YACR;EACJ,SAAS;EACT,MAAM;;;;;;;;;;;;;;;;;;;AAoBV,SAAgB,cACd,OACA,eACmB;CACnB,IAAIG;CACJ,IAAIC;AAEJ,KAAI,kBAAkB,UAAU;AAC9B,wBAAsB;AACtB,yBAAuB;OAEvB,OAAM,IAAI,MACR,4BAA4B,cAAc;CAI9C,SAAS,qBACP,UACmB;AACnB,SAAO,SAAS,IAAI;;AAGtB,QAAOC,4CAAiB,KAAK;EAC3BC,0CAAe,KAAK;EACpB;EACAA,0CAAe,KAAK"}
|
|
@@ -24,11 +24,14 @@ function _addInlineAgentName(message) {
|
|
|
24
24
|
const isAI = isBaseMessage(message) && (isAIMessage(message) || isBaseMessageChunk(message) && isAIMessageChunk(message));
|
|
25
25
|
if (!isAI || !message.name) return message;
|
|
26
26
|
const { name } = message;
|
|
27
|
-
if (typeof message.content === "string")
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
if (typeof message.content === "string") {
|
|
28
|
+
const fields = Object.keys(message.lc_kwargs ?? {}).length > 0 ? message.lc_kwargs : message;
|
|
29
|
+
return new AIMessage({
|
|
30
|
+
...fields,
|
|
31
|
+
content: `<name>${name}</name><content>${message.content}</content>`,
|
|
32
|
+
name: void 0
|
|
33
|
+
});
|
|
34
|
+
}
|
|
32
35
|
const updatedContent = [];
|
|
33
36
|
let textBlockCount = 0;
|
|
34
37
|
for (const contentBlock of message.content) if (typeof contentBlock === "string") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentName.js","names":["updatedContent: MessageContent","updatedName: string | undefined","processInputMessage: (message: BaseMessageLike) => BaseMessageLike","processOutputMessage: (message: BaseMessage) => BaseMessage"],"sources":["../../src/prebuilt/agentName.ts"],"sourcesContent":["import { LanguageModelLike } from \"@langchain/core/language_models/base\";\nimport {\n AIMessage,\n BaseMessage,\n BaseMessageLike,\n isAIMessage,\n isAIMessageChunk,\n isBaseMessage,\n isBaseMessageChunk,\n MessageContent,\n} from \"@langchain/core/messages\";\nimport { RunnableLambda, RunnableSequence } from \"@langchain/core/runnables\";\n\nconst NAME_PATTERN = /<name>(.*?)<\\/name>/s;\nconst CONTENT_PATTERN = /<content>(.*?)<\\/content>/s;\n\nexport type AgentNameMode = \"inline\";\n\n/**\n * Attach formatted agent names to the messages passed to and from a language model.\n *\n * This is useful for making a message history with multiple agents more coherent.\n *\n * NOTE: agent name is consumed from the message.name field.\n * If you're using an agent built with createReactAgent, name is automatically set.\n * If you're building a custom agent, make sure to set the name on the AI message returned by the LLM.\n *\n * @deprecated migrated to `langchain` package.\n *\n * @param message - Message to add agent name formatting to\n * @returns Message with agent name formatting\n *\n * @internal\n */\nexport function _addInlineAgentName<T extends BaseMessageLike>(\n message: T\n): T | AIMessage {\n const isAI =\n isBaseMessage(message) &&\n (isAIMessage(message) ||\n (isBaseMessageChunk(message) && isAIMessageChunk(message)));\n\n if (!isAI || !message.name) {\n return message;\n }\n\n const { name } = message;\n\n if (typeof message.content === \"string\") {\n
|
|
1
|
+
{"version":3,"file":"agentName.js","names":["updatedContent: MessageContent","updatedName: string | undefined","processInputMessage: (message: BaseMessageLike) => BaseMessageLike","processOutputMessage: (message: BaseMessage) => BaseMessage"],"sources":["../../src/prebuilt/agentName.ts"],"sourcesContent":["import { LanguageModelLike } from \"@langchain/core/language_models/base\";\nimport {\n AIMessage,\n AIMessageFields,\n BaseMessage,\n BaseMessageLike,\n isAIMessage,\n isAIMessageChunk,\n isBaseMessage,\n isBaseMessageChunk,\n MessageContent,\n} from \"@langchain/core/messages\";\nimport { RunnableLambda, RunnableSequence } from \"@langchain/core/runnables\";\n\nconst NAME_PATTERN = /<name>(.*?)<\\/name>/s;\nconst CONTENT_PATTERN = /<content>(.*?)<\\/content>/s;\n\nexport type AgentNameMode = \"inline\";\n\n/**\n * Attach formatted agent names to the messages passed to and from a language model.\n *\n * This is useful for making a message history with multiple agents more coherent.\n *\n * NOTE: agent name is consumed from the message.name field.\n * If you're using an agent built with createReactAgent, name is automatically set.\n * If you're building a custom agent, make sure to set the name on the AI message returned by the LLM.\n *\n * @deprecated migrated to `langchain` package.\n *\n * @param message - Message to add agent name formatting to\n * @returns Message with agent name formatting\n *\n * @internal\n */\nexport function _addInlineAgentName<T extends BaseMessageLike>(\n message: T\n): T | AIMessage {\n const isAI =\n isBaseMessage(message) &&\n (isAIMessage(message) ||\n (isBaseMessageChunk(message) && isAIMessageChunk(message)));\n\n if (!isAI || !message.name) {\n return message;\n }\n\n const { name } = message;\n\n if (typeof message.content === \"string\") {\n const fields = (\n Object.keys(message.lc_kwargs ?? {}).length > 0\n ? message.lc_kwargs\n : message\n ) as AIMessageFields;\n\n return new AIMessage({\n ...fields,\n content: `<name>${name}</name><content>${message.content}</content>`,\n name: undefined,\n });\n }\n\n const updatedContent = [];\n let textBlockCount = 0;\n\n for (const contentBlock of message.content) {\n if (typeof contentBlock === \"string\") {\n textBlockCount += 1;\n updatedContent.push(\n `<name>${name}</name><content>${contentBlock}</content>`\n );\n } else if (\n typeof contentBlock === \"object\" &&\n \"type\" in contentBlock &&\n contentBlock.type === \"text\"\n ) {\n textBlockCount += 1;\n updatedContent.push({\n ...contentBlock,\n text: `<name>${name}</name><content>${contentBlock.text}</content>`,\n });\n } else {\n updatedContent.push(contentBlock);\n }\n }\n\n if (!textBlockCount) {\n updatedContent.unshift({\n type: \"text\",\n text: `<name>${name}</name><content></content>`,\n });\n }\n return new AIMessage({\n ...message.lc_kwargs,\n content: updatedContent as MessageContent,\n name: undefined,\n });\n}\n\n/**\n * Remove explicit name and content XML tags from the AI message content.\n *\n * @deprecated migrated to `langchain` package.\n *\n * Examples:\n *\n * @example\n * ```typescript\n * removeInlineAgentName(new AIMessage({ content: \"<name>assistant</name><content>Hello</content>\", name: \"assistant\" }))\n * // AIMessage with content: \"Hello\"\n *\n * removeInlineAgentName(new AIMessage({ content: [{type: \"text\", text: \"<name>assistant</name><content>Hello</content>\"}], name: \"assistant\" }))\n * // AIMessage with content: [{type: \"text\", text: \"Hello\"}]\n * ```\n *\n * @internal\n */\nexport function _removeInlineAgentName<T extends BaseMessage>(message: T): T {\n if (!isAIMessage(message) || !message.content) {\n return message;\n }\n\n let updatedContent: MessageContent = [];\n let updatedName: string | undefined;\n\n if (Array.isArray(message.content)) {\n updatedContent = message.content\n .filter((block) => {\n if (block.type === \"text\" && typeof block.text === \"string\") {\n const nameMatch = block.text.match(NAME_PATTERN);\n const contentMatch = block.text.match(CONTENT_PATTERN);\n // don't include empty content blocks that were added because there was no text block to modify\n if (nameMatch && (!contentMatch || contentMatch[1] === \"\")) {\n // capture name from text block\n // eslint-disable-next-line prefer-destructuring\n updatedName = nameMatch[1];\n return false;\n }\n return true;\n }\n return true;\n })\n .map((block) => {\n if (block.type === \"text\" && typeof block.text === \"string\") {\n const nameMatch = block.text.match(NAME_PATTERN);\n const contentMatch = block.text.match(CONTENT_PATTERN);\n\n if (!nameMatch || !contentMatch) {\n return block;\n }\n\n // capture name from text block\n // eslint-disable-next-line prefer-destructuring\n updatedName = nameMatch[1];\n\n return {\n ...block,\n text: contentMatch[1],\n };\n }\n return block;\n });\n } else {\n const content = message.content as string;\n const nameMatch = content.match(NAME_PATTERN);\n const contentMatch = content.match(CONTENT_PATTERN);\n\n if (!nameMatch || !contentMatch) {\n return message;\n }\n\n // eslint-disable-next-line prefer-destructuring\n updatedName = nameMatch[1];\n // eslint-disable-next-line prefer-destructuring\n updatedContent = contentMatch[1];\n }\n\n return new AIMessage({\n ...(Object.keys(message.lc_kwargs ?? {}).length > 0\n ? message.lc_kwargs\n : message),\n content: updatedContent,\n name: updatedName,\n }) as T;\n}\n\n/**\n * Attach formatted agent names to the messages passed to and from a language model.\n *\n * This is useful for making a message history with multiple agents more coherent.\n *\n * * @deprecated migrated to `langchain` package.\n *\n * NOTE: agent name is consumed from the message.name field.\n * If you're using an agent built with createReactAgent, name is automatically set.\n * If you're building a custom agent, make sure to set the name on the AI message returned by the LLM.\n *\n * @param model - Language model to add agent name formatting to\n * @param agentNameMode - How to expose the agent name to the LLM\n * - \"inline\": Add the agent name directly into the content field of the AI message using XML-style tags.\n * Example: \"How can I help you\" -> \"<name>agent_name</name><content>How can I help you?</content>\".\n */\nexport function withAgentName(\n model: LanguageModelLike,\n agentNameMode: AgentNameMode\n): LanguageModelLike {\n let processInputMessage: (message: BaseMessageLike) => BaseMessageLike;\n let processOutputMessage: (message: BaseMessage) => BaseMessage;\n\n if (agentNameMode === \"inline\") {\n processInputMessage = _addInlineAgentName;\n processOutputMessage = _removeInlineAgentName;\n } else {\n throw new Error(\n `Invalid agent name mode: ${agentNameMode}. Needs to be one of: \"inline\"`\n );\n }\n\n function processInputMessages(\n messages: BaseMessageLike[]\n ): BaseMessageLike[] {\n return messages.map(processInputMessage);\n }\n\n return RunnableSequence.from([\n RunnableLambda.from(processInputMessages),\n model,\n RunnableLambda.from(processOutputMessage),\n ]);\n}\n"],"mappings":";;;;AAcA,MAAM,eAAe;AACrB,MAAM,kBAAkB;;;;;;;;;;;;;;;;;AAoBxB,SAAgB,oBACd,SACe;CACf,MAAM,OACJ,cAAc,aACb,YAAY,YACV,mBAAmB,YAAY,iBAAiB;AAErD,KAAI,CAAC,QAAQ,CAAC,QAAQ,KACpB,QAAO;CAGT,MAAM,EAAE,SAAS;AAEjB,KAAI,OAAO,QAAQ,YAAY,UAAU;EACvC,MAAM,SACJ,OAAO,KAAK,QAAQ,aAAa,IAAI,SAAS,IAC1C,QAAQ,YACR;AAGN,SAAO,IAAI,UAAU;GACnB,GAAG;GACH,SAAS,SAAS,KAAK,kBAAkB,QAAQ,QAAQ;GACzD,MAAM;;;CAIV,MAAM,iBAAiB;CACvB,IAAI,iBAAiB;AAErB,MAAK,MAAM,gBAAgB,QAAQ,QACjC,KAAI,OAAO,iBAAiB,UAAU;AACpC,oBAAkB;AAClB,iBAAe,KACb,SAAS,KAAK,kBAAkB,aAAa;YAG/C,OAAO,iBAAiB,YACxB,UAAU,gBACV,aAAa,SAAS,QACtB;AACA,oBAAkB;AAClB,iBAAe,KAAK;GAClB,GAAG;GACH,MAAM,SAAS,KAAK,kBAAkB,aAAa,KAAK;;OAG1D,gBAAe,KAAK;AAIxB,KAAI,CAAC,eACH,gBAAe,QAAQ;EACrB,MAAM;EACN,MAAM,SAAS,KAAK;;AAGxB,QAAO,IAAI,UAAU;EACnB,GAAG,QAAQ;EACX,SAAS;EACT,MAAM;;;;;;;;;;;;;;;;;;;;;AAsBV,SAAgB,uBAA8C,SAAe;AAC3E,KAAI,CAAC,YAAY,YAAY,CAAC,QAAQ,QACpC,QAAO;CAGT,IAAIA,iBAAiC;CACrC,IAAIC;AAEJ,KAAI,MAAM,QAAQ,QAAQ,SACxB,kBAAiB,QAAQ,QACtB,QAAQ,UAAU;AACjB,MAAI,MAAM,SAAS,UAAU,OAAO,MAAM,SAAS,UAAU;GAC3D,MAAM,YAAY,MAAM,KAAK,MAAM;GACnC,MAAM,eAAe,MAAM,KAAK,MAAM;AAEtC,OAAI,cAAc,CAAC,gBAAgB,aAAa,OAAO,KAAK;AAG1D,kBAAc,UAAU;AACxB,WAAO;;AAET,UAAO;;AAET,SAAO;IAER,KAAK,UAAU;AACd,MAAI,MAAM,SAAS,UAAU,OAAO,MAAM,SAAS,UAAU;GAC3D,MAAM,YAAY,MAAM,KAAK,MAAM;GACnC,MAAM,eAAe,MAAM,KAAK,MAAM;AAEtC,OAAI,CAAC,aAAa,CAAC,aACjB,QAAO;AAKT,iBAAc,UAAU;AAExB,UAAO;IACL,GAAG;IACH,MAAM,aAAa;;;AAGvB,SAAO;;MAEN;EACL,MAAM,UAAU,QAAQ;EACxB,MAAM,YAAY,QAAQ,MAAM;EAChC,MAAM,eAAe,QAAQ,MAAM;AAEnC,MAAI,CAAC,aAAa,CAAC,aACjB,QAAO;AAIT,gBAAc,UAAU;AAExB,mBAAiB,aAAa;;AAGhC,QAAO,IAAI,UAAU;EACnB,GAAI,OAAO,KAAK,QAAQ,aAAa,IAAI,SAAS,IAC9C,QAAQ,YACR;EACJ,SAAS;EACT,MAAM;;;;;;;;;;;;;;;;;;;AAoBV,SAAgB,cACd,OACA,eACmB;CACnB,IAAIC;CACJ,IAAIC;AAEJ,KAAI,kBAAkB,UAAU;AAC9B,wBAAsB;AACtB,yBAAuB;OAEvB,OAAM,IAAI,MACR,4BAA4B,cAAc;CAI9C,SAAS,qBACP,UACmB;AACnB,SAAO,SAAS,IAAI;;AAGtB,QAAO,iBAAiB,KAAK;EAC3B,eAAe,KAAK;EACpB;EACA,eAAe,KAAK"}
|
|
@@ -3,6 +3,7 @@ import { StateDefinition } from "../graph/annotation.cjs";
|
|
|
3
3
|
import { CompiledStateGraph } from "../graph/state.cjs";
|
|
4
4
|
import { ToolExecutor } from "./tool_executor.cjs";
|
|
5
5
|
import { Runnable } from "@langchain/core/runnables";
|
|
6
|
+
import * as _langchain_core_messages9 from "@langchain/core/messages";
|
|
6
7
|
import { BaseMessage } from "@langchain/core/messages";
|
|
7
8
|
import { AgentAction, AgentFinish } from "@langchain/core/agents";
|
|
8
9
|
import { Tool } from "@langchain/core/tools";
|
|
@@ -30,22 +31,22 @@ declare function createAgentExecutor({
|
|
|
30
31
|
agentOutcome?: AgentAction | AgentFinish | undefined;
|
|
31
32
|
steps: Step[];
|
|
32
33
|
input: string;
|
|
33
|
-
chatHistory?: BaseMessage[] | undefined;
|
|
34
|
+
chatHistory?: BaseMessage<_langchain_core_messages9.MessageStructure, _langchain_core_messages9.MessageType>[] | undefined;
|
|
34
35
|
}, {
|
|
35
36
|
agentOutcome?: AgentAction | AgentFinish | undefined;
|
|
36
37
|
steps?: Step[] | undefined;
|
|
37
38
|
input?: string | undefined;
|
|
38
|
-
chatHistory?: BaseMessage[] | undefined;
|
|
39
|
+
chatHistory?: BaseMessage<_langchain_core_messages9.MessageStructure, _langchain_core_messages9.MessageType>[] | undefined;
|
|
39
40
|
}, "__start__" | "action" | "agent", {
|
|
40
41
|
agentOutcome?: BaseChannel<AgentAction | AgentFinish | undefined, AgentAction | AgentFinish | undefined, unknown> | undefined;
|
|
41
42
|
steps: BaseChannel<Step[], Step[], unknown>;
|
|
42
43
|
input: BaseChannel<string, string, unknown>;
|
|
43
|
-
chatHistory?: BaseChannel<BaseMessage[] | undefined, BaseMessage[] | undefined, unknown> | undefined;
|
|
44
|
+
chatHistory?: BaseChannel<BaseMessage<_langchain_core_messages9.MessageStructure, _langchain_core_messages9.MessageType>[] | undefined, BaseMessage<_langchain_core_messages9.MessageStructure, _langchain_core_messages9.MessageType>[] | undefined, unknown> | undefined;
|
|
44
45
|
}, {
|
|
45
46
|
agentOutcome?: BaseChannel<AgentAction | AgentFinish | undefined, AgentAction | AgentFinish | undefined, unknown> | undefined;
|
|
46
47
|
steps: BaseChannel<Step[], Step[], unknown>;
|
|
47
48
|
input: BaseChannel<string, string, unknown>;
|
|
48
|
-
chatHistory?: BaseChannel<BaseMessage[] | undefined, BaseMessage[] | undefined, unknown> | undefined;
|
|
49
|
+
chatHistory?: BaseChannel<BaseMessage<_langchain_core_messages9.MessageStructure, _langchain_core_messages9.MessageType>[] | undefined, BaseMessage<_langchain_core_messages9.MessageStructure, _langchain_core_messages9.MessageType>[] | undefined, unknown> | undefined;
|
|
49
50
|
}, StateDefinition, {
|
|
50
51
|
action: Partial<AgentExecutorState>;
|
|
51
52
|
agent: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent_executor.d.cts","names":["AgentAction","AgentFinish","BaseMessage","Runnable","Tool","ToolExecutor","BaseChannel","Step","AgentExecutorState","Array","createAgentExecutor","agentRunnable","tools","
|
|
1
|
+
{"version":3,"file":"agent_executor.d.cts","names":["___web_js0","AgentAction","AgentFinish","BaseMessage","Runnable","Tool","ToolExecutor","BaseChannel","Step","AgentExecutorState","Array","createAgentExecutor","agentRunnable","tools","_langchain_core_messages9","MessageStructure","MessageType","StateDefinition","Partial","CompiledStateGraph"],"sources":["../../src/prebuilt/agent_executor.d.ts"],"sourcesContent":["import { AgentAction, AgentFinish } from \"@langchain/core/agents\";\nimport { BaseMessage } from \"@langchain/core/messages\";\nimport { Runnable } from \"@langchain/core/runnables\";\nimport { Tool } from \"@langchain/core/tools\";\nimport { ToolExecutor } from \"./tool_executor.js\";\nimport type { BaseChannel } from \"../channels/base.js\";\ninterface Step {\n action: AgentAction | AgentFinish;\n observation: unknown;\n}\n/** @ignore */\nexport interface AgentExecutorState {\n agentOutcome?: AgentAction | AgentFinish;\n steps: Array<Step>;\n input: string;\n chatHistory?: BaseMessage[];\n}\n/** @ignore */\nexport declare function createAgentExecutor({ agentRunnable, tools }: {\n agentRunnable: Runnable;\n tools: Array<Tool> | ToolExecutor;\n}): import(\"../web.js\").CompiledStateGraph<{\n agentOutcome?: AgentAction | AgentFinish | undefined;\n steps: Step[];\n input: string;\n chatHistory?: BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[] | undefined;\n}, {\n agentOutcome?: AgentAction | AgentFinish | undefined;\n steps?: Step[] | undefined;\n input?: string | undefined;\n chatHistory?: BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[] | undefined;\n}, \"__start__\" | \"action\" | \"agent\", {\n agentOutcome?: BaseChannel<AgentAction | AgentFinish | undefined, AgentAction | AgentFinish | undefined, unknown> | undefined;\n steps: BaseChannel<Step[], Step[], unknown>;\n input: BaseChannel<string, string, unknown>;\n chatHistory?: BaseChannel<BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[] | undefined, BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[] | undefined, unknown> | undefined;\n}, {\n agentOutcome?: BaseChannel<AgentAction | AgentFinish | undefined, AgentAction | AgentFinish | undefined, unknown> | undefined;\n steps: BaseChannel<Step[], Step[], unknown>;\n input: BaseChannel<string, string, unknown>;\n chatHistory?: BaseChannel<BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[] | undefined, BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[] | undefined, unknown> | undefined;\n}, import(\"../web.js\").StateDefinition, {\n action: Partial<AgentExecutorState>;\n agent: {\n agentOutcome: any;\n };\n}, unknown, unknown>;\nexport {};\n"],"mappings":";;;;;;;;;;;UAMUQ,IAAAA;UACEP,cAAcC;;;;AADhBM,UAKOC,kBAAAA,CALH;EAAA,YAAA,CAAA,EAMKR,WANL,GAMmBC,WANnB;OACFD,EAMDS,KANCT,CAMKO,IANLP,CAAAA;OAAcC,EAAAA,MAAAA;gBAQRC;AAJlB;;AACmBF,iBAMKU,mBAAAA,CANLV;EAAAA,aAAAA;EAAAA;CAAAA,EAAAA;eAAcC,EAOdE,QAPcF;OAChBM,EAONE,KAPMF,CAOAH,IAPAG,CAAAA,GAOQF,YAPRE;sBAANE,CAAAA;cAEOP,CAAAA,EAOCF,WAPDE,GAOeD,WAPfC,GAAAA,SAAAA;SAQPK;EALaG,KAAAA,EAAAA,MAAAA;EAAmB,WAAA,CAAA,EAOzBR,WAPyB,CAK5BW,yBAAAA,CAEkDC,gBAAAA,EAAgBD,yBAAAA,CAAqCE,WAAAA,CAP3E,EAAA,GAAA,SAAA;;cAAkBH,CAAAA,EAS1CZ,WAT0CY,GAS5BX,WAT4BW,GAAAA,SAAAA;OAC1CT,CAAAA,EASPI,IATOJ,EAAAA,GAAAA,SAAAA;OACFC,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;aAANK,CAAAA,EAUOP,WAVPO,CAQKI,yBAAAA,CAEiDC,gBAAAA,EAAgBD,yBAAAA,CAAqCE,WAAAA,CAV3GN,EAAAA,GAAAA,SAAAA;cAAcJ,GAAAA,QAAAA,GAAAA,OAAAA,EAAAA;cAENL,CAAAA,EAUAM,WAVAN,CAUYA,WAVZA,GAU0BC,WAV1BD,GAAAA,SAAAA,EAUmDA,WAVnDA,GAUiEC,WAVjED,GAAAA,SAAAA,EAAAA,OAAAA,CAAAA,GAAAA,SAAAA;OAAcC,EAWtBK,WAXsBL,CAWVM,IAXUN,EAAAA,EAWFM,IAXEN,EAAAA,EAAAA,OAAAA,CAAAA;OACtBM,EAWAD,WAXAC,CAAAA,MAAAA,EAAAA,MAAAA,EAAAA,OAAAA,CAAAA;aAAIM,CAAAA,EAYGP,WAZHO,CAYeX,WAVmCY,CAS3CD,yBAAAA,CACuDC,gBAAAA,EAAgBD,yBAAAA,CAAqCE,WAAAA,CAVjED,EAAAA,GAAAA,SAAAA,EAU6FZ,WAV7FY,CAUxBD,yBAAAA,CAAoKC,gBAAAA,EAAgBD,yBAAAA,CAAqCE,WAAAA,CAVjMD,EAAAA,GAAAA,SAAAA,EAAAA,OAAAA,CAAAA,GAAAA,SAAAA;;cAA/CZ,CAAAA,EAYCI,WAZDJ,CAYaF,WAZbE,GAY2BD,WAZ3BC,GAAAA,SAAAA,EAYoDF,WAZpDE,GAYkED,WAZlEC,GAAAA,SAAAA,EAAAA,OAAAA,CAAAA,GAAAA,SAAAA;OAECF,EAWRM,WAXQN,CAWIO,IAXJP,EAAAA,EAWYO,IAXZP,EAAAA,EAAAA,OAAAA,CAAAA;OAAcC,EAYtBK,WAZsBL,CAAAA,MAAAA,EAAAA,MAAAA,EAAAA,OAAAA,CAAAA;aACrBM,CAAAA,EAYMD,WAZNC,CAYkBL,WAZlBK,CAWUM,yBAAAA,CACuDC,gBAAAA,EAAgBD,yBAAAA,CAAqCE,WAAAA,CAZtHR,EAAAA,GAAAA,SAAAA,EAYkJL,WAZlJK,CAY6BM,yBAAAA,CAAoKC,gBAAAA,EAAgBD,yBAAAA,CAAqCE,WAAAA,CAZtPR,EAAAA,GAAAA,SAAAA,EAAAA,OAAAA,CAAAA,GAAAA,SAAAA;oBAEqDO;QAAgBD,EAYrEI,OAZqEJ,CAY7DL,kBAZkGO,CAAAA;OAApGb,EAAAA;IAEaF,YAAAA,EAAAA,GAAAA;;UAAuCA,EAAAA,OAAAA,CAAAA"}
|
|
@@ -3,6 +3,7 @@ import { StateDefinition } from "../graph/annotation.js";
|
|
|
3
3
|
import { CompiledStateGraph } from "../graph/state.js";
|
|
4
4
|
import { ToolExecutor } from "./tool_executor.js";
|
|
5
5
|
import { Runnable } from "@langchain/core/runnables";
|
|
6
|
+
import * as _langchain_core_messages11 from "@langchain/core/messages";
|
|
6
7
|
import { BaseMessage } from "@langchain/core/messages";
|
|
7
8
|
import { AgentAction, AgentFinish } from "@langchain/core/agents";
|
|
8
9
|
import { Tool } from "@langchain/core/tools";
|
|
@@ -30,22 +31,22 @@ declare function createAgentExecutor({
|
|
|
30
31
|
agentOutcome?: AgentAction | AgentFinish | undefined;
|
|
31
32
|
steps: Step[];
|
|
32
33
|
input: string;
|
|
33
|
-
chatHistory?: BaseMessage[] | undefined;
|
|
34
|
+
chatHistory?: BaseMessage<_langchain_core_messages11.MessageStructure, _langchain_core_messages11.MessageType>[] | undefined;
|
|
34
35
|
}, {
|
|
35
36
|
agentOutcome?: AgentAction | AgentFinish | undefined;
|
|
36
37
|
steps?: Step[] | undefined;
|
|
37
38
|
input?: string | undefined;
|
|
38
|
-
chatHistory?: BaseMessage[] | undefined;
|
|
39
|
+
chatHistory?: BaseMessage<_langchain_core_messages11.MessageStructure, _langchain_core_messages11.MessageType>[] | undefined;
|
|
39
40
|
}, "__start__" | "action" | "agent", {
|
|
40
41
|
agentOutcome?: BaseChannel<AgentAction | AgentFinish | undefined, AgentAction | AgentFinish | undefined, unknown> | undefined;
|
|
41
42
|
steps: BaseChannel<Step[], Step[], unknown>;
|
|
42
43
|
input: BaseChannel<string, string, unknown>;
|
|
43
|
-
chatHistory?: BaseChannel<BaseMessage[] | undefined, BaseMessage[] | undefined, unknown> | undefined;
|
|
44
|
+
chatHistory?: BaseChannel<BaseMessage<_langchain_core_messages11.MessageStructure, _langchain_core_messages11.MessageType>[] | undefined, BaseMessage<_langchain_core_messages11.MessageStructure, _langchain_core_messages11.MessageType>[] | undefined, unknown> | undefined;
|
|
44
45
|
}, {
|
|
45
46
|
agentOutcome?: BaseChannel<AgentAction | AgentFinish | undefined, AgentAction | AgentFinish | undefined, unknown> | undefined;
|
|
46
47
|
steps: BaseChannel<Step[], Step[], unknown>;
|
|
47
48
|
input: BaseChannel<string, string, unknown>;
|
|
48
|
-
chatHistory?: BaseChannel<BaseMessage[] | undefined, BaseMessage[] | undefined, unknown> | undefined;
|
|
49
|
+
chatHistory?: BaseChannel<BaseMessage<_langchain_core_messages11.MessageStructure, _langchain_core_messages11.MessageType>[] | undefined, BaseMessage<_langchain_core_messages11.MessageStructure, _langchain_core_messages11.MessageType>[] | undefined, unknown> | undefined;
|
|
49
50
|
}, StateDefinition, {
|
|
50
51
|
action: Partial<AgentExecutorState>;
|
|
51
52
|
agent: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent_executor.d.ts","names":["AgentAction","AgentFinish","BaseMessage","Runnable","Tool","ToolExecutor","BaseChannel","Step","AgentExecutorState","Array","createAgentExecutor","agentRunnable","tools","
|
|
1
|
+
{"version":3,"file":"agent_executor.d.ts","names":["___web_js0","AgentAction","AgentFinish","BaseMessage","Runnable","Tool","ToolExecutor","BaseChannel","Step","AgentExecutorState","Array","createAgentExecutor","agentRunnable","tools","_langchain_core_messages11","MessageStructure","MessageType","StateDefinition","Partial","CompiledStateGraph"],"sources":["../../src/prebuilt/agent_executor.d.ts"],"sourcesContent":["import { AgentAction, AgentFinish } from \"@langchain/core/agents\";\nimport { BaseMessage } from \"@langchain/core/messages\";\nimport { Runnable } from \"@langchain/core/runnables\";\nimport { Tool } from \"@langchain/core/tools\";\nimport { ToolExecutor } from \"./tool_executor.js\";\nimport type { BaseChannel } from \"../channels/base.js\";\ninterface Step {\n action: AgentAction | AgentFinish;\n observation: unknown;\n}\n/** @ignore */\nexport interface AgentExecutorState {\n agentOutcome?: AgentAction | AgentFinish;\n steps: Array<Step>;\n input: string;\n chatHistory?: BaseMessage[];\n}\n/** @ignore */\nexport declare function createAgentExecutor({ agentRunnable, tools }: {\n agentRunnable: Runnable;\n tools: Array<Tool> | ToolExecutor;\n}): import(\"../web.js\").CompiledStateGraph<{\n agentOutcome?: AgentAction | AgentFinish | undefined;\n steps: Step[];\n input: string;\n chatHistory?: BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[] | undefined;\n}, {\n agentOutcome?: AgentAction | AgentFinish | undefined;\n steps?: Step[] | undefined;\n input?: string | undefined;\n chatHistory?: BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[] | undefined;\n}, \"__start__\" | \"action\" | \"agent\", {\n agentOutcome?: BaseChannel<AgentAction | AgentFinish | undefined, AgentAction | AgentFinish | undefined, unknown> | undefined;\n steps: BaseChannel<Step[], Step[], unknown>;\n input: BaseChannel<string, string, unknown>;\n chatHistory?: BaseChannel<BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[] | undefined, BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[] | undefined, unknown> | undefined;\n}, {\n agentOutcome?: BaseChannel<AgentAction | AgentFinish | undefined, AgentAction | AgentFinish | undefined, unknown> | undefined;\n steps: BaseChannel<Step[], Step[], unknown>;\n input: BaseChannel<string, string, unknown>;\n chatHistory?: BaseChannel<BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[] | undefined, BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[] | undefined, unknown> | undefined;\n}, import(\"../web.js\").StateDefinition, {\n action: Partial<AgentExecutorState>;\n agent: {\n agentOutcome: any;\n };\n}, unknown, unknown>;\nexport {};\n"],"mappings":";;;;;;;;;;;UAMUQ,IAAAA;UACEP,cAAcC;;;;AADhBM,UAKOC,kBAAAA,CALH;EAAA,YAAA,CAAA,EAMKR,WANL,GAMmBC,WANnB;OACFD,EAMDS,KANCT,CAMKO,IANLP,CAAAA;OAAcC,EAAAA,MAAAA;gBAQRC;AAJlB;;AACmBF,iBAMKU,mBAAAA,CANLV;EAAAA,aAAAA;EAAAA;CAAAA,EAAAA;eAAcC,EAOdE,QAPcF;OAChBM,EAONE,KAPMF,CAOAH,IAPAG,CAAAA,GAOQF,YAPRE;sBAANE,CAAAA;cAEOP,CAAAA,EAOCF,WAPDE,GAOeD,WAPfC,GAAAA,SAAAA;SAQPK;EALaG,KAAAA,EAAAA,MAAAA;EAAmB,WAAA,CAAA,EAOzBR,WAPyB,CAK5BW,0BAAAA,CAEkDC,gBAAAA,EAAgBD,0BAAAA,CAAqCE,WAAAA,CAP3E,EAAA,GAAA,SAAA;;cAAkBH,CAAAA,EAS1CZ,WAT0CY,GAS5BX,WAT4BW,GAAAA,SAAAA;OAC1CT,CAAAA,EASPI,IATOJ,EAAAA,GAAAA,SAAAA;OACFC,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;aAANK,CAAAA,EAUOP,WAVPO,CAQKI,0BAAAA,CAEiDC,gBAAAA,EAAgBD,0BAAAA,CAAqCE,WAAAA,CAV3GN,EAAAA,GAAAA,SAAAA;cAAcJ,GAAAA,QAAAA,GAAAA,OAAAA,EAAAA;cAENL,CAAAA,EAUAM,WAVAN,CAUYA,WAVZA,GAU0BC,WAV1BD,GAAAA,SAAAA,EAUmDA,WAVnDA,GAUiEC,WAVjED,GAAAA,SAAAA,EAAAA,OAAAA,CAAAA,GAAAA,SAAAA;OAAcC,EAWtBK,WAXsBL,CAWVM,IAXUN,EAAAA,EAWFM,IAXEN,EAAAA,EAAAA,OAAAA,CAAAA;OACtBM,EAWAD,WAXAC,CAAAA,MAAAA,EAAAA,MAAAA,EAAAA,OAAAA,CAAAA;aAAIM,CAAAA,EAYGP,WAZHO,CAYeX,WAVmCY,CAS3CD,0BAAAA,CACuDC,gBAAAA,EAAgBD,0BAAAA,CAAqCE,WAAAA,CAVjED,EAAAA,GAAAA,SAAAA,EAU6FZ,WAV7FY,CAUxBD,0BAAAA,CAAoKC,gBAAAA,EAAgBD,0BAAAA,CAAqCE,WAAAA,CAVjMD,EAAAA,GAAAA,SAAAA,EAAAA,OAAAA,CAAAA,GAAAA,SAAAA;;cAA/CZ,CAAAA,EAYCI,WAZDJ,CAYaF,WAZbE,GAY2BD,WAZ3BC,GAAAA,SAAAA,EAYoDF,WAZpDE,GAYkED,WAZlEC,GAAAA,SAAAA,EAAAA,OAAAA,CAAAA,GAAAA,SAAAA;OAECF,EAWRM,WAXQN,CAWIO,IAXJP,EAAAA,EAWYO,IAXZP,EAAAA,EAAAA,OAAAA,CAAAA;OAAcC,EAYtBK,WAZsBL,CAAAA,MAAAA,EAAAA,MAAAA,EAAAA,OAAAA,CAAAA;aACrBM,CAAAA,EAYMD,WAZNC,CAYkBL,WAZlBK,CAWUM,0BAAAA,CACuDC,gBAAAA,EAAgBD,0BAAAA,CAAqCE,WAAAA,CAZtHR,EAAAA,GAAAA,SAAAA,EAYkJL,WAZlJK,CAY6BM,0BAAAA,CAAoKC,gBAAAA,EAAgBD,0BAAAA,CAAqCE,WAAAA,CAZtPR,EAAAA,GAAAA,SAAAA,EAAAA,OAAAA,CAAAA,GAAAA,SAAAA;oBAEqDO;QAAgBD,EAYrEI,OAZqEJ,CAY7DL,kBAZkGO,CAAAA;OAApGb,EAAAA;IAEaF,YAAAA,EAAAA,GAAAA;;UAAuCA,EAAAA,OAAAA,CAAAA"}
|
|
@@ -11,6 +11,7 @@ import { ToolNode } from "./tool_node.cjs";
|
|
|
11
11
|
import { All, BaseCheckpointSaver, BaseStore } from "@langchain/langgraph-checkpoint";
|
|
12
12
|
import { InteropZodObject, InteropZodType } from "@langchain/core/utils/types";
|
|
13
13
|
import { Runnable, RunnableBinding, RunnableLike, RunnableToolLike } from "@langchain/core/runnables";
|
|
14
|
+
import * as _langchain_core_messages21 from "@langchain/core/messages";
|
|
14
15
|
import { BaseMessage, BaseMessageLike, SystemMessage } from "@langchain/core/messages";
|
|
15
16
|
import { DynamicTool, StructuredToolInterface } from "@langchain/core/tools";
|
|
16
17
|
import { LanguageModelLike } from "@langchain/core/language_models/base";
|
|
@@ -49,7 +50,7 @@ type MessageModifier = SystemMessage | string | ((messages: BaseMessage[]) => Ba
|
|
|
49
50
|
declare const createReactAgentAnnotation: <
|
|
50
51
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
51
52
|
T extends Record<string, any> = Record<string, any>>() => AnnotationRoot<{
|
|
52
|
-
messages: BinaryOperatorAggregate<BaseMessage[], Messages>;
|
|
53
|
+
messages: BinaryOperatorAggregate<BaseMessage<_langchain_core_messages21.MessageStructure, _langchain_core_messages21.MessageType>[], Messages>;
|
|
53
54
|
structuredResponse: {
|
|
54
55
|
(): LastValue<T>;
|
|
55
56
|
(annotation: SingleReducer<T, T>): BinaryOperatorAggregate<T, T>;
|
|
@@ -57,7 +58,7 @@ T extends Record<string, any> = Record<string, any>>() => AnnotationRoot<{
|
|
|
57
58
|
};
|
|
58
59
|
}>;
|
|
59
60
|
declare const PreHookAnnotation: AnnotationRoot<{
|
|
60
|
-
llmInputMessages: BinaryOperatorAggregate<BaseMessage[], Messages>;
|
|
61
|
+
llmInputMessages: BinaryOperatorAggregate<BaseMessage<_langchain_core_messages21.MessageStructure, _langchain_core_messages21.MessageType>[], Messages>;
|
|
61
62
|
}>;
|
|
62
63
|
type PreHookAnnotation = typeof PreHookAnnotation;
|
|
63
64
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react_agent_executor.d.cts","names":["_langchain_core_messages0","_langchain_core_language_models_chat_models0","___web_js2","BaseChatModel","LanguageModelLike","BaseMessage","BaseMessageLike","SystemMessage","Runnable","RunnableToolLike","RunnableSequence","RunnableBinding","RunnableLike","DynamicTool","StructuredToolInterface","InteropZodObject","InteropZodType","All","BaseCheckpointSaver","BaseStore","CompiledStateGraph","AnnotationRoot","MessagesAnnotation","ToolNode","LangGraphRunnableConfig","Runtime","Messages","START","InteropZodToStateDefinition","AgentState","Record","StructuredResponseType","N","StructuredResponseSchemaOptions","ServerTool","ClientTool","ConfigurableModelInterface","Promise","_shouldBindTools","_bindTools","_langchain_core_language_models_base0","BaseLanguageModelInput","AIMessageChunk","BaseChatModelCallOptions","_getModel","Prompt","State","StateModifier","MessageModifier","createReactAgentAnnotation","BinaryOperatorAggregate","T","LastValue","SingleReducer","StateDefinition","S","PreHookAnnotation","AnyAnnotationRoot","ToAnnotationRoot","A","CreateReactAgentParams","C","createReactAgent","StructuredResponseFormat","spec","ReturnType"],"sources":["../../src/prebuilt/react_agent_executor.d.ts"],"sourcesContent":["import { BaseChatModel } from \"@langchain/core/language_models/chat_models\";\nimport { LanguageModelLike } from \"@langchain/core/language_models/base\";\nimport { BaseMessage, BaseMessageLike, SystemMessage } from \"@langchain/core/messages\";\nimport { Runnable, RunnableToolLike, RunnableSequence, RunnableBinding, type RunnableLike } from \"@langchain/core/runnables\";\nimport { DynamicTool, StructuredToolInterface } from \"@langchain/core/tools\";\nimport type { InteropZodObject, InteropZodType } from \"@langchain/core/utils/types\";\nimport { All, BaseCheckpointSaver, BaseStore } from \"@langchain/langgraph-checkpoint\";\nimport { type CompiledStateGraph, AnnotationRoot } from \"../graph/index.js\";\nimport { MessagesAnnotation } from \"../graph/messages_annotation.js\";\nimport { ToolNode } from \"./tool_node.js\";\nimport { LangGraphRunnableConfig, Runtime } from \"../pregel/runnable_types.js\";\nimport { Messages } from \"../graph/message.js\";\nimport { START } from \"../constants.js\";\nimport type { InteropZodToStateDefinition } from \"../graph/zod/meta.js\";\n/**\n * @deprecated `AgentState` has been moved to {@link https://www.npmjs.com/package/langchain langchain} package.\n * Update your import to `import { AgentState } from \"langchain\";`\n */\nexport interface AgentState<\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nStructuredResponseType extends Record<string, any> = Record<string, any>> {\n messages: BaseMessage[];\n // TODO: This won't be set until we\n // implement managed values in LangGraphJS\n // Will be useful for inserting a message on\n // graph recursion end\n // is_last_step: boolean;\n structuredResponse: StructuredResponseType;\n}\nexport type N = typeof START | \"agent\" | \"tools\";\ntype StructuredResponseSchemaOptions<StructuredResponseType> = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n schema: InteropZodType<StructuredResponseType> | Record<string, any>;\n prompt?: string;\n strict?: boolean;\n [key: string]: unknown;\n};\ntype ServerTool = Record<string, unknown>;\ntype ClientTool = StructuredToolInterface | DynamicTool | RunnableToolLike;\ninterface ConfigurableModelInterface {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _queuedMethodOperations: Record<string, any>;\n _model: () => Promise<BaseChatModel>;\n}\nexport declare function _shouldBindTools(llm: LanguageModelLike, tools: (ClientTool | ServerTool)[]): Promise<boolean>;\nexport declare function _bindTools(llm: LanguageModelLike, toolClasses: (ClientTool | ServerTool)[]): Promise<Runnable<import(\"@langchain/core/language_models/base\").BaseLanguageModelInput, import(\"@langchain/core/messages\").AIMessageChunk, import(\"@langchain/core/language_models/chat_models\").BaseChatModelCallOptions> | RunnableBinding<any, any, any> | RunnableSequence<any, any>>;\nexport declare function _getModel(llm: LanguageModelLike | ConfigurableModelInterface): Promise<LanguageModelLike>;\nexport type Prompt = SystemMessage | string | ((state: typeof MessagesAnnotation.State, config: LangGraphRunnableConfig) => BaseMessageLike[]) | ((state: typeof MessagesAnnotation.State, config: LangGraphRunnableConfig) => Promise<BaseMessageLike[]>) | Runnable;\n/** @deprecated Use Prompt instead. */\nexport type StateModifier = Prompt;\n/** @deprecated Use Prompt instead. */\nexport type MessageModifier = SystemMessage | string | ((messages: BaseMessage[]) => BaseMessage[]) | ((messages: BaseMessage[]) => Promise<BaseMessage[]>) | Runnable;\nexport declare const createReactAgentAnnotation: <\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nT extends Record<string, any> = Record<string, any>>() => AnnotationRoot<{\n messages: import(\"../web.js\").BinaryOperatorAggregate<BaseMessage[], Messages>;\n structuredResponse: {\n (): import(\"../web.js\").LastValue<T>;\n (annotation: import(\"../web.js\").SingleReducer<T, T>): import(\"../web.js\").BinaryOperatorAggregate<T, T>;\n Root: <S extends import(\"../web.js\").StateDefinition>(sd: S) => AnnotationRoot<S>;\n };\n}>;\ndeclare const PreHookAnnotation: AnnotationRoot<{\n llmInputMessages: import(\"../web.js\").BinaryOperatorAggregate<BaseMessage[], Messages>;\n}>;\ntype PreHookAnnotation = typeof PreHookAnnotation;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyAnnotationRoot = AnnotationRoot<any>;\ntype ToAnnotationRoot<A extends AnyAnnotationRoot | InteropZodObject> = A extends AnyAnnotationRoot ? A : A extends InteropZodObject ? AnnotationRoot<InteropZodToStateDefinition<A>> : never;\n/**\n * @deprecated `CreateReactAgentParams` has been moved to {@link https://www.npmjs.com/package/langchain langchain} package.\n * Update your import to `import { CreateAgentParams } from \"langchain\";`\n */\nexport type CreateReactAgentParams<A extends AnyAnnotationRoot | InteropZodObject = AnyAnnotationRoot, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nStructuredResponseType extends Record<string, any> = Record<string, any>, C extends AnyAnnotationRoot | InteropZodObject = AnyAnnotationRoot> = {\n /** The chat model that can utilize OpenAI-style tool calling. */\n llm: LanguageModelLike | ((state: ToAnnotationRoot<A>[\"State\"] & PreHookAnnotation[\"State\"], runtime: Runtime<ToAnnotationRoot<C>[\"State\"]>) => Promise<LanguageModelLike> | LanguageModelLike);\n /** A list of tools or a ToolNode. */\n tools: ToolNode | (ServerTool | ClientTool)[];\n /**\n * @deprecated Use prompt instead.\n */\n messageModifier?: MessageModifier;\n /**\n * @deprecated Use prompt instead.\n */\n stateModifier?: StateModifier;\n /**\n * An optional prompt for the LLM. This takes full graph state BEFORE the LLM is called and prepares the input to LLM.\n *\n * Can take a few different forms:\n *\n * - str: This is converted to a SystemMessage and added to the beginning of the list of messages in state[\"messages\"].\n * - SystemMessage: this is added to the beginning of the list of messages in state[\"messages\"].\n * - Function: This function should take in full graph state and the output is then passed to the language model.\n * - Runnable: This runnable should take in full graph state and the output is then passed to the language model.\n *\n * Note:\n * Prior to `v0.2.46`, the prompt was set using `stateModifier` / `messagesModifier` parameters.\n * This is now deprecated and will be removed in a future release.\n */\n prompt?: Prompt;\n /**\n * Additional state schema for the agent.\n */\n stateSchema?: A;\n /**\n * An optional schema for the context.\n */\n contextSchema?: C;\n /** An optional checkpoint saver to persist the agent's state. */\n checkpointSaver?: BaseCheckpointSaver | boolean;\n /** An optional checkpoint saver to persist the agent's state. Alias of \"checkpointSaver\". */\n checkpointer?: BaseCheckpointSaver | boolean;\n /** An optional list of node names to interrupt before running. */\n interruptBefore?: N[] | All;\n /** An optional list of node names to interrupt after running. */\n interruptAfter?: N[] | All;\n store?: BaseStore;\n /**\n * An optional schema for the final agent output.\n *\n * If provided, output will be formatted to match the given schema and returned in the 'structuredResponse' state key.\n * If not provided, `structuredResponse` will not be present in the output state.\n *\n * Can be passed in as:\n * - Zod schema\n * - JSON schema\n * - { prompt, schema }, where schema is one of the above.\n * The prompt will be used together with the model that is being used to generate the structured response.\n *\n * @remarks\n * **Important**: `responseFormat` requires the model to support `.withStructuredOutput()`.\n *\n * **Note**: The graph will make a separate call to the LLM to generate the structured response after the agent loop is finished.\n * This is not the only strategy to get structured responses, see more options in [this guide](https://langchain-ai.github.io/langgraph/how-tos/react-agent-structured-output/).\n */\n responseFormat?: InteropZodType<StructuredResponseType> | StructuredResponseSchemaOptions<StructuredResponseType>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>;\n /**\n * An optional name for the agent.\n */\n name?: string;\n /**\n * An optional description for the agent.\n * This can be used to describe the agent to the underlying supervisor LLM.\n */\n description?: string | undefined;\n /**\n * Use to specify how to expose the agent name to the underlying supervisor LLM.\n \n - undefined: Relies on the LLM provider {@link AIMessage#name}. Currently, only OpenAI supports this.\n - `\"inline\"`: Add the agent name directly into the content field of the {@link AIMessage} using XML-style tags.\n Example: `\"How can I help you\"` -> `\"<name>agent_name</name><content>How can I help you?</content>\"`\n */\n includeAgentName?: \"inline\" | undefined;\n /**\n * An optional node to add before the `agent` node (i.e., the node that calls the LLM).\n * Useful for managing long message histories (e.g., message trimming, summarization, etc.).\n */\n preModelHook?: RunnableLike<ToAnnotationRoot<A>[\"State\"] & PreHookAnnotation[\"State\"], ToAnnotationRoot<A>[\"Update\"] & PreHookAnnotation[\"Update\"], LangGraphRunnableConfig>;\n /**\n * An optional node to add after the `agent` node (i.e., the node that calls the LLM).\n * Useful for implementing human-in-the-loop, guardrails, validation, or other post-processing.\n */\n postModelHook?: RunnableLike<ToAnnotationRoot<A>[\"State\"], ToAnnotationRoot<A>[\"Update\"], LangGraphRunnableConfig>;\n /**\n * Determines the version of the graph to create.\n *\n * Can be one of\n * - `\"v1\"`: The tool node processes a single message. All tool calls in the message are\n * executed in parallel within the tool node.\n * - `\"v2\"`: The tool node processes a single tool call. Tool calls are distributed across\n * multiple instances of the tool node using the Send API.\n *\n * @default `\"v1\"`\n */\n version?: \"v1\" | \"v2\";\n};\n/**\n * @deprecated `createReactAgent` has been moved to {@link https://www.npmjs.com/package/langchain langchain} package.\n * Update your import to `import { createAgent } from \"langchain\";`\n *\n * Creates a StateGraph agent that relies on a chat model utilizing tool calling.\n *\n * @example\n * ```ts\n * import { ChatOpenAI } from \"@langchain/openai\";\n * import { tool } from \"@langchain/core/tools\";\n * import { z } from \"zod\";\n * import { createReactAgent } from \"@langchain/langgraph/prebuilt\";\n *\n * const model = new ChatOpenAI({\n * model: \"gpt-4o\",\n * });\n *\n * const getWeather = tool((input) => {\n * if ([\"sf\", \"san francisco\"].includes(input.location.toLowerCase())) {\n * return \"It's 60 degrees and foggy.\";\n * } else {\n * return \"It's 90 degrees and sunny.\";\n * }\n * }, {\n * name: \"get_weather\",\n * description: \"Call to get the current weather.\",\n * schema: z.object({\n * location: z.string().describe(\"Location to get the weather for.\"),\n * })\n * })\n *\n * const agent = createReactAgent({ llm: model, tools: [getWeather] });\n *\n * const inputs = {\n * messages: [{ role: \"user\", content: \"what is the weather in SF?\" }],\n * };\n *\n * const stream = await agent.stream(inputs, { streamMode: \"values\" });\n *\n * for await (const { messages } of stream) {\n * console.log(messages);\n * }\n * // Returns the messages in the state at each step of execution\n * ```\n */\nexport declare function createReactAgent<A extends AnyAnnotationRoot | InteropZodObject = typeof MessagesAnnotation, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nStructuredResponseFormat extends Record<string, any> = Record<string, any>, C extends AnyAnnotationRoot | InteropZodObject = AnyAnnotationRoot>(params: CreateReactAgentParams<A, StructuredResponseFormat, C>): CompiledStateGraph<ToAnnotationRoot<A>[\"State\"], ToAnnotationRoot<A>[\"Update\"], \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nany, typeof MessagesAnnotation.spec & ToAnnotationRoot<A>[\"spec\"], ReturnType<typeof createReactAgentAnnotation<StructuredResponseFormat>>[\"spec\"] & ToAnnotationRoot<A>[\"spec\"]>;\nexport {};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAkBiB6B,UAAAA,UAAU;;+BAEIC,MAAAA,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA,GAAsBA,MAAtBA,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA,CAAAA,CAAAA;UAAsBA,EACvCzB,WADuCyB,EAAAA;;;;EASzCE;EACPC;EAA+B,kBAAA,EAHZF,sBAGY;;AAExBf,KAHAgB,CAAAA,GAGAhB,OAHWW,KAGXX,GAAAA,OAAAA,GAAAA,OAAAA;KAFPiB,+BAEgDH,CAAAA,sBAAAA,CAAAA,GAAAA;;EAKhDI,MAAAA,EALOlB,cAKG,CALYe,sBAKTD,CAAAA,GALmCA,MAKnCA,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA;EACbK,MAAAA,CAAAA,EAAAA,MAAU;EAAA,MAAA,CAAA,EAAA,OAAA;MAAGrB,EAAAA,MAAAA,CAAAA,EAAAA,OAAAA;;KADboB,UAAAA,GAAaJ,MACwCrB,CAAAA,MAAAA,EAAAA,OAAAA,CAAAA;KAArD0B,UAAAA,GAAarB,0BAA0BD,cAAcJ;AAS6KH,KAA3NuC,MAAAA,GAAStC,aAAkND,GAAAA,MAAAA,GAAAA,CAAAA,CAAAA,KAAAA,EAAAA,OAAzKgB,kBAAAA,CAAmBwB,KAAsJxC,EAAAA,MAAAA,EAAvIkB,uBAAuIlB,EAAAA,GAA3GA,eAA2GA,EAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,EAAAA,OAAtEgB,kBAAAA,CAAmBwB,KAAmDxC,EAAAA,MAAAA,EAApCkB,uBAAoClB,EAAAA,GAAR+B,OAAQ/B,CAAAA,eAAAA,EAAAA,CAAAA,CAAAA,GAAsBE,QAAtBF;;AAAsBE,KAEjPuC,aAAAA,GAAgBF,MAFiOrC;;AAEjPuC,KAEAC,eAAAA,GAAkBzC,aAFFsC,GAAAA,MAAAA,GAAAA,CAAAA,CAAAA,QAAAA,EAEuCxC,WAFvCwC,EAAAA,EAAAA,GAEyDxC,WAFzDwC,EAAAA,CAAAA,GAAAA,CAAAA,CAAAA,QAAAA,EAEsFxC,WAFtFwC,EAAAA,EAAAA,GAEwGR,OAFxGQ,CAEgHxC,WAFhHwC,EAAAA,CAAAA,CAAAA,GAEkIrC,QAFlIqC;AAEhBG,cACSC,0BADM,EAAA;;UAGjBnB,MAHoBvB,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA,GAGEuB,MAHFvB,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA,CAAAA,GAAAA,GAG4Bc,cAH5Bd,CAAAA;UAAqCF,yBAAAA,CAITA,WAJSA,EAAAA,EAIMqB,QAJNrB,CAAAA;oBAAkBA,EAAAA;IAA6BA,EAAAA,WAAAA,CAMxE8C,CANwE9C,CAAAA;IAA0BA,CAAAA,UAAAA,eAAAA,CAOrF8C,CAPqF9C,EAOlF8C,CAPkF9C,CAAAA,CAAAA,yBAAAA,CAOjC8C,CAPiC9C,EAO9B8C,CAP8B9C,CAAAA;IAARgC,IAAAA,EAAAA,CAAAA,yBAAAA,CAAAA,CAAAA,EAAAA,EAQlEkB,CARkElB,EAAAA,GAQ5DhB,cAR4DgB,CAQ7CkB,CAR6ClB,CAAAA;;;AACpI,cAUcmB,iBAVOP,EAUY5B,cAD/B,CAAA;EAAA,gBAAA,yBAAA,CAEgEhB,WAFhE,EAAA,EAE+EqB,QAF/E,CAAA;;KAIG8B,iBAAAA,GAX2B1B,OAWA0B,iBAXA1B;;KAa3B2B,iBAAAA,GAAoBpC,cAZgDK,CAAAA,GAAAA,CAAAA;KAapEgC,2BAA2BD,oBAAoB1C,oBAAoB4C,UAAUF,oBAAoBE,IAAIA,UAAU5C,mBAAmBM,eAAeO,4BAA4B+B;;;;;KAKtKC,iCAAiCH,oBAAoB1C,mBAAmB0C;;+BAErD3B,MAjB+EqB,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA,GAiBzDrB,MAjByDqB,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA,EAAAA,UAiB1BM,iBAjB0BN,GAiBNpC,gBAjBMoC,GAiBaM,iBAjBbN,CAAAA,GAAAA;;OAmBrG/C,6BAA6BsD,iBAAiBC,cAAcH,qCAAqC/B,QAAQiC,iBAAiBG,iBAAiBxB,QAAQjC,qBAAqBA;;OAlB1FmD,EAoB5EhC,QApB4EgC,GAAAA,CAoBhErB,UApBgEqB,GAoBnDpB,UApBmDoB,CAAAA,EAAAA;;;;EAGzEC,eAAAA,CAAAA,EAqBQR,eAnBpB;EAAA;;;kBAuBkBD;;;AAzB2B;AAGE;AAEV;;;;;;;;;;QAC+GnB,CAAAA,EAkCzIiB,MAlCyIjB;;;AAKtJ;EAAkC,WAAA,CAAA,EAiChB+B,CAjCgB;;;;eAEH7B,CAAAA,EAmCX+B,CAnCW/B;;iBAAqD2B,CAAAA,EAqC9DvC,mBArC8DuC,GAAAA,OAAAA;;cAAuCA,CAAAA,EAuCxGvC,mBAvCwGuC,GAAAA,OAAAA;;iBAEpEE,CAAAA,EAuCjC3B,CAvCiC2B,EAAAA,GAuC3B1C,GAvC2B0C;;gBAAcH,CAAAA,EAyChDxB,CAzCgDwB,EAAAA,GAyC1CvC,GAzC0CuC;OAA8DK,CAAAA,EA0CvH1C,SA1CuH0C;;;;;;;;;;;;;;;;;;;gBAyCxG5C,CAAAA,EAoBND,cApBMC,CAoBSc,sBApBTd,CAAAA,GAoBmCgB,+BApBnChB,CAoBmEc,sBApBnEd;;IAsBpBa,MAF6BC,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA;;;;MAE7BD,CAAAA,EAAAA,MAAAA;;;;;aAsBoF4B,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;;;;;;;kBAKGlC,CAAAA,EAAAA,QAAAA,GAAAA,SAAAA;;;AA2D9F;;cAAmDiC,CAAAA,EAhEhC7C,YAgEgC6C,CAhEnBC,gBAgEmBD,CAhEFE,CAgEEF,CAAAA,CAAAA,OAAAA,CAAAA,GAhEYD,iBAgEZC,CAAAA,OAAAA,CAAAA,EAhEwCC,gBAgExCD,CAhEyDE,CAgEzDF,CAAAA,CAAAA,QAAAA,CAAAA,GAhEwED,iBAgExEC,CAAAA,QAAAA,CAAAA,EAhEqGjC,uBAgErGiC,CAAAA;;;;;eAEmCA,CAAAA,EA7DlE7C,YA6DkE6C,CA7DrDC,gBA6DqDD,CA7DpCE,CA6DoCF,CAAAA,CAAAA,OAAAA,CAAAA,EA7DvBC,gBA6DuBD,CA7DNE,CA6DMF,CAAAA,CAAAA,QAAAA,CAAAA,EA7DQjC,uBA6DRiC,CAAAA;;;;;;;;;;;;SAE/BE,CAAAA,EAAAA,IAAAA,GAAAA,IAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAJ/BG,2BAA2BL,oBAAoB1C,0BAA0BO;;iCAEhEQ,sBAAsBA,+BAA+B2B,oBAAoB1C,mBAAmB0C,2BAA2BG,uBAAuBD,GAAGI,0BAA0BF,KAAKzC,mBAAmBsC,iBAAiBC,aAAaD,iBAAiBC;;YAEvQrC,kBAAAA,CAAmB0C,OAAON,iBAAiBC,YAAYM,kBAAkBhB,2BAA2Bc,qCAAqCL,iBAAiBC"}
|
|
1
|
+
{"version":3,"file":"react_agent_executor.d.cts","names":["_langchain_core_messages21","_langchain_core_language_models_chat_models0","___web_js2","BaseChatModel","LanguageModelLike","BaseMessage","BaseMessageLike","SystemMessage","Runnable","RunnableToolLike","RunnableSequence","RunnableBinding","RunnableLike","DynamicTool","StructuredToolInterface","InteropZodObject","InteropZodType","All","BaseCheckpointSaver","BaseStore","CompiledStateGraph","AnnotationRoot","MessagesAnnotation","ToolNode","LangGraphRunnableConfig","Runtime","Messages","START","InteropZodToStateDefinition","AgentState","Record","StructuredResponseType","N","StructuredResponseSchemaOptions","ServerTool","ClientTool","ConfigurableModelInterface","Promise","_shouldBindTools","_bindTools","_langchain_core_language_models_base0","BaseLanguageModelInput","MessageStructure","AIMessageChunk","BaseChatModelCallOptions","_getModel","Prompt","State","StateModifier","MessageModifier","createReactAgentAnnotation","MessageType","BinaryOperatorAggregate","T","LastValue","SingleReducer","StateDefinition","S","PreHookAnnotation","AnyAnnotationRoot","ToAnnotationRoot","A","CreateReactAgentParams","C","createReactAgent","StructuredResponseFormat","spec","ReturnType"],"sources":["../../src/prebuilt/react_agent_executor.d.ts"],"sourcesContent":["import { BaseChatModel } from \"@langchain/core/language_models/chat_models\";\nimport { LanguageModelLike } from \"@langchain/core/language_models/base\";\nimport { BaseMessage, BaseMessageLike, SystemMessage } from \"@langchain/core/messages\";\nimport { Runnable, RunnableToolLike, RunnableSequence, RunnableBinding, type RunnableLike } from \"@langchain/core/runnables\";\nimport { DynamicTool, StructuredToolInterface } from \"@langchain/core/tools\";\nimport type { InteropZodObject, InteropZodType } from \"@langchain/core/utils/types\";\nimport { All, BaseCheckpointSaver, BaseStore } from \"@langchain/langgraph-checkpoint\";\nimport { type CompiledStateGraph, AnnotationRoot } from \"../graph/index.js\";\nimport { MessagesAnnotation } from \"../graph/messages_annotation.js\";\nimport { ToolNode } from \"./tool_node.js\";\nimport { LangGraphRunnableConfig, Runtime } from \"../pregel/runnable_types.js\";\nimport { Messages } from \"../graph/message.js\";\nimport { START } from \"../constants.js\";\nimport type { InteropZodToStateDefinition } from \"../graph/zod/meta.js\";\n/**\n * @deprecated `AgentState` has been moved to {@link https://www.npmjs.com/package/langchain langchain} package.\n * Update your import to `import { AgentState } from \"langchain\";`\n */\nexport interface AgentState<\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nStructuredResponseType extends Record<string, any> = Record<string, any>> {\n messages: BaseMessage[];\n // TODO: This won't be set until we\n // implement managed values in LangGraphJS\n // Will be useful for inserting a message on\n // graph recursion end\n // is_last_step: boolean;\n structuredResponse: StructuredResponseType;\n}\nexport type N = typeof START | \"agent\" | \"tools\";\ntype StructuredResponseSchemaOptions<StructuredResponseType> = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n schema: InteropZodType<StructuredResponseType> | Record<string, any>;\n prompt?: string;\n strict?: boolean;\n [key: string]: unknown;\n};\ntype ServerTool = Record<string, unknown>;\ntype ClientTool = StructuredToolInterface | DynamicTool | RunnableToolLike;\ninterface ConfigurableModelInterface {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _queuedMethodOperations: Record<string, any>;\n _model: () => Promise<BaseChatModel>;\n}\nexport declare function _shouldBindTools(llm: LanguageModelLike, tools: (ClientTool | ServerTool)[]): Promise<boolean>;\nexport declare function _bindTools(llm: LanguageModelLike, toolClasses: (ClientTool | ServerTool)[]): Promise<Runnable<import(\"@langchain/core/language_models/base\").BaseLanguageModelInput, import(\"@langchain/core/messages\").AIMessageChunk<import(\"@langchain/core/messages\").MessageStructure>, import(\"@langchain/core/language_models/chat_models\").BaseChatModelCallOptions> | RunnableBinding<any, any, any> | RunnableSequence<any, any>>;\nexport declare function _getModel(llm: LanguageModelLike | ConfigurableModelInterface): Promise<LanguageModelLike>;\nexport type Prompt = SystemMessage | string | ((state: typeof MessagesAnnotation.State, config: LangGraphRunnableConfig) => BaseMessageLike[]) | ((state: typeof MessagesAnnotation.State, config: LangGraphRunnableConfig) => Promise<BaseMessageLike[]>) | Runnable;\n/** @deprecated Use Prompt instead. */\nexport type StateModifier = Prompt;\n/** @deprecated Use Prompt instead. */\nexport type MessageModifier = SystemMessage | string | ((messages: BaseMessage[]) => BaseMessage[]) | ((messages: BaseMessage[]) => Promise<BaseMessage[]>) | Runnable;\nexport declare const createReactAgentAnnotation: <\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nT extends Record<string, any> = Record<string, any>>() => AnnotationRoot<{\n messages: import(\"../web.js\").BinaryOperatorAggregate<BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[], Messages>;\n structuredResponse: {\n (): import(\"../web.js\").LastValue<T>;\n (annotation: import(\"../web.js\").SingleReducer<T, T>): import(\"../web.js\").BinaryOperatorAggregate<T, T>;\n Root: <S extends import(\"../web.js\").StateDefinition>(sd: S) => AnnotationRoot<S>;\n };\n}>;\ndeclare const PreHookAnnotation: AnnotationRoot<{\n llmInputMessages: import(\"../web.js\").BinaryOperatorAggregate<BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[], Messages>;\n}>;\ntype PreHookAnnotation = typeof PreHookAnnotation;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyAnnotationRoot = AnnotationRoot<any>;\ntype ToAnnotationRoot<A extends AnyAnnotationRoot | InteropZodObject> = A extends AnyAnnotationRoot ? A : A extends InteropZodObject ? AnnotationRoot<InteropZodToStateDefinition<A>> : never;\n/**\n * @deprecated `CreateReactAgentParams` has been moved to {@link https://www.npmjs.com/package/langchain langchain} package.\n * Update your import to `import { CreateAgentParams } from \"langchain\";`\n */\nexport type CreateReactAgentParams<A extends AnyAnnotationRoot | InteropZodObject = AnyAnnotationRoot, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nStructuredResponseType extends Record<string, any> = Record<string, any>, C extends AnyAnnotationRoot | InteropZodObject = AnyAnnotationRoot> = {\n /** The chat model that can utilize OpenAI-style tool calling. */\n llm: LanguageModelLike | ((state: ToAnnotationRoot<A>[\"State\"] & PreHookAnnotation[\"State\"], runtime: Runtime<ToAnnotationRoot<C>[\"State\"]>) => Promise<LanguageModelLike> | LanguageModelLike);\n /** A list of tools or a ToolNode. */\n tools: ToolNode | (ServerTool | ClientTool)[];\n /**\n * @deprecated Use prompt instead.\n */\n messageModifier?: MessageModifier;\n /**\n * @deprecated Use prompt instead.\n */\n stateModifier?: StateModifier;\n /**\n * An optional prompt for the LLM. This takes full graph state BEFORE the LLM is called and prepares the input to LLM.\n *\n * Can take a few different forms:\n *\n * - str: This is converted to a SystemMessage and added to the beginning of the list of messages in state[\"messages\"].\n * - SystemMessage: this is added to the beginning of the list of messages in state[\"messages\"].\n * - Function: This function should take in full graph state and the output is then passed to the language model.\n * - Runnable: This runnable should take in full graph state and the output is then passed to the language model.\n *\n * Note:\n * Prior to `v0.2.46`, the prompt was set using `stateModifier` / `messagesModifier` parameters.\n * This is now deprecated and will be removed in a future release.\n */\n prompt?: Prompt;\n /**\n * Additional state schema for the agent.\n */\n stateSchema?: A;\n /**\n * An optional schema for the context.\n */\n contextSchema?: C;\n /** An optional checkpoint saver to persist the agent's state. */\n checkpointSaver?: BaseCheckpointSaver | boolean;\n /** An optional checkpoint saver to persist the agent's state. Alias of \"checkpointSaver\". */\n checkpointer?: BaseCheckpointSaver | boolean;\n /** An optional list of node names to interrupt before running. */\n interruptBefore?: N[] | All;\n /** An optional list of node names to interrupt after running. */\n interruptAfter?: N[] | All;\n store?: BaseStore;\n /**\n * An optional schema for the final agent output.\n *\n * If provided, output will be formatted to match the given schema and returned in the 'structuredResponse' state key.\n * If not provided, `structuredResponse` will not be present in the output state.\n *\n * Can be passed in as:\n * - Zod schema\n * - JSON schema\n * - { prompt, schema }, where schema is one of the above.\n * The prompt will be used together with the model that is being used to generate the structured response.\n *\n * @remarks\n * **Important**: `responseFormat` requires the model to support `.withStructuredOutput()`.\n *\n * **Note**: The graph will make a separate call to the LLM to generate the structured response after the agent loop is finished.\n * This is not the only strategy to get structured responses, see more options in [this guide](https://langchain-ai.github.io/langgraph/how-tos/react-agent-structured-output/).\n */\n responseFormat?: InteropZodType<StructuredResponseType> | StructuredResponseSchemaOptions<StructuredResponseType>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>;\n /**\n * An optional name for the agent.\n */\n name?: string;\n /**\n * An optional description for the agent.\n * This can be used to describe the agent to the underlying supervisor LLM.\n */\n description?: string | undefined;\n /**\n * Use to specify how to expose the agent name to the underlying supervisor LLM.\n \n - undefined: Relies on the LLM provider {@link AIMessage#name}. Currently, only OpenAI supports this.\n - `\"inline\"`: Add the agent name directly into the content field of the {@link AIMessage} using XML-style tags.\n Example: `\"How can I help you\"` -> `\"<name>agent_name</name><content>How can I help you?</content>\"`\n */\n includeAgentName?: \"inline\" | undefined;\n /**\n * An optional node to add before the `agent` node (i.e., the node that calls the LLM).\n * Useful for managing long message histories (e.g., message trimming, summarization, etc.).\n */\n preModelHook?: RunnableLike<ToAnnotationRoot<A>[\"State\"] & PreHookAnnotation[\"State\"], ToAnnotationRoot<A>[\"Update\"] & PreHookAnnotation[\"Update\"], LangGraphRunnableConfig>;\n /**\n * An optional node to add after the `agent` node (i.e., the node that calls the LLM).\n * Useful for implementing human-in-the-loop, guardrails, validation, or other post-processing.\n */\n postModelHook?: RunnableLike<ToAnnotationRoot<A>[\"State\"], ToAnnotationRoot<A>[\"Update\"], LangGraphRunnableConfig>;\n /**\n * Determines the version of the graph to create.\n *\n * Can be one of\n * - `\"v1\"`: The tool node processes a single message. All tool calls in the message are\n * executed in parallel within the tool node.\n * - `\"v2\"`: The tool node processes a single tool call. Tool calls are distributed across\n * multiple instances of the tool node using the Send API.\n *\n * @default `\"v1\"`\n */\n version?: \"v1\" | \"v2\";\n};\n/**\n * @deprecated `createReactAgent` has been moved to {@link https://www.npmjs.com/package/langchain langchain} package.\n * Update your import to `import { createAgent } from \"langchain\";`\n *\n * Creates a StateGraph agent that relies on a chat model utilizing tool calling.\n *\n * @example\n * ```ts\n * import { ChatOpenAI } from \"@langchain/openai\";\n * import { tool } from \"@langchain/core/tools\";\n * import { z } from \"zod\";\n * import { createReactAgent } from \"@langchain/langgraph/prebuilt\";\n *\n * const model = new ChatOpenAI({\n * model: \"gpt-4o\",\n * });\n *\n * const getWeather = tool((input) => {\n * if ([\"sf\", \"san francisco\"].includes(input.location.toLowerCase())) {\n * return \"It's 60 degrees and foggy.\";\n * } else {\n * return \"It's 90 degrees and sunny.\";\n * }\n * }, {\n * name: \"get_weather\",\n * description: \"Call to get the current weather.\",\n * schema: z.object({\n * location: z.string().describe(\"Location to get the weather for.\"),\n * })\n * })\n *\n * const agent = createReactAgent({ llm: model, tools: [getWeather] });\n *\n * const inputs = {\n * messages: [{ role: \"user\", content: \"what is the weather in SF?\" }],\n * };\n *\n * const stream = await agent.stream(inputs, { streamMode: \"values\" });\n *\n * for await (const { messages } of stream) {\n * console.log(messages);\n * }\n * // Returns the messages in the state at each step of execution\n * ```\n */\nexport declare function createReactAgent<A extends AnyAnnotationRoot | InteropZodObject = typeof MessagesAnnotation, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nStructuredResponseFormat extends Record<string, any> = Record<string, any>, C extends AnyAnnotationRoot | InteropZodObject = AnyAnnotationRoot>(params: CreateReactAgentParams<A, StructuredResponseFormat, C>): CompiledStateGraph<ToAnnotationRoot<A>[\"State\"], ToAnnotationRoot<A>[\"Update\"], \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nany, typeof MessagesAnnotation.spec & ToAnnotationRoot<A>[\"spec\"], ReturnType<typeof createReactAgentAnnotation<StructuredResponseFormat>>[\"spec\"] & ToAnnotationRoot<A>[\"spec\"]>;\nexport {};\n"],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ import { MessagesAnnotation } from "../graph/messages_annotation.js";
|
|
|
10
10
|
import { ToolNode } from "./tool_node.js";
|
|
11
11
|
import { All, BaseCheckpointSaver, BaseStore } from "@langchain/langgraph-checkpoint";
|
|
12
12
|
import { Runnable, RunnableBinding, RunnableLike, RunnableSequence, RunnableToolLike } from "@langchain/core/runnables";
|
|
13
|
+
import * as _langchain_core_messages23 from "@langchain/core/messages";
|
|
13
14
|
import { BaseMessage, BaseMessageLike, SystemMessage } from "@langchain/core/messages";
|
|
14
15
|
import { InteropZodObject, InteropZodType } from "@langchain/core/utils/types";
|
|
15
16
|
import { DynamicTool, StructuredToolInterface } from "@langchain/core/tools";
|
|
@@ -49,7 +50,7 @@ type MessageModifier = SystemMessage | string | ((messages: BaseMessage[]) => Ba
|
|
|
49
50
|
declare const createReactAgentAnnotation: <
|
|
50
51
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
51
52
|
T extends Record<string, any> = Record<string, any>>() => AnnotationRoot<{
|
|
52
|
-
messages: BinaryOperatorAggregate<BaseMessage[], Messages>;
|
|
53
|
+
messages: BinaryOperatorAggregate<BaseMessage<_langchain_core_messages23.MessageStructure, _langchain_core_messages23.MessageType>[], Messages>;
|
|
53
54
|
structuredResponse: {
|
|
54
55
|
(): LastValue<T>;
|
|
55
56
|
(annotation: SingleReducer<T, T>): BinaryOperatorAggregate<T, T>;
|
|
@@ -57,7 +58,7 @@ T extends Record<string, any> = Record<string, any>>() => AnnotationRoot<{
|
|
|
57
58
|
};
|
|
58
59
|
}>;
|
|
59
60
|
declare const PreHookAnnotation: AnnotationRoot<{
|
|
60
|
-
llmInputMessages: BinaryOperatorAggregate<BaseMessage[], Messages>;
|
|
61
|
+
llmInputMessages: BinaryOperatorAggregate<BaseMessage<_langchain_core_messages23.MessageStructure, _langchain_core_messages23.MessageType>[], Messages>;
|
|
61
62
|
}>;
|
|
62
63
|
type PreHookAnnotation = typeof PreHookAnnotation;
|
|
63
64
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|