langchain 1.2.13 → 1.2.14
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 +7 -0
- package/dist/agents/middleware/contextEditing.d.cts +2 -2
- package/dist/agents/middleware/contextEditing.d.cts.map +1 -1
- package/dist/agents/middleware/contextEditing.d.ts +2 -2
- package/dist/agents/middleware/contextEditing.d.ts.map +1 -1
- package/dist/agents/middleware/dynamicSystemPrompt.d.cts +2 -2
- package/dist/agents/middleware/dynamicSystemPrompt.d.cts.map +1 -1
- package/dist/agents/middleware/hitl.d.cts +2 -2
- package/dist/agents/middleware/hitl.d.cts.map +1 -1
- package/dist/agents/middleware/llmToolSelector.d.cts +4 -4
- package/dist/agents/middleware/llmToolSelector.d.cts.map +1 -1
- package/dist/agents/middleware/modelCallLimit.d.cts +2 -2
- package/dist/agents/middleware/modelCallLimit.d.cts.map +1 -1
- package/dist/agents/middleware/provider/anthropic/promptCaching.d.cts +2 -2
- package/dist/agents/middleware/provider/anthropic/promptCaching.d.cts.map +1 -1
- package/dist/agents/middleware/summarization.d.cts +18 -18
- package/dist/agents/middleware/summarization.d.cts.map +1 -1
- package/dist/agents/middleware/todoListMiddleware.d.cts +4 -4
- package/dist/agents/middleware/todoListMiddleware.d.cts.map +1 -1
- package/dist/agents/middleware/todoListMiddleware.d.ts +2 -2
- package/dist/agents/middleware/todoListMiddleware.d.ts.map +1 -1
- package/dist/agents/middleware/toolCallLimit.d.cts +2 -2
- package/dist/agents/middleware/toolCallLimit.d.cts.map +1 -1
- package/dist/agents/middleware/toolCallLimit.d.ts +2 -2
- package/dist/agents/middleware/toolCallLimit.d.ts.map +1 -1
- package/dist/agents/middleware/utils.d.cts.map +1 -1
- package/dist/agents/nodes/AgentNode.cjs +1 -1
- package/dist/agents/nodes/AgentNode.cjs.map +1 -1
- package/dist/agents/nodes/AgentNode.js +3 -3
- package/dist/agents/nodes/AgentNode.js.map +1 -1
- package/dist/agents/nodes/utils.cjs +22 -0
- package/dist/agents/nodes/utils.cjs.map +1 -1
- package/dist/agents/nodes/utils.js +23 -2
- package/dist/agents/nodes/utils.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promptCaching.d.cts","names":["______types_js0","z","InferInteropZodInput","contextSchema","ZodBoolean","ZodOptional","ZodEnum","ZodNumber","ZodTypeAny","ZodObject","PromptCachingMiddlewareConfig","Partial","anthropicPromptCachingMiddleware","_langchain_core_tools12","ServerTool","ClientTool","AgentMiddleware"],"sources":["../../../../../src/agents/middleware/provider/anthropic/promptCaching.d.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport { InferInteropZodInput } from \"@langchain/core/utils/types\";\ndeclare const contextSchema: z.ZodObject<{\n /**\n * Whether to enable prompt caching.\n * @default true\n */\n enableCaching: z.ZodOptional<z.ZodBoolean>;\n /**\n * The time-to-live for the cached prompt.\n * @default \"5m\"\n */\n ttl: z.ZodOptional<z.ZodEnum<[\"5m\", \"1h\"]>>;\n /**\n * The minimum number of messages required before caching is applied.\n * @default 3\n */\n minMessagesToCache: z.ZodOptional<z.ZodNumber>;\n /**\n * The behavior to take when an unsupported model is used.\n * - \"ignore\" will ignore the unsupported model and continue without caching.\n * - \"warn\" will warn the user and continue without caching.\n * - \"raise\" will raise an error and stop the agent.\n * @default \"warn\"\n */\n unsupportedModelBehavior: z.ZodOptional<z.ZodEnum<[\"ignore\", \"warn\", \"raise\"]>>;\n}, \"strip\", z.ZodTypeAny, {\n enableCaching?: boolean | undefined;\n ttl?: \"1h\" | \"5m\" | undefined;\n minMessagesToCache?: number | undefined;\n unsupportedModelBehavior?: \"ignore\" | \"raise\" | \"warn\" | undefined;\n}, {\n enableCaching?: boolean | undefined;\n ttl?: \"1h\" | \"5m\" | undefined;\n minMessagesToCache?: number | undefined;\n unsupportedModelBehavior?: \"ignore\" | \"raise\" | \"warn\" | undefined;\n}>;\nexport type PromptCachingMiddlewareConfig = Partial<InferInteropZodInput<typeof contextSchema>>;\n/**\n * Creates a prompt caching middleware for Anthropic models to optimize API usage.\n *\n * This middleware automatically adds cache control headers to the last messages when using Anthropic models,\n * enabling their prompt caching feature. This can significantly reduce costs for applications with repetitive\n * prompts, long system messages, or extensive conversation histories.\n *\n * ## How It Works\n *\n * The middleware intercepts model requests and adds cache control metadata that tells Anthropic's\n * API to cache processed prompt prefixes. On subsequent requests with matching prefixes, the\n * cached representations are reused, skipping redundant token processing.\n *\n * ## Benefits\n *\n * - **Cost Reduction**: Avoid reprocessing the same tokens repeatedly (up to 90% savings on cached portions)\n * - **Lower Latency**: Cached prompts are processed faster as embeddings are pre-computed\n * - **Better Scalability**: Reduced computational load enables handling more requests\n * - **Consistent Performance**: Stable response times for repetitive queries\n *\n * @param middlewareOptions - Configuration options for the caching behavior\n * @param middlewareOptions.enableCaching - Whether to enable prompt caching (default: `true`)\n * @param middlewareOptions.ttl - Cache time-to-live: `\"5m\"` for 5 minutes or `\"1h\"` for 1 hour (default: `\"5m\"`)\n * @param middlewareOptions.minMessagesToCache - Minimum number of messages required before caching is applied (default: `3`)\n * @param middlewareOptions.unsupportedModelBehavior - The behavior to take when an unsupported model is used (default: `\"warn\"`)\n *\n * @returns A middleware instance that can be passed to `createAgent`\n *\n * @throws {Error} If used with non-Anthropic models\n *\n * @example\n * Basic usage with default settings\n * ```typescript\n * import { createAgent } from \"langchain\";\n * import { anthropicPromptCachingMiddleware } from \"langchain\";\n *\n * const agent = createAgent({\n * model: \"anthropic:claude-3-5-sonnet\",\n * middleware: [\n * anthropicPromptCachingMiddleware()\n * ]\n * });\n * ```\n *\n * @example\n * Custom configuration for longer conversations\n * ```typescript\n * const cachingMiddleware = anthropicPromptCachingMiddleware({\n * ttl: \"1h\", // Cache for 1 hour instead of default 5 minutes\n * minMessagesToCache: 5 // Only cache after 5 messages\n * });\n *\n * const agent = createAgent({\n * model: \"anthropic:claude-3-5-sonnet\",\n * systemPrompt: \"You are a helpful assistant with deep knowledge of...\", // Long system prompt\n * middleware: [cachingMiddleware]\n * });\n * ```\n *\n * @example\n * Conditional caching based on runtime context\n * ```typescript\n * const agent = createAgent({\n * model: \"anthropic:claude-3-5-sonnet\",\n * middleware: [\n * anthropicPromptCachingMiddleware({\n * enableCaching: true,\n * ttl: \"5m\"\n * })\n * ]\n * });\n *\n * // Disable caching for specific requests\n * await agent.invoke(\n * { messages: [new HumanMessage(\"Process this without caching\")] },\n * {\n * configurable: {\n * middleware_context: { enableCaching: false }\n * }\n * }\n * );\n * ```\n *\n * @example\n * Optimal setup for customer support chatbot\n * ```typescript\n * const supportAgent = createAgent({\n * model: \"anthropic:claude-3-5-sonnet\",\n * systemPrompt: `You are a customer support agent for ACME Corp.\n *\n * Company policies:\n * - Always be polite and professional\n * - Refer to knowledge base for product information\n * - Escalate billing issues to human agents\n * ... (extensive policies and guidelines)\n * `,\n * tools: [searchKnowledgeBase, createTicket, checkOrderStatus],\n * middleware: [\n * anthropicPromptCachingMiddleware({\n * ttl: \"1h\", // Long TTL for stable system prompt\n * minMessagesToCache: 1 // Cache immediately due to large system prompt\n * })\n * ]\n * });\n * ```\n *\n * @remarks\n * - **Anthropic Only**: This middleware only works with Anthropic models and will throw an error if used with other providers\n * - **Automatic Application**: Caching is applied automatically when message count exceeds `minMessagesToCache`\n * - **Cache Scope**: Caches are isolated per API key and cannot be shared across different keys\n * - **TTL Options**: Only supports \"5m\" (5 minutes) and \"1h\" (1 hour) as TTL values per Anthropic's API\n * - **Best Use Cases**: Long system prompts, multi-turn conversations, repetitive queries, RAG applications\n * - **Cost Impact**: Cached tokens are billed at 10% of the base input token price, cache writes are billed at 25% of the base\n *\n * @see {@link createAgent} for agent creation\n * @see {@link https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching} Anthropic's prompt caching documentation\n * @public\n */\nexport declare function anthropicPromptCachingMiddleware(middlewareOptions?: PromptCachingMiddlewareConfig): import(\"../../types.js\").AgentMiddleware<undefined, z.ZodObject<{\n /**\n * Whether to enable prompt caching.\n * @default true\n */\n enableCaching: z.ZodOptional<z.ZodBoolean>;\n /**\n * The time-to-live for the cached prompt.\n * @default \"5m\"\n */\n ttl: z.ZodOptional<z.ZodEnum<[\"5m\", \"1h\"]>>;\n /**\n * The minimum number of messages required before caching is applied.\n * @default 3\n */\n minMessagesToCache: z.ZodOptional<z.ZodNumber>;\n /**\n * The behavior to take when an unsupported model is used.\n * - \"ignore\" will ignore the unsupported model and continue without caching.\n * - \"warn\" will warn the user and continue without caching.\n * - \"raise\" will raise an error and stop the agent.\n * @default \"warn\"\n */\n unsupportedModelBehavior: z.ZodOptional<z.ZodEnum<[\"ignore\", \"warn\", \"raise\"]>>;\n}, \"strip\", z.ZodTypeAny, {\n enableCaching?: boolean | undefined;\n ttl?: \"1h\" | \"5m\" | undefined;\n minMessagesToCache?: number | undefined;\n unsupportedModelBehavior?: \"ignore\" | \"raise\" | \"warn\" | undefined;\n}, {\n enableCaching?: boolean | undefined;\n ttl?: \"1h\" | \"5m\" | undefined;\n minMessagesToCache?: number | undefined;\n unsupportedModelBehavior?: \"ignore\" | \"raise\" | \"warn\" | undefined;\n}>, {\n enableCaching?: boolean | undefined;\n ttl?: \"1h\" | \"5m\" | undefined;\n minMessagesToCache?: number | undefined;\n unsupportedModelBehavior?: \"ignore\" | \"raise\" | \"warn\" | undefined;\n}, readonly (import(\"@langchain/core/tools\").ServerTool | import(\"@langchain/core/tools\").ClientTool)[]>;\nexport {};\n//# sourceMappingURL=promptCaching.d.ts.map"],"mappings":";;;;;;cAEcG,eAAeF,CAAAA,CAAEQ;;;;AADoC;EAMhCL,aAAAA,EAAhBH,CAAAA,CAAEI,WAAcD,CAAFH,CAAAA,CAAEG,UAAAA,CAAAA;EAAdC;;;;EAUKA,GAAAA,EALjBJ,CAAAA,CAAEI,WAKeA,CALHJ,CAAAA,CAAEK,OAKCD,CAAAA,CAAAA,IAAAA,EAAAA,IAAAA,CAAAA,CAAAA,CAAAA;EAQoBC;;;;EAvBN,kBAAA,EAehBL,CAAAA,CAAEI,WAfc,CAeFJ,CAAAA,CAAEM,SAfA,CAAA;EAmC5BG;;;;AAAuC;AAuHnD;;EAKmCN,wBAAAA,EAxILH,CAAAA,CAAEI,WAwIGD,CAxISH,CAAAA,CAAEK,OAwIXF,CAAAA,CAAAA,QAAAA,EAAAA,MAAAA,EAAAA,OAAAA,CAAAA,CAAAA,CAAAA;CAAhBH,EAAEI,OAAAA,EAvITJ,CAAAA,CAAEO,UAuIOH,EAAAA;EAKIC,aAAAA,CAAAA,EAAAA,OAAAA,GAAAA,SAAAA;EAAdD,GAAAA,CAAAA,EAAAA,IAAAA,GAAAA,IAAAA,GAAAA,SAAAA;EAK6BE,kBAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAdF,wBAAAA,CAAAA,EAAAA,QAAAA,GAAAA,OAAAA,GAAAA,MAAAA,GAAAA,SAAAA;CAQkBJ,EAAEK;EAAdD,aAAAA,CAAAA,EAAAA,OAAAA,GAAAA,SAAAA;EAClBG,GAAAA,CAAAA,EAAAA,IAAAA,GAAAA,IAAAA,GAAAA,SAAAA;EAxBqJC,kBAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAASI,wBAuC/HC,CAAAA,EAAAA,QAAAA,GAAAA,OAAAA,GAAAA,MAAAA,GAAAA,SAAAA;CAAUD,CAAAA;KA9J3CH,6BAAAA,GAAgCC,QAAQT,4BAA4BC;AAuHqE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA7HS,gCAAAA,qBAAqDF,2DAAoFT,CAAAA,CAAEQ;;;;;iBAKhJR,CAAAA,CAAEI,YAAYJ,CAAAA,CAAEG;;;;;OAK1BH,CAAAA,CAAEI,YAAYJ,CAAAA,CAAEK;;;;;sBAKDL,CAAAA,CAAEI,YAAYJ,CAAAA,CAAEM;;;;;;;;4BAQVN,CAAAA,CAAEI,YAAYJ,CAAAA,CAAEK;YAClCL,CAAAA,CAAEO;;;;;;;;;;;;;;;aAxB8JK,uBAAAA,CAuC/HC,UAAAA,GAAUD,uBAAAA,CAAmCE"}
|
|
1
|
+
{"version":3,"file":"promptCaching.d.cts","names":["______types_js0","z","InferInteropZodInput","contextSchema","ZodBoolean","ZodOptional","ZodEnum","ZodNumber","ZodTypeAny","ZodObject","PromptCachingMiddlewareConfig","Partial","anthropicPromptCachingMiddleware","_langchain_core_tools6","ServerTool","ClientTool","AgentMiddleware"],"sources":["../../../../../src/agents/middleware/provider/anthropic/promptCaching.d.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport { InferInteropZodInput } from \"@langchain/core/utils/types\";\ndeclare const contextSchema: z.ZodObject<{\n /**\n * Whether to enable prompt caching.\n * @default true\n */\n enableCaching: z.ZodOptional<z.ZodBoolean>;\n /**\n * The time-to-live for the cached prompt.\n * @default \"5m\"\n */\n ttl: z.ZodOptional<z.ZodEnum<[\"5m\", \"1h\"]>>;\n /**\n * The minimum number of messages required before caching is applied.\n * @default 3\n */\n minMessagesToCache: z.ZodOptional<z.ZodNumber>;\n /**\n * The behavior to take when an unsupported model is used.\n * - \"ignore\" will ignore the unsupported model and continue without caching.\n * - \"warn\" will warn the user and continue without caching.\n * - \"raise\" will raise an error and stop the agent.\n * @default \"warn\"\n */\n unsupportedModelBehavior: z.ZodOptional<z.ZodEnum<[\"ignore\", \"warn\", \"raise\"]>>;\n}, \"strip\", z.ZodTypeAny, {\n enableCaching?: boolean | undefined;\n ttl?: \"1h\" | \"5m\" | undefined;\n minMessagesToCache?: number | undefined;\n unsupportedModelBehavior?: \"ignore\" | \"raise\" | \"warn\" | undefined;\n}, {\n enableCaching?: boolean | undefined;\n ttl?: \"1h\" | \"5m\" | undefined;\n minMessagesToCache?: number | undefined;\n unsupportedModelBehavior?: \"ignore\" | \"raise\" | \"warn\" | undefined;\n}>;\nexport type PromptCachingMiddlewareConfig = Partial<InferInteropZodInput<typeof contextSchema>>;\n/**\n * Creates a prompt caching middleware for Anthropic models to optimize API usage.\n *\n * This middleware automatically adds cache control headers to the last messages when using Anthropic models,\n * enabling their prompt caching feature. This can significantly reduce costs for applications with repetitive\n * prompts, long system messages, or extensive conversation histories.\n *\n * ## How It Works\n *\n * The middleware intercepts model requests and adds cache control metadata that tells Anthropic's\n * API to cache processed prompt prefixes. On subsequent requests with matching prefixes, the\n * cached representations are reused, skipping redundant token processing.\n *\n * ## Benefits\n *\n * - **Cost Reduction**: Avoid reprocessing the same tokens repeatedly (up to 90% savings on cached portions)\n * - **Lower Latency**: Cached prompts are processed faster as embeddings are pre-computed\n * - **Better Scalability**: Reduced computational load enables handling more requests\n * - **Consistent Performance**: Stable response times for repetitive queries\n *\n * @param middlewareOptions - Configuration options for the caching behavior\n * @param middlewareOptions.enableCaching - Whether to enable prompt caching (default: `true`)\n * @param middlewareOptions.ttl - Cache time-to-live: `\"5m\"` for 5 minutes or `\"1h\"` for 1 hour (default: `\"5m\"`)\n * @param middlewareOptions.minMessagesToCache - Minimum number of messages required before caching is applied (default: `3`)\n * @param middlewareOptions.unsupportedModelBehavior - The behavior to take when an unsupported model is used (default: `\"warn\"`)\n *\n * @returns A middleware instance that can be passed to `createAgent`\n *\n * @throws {Error} If used with non-Anthropic models\n *\n * @example\n * Basic usage with default settings\n * ```typescript\n * import { createAgent } from \"langchain\";\n * import { anthropicPromptCachingMiddleware } from \"langchain\";\n *\n * const agent = createAgent({\n * model: \"anthropic:claude-3-5-sonnet\",\n * middleware: [\n * anthropicPromptCachingMiddleware()\n * ]\n * });\n * ```\n *\n * @example\n * Custom configuration for longer conversations\n * ```typescript\n * const cachingMiddleware = anthropicPromptCachingMiddleware({\n * ttl: \"1h\", // Cache for 1 hour instead of default 5 minutes\n * minMessagesToCache: 5 // Only cache after 5 messages\n * });\n *\n * const agent = createAgent({\n * model: \"anthropic:claude-3-5-sonnet\",\n * systemPrompt: \"You are a helpful assistant with deep knowledge of...\", // Long system prompt\n * middleware: [cachingMiddleware]\n * });\n * ```\n *\n * @example\n * Conditional caching based on runtime context\n * ```typescript\n * const agent = createAgent({\n * model: \"anthropic:claude-3-5-sonnet\",\n * middleware: [\n * anthropicPromptCachingMiddleware({\n * enableCaching: true,\n * ttl: \"5m\"\n * })\n * ]\n * });\n *\n * // Disable caching for specific requests\n * await agent.invoke(\n * { messages: [new HumanMessage(\"Process this without caching\")] },\n * {\n * configurable: {\n * middleware_context: { enableCaching: false }\n * }\n * }\n * );\n * ```\n *\n * @example\n * Optimal setup for customer support chatbot\n * ```typescript\n * const supportAgent = createAgent({\n * model: \"anthropic:claude-3-5-sonnet\",\n * systemPrompt: `You are a customer support agent for ACME Corp.\n *\n * Company policies:\n * - Always be polite and professional\n * - Refer to knowledge base for product information\n * - Escalate billing issues to human agents\n * ... (extensive policies and guidelines)\n * `,\n * tools: [searchKnowledgeBase, createTicket, checkOrderStatus],\n * middleware: [\n * anthropicPromptCachingMiddleware({\n * ttl: \"1h\", // Long TTL for stable system prompt\n * minMessagesToCache: 1 // Cache immediately due to large system prompt\n * })\n * ]\n * });\n * ```\n *\n * @remarks\n * - **Anthropic Only**: This middleware only works with Anthropic models and will throw an error if used with other providers\n * - **Automatic Application**: Caching is applied automatically when message count exceeds `minMessagesToCache`\n * - **Cache Scope**: Caches are isolated per API key and cannot be shared across different keys\n * - **TTL Options**: Only supports \"5m\" (5 minutes) and \"1h\" (1 hour) as TTL values per Anthropic's API\n * - **Best Use Cases**: Long system prompts, multi-turn conversations, repetitive queries, RAG applications\n * - **Cost Impact**: Cached tokens are billed at 10% of the base input token price, cache writes are billed at 25% of the base\n *\n * @see {@link createAgent} for agent creation\n * @see {@link https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching} Anthropic's prompt caching documentation\n * @public\n */\nexport declare function anthropicPromptCachingMiddleware(middlewareOptions?: PromptCachingMiddlewareConfig): import(\"../../types.js\").AgentMiddleware<undefined, z.ZodObject<{\n /**\n * Whether to enable prompt caching.\n * @default true\n */\n enableCaching: z.ZodOptional<z.ZodBoolean>;\n /**\n * The time-to-live for the cached prompt.\n * @default \"5m\"\n */\n ttl: z.ZodOptional<z.ZodEnum<[\"5m\", \"1h\"]>>;\n /**\n * The minimum number of messages required before caching is applied.\n * @default 3\n */\n minMessagesToCache: z.ZodOptional<z.ZodNumber>;\n /**\n * The behavior to take when an unsupported model is used.\n * - \"ignore\" will ignore the unsupported model and continue without caching.\n * - \"warn\" will warn the user and continue without caching.\n * - \"raise\" will raise an error and stop the agent.\n * @default \"warn\"\n */\n unsupportedModelBehavior: z.ZodOptional<z.ZodEnum<[\"ignore\", \"warn\", \"raise\"]>>;\n}, \"strip\", z.ZodTypeAny, {\n enableCaching?: boolean | undefined;\n ttl?: \"1h\" | \"5m\" | undefined;\n minMessagesToCache?: number | undefined;\n unsupportedModelBehavior?: \"ignore\" | \"raise\" | \"warn\" | undefined;\n}, {\n enableCaching?: boolean | undefined;\n ttl?: \"1h\" | \"5m\" | undefined;\n minMessagesToCache?: number | undefined;\n unsupportedModelBehavior?: \"ignore\" | \"raise\" | \"warn\" | undefined;\n}>, {\n enableCaching?: boolean | undefined;\n ttl?: \"1h\" | \"5m\" | undefined;\n minMessagesToCache?: number | undefined;\n unsupportedModelBehavior?: \"ignore\" | \"raise\" | \"warn\" | undefined;\n}, readonly (import(\"@langchain/core/tools\").ServerTool | import(\"@langchain/core/tools\").ClientTool)[]>;\nexport {};\n//# sourceMappingURL=promptCaching.d.ts.map"],"mappings":";;;;;;cAEcG,eAAeF,CAAAA,CAAEQ;;;;AADoC;EAMhCL,aAAAA,EAAhBH,CAAAA,CAAEI,WAAcD,CAAFH,CAAAA,CAAEG,UAAAA,CAAAA;EAAdC;;;;EAUKA,GAAAA,EALjBJ,CAAAA,CAAEI,WAKeA,CALHJ,CAAAA,CAAEK,OAKCD,CAAAA,CAAAA,IAAAA,EAAAA,IAAAA,CAAAA,CAAAA,CAAAA;EAQoBC;;;;EAvBN,kBAAA,EAehBL,CAAAA,CAAEI,WAfc,CAeFJ,CAAAA,CAAEM,SAfA,CAAA;EAmC5BG;;;;AAAuC;AAuHnD;;EAKmCN,wBAAAA,EAxILH,CAAAA,CAAEI,WAwIGD,CAxISH,CAAAA,CAAEK,OAwIXF,CAAAA,CAAAA,QAAAA,EAAAA,MAAAA,EAAAA,OAAAA,CAAAA,CAAAA,CAAAA;CAAhBH,EAAEI,OAAAA,EAvITJ,CAAAA,CAAEO,UAuIOH,EAAAA;EAKIC,aAAAA,CAAAA,EAAAA,OAAAA,GAAAA,SAAAA;EAAdD,GAAAA,CAAAA,EAAAA,IAAAA,GAAAA,IAAAA,GAAAA,SAAAA;EAK6BE,kBAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAdF,wBAAAA,CAAAA,EAAAA,QAAAA,GAAAA,OAAAA,GAAAA,MAAAA,GAAAA,SAAAA;CAQkBJ,EAAEK;EAAdD,aAAAA,CAAAA,EAAAA,OAAAA,GAAAA,SAAAA;EAClBG,GAAAA,CAAAA,EAAAA,IAAAA,GAAAA,IAAAA,GAAAA,SAAAA;EAxBqJC,kBAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAASI,wBAuC/HC,CAAAA,EAAAA,QAAAA,GAAAA,OAAAA,GAAAA,MAAAA,GAAAA,SAAAA;CAAUD,CAAAA;KA9J3CH,6BAAAA,GAAgCC,QAAQT,4BAA4BC;AAuHqE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA7HS,gCAAAA,qBAAqDF,2DAAoFT,CAAAA,CAAEQ;;;;;iBAKhJR,CAAAA,CAAEI,YAAYJ,CAAAA,CAAEG;;;;;OAK1BH,CAAAA,CAAEI,YAAYJ,CAAAA,CAAEK;;;;;sBAKDL,CAAAA,CAAEI,YAAYJ,CAAAA,CAAEM;;;;;;;;4BAQVN,CAAAA,CAAEI,YAAYJ,CAAAA,CAAEK;YAClCL,CAAAA,CAAEO;;;;;;;;;;;;;;;aAxB8JK,sBAAAA,CAuC/HC,UAAAA,GAAUD,sBAAAA,CAAmCE"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { AgentMiddleware } from "./types.cjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as _langchain_core_language_models_base3 from "@langchain/core/language_models/base";
|
|
3
3
|
import { BaseLanguageModel } from "@langchain/core/language_models/base";
|
|
4
|
-
import * as
|
|
4
|
+
import * as _langchain_core_messages1 from "@langchain/core/messages";
|
|
5
5
|
import { BaseMessage } from "@langchain/core/messages";
|
|
6
|
-
import * as
|
|
6
|
+
import * as _langchain_core_tools10 from "@langchain/core/tools";
|
|
7
7
|
import { InferInteropZodInput } from "@langchain/core/utils/types";
|
|
8
8
|
import { z } from "zod/v3";
|
|
9
9
|
|
|
@@ -72,7 +72,7 @@ declare const contextSchema: z.ZodObject<{
|
|
|
72
72
|
/**
|
|
73
73
|
* Model to use for summarization
|
|
74
74
|
*/
|
|
75
|
-
model: z.ZodType<string | BaseLanguageModel<any,
|
|
75
|
+
model: z.ZodType<string | BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions>, z.ZodTypeDef, string | BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions>>;
|
|
76
76
|
/**
|
|
77
77
|
* Trigger conditions for summarization.
|
|
78
78
|
* Can be a single condition object (all properties must be met) or an array of conditions (any condition must be met).
|
|
@@ -181,7 +181,7 @@ declare const contextSchema: z.ZodObject<{
|
|
|
181
181
|
/**
|
|
182
182
|
* Token counter function to use for summarization
|
|
183
183
|
*/
|
|
184
|
-
tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodType<BaseMessage<
|
|
184
|
+
tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodType<BaseMessage<_langchain_core_messages1.MessageStructure<_langchain_core_messages1.MessageToolSet>, _langchain_core_messages1.MessageType>, z.ZodTypeDef, BaseMessage<_langchain_core_messages1.MessageStructure<_langchain_core_messages1.MessageToolSet>, _langchain_core_messages1.MessageType>>, "many">], z.ZodUnknown>, z.ZodUnion<[z.ZodNumber, z.ZodPromise<z.ZodNumber>]>>>;
|
|
185
185
|
/**
|
|
186
186
|
* Summary prompt to use for summarization
|
|
187
187
|
* @default {@link DEFAULT_SUMMARY_PROMPT}
|
|
@@ -204,7 +204,7 @@ declare const contextSchema: z.ZodObject<{
|
|
|
204
204
|
*/
|
|
205
205
|
messagesToKeep: z.ZodOptional<z.ZodNumber>;
|
|
206
206
|
}, "strip", z.ZodTypeAny, {
|
|
207
|
-
model: string | BaseLanguageModel<any,
|
|
207
|
+
model: string | BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions>;
|
|
208
208
|
trigger?: {
|
|
209
209
|
fraction?: number | undefined;
|
|
210
210
|
tokens?: number | undefined;
|
|
@@ -219,14 +219,14 @@ declare const contextSchema: z.ZodObject<{
|
|
|
219
219
|
tokens?: number | undefined;
|
|
220
220
|
messages?: number | undefined;
|
|
221
221
|
} | undefined;
|
|
222
|
-
tokenCounter?: ((args_0: BaseMessage<
|
|
222
|
+
tokenCounter?: ((args_0: BaseMessage<_langchain_core_messages1.MessageStructure<_langchain_core_messages1.MessageToolSet>, _langchain_core_messages1.MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;
|
|
223
223
|
summaryPrompt: string;
|
|
224
224
|
trimTokensToSummarize?: number | undefined;
|
|
225
225
|
summaryPrefix?: string | undefined;
|
|
226
226
|
maxTokensBeforeSummary?: number | undefined;
|
|
227
227
|
messagesToKeep?: number | undefined;
|
|
228
228
|
}, {
|
|
229
|
-
model: string | BaseLanguageModel<any,
|
|
229
|
+
model: string | BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions>;
|
|
230
230
|
trigger?: {
|
|
231
231
|
fraction?: number | undefined;
|
|
232
232
|
tokens?: number | undefined;
|
|
@@ -241,7 +241,7 @@ declare const contextSchema: z.ZodObject<{
|
|
|
241
241
|
tokens?: number | undefined;
|
|
242
242
|
messages?: number | undefined;
|
|
243
243
|
} | undefined;
|
|
244
|
-
tokenCounter?: ((args_0: BaseMessage<
|
|
244
|
+
tokenCounter?: ((args_0: BaseMessage<_langchain_core_messages1.MessageStructure<_langchain_core_messages1.MessageToolSet>, _langchain_core_messages1.MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;
|
|
245
245
|
summaryPrompt?: string | undefined;
|
|
246
246
|
trimTokensToSummarize?: number | undefined;
|
|
247
247
|
summaryPrefix?: string | undefined;
|
|
@@ -382,14 +382,14 @@ declare function summarizationMiddleware(options: SummarizationMiddlewareConfig)
|
|
|
382
382
|
tokens?: number | undefined;
|
|
383
383
|
messages?: number | undefined;
|
|
384
384
|
}>>;
|
|
385
|
-
tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodType<BaseMessage<
|
|
385
|
+
tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodType<BaseMessage<_langchain_core_messages1.MessageStructure<_langchain_core_messages1.MessageToolSet>, _langchain_core_messages1.MessageType>, z.ZodTypeDef, BaseMessage<_langchain_core_messages1.MessageStructure<_langchain_core_messages1.MessageToolSet>, _langchain_core_messages1.MessageType>>, "many">], z.ZodUnknown>, z.ZodUnion<[z.ZodNumber, z.ZodPromise<z.ZodNumber>]>>>;
|
|
386
386
|
summaryPrompt: z.ZodDefault<z.ZodString>;
|
|
387
387
|
trimTokensToSummarize: z.ZodOptional<z.ZodNumber>;
|
|
388
388
|
summaryPrefix: z.ZodOptional<z.ZodString>;
|
|
389
389
|
maxTokensBeforeSummary: z.ZodOptional<z.ZodNumber>;
|
|
390
390
|
messagesToKeep: z.ZodOptional<z.ZodNumber>;
|
|
391
391
|
} & {
|
|
392
|
-
model: z.ZodOptional<z.ZodType<BaseLanguageModel<any,
|
|
392
|
+
model: z.ZodOptional<z.ZodType<BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions>, z.ZodTypeDef, BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions>>>;
|
|
393
393
|
}, "strip", z.ZodTypeAny, {
|
|
394
394
|
trigger?: {
|
|
395
395
|
fraction?: number | undefined;
|
|
@@ -405,13 +405,13 @@ declare function summarizationMiddleware(options: SummarizationMiddlewareConfig)
|
|
|
405
405
|
tokens?: number | undefined;
|
|
406
406
|
messages?: number | undefined;
|
|
407
407
|
} | undefined;
|
|
408
|
-
tokenCounter?: ((args_0: BaseMessage<
|
|
408
|
+
tokenCounter?: ((args_0: BaseMessage<_langchain_core_messages1.MessageStructure<_langchain_core_messages1.MessageToolSet>, _langchain_core_messages1.MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;
|
|
409
409
|
summaryPrompt: string;
|
|
410
410
|
trimTokensToSummarize?: number | undefined;
|
|
411
411
|
summaryPrefix?: string | undefined;
|
|
412
412
|
maxTokensBeforeSummary?: number | undefined;
|
|
413
413
|
messagesToKeep?: number | undefined;
|
|
414
|
-
model?: BaseLanguageModel<any,
|
|
414
|
+
model?: BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions> | undefined;
|
|
415
415
|
}, {
|
|
416
416
|
trigger?: {
|
|
417
417
|
fraction?: number | undefined;
|
|
@@ -427,13 +427,13 @@ declare function summarizationMiddleware(options: SummarizationMiddlewareConfig)
|
|
|
427
427
|
tokens?: number | undefined;
|
|
428
428
|
messages?: number | undefined;
|
|
429
429
|
} | undefined;
|
|
430
|
-
tokenCounter?: ((args_0: BaseMessage<
|
|
430
|
+
tokenCounter?: ((args_0: BaseMessage<_langchain_core_messages1.MessageStructure<_langchain_core_messages1.MessageToolSet>, _langchain_core_messages1.MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;
|
|
431
431
|
summaryPrompt?: string | undefined;
|
|
432
432
|
trimTokensToSummarize?: number | undefined;
|
|
433
433
|
summaryPrefix?: string | undefined;
|
|
434
434
|
maxTokensBeforeSummary?: number | undefined;
|
|
435
435
|
messagesToKeep?: number | undefined;
|
|
436
|
-
model?: BaseLanguageModel<any,
|
|
436
|
+
model?: BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions> | undefined;
|
|
437
437
|
}>, {
|
|
438
438
|
trigger?: {
|
|
439
439
|
fraction?: number | undefined;
|
|
@@ -449,14 +449,14 @@ declare function summarizationMiddleware(options: SummarizationMiddlewareConfig)
|
|
|
449
449
|
tokens?: number | undefined;
|
|
450
450
|
messages?: number | undefined;
|
|
451
451
|
} | undefined;
|
|
452
|
-
tokenCounter?: ((args_0: BaseMessage<
|
|
452
|
+
tokenCounter?: ((args_0: BaseMessage<_langchain_core_messages1.MessageStructure<_langchain_core_messages1.MessageToolSet>, _langchain_core_messages1.MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;
|
|
453
453
|
summaryPrompt: string;
|
|
454
454
|
trimTokensToSummarize?: number | undefined;
|
|
455
455
|
summaryPrefix?: string | undefined;
|
|
456
456
|
maxTokensBeforeSummary?: number | undefined;
|
|
457
457
|
messagesToKeep?: number | undefined;
|
|
458
|
-
model?: BaseLanguageModel<any,
|
|
459
|
-
}, readonly (
|
|
458
|
+
model?: BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions> | undefined;
|
|
459
|
+
}, readonly (_langchain_core_tools10.ServerTool | _langchain_core_tools10.ClientTool)[]>;
|
|
460
460
|
//#endregion
|
|
461
461
|
export { ContextSize, KeepSize, SummarizationMiddlewareConfig, TokenCounter, summarizationMiddleware };
|
|
462
462
|
//# sourceMappingURL=summarization.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarization.d.cts","names":["_langchain_core_messages0","_langchain_core_tools1","__types_js8","z","BaseMessage","BaseLanguageModel","InferInteropZodInput","DEFAULT_SUMMARY_PROMPT","TokenCounter","Promise","contextSizeSchema","ZodNumber","ZodOptional","ZodTypeAny","ZodObject","ZodEffects","ContextSize","infer","keepSchema","KeepSize","contextSchema","_langchain_core_language_models_base0","BaseLanguageModelCallOptions","ZodTypeDef","ZodType","ZodArray","ZodUnion","MessageToolSet","MessageStructure","MessageType","ZodUnknown","ZodTuple","ZodPromise","ZodFunction","ZodString","ZodDefault","SummarizationMiddlewareConfig","getProfileLimits","summarizationMiddleware","ServerTool","ClientTool","AgentMiddleware"],"sources":["../../../src/agents/middleware/summarization.d.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport { BaseMessage } from \"@langchain/core/messages\";\nimport { BaseLanguageModel } from \"@langchain/core/language_models/base\";\nimport { InferInteropZodInput } from \"@langchain/core/utils/types\";\nexport declare const DEFAULT_SUMMARY_PROMPT = \"<role>\\nContext Extraction Assistant\\n</role>\\n\\n<primary_objective>\\nYour sole objective in this task is to extract the highest quality/most relevant context from the conversation history below.\\n</primary_objective>\\n\\n<objective_information>\\nYou're nearing the total number of input tokens you can accept, so you must extract the highest quality/most relevant pieces of information from your conversation history.\\nThis context will then overwrite the conversation history presented below. Because of this, ensure the context you extract is only the most important information to your overall goal.\\n</objective_information>\\n\\n<instructions>\\nThe conversation history below will be replaced with the context you extract in this step. Because of this, you must do your very best to extract and record all of the most important context from the conversation history.\\nYou want to ensure that you don't repeat any actions you've already completed, so the context you extract from the conversation history should be focused on the most important information to your overall goal.\\n</instructions>\\n\\nThe user will message you with the full message history you'll be extracting context from, to then replace. Carefully read over it all, and think deeply about what information is most important to your overall goal that should be saved:\\n\\nWith all of this in mind, please carefully read over the entire conversation history, and extract the most important and relevant context to replace it so that you can free up space in the conversation history.\\nRespond ONLY with the extracted context. Do not include any additional information, or text before or after the extracted context.\\n\\n<messages>\\nMessages to summarize:\\n{messages}\\n</messages>\";\nexport type TokenCounter = (messages: BaseMessage[]) => number | Promise<number>;\nexport declare const contextSizeSchema: z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>;\nexport type ContextSize = z.infer<typeof contextSizeSchema>;\nexport declare const keepSchema: z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to keep\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to keep\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n messages: z.ZodOptional<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>;\nexport type KeepSize = z.infer<typeof keepSchema>;\ndeclare const contextSchema: z.ZodObject<{\n /**\n * Model to use for summarization\n */\n model: z.ZodType<string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>, z.ZodTypeDef, string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>>;\n /**\n * Trigger conditions for summarization.\n * Can be a single condition object (all properties must be met) or an array of conditions (any condition must be met).\n *\n * @example\n * ```ts\n * // Single condition: trigger if tokens >= 5000 AND messages >= 3\n * trigger: { tokens: 5000, messages: 3 }\n *\n * // Multiple conditions: trigger if (tokens >= 5000 AND messages >= 3) OR (tokens >= 3000 AND messages >= 6)\n * trigger: [\n * { tokens: 5000, messages: 3 },\n * { tokens: 3000, messages: 6 }\n * ]\n * ```\n */\n trigger: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, z.ZodArray<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, \"many\">]>>;\n /**\n * Keep conditions for summarization\n */\n keep: z.ZodOptional<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to keep\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to keep\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>>;\n /**\n * Token counter function to use for summarization\n */\n tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodType<BaseMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>, import(\"@langchain/core/messages\").MessageType>, z.ZodTypeDef, BaseMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>, import(\"@langchain/core/messages\").MessageType>>, \"many\">], z.ZodUnknown>, z.ZodUnion<[z.ZodNumber, z.ZodPromise<z.ZodNumber>]>>>;\n /**\n * Summary prompt to use for summarization\n * @default {@link DEFAULT_SUMMARY_PROMPT}\n */\n summaryPrompt: z.ZodDefault<z.ZodString>;\n /**\n * Number of tokens to trim to before summarizing\n */\n trimTokensToSummarize: z.ZodOptional<z.ZodNumber>;\n /**\n * Prefix to add to the summary\n */\n summaryPrefix: z.ZodOptional<z.ZodString>;\n /**\n * @deprecated Use `trigger: { tokens: value }` instead.\n */\n maxTokensBeforeSummary: z.ZodOptional<z.ZodNumber>;\n /**\n * @deprecated Use `keep: { messages: value }` instead.\n */\n messagesToKeep: z.ZodOptional<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n model: string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>;\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt: string;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n}, {\n model: string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>;\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt?: string | undefined;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n}>;\nexport type SummarizationMiddlewareConfig = InferInteropZodInput<typeof contextSchema>;\n/**\n * Get max input tokens from model profile or fallback to model name lookup\n */\nexport declare function getProfileLimits(input: BaseLanguageModel): number | undefined;\n/**\n * Summarization middleware that automatically summarizes conversation history when token limits are approached.\n *\n * This middleware monitors message token counts and automatically summarizes older\n * messages when a threshold is reached, preserving recent messages and maintaining\n * context continuity by ensuring AI/Tool message pairs remain together.\n *\n * @param options Configuration options for the summarization middleware\n * @returns A middleware instance\n *\n * @example\n * ```ts\n * import { summarizationMiddleware } from \"langchain\";\n * import { createAgent } from \"langchain\";\n *\n * // Single condition: trigger if tokens >= 4000 AND messages >= 10\n * const agent1 = createAgent({\n * llm: model,\n * tools: [getWeather],\n * middleware: [\n * summarizationMiddleware({\n * model: new ChatOpenAI({ model: \"gpt-4o\" }),\n * trigger: { tokens: 4000, messages: 10 },\n * keep: { messages: 20 },\n * })\n * ],\n * });\n *\n * // Multiple conditions: trigger if (tokens >= 5000 AND messages >= 3) OR (tokens >= 3000 AND messages >= 6)\n * const agent2 = createAgent({\n * llm: model,\n * tools: [getWeather],\n * middleware: [\n * summarizationMiddleware({\n * model: new ChatOpenAI({ model: \"gpt-4o\" }),\n * trigger: [\n * { tokens: 5000, messages: 3 },\n * { tokens: 3000, messages: 6 },\n * ],\n * keep: { messages: 20 },\n * })\n * ],\n * });\n *\n * ```\n */\nexport declare function summarizationMiddleware(options: SummarizationMiddlewareConfig): import(\"./types.js\").AgentMiddleware<undefined, z.ZodObject<{\n trigger: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, z.ZodArray<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, \"many\">]>>;\n keep: z.ZodOptional<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to keep\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to keep\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>>;\n tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodType<BaseMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>, import(\"@langchain/core/messages\").MessageType>, z.ZodTypeDef, BaseMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>, import(\"@langchain/core/messages\").MessageType>>, \"many\">], z.ZodUnknown>, z.ZodUnion<[z.ZodNumber, z.ZodPromise<z.ZodNumber>]>>>;\n summaryPrompt: z.ZodDefault<z.ZodString>;\n trimTokensToSummarize: z.ZodOptional<z.ZodNumber>;\n summaryPrefix: z.ZodOptional<z.ZodString>;\n maxTokensBeforeSummary: z.ZodOptional<z.ZodNumber>;\n messagesToKeep: z.ZodOptional<z.ZodNumber>;\n} & {\n model: z.ZodOptional<z.ZodType<BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>, z.ZodTypeDef, BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>>>;\n}, \"strip\", z.ZodTypeAny, {\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt: string;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n model?: BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions> | undefined;\n}, {\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt?: string | undefined;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n model?: BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions> | undefined;\n}>, {\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt: string;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n model?: BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions> | undefined;\n}, readonly (import(\"@langchain/core/tools\").ServerTool | import(\"@langchain/core/tools\").ClientTool)[]>;\nexport {};\n//# sourceMappingURL=summarization.d.ts.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"summarization.d.cts","names":["_langchain_core_messages1","_langchain_core_tools10","__types_js4","z","BaseMessage","BaseLanguageModel","InferInteropZodInput","DEFAULT_SUMMARY_PROMPT","TokenCounter","Promise","contextSizeSchema","ZodNumber","ZodOptional","ZodTypeAny","ZodObject","ZodEffects","ContextSize","infer","keepSchema","KeepSize","contextSchema","_langchain_core_language_models_base3","BaseLanguageModelCallOptions","ZodTypeDef","ZodType","ZodArray","ZodUnion","MessageToolSet","MessageStructure","MessageType","ZodUnknown","ZodTuple","ZodPromise","ZodFunction","ZodString","ZodDefault","SummarizationMiddlewareConfig","getProfileLimits","summarizationMiddleware","ServerTool","ClientTool","AgentMiddleware"],"sources":["../../../src/agents/middleware/summarization.d.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport { BaseMessage } from \"@langchain/core/messages\";\nimport { BaseLanguageModel } from \"@langchain/core/language_models/base\";\nimport { InferInteropZodInput } from \"@langchain/core/utils/types\";\nexport declare const DEFAULT_SUMMARY_PROMPT = \"<role>\\nContext Extraction Assistant\\n</role>\\n\\n<primary_objective>\\nYour sole objective in this task is to extract the highest quality/most relevant context from the conversation history below.\\n</primary_objective>\\n\\n<objective_information>\\nYou're nearing the total number of input tokens you can accept, so you must extract the highest quality/most relevant pieces of information from your conversation history.\\nThis context will then overwrite the conversation history presented below. Because of this, ensure the context you extract is only the most important information to your overall goal.\\n</objective_information>\\n\\n<instructions>\\nThe conversation history below will be replaced with the context you extract in this step. Because of this, you must do your very best to extract and record all of the most important context from the conversation history.\\nYou want to ensure that you don't repeat any actions you've already completed, so the context you extract from the conversation history should be focused on the most important information to your overall goal.\\n</instructions>\\n\\nThe user will message you with the full message history you'll be extracting context from, to then replace. Carefully read over it all, and think deeply about what information is most important to your overall goal that should be saved:\\n\\nWith all of this in mind, please carefully read over the entire conversation history, and extract the most important and relevant context to replace it so that you can free up space in the conversation history.\\nRespond ONLY with the extracted context. Do not include any additional information, or text before or after the extracted context.\\n\\n<messages>\\nMessages to summarize:\\n{messages}\\n</messages>\";\nexport type TokenCounter = (messages: BaseMessage[]) => number | Promise<number>;\nexport declare const contextSizeSchema: z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>;\nexport type ContextSize = z.infer<typeof contextSizeSchema>;\nexport declare const keepSchema: z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to keep\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to keep\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n messages: z.ZodOptional<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>;\nexport type KeepSize = z.infer<typeof keepSchema>;\ndeclare const contextSchema: z.ZodObject<{\n /**\n * Model to use for summarization\n */\n model: z.ZodType<string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>, z.ZodTypeDef, string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>>;\n /**\n * Trigger conditions for summarization.\n * Can be a single condition object (all properties must be met) or an array of conditions (any condition must be met).\n *\n * @example\n * ```ts\n * // Single condition: trigger if tokens >= 5000 AND messages >= 3\n * trigger: { tokens: 5000, messages: 3 }\n *\n * // Multiple conditions: trigger if (tokens >= 5000 AND messages >= 3) OR (tokens >= 3000 AND messages >= 6)\n * trigger: [\n * { tokens: 5000, messages: 3 },\n * { tokens: 3000, messages: 6 }\n * ]\n * ```\n */\n trigger: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, z.ZodArray<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, \"many\">]>>;\n /**\n * Keep conditions for summarization\n */\n keep: z.ZodOptional<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to keep\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to keep\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>>;\n /**\n * Token counter function to use for summarization\n */\n tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodType<BaseMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>, import(\"@langchain/core/messages\").MessageType>, z.ZodTypeDef, BaseMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>, import(\"@langchain/core/messages\").MessageType>>, \"many\">], z.ZodUnknown>, z.ZodUnion<[z.ZodNumber, z.ZodPromise<z.ZodNumber>]>>>;\n /**\n * Summary prompt to use for summarization\n * @default {@link DEFAULT_SUMMARY_PROMPT}\n */\n summaryPrompt: z.ZodDefault<z.ZodString>;\n /**\n * Number of tokens to trim to before summarizing\n */\n trimTokensToSummarize: z.ZodOptional<z.ZodNumber>;\n /**\n * Prefix to add to the summary\n */\n summaryPrefix: z.ZodOptional<z.ZodString>;\n /**\n * @deprecated Use `trigger: { tokens: value }` instead.\n */\n maxTokensBeforeSummary: z.ZodOptional<z.ZodNumber>;\n /**\n * @deprecated Use `keep: { messages: value }` instead.\n */\n messagesToKeep: z.ZodOptional<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n model: string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>;\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt: string;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n}, {\n model: string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>;\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt?: string | undefined;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n}>;\nexport type SummarizationMiddlewareConfig = InferInteropZodInput<typeof contextSchema>;\n/**\n * Get max input tokens from model profile or fallback to model name lookup\n */\nexport declare function getProfileLimits(input: BaseLanguageModel): number | undefined;\n/**\n * Summarization middleware that automatically summarizes conversation history when token limits are approached.\n *\n * This middleware monitors message token counts and automatically summarizes older\n * messages when a threshold is reached, preserving recent messages and maintaining\n * context continuity by ensuring AI/Tool message pairs remain together.\n *\n * @param options Configuration options for the summarization middleware\n * @returns A middleware instance\n *\n * @example\n * ```ts\n * import { summarizationMiddleware } from \"langchain\";\n * import { createAgent } from \"langchain\";\n *\n * // Single condition: trigger if tokens >= 4000 AND messages >= 10\n * const agent1 = createAgent({\n * llm: model,\n * tools: [getWeather],\n * middleware: [\n * summarizationMiddleware({\n * model: new ChatOpenAI({ model: \"gpt-4o\" }),\n * trigger: { tokens: 4000, messages: 10 },\n * keep: { messages: 20 },\n * })\n * ],\n * });\n *\n * // Multiple conditions: trigger if (tokens >= 5000 AND messages >= 3) OR (tokens >= 3000 AND messages >= 6)\n * const agent2 = createAgent({\n * llm: model,\n * tools: [getWeather],\n * middleware: [\n * summarizationMiddleware({\n * model: new ChatOpenAI({ model: \"gpt-4o\" }),\n * trigger: [\n * { tokens: 5000, messages: 3 },\n * { tokens: 3000, messages: 6 },\n * ],\n * keep: { messages: 20 },\n * })\n * ],\n * });\n *\n * ```\n */\nexport declare function summarizationMiddleware(options: SummarizationMiddlewareConfig): import(\"./types.js\").AgentMiddleware<undefined, z.ZodObject<{\n trigger: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, z.ZodArray<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, \"many\">]>>;\n keep: z.ZodOptional<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to keep\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to keep\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>>;\n tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodType<BaseMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>, import(\"@langchain/core/messages\").MessageType>, z.ZodTypeDef, BaseMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>, import(\"@langchain/core/messages\").MessageType>>, \"many\">], z.ZodUnknown>, z.ZodUnion<[z.ZodNumber, z.ZodPromise<z.ZodNumber>]>>>;\n summaryPrompt: z.ZodDefault<z.ZodString>;\n trimTokensToSummarize: z.ZodOptional<z.ZodNumber>;\n summaryPrefix: z.ZodOptional<z.ZodString>;\n maxTokensBeforeSummary: z.ZodOptional<z.ZodNumber>;\n messagesToKeep: z.ZodOptional<z.ZodNumber>;\n} & {\n model: z.ZodOptional<z.ZodType<BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>, z.ZodTypeDef, BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>>>;\n}, \"strip\", z.ZodTypeAny, {\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt: string;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n model?: BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions> | undefined;\n}, {\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt?: string | undefined;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n model?: BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions> | undefined;\n}>, {\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt: string;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n model?: BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions> | undefined;\n}, readonly (import(\"@langchain/core/tools\").ServerTool | import(\"@langchain/core/tools\").ClientTool)[]>;\nexport {};\n//# sourceMappingURL=summarization.d.ts.map"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AgentMiddleware } from "./types.cjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as _langchain_core_messages0 from "@langchain/core/messages";
|
|
3
3
|
import { ToolMessage } from "@langchain/core/messages";
|
|
4
|
-
import * as
|
|
4
|
+
import * as _langchain_core_tools0 from "@langchain/core/tools";
|
|
5
5
|
import { Command } from "@langchain/langgraph";
|
|
6
6
|
import { z } from "zod/v3";
|
|
7
7
|
|
|
@@ -75,7 +75,7 @@ declare function todoListMiddleware(options?: TodoListMiddlewareOptions): AgentM
|
|
|
75
75
|
content: string;
|
|
76
76
|
status: "completed" | "in_progress" | "pending";
|
|
77
77
|
}[] | undefined;
|
|
78
|
-
}>, undefined, unknown, readonly [
|
|
78
|
+
}>, undefined, unknown, readonly [_langchain_core_tools0.DynamicStructuredTool<z.ZodObject<{
|
|
79
79
|
todos: z.ZodArray<z.ZodObject<{
|
|
80
80
|
content: z.ZodString;
|
|
81
81
|
status: z.ZodEnum<["pending", "in_progress", "completed"]>;
|
|
@@ -111,7 +111,7 @@ declare function todoListMiddleware(options?: TodoListMiddlewareOptions): AgentM
|
|
|
111
111
|
content: string;
|
|
112
112
|
status: "completed" | "in_progress" | "pending";
|
|
113
113
|
}[];
|
|
114
|
-
messages: ToolMessage<
|
|
114
|
+
messages: ToolMessage<_langchain_core_messages0.MessageStructure<_langchain_core_messages0.MessageToolSet>>[];
|
|
115
115
|
}, string>, "write_todos">]>;
|
|
116
116
|
//#endregion
|
|
117
117
|
export { TODO_LIST_MIDDLEWARE_SYSTEM_PROMPT, TodoListMiddlewareOptions, todoListMiddleware };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todoListMiddleware.d.cts","names":["
|
|
1
|
+
{"version":3,"file":"todoListMiddleware.d.cts","names":["_langchain_core_tools0","__types_js0","z","Command","ToolMessage","TODO_LIST_MIDDLEWARE_SYSTEM_PROMPT","stateSchema","ZodString","ZodEnum","ZodTypeAny","ZodObject","ZodArray","ZodDefault","TodoMiddlewareState","infer","TodoListMiddlewareOptions","todoListMiddleware","_langchain_core_messages0","MessageToolSet","MessageStructure","DynamicStructuredTool","AgentMiddleware"],"sources":["../../../src/agents/middleware/todoListMiddleware.d.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport { Command } from \"@langchain/langgraph\";\nimport { ToolMessage } from \"@langchain/core/messages\";\nexport declare const TODO_LIST_MIDDLEWARE_SYSTEM_PROMPT = \"## `write_todos`\\n\\nYou have access to the `write_todos` tool to help you manage and plan complex objectives. \\nUse this tool for complex objectives to ensure that you are tracking each necessary step and giving the user visibility into your progress.\\nThis tool is very helpful for planning complex objectives, and for breaking down these larger complex objectives into smaller steps.\\n\\nIt is critical that you mark todos as completed as soon as you are done with a step. Do not batch up multiple steps before marking them as completed.\\nFor simple objectives that only require a few steps, it is better to just complete the objective directly and NOT use this tool.\\nWriting todos takes time and tokens, use it when it is helpful for managing complex many-step problems! But not for simple few-step requests.\\n\\n## Important To-Do List Usage Notes to Remember\\n- The `write_todos` tool should never be called multiple times in parallel.\\n- Don't be afraid to revise the To-Do list as you go. New information may reveal new tasks that need to be done, or old tasks that are irrelevant.\";\ndeclare const stateSchema: z.ZodObject<{\n todos: z.ZodDefault<z.ZodArray<z.ZodObject<{\n content: z.ZodString;\n status: z.ZodEnum<[\"pending\", \"in_progress\", \"completed\"]>;\n }, \"strip\", z.ZodTypeAny, {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }, {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }>, \"many\">>;\n}, \"strip\", z.ZodTypeAny, {\n todos: {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }[];\n}, {\n todos?: {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }[] | undefined;\n}>;\nexport type TodoMiddlewareState = z.infer<typeof stateSchema>;\nexport interface TodoListMiddlewareOptions {\n /**\n * Custom system prompt to guide the agent on using the todo tool.\n * If not provided, uses the default {@link PLANNING_MIDDLEWARE_SYSTEM_PROMPT}.\n */\n systemPrompt?: string;\n /**\n * Custom description for the {@link writeTodos} tool.\n * If not provided, uses the default {@link WRITE_TODOS_DESCRIPTION}.\n */\n toolDescription?: string;\n}\n/**\n * Creates a middleware that provides todo list management capabilities to agents.\n *\n * This middleware adds a `write_todos` tool that allows agents to create and manage\n * structured task lists for complex multi-step operations. It's designed to help\n * agents track progress, organize complex tasks, and provide users with visibility\n * into task completion status.\n *\n * The middleware automatically injects system prompts that guide the agent on when\n * and how to use the todo functionality effectively. It also enforces that the\n * `write_todos` tool is called at most once per model turn, since the tool replaces\n * the entire todo list and parallel calls would create ambiguity about precedence.\n *\n * @example\n * ```typescript\n * import { todoListMiddleware, createAgent } from 'langchain';\n *\n * const agent = createAgent({\n * model: \"openai:gpt-4o\",\n * middleware: [todoListMiddleware()],\n * });\n *\n * // Agent now has access to write_todos tool and todo state tracking\n * const result = await agent.invoke({\n * messages: [new HumanMessage(\"Help me refactor my codebase\")]\n * });\n *\n * console.log(result.todos); // Array of todo items with status tracking\n * ```\n *\n * @returns A configured middleware instance that provides todo management capabilities\n *\n * @see {@link TodoMiddlewareState} for the state schema\n * @see {@link writeTodos} for the tool implementation\n */\nexport declare function todoListMiddleware(options?: TodoListMiddlewareOptions): import(\"./types.js\").AgentMiddleware<z.ZodObject<{\n todos: z.ZodDefault<z.ZodArray<z.ZodObject<{\n content: z.ZodString;\n status: z.ZodEnum<[\"pending\", \"in_progress\", \"completed\"]>;\n }, \"strip\", z.ZodTypeAny, {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }, {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }>, \"many\">>;\n}, \"strip\", z.ZodTypeAny, {\n todos: {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }[];\n}, {\n todos?: {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }[] | undefined;\n}>, undefined, unknown, readonly [import(\"@langchain/core/tools\").DynamicStructuredTool<z.ZodObject<{\n todos: z.ZodArray<z.ZodObject<{\n content: z.ZodString;\n status: z.ZodEnum<[\"pending\", \"in_progress\", \"completed\"]>;\n }, \"strip\", z.ZodTypeAny, {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }, {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }>, \"many\">;\n}, \"strip\", z.ZodTypeAny, {\n todos: {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }[];\n}, {\n todos: {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }[];\n}>, {\n todos: {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }[];\n}, {\n todos: {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }[];\n}, Command<unknown, {\n todos: {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }[];\n messages: ToolMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>>[];\n}, string>, \"write_todos\">]>;\nexport {};\n//# sourceMappingURL=todoListMiddleware.d.ts.map"],"mappings":";;;;;;;;cAGqBK,kCAAAA;AA4F8EY,UApElFF,yBAAAA,CAwGgGG;EAAcD;;;;;EAzDV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA7FD,kBAAAA,WAA6BD,4CAAiEb,CAAAA,CAAEQ;SAC7GR,CAAAA,CAAEU,WAAWV,CAAAA,CAAES,SAAST,CAAAA,CAAEQ;aACpBR,CAAAA,CAAEK;YACHL,CAAAA,CAAEM;cACFN,CAAAA,CAAEO;;;;;;;YAONP,CAAAA,CAAEO;;;;;;;;;;kCAyCJT,sBAAAA,CA/BwDoB,sBAAsBlB,CAAAA,CAAEQ;SAC/ER,CAAAA,CAAES,SAAST,CAAAA,CAAEQ;aACPR,CAAAA,CAAEK;YACHL,CAAAA,CAAEM;cACFN,CAAAA,CAAEO;;;;;;;YAONP,CAAAA,CAAEO;;;;;;;;;;;;;;;;;;;;GAoBXN;;;;;YAKWC,YAAiHa,yBAAAA,CAAlEE,iBApCsCF,yBAAAA,CAoCcC,cAAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AgentMiddleware } from "./types.js";
|
|
2
2
|
import * as _langchain_core_messages26 from "@langchain/core/messages";
|
|
3
3
|
import { ToolMessage } from "@langchain/core/messages";
|
|
4
|
-
import * as
|
|
4
|
+
import * as _langchain_core_tools7 from "@langchain/core/tools";
|
|
5
5
|
import { Command } from "@langchain/langgraph";
|
|
6
6
|
import { z } from "zod/v3";
|
|
7
7
|
|
|
@@ -75,7 +75,7 @@ declare function todoListMiddleware(options?: TodoListMiddlewareOptions): AgentM
|
|
|
75
75
|
content: string;
|
|
76
76
|
status: "completed" | "in_progress" | "pending";
|
|
77
77
|
}[] | undefined;
|
|
78
|
-
}>, undefined, unknown, readonly [
|
|
78
|
+
}>, undefined, unknown, readonly [_langchain_core_tools7.DynamicStructuredTool<z.ZodObject<{
|
|
79
79
|
todos: z.ZodArray<z.ZodObject<{
|
|
80
80
|
content: z.ZodString;
|
|
81
81
|
status: z.ZodEnum<["pending", "in_progress", "completed"]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todoListMiddleware.d.ts","names":["
|
|
1
|
+
{"version":3,"file":"todoListMiddleware.d.ts","names":["_langchain_core_tools7","__types_js11","z","Command","ToolMessage","TODO_LIST_MIDDLEWARE_SYSTEM_PROMPT","stateSchema","ZodString","ZodEnum","ZodTypeAny","ZodObject","ZodArray","ZodDefault","TodoMiddlewareState","infer","TodoListMiddlewareOptions","todoListMiddleware","_langchain_core_messages26","MessageToolSet","MessageStructure","DynamicStructuredTool","AgentMiddleware"],"sources":["../../../src/agents/middleware/todoListMiddleware.d.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport { Command } from \"@langchain/langgraph\";\nimport { ToolMessage } from \"@langchain/core/messages\";\nexport declare const TODO_LIST_MIDDLEWARE_SYSTEM_PROMPT = \"## `write_todos`\\n\\nYou have access to the `write_todos` tool to help you manage and plan complex objectives. \\nUse this tool for complex objectives to ensure that you are tracking each necessary step and giving the user visibility into your progress.\\nThis tool is very helpful for planning complex objectives, and for breaking down these larger complex objectives into smaller steps.\\n\\nIt is critical that you mark todos as completed as soon as you are done with a step. Do not batch up multiple steps before marking them as completed.\\nFor simple objectives that only require a few steps, it is better to just complete the objective directly and NOT use this tool.\\nWriting todos takes time and tokens, use it when it is helpful for managing complex many-step problems! But not for simple few-step requests.\\n\\n## Important To-Do List Usage Notes to Remember\\n- The `write_todos` tool should never be called multiple times in parallel.\\n- Don't be afraid to revise the To-Do list as you go. New information may reveal new tasks that need to be done, or old tasks that are irrelevant.\";\ndeclare const stateSchema: z.ZodObject<{\n todos: z.ZodDefault<z.ZodArray<z.ZodObject<{\n content: z.ZodString;\n status: z.ZodEnum<[\"pending\", \"in_progress\", \"completed\"]>;\n }, \"strip\", z.ZodTypeAny, {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }, {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }>, \"many\">>;\n}, \"strip\", z.ZodTypeAny, {\n todos: {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }[];\n}, {\n todos?: {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }[] | undefined;\n}>;\nexport type TodoMiddlewareState = z.infer<typeof stateSchema>;\nexport interface TodoListMiddlewareOptions {\n /**\n * Custom system prompt to guide the agent on using the todo tool.\n * If not provided, uses the default {@link PLANNING_MIDDLEWARE_SYSTEM_PROMPT}.\n */\n systemPrompt?: string;\n /**\n * Custom description for the {@link writeTodos} tool.\n * If not provided, uses the default {@link WRITE_TODOS_DESCRIPTION}.\n */\n toolDescription?: string;\n}\n/**\n * Creates a middleware that provides todo list management capabilities to agents.\n *\n * This middleware adds a `write_todos` tool that allows agents to create and manage\n * structured task lists for complex multi-step operations. It's designed to help\n * agents track progress, organize complex tasks, and provide users with visibility\n * into task completion status.\n *\n * The middleware automatically injects system prompts that guide the agent on when\n * and how to use the todo functionality effectively. It also enforces that the\n * `write_todos` tool is called at most once per model turn, since the tool replaces\n * the entire todo list and parallel calls would create ambiguity about precedence.\n *\n * @example\n * ```typescript\n * import { todoListMiddleware, createAgent } from 'langchain';\n *\n * const agent = createAgent({\n * model: \"openai:gpt-4o\",\n * middleware: [todoListMiddleware()],\n * });\n *\n * // Agent now has access to write_todos tool and todo state tracking\n * const result = await agent.invoke({\n * messages: [new HumanMessage(\"Help me refactor my codebase\")]\n * });\n *\n * console.log(result.todos); // Array of todo items with status tracking\n * ```\n *\n * @returns A configured middleware instance that provides todo management capabilities\n *\n * @see {@link TodoMiddlewareState} for the state schema\n * @see {@link writeTodos} for the tool implementation\n */\nexport declare function todoListMiddleware(options?: TodoListMiddlewareOptions): import(\"./types.js\").AgentMiddleware<z.ZodObject<{\n todos: z.ZodDefault<z.ZodArray<z.ZodObject<{\n content: z.ZodString;\n status: z.ZodEnum<[\"pending\", \"in_progress\", \"completed\"]>;\n }, \"strip\", z.ZodTypeAny, {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }, {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }>, \"many\">>;\n}, \"strip\", z.ZodTypeAny, {\n todos: {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }[];\n}, {\n todos?: {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }[] | undefined;\n}>, undefined, unknown, readonly [import(\"@langchain/core/tools\").DynamicStructuredTool<z.ZodObject<{\n todos: z.ZodArray<z.ZodObject<{\n content: z.ZodString;\n status: z.ZodEnum<[\"pending\", \"in_progress\", \"completed\"]>;\n }, \"strip\", z.ZodTypeAny, {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }, {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }>, \"many\">;\n}, \"strip\", z.ZodTypeAny, {\n todos: {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }[];\n}, {\n todos: {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }[];\n}>, {\n todos: {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }[];\n}, {\n todos: {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }[];\n}, Command<unknown, {\n todos: {\n content: string;\n status: \"completed\" | \"in_progress\" | \"pending\";\n }[];\n messages: ToolMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>>[];\n}, string>, \"write_todos\">]>;\nexport {};\n//# sourceMappingURL=todoListMiddleware.d.ts.map"],"mappings":";;;;;;;;cAGqBK,kCAAAA;AA4F8EY,UApElFF,yBAAAA,CAwGgGG;EAAcD;;;;;EAzDV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA7FD,kBAAAA,WAA6BD,4CAAiEb,CAAAA,CAAEQ;SAC7GR,CAAAA,CAAEU,WAAWV,CAAAA,CAAES,SAAST,CAAAA,CAAEQ;aACpBR,CAAAA,CAAEK;YACHL,CAAAA,CAAEM;cACFN,CAAAA,CAAEO;;;;;;;YAONP,CAAAA,CAAEO;;;;;;;;;;kCAyCJT,sBAAAA,CA/BwDoB,sBAAsBlB,CAAAA,CAAEQ;SAC/ER,CAAAA,CAAES,SAAST,CAAAA,CAAEQ;aACPR,CAAAA,CAAEK;YACHL,CAAAA,CAAEM;cACFN,CAAAA,CAAEO;;;;;;;YAONP,CAAAA,CAAEO;;;;;;;;;;;;;;;;;;;;GAoBXN;;;;;YAKWC,YAAiHa,0BAAAA,CAAlEE,iBApCsCF,0BAAAA,CAoCcC,cAAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AgentMiddleware } from "./types.cjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as _langchain_core_tools0 from "@langchain/core/tools";
|
|
3
3
|
import { InferInteropZodInput } from "@langchain/core/utils/types";
|
|
4
4
|
import { z } from "zod/v3";
|
|
5
5
|
|
|
@@ -164,7 +164,7 @@ declare function toolCallLimitMiddleware(options: ToolCallLimitConfig): AgentMid
|
|
|
164
164
|
}, {
|
|
165
165
|
threadToolCallCount?: Record<string, number> | undefined;
|
|
166
166
|
runToolCallCount?: Record<string, number> | undefined;
|
|
167
|
-
}>, undefined, unknown, readonly (
|
|
167
|
+
}>, undefined, unknown, readonly (_langchain_core_tools0.ServerTool | _langchain_core_tools0.ClientTool)[]>;
|
|
168
168
|
//#endregion
|
|
169
169
|
export { ToolCallLimitConfig, ToolCallLimitExceededError, toolCallLimitMiddleware };
|
|
170
170
|
//# sourceMappingURL=toolCallLimit.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolCallLimit.d.cts","names":["
|
|
1
|
+
{"version":3,"file":"toolCallLimit.d.cts","names":["__types_js0","z","InferInteropZodInput","ToolCallLimitExceededError","Error","ToolCallLimitOptionsSchema","ZodString","ZodOptional","ZodNumber","ZodEnum","ZodDefault","ZodTypeAny","ZodObject","ToolCallLimitConfig","toolCallLimitMiddleware","ZodRecord","Record","_langchain_core_tools0","ServerTool","ClientTool","AgentMiddleware"],"sources":["../../../src/agents/middleware/toolCallLimit.d.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport type { InferInteropZodInput } from \"@langchain/core/utils/types\";\n/**\n * Exception raised when tool call limits are exceeded.\n *\n * This exception is raised when the configured exit behavior is 'error'\n * and either the thread or run tool call limit has been exceeded.\n */\nexport declare class ToolCallLimitExceededError extends Error {\n /**\n * Current thread tool call count.\n */\n threadCount: number;\n /**\n * Current run tool call count.\n */\n runCount: number;\n /**\n * Thread tool call limit (if set).\n */\n threadLimit: number | undefined;\n /**\n * Run tool call limit (if set).\n */\n runLimit: number | undefined;\n /**\n * Tool name being limited (if specific tool), or undefined for all tools.\n */\n toolName: string | undefined;\n constructor(threadCount: number, runCount: number, threadLimit: number | undefined, runLimit: number | undefined, toolName?: string | undefined);\n}\n/**\n * Options for configuring the Tool Call Limit middleware.\n */\nexport declare const ToolCallLimitOptionsSchema: z.ZodObject<{\n /**\n * Name of the specific tool to limit. If undefined, limits apply to all tools.\n */\n toolName: z.ZodOptional<z.ZodString>;\n /**\n * Maximum number of tool calls allowed per thread.\n * undefined means no limit.\n */\n threadLimit: z.ZodOptional<z.ZodNumber>;\n /**\n * Maximum number of tool calls allowed per run.\n * undefined means no limit.\n */\n runLimit: z.ZodOptional<z.ZodNumber>;\n /**\n * What to do when limits are exceeded.\n * - \"continue\": Block exceeded tools with error messages, let other tools continue (default)\n * - \"error\": Raise a ToolCallLimitExceededError exception\n * - \"end\": Stop execution immediately, injecting a ToolMessage and an AI message\n * for the single tool call that exceeded the limit. Raises NotImplementedError\n * if there are multiple tool calls.\n *\n * @default \"continue\"\n */\n exitBehavior: z.ZodDefault<z.ZodEnum<[\"continue\", \"error\", \"end\"]>>;\n}, \"strip\", z.ZodTypeAny, {\n toolName?: string | undefined;\n threadLimit?: number | undefined;\n runLimit?: number | undefined;\n exitBehavior: \"continue\" | \"end\" | \"error\";\n}, {\n toolName?: string | undefined;\n threadLimit?: number | undefined;\n runLimit?: number | undefined;\n exitBehavior?: \"continue\" | \"end\" | \"error\" | undefined;\n}>;\nexport type ToolCallLimitConfig = InferInteropZodInput<typeof ToolCallLimitOptionsSchema>;\n/**\n * Middleware that tracks tool call counts and enforces limits.\n *\n * This middleware monitors the number of tool calls made during agent execution\n * and can terminate the agent when specified limits are reached. It supports\n * both thread-level and run-level call counting with configurable exit behaviors.\n *\n * Thread-level: The middleware counts all tool calls in the entire message history\n * and persists this count across multiple runs (invocations) of the agent.\n *\n * Run-level: The middleware counts tool calls made after the last HumanMessage,\n * representing the current run (invocation) of the agent.\n *\n * @param options - Configuration options for the middleware\n * @param options.toolName - Name of the specific tool to limit. If undefined, limits apply to all tools.\n * @param options.threadLimit - Maximum number of tool calls allowed per thread. undefined means no limit.\n * @param options.runLimit - Maximum number of tool calls allowed per run. undefined means no limit.\n * @param options.exitBehavior - What to do when limits are exceeded.\n * - \"continue\": Block exceeded tools with error messages, let other tools continue. Model decides when to end. (default)\n * - \"error\": Raise a ToolCallLimitExceededError exception\n * - \"end\": Stop execution immediately with a ToolMessage + AI message for the single tool call that exceeded the limit. Raises NotImplementedError if there are multiple tool calls.\n *\n * @throws {Error} If both limits are undefined, if exitBehavior is invalid, or if runLimit exceeds threadLimit.\n * @throws {NotImplementedError} If exitBehavior is \"end\" and there are multiple tool calls.\n *\n * @example Continue execution with blocked tools (default)\n * ```ts\n * import { toolCallLimitMiddleware } from \"@langchain/langchain/agents/middleware\";\n * import { createAgent } from \"@langchain/langchain/agents\";\n *\n * // Block exceeded tools but let other tools and model continue\n * const limiter = toolCallLimitMiddleware({\n * threadLimit: 20,\n * runLimit: 10,\n * exitBehavior: \"continue\", // default\n * });\n *\n * const agent = createAgent({\n * model: \"openai:gpt-4o\",\n * middleware: [limiter]\n * });\n * ```\n *\n * @example Stop immediately when limit exceeded\n * ```ts\n * // End execution immediately with an AI message\n * const limiter = toolCallLimitMiddleware({\n * runLimit: 5,\n * exitBehavior: \"end\"\n * });\n *\n * const agent = createAgent({\n * model: \"openai:gpt-4o\",\n * middleware: [limiter]\n * });\n * ```\n *\n * @example Raise exception on limit\n * ```ts\n * // Strict limit with exception handling\n * const limiter = toolCallLimitMiddleware({\n * toolName: \"search\",\n * threadLimit: 5,\n * exitBehavior: \"error\"\n * });\n *\n * const agent = createAgent({\n * model: \"openai:gpt-4o\",\n * middleware: [limiter]\n * });\n *\n * try {\n * const result = await agent.invoke({ messages: [new HumanMessage(\"Task\")] });\n * } catch (error) {\n * if (error instanceof ToolCallLimitExceededError) {\n * console.log(`Search limit exceeded: ${error}`);\n * }\n * }\n * ```\n */\nexport declare function toolCallLimitMiddleware(options: ToolCallLimitConfig): import(\"./types.js\").AgentMiddleware<z.ZodObject<{\n threadToolCallCount: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodNumber>>;\n runToolCallCount: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodNumber>>;\n}, \"strip\", z.ZodTypeAny, {\n threadToolCallCount: Record<string, number>;\n runToolCallCount: Record<string, number>;\n}, {\n threadToolCallCount?: Record<string, number> | undefined;\n runToolCallCount?: Record<string, number> | undefined;\n}>, undefined, unknown, readonly (import(\"@langchain/core/tools\").ServerTool | import(\"@langchain/core/tools\").ClientTool)[]>;\n//# sourceMappingURL=toolCallLimit.d.ts.map"],"mappings":";;;;;;;;;;;AAQA;AA0BA;AAI8BM,cA9BTH,0BAAAA,SAAmCC,KAAK,CA8B/BE;EAAdC;;;EAUcC,WAAAA,EAAAA,MAAAA;EAAdD;;;EAYFI,QAAAA,EAAAA,MAAAA;EA1BqCC;AAAS;AAqC5D;EAiFwBE,WAAAA,EAAAA,MAAAA,GAAAA,SAAuB;EAAUD;;;EACjBE,QAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAbL;;;EACUK,QAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAbL,WAAAA,CAAAA,WAAAA,EAAAA,MAAAA,EAAAA,QAAAA,EAAAA,MAAAA,EAAAA,WAAAA,EAAAA,MAAAA,GAAAA,SAAAA,EAAAA,QAAAA,EAAAA,MAAAA,GAAAA,SAAAA,EAAAA,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;;;;;AAMDM,cA9HFX,0BA8HEW,EA9H0Bf,CAAAA,CAAEW,SA8H5BI,CAAAA;EAR+FJ;;;YAlHxGX,CAAAA,CAAEM,YAAYN,CAAAA,CAAEK;EAkHqF;;;;eA7GlGL,CAAAA,CAAEM,YAAYN,CAAAA,CAAEO;;;;;YAKnBP,CAAAA,CAAEM,YAAYN,CAAAA,CAAEO;;;;;;;;;;;gBAWZP,CAAAA,CAAES,WAAWT,CAAAA,CAAEQ;YACrBR,CAAAA,CAAEU;;;;;;;;;;;KAWFE,mBAAAA,GAAsBX,4BAA4BG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiFtCS,uBAAAA,UAAiCD,sCAA2DZ,CAAAA,CAAEW;uBAC7FX,CAAAA,CAAES,WAAWT,CAAAA,CAAEc,UAAUd,CAAAA,CAAEK,WAAWL,CAAAA,CAAEO;oBAC3CP,CAAAA,CAAES,WAAWT,CAAAA,CAAEc,UAAUd,CAAAA,CAAEK,WAAWL,CAAAA,CAAEO;YAClDP,CAAAA,CAAEU;uBACWK;oBACHA;;wBAEIA;qBACHA;kCARwGC,sBAAAA,CAS7DC,UAAAA,GAAUD,sBAAAA,CAAmCE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AgentMiddleware } from "./types.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as _langchain_core_tools5 from "@langchain/core/tools";
|
|
3
3
|
import { InferInteropZodInput } from "@langchain/core/utils/types";
|
|
4
4
|
import { z } from "zod/v3";
|
|
5
5
|
|
|
@@ -164,7 +164,7 @@ declare function toolCallLimitMiddleware(options: ToolCallLimitConfig): AgentMid
|
|
|
164
164
|
}, {
|
|
165
165
|
threadToolCallCount?: Record<string, number> | undefined;
|
|
166
166
|
runToolCallCount?: Record<string, number> | undefined;
|
|
167
|
-
}>, undefined, unknown, readonly (
|
|
167
|
+
}>, undefined, unknown, readonly (_langchain_core_tools5.ServerTool | _langchain_core_tools5.ClientTool)[]>;
|
|
168
168
|
//#endregion
|
|
169
169
|
export { ToolCallLimitConfig, ToolCallLimitExceededError, toolCallLimitMiddleware };
|
|
170
170
|
//# sourceMappingURL=toolCallLimit.d.ts.map
|