langchain 1.0.0-alpha.8 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +260 -0
- package/LICENSE +6 -6
- package/README.md +29 -77
- package/dist/agents/ReactAgent.cjs +498 -104
- package/dist/agents/ReactAgent.cjs.map +1 -1
- package/dist/agents/ReactAgent.d.cts +140 -17
- package/dist/agents/ReactAgent.d.cts.map +1 -1
- package/dist/agents/ReactAgent.d.ts +140 -17
- package/dist/agents/ReactAgent.d.ts.map +1 -1
- package/dist/agents/ReactAgent.js +501 -107
- package/dist/agents/ReactAgent.js.map +1 -1
- package/dist/agents/annotation.cjs +34 -152
- package/dist/agents/annotation.cjs.map +1 -1
- package/dist/agents/annotation.js +36 -150
- package/dist/agents/annotation.js.map +1 -1
- package/dist/agents/constants.cjs.map +1 -1
- package/dist/agents/constants.d.cts +9 -0
- package/dist/agents/constants.d.cts.map +1 -0
- package/dist/agents/constants.d.ts +9 -0
- package/dist/agents/constants.d.ts.map +1 -0
- package/dist/agents/constants.js.map +1 -1
- package/dist/agents/errors.cjs +2 -1
- package/dist/agents/errors.cjs.map +1 -1
- package/dist/agents/errors.js +2 -1
- package/dist/agents/errors.js.map +1 -1
- package/dist/agents/index.cjs +5 -29
- package/dist/agents/index.cjs.map +1 -1
- package/dist/agents/index.d.cts +157 -128
- package/dist/agents/index.d.cts.map +1 -1
- package/dist/agents/index.d.ts +157 -128
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +5 -27
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/{middlewareAgent/middleware → middleware}/callLimit.cjs +31 -29
- package/dist/agents/middleware/callLimit.cjs.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/callLimit.d.cts +3 -3
- package/dist/agents/middleware/callLimit.d.cts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/callLimit.d.ts +3 -3
- package/dist/agents/middleware/callLimit.d.ts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/callLimit.js +30 -28
- package/dist/agents/middleware/callLimit.js.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/contextEditing.cjs +6 -6
- package/dist/agents/middleware/contextEditing.cjs.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/contextEditing.d.cts +2 -2
- package/dist/agents/middleware/contextEditing.d.cts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/contextEditing.d.ts +2 -2
- package/dist/agents/middleware/contextEditing.d.ts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/contextEditing.js +5 -5
- package/dist/agents/middleware/contextEditing.js.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/dynamicSystemPrompt.cjs +6 -6
- package/dist/agents/middleware/dynamicSystemPrompt.cjs.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/dynamicSystemPrompt.d.cts +3 -2
- package/dist/agents/middleware/dynamicSystemPrompt.d.cts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/dynamicSystemPrompt.d.ts +3 -2
- package/dist/agents/middleware/dynamicSystemPrompt.d.ts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/dynamicSystemPrompt.js +6 -6
- package/dist/agents/middleware/dynamicSystemPrompt.js.map +1 -0
- package/dist/agents/middleware/hitl.cjs +406 -0
- package/dist/agents/middleware/hitl.cjs.map +1 -0
- package/dist/agents/middleware/hitl.d.cts +611 -0
- package/dist/agents/middleware/hitl.d.cts.map +1 -0
- package/dist/agents/middleware/hitl.d.ts +611 -0
- package/dist/agents/middleware/hitl.d.ts.map +1 -0
- package/dist/agents/middleware/hitl.js +405 -0
- package/dist/agents/middleware/hitl.js.map +1 -0
- package/dist/agents/middleware/index.cjs +12 -0
- package/dist/agents/middleware/index.js +12 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/llmToolSelector.cjs +7 -7
- package/dist/agents/middleware/llmToolSelector.cjs.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/llmToolSelector.d.cts +2 -2
- package/dist/agents/middleware/llmToolSelector.d.cts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/llmToolSelector.d.ts +2 -2
- package/dist/agents/middleware/llmToolSelector.d.ts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/llmToolSelector.js +6 -6
- package/dist/agents/middleware/llmToolSelector.js.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/modelFallback.cjs +29 -22
- package/dist/agents/middleware/modelFallback.cjs.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/modelFallback.d.cts +3 -3
- package/dist/agents/middleware/modelFallback.d.cts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/modelFallback.d.ts +3 -3
- package/dist/agents/middleware/modelFallback.d.ts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/modelFallback.js +29 -22
- package/dist/agents/middleware/modelFallback.js.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/piiRedaction.cjs +12 -12
- package/dist/agents/middleware/piiRedaction.cjs.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/piiRedaction.d.cts +4 -4
- package/dist/agents/middleware/piiRedaction.d.cts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/piiRedaction.d.ts +4 -4
- package/dist/agents/middleware/piiRedaction.d.ts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/piiRedaction.js +10 -10
- package/dist/agents/middleware/piiRedaction.js.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/promptCaching.cjs +27 -24
- package/dist/agents/middleware/promptCaching.cjs.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/promptCaching.d.cts +3 -3
- package/dist/agents/middleware/promptCaching.d.cts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/promptCaching.d.ts +3 -3
- package/dist/agents/middleware/promptCaching.d.ts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/promptCaching.js +26 -23
- package/dist/agents/middleware/promptCaching.js.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/summarization.cjs +7 -12
- package/dist/agents/middleware/summarization.cjs.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/summarization.d.cts +3 -3
- package/dist/agents/middleware/summarization.d.cts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/summarization.d.ts +3 -3
- package/dist/agents/middleware/summarization.d.ts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/summarization.js +5 -10
- package/dist/agents/middleware/summarization.js.map +1 -0
- package/dist/agents/middleware/todoListMiddleware.cjs +314 -0
- package/dist/agents/middleware/todoListMiddleware.cjs.map +1 -0
- package/dist/agents/middleware/todoListMiddleware.d.cts +75 -0
- package/dist/agents/middleware/todoListMiddleware.d.cts.map +1 -0
- package/dist/agents/middleware/todoListMiddleware.d.ts +75 -0
- package/dist/agents/middleware/todoListMiddleware.d.ts.map +1 -0
- package/dist/agents/middleware/todoListMiddleware.js +312 -0
- package/dist/agents/middleware/todoListMiddleware.js.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/toolCallLimit.cjs +32 -30
- package/dist/agents/middleware/toolCallLimit.cjs.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/toolCallLimit.d.cts +3 -3
- package/dist/agents/middleware/toolCallLimit.d.cts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/toolCallLimit.d.ts +3 -3
- package/dist/agents/middleware/toolCallLimit.d.ts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/toolCallLimit.js +31 -29
- package/dist/agents/middleware/toolCallLimit.js.map +1 -0
- package/dist/agents/middleware/types.d.cts +354 -0
- package/dist/agents/middleware/types.d.cts.map +1 -0
- package/dist/agents/middleware/types.d.ts +354 -0
- package/dist/agents/middleware/types.d.ts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/utils.cjs +11 -1
- package/dist/agents/middleware/utils.cjs.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/utils.d.cts +1 -1
- package/dist/agents/middleware/utils.d.cts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/utils.d.ts +1 -1
- package/dist/agents/middleware/utils.d.ts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware → middleware}/utils.js +10 -2
- package/dist/agents/middleware/utils.js.map +1 -0
- package/dist/agents/{middlewareAgent/middleware.cjs → middleware.cjs} +11 -8
- package/dist/agents/middleware.cjs.map +1 -0
- package/dist/agents/middleware.d.cts +185 -0
- package/dist/agents/middleware.d.cts.map +1 -0
- package/dist/agents/middleware.d.ts +185 -0
- package/dist/agents/middleware.d.ts.map +1 -0
- package/dist/agents/{middlewareAgent/middleware.js → middleware.js} +11 -8
- package/dist/agents/middleware.js.map +1 -0
- package/dist/agents/nodes/AfterAgentNode.cjs +29 -0
- package/dist/agents/nodes/AfterAgentNode.cjs.map +1 -0
- package/dist/agents/nodes/AfterAgentNode.js +29 -0
- package/dist/agents/nodes/AfterAgentNode.js.map +1 -0
- package/dist/agents/{middlewareAgent/nodes/AfterModalNode.cjs → nodes/AfterModelNode.cjs} +6 -6
- package/dist/agents/nodes/AfterModelNode.cjs.map +1 -0
- package/dist/agents/{middlewareAgent/nodes/AfterModalNode.js → nodes/AfterModelNode.js} +6 -6
- package/dist/agents/nodes/AfterModelNode.js.map +1 -0
- package/dist/agents/nodes/AgentNode.cjs +203 -71
- package/dist/agents/nodes/AgentNode.cjs.map +1 -1
- package/dist/agents/nodes/AgentNode.js +205 -73
- package/dist/agents/nodes/AgentNode.js.map +1 -1
- package/dist/agents/nodes/BeforeAgentNode.cjs +29 -0
- package/dist/agents/nodes/BeforeAgentNode.cjs.map +1 -0
- package/dist/agents/nodes/BeforeAgentNode.js +29 -0
- package/dist/agents/nodes/BeforeAgentNode.js.map +1 -0
- package/dist/agents/{middlewareAgent/nodes/BeforeModalNode.cjs → nodes/BeforeModelNode.cjs} +6 -4
- package/dist/agents/nodes/BeforeModelNode.cjs.map +1 -0
- package/dist/agents/{middlewareAgent/nodes/BeforeModalNode.js → nodes/BeforeModelNode.js} +6 -4
- package/dist/agents/nodes/BeforeModelNode.js.map +1 -0
- package/dist/agents/nodes/ToolNode.cjs +163 -52
- package/dist/agents/nodes/ToolNode.cjs.map +1 -1
- package/dist/agents/nodes/ToolNode.js +164 -53
- package/dist/agents/nodes/ToolNode.js.map +1 -1
- package/dist/agents/{middlewareAgent/nodes → nodes}/middleware.cjs +36 -10
- package/dist/agents/nodes/middleware.cjs.map +1 -0
- package/dist/agents/{middlewareAgent/nodes → nodes}/middleware.js +35 -9
- package/dist/agents/nodes/middleware.js.map +1 -0
- package/dist/agents/nodes/types.d.cts +72 -0
- package/dist/agents/nodes/types.d.cts.map +1 -0
- package/dist/agents/nodes/types.d.ts +72 -0
- package/dist/agents/nodes/types.d.ts.map +1 -0
- package/dist/agents/nodes/utils.cjs +64 -0
- package/dist/agents/nodes/utils.cjs.map +1 -1
- package/dist/agents/nodes/utils.js +62 -1
- package/dist/agents/nodes/utils.js.map +1 -1
- package/dist/agents/responses.cjs +1 -1
- package/dist/agents/responses.cjs.map +1 -1
- package/dist/agents/responses.d.cts +9 -2
- package/dist/agents/responses.d.cts.map +1 -1
- package/dist/agents/responses.d.ts +8 -1
- package/dist/agents/responses.d.ts.map +1 -1
- package/dist/agents/responses.js +1 -1
- package/dist/agents/responses.js.map +1 -1
- package/dist/agents/runtime.d.cts +123 -0
- package/dist/agents/runtime.d.cts.map +1 -0
- package/dist/agents/runtime.d.ts +123 -0
- package/dist/agents/runtime.d.ts.map +1 -0
- package/dist/agents/tests/utils.cjs +13 -5
- package/dist/agents/tests/utils.cjs.map +1 -1
- package/dist/agents/tests/utils.d.cts +17 -8
- package/dist/agents/tests/utils.d.cts.map +1 -1
- package/dist/agents/tests/utils.d.ts +14 -5
- package/dist/agents/tests/utils.d.ts.map +1 -1
- package/dist/agents/tests/utils.js +13 -5
- package/dist/agents/tests/utils.js.map +1 -1
- package/dist/agents/tools.d.cts +9 -0
- package/dist/agents/tools.d.cts.map +1 -0
- package/dist/agents/tools.d.ts +9 -0
- package/dist/agents/tools.d.ts.map +1 -0
- package/dist/agents/types.d.cts +163 -119
- package/dist/agents/types.d.cts.map +1 -1
- package/dist/agents/types.d.ts +163 -119
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/agents/utils.cjs +141 -38
- package/dist/agents/utils.cjs.map +1 -1
- package/dist/agents/utils.js +142 -40
- package/dist/agents/utils.js.map +1 -1
- package/dist/chat_models/universal.cjs +4 -0
- package/dist/chat_models/universal.cjs.map +1 -1
- package/dist/chat_models/universal.d.cts +6 -2
- package/dist/chat_models/universal.d.cts.map +1 -1
- package/dist/chat_models/universal.d.ts +4 -0
- package/dist/chat_models/universal.d.ts.map +1 -1
- package/dist/chat_models/universal.js +4 -0
- package/dist/chat_models/universal.js.map +1 -1
- package/dist/hub/base.cjs +4 -3
- package/dist/hub/base.cjs.map +1 -1
- package/dist/hub/base.d.cts +0 -4
- package/dist/hub/base.d.cts.map +1 -1
- package/dist/hub/base.d.ts +0 -4
- package/dist/hub/base.d.ts.map +1 -1
- package/dist/hub/base.js +4 -3
- package/dist/hub/base.js.map +1 -1
- package/dist/index.cjs +23 -43
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +21 -21
- package/dist/index.d.ts +21 -21
- package/dist/index.js +17 -26
- package/dist/index.js.map +1 -1
- package/dist/load/import_map.cjs +1 -7
- package/dist/load/import_map.cjs.map +1 -1
- package/dist/load/import_map.js +1 -7
- package/dist/load/import_map.js.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/client.cjs +74 -18
- package/dist/node_modules/.pnpm/langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_/node_modules/langsmith/dist/client.cjs.map +1 -0
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/client.js +75 -19
- package/dist/node_modules/.pnpm/langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_/node_modules/langsmith/dist/client.js.map +1 -0
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/env.cjs +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/env.cjs.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/env.js +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/env.js.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/experimental/otel/constants.cjs +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/experimental/otel/constants.cjs.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/experimental/otel/constants.js +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/experimental/otel/constants.js.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/experimental/otel/translator.cjs +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/experimental/otel/translator.cjs.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/experimental/otel/translator.js +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/experimental/otel/translator.js.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/index.cjs +2 -2
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/index.cjs.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/index.js +2 -2
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/index.js.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/run_trees.cjs +7 -5
- package/dist/node_modules/.pnpm/langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_/node_modules/langsmith/dist/run_trees.cjs.map +1 -0
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/run_trees.js +7 -5
- package/dist/node_modules/.pnpm/langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_/node_modules/langsmith/dist/run_trees.js.map +1 -0
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/singletons/constants.cjs +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/singletons/constants.cjs.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/singletons/constants.js +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/singletons/constants.js.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/singletons/fetch.cjs +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/singletons/fetch.cjs.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/singletons/fetch.js +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/singletons/fetch.js.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/singletons/otel.cjs +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/singletons/otel.cjs.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/singletons/otel.js +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/singletons/otel.js.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/_uuid.cjs +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/_uuid.cjs.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/_uuid.js +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/_uuid.js.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/async_caller.cjs +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/async_caller.cjs.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/async_caller.js +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/async_caller.js.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/env.cjs +19 -23
- package/dist/node_modules/.pnpm/langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_/node_modules/langsmith/dist/utils/env.cjs.map +1 -0
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/env.js +19 -23
- package/dist/node_modules/.pnpm/langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_/node_modules/langsmith/dist/utils/env.js.map +1 -0
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/error.cjs +16 -3
- package/dist/node_modules/.pnpm/langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_/node_modules/langsmith/dist/utils/error.cjs.map +1 -0
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/error.js +16 -3
- package/dist/node_modules/.pnpm/langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_/node_modules/langsmith/dist/utils/error.js.map +1 -0
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/fast-safe-stringify/index.cjs +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/fast-safe-stringify/index.cjs.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/fast-safe-stringify/index.js +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/fast-safe-stringify/index.js.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/messages.cjs +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/messages.cjs.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/messages.js +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/messages.js.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/project.cjs +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/project.cjs.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/project.js +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/project.js.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/prompts.cjs +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/prompts.cjs.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/prompts.js +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/prompts.js.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/warn.cjs +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/warn.cjs.map +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/warn.js +1 -1
- package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/dist/utils/warn.js.map +1 -1
- package/package.json +30 -63
- package/dist/agents/RunnableCallable.d.cts +0 -41
- package/dist/agents/RunnableCallable.d.cts.map +0 -1
- package/dist/agents/RunnableCallable.d.ts +0 -41
- package/dist/agents/RunnableCallable.d.ts.map +0 -1
- package/dist/agents/annotation.d.cts +0 -52
- package/dist/agents/annotation.d.cts.map +0 -1
- package/dist/agents/annotation.d.ts +0 -52
- package/dist/agents/annotation.d.ts.map +0 -1
- package/dist/agents/createAgent.cjs +0 -10
- package/dist/agents/createAgent.cjs.map +0 -1
- package/dist/agents/createAgent.js +0 -10
- package/dist/agents/createAgent.js.map +0 -1
- package/dist/agents/interrupt.cjs +0 -2
- package/dist/agents/interrupt.d.cts +0 -81
- package/dist/agents/interrupt.d.cts.map +0 -1
- package/dist/agents/interrupt.d.ts +0 -81
- package/dist/agents/interrupt.d.ts.map +0 -1
- package/dist/agents/interrupt.js +0 -3
- package/dist/agents/middlewareAgent/ReactAgent.cjs +0 -579
- package/dist/agents/middlewareAgent/ReactAgent.cjs.map +0 -1
- package/dist/agents/middlewareAgent/ReactAgent.d.cts +0 -234
- package/dist/agents/middlewareAgent/ReactAgent.d.cts.map +0 -1
- package/dist/agents/middlewareAgent/ReactAgent.d.ts +0 -234
- package/dist/agents/middlewareAgent/ReactAgent.d.ts.map +0 -1
- package/dist/agents/middlewareAgent/ReactAgent.js +0 -578
- package/dist/agents/middlewareAgent/ReactAgent.js.map +0 -1
- package/dist/agents/middlewareAgent/annotation.cjs +0 -45
- package/dist/agents/middlewareAgent/annotation.cjs.map +0 -1
- package/dist/agents/middlewareAgent/annotation.js +0 -44
- package/dist/agents/middlewareAgent/annotation.js.map +0 -1
- package/dist/agents/middlewareAgent/constants.d.cts +0 -5
- package/dist/agents/middlewareAgent/constants.d.cts.map +0 -1
- package/dist/agents/middlewareAgent/constants.d.ts +0 -5
- package/dist/agents/middlewareAgent/constants.d.ts.map +0 -1
- package/dist/agents/middlewareAgent/index.cjs +0 -11
- package/dist/agents/middlewareAgent/index.cjs.map +0 -1
- package/dist/agents/middlewareAgent/index.js +0 -11
- package/dist/agents/middlewareAgent/index.js.map +0 -1
- package/dist/agents/middlewareAgent/middleware/callLimit.cjs.map +0 -1
- package/dist/agents/middlewareAgent/middleware/callLimit.d.cts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/callLimit.d.ts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/callLimit.js.map +0 -1
- package/dist/agents/middlewareAgent/middleware/contextEditing.cjs.map +0 -1
- package/dist/agents/middlewareAgent/middleware/contextEditing.d.cts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/contextEditing.d.ts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/contextEditing.js.map +0 -1
- package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.cjs.map +0 -1
- package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.cts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.ts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.js.map +0 -1
- package/dist/agents/middlewareAgent/middleware/hitl.cjs +0 -341
- package/dist/agents/middlewareAgent/middleware/hitl.cjs.map +0 -1
- package/dist/agents/middlewareAgent/middleware/hitl.d.cts +0 -524
- package/dist/agents/middlewareAgent/middleware/hitl.d.cts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/hitl.d.ts +0 -524
- package/dist/agents/middlewareAgent/middleware/hitl.d.ts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/hitl.js +0 -340
- package/dist/agents/middlewareAgent/middleware/hitl.js.map +0 -1
- package/dist/agents/middlewareAgent/middleware/index.cjs +0 -52
- package/dist/agents/middlewareAgent/middleware/index.cjs.map +0 -1
- package/dist/agents/middlewareAgent/middleware/index.d.cts +0 -13
- package/dist/agents/middlewareAgent/middleware/index.d.ts +0 -13
- package/dist/agents/middlewareAgent/middleware/index.js +0 -34
- package/dist/agents/middlewareAgent/middleware/index.js.map +0 -1
- package/dist/agents/middlewareAgent/middleware/llmToolSelector.cjs.map +0 -1
- package/dist/agents/middlewareAgent/middleware/llmToolSelector.d.cts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/llmToolSelector.d.ts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/llmToolSelector.js.map +0 -1
- package/dist/agents/middlewareAgent/middleware/modelFallback.cjs.map +0 -1
- package/dist/agents/middlewareAgent/middleware/modelFallback.d.cts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/modelFallback.d.ts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/modelFallback.js.map +0 -1
- package/dist/agents/middlewareAgent/middleware/piiRedaction.cjs.map +0 -1
- package/dist/agents/middlewareAgent/middleware/piiRedaction.d.cts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/piiRedaction.d.ts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/piiRedaction.js.map +0 -1
- package/dist/agents/middlewareAgent/middleware/promptCaching.cjs.map +0 -1
- package/dist/agents/middlewareAgent/middleware/promptCaching.d.cts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/promptCaching.d.ts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/promptCaching.js.map +0 -1
- package/dist/agents/middlewareAgent/middleware/summarization.cjs.map +0 -1
- package/dist/agents/middlewareAgent/middleware/summarization.d.cts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/summarization.d.ts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/summarization.js.map +0 -1
- package/dist/agents/middlewareAgent/middleware/toolCallLimit.cjs.map +0 -1
- package/dist/agents/middlewareAgent/middleware/toolCallLimit.d.cts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/toolCallLimit.d.ts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/toolCallLimit.js.map +0 -1
- package/dist/agents/middlewareAgent/middleware/utils.cjs.map +0 -1
- package/dist/agents/middlewareAgent/middleware/utils.d.cts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/utils.d.ts.map +0 -1
- package/dist/agents/middlewareAgent/middleware/utils.js.map +0 -1
- package/dist/agents/middlewareAgent/middleware.cjs.map +0 -1
- package/dist/agents/middlewareAgent/middleware.d.cts +0 -117
- package/dist/agents/middlewareAgent/middleware.d.cts.map +0 -1
- package/dist/agents/middlewareAgent/middleware.d.ts +0 -117
- package/dist/agents/middlewareAgent/middleware.d.ts.map +0 -1
- package/dist/agents/middlewareAgent/middleware.js.map +0 -1
- package/dist/agents/middlewareAgent/nodes/AfterModalNode.cjs.map +0 -1
- package/dist/agents/middlewareAgent/nodes/AfterModalNode.js.map +0 -1
- package/dist/agents/middlewareAgent/nodes/AgentNode.cjs +0 -468
- package/dist/agents/middlewareAgent/nodes/AgentNode.cjs.map +0 -1
- package/dist/agents/middlewareAgent/nodes/AgentNode.js +0 -467
- package/dist/agents/middlewareAgent/nodes/AgentNode.js.map +0 -1
- package/dist/agents/middlewareAgent/nodes/BeforeModalNode.cjs.map +0 -1
- package/dist/agents/middlewareAgent/nodes/BeforeModalNode.js.map +0 -1
- package/dist/agents/middlewareAgent/nodes/middleware.cjs.map +0 -1
- package/dist/agents/middlewareAgent/nodes/middleware.js.map +0 -1
- package/dist/agents/middlewareAgent/nodes/utils.cjs +0 -66
- package/dist/agents/middlewareAgent/nodes/utils.cjs.map +0 -1
- package/dist/agents/middlewareAgent/nodes/utils.js +0 -63
- package/dist/agents/middlewareAgent/nodes/utils.js.map +0 -1
- package/dist/agents/middlewareAgent/types.d.cts +0 -472
- package/dist/agents/middlewareAgent/types.d.cts.map +0 -1
- package/dist/agents/middlewareAgent/types.d.ts +0 -472
- package/dist/agents/middlewareAgent/types.d.ts.map +0 -1
- package/dist/agents/nodes/ToolNode.d.cts +0 -97
- package/dist/agents/nodes/ToolNode.d.cts.map +0 -1
- package/dist/agents/nodes/ToolNode.d.ts +0 -97
- package/dist/agents/nodes/ToolNode.d.ts.map +0 -1
- package/dist/agents/types.cjs +0 -7
- package/dist/agents/types.cjs.map +0 -1
- package/dist/agents/types.js +0 -6
- package/dist/agents/types.js.map +0 -1
- package/dist/embeddings/cache_backed.cjs +0 -140
- package/dist/embeddings/cache_backed.cjs.map +0 -1
- package/dist/embeddings/cache_backed.d.cts +0 -107
- package/dist/embeddings/cache_backed.d.cts.map +0 -1
- package/dist/embeddings/cache_backed.d.ts +0 -107
- package/dist/embeddings/cache_backed.d.ts.map +0 -1
- package/dist/embeddings/cache_backed.js +0 -134
- package/dist/embeddings/cache_backed.js.map +0 -1
- package/dist/embeddings/fake.cjs +0 -22
- package/dist/embeddings/fake.cjs.map +0 -1
- package/dist/embeddings/fake.d.cts +0 -1
- package/dist/embeddings/fake.d.ts +0 -1
- package/dist/embeddings/fake.js +0 -12
- package/dist/embeddings/fake.js.map +0 -1
- package/dist/node_modules/.pnpm/langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_/node_modules/langsmith/dist/client.cjs.map +0 -1
- package/dist/node_modules/.pnpm/langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_/node_modules/langsmith/dist/client.js.map +0 -1
- package/dist/node_modules/.pnpm/langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_/node_modules/langsmith/dist/run_trees.cjs.map +0 -1
- package/dist/node_modules/.pnpm/langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_/node_modules/langsmith/dist/run_trees.js.map +0 -1
- package/dist/node_modules/.pnpm/langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_/node_modules/langsmith/dist/utils/env.cjs.map +0 -1
- package/dist/node_modules/.pnpm/langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_/node_modules/langsmith/dist/utils/env.js.map +0 -1
- package/dist/node_modules/.pnpm/langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_/node_modules/langsmith/dist/utils/error.cjs.map +0 -1
- package/dist/node_modules/.pnpm/langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_/node_modules/langsmith/dist/utils/error.js.map +0 -1
- /package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/index.cjs +0 -0
- /package/dist/node_modules/.pnpm/{langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_ → langsmith@0.3.74_@opentelemetry_api@1.9.0_openai@5.12.2_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_}/node_modules/langsmith/index.js +0 -0
|
@@ -1,213 +1,556 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
2
|
const require_annotation = require('./annotation.cjs');
|
|
3
3
|
const require_utils = require('./utils.cjs');
|
|
4
|
+
const require_utils$1 = require('./nodes/utils.cjs');
|
|
4
5
|
const require_AgentNode = require('./nodes/AgentNode.cjs');
|
|
5
6
|
const require_ToolNode = require('./nodes/ToolNode.cjs');
|
|
7
|
+
const require_utils$2 = require('./middleware/utils.cjs');
|
|
8
|
+
const require_BeforeAgentNode = require('./nodes/BeforeAgentNode.cjs');
|
|
9
|
+
const require_BeforeModelNode = require('./nodes/BeforeModelNode.cjs');
|
|
10
|
+
const require_AfterModelNode = require('./nodes/AfterModelNode.cjs');
|
|
11
|
+
const require_AfterAgentNode = require('./nodes/AfterAgentNode.cjs');
|
|
6
12
|
const __langchain_core_messages = require_rolldown_runtime.__toESM(require("@langchain/core/messages"));
|
|
7
13
|
const __langchain_langgraph = require_rolldown_runtime.__toESM(require("@langchain/langgraph"));
|
|
8
14
|
|
|
9
15
|
//#region src/agents/ReactAgent.ts
|
|
10
16
|
var ReactAgent = class {
|
|
11
17
|
#graph;
|
|
12
|
-
#inputSchema;
|
|
13
18
|
#toolBehaviorVersion = "v2";
|
|
19
|
+
#agentNode;
|
|
14
20
|
constructor(options) {
|
|
15
21
|
this.options = options;
|
|
16
22
|
this.#toolBehaviorVersion = options.version ?? this.#toolBehaviorVersion;
|
|
17
23
|
/**
|
|
18
|
-
*
|
|
24
|
+
* validate that model option is provided
|
|
19
25
|
*/
|
|
20
|
-
if (options.
|
|
26
|
+
if (!options.model) throw new Error("`model` option is required to create an agent.");
|
|
21
27
|
/**
|
|
22
|
-
*
|
|
28
|
+
* Check if the LLM already has bound tools and throw if it does.
|
|
23
29
|
*/
|
|
24
|
-
if (
|
|
30
|
+
if (typeof options.model !== "string") require_utils.validateLLMHasNoBoundTools(options.model);
|
|
25
31
|
/**
|
|
26
|
-
*
|
|
32
|
+
* define complete list of tools based on options and middleware
|
|
27
33
|
*/
|
|
28
|
-
|
|
29
|
-
const toolClasses =
|
|
34
|
+
const middlewareTools = this.options.middleware?.filter((m) => m.tools).flatMap((m) => m.tools) ?? [];
|
|
35
|
+
const toolClasses = [...options.tools ?? [], ...middlewareTools];
|
|
30
36
|
/**
|
|
31
37
|
* If any of the tools are configured to return_directly after running,
|
|
32
38
|
* our graph needs to check if these were called
|
|
33
39
|
*/
|
|
34
40
|
const shouldReturnDirect = new Set(toolClasses.filter(require_utils.isClientTool).filter((tool) => "returnDirect" in tool && tool.returnDirect).map((tool) => tool.name));
|
|
35
|
-
const schema = this.options.stateSchema ? require_annotation.enhanceStateSchemaWithMessageReducer(this.options.stateSchema) : require_annotation.createAgentAnnotationConditional(this.options.responseFormat !== void 0);
|
|
36
|
-
const workflow = new __langchain_langgraph.StateGraph(schema, this.options.contextSchema);
|
|
37
|
-
const allNodeWorkflows = workflow;
|
|
38
41
|
/**
|
|
39
|
-
*
|
|
42
|
+
* Create a schema that merges agent base schema with middleware state schemas
|
|
43
|
+
* Using Zod with withLangGraph ensures LangGraph Studio gets proper metadata
|
|
40
44
|
*/
|
|
41
|
-
|
|
42
|
-
|
|
45
|
+
const schema = require_annotation.createAgentAnnotationConditional(this.options.responseFormat !== void 0, this.options.stateSchema, this.options.middleware);
|
|
46
|
+
const workflow = new __langchain_langgraph.StateGraph(schema, this.options.contextSchema);
|
|
47
|
+
const allNodeWorkflows = workflow;
|
|
48
|
+
const beforeAgentNodes = [];
|
|
49
|
+
const beforeModelNodes = [];
|
|
50
|
+
const afterModelNodes = [];
|
|
51
|
+
const afterAgentNodes = [];
|
|
52
|
+
const wrapModelCallHookMiddleware = [];
|
|
53
|
+
this.#agentNode = new require_AgentNode.AgentNode({
|
|
43
54
|
model: this.options.model,
|
|
44
|
-
|
|
55
|
+
systemPrompt: this.options.systemPrompt,
|
|
45
56
|
includeAgentName: this.options.includeAgentName,
|
|
46
57
|
name: this.options.name,
|
|
47
58
|
responseFormat: this.options.responseFormat,
|
|
59
|
+
middleware: this.options.middleware,
|
|
48
60
|
toolClasses,
|
|
49
61
|
shouldReturnDirect,
|
|
50
|
-
signal: this.options.signal
|
|
51
|
-
|
|
62
|
+
signal: this.options.signal,
|
|
63
|
+
wrapModelCallHookMiddleware
|
|
64
|
+
});
|
|
65
|
+
const middlewareNames = /* @__PURE__ */ new Set();
|
|
66
|
+
const middleware = this.options.middleware ?? [];
|
|
67
|
+
for (let i = 0; i < middleware.length; i++) {
|
|
68
|
+
let beforeAgentNode;
|
|
69
|
+
let beforeModelNode;
|
|
70
|
+
let afterModelNode;
|
|
71
|
+
let afterAgentNode;
|
|
72
|
+
const m = middleware[i];
|
|
73
|
+
if (middlewareNames.has(m.name)) throw new Error(`Middleware ${m.name} is defined multiple times`);
|
|
74
|
+
middlewareNames.add(m.name);
|
|
75
|
+
if (m.beforeAgent) {
|
|
76
|
+
beforeAgentNode = new require_BeforeAgentNode.BeforeAgentNode(m, { getPrivateState: () => this.#agentNode.getState()._privateState });
|
|
77
|
+
const name = `${m.name}.before_agent`;
|
|
78
|
+
beforeAgentNodes.push({
|
|
79
|
+
index: i,
|
|
80
|
+
name,
|
|
81
|
+
allowed: require_utils$2.getHookConstraint(m.beforeAgent)
|
|
82
|
+
});
|
|
83
|
+
allNodeWorkflows.addNode(name, beforeAgentNode, beforeAgentNode.nodeOptions);
|
|
84
|
+
}
|
|
85
|
+
if (m.beforeModel) {
|
|
86
|
+
beforeModelNode = new require_BeforeModelNode.BeforeModelNode(m, { getPrivateState: () => this.#agentNode.getState()._privateState });
|
|
87
|
+
const name = `${m.name}.before_model`;
|
|
88
|
+
beforeModelNodes.push({
|
|
89
|
+
index: i,
|
|
90
|
+
name,
|
|
91
|
+
allowed: require_utils$2.getHookConstraint(m.beforeModel)
|
|
92
|
+
});
|
|
93
|
+
allNodeWorkflows.addNode(name, beforeModelNode, beforeModelNode.nodeOptions);
|
|
94
|
+
}
|
|
95
|
+
if (m.afterModel) {
|
|
96
|
+
afterModelNode = new require_AfterModelNode.AfterModelNode(m, { getPrivateState: () => this.#agentNode.getState()._privateState });
|
|
97
|
+
const name = `${m.name}.after_model`;
|
|
98
|
+
afterModelNodes.push({
|
|
99
|
+
index: i,
|
|
100
|
+
name,
|
|
101
|
+
allowed: require_utils$2.getHookConstraint(m.afterModel)
|
|
102
|
+
});
|
|
103
|
+
allNodeWorkflows.addNode(name, afterModelNode, afterModelNode.nodeOptions);
|
|
104
|
+
}
|
|
105
|
+
if (m.afterAgent) {
|
|
106
|
+
afterAgentNode = new require_AfterAgentNode.AfterAgentNode(m, { getPrivateState: () => this.#agentNode.getState()._privateState });
|
|
107
|
+
const name = `${m.name}.after_agent`;
|
|
108
|
+
afterAgentNodes.push({
|
|
109
|
+
index: i,
|
|
110
|
+
name,
|
|
111
|
+
allowed: require_utils$2.getHookConstraint(m.afterAgent)
|
|
112
|
+
});
|
|
113
|
+
allNodeWorkflows.addNode(name, afterAgentNode, afterAgentNode.nodeOptions);
|
|
114
|
+
}
|
|
115
|
+
if (m.wrapModelCall) wrapModelCallHookMiddleware.push([m, () => ({
|
|
116
|
+
...beforeAgentNode?.getState(),
|
|
117
|
+
...beforeModelNode?.getState(),
|
|
118
|
+
...afterModelNode?.getState(),
|
|
119
|
+
...afterAgentNode?.getState()
|
|
120
|
+
})]);
|
|
121
|
+
}
|
|
52
122
|
/**
|
|
53
|
-
*
|
|
123
|
+
* Add Nodes
|
|
54
124
|
*/
|
|
55
|
-
|
|
56
|
-
const toolNode = new require_ToolNode.ToolNode(toolClasses.filter(require_utils.isClientTool), { signal: this.options.signal });
|
|
57
|
-
allNodeWorkflows.addNode("tools", toolNode);
|
|
58
|
-
}
|
|
125
|
+
allNodeWorkflows.addNode("model_request", this.#agentNode, require_AgentNode.AgentNode.nodeOptions);
|
|
59
126
|
/**
|
|
60
|
-
*
|
|
127
|
+
* Collect and compose wrapToolCall handlers from middleware
|
|
128
|
+
* Wrap each handler with error handling and validation
|
|
61
129
|
*/
|
|
62
|
-
|
|
130
|
+
const wrapToolCallHandler = require_utils.wrapToolCall(middleware);
|
|
63
131
|
/**
|
|
64
|
-
*
|
|
132
|
+
* add single tool node for all tools
|
|
65
133
|
*/
|
|
66
|
-
if (
|
|
134
|
+
if (toolClasses.filter(require_utils.isClientTool).length > 0) {
|
|
135
|
+
const toolNode = new require_ToolNode.ToolNode(toolClasses.filter(require_utils.isClientTool), {
|
|
136
|
+
signal: this.options.signal,
|
|
137
|
+
wrapToolCall: wrapToolCallHandler,
|
|
138
|
+
getPrivateState: () => this.#agentNode.getState()._privateState
|
|
139
|
+
});
|
|
140
|
+
allNodeWorkflows.addNode("tools", toolNode);
|
|
141
|
+
}
|
|
67
142
|
/**
|
|
68
143
|
* Add Edges
|
|
69
144
|
*/
|
|
70
|
-
|
|
71
|
-
if (
|
|
72
|
-
if (
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
145
|
+
let entryNode;
|
|
146
|
+
if (beforeAgentNodes.length > 0) entryNode = beforeAgentNodes[0].name;
|
|
147
|
+
else if (beforeModelNodes.length > 0) entryNode = beforeModelNodes[0].name;
|
|
148
|
+
else entryNode = "model_request";
|
|
149
|
+
const loopEntryNode = beforeModelNodes.length > 0 ? beforeModelNodes[0].name : "model_request";
|
|
150
|
+
const exitNode = afterAgentNodes.length > 0 ? afterAgentNodes[afterAgentNodes.length - 1].name : __langchain_langgraph.END;
|
|
151
|
+
allNodeWorkflows.addEdge(__langchain_langgraph.START, entryNode);
|
|
152
|
+
for (let i = 0; i < beforeAgentNodes.length; i++) {
|
|
153
|
+
const node = beforeAgentNodes[i];
|
|
154
|
+
const current = node.name;
|
|
155
|
+
const isLast = i === beforeAgentNodes.length - 1;
|
|
156
|
+
const nextDefault = isLast ? loopEntryNode : beforeAgentNodes[i + 1].name;
|
|
157
|
+
if (node.allowed && node.allowed.length > 0) {
|
|
158
|
+
const hasTools = toolClasses.filter(require_utils.isClientTool).length > 0;
|
|
159
|
+
const allowedMapped = node.allowed.map((t) => require_utils$1.parseJumpToTarget(t)).filter((dest) => dest !== "tools" || hasTools);
|
|
160
|
+
const destinations = Array.from(new Set([nextDefault, ...allowedMapped.map((dest) => dest === __langchain_langgraph.END ? exitNode : dest)]));
|
|
161
|
+
allNodeWorkflows.addConditionalEdges(current, this.#createBeforeAgentRouter(toolClasses.filter(require_utils.isClientTool), nextDefault, exitNode), destinations);
|
|
162
|
+
} else allNodeWorkflows.addEdge(current, nextDefault);
|
|
163
|
+
}
|
|
164
|
+
for (let i = 0; i < beforeModelNodes.length; i++) {
|
|
165
|
+
const node = beforeModelNodes[i];
|
|
166
|
+
const current = node.name;
|
|
167
|
+
const isLast = i === beforeModelNodes.length - 1;
|
|
168
|
+
const nextDefault = isLast ? "model_request" : beforeModelNodes[i + 1].name;
|
|
169
|
+
if (node.allowed && node.allowed.length > 0) {
|
|
170
|
+
const hasTools = toolClasses.filter(require_utils.isClientTool).length > 0;
|
|
171
|
+
const allowedMapped = node.allowed.map((t) => require_utils$1.parseJumpToTarget(t)).filter((dest) => dest !== "tools" || hasTools);
|
|
172
|
+
const destinations = Array.from(new Set([nextDefault, ...allowedMapped]));
|
|
173
|
+
allNodeWorkflows.addConditionalEdges(current, this.#createBeforeModelRouter(toolClasses.filter(require_utils.isClientTool), nextDefault), destinations);
|
|
174
|
+
} else allNodeWorkflows.addEdge(current, nextDefault);
|
|
175
|
+
}
|
|
176
|
+
const lastAfterModelNode = afterModelNodes.at(-1);
|
|
177
|
+
if (afterModelNodes.length > 0 && lastAfterModelNode) allNodeWorkflows.addEdge("model_request", lastAfterModelNode.name);
|
|
178
|
+
else {
|
|
78
179
|
const modelPaths = this.#getModelPaths(toolClasses.filter(require_utils.isClientTool));
|
|
79
|
-
|
|
80
|
-
|
|
180
|
+
const destinations = modelPaths.map((p) => p === __langchain_langgraph.END ? exitNode : p);
|
|
181
|
+
if (destinations.length === 1) allNodeWorkflows.addEdge("model_request", destinations[0]);
|
|
182
|
+
else allNodeWorkflows.addConditionalEdges("model_request", this.#createModelRouter(exitNode), destinations);
|
|
183
|
+
}
|
|
184
|
+
for (let i = afterModelNodes.length - 1; i > 0; i--) {
|
|
185
|
+
const node = afterModelNodes[i];
|
|
186
|
+
const current = node.name;
|
|
187
|
+
const nextDefault = afterModelNodes[i - 1].name;
|
|
188
|
+
if (node.allowed && node.allowed.length > 0) {
|
|
189
|
+
const hasTools = toolClasses.filter(require_utils.isClientTool).length > 0;
|
|
190
|
+
const allowedMapped = node.allowed.map((t) => require_utils$1.parseJumpToTarget(t)).filter((dest) => dest !== "tools" || hasTools);
|
|
191
|
+
const destinations = Array.from(new Set([nextDefault, ...allowedMapped]));
|
|
192
|
+
allNodeWorkflows.addConditionalEdges(current, this.#createAfterModelSequenceRouter(toolClasses.filter(require_utils.isClientTool), node.allowed, nextDefault), destinations);
|
|
193
|
+
} else allNodeWorkflows.addEdge(current, nextDefault);
|
|
194
|
+
}
|
|
195
|
+
if (afterModelNodes.length > 0) {
|
|
196
|
+
const firstAfterModel = afterModelNodes[0];
|
|
197
|
+
const firstAfterModelNode = firstAfterModel.name;
|
|
198
|
+
const modelPaths = this.#getModelPaths(toolClasses.filter(require_utils.isClientTool), true).filter((p) => p !== "tools" || toolClasses.filter(require_utils.isClientTool).length > 0);
|
|
199
|
+
const allowJump = Boolean(firstAfterModel.allowed && firstAfterModel.allowed.length > 0);
|
|
200
|
+
const destinations = modelPaths.map((p) => p === __langchain_langgraph.END ? exitNode : p);
|
|
201
|
+
allNodeWorkflows.addConditionalEdges(firstAfterModelNode, this.#createAfterModelRouter(toolClasses.filter(require_utils.isClientTool), allowJump, exitNode), destinations);
|
|
202
|
+
}
|
|
203
|
+
for (let i = afterAgentNodes.length - 1; i > 0; i--) {
|
|
204
|
+
const node = afterAgentNodes[i];
|
|
205
|
+
const current = node.name;
|
|
206
|
+
const nextDefault = afterAgentNodes[i - 1].name;
|
|
207
|
+
if (node.allowed && node.allowed.length > 0) {
|
|
208
|
+
const hasTools = toolClasses.filter(require_utils.isClientTool).length > 0;
|
|
209
|
+
const allowedMapped = node.allowed.map((t) => require_utils$1.parseJumpToTarget(t)).filter((dest) => dest !== "tools" || hasTools);
|
|
210
|
+
const destinations = Array.from(new Set([nextDefault, ...allowedMapped]));
|
|
211
|
+
allNodeWorkflows.addConditionalEdges(current, this.#createAfterModelSequenceRouter(toolClasses.filter(require_utils.isClientTool), node.allowed, nextDefault), destinations);
|
|
212
|
+
} else allNodeWorkflows.addEdge(current, nextDefault);
|
|
213
|
+
}
|
|
214
|
+
if (afterAgentNodes.length > 0) {
|
|
215
|
+
const firstAfterAgent = afterAgentNodes[0];
|
|
216
|
+
const firstAfterAgentNode = firstAfterAgent.name;
|
|
217
|
+
if (firstAfterAgent.allowed && firstAfterAgent.allowed.length > 0) {
|
|
218
|
+
const hasTools = toolClasses.filter(require_utils.isClientTool).length > 0;
|
|
219
|
+
const allowedMapped = firstAfterAgent.allowed.map((t) => require_utils$1.parseJumpToTarget(t)).filter((dest) => dest !== "tools" || hasTools);
|
|
220
|
+
/**
|
|
221
|
+
* For after_agent, only use explicitly allowed destinations (don't add loopEntryNode)
|
|
222
|
+
* The default destination (when no jump occurs) should be END
|
|
223
|
+
*/
|
|
224
|
+
const destinations = Array.from(new Set([__langchain_langgraph.END, ...allowedMapped]));
|
|
225
|
+
allNodeWorkflows.addConditionalEdges(firstAfterAgentNode, this.#createAfterModelSequenceRouter(toolClasses.filter(require_utils.isClientTool), firstAfterAgent.allowed, __langchain_langgraph.END), destinations);
|
|
226
|
+
} else allNodeWorkflows.addEdge(firstAfterAgentNode, __langchain_langgraph.END);
|
|
81
227
|
}
|
|
82
228
|
/**
|
|
83
229
|
* add edges for tools node
|
|
84
230
|
*/
|
|
85
|
-
if (toolClasses.filter(require_utils.isClientTool).length > 0)
|
|
86
|
-
|
|
231
|
+
if (toolClasses.filter(require_utils.isClientTool).length > 0) {
|
|
232
|
+
const toolReturnTarget = loopEntryNode;
|
|
233
|
+
if (shouldReturnDirect.size > 0) allNodeWorkflows.addConditionalEdges("tools", this.#createToolsRouter(shouldReturnDirect, exitNode), [toolReturnTarget, exitNode]);
|
|
234
|
+
else allNodeWorkflows.addEdge("tools", toolReturnTarget);
|
|
235
|
+
}
|
|
87
236
|
/**
|
|
88
237
|
* compile the graph
|
|
89
238
|
*/
|
|
90
239
|
this.#graph = allNodeWorkflows.compile({
|
|
91
|
-
checkpointer: this.options.checkpointer
|
|
92
|
-
interruptBefore: this.options.interruptBefore,
|
|
93
|
-
interruptAfter: this.options.interruptAfter,
|
|
240
|
+
checkpointer: this.options.checkpointer,
|
|
94
241
|
store: this.options.store,
|
|
95
242
|
name: this.options.name,
|
|
96
243
|
description: this.options.description
|
|
97
244
|
});
|
|
98
245
|
}
|
|
99
246
|
/**
|
|
100
|
-
* Get the compiled graph.
|
|
247
|
+
* Get the compiled {@link https://docs.langchain.com/oss/javascript/langgraph/use-graph-api | StateGraph}.
|
|
101
248
|
*/
|
|
102
249
|
get graph() {
|
|
103
250
|
return this.#graph;
|
|
104
251
|
}
|
|
105
|
-
#getEntryPoint() {
|
|
106
|
-
const entryPoint = this.options.preModelHook ? "pre_model_hook" : "agent";
|
|
107
|
-
return entryPoint;
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Get possible edge destinations from post_model_hook node.
|
|
111
|
-
*/
|
|
112
|
-
#getPostModelHookPaths(toolClasses) {
|
|
113
|
-
const paths = [];
|
|
114
|
-
if (toolClasses.length > 0) paths.push(this.#getEntryPoint(), "tools");
|
|
115
|
-
paths.push(__langchain_langgraph.END);
|
|
116
|
-
return paths;
|
|
117
|
-
}
|
|
118
|
-
#createPostModelHookRouter() {
|
|
119
|
-
return (state) => {
|
|
120
|
-
const messages = state.messages;
|
|
121
|
-
const toolMessages = messages.filter(__langchain_core_messages.ToolMessage.isInstance);
|
|
122
|
-
const lastAiMessage = messages.filter(__langchain_core_messages.AIMessage.isInstance).at(-1);
|
|
123
|
-
const pendingToolCalls = lastAiMessage?.tool_calls?.filter((call) => !toolMessages.some((m) => m.tool_call_id === call.id));
|
|
124
|
-
if (pendingToolCalls && pendingToolCalls.length > 0) {
|
|
125
|
-
/**
|
|
126
|
-
* The tool node processes a single message.
|
|
127
|
-
* All tool calls in the message are executed in parallel within the tool node.
|
|
128
|
-
* @deprecated likely to be removed in the next version of the agent
|
|
129
|
-
*/
|
|
130
|
-
if (this.#toolBehaviorVersion === "v1") return "tools";
|
|
131
|
-
/**
|
|
132
|
-
* The tool node processes a single tool call. Tool calls are distributed across
|
|
133
|
-
* multiple instances of the tool node using the Send API.
|
|
134
|
-
*/
|
|
135
|
-
return pendingToolCalls.map((toolCall) => new __langchain_langgraph.Send("tools", {
|
|
136
|
-
...state,
|
|
137
|
-
lg_tool_call: toolCall
|
|
138
|
-
}));
|
|
139
|
-
}
|
|
140
|
-
if (__langchain_core_messages.ToolMessage.isInstance(messages.at(-1))) return this.#getEntryPoint();
|
|
141
|
-
return __langchain_langgraph.END;
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
252
|
/**
|
|
145
253
|
* Get possible edge destinations from model node.
|
|
146
254
|
* @param toolClasses names of tools to call
|
|
255
|
+
* @param includeModelRequest whether to include "model_request" as a valid path (for jumpTo routing)
|
|
147
256
|
* @returns list of possible edge destinations
|
|
148
257
|
*/
|
|
149
|
-
#getModelPaths(toolClasses) {
|
|
258
|
+
#getModelPaths(toolClasses, includeModelRequest = false) {
|
|
150
259
|
const paths = [];
|
|
151
260
|
if (toolClasses.length > 0) paths.push("tools");
|
|
261
|
+
if (includeModelRequest) paths.push("model_request");
|
|
152
262
|
paths.push(__langchain_langgraph.END);
|
|
153
263
|
return paths;
|
|
154
264
|
}
|
|
155
265
|
/**
|
|
266
|
+
* Create routing function for tools node conditional edges.
|
|
267
|
+
*/
|
|
268
|
+
#createToolsRouter(shouldReturnDirect, exitNode) {
|
|
269
|
+
/**
|
|
270
|
+
* ToDo: fix type
|
|
271
|
+
*/
|
|
272
|
+
return (state) => {
|
|
273
|
+
const messages = state.messages;
|
|
274
|
+
const lastMessage = messages[messages.length - 1];
|
|
275
|
+
if (__langchain_core_messages.ToolMessage.isInstance(lastMessage) && lastMessage.name && shouldReturnDirect.has(lastMessage.name)) return this.options.responseFormat ? "model_request" : exitNode;
|
|
276
|
+
return "model_request";
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
156
280
|
* Create routing function for model node conditional edges.
|
|
281
|
+
* @param exitNode - The exit node to route to (could be after_agent or END)
|
|
157
282
|
*/
|
|
158
|
-
#createModelRouter() {
|
|
283
|
+
#createModelRouter(exitNode = __langchain_langgraph.END) {
|
|
159
284
|
/**
|
|
160
285
|
* determine if the agent should continue or not
|
|
161
286
|
*/
|
|
162
287
|
return (state) => {
|
|
163
288
|
const messages = state.messages;
|
|
164
289
|
const lastMessage = messages.at(-1);
|
|
165
|
-
if (!__langchain_core_messages.AIMessage.isInstance(lastMessage) || !lastMessage.tool_calls || lastMessage.tool_calls.length === 0)
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
}
|
|
169
|
-
if (this.options.postModelHook) return "post_model_hook";
|
|
290
|
+
if (!__langchain_core_messages.AIMessage.isInstance(lastMessage) || !lastMessage.tool_calls || lastMessage.tool_calls.length === 0) return exitNode;
|
|
291
|
+
const hasOnlyStructuredResponseCalls = lastMessage.tool_calls.every((toolCall) => toolCall.name.startsWith("extract-"));
|
|
292
|
+
if (hasOnlyStructuredResponseCalls) return exitNode;
|
|
170
293
|
/**
|
|
171
294
|
* The tool node processes a single message.
|
|
172
295
|
*/
|
|
173
296
|
if (this.#toolBehaviorVersion === "v1") return "tools";
|
|
174
297
|
/**
|
|
175
|
-
* Route to tools node
|
|
298
|
+
* Route to tools node (filter out any structured response tool calls)
|
|
176
299
|
*/
|
|
177
|
-
|
|
300
|
+
const regularToolCalls = lastMessage.tool_calls.filter((toolCall) => !toolCall.name.startsWith("extract-"));
|
|
301
|
+
if (regularToolCalls.length === 0) return exitNode;
|
|
302
|
+
return regularToolCalls.map((toolCall) => new __langchain_langgraph.Send("tools", {
|
|
178
303
|
...state,
|
|
179
304
|
lg_tool_call: toolCall
|
|
180
305
|
}));
|
|
181
306
|
};
|
|
182
307
|
}
|
|
183
308
|
/**
|
|
184
|
-
* Create routing function for
|
|
309
|
+
* Create routing function for jumpTo functionality after afterModel hooks.
|
|
310
|
+
*
|
|
311
|
+
* This router checks if the `jumpTo` property is set in the state after afterModel middleware
|
|
312
|
+
* execution. If set, it routes to the specified target ("model_request" or "tools").
|
|
313
|
+
* If not set, it falls back to the normal model routing logic for afterModel context.
|
|
314
|
+
*
|
|
315
|
+
* The jumpTo property is automatically cleared after use to prevent infinite loops.
|
|
316
|
+
*
|
|
317
|
+
* @param toolClasses - Available tool classes for validation
|
|
318
|
+
* @param allowJump - Whether jumping is allowed
|
|
319
|
+
* @param exitNode - The exit node to route to (could be after_agent or END)
|
|
320
|
+
* @returns Router function that handles jumpTo logic and normal routing
|
|
185
321
|
*/
|
|
186
|
-
#
|
|
322
|
+
#createAfterModelRouter(toolClasses, allowJump, exitNode) {
|
|
323
|
+
const hasStructuredResponse = Boolean(this.options.responseFormat);
|
|
187
324
|
return (state) => {
|
|
188
325
|
const messages = state.messages;
|
|
189
|
-
const lastMessage = messages
|
|
190
|
-
if (__langchain_core_messages.
|
|
191
|
-
|
|
326
|
+
const lastMessage = messages.at(-1);
|
|
327
|
+
if (__langchain_core_messages.AIMessage.isInstance(lastMessage) && (!lastMessage.tool_calls || lastMessage.tool_calls.length === 0)) return exitNode;
|
|
328
|
+
if (allowJump && state.jumpTo) {
|
|
329
|
+
if (state.jumpTo === __langchain_langgraph.END) return exitNode;
|
|
330
|
+
if (state.jumpTo === "tools") {
|
|
331
|
+
if (toolClasses.length === 0) return exitNode;
|
|
332
|
+
return new __langchain_langgraph.Send("tools", {
|
|
333
|
+
...state,
|
|
334
|
+
jumpTo: void 0
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
return new __langchain_langgraph.Send("model_request", {
|
|
338
|
+
...state,
|
|
339
|
+
jumpTo: void 0
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
const toolMessages = messages.filter(__langchain_core_messages.ToolMessage.isInstance);
|
|
343
|
+
const lastAiMessage = messages.filter(__langchain_core_messages.AIMessage.isInstance).at(-1);
|
|
344
|
+
const pendingToolCalls = lastAiMessage?.tool_calls?.filter((call) => !toolMessages.some((m) => m.tool_call_id === call.id));
|
|
345
|
+
if (pendingToolCalls && pendingToolCalls.length > 0) return pendingToolCalls.map((toolCall) => new __langchain_langgraph.Send("tools", {
|
|
346
|
+
...state,
|
|
347
|
+
lg_tool_call: toolCall
|
|
348
|
+
}));
|
|
349
|
+
const hasStructuredResponseCalls = lastAiMessage?.tool_calls?.some((toolCall) => toolCall.name.startsWith("extract-"));
|
|
350
|
+
if (pendingToolCalls && pendingToolCalls.length === 0 && !hasStructuredResponseCalls && hasStructuredResponse) return "model_request";
|
|
351
|
+
if (!__langchain_core_messages.AIMessage.isInstance(lastMessage) || !lastMessage.tool_calls || lastMessage.tool_calls.length === 0) return exitNode;
|
|
352
|
+
const hasOnlyStructuredResponseCalls = lastMessage.tool_calls.every((toolCall) => toolCall.name.startsWith("extract-"));
|
|
353
|
+
const hasRegularToolCalls = lastMessage.tool_calls.some((toolCall) => !toolCall.name.startsWith("extract-"));
|
|
354
|
+
if (hasOnlyStructuredResponseCalls || !hasRegularToolCalls) return exitNode;
|
|
355
|
+
/**
|
|
356
|
+
* For routing from afterModel nodes, always use simple string paths
|
|
357
|
+
* The Send API is handled at the model_request node level
|
|
358
|
+
*/
|
|
359
|
+
return "tools";
|
|
192
360
|
};
|
|
193
361
|
}
|
|
194
362
|
/**
|
|
195
|
-
*
|
|
363
|
+
* Router for afterModel sequence nodes (connecting later middlewares to earlier ones),
|
|
364
|
+
* honoring allowed jump targets and defaulting to the next node.
|
|
196
365
|
*/
|
|
197
|
-
|
|
198
|
-
|
|
366
|
+
#createAfterModelSequenceRouter(toolClasses, allowed, nextDefault) {
|
|
367
|
+
const allowedSet = new Set(allowed.map((t) => require_utils$1.parseJumpToTarget(t)));
|
|
368
|
+
return (state) => {
|
|
369
|
+
if (state.jumpTo) {
|
|
370
|
+
const dest = require_utils$1.parseJumpToTarget(state.jumpTo);
|
|
371
|
+
if (dest === __langchain_langgraph.END && allowedSet.has(__langchain_langgraph.END)) return __langchain_langgraph.END;
|
|
372
|
+
if (dest === "tools" && allowedSet.has("tools")) {
|
|
373
|
+
if (toolClasses.length === 0) return __langchain_langgraph.END;
|
|
374
|
+
return new __langchain_langgraph.Send("tools", {
|
|
375
|
+
...state,
|
|
376
|
+
jumpTo: void 0
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
if (dest === "model_request" && allowedSet.has("model_request")) return new __langchain_langgraph.Send("model_request", {
|
|
380
|
+
...state,
|
|
381
|
+
jumpTo: void 0
|
|
382
|
+
});
|
|
383
|
+
}
|
|
384
|
+
return nextDefault;
|
|
385
|
+
};
|
|
199
386
|
}
|
|
200
387
|
/**
|
|
201
|
-
*
|
|
388
|
+
* Create routing function for jumpTo functionality after beforeAgent hooks.
|
|
389
|
+
* Falls back to the default next node if no jumpTo is present.
|
|
390
|
+
* When jumping to END, routes to exitNode (which could be an afterAgent node).
|
|
202
391
|
*/
|
|
203
|
-
|
|
204
|
-
return
|
|
392
|
+
#createBeforeAgentRouter(toolClasses, nextDefault, exitNode) {
|
|
393
|
+
return (state) => {
|
|
394
|
+
if (!state.jumpTo) return nextDefault;
|
|
395
|
+
const destination = require_utils$1.parseJumpToTarget(state.jumpTo);
|
|
396
|
+
if (destination === __langchain_langgraph.END) return exitNode;
|
|
397
|
+
if (destination === "tools") {
|
|
398
|
+
if (toolClasses.length === 0) return exitNode;
|
|
399
|
+
return new __langchain_langgraph.Send("tools", {
|
|
400
|
+
...state,
|
|
401
|
+
jumpTo: void 0
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
return new __langchain_langgraph.Send("model_request", {
|
|
405
|
+
...state,
|
|
406
|
+
jumpTo: void 0
|
|
407
|
+
});
|
|
408
|
+
};
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Create routing function for jumpTo functionality after beforeModel hooks.
|
|
412
|
+
* Falls back to the default next node if no jumpTo is present.
|
|
413
|
+
*/
|
|
414
|
+
#createBeforeModelRouter(toolClasses, nextDefault) {
|
|
415
|
+
return (state) => {
|
|
416
|
+
if (!state.jumpTo) return nextDefault;
|
|
417
|
+
const destination = require_utils$1.parseJumpToTarget(state.jumpTo);
|
|
418
|
+
if (destination === __langchain_langgraph.END) return __langchain_langgraph.END;
|
|
419
|
+
if (destination === "tools") {
|
|
420
|
+
if (toolClasses.length === 0) return __langchain_langgraph.END;
|
|
421
|
+
return new __langchain_langgraph.Send("tools", {
|
|
422
|
+
...state,
|
|
423
|
+
jumpTo: void 0
|
|
424
|
+
});
|
|
425
|
+
}
|
|
426
|
+
return new __langchain_langgraph.Send("model_request", {
|
|
427
|
+
...state,
|
|
428
|
+
jumpTo: void 0
|
|
429
|
+
});
|
|
430
|
+
};
|
|
205
431
|
}
|
|
206
432
|
/**
|
|
207
|
-
*
|
|
433
|
+
* Initialize middleware states if not already present in the input state.
|
|
208
434
|
*/
|
|
209
|
-
|
|
210
|
-
|
|
435
|
+
async #initializeMiddlewareStates(state) {
|
|
436
|
+
if (!this.options.middleware || this.options.middleware.length === 0 || state instanceof __langchain_langgraph.Command || !state) return state;
|
|
437
|
+
const defaultStates = await require_utils$1.initializeMiddlewareStates(this.options.middleware, state);
|
|
438
|
+
const updatedState = { ...state };
|
|
439
|
+
if (!updatedState) return updatedState;
|
|
440
|
+
for (const [key, value] of Object.entries(defaultStates)) if (!(key in updatedState)) updatedState[key] = value;
|
|
441
|
+
return updatedState;
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Populate the private state of the agent node from the previous state.
|
|
445
|
+
*/
|
|
446
|
+
async #populatePrivateState(config) {
|
|
447
|
+
/**
|
|
448
|
+
* not needed if thread_id is not provided
|
|
449
|
+
*/
|
|
450
|
+
if (!config?.configurable?.thread_id) return;
|
|
451
|
+
const prevState = await this.#graph.getState(config);
|
|
452
|
+
/**
|
|
453
|
+
* not need if state is empty
|
|
454
|
+
*/
|
|
455
|
+
if (!prevState.values._privateState) return;
|
|
456
|
+
this.#agentNode.setState({
|
|
457
|
+
structuredResponse: void 0,
|
|
458
|
+
_privateState: prevState.values._privateState
|
|
459
|
+
});
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Executes the agent with the given state and returns the final state after all processing.
|
|
463
|
+
*
|
|
464
|
+
* This method runs the agent's entire workflow synchronously, including:
|
|
465
|
+
* - Processing the input messages through any configured middleware
|
|
466
|
+
* - Calling the language model to generate responses
|
|
467
|
+
* - Executing any tool calls made by the model
|
|
468
|
+
* - Running all middleware hooks (beforeModel, afterModel, etc.)
|
|
469
|
+
*
|
|
470
|
+
* @param state - The initial state for the agent execution. Can be:
|
|
471
|
+
* - An object containing `messages` array and any middleware-specific state properties
|
|
472
|
+
* - A Command object for more advanced control flow
|
|
473
|
+
*
|
|
474
|
+
* @param config - Optional runtime configuration including:
|
|
475
|
+
* @param config.context - The context for the agent execution.
|
|
476
|
+
* @param config.configurable - LangGraph configuration options like `thread_id`, `run_id`, etc.
|
|
477
|
+
* @param config.store - The store for the agent execution for persisting state, see more in {@link https://docs.langchain.com/oss/javascript/langgraph/memory#memory-storage | Memory storage}.
|
|
478
|
+
* @param config.signal - An optional {@link https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal | `AbortSignal`} for the agent execution.
|
|
479
|
+
* @param config.recursionLimit - The recursion limit for the agent execution.
|
|
480
|
+
*
|
|
481
|
+
* @returns A Promise that resolves to the final agent state after execution completes.
|
|
482
|
+
* The returned state includes:
|
|
483
|
+
* - a `messages` property containing an array with all messages (input, AI responses, tool calls/results)
|
|
484
|
+
* - a `structuredResponse` property containing the structured response (if configured)
|
|
485
|
+
* - all state values defined in the middleware
|
|
486
|
+
*
|
|
487
|
+
* @example
|
|
488
|
+
* ```typescript
|
|
489
|
+
* const agent = new ReactAgent({
|
|
490
|
+
* llm: myModel,
|
|
491
|
+
* tools: [calculator, webSearch],
|
|
492
|
+
* responseFormat: z.object({
|
|
493
|
+
* weather: z.string(),
|
|
494
|
+
* }),
|
|
495
|
+
* });
|
|
496
|
+
*
|
|
497
|
+
* const result = await agent.invoke({
|
|
498
|
+
* messages: [{ role: "human", content: "What's the weather in Paris?" }]
|
|
499
|
+
* });
|
|
500
|
+
*
|
|
501
|
+
* console.log(result.structuredResponse.weather); // outputs: "It's sunny and 75°F."
|
|
502
|
+
* ```
|
|
503
|
+
*/
|
|
504
|
+
async invoke(state, config) {
|
|
505
|
+
const initializedState = await this.#initializeMiddlewareStates(state);
|
|
506
|
+
await this.#populatePrivateState(config);
|
|
507
|
+
return this.#graph.invoke(initializedState, config);
|
|
508
|
+
}
|
|
509
|
+
/**
|
|
510
|
+
* Executes the agent with streaming, returning an async iterable of state updates as they occur.
|
|
511
|
+
*
|
|
512
|
+
* This method runs the agent's workflow similar to `invoke`, but instead of waiting for
|
|
513
|
+
* completion, it streams high-level state updates in real-time. This allows you to:
|
|
514
|
+
* - Display intermediate results to users as they're generated
|
|
515
|
+
* - Monitor the agent's progress through each step
|
|
516
|
+
* - React to state changes as nodes complete
|
|
517
|
+
*
|
|
518
|
+
* For more granular event-level streaming (like individual LLM tokens), use `streamEvents` instead.
|
|
519
|
+
*
|
|
520
|
+
* @param state - The initial state for the agent execution. Can be:
|
|
521
|
+
* - An object containing `messages` array and any middleware-specific state properties
|
|
522
|
+
* - A Command object for more advanced control flow
|
|
523
|
+
*
|
|
524
|
+
* @param config - Optional runtime configuration including:
|
|
525
|
+
* @param config.context - The context for the agent execution.
|
|
526
|
+
* @param config.configurable - LangGraph configuration options like `thread_id`, `run_id`, etc.
|
|
527
|
+
* @param config.store - The store for the agent execution for persisting state, see more in {@link https://docs.langchain.com/oss/javascript/langgraph/memory#memory-storage | Memory storage}.
|
|
528
|
+
* @param config.signal - An optional {@link https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal | `AbortSignal`} for the agent execution.
|
|
529
|
+
* @param config.streamMode - The streaming mode for the agent execution, see more in {@link https://docs.langchain.com/oss/javascript/langgraph/streaming#supported-stream-modes | Supported stream modes}.
|
|
530
|
+
* @param config.recursionLimit - The recursion limit for the agent execution.
|
|
531
|
+
*
|
|
532
|
+
* @returns A Promise that resolves to an IterableReadableStream of state updates.
|
|
533
|
+
* Each update contains the current state after a node completes.
|
|
534
|
+
*
|
|
535
|
+
* @example
|
|
536
|
+
* ```typescript
|
|
537
|
+
* const agent = new ReactAgent({
|
|
538
|
+
* llm: myModel,
|
|
539
|
+
* tools: [calculator, webSearch]
|
|
540
|
+
* });
|
|
541
|
+
*
|
|
542
|
+
* const stream = await agent.stream({
|
|
543
|
+
* messages: [{ role: "human", content: "What's 2+2 and the weather in NYC?" }]
|
|
544
|
+
* });
|
|
545
|
+
*
|
|
546
|
+
* for await (const chunk of stream) {
|
|
547
|
+
* console.log(chunk); // State update from each node
|
|
548
|
+
* }
|
|
549
|
+
* ```
|
|
550
|
+
*/
|
|
551
|
+
async stream(state, config) {
|
|
552
|
+
const initializedState = await this.#initializeMiddlewareStates(state);
|
|
553
|
+
return this.#graph.stream(initializedState, config);
|
|
211
554
|
}
|
|
212
555
|
/**
|
|
213
556
|
* Visualize the graph as a PNG image.
|
|
@@ -240,6 +583,57 @@ var ReactAgent = class {
|
|
|
240
583
|
const representation = await this.#graph.getGraphAsync();
|
|
241
584
|
return representation.drawMermaid(params);
|
|
242
585
|
}
|
|
586
|
+
/**
|
|
587
|
+
* The following are internal methods to enable support for LangGraph Platform.
|
|
588
|
+
* They are not part of the createAgent public API.
|
|
589
|
+
*
|
|
590
|
+
* Note: we intentionally return as `never` to avoid type errors due to type inference.
|
|
591
|
+
*/
|
|
592
|
+
/**
|
|
593
|
+
* @internal
|
|
594
|
+
*/
|
|
595
|
+
streamEvents(state, config, streamOptions) {
|
|
596
|
+
return this.#graph.streamEvents(state, {
|
|
597
|
+
...config,
|
|
598
|
+
version: config?.version ?? "v2"
|
|
599
|
+
}, streamOptions);
|
|
600
|
+
}
|
|
601
|
+
/**
|
|
602
|
+
* @internal
|
|
603
|
+
*/
|
|
604
|
+
getGraphAsync(config) {
|
|
605
|
+
return this.#graph.getGraphAsync(config);
|
|
606
|
+
}
|
|
607
|
+
/**
|
|
608
|
+
* @internal
|
|
609
|
+
*/
|
|
610
|
+
getState(config, options) {
|
|
611
|
+
return this.#graph.getState(config, options);
|
|
612
|
+
}
|
|
613
|
+
/**
|
|
614
|
+
* @internal
|
|
615
|
+
*/
|
|
616
|
+
getStateHistory(config, options) {
|
|
617
|
+
return this.#graph.getStateHistory(config, options);
|
|
618
|
+
}
|
|
619
|
+
/**
|
|
620
|
+
* @internal
|
|
621
|
+
*/
|
|
622
|
+
getSubgraphs(namespace, recurse) {
|
|
623
|
+
return this.#graph.getSubgraphs(namespace, recurse);
|
|
624
|
+
}
|
|
625
|
+
/**
|
|
626
|
+
* @internal
|
|
627
|
+
*/
|
|
628
|
+
getSubgraphAsync(namespace, recurse) {
|
|
629
|
+
return this.#graph.getSubgraphsAsync(namespace, recurse);
|
|
630
|
+
}
|
|
631
|
+
/**
|
|
632
|
+
* @internal
|
|
633
|
+
*/
|
|
634
|
+
updateState(inputConfig, values, asNode) {
|
|
635
|
+
return this.#graph.updateState(inputConfig, values, asNode);
|
|
636
|
+
}
|
|
243
637
|
};
|
|
244
638
|
|
|
245
639
|
//#endregion
|