langchain 1.0.0-alpha.3 → 1.0.0-alpha.5
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/dist/agents/ReactAgent.cjs +1 -1
- package/dist/agents/ReactAgent.cjs.map +1 -1
- package/dist/agents/ReactAgent.d.cts +3 -3
- package/dist/agents/ReactAgent.d.cts.map +1 -1
- package/dist/agents/ReactAgent.d.ts +3 -3
- package/dist/agents/ReactAgent.d.ts.map +1 -1
- package/dist/agents/ReactAgent.js +2 -2
- package/dist/agents/ReactAgent.js.map +1 -1
- package/dist/agents/RunnableCallable.cjs +5 -0
- package/dist/agents/RunnableCallable.cjs.map +1 -1
- package/dist/agents/RunnableCallable.d.cts +2 -0
- package/dist/agents/RunnableCallable.d.cts.map +1 -1
- package/dist/agents/RunnableCallable.d.ts +2 -0
- package/dist/agents/RunnableCallable.d.ts.map +1 -1
- package/dist/agents/RunnableCallable.js +5 -0
- package/dist/agents/RunnableCallable.js.map +1 -1
- package/dist/agents/annotation.cjs +2 -2
- package/dist/agents/annotation.cjs.map +1 -1
- package/dist/agents/annotation.d.cts +4 -4
- package/dist/agents/annotation.d.cts.map +1 -1
- package/dist/agents/annotation.d.ts +3 -3
- package/dist/agents/annotation.d.ts.map +1 -1
- package/dist/agents/annotation.js +2 -2
- package/dist/agents/annotation.js.map +1 -1
- package/dist/agents/createAgent.cjs +10 -0
- package/dist/agents/createAgent.cjs.map +1 -0
- package/dist/agents/createAgent.js +10 -0
- package/dist/agents/createAgent.js.map +1 -0
- package/dist/agents/errors.cjs +1 -1
- package/dist/agents/errors.cjs.map +1 -1
- package/dist/agents/errors.js +1 -1
- package/dist/agents/errors.js.map +1 -1
- package/dist/agents/index.cjs +23 -4
- package/dist/agents/index.cjs.map +1 -1
- package/dist/agents/index.d.cts +96 -33
- package/dist/agents/index.d.cts.map +1 -1
- package/dist/agents/index.d.ts +96 -33
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +23 -4
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/middlewareAgent/ReactAgent.cjs +255 -0
- package/dist/agents/middlewareAgent/ReactAgent.cjs.map +1 -0
- package/dist/agents/middlewareAgent/ReactAgent.d.cts +68 -0
- package/dist/agents/middlewareAgent/ReactAgent.d.cts.map +1 -0
- package/dist/agents/middlewareAgent/ReactAgent.d.ts +68 -0
- package/dist/agents/middlewareAgent/ReactAgent.d.ts.map +1 -0
- package/dist/agents/middlewareAgent/ReactAgent.js +254 -0
- package/dist/agents/middlewareAgent/ReactAgent.js.map +1 -0
- package/dist/agents/middlewareAgent/annotation.cjs +39 -0
- package/dist/agents/middlewareAgent/annotation.cjs.map +1 -0
- package/dist/agents/middlewareAgent/annotation.js +38 -0
- package/dist/agents/middlewareAgent/annotation.js.map +1 -0
- package/dist/agents/middlewareAgent/index.cjs +11 -0
- package/dist/agents/middlewareAgent/index.cjs.map +1 -0
- package/dist/agents/middlewareAgent/index.js +11 -0
- package/dist/agents/middlewareAgent/index.js.map +1 -0
- package/dist/agents/middlewareAgent/middleware.cjs +47 -0
- package/dist/agents/middlewareAgent/middleware.cjs.map +1 -0
- package/dist/agents/middlewareAgent/middleware.d.cts +46 -0
- package/dist/agents/middlewareAgent/middleware.d.cts.map +1 -0
- package/dist/agents/middlewareAgent/middleware.d.ts +46 -0
- package/dist/agents/middlewareAgent/middleware.d.ts.map +1 -0
- package/dist/agents/middlewareAgent/middleware.js +46 -0
- package/dist/agents/middlewareAgent/middleware.js.map +1 -0
- package/dist/agents/middlewareAgent/middlewares/hitl.cjs +235 -0
- package/dist/agents/middlewareAgent/middlewares/hitl.cjs.map +1 -0
- package/dist/agents/middlewareAgent/middlewares/hitl.d.cts +199 -0
- package/dist/agents/middlewareAgent/middlewares/hitl.d.cts.map +1 -0
- package/dist/agents/middlewareAgent/middlewares/hitl.d.ts +199 -0
- package/dist/agents/middlewareAgent/middlewares/hitl.d.ts.map +1 -0
- package/dist/agents/middlewareAgent/middlewares/hitl.js +234 -0
- package/dist/agents/middlewareAgent/middlewares/hitl.js.map +1 -0
- package/dist/agents/middlewareAgent/middlewares/index.cjs +8 -0
- package/dist/agents/middlewareAgent/middlewares/index.d.cts +4 -0
- package/dist/agents/middlewareAgent/middlewares/index.d.ts +4 -0
- package/dist/agents/middlewareAgent/middlewares/index.js +5 -0
- package/dist/agents/middlewareAgent/middlewares/promptCaching.cjs +153 -0
- package/dist/agents/middlewareAgent/middlewares/promptCaching.cjs.map +1 -0
- package/dist/agents/middlewareAgent/middlewares/promptCaching.d.cts +152 -0
- package/dist/agents/middlewareAgent/middlewares/promptCaching.d.cts.map +1 -0
- package/dist/agents/middlewareAgent/middlewares/promptCaching.d.ts +152 -0
- package/dist/agents/middlewareAgent/middlewares/promptCaching.d.ts.map +1 -0
- package/dist/agents/middlewareAgent/middlewares/promptCaching.js +152 -0
- package/dist/agents/middlewareAgent/middlewares/promptCaching.js.map +1 -0
- package/dist/agents/middlewareAgent/middlewares/summarization.cjs +262 -0
- package/dist/agents/middlewareAgent/middlewares/summarization.cjs.map +1 -0
- package/dist/agents/middlewareAgent/middlewares/summarization.d.cts +89 -0
- package/dist/agents/middlewareAgent/middlewares/summarization.d.cts.map +1 -0
- package/dist/agents/middlewareAgent/middlewares/summarization.d.ts +89 -0
- package/dist/agents/middlewareAgent/middlewares/summarization.d.ts.map +1 -0
- package/dist/agents/middlewareAgent/middlewares/summarization.js +260 -0
- package/dist/agents/middlewareAgent/middlewares/summarization.js.map +1 -0
- package/dist/agents/middlewareAgent/nodes/AfterModalNode.cjs +29 -0
- package/dist/agents/middlewareAgent/nodes/AfterModalNode.cjs.map +1 -0
- package/dist/agents/middlewareAgent/nodes/AfterModalNode.js +29 -0
- package/dist/agents/middlewareAgent/nodes/AfterModalNode.js.map +1 -0
- package/dist/agents/middlewareAgent/nodes/AgentNode.cjs +332 -0
- package/dist/agents/middlewareAgent/nodes/AgentNode.cjs.map +1 -0
- package/dist/agents/middlewareAgent/nodes/AgentNode.js +331 -0
- package/dist/agents/middlewareAgent/nodes/AgentNode.js.map +1 -0
- package/dist/agents/middlewareAgent/nodes/BeforeModalNode.cjs +27 -0
- package/dist/agents/middlewareAgent/nodes/BeforeModalNode.cjs.map +1 -0
- package/dist/agents/middlewareAgent/nodes/BeforeModalNode.js +27 -0
- package/dist/agents/middlewareAgent/nodes/BeforeModalNode.js.map +1 -0
- package/dist/agents/middlewareAgent/nodes/middleware.cjs +73 -0
- package/dist/agents/middlewareAgent/nodes/middleware.cjs.map +1 -0
- package/dist/agents/middlewareAgent/nodes/middleware.js +73 -0
- package/dist/agents/middlewareAgent/nodes/middleware.js.map +1 -0
- package/dist/agents/middlewareAgent/nodes/utils.cjs +74 -0
- package/dist/agents/middlewareAgent/nodes/utils.cjs.map +1 -0
- package/dist/agents/middlewareAgent/nodes/utils.js +70 -0
- package/dist/agents/middlewareAgent/nodes/utils.js.map +1 -0
- package/dist/agents/middlewareAgent/types.d.cts +393 -0
- package/dist/agents/middlewareAgent/types.d.cts.map +1 -0
- package/dist/agents/middlewareAgent/types.d.ts +393 -0
- package/dist/agents/middlewareAgent/types.d.ts.map +1 -0
- package/dist/agents/nodes/AgentNode.cjs.map +1 -1
- package/dist/agents/nodes/AgentNode.js.map +1 -1
- package/dist/agents/nodes/ToolNode.cjs +1 -1
- package/dist/agents/nodes/ToolNode.cjs.map +1 -1
- package/dist/agents/nodes/ToolNode.d.cts +4 -4
- package/dist/agents/nodes/ToolNode.d.cts.map +1 -1
- package/dist/agents/nodes/ToolNode.d.ts +1 -1
- package/dist/agents/nodes/ToolNode.d.ts.map +1 -1
- package/dist/agents/nodes/ToolNode.js +1 -1
- package/dist/agents/nodes/ToolNode.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 +1 -1
- package/dist/agents/responses.d.cts.map +1 -1
- package/dist/agents/responses.d.ts +1 -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/types.d.cts +12 -12
- package/dist/agents/types.d.cts.map +1 -1
- package/dist/agents/types.d.ts +8 -8
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/agents/utils.cjs +1 -1
- package/dist/agents/utils.cjs.map +1 -1
- package/dist/agents/utils.js +1 -1
- package/dist/agents/utils.js.map +1 -1
- package/dist/agents/withAgentName.cjs +1 -1
- package/dist/agents/withAgentName.cjs.map +1 -1
- package/dist/agents/withAgentName.js +1 -1
- package/dist/agents/withAgentName.js.map +1 -1
- package/dist/chains/api/api_chain.d.cts +1 -1
- package/dist/chains/base.d.cts +1 -1
- package/dist/chains/combine_docs_chain.d.cts +1 -1
- package/dist/chains/combine_documents/stuff.d.cts +1 -1
- package/dist/chains/conversational_retrieval_chain.d.cts +1 -1
- package/dist/chains/graph_qa/cypher.d.cts +1 -1
- package/dist/chains/history_aware_retriever.d.cts +2 -2
- package/dist/chains/llm_chain.d.cts +3 -3
- package/dist/chains/openai_functions/base.d.cts +3 -3
- package/dist/chains/openai_functions/openapi.d.cts +1 -1
- package/dist/chains/openai_functions/structured_output.d.cts +3 -3
- package/dist/chains/openai_functions/tagging.d.cts +1 -1
- package/dist/chains/query_constructor/index.cjs +1 -1
- package/dist/chains/query_constructor/index.d.cts +2 -2
- package/dist/chains/query_constructor/index.d.ts +1 -1
- package/dist/chains/query_constructor/index.js +1 -1
- package/dist/chains/question_answering/load.d.ts +2 -2
- package/dist/chains/question_answering/load.d.ts.map +1 -1
- package/dist/chains/retrieval.d.cts +1 -1
- package/dist/chains/router/llm_router.d.cts +1 -1
- package/dist/chains/router/multi_prompt.cjs +1 -1
- package/dist/chains/router/multi_prompt.js +1 -1
- package/dist/chains/router/multi_retrieval_qa.cjs +1 -1
- package/dist/chains/router/multi_retrieval_qa.js +1 -1
- package/dist/chains/sql_db/sql_db_chain.d.cts +2 -2
- package/dist/chains/summarization/load.d.ts +2 -2
- package/dist/chains/summarization/load.d.ts.map +1 -1
- package/dist/chat_models/universal.d.cts +3 -3
- package/dist/evaluation/agents/trajectory.d.cts +3 -3
- package/dist/evaluation/agents/trajectory.d.ts.map +1 -1
- package/dist/evaluation/comparison/pairwise.d.cts +1 -1
- package/dist/evaluation/comparison/pairwise.d.ts.map +1 -1
- package/dist/evaluation/criteria/criteria.d.cts +1 -1
- package/dist/evaluation/qa/eval_chain.d.cts +1 -1
- package/dist/index.cjs +5 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -5
- package/dist/index.d.ts +4 -3
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/load/import_map.cjs +1 -1
- package/dist/load/import_map.js +1 -1
- package/dist/memory/summary.d.cts +1 -1
- package/dist/output_parsers/fix.d.cts +1 -1
- package/dist/output_parsers/http_response.d.cts +1 -1
- package/dist/output_parsers/structured.cjs +1 -1
- package/dist/output_parsers/structured.d.cts +2 -2
- package/dist/output_parsers/structured.d.ts +1 -1
- package/dist/output_parsers/structured.js +1 -1
- package/dist/tools/fs.d.cts +1 -1
- package/dist/tools/json.d.cts +1 -1
- package/dist/tools/retriever.d.cts +1 -1
- package/dist/tools/vectorstore.d.cts +1 -1
- package/dist/tools/webbrowser.d.cts +1 -1
- package/package.json +14 -3
package/dist/agents/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["message: T","updatedContent: MessageContent","updatedName: string | undefined","tool: ClientTool | ServerTool","model: LanguageModelLike","model: unknown","llm: LanguageModelLike","prompt?: Prompt","promptRunnable: Runnable","state: typeof MessagesAnnotation.State","toolClasses: (ClientTool | ServerTool)[]","options: Partial<BaseChatModelCallOptions>","model","nextSteps: unknown[]","step: RunnableLike","messages: BaseMessage[]"],"sources":["../../src/agents/utils.ts"],"sourcesContent":["/* eslint-disable no-instanceof/no-instanceof */\nimport {\n AIMessage,\n BaseMessage,\n BaseMessageLike,\n MessageContent,\n SystemMessage,\n AIMessageChunk,\n isAIMessage,\n isAIMessageChunk,\n isBaseMessage,\n isBaseMessageChunk,\n} from \"@langchain/core/messages\";\nimport { MessagesAnnotation } from \"@langchain/langgraph\";\nimport {\n BaseChatModel,\n type BindToolsInput,\n type BaseChatModelCallOptions,\n} from \"@langchain/core/language_models/chat_models\";\nimport {\n LanguageModelLike,\n BaseLanguageModelInput,\n} from \"@langchain/core/language_models/base\";\nimport {\n Runnable,\n RunnableLike,\n RunnableConfig,\n RunnableLambda,\n RunnableSequence,\n RunnableBinding,\n} from \"@langchain/core/runnables\";\n\nimport { MultipleToolsBoundError } from \"./errors.js\";\nimport { PROMPT_RUNNABLE_NAME } from \"./constants.js\";\nimport {\n ServerTool,\n ClientTool,\n ConfigurableModelInterface,\n Prompt,\n} from \"./types.js\";\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 * @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 return new AIMessage({\n ...(Object.keys(message.lc_kwargs ?? {}).length > 0\n ? message.lc_kwargs\n : message),\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 * 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\nexport function isClientTool(\n tool: ClientTool | ServerTool\n): tool is ClientTool {\n return Runnable.isRunnable(tool);\n}\n\nexport function isBaseChatModel(\n model: LanguageModelLike\n): model is BaseChatModel {\n return (\n \"invoke\" in model &&\n typeof model.invoke === \"function\" &&\n \"_modelType\" in model\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isConfigurableModel(\n model: unknown\n): model is ConfigurableModelInterface {\n return (\n typeof model === \"object\" &&\n model != null &&\n \"_queuedMethodOperations\" in model &&\n \"_model\" in model &&\n typeof model._model === \"function\"\n );\n}\n\nfunction _isChatModelWithBindTools(\n llm: LanguageModelLike\n): llm is BaseChatModel & Required<Pick<BaseChatModel, \"bindTools\">> {\n if (!isBaseChatModel(llm)) return false;\n return \"bindTools\" in llm && typeof llm.bindTools === \"function\";\n}\n\nexport function getPromptRunnable(prompt?: Prompt): Runnable {\n let promptRunnable: Runnable;\n\n if (prompt == null) {\n promptRunnable = RunnableLambda.from(\n (state: typeof MessagesAnnotation.State) => state.messages\n ).withConfig({ runName: PROMPT_RUNNABLE_NAME });\n } else if (typeof prompt === \"string\") {\n const systemMessage = new SystemMessage(prompt);\n promptRunnable = RunnableLambda.from(\n (state: typeof MessagesAnnotation.State) => {\n return [systemMessage, ...(state.messages ?? [])];\n }\n ).withConfig({ runName: PROMPT_RUNNABLE_NAME });\n } else if (isBaseMessage(prompt) && prompt._getType() === \"system\") {\n promptRunnable = RunnableLambda.from(\n (state: typeof MessagesAnnotation.State) => [prompt, ...state.messages]\n ).withConfig({ runName: PROMPT_RUNNABLE_NAME });\n } else if (typeof prompt === \"function\") {\n promptRunnable = RunnableLambda.from(prompt).withConfig({\n runName: PROMPT_RUNNABLE_NAME,\n });\n } else if (Runnable.isRunnable(prompt)) {\n promptRunnable = prompt;\n } else {\n throw new Error(`Got unexpected type for 'prompt': ${typeof prompt}`);\n }\n\n return promptRunnable;\n}\n\nexport async function shouldBindTools(\n llm: LanguageModelLike,\n tools: (ClientTool | ServerTool)[]\n): Promise<boolean> {\n // If model is a RunnableSequence, find a RunnableBinding or BaseChatModel in its steps\n let model = llm;\n if (RunnableSequence.isRunnableSequence(model)) {\n model =\n model.steps.find(\n (step) =>\n RunnableBinding.isRunnableBinding(step) ||\n isBaseChatModel(step) ||\n isConfigurableModel(step)\n ) || model;\n }\n\n if (isConfigurableModel(model)) {\n model = await model._model();\n }\n\n // If not a RunnableBinding, we should bind tools\n if (!RunnableBinding.isRunnableBinding(model)) {\n return true;\n }\n\n let boundTools = (() => {\n // check if model.kwargs contain the tools key\n if (\n model.kwargs != null &&\n typeof model.kwargs === \"object\" &&\n \"tools\" in model.kwargs &&\n Array.isArray(model.kwargs.tools)\n ) {\n return (model.kwargs.tools ?? null) as BindToolsInput[] | null;\n }\n\n // Some models can bind the tools via `withConfig()` instead of `bind()`\n if (\n model.config != null &&\n typeof model.config === \"object\" &&\n \"tools\" in model.config &&\n Array.isArray(model.config.tools)\n ) {\n return (model.config.tools ?? null) as BindToolsInput[] | null;\n }\n\n return null;\n })();\n\n // google-style\n if (\n boundTools != null &&\n boundTools.length === 1 &&\n \"functionDeclarations\" in boundTools[0]\n ) {\n boundTools = boundTools[0].functionDeclarations;\n }\n\n // If no tools in kwargs, we should bind tools\n if (boundTools == null) return true;\n\n // Check if tools count matches\n if (tools.length !== boundTools.length) {\n throw new Error(\n \"Number of tools in the model.bindTools() and tools passed to createReactAgent must match\"\n );\n }\n\n const toolNames = new Set<string>(\n tools.flatMap((tool) => (isClientTool(tool) ? tool.name : []))\n );\n\n const boundToolNames = new Set<string>();\n\n for (const boundTool of boundTools) {\n let boundToolName: string | undefined;\n\n // OpenAI-style tool\n if (\"type\" in boundTool && boundTool.type === \"function\") {\n boundToolName = boundTool.function.name;\n }\n // Anthropic or Google-style tool\n else if (\"name\" in boundTool) {\n boundToolName = boundTool.name;\n }\n // Bedrock-style tool\n else if (\"toolSpec\" in boundTool && \"name\" in boundTool.toolSpec) {\n boundToolName = boundTool.toolSpec.name;\n }\n // unknown tool type so we'll ignore it\n else {\n continue;\n }\n\n if (boundToolName) {\n boundToolNames.add(boundToolName);\n }\n }\n\n const missingTools = [...toolNames].filter((x) => !boundToolNames.has(x));\n if (missingTools.length > 0) {\n throw new Error(\n `Missing tools '${missingTools}' in the model.bindTools().` +\n `Tools in the model.bindTools() must match the tools passed to createReactAgent.`\n );\n }\n\n return false;\n}\n\nconst _simpleBindTools = (\n llm: LanguageModelLike,\n toolClasses: (ClientTool | ServerTool)[],\n options: Partial<BaseChatModelCallOptions> = {}\n) => {\n if (_isChatModelWithBindTools(llm)) {\n return llm.bindTools(toolClasses, options);\n }\n\n if (\n RunnableBinding.isRunnableBinding(llm) &&\n _isChatModelWithBindTools(llm.bound)\n ) {\n const newBound = llm.bound.bindTools(toolClasses, options);\n\n if (RunnableBinding.isRunnableBinding(newBound)) {\n return new RunnableBinding({\n bound: newBound.bound,\n config: { ...llm.config, ...newBound.config },\n kwargs: { ...llm.kwargs, ...newBound.kwargs },\n configFactories: newBound.configFactories ?? llm.configFactories,\n });\n }\n\n return new RunnableBinding({\n bound: newBound,\n config: llm.config,\n kwargs: llm.kwargs,\n configFactories: llm.configFactories,\n });\n }\n\n return null;\n};\n\nexport async function bindTools(\n llm: LanguageModelLike,\n toolClasses: (ClientTool | ServerTool)[],\n options: Partial<BaseChatModelCallOptions> = {}\n): Promise<\n | RunnableSequence<any, any>\n | RunnableBinding<any, any, RunnableConfig<Record<string, any>>>\n | Runnable<BaseLanguageModelInput, AIMessageChunk, BaseChatModelCallOptions>\n> {\n const model = _simpleBindTools(llm, toolClasses, options);\n if (model) return model;\n\n if (isConfigurableModel(llm)) {\n const model = _simpleBindTools(await llm._model(), toolClasses, options);\n if (model) return model;\n }\n\n if (RunnableSequence.isRunnableSequence(llm)) {\n const modelStep = llm.steps.findIndex(\n (step) =>\n RunnableBinding.isRunnableBinding(step) ||\n isBaseChatModel(step) ||\n isConfigurableModel(step)\n );\n\n if (modelStep >= 0) {\n const model = _simpleBindTools(\n llm.steps[modelStep],\n toolClasses,\n options\n );\n if (model) {\n const nextSteps: unknown[] = llm.steps.slice();\n nextSteps.splice(modelStep, 1, model);\n\n return RunnableSequence.from(\n nextSteps as [RunnableLike, ...RunnableLike[], RunnableLike]\n );\n }\n }\n }\n\n throw new Error(`llm ${llm} must define bindTools method.`);\n}\n\n/**\n * Check if the LLM already has bound tools and throw if it does.\n *\n * @param llm - The LLM to check.\n * @returns void\n */\nexport function validateLLMHasNoBoundTools(llm: LanguageModelLike): void {\n /**\n * If llm is a function, we can't validate until runtime, so skip\n */\n if (typeof llm === \"function\") {\n return;\n }\n\n let model = llm;\n\n /**\n * If model is a RunnableSequence, find a RunnableBinding in its steps\n */\n if (RunnableSequence.isRunnableSequence(model)) {\n model =\n model.steps.find((step: RunnableLike) =>\n RunnableBinding.isRunnableBinding(step)\n ) || model;\n }\n\n /**\n * If model is configurable, get the underlying model\n */\n if (isConfigurableModel(model)) {\n /**\n * Can't validate async model retrieval in constructor\n */\n return;\n }\n\n /**\n * Check if model is a RunnableBinding with bound tools\n */\n if (RunnableBinding.isRunnableBinding(model)) {\n const hasToolsInKwargs =\n model.kwargs != null &&\n typeof model.kwargs === \"object\" &&\n \"tools\" in model.kwargs &&\n Array.isArray(model.kwargs.tools) &&\n model.kwargs.tools.length > 0;\n\n const hasToolsInConfig =\n model.config != null &&\n typeof model.config === \"object\" &&\n \"tools\" in model.config &&\n Array.isArray(model.config.tools) &&\n model.config.tools.length > 0;\n\n if (hasToolsInKwargs || hasToolsInConfig) {\n throw new MultipleToolsBoundError();\n }\n }\n\n /**\n * Also check if model has tools property directly (e.g., FakeToolCallingModel)\n */\n if (\n \"tools\" in model &&\n model.tools !== undefined &&\n Array.isArray(model.tools) &&\n model.tools.length > 0\n ) {\n throw new MultipleToolsBoundError();\n }\n}\n\n/**\n * Check if the last message in the messages array has tool calls.\n *\n * @param messages - The messages to check.\n * @returns True if the last message has tool calls, false otherwise.\n */\nexport function hasToolCalls(messages: BaseMessage[]): boolean {\n const lastMessage = messages.at(-1);\n return Boolean(\n lastMessage instanceof AIMessage &&\n lastMessage.tool_calls &&\n lastMessage.tool_calls.length > 0\n );\n}\n\n/**\n * Check if the model name supports structured output\n * @param modelName - The name of the model\n * @returns True if the model supports structured output, false otherwise\n */\nexport function hasSupportForStructuredOutput(modelName?: string): boolean {\n return (\n modelName?.startsWith(\"gpt-4\") || modelName?.startsWith(\"gpt-5\") || false\n );\n}\n\nconst CHAT_MODELS_THAT_SUPPORT_JSON_SCHEMA_OUTPUT = [\n \"ChatOpenAI\",\n \"FakeToolCallingModel\",\n];\n\n/**\n * Identifies the models that support JSON schema output\n * @param model - The model to check\n * @returns True if the model supports JSON schema output, false otherwise\n */\nexport function hasSupportForJsonSchemaOutput(\n model: LanguageModelLike\n): boolean {\n if (!isBaseChatModel(model)) {\n return false;\n }\n\n const chatModelClass = model.getName();\n if (\n CHAT_MODELS_THAT_SUPPORT_JSON_SCHEMA_OUTPUT.includes(chatModelClass) &&\n ((chatModelClass === \"ChatOpenAI\" &&\n /**\n * OpenAI models\n */\n \"model\" in model &&\n typeof model.model === \"string\" &&\n model.model.startsWith(\"gpt-4\")) ||\n /**\n * for testing purposes only\n */\n (chatModelClass === \"FakeToolCallingModel\" &&\n \"structuredResponse\" in model))\n ) {\n return true;\n }\n\n return false;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","names":["message: T","updatedContent: MessageContent","updatedName: string | undefined","tool: ClientTool | ServerTool","model: LanguageModelLike","model: unknown","llm: LanguageModelLike","prompt?: Prompt","promptRunnable: Runnable","state: typeof MessagesAnnotation.State","toolClasses: (ClientTool | ServerTool)[]","options: Partial<BaseChatModelCallOptions>","model","nextSteps: unknown[]","step: RunnableLike","messages: BaseMessage[]"],"sources":["../../src/agents/utils.ts"],"sourcesContent":["/* eslint-disable no-instanceof/no-instanceof */\nimport {\n AIMessage,\n BaseMessage,\n BaseMessageLike,\n MessageContent,\n SystemMessage,\n AIMessageChunk,\n isAIMessage,\n isAIMessageChunk,\n isBaseMessage,\n isBaseMessageChunk,\n} from \"@langchain/core/messages\";\nimport { MessagesAnnotation } from \"@langchain/langgraph\";\nimport {\n BaseChatModel,\n type BindToolsInput,\n type BaseChatModelCallOptions,\n} from \"@langchain/core/language_models/chat_models\";\nimport {\n LanguageModelLike,\n BaseLanguageModelInput,\n} from \"@langchain/core/language_models/base\";\nimport {\n Runnable,\n RunnableLike,\n RunnableConfig,\n RunnableLambda,\n RunnableSequence,\n RunnableBinding,\n} from \"@langchain/core/runnables\";\n\nimport { MultipleToolsBoundError } from \"./errors.js\";\nimport { PROMPT_RUNNABLE_NAME } from \"./constants.js\";\nimport {\n ServerTool,\n ClientTool,\n ConfigurableModelInterface,\n Prompt,\n} from \"./types.js\";\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 createAgent, 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 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 return new AIMessage({\n ...(Object.keys(message.lc_kwargs ?? {}).length > 0\n ? message.lc_kwargs\n : message),\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 * 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\nexport function isClientTool(\n tool: ClientTool | ServerTool\n): tool is ClientTool {\n return Runnable.isRunnable(tool);\n}\n\nexport function isBaseChatModel(\n model: LanguageModelLike\n): model is BaseChatModel {\n return (\n \"invoke\" in model &&\n typeof model.invoke === \"function\" &&\n \"_modelType\" in model\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isConfigurableModel(\n model: unknown\n): model is ConfigurableModelInterface {\n return (\n typeof model === \"object\" &&\n model != null &&\n \"_queuedMethodOperations\" in model &&\n \"_model\" in model &&\n typeof model._model === \"function\"\n );\n}\n\nfunction _isChatModelWithBindTools(\n llm: LanguageModelLike\n): llm is BaseChatModel & Required<Pick<BaseChatModel, \"bindTools\">> {\n if (!isBaseChatModel(llm)) return false;\n return \"bindTools\" in llm && typeof llm.bindTools === \"function\";\n}\n\nexport function getPromptRunnable(prompt?: Prompt): Runnable {\n let promptRunnable: Runnable;\n\n if (prompt == null) {\n promptRunnable = RunnableLambda.from(\n (state: typeof MessagesAnnotation.State) => state.messages\n ).withConfig({ runName: PROMPT_RUNNABLE_NAME });\n } else if (typeof prompt === \"string\") {\n const systemMessage = new SystemMessage(prompt);\n promptRunnable = RunnableLambda.from(\n (state: typeof MessagesAnnotation.State) => {\n return [systemMessage, ...(state.messages ?? [])];\n }\n ).withConfig({ runName: PROMPT_RUNNABLE_NAME });\n } else if (isBaseMessage(prompt) && prompt._getType() === \"system\") {\n promptRunnable = RunnableLambda.from(\n (state: typeof MessagesAnnotation.State) => [prompt, ...state.messages]\n ).withConfig({ runName: PROMPT_RUNNABLE_NAME });\n } else if (typeof prompt === \"function\") {\n promptRunnable = RunnableLambda.from(prompt).withConfig({\n runName: PROMPT_RUNNABLE_NAME,\n });\n } else if (Runnable.isRunnable(prompt)) {\n promptRunnable = prompt;\n } else {\n throw new Error(`Got unexpected type for 'prompt': ${typeof prompt}`);\n }\n\n return promptRunnable;\n}\n\nexport async function shouldBindTools(\n llm: LanguageModelLike,\n tools: (ClientTool | ServerTool)[]\n): Promise<boolean> {\n // If model is a RunnableSequence, find a RunnableBinding or BaseChatModel in its steps\n let model = llm;\n if (RunnableSequence.isRunnableSequence(model)) {\n model =\n model.steps.find(\n (step) =>\n RunnableBinding.isRunnableBinding(step) ||\n isBaseChatModel(step) ||\n isConfigurableModel(step)\n ) || model;\n }\n\n if (isConfigurableModel(model)) {\n model = await model._model();\n }\n\n // If not a RunnableBinding, we should bind tools\n if (!RunnableBinding.isRunnableBinding(model)) {\n return true;\n }\n\n let boundTools = (() => {\n // check if model.kwargs contain the tools key\n if (\n model.kwargs != null &&\n typeof model.kwargs === \"object\" &&\n \"tools\" in model.kwargs &&\n Array.isArray(model.kwargs.tools)\n ) {\n return (model.kwargs.tools ?? null) as BindToolsInput[] | null;\n }\n\n // Some models can bind the tools via `withConfig()` instead of `bind()`\n if (\n model.config != null &&\n typeof model.config === \"object\" &&\n \"tools\" in model.config &&\n Array.isArray(model.config.tools)\n ) {\n return (model.config.tools ?? null) as BindToolsInput[] | null;\n }\n\n return null;\n })();\n\n // google-style\n if (\n boundTools != null &&\n boundTools.length === 1 &&\n \"functionDeclarations\" in boundTools[0]\n ) {\n boundTools = boundTools[0].functionDeclarations;\n }\n\n // If no tools in kwargs, we should bind tools\n if (boundTools == null) return true;\n\n // Check if tools count matches\n if (tools.length !== boundTools.length) {\n throw new Error(\n \"Number of tools in the model.bindTools() and tools passed to createAgent must match\"\n );\n }\n\n const toolNames = new Set<string>(\n tools.flatMap((tool) => (isClientTool(tool) ? tool.name : []))\n );\n\n const boundToolNames = new Set<string>();\n\n for (const boundTool of boundTools) {\n let boundToolName: string | undefined;\n\n // OpenAI-style tool\n if (\"type\" in boundTool && boundTool.type === \"function\") {\n boundToolName = boundTool.function.name;\n }\n // Anthropic or Google-style tool\n else if (\"name\" in boundTool) {\n boundToolName = boundTool.name;\n }\n // Bedrock-style tool\n else if (\"toolSpec\" in boundTool && \"name\" in boundTool.toolSpec) {\n boundToolName = boundTool.toolSpec.name;\n }\n // unknown tool type so we'll ignore it\n else {\n continue;\n }\n\n if (boundToolName) {\n boundToolNames.add(boundToolName);\n }\n }\n\n const missingTools = [...toolNames].filter((x) => !boundToolNames.has(x));\n if (missingTools.length > 0) {\n throw new Error(\n `Missing tools '${missingTools}' in the model.bindTools().` +\n `Tools in the model.bindTools() must match the tools passed to createAgent.`\n );\n }\n\n return false;\n}\n\nconst _simpleBindTools = (\n llm: LanguageModelLike,\n toolClasses: (ClientTool | ServerTool)[],\n options: Partial<BaseChatModelCallOptions> = {}\n) => {\n if (_isChatModelWithBindTools(llm)) {\n return llm.bindTools(toolClasses, options);\n }\n\n if (\n RunnableBinding.isRunnableBinding(llm) &&\n _isChatModelWithBindTools(llm.bound)\n ) {\n const newBound = llm.bound.bindTools(toolClasses, options);\n\n if (RunnableBinding.isRunnableBinding(newBound)) {\n return new RunnableBinding({\n bound: newBound.bound,\n config: { ...llm.config, ...newBound.config },\n kwargs: { ...llm.kwargs, ...newBound.kwargs },\n configFactories: newBound.configFactories ?? llm.configFactories,\n });\n }\n\n return new RunnableBinding({\n bound: newBound,\n config: llm.config,\n kwargs: llm.kwargs,\n configFactories: llm.configFactories,\n });\n }\n\n return null;\n};\n\nexport async function bindTools(\n llm: LanguageModelLike,\n toolClasses: (ClientTool | ServerTool)[],\n options: Partial<BaseChatModelCallOptions> = {}\n): Promise<\n | RunnableSequence<any, any>\n | RunnableBinding<any, any, RunnableConfig<Record<string, any>>>\n | Runnable<BaseLanguageModelInput, AIMessageChunk, BaseChatModelCallOptions>\n> {\n const model = _simpleBindTools(llm, toolClasses, options);\n if (model) return model;\n\n if (isConfigurableModel(llm)) {\n const model = _simpleBindTools(await llm._model(), toolClasses, options);\n if (model) return model;\n }\n\n if (RunnableSequence.isRunnableSequence(llm)) {\n const modelStep = llm.steps.findIndex(\n (step) =>\n RunnableBinding.isRunnableBinding(step) ||\n isBaseChatModel(step) ||\n isConfigurableModel(step)\n );\n\n if (modelStep >= 0) {\n const model = _simpleBindTools(\n llm.steps[modelStep],\n toolClasses,\n options\n );\n if (model) {\n const nextSteps: unknown[] = llm.steps.slice();\n nextSteps.splice(modelStep, 1, model);\n\n return RunnableSequence.from(\n nextSteps as [RunnableLike, ...RunnableLike[], RunnableLike]\n );\n }\n }\n }\n\n throw new Error(`llm ${llm} must define bindTools method.`);\n}\n\n/**\n * Check if the LLM already has bound tools and throw if it does.\n *\n * @param llm - The LLM to check.\n * @returns void\n */\nexport function validateLLMHasNoBoundTools(llm: LanguageModelLike): void {\n /**\n * If llm is a function, we can't validate until runtime, so skip\n */\n if (typeof llm === \"function\") {\n return;\n }\n\n let model = llm;\n\n /**\n * If model is a RunnableSequence, find a RunnableBinding in its steps\n */\n if (RunnableSequence.isRunnableSequence(model)) {\n model =\n model.steps.find((step: RunnableLike) =>\n RunnableBinding.isRunnableBinding(step)\n ) || model;\n }\n\n /**\n * If model is configurable, get the underlying model\n */\n if (isConfigurableModel(model)) {\n /**\n * Can't validate async model retrieval in constructor\n */\n return;\n }\n\n /**\n * Check if model is a RunnableBinding with bound tools\n */\n if (RunnableBinding.isRunnableBinding(model)) {\n const hasToolsInKwargs =\n model.kwargs != null &&\n typeof model.kwargs === \"object\" &&\n \"tools\" in model.kwargs &&\n Array.isArray(model.kwargs.tools) &&\n model.kwargs.tools.length > 0;\n\n const hasToolsInConfig =\n model.config != null &&\n typeof model.config === \"object\" &&\n \"tools\" in model.config &&\n Array.isArray(model.config.tools) &&\n model.config.tools.length > 0;\n\n if (hasToolsInKwargs || hasToolsInConfig) {\n throw new MultipleToolsBoundError();\n }\n }\n\n /**\n * Also check if model has tools property directly (e.g., FakeToolCallingModel)\n */\n if (\n \"tools\" in model &&\n model.tools !== undefined &&\n Array.isArray(model.tools) &&\n model.tools.length > 0\n ) {\n throw new MultipleToolsBoundError();\n }\n}\n\n/**\n * Check if the last message in the messages array has tool calls.\n *\n * @param messages - The messages to check.\n * @returns True if the last message has tool calls, false otherwise.\n */\nexport function hasToolCalls(messages: BaseMessage[]): boolean {\n const lastMessage = messages.at(-1);\n return Boolean(\n lastMessage instanceof AIMessage &&\n lastMessage.tool_calls &&\n lastMessage.tool_calls.length > 0\n );\n}\n\n/**\n * Check if the model name supports structured output\n * @param modelName - The name of the model\n * @returns True if the model supports structured output, false otherwise\n */\nexport function hasSupportForStructuredOutput(modelName?: string): boolean {\n return (\n modelName?.startsWith(\"gpt-4\") || modelName?.startsWith(\"gpt-5\") || false\n );\n}\n\nconst CHAT_MODELS_THAT_SUPPORT_JSON_SCHEMA_OUTPUT = [\n \"ChatOpenAI\",\n \"FakeToolCallingModel\",\n];\n\n/**\n * Identifies the models that support JSON schema output\n * @param model - The model to check\n * @returns True if the model supports JSON schema output, false otherwise\n */\nexport function hasSupportForJsonSchemaOutput(\n model: LanguageModelLike\n): boolean {\n if (!isBaseChatModel(model)) {\n return false;\n }\n\n const chatModelClass = model.getName();\n if (\n CHAT_MODELS_THAT_SUPPORT_JSON_SCHEMA_OUTPUT.includes(chatModelClass) &&\n ((chatModelClass === \"ChatOpenAI\" &&\n /**\n * OpenAI models\n */\n \"model\" in model &&\n typeof model.model === \"string\" &&\n model.model.startsWith(\"gpt-4\")) ||\n /**\n * for testing purposes only\n */\n (chatModelClass === \"FakeToolCallingModel\" &&\n \"structuredResponse\" in model))\n ) {\n return true;\n }\n\n return false;\n}\n"],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ const __langchain_core_runnables = require_rolldown_runtime.__toESM(require("@la
|
|
|
9
9
|
* This is useful for making a message history with multiple agents more coherent.
|
|
10
10
|
*
|
|
11
11
|
* NOTE: agent name is consumed from the message.name field.
|
|
12
|
-
* If you're using an agent built with
|
|
12
|
+
* If you're using an agent built with createAgent, name is automatically set.
|
|
13
13
|
* If you're building a custom agent, make sure to set the name on the AI message returned by the LLM.
|
|
14
14
|
*
|
|
15
15
|
* @param model - Language model to add agent name formatting to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withAgentName.cjs","names":["model: LanguageModelLike","agentNameMode: AgentNameMode","processInputMessage: (message: BaseMessageLike) => BaseMessageLike","processOutputMessage: (message: BaseMessage) => BaseMessage","_addInlineAgentName","_removeInlineAgentName","messages: BaseMessageLike[]","RunnableSequence","RunnableLambda"],"sources":["../../src/agents/withAgentName.ts"],"sourcesContent":["import { BaseMessage, BaseMessageLike } from \"@langchain/core/messages\";\nimport { LanguageModelLike } from \"@langchain/core/language_models/base\";\nimport { RunnableLambda, RunnableSequence } from \"@langchain/core/runnables\";\n\nimport {\n AgentNameMode,\n _addInlineAgentName,\n _removeInlineAgentName,\n} from \"./utils.js\";\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
|
|
1
|
+
{"version":3,"file":"withAgentName.cjs","names":["model: LanguageModelLike","agentNameMode: AgentNameMode","processInputMessage: (message: BaseMessageLike) => BaseMessageLike","processOutputMessage: (message: BaseMessage) => BaseMessage","_addInlineAgentName","_removeInlineAgentName","messages: BaseMessageLike[]","RunnableSequence","RunnableLambda"],"sources":["../../src/agents/withAgentName.ts"],"sourcesContent":["import { BaseMessage, BaseMessageLike } from \"@langchain/core/messages\";\nimport { LanguageModelLike } from \"@langchain/core/language_models/base\";\nimport { RunnableLambda, RunnableSequence } from \"@langchain/core/runnables\";\n\nimport {\n AgentNameMode,\n _addInlineAgentName,\n _removeInlineAgentName,\n} from \"./utils.js\";\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 createAgent, 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":";;;;;;;;;;;;;;;;;;;AAwBA,SAAgB,cACdA,OACAC,eACmB;CACnB,IAAIC;CACJ,IAAIC;AAEJ,KAAI,kBAAkB,UAAU;EAC9B,sBAAsBC;EACtB,uBAAuBC;CACxB,MACC,OAAM,IAAI,MACR,CAAC,yBAAyB,EAAE,cAAc,8BAA8B,CAAC;CAI7E,SAAS,qBACPC,UACmB;AACnB,SAAO,SAAS,IAAI,oBAAoB;CACzC;AAED,QAAOC,4CAAiB,KAAK;EAC3BC,0CAAe,KAAK,qBAAqB;EACzC;EACAA,0CAAe,KAAK,qBAAqB;CAC1C,EAAC;AACH"}
|
|
@@ -8,7 +8,7 @@ import { RunnableLambda, RunnableSequence } from "@langchain/core/runnables";
|
|
|
8
8
|
* This is useful for making a message history with multiple agents more coherent.
|
|
9
9
|
*
|
|
10
10
|
* NOTE: agent name is consumed from the message.name field.
|
|
11
|
-
* If you're using an agent built with
|
|
11
|
+
* If you're using an agent built with createAgent, name is automatically set.
|
|
12
12
|
* If you're building a custom agent, make sure to set the name on the AI message returned by the LLM.
|
|
13
13
|
*
|
|
14
14
|
* @param model - Language model to add agent name formatting to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withAgentName.js","names":["model: LanguageModelLike","agentNameMode: AgentNameMode","processInputMessage: (message: BaseMessageLike) => BaseMessageLike","processOutputMessage: (message: BaseMessage) => BaseMessage","messages: BaseMessageLike[]"],"sources":["../../src/agents/withAgentName.ts"],"sourcesContent":["import { BaseMessage, BaseMessageLike } from \"@langchain/core/messages\";\nimport { LanguageModelLike } from \"@langchain/core/language_models/base\";\nimport { RunnableLambda, RunnableSequence } from \"@langchain/core/runnables\";\n\nimport {\n AgentNameMode,\n _addInlineAgentName,\n _removeInlineAgentName,\n} from \"./utils.js\";\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
|
|
1
|
+
{"version":3,"file":"withAgentName.js","names":["model: LanguageModelLike","agentNameMode: AgentNameMode","processInputMessage: (message: BaseMessageLike) => BaseMessageLike","processOutputMessage: (message: BaseMessage) => BaseMessage","messages: BaseMessageLike[]"],"sources":["../../src/agents/withAgentName.ts"],"sourcesContent":["import { BaseMessage, BaseMessageLike } from \"@langchain/core/messages\";\nimport { LanguageModelLike } from \"@langchain/core/language_models/base\";\nimport { RunnableLambda, RunnableSequence } from \"@langchain/core/runnables\";\n\nimport {\n AgentNameMode,\n _addInlineAgentName,\n _removeInlineAgentName,\n} from \"./utils.js\";\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 createAgent, 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":";;;;;;;;;;;;;;;;;;AAwBA,SAAgB,cACdA,OACAC,eACmB;CACnB,IAAIC;CACJ,IAAIC;AAEJ,KAAI,kBAAkB,UAAU;EAC9B,sBAAsB;EACtB,uBAAuB;CACxB,MACC,OAAM,IAAI,MACR,CAAC,yBAAyB,EAAE,cAAc,8BAA8B,CAAC;CAI7E,SAAS,qBACPC,UACmB;AACnB,SAAO,SAAS,IAAI,oBAAoB;CACzC;AAED,QAAO,iBAAiB,KAAK;EAC3B,eAAe,KAAK,qBAAqB;EACzC;EACA,eAAe,KAAK,qBAAqB;CAC1C,EAAC;AACH"}
|
|
@@ -2,8 +2,8 @@ import { SerializedAPIChain } from "../serde.cjs";
|
|
|
2
2
|
import { BaseChain, ChainInputs } from "../base.cjs";
|
|
3
3
|
import { LLMChain } from "../llm_chain.cjs";
|
|
4
4
|
import { BaseLanguageModelInterface } from "@langchain/core/language_models/base";
|
|
5
|
-
import { BasePromptTemplate } from "@langchain/core/prompts";
|
|
6
5
|
import { ChainValues } from "@langchain/core/utils/types";
|
|
6
|
+
import { BasePromptTemplate } from "@langchain/core/prompts";
|
|
7
7
|
import { CallbackManagerForChainRun } from "@langchain/core/callbacks/manager";
|
|
8
8
|
|
|
9
9
|
//#region src/chains/api/api_chain.d.ts
|
package/dist/chains/base.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SerializedBaseChain } from "./serde.cjs";
|
|
2
2
|
import { BaseLangChain, BaseLangChainParams } from "@langchain/core/language_models/base";
|
|
3
|
-
import { RunnableConfig } from "@langchain/core/runnables";
|
|
4
3
|
import { ChainValues } from "@langchain/core/utils/types";
|
|
4
|
+
import { RunnableConfig } from "@langchain/core/runnables";
|
|
5
5
|
import { CallbackManager, CallbackManagerForChainRun, Callbacks } from "@langchain/core/callbacks/manager";
|
|
6
6
|
import { BaseMemory } from "@langchain/core/memory";
|
|
7
7
|
|
|
@@ -2,9 +2,9 @@ import { SerializedMapReduceDocumentsChain, SerializedRefineDocumentsChain, Seri
|
|
|
2
2
|
import { BaseChain, ChainInputs } from "./base.cjs";
|
|
3
3
|
import { LLMChain } from "./llm_chain.cjs";
|
|
4
4
|
import { BasePromptValueInterface } from "../langchain-core/dist/prompt_values.cjs";
|
|
5
|
+
import { ChainValues } from "@langchain/core/utils/types";
|
|
5
6
|
import { BasePromptTemplate } from "@langchain/core/prompts";
|
|
6
7
|
import { Document } from "@langchain/core/documents";
|
|
7
|
-
import { ChainValues } from "@langchain/core/utils/types";
|
|
8
8
|
import { CallbackManagerForChainRun } from "@langchain/core/callbacks/manager";
|
|
9
9
|
|
|
10
10
|
//#region src/chains/combine_docs_chain.d.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LanguageModelLike } from "@langchain/core/language_models/base";
|
|
2
|
+
import { RunnableSequence } from "@langchain/core/runnables";
|
|
2
3
|
import { BaseOutputParser } from "@langchain/core/output_parsers";
|
|
3
4
|
import { BasePromptTemplate } from "@langchain/core/prompts";
|
|
4
|
-
import { RunnableSequence } from "@langchain/core/runnables";
|
|
5
5
|
|
|
6
6
|
//#region src/chains/combine_documents/stuff.d.ts
|
|
7
7
|
|
|
@@ -4,8 +4,8 @@ import { LLMChain } from "./llm_chain.cjs";
|
|
|
4
4
|
import { QAChainParams } from "./question_answering/load.cjs";
|
|
5
5
|
import { BaseLanguageModelInterface } from "@langchain/core/language_models/base";
|
|
6
6
|
import { ChainValues } from "@langchain/core/utils/types";
|
|
7
|
-
import { CallbackManagerForChainRun } from "@langchain/core/callbacks/manager";
|
|
8
7
|
import { BaseMessage } from "@langchain/core/messages";
|
|
8
|
+
import { CallbackManagerForChainRun } from "@langchain/core/callbacks/manager";
|
|
9
9
|
import { BaseRetrieverInterface } from "@langchain/core/retrievers";
|
|
10
10
|
|
|
11
11
|
//#region src/chains/conversational_retrieval_chain.d.ts
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseChain, ChainInputs } from "../base.cjs";
|
|
2
2
|
import { LLMChain } from "../llm_chain.cjs";
|
|
3
3
|
import { BaseLanguageModelInterface } from "@langchain/core/language_models/base";
|
|
4
|
-
import { BasePromptTemplate } from "@langchain/core/prompts";
|
|
5
4
|
import { ChainValues } from "@langchain/core/utils/types";
|
|
5
|
+
import { BasePromptTemplate } from "@langchain/core/prompts";
|
|
6
6
|
import { CallbackManagerForChainRun } from "@langchain/core/callbacks/manager";
|
|
7
7
|
|
|
8
8
|
//#region src/chains/graph_qa/cypher.d.ts
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { LanguageModelLike } from "@langchain/core/language_models/base";
|
|
2
|
-
import {
|
|
2
|
+
import { BaseMessage } from "@langchain/core/messages";
|
|
3
3
|
import { Runnable, RunnableInterface } from "@langchain/core/runnables";
|
|
4
|
+
import { BasePromptTemplate } from "@langchain/core/prompts";
|
|
4
5
|
import { DocumentInterface } from "@langchain/core/documents";
|
|
5
|
-
import { BaseMessage } from "@langchain/core/messages";
|
|
6
6
|
|
|
7
7
|
//#region src/chains/history_aware_retriever.d.ts
|
|
8
8
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { SerializedLLMChain } from "./serde.cjs";
|
|
2
2
|
import { BaseChain, ChainInputs } from "./base.cjs";
|
|
3
3
|
import { BaseLanguageModelInput, BaseLanguageModelInterface } from "@langchain/core/language_models/base";
|
|
4
|
+
import { ChainValues } from "@langchain/core/utils/types";
|
|
5
|
+
import { BaseMessage } from "@langchain/core/messages";
|
|
6
|
+
import { Runnable } from "@langchain/core/runnables";
|
|
4
7
|
import { BaseLLMOutputParser } from "@langchain/core/output_parsers";
|
|
5
8
|
import { BasePromptTemplate } from "@langchain/core/prompts";
|
|
6
|
-
import { Runnable } from "@langchain/core/runnables";
|
|
7
|
-
import { ChainValues } from "@langchain/core/utils/types";
|
|
8
9
|
import { BaseCallbackConfig, CallbackManager, CallbackManagerForChainRun, Callbacks } from "@langchain/core/callbacks/manager";
|
|
9
10
|
import { Generation } from "@langchain/core/outputs";
|
|
10
|
-
import { BaseMessage } from "@langchain/core/messages";
|
|
11
11
|
import { BasePromptValueInterface } from "@langchain/core/prompt_values";
|
|
12
12
|
|
|
13
13
|
//#region src/chains/llm_chain.d.ts
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { BaseFunctionCallOptions, BaseLanguageModelInput, FunctionDefinition } from "@langchain/core/language_models/base";
|
|
2
|
-
import { BaseOutputParser } from "@langchain/core/output_parsers";
|
|
3
|
-
import { BasePromptTemplate } from "@langchain/core/prompts";
|
|
4
|
-
import { Runnable, RunnableInterface } from "@langchain/core/runnables";
|
|
5
2
|
import { InputValues, InteropZodObject } from "@langchain/core/utils/types";
|
|
6
3
|
import { BaseMessage } from "@langchain/core/messages";
|
|
4
|
+
import { Runnable, RunnableInterface } from "@langchain/core/runnables";
|
|
5
|
+
import { BaseOutputParser } from "@langchain/core/output_parsers";
|
|
6
|
+
import { BasePromptTemplate } from "@langchain/core/prompts";
|
|
7
7
|
import { JsonSchema7Type } from "@langchain/core/utils/json_schema";
|
|
8
8
|
|
|
9
9
|
//#region src/chains/openai_functions/base.d.ts
|
|
@@ -3,9 +3,9 @@ import { LLMChainInput } from "../llm_chain.cjs";
|
|
|
3
3
|
import { SequentialChain } from "../sequential_chain.cjs";
|
|
4
4
|
import { OpenAPISpec } from "../../util/openapi.cjs";
|
|
5
5
|
import { BaseFunctionCallOptions } from "@langchain/core/language_models/base";
|
|
6
|
+
import { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
6
7
|
import { BasePromptTemplate } from "@langchain/core/prompts";
|
|
7
8
|
import { OpenAIClient } from "@langchain/openai";
|
|
8
|
-
import { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
9
9
|
import { JsonSchema7Type } from "@langchain/core/utils/json_schema";
|
|
10
10
|
import { OpenAPIV3_1 } from "openapi-types";
|
|
11
11
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { LLMChain, LLMChainInput } from "../llm_chain.cjs";
|
|
2
2
|
import { BaseFunctionCallOptions } from "@langchain/core/language_models/base";
|
|
3
|
+
import { InferInteropZodOutput, InteropZodObject } from "@langchain/core/utils/types";
|
|
4
|
+
import { AIMessageChunk } from "@langchain/core/messages";
|
|
5
|
+
import { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
3
6
|
import { BaseLLMOutputParser } from "@langchain/core/output_parsers";
|
|
4
7
|
import { BasePromptTemplate } from "@langchain/core/prompts";
|
|
5
|
-
import { InferInteropZodOutput, InteropZodObject } from "@langchain/core/utils/types";
|
|
6
8
|
import { ChatGeneration } from "@langchain/core/outputs";
|
|
7
|
-
import { AIMessageChunk } from "@langchain/core/messages";
|
|
8
9
|
import { ChatOpenAI } from "@langchain/openai";
|
|
9
|
-
import { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
10
10
|
import { JsonSchema7Type } from "@langchain/core/utils/json_schema";
|
|
11
11
|
|
|
12
12
|
//#region src/chains/openai_functions/structured_output.d.ts
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { LLMChain, LLMChainInput } from "../llm_chain.cjs";
|
|
2
2
|
import { FunctionParameters } from "../../output_parsers/openai_functions.cjs";
|
|
3
3
|
import { BaseFunctionCallOptions } from "@langchain/core/language_models/base";
|
|
4
|
-
import { PromptTemplate } from "@langchain/core/prompts";
|
|
5
4
|
import { InteropZodObject } from "@langchain/core/utils/types";
|
|
6
5
|
import { AIMessageChunk } from "@langchain/core/messages";
|
|
7
6
|
import { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
7
|
+
import { PromptTemplate } from "@langchain/core/prompts";
|
|
8
8
|
|
|
9
9
|
//#region src/chains/openai_functions/tagging.d.ts
|
|
10
10
|
|
|
@@ -2,8 +2,8 @@ const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
|
2
2
|
const require_structured = require('../../output_parsers/structured.cjs');
|
|
3
3
|
const require_parser = require('./parser.cjs');
|
|
4
4
|
const require_prompt = require('./prompt.cjs');
|
|
5
|
-
const __langchain_core_prompts = require_rolldown_runtime.__toESM(require("@langchain/core/prompts"));
|
|
6
5
|
const zod = require_rolldown_runtime.__toESM(require("zod"));
|
|
6
|
+
const __langchain_core_prompts = require_rolldown_runtime.__toESM(require("@langchain/core/prompts"));
|
|
7
7
|
const __langchain_core_structured_query = require_rolldown_runtime.__toESM(require("@langchain/core/structured_query"));
|
|
8
8
|
|
|
9
9
|
//#region src/chains/query_constructor/index.ts
|
|
@@ -2,9 +2,9 @@ import { QueryTransformer, TraverseType } from "./parser.cjs";
|
|
|
2
2
|
import { DEFAULT_EXAMPLES, DEFAULT_PREFIX, DEFAULT_SCHEMA, DEFAULT_SUFFIX, EXAMPLE_PROMPT } from "./prompt.cjs";
|
|
3
3
|
import { AsymmetricStructuredOutputParser } from "../../output_parsers/structured.cjs";
|
|
4
4
|
import { BaseLanguageModelInterface } from "@langchain/core/language_models/base";
|
|
5
|
-
import { Runnable, RunnableConfig } from "@langchain/core/runnables";
|
|
6
|
-
import { InferInteropZodOutput, InputValues } from "@langchain/core/utils/types";
|
|
7
5
|
import { z } from "zod";
|
|
6
|
+
import { InferInteropZodOutput, InputValues } from "@langchain/core/utils/types";
|
|
7
|
+
import { Runnable, RunnableConfig } from "@langchain/core/runnables";
|
|
8
8
|
import { Comparator, Operator, StructuredQuery } from "@langchain/core/structured_query";
|
|
9
9
|
|
|
10
10
|
//#region src/chains/query_constructor/index.d.ts
|
|
@@ -3,8 +3,8 @@ import { DEFAULT_EXAMPLES, DEFAULT_PREFIX, DEFAULT_SCHEMA, DEFAULT_SUFFIX, EXAMP
|
|
|
3
3
|
import { AsymmetricStructuredOutputParser } from "../../output_parsers/structured.js";
|
|
4
4
|
import { Runnable, RunnableConfig } from "@langchain/core/runnables";
|
|
5
5
|
import { InferInteropZodOutput, InputValues } from "@langchain/core/utils/types";
|
|
6
|
-
import { BaseLanguageModelInterface } from "@langchain/core/language_models/base";
|
|
7
6
|
import { z } from "zod";
|
|
7
|
+
import { BaseLanguageModelInterface } from "@langchain/core/language_models/base";
|
|
8
8
|
import { Comparator, Operator, StructuredQuery } from "@langchain/core/structured_query";
|
|
9
9
|
|
|
10
10
|
//#region src/chains/query_constructor/index.d.ts
|
|
@@ -2,8 +2,8 @@ import { __export } from "../../_virtual/rolldown_runtime.js";
|
|
|
2
2
|
import { AsymmetricStructuredOutputParser } from "../../output_parsers/structured.js";
|
|
3
3
|
import { QueryTransformer } from "./parser.js";
|
|
4
4
|
import { DEFAULT_EXAMPLES, DEFAULT_PREFIX, DEFAULT_SCHEMA, DEFAULT_SUFFIX, EXAMPLE_PROMPT } from "./prompt.js";
|
|
5
|
-
import { FewShotPromptTemplate, interpolateFString } from "@langchain/core/prompts";
|
|
6
5
|
import { z } from "zod";
|
|
6
|
+
import { FewShotPromptTemplate, interpolateFString } from "@langchain/core/prompts";
|
|
7
7
|
import { Comparators, Operators, StructuredQuery } from "@langchain/core/structured_query";
|
|
8
8
|
|
|
9
9
|
//#region src/chains/query_constructor/index.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MapReduceDocumentsChain, MapReduceDocumentsChainInput, RefineDocumentsChain, StuffDocumentsChain } from "../combine_docs_chain.js";
|
|
2
2
|
import { BasePromptTemplate } from "@langchain/core/prompts";
|
|
3
|
-
import * as
|
|
3
|
+
import * as _langchain_core_language_models_base7 from "@langchain/core/language_models/base";
|
|
4
4
|
import { BaseLanguageModelInterface } from "@langchain/core/language_models/base";
|
|
5
5
|
|
|
6
6
|
//#region src/chains/question_answering/load.d.ts
|
|
@@ -16,7 +16,7 @@ type QAChainParams = ({
|
|
|
16
16
|
} & MapReduceQAChainParams) | ({
|
|
17
17
|
type?: "refine";
|
|
18
18
|
} & RefineQAChainParams);
|
|
19
|
-
declare const loadQAChain: (llm: BaseLanguageModelInterface<any,
|
|
19
|
+
declare const loadQAChain: (llm: BaseLanguageModelInterface<any, _langchain_core_language_models_base7.BaseLanguageModelCallOptions>, params?: QAChainParams) => MapReduceDocumentsChain | RefineDocumentsChain | StuffDocumentsChain;
|
|
20
20
|
/**
|
|
21
21
|
* Represents the parameters for creating a StuffQAChain.
|
|
22
22
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.d.ts","names":["BaseLanguageModelInterface","BasePromptTemplate","StuffDocumentsChain","MapReduceDocumentsChain","RefineDocumentsChain","MapReduceDocumentsChainInput","QAChainParams","StuffQAChainParams","MapReduceQAChainParams","RefineQAChainParams","loadQAChain","
|
|
1
|
+
{"version":3,"file":"load.d.ts","names":["BaseLanguageModelInterface","BasePromptTemplate","StuffDocumentsChain","MapReduceDocumentsChain","RefineDocumentsChain","MapReduceDocumentsChainInput","QAChainParams","StuffQAChainParams","MapReduceQAChainParams","RefineQAChainParams","loadQAChain","_langchain_core_language_models_base7","BaseLanguageModelCallOptions","loadQAStuffChain","loadQAMapReduceChain","loadQARefineChain"],"sources":["../../../src/chains/question_answering/load.d.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { StuffDocumentsChain, MapReduceDocumentsChain, RefineDocumentsChain, MapReduceDocumentsChainInput } from \"../combine_docs_chain.js\";\n/**\n * Represents the parameters for creating a QAChain. It can be of three\n * types: \"stuff\", \"map_reduce\", or \"refine\".\n */\nexport type QAChainParams = ({\n type?: \"stuff\";\n} & StuffQAChainParams) | ({\n type?: \"map_reduce\";\n} & MapReduceQAChainParams) | ({\n type?: \"refine\";\n} & RefineQAChainParams);\nexport declare const loadQAChain: (llm: BaseLanguageModelInterface<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>, params?: QAChainParams) => MapReduceDocumentsChain | RefineDocumentsChain | StuffDocumentsChain;\n/**\n * Represents the parameters for creating a StuffQAChain.\n */\nexport interface StuffQAChainParams {\n prompt?: BasePromptTemplate;\n verbose?: boolean;\n}\n/**\n * Loads a StuffQAChain based on the provided parameters. It takes an LLM\n * instance and StuffQAChainParams as parameters.\n * @param llm An instance of BaseLanguageModel.\n * @param params Parameters for creating a StuffQAChain.\n * @returns A StuffQAChain instance.\n */\nexport declare function loadQAStuffChain(llm: BaseLanguageModelInterface, params?: StuffQAChainParams): StuffDocumentsChain;\n/**\n * Represents the parameters for creating a MapReduceQAChain.\n */\nexport interface MapReduceQAChainParams {\n returnIntermediateSteps?: MapReduceDocumentsChainInput[\"returnIntermediateSteps\"];\n combineMapPrompt?: BasePromptTemplate;\n combinePrompt?: BasePromptTemplate;\n combineLLM?: BaseLanguageModelInterface;\n verbose?: boolean;\n}\n/**\n * Loads a MapReduceQAChain based on the provided parameters. It takes an\n * LLM instance and MapReduceQAChainParams as parameters.\n * @param llm An instance of BaseLanguageModel.\n * @param params Parameters for creating a MapReduceQAChain.\n * @returns A MapReduceQAChain instance.\n */\nexport declare function loadQAMapReduceChain(llm: BaseLanguageModelInterface, params?: MapReduceQAChainParams): MapReduceDocumentsChain;\n/**\n * Represents the parameters for creating a RefineQAChain.\n */\nexport interface RefineQAChainParams {\n questionPrompt?: BasePromptTemplate;\n refinePrompt?: BasePromptTemplate;\n refineLLM?: BaseLanguageModelInterface;\n verbose?: boolean;\n}\n/**\n * Loads a RefineQAChain based on the provided parameters. It takes an LLM\n * instance and RefineQAChainParams as parameters.\n * @param llm An instance of BaseLanguageModel.\n * @param params Parameters for creating a RefineQAChain.\n * @returns A RefineQAChain instance.\n */\nexport declare function loadQARefineChain(llm: BaseLanguageModelInterface, params?: RefineQAChainParams): RefineDocumentsChain;\n"],"mappings":";;;;;;;;;;AAOA;AAAyB,KAAbM,aAAAA,GAAa,CAAA;EAAA,IAErBC,CAAAA,EAAAA,OAAAA;CAAkB,GAAlBA,kBAEAC,CAAAA,GAAAA,CAAAA;EAAsB,IAEtBC,CAAAA,EAAAA,YAAAA;AAAmB,CAAA,GAFnBD,sBAEmB,CAAA,GAAA,CAAA;EACFE,IAAAA,CAAAA,EAAAA,QAAgO;CAAA,GADjPD,mBACiP,CAAA;AAAAE,cAAhOD,WAAgOC,EAAAA,CAAAA,GAAAA,EAA7MX,0BAA+EY,CAAAA,GAAAA,EAA8HD,qCAAAA,CAA9HC,4BAAAA,CAAAA,EAAAA,MAAAA,CAAAA,EAAwCN,aAAxCM,EAAAA,GAA0DT,uBAA1DS,GAAoFR,oBAApFQ,GAA2GV,mBAA3GU;;;;AAAoFR,UAI1LG,kBAAAA,CAJ0LH;EAAoB,MAAGF,CAAAA,EAKrND,kBALqNC;EAAmB,OAAA,CAAA,EAAA,OAAA;AAIrP;AAWA;;;;;AAA2H;AAI3H;AAAuC,iBAJfW,gBAAAA,CAIe,GAAA,EAJOb,0BAIP,EAAA,MAAA,CAAA,EAJ4CO,kBAI5C,CAAA,EAJiEL,mBAIjE;;;;AAItBF,UAJAQ,sBAAAA,CAIAR;EAA0B,uBAAA,CAAA,EAHbK,4BAGa,CAAA,yBAAA,CAAA;EAUnBS,gBAAAA,CAAAA,EAZDb,kBAYqB;EAAA,aAAA,CAAA,EAXxBA,kBAWwB;EAAA,UAAMD,CAAAA,EAVjCA,0BAUiCA;EAA0B,OAAWQ,CAAAA,EAAAA,OAAAA;;AAAgD;AAIvI;;;;;AAG0C;AAUlBO,iBAjBAD,oBAAAA,CAiBiB,GAAA,EAjBSd,0BAiBT,EAAA,MAAA,CAAA,EAjB8CQ,sBAiB9C,CAAA,EAjBuEL,uBAiBvE;;;;AAAiEC,UAbzFK,mBAAAA,CAayFL;EAAoB,cAAA,CAAA,EAZzGH,kBAYyG;iBAX3GA;cACHD;;;;;;;;;;iBAUQe,iBAAAA,MAAuBf,qCAAqCS,sBAAsBL"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { BaseMessage } from "@langchain/core/messages";
|
|
1
2
|
import { Runnable, RunnableInterface } from "@langchain/core/runnables";
|
|
2
3
|
import { Document, DocumentInterface } from "@langchain/core/documents";
|
|
3
|
-
import { BaseMessage } from "@langchain/core/messages";
|
|
4
4
|
import { BaseRetrieverInterface } from "@langchain/core/retrievers";
|
|
5
5
|
|
|
6
6
|
//#region src/chains/retrieval.d.ts
|
|
@@ -2,8 +2,8 @@ import { ChainInputs } from "../base.cjs";
|
|
|
2
2
|
import { LLMChain } from "../llm_chain.cjs";
|
|
3
3
|
import { RouterChain } from "./multi_route.cjs";
|
|
4
4
|
import { BaseLanguageModelInterface } from "@langchain/core/language_models/base";
|
|
5
|
-
import { BasePromptTemplate } from "@langchain/core/prompts";
|
|
6
5
|
import { ChainValues } from "@langchain/core/utils/types";
|
|
6
|
+
import { BasePromptTemplate } from "@langchain/core/prompts";
|
|
7
7
|
import { CallbackManagerForChainRun } from "@langchain/core/callbacks/manager";
|
|
8
8
|
|
|
9
9
|
//#region src/chains/router/llm_router.d.ts
|
|
@@ -6,8 +6,8 @@ const require_llm_router = require('./llm_router.cjs');
|
|
|
6
6
|
const require_multi_prompt_prompt = require('./multi_prompt_prompt.cjs');
|
|
7
7
|
const require_utils = require('./utils.cjs');
|
|
8
8
|
const require_router = require('../../output_parsers/router.cjs');
|
|
9
|
-
const __langchain_core_prompts = require_rolldown_runtime.__toESM(require("@langchain/core/prompts"));
|
|
10
9
|
const zod = require_rolldown_runtime.__toESM(require("zod"));
|
|
10
|
+
const __langchain_core_prompts = require_rolldown_runtime.__toESM(require("@langchain/core/prompts"));
|
|
11
11
|
|
|
12
12
|
//#region src/chains/router/multi_prompt.ts
|
|
13
13
|
/**
|
|
@@ -5,8 +5,8 @@ import { LLMRouterChain } from "./llm_router.js";
|
|
|
5
5
|
import { STRUCTURED_MULTI_PROMPT_ROUTER_TEMPLATE } from "./multi_prompt_prompt.js";
|
|
6
6
|
import { zipEntries } from "./utils.js";
|
|
7
7
|
import { RouterOutputParser } from "../../output_parsers/router.js";
|
|
8
|
-
import { PromptTemplate, interpolateFString } from "@langchain/core/prompts";
|
|
9
8
|
import { z } from "zod";
|
|
9
|
+
import { PromptTemplate, interpolateFString } from "@langchain/core/prompts";
|
|
10
10
|
|
|
11
11
|
//#region src/chains/router/multi_prompt.ts
|
|
12
12
|
/**
|
|
@@ -6,8 +6,8 @@ const require_llm_router = require('./llm_router.cjs');
|
|
|
6
6
|
const require_utils = require('./utils.cjs');
|
|
7
7
|
const require_router = require('../../output_parsers/router.cjs');
|
|
8
8
|
const require_multi_retrieval_prompt = require('./multi_retrieval_prompt.cjs');
|
|
9
|
-
const __langchain_core_prompts = require_rolldown_runtime.__toESM(require("@langchain/core/prompts"));
|
|
10
9
|
const zod = require_rolldown_runtime.__toESM(require("zod"));
|
|
10
|
+
const __langchain_core_prompts = require_rolldown_runtime.__toESM(require("@langchain/core/prompts"));
|
|
11
11
|
|
|
12
12
|
//#region src/chains/router/multi_retrieval_qa.ts
|
|
13
13
|
/**
|
|
@@ -5,8 +5,8 @@ import { LLMRouterChain } from "./llm_router.js";
|
|
|
5
5
|
import { zipEntries } from "./utils.js";
|
|
6
6
|
import { RouterOutputParser } from "../../output_parsers/router.js";
|
|
7
7
|
import { STRUCTURED_MULTI_RETRIEVAL_ROUTER_TEMPLATE } from "./multi_retrieval_prompt.js";
|
|
8
|
-
import { PromptTemplate, interpolateFString } from "@langchain/core/prompts";
|
|
9
8
|
import { z } from "zod";
|
|
9
|
+
import { PromptTemplate, interpolateFString } from "@langchain/core/prompts";
|
|
10
10
|
|
|
11
11
|
//#region src/chains/router/multi_retrieval_qa.ts
|
|
12
12
|
/**
|
|
@@ -2,9 +2,9 @@ import { BaseChain, ChainInputs } from "../base.cjs";
|
|
|
2
2
|
import { SqlDialect } from "./sql_db_prompt.cjs";
|
|
3
3
|
import { SqlDatabase } from "../../sql_db.cjs";
|
|
4
4
|
import { BaseLanguageModel, BaseLanguageModelInterface } from "@langchain/core/language_models/base";
|
|
5
|
-
import { BasePromptTemplate, PromptTemplate } from "@langchain/core/prompts";
|
|
6
|
-
import { RunnableSequence } from "@langchain/core/runnables";
|
|
7
5
|
import { ChainValues } from "@langchain/core/utils/types";
|
|
6
|
+
import { RunnableSequence } from "@langchain/core/runnables";
|
|
7
|
+
import { BasePromptTemplate, PromptTemplate } from "@langchain/core/prompts";
|
|
8
8
|
import { CallbackManagerForChainRun } from "@langchain/core/callbacks/manager";
|
|
9
9
|
|
|
10
10
|
//#region src/chains/sql_db/sql_db_chain.d.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MapReduceDocumentsChain, MapReduceDocumentsChainInput, RefineDocumentsChain, StuffDocumentsChain } from "../combine_docs_chain.js";
|
|
2
2
|
import { BasePromptTemplate } from "@langchain/core/prompts";
|
|
3
|
-
import * as
|
|
3
|
+
import * as _langchain_core_language_models_base8 from "@langchain/core/language_models/base";
|
|
4
4
|
import { BaseLanguageModelInterface } from "@langchain/core/language_models/base";
|
|
5
5
|
|
|
6
6
|
//#region src/chains/summarization/load.d.ts
|
|
@@ -27,7 +27,7 @@ type SummarizationChainParams = BaseParams & ({
|
|
|
27
27
|
refineLLM?: BaseLanguageModelInterface;
|
|
28
28
|
questionPrompt?: BasePromptTemplate;
|
|
29
29
|
});
|
|
30
|
-
declare const loadSummarizationChain: (llm: BaseLanguageModelInterface<any,
|
|
30
|
+
declare const loadSummarizationChain: (llm: BaseLanguageModelInterface<any, _langchain_core_language_models_base8.BaseLanguageModelCallOptions>, params?: SummarizationChainParams) => MapReduceDocumentsChain | RefineDocumentsChain | StuffDocumentsChain;
|
|
31
31
|
//#endregion
|
|
32
32
|
export { SummarizationChainParams, loadSummarizationChain };
|
|
33
33
|
//# sourceMappingURL=load.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.d.ts","names":["BaseLanguageModelInterface","BasePromptTemplate","StuffDocumentsChain","MapReduceDocumentsChain","RefineDocumentsChain","MapReduceDocumentsChainInput","BaseParams","SummarizationChainParams","Pick","loadSummarizationChain","
|
|
1
|
+
{"version":3,"file":"load.d.ts","names":["BaseLanguageModelInterface","BasePromptTemplate","StuffDocumentsChain","MapReduceDocumentsChain","RefineDocumentsChain","MapReduceDocumentsChainInput","BaseParams","SummarizationChainParams","Pick","loadSummarizationChain","_langchain_core_language_models_base8","BaseLanguageModelCallOptions"],"sources":["../../../src/chains/summarization/load.d.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { StuffDocumentsChain, MapReduceDocumentsChain, RefineDocumentsChain, MapReduceDocumentsChainInput } from \"../combine_docs_chain.js\";\n/**\n * Type for the base parameters that can be used to configure a\n * summarization chain.\n */\ntype BaseParams = {\n verbose?: boolean;\n};\n/** @interface */\nexport type SummarizationChainParams = BaseParams & ({\n type?: \"stuff\";\n prompt?: BasePromptTemplate;\n} | ({\n type?: \"map_reduce\";\n combineMapPrompt?: BasePromptTemplate;\n combinePrompt?: BasePromptTemplate;\n combineLLM?: BaseLanguageModelInterface;\n} & Pick<MapReduceDocumentsChainInput, \"returnIntermediateSteps\">) | {\n type?: \"refine\";\n refinePrompt?: BasePromptTemplate;\n refineLLM?: BaseLanguageModelInterface;\n questionPrompt?: BasePromptTemplate;\n});\nexport declare const loadSummarizationChain: (llm: BaseLanguageModelInterface<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>, params?: SummarizationChainParams) => MapReduceDocumentsChain | RefineDocumentsChain | StuffDocumentsChain;\nexport {};\n"],"mappings":";;;;;;;;;;AAE4I;AAS5I,KAJKM,UAAAA,GAIOC;EAAwB,OAAA,CAAA,EAAA,OAAA;CAAA;;AAKbN,KALXM,wBAAAA,GAA2BD,UAKhBL,GAAAA,CAAAA;EAAkB,IACrBA,CAAAA,EAAAA,OAAAA;EAAkB,MACrBD,CAAAA,EALJC,kBAKID;CAA0B,GAAA,CAAA;EACN,IAAjCQ,CAAAA,EAAAA,YAAAA;EAAI,gBAEWP,CAAAA,EALIA,kBAKJA;EAAkB,aACrBD,CAAAA,EALIC,kBAKJD;EAA0B,UACrBC,CAAAA,EALJD,0BAKIC;AAAkB,CAAA,GAJnCO,IAImC,CAJ9BH,4BAI8B,EAAA,yBAAA,CAAA,CAAA,GAAA;EAElBI,IAAAA,CAAAA,EAAAA,QAAAA;EAAsP,YAAA,CAAA,EAJxPR,kBAIwP;EAAA,SAAAS,CAAAA,EAH3PV,0BAG2PU;EAA7G,cAA3GV,CAAAA,EAF9BC,kBAE8BD;CAA0B,CAAA;AAA0HG,cAAlLM,sBAAkLN,EAAAA,CAAAA,GAAAA,EAApJH,0BAAoJG,CAAAA,GAAAA,EAAoEO,qCAAAA,CAAzIC,4BAAAA,CAAqER,EAAAA,MAAAA,CAAAA,EAA7BI,wBAA6BJ,EAAAA,GAAAA,uBAAAA,GAA0BC,oBAA1BD,GAAiDD,mBAAjDC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { BaseLanguageModelInput, ToolDefinition } from "@langchain/core/language_models/base";
|
|
2
|
+
import { AIMessageChunk, BaseMessage } from "@langchain/core/messages";
|
|
2
3
|
import { RunnableBatchOptions, RunnableBinding, RunnableConfig, RunnableToolLike } from "@langchain/core/runnables";
|
|
4
|
+
import { StructuredToolInterface } from "@langchain/core/tools";
|
|
5
|
+
import { BaseChatModel, BaseChatModelCallOptions, BaseChatModelParams, BindToolsInput } from "@langchain/core/language_models/chat_models";
|
|
3
6
|
import { CallbackManagerForLLMRun } from "@langchain/core/callbacks/manager";
|
|
4
7
|
import { ChatResult } from "@langchain/core/outputs";
|
|
5
|
-
import { AIMessageChunk, BaseMessage } from "@langchain/core/messages";
|
|
6
|
-
import { BaseChatModel, BaseChatModelCallOptions, BaseChatModelParams, BindToolsInput } from "@langchain/core/language_models/chat_models";
|
|
7
8
|
import { IterableReadableStream } from "@langchain/core/utils/stream";
|
|
8
9
|
import { LogStreamCallbackHandlerInput, RunLogPatch, StreamEvent } from "@langchain/core/tracers/log_stream";
|
|
9
|
-
import { StructuredToolInterface } from "@langchain/core/tools";
|
|
10
10
|
|
|
11
11
|
//#region src/chat_models/universal.d.ts
|
|
12
12
|
// TODO: remove once `EventStreamCallbackHandlerInput` is exposed in core
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { BasePromptValueInterface } from "../../langchain-core/dist/prompt_values.cjs";
|
|
2
2
|
import { AgentTrajectoryEvaluator, EvalOutputType, ExtractLLMCallOptions, LLMEvalChainInput, LLMTrajectoryEvaluatorArgs } from "../base.cjs";
|
|
3
|
+
import { ChainValues } from "@langchain/core/utils/types";
|
|
4
|
+
import { StructuredToolInterface } from "@langchain/core/tools";
|
|
5
|
+
import { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
3
6
|
import { BaseLLMOutputParser } from "@langchain/core/output_parsers";
|
|
4
7
|
import { BasePromptTemplate } from "@langchain/core/prompts";
|
|
5
|
-
import { ChainValues } from "@langchain/core/utils/types";
|
|
6
8
|
import { BaseCallbackConfig, Callbacks } from "@langchain/core/callbacks/manager";
|
|
7
9
|
import { ChatGeneration, Generation } from "@langchain/core/outputs";
|
|
8
|
-
import { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
9
|
-
import { StructuredToolInterface } from "@langchain/core/tools";
|
|
10
10
|
import { AgentStep } from "@langchain/core/agents";
|
|
11
11
|
|
|
12
12
|
//#region src/evaluation/agents/trajectory.d.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trajectory.d.ts","names":["StructuredToolInterface","BaseLLMOutputParser","AgentStep","ChainValues","ChatGeneration","Generation","BasePromptTemplate","Callbacks","BaseCallbackConfig","BaseChatModel","AgentTrajectoryEvaluator","EvalOutputType","LLMEvalChainInput","LLMTrajectoryEvaluatorArgs","ExtractLLMCallOptions","TrajectoryOutputParser","Promise","TrajectoryEvalChain","
|
|
1
|
+
{"version":3,"file":"trajectory.d.ts","names":["StructuredToolInterface","BaseLLMOutputParser","AgentStep","ChainValues","ChatGeneration","Generation","BasePromptTemplate","Callbacks","BaseCallbackConfig","BaseChatModel","AgentTrajectoryEvaluator","EvalOutputType","LLMEvalChainInput","LLMTrajectoryEvaluatorArgs","ExtractLLMCallOptions","TrajectoryOutputParser","Promise","TrajectoryEvalChain","____________langchain_core_dist_prompt_values_js3","BasePromptValueInterface","Omit","Partial"],"sources":["../../../src/evaluation/agents/trajectory.d.ts"],"sourcesContent":["import type { StructuredToolInterface } from \"@langchain/core/tools\";\nimport { BaseLLMOutputParser } from \"@langchain/core/output_parsers\";\nimport { AgentStep } from \"@langchain/core/agents\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { ChatGeneration, Generation } from \"@langchain/core/outputs\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { Callbacks, BaseCallbackConfig } from \"@langchain/core/callbacks/manager\";\nimport { BaseChatModel } from \"@langchain/core/language_models/chat_models\";\nimport { AgentTrajectoryEvaluator, EvalOutputType, LLMEvalChainInput, LLMTrajectoryEvaluatorArgs, type ExtractLLMCallOptions } from \"../base.js\";\n/**\n * A parser for the output of the TrajectoryEvalChain.\n */\nexport declare class TrajectoryOutputParser extends BaseLLMOutputParser<EvalOutputType> {\n static lc_name(): string;\n lc_namespace: string[];\n parseResult(generations: Generation[] | ChatGeneration[], _callbacks: Callbacks | undefined): Promise<EvalOutputType>;\n}\n/**\n * A chain for evaluating ReAct style agents.\n *\n * This chain is used to evaluate ReAct style agents by reasoning about\n * the sequence of actions taken and their outcomes.\n */\nexport declare class TrajectoryEvalChain extends AgentTrajectoryEvaluator {\n static lc_name(): string;\n criterionName?: string;\n evaluationName?: string;\n requiresInput: boolean;\n requiresReference: boolean;\n outputParser: TrajectoryOutputParser;\n static resolveTrajectoryPrompt(prompt?: BasePromptTemplate | undefined, agentTools?: StructuredToolInterface[]): BasePromptTemplate<any, import(\"../../../../langchain-core/dist/prompt_values.js\").BasePromptValueInterface, any>;\n /**\n * Get the description of the agent tools.\n *\n * @returns The description of the agent tools.\n */\n static toolsDescription(agentTools: StructuredToolInterface[]): string;\n /**\n * Create a new TrajectoryEvalChain.\n * @param llm\n * @param agentTools - The tools used by the agent.\n * @param chainOptions - The options for the chain.\n */\n static fromLLM(llm: BaseChatModel, agentTools?: StructuredToolInterface[], chainOptions?: Partial<Omit<LLMEvalChainInput, \"llm\">>): Promise<TrajectoryEvalChain>;\n _prepareOutput(result: ChainValues): any;\n /**\n * Get the agent trajectory as a formatted string.\n *\n * @param steps - The agent trajectory.\n * @returns The formatted agent trajectory.\n */\n getAgentTrajectory(steps: AgentStep[]): string;\n formatReference(reference?: string): string;\n _evaluateAgentTrajectory(args: LLMTrajectoryEvaluatorArgs, callOptions: ExtractLLMCallOptions<this[\"llm\"]>, config?: Callbacks | BaseCallbackConfig): Promise<ChainValues>;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAYqBe,cAAAA,sBAAAA,SAA+Bd,mBAAT,CAA6BU,cAA7B,CAAA,CAAA;EAAA,OAAA,OAAA,CAAA,CAAA,EAAA,MAAA;EAAA,YAA6BA,EAAAA,MAAAA,EAAAA;EAAc,WAGzDN,CAAAA,WAAAA,EAAAA,UAAAA,EAAAA,GAAeD,cAAfC,EAAAA,EAAAA,UAAAA,EAA6CE,SAA7CF,GAAAA,SAAAA,CAAAA,EAAqEW,OAArEX,CAA6EM,cAA7EN,CAAAA;;;;;;AAH0C;AAWvE;AAAwC,cAAnBY,mBAAAA,SAA4BP,wBAAAA,CAAT;EAAA,OAMtBK,OAAAA,CAAAA,CAAAA,EAAAA,MAAAA;EAAsB,aACIT,CAAAA,EAAAA,MAAAA;EAAkB,cAA2BN,CAAAA,EAAAA,MAAAA;EAAuB,aAAA,EAAA,OAAA;EAAgH,iBAA3GM,EAAAA,OAAAA;EAAkB,YAM/FN,EAPtBe,sBAOsBf;EAAuB,OAOvCS,uBAAAA,CAAAA,MAAAA,CAAAA,EAboBH,kBAapBG,GAAAA,SAAAA,EAAAA,UAAAA,CAAAA,EAbiET,uBAajES,EAAAA,CAAAA,EAb6FH,kBAa7FG,CAAAA,GAAAA,EAbwF,wBAAA,EAaxFA,GAAAA,CAAAA;EAAa;;;;;EAA8H,OAA3BO,gBAAAA,CAAAA,UAAAA,EAPhGhB,uBAOgGgB,EAAAA,CAAAA,EAAAA,MAAAA;EAAO;;;;;;EAUQ,OAAWb,OAAAA,CAAAA,GAAAA,EAV1IM,aAU0IN,EAAAA,UAAAA,CAAAA,EAV9GH,uBAU8GG,EAAAA,EAAAA,YAAAA,CAAAA,EAVpEkB,OAUoElB,CAV5DiB,IAU4DjB,CAVvDS,iBAUuDT,EAAAA,KAAAA,CAAAA,CAAAA,CAAAA,EAV1Ba,OAU0Bb,CAVlBc,mBAUkBd,CAAAA;EAAW,cAAnBa,CAAAA,MAAAA,EAT/Hb,WAS+Ha,CAAAA,EAAAA,GAAAA;EAAO;AA9BxF;;;;;4BA4B3Cd;;iCAEKW,yCAAyCC,6CAA6CP,YAAYC,qBAAqBQ,QAAQb"}
|