langchain 1.0.4 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/agents/ReactAgent.cjs +15 -17
- package/dist/agents/ReactAgent.cjs.map +1 -1
- package/dist/agents/ReactAgent.d.cts +3 -3
- package/dist/agents/ReactAgent.d.cts.map +1 -1
- package/dist/agents/ReactAgent.d.ts +3 -3
- package/dist/agents/ReactAgent.d.ts.map +1 -1
- package/dist/agents/ReactAgent.js +15 -17
- package/dist/agents/ReactAgent.js.map +1 -1
- package/dist/agents/middleware/contextEditing.cjs +302 -33
- package/dist/agents/middleware/contextEditing.cjs.map +1 -1
- package/dist/agents/middleware/contextEditing.d.cts +125 -41
- package/dist/agents/middleware/contextEditing.d.cts.map +1 -1
- package/dist/agents/middleware/contextEditing.d.ts +125 -41
- package/dist/agents/middleware/contextEditing.d.ts.map +1 -1
- package/dist/agents/middleware/contextEditing.js +302 -33
- package/dist/agents/middleware/contextEditing.js.map +1 -1
- package/dist/agents/middleware/dynamicSystemPrompt.d.cts.map +1 -1
- package/dist/agents/middleware/dynamicSystemPrompt.d.ts.map +1 -1
- package/dist/agents/middleware/hitl.d.cts.map +1 -1
- package/dist/agents/middleware/hitl.d.ts.map +1 -1
- package/dist/agents/middleware/index.cjs +2 -0
- package/dist/agents/middleware/index.js +2 -0
- package/dist/agents/middleware/llmToolSelector.d.cts +4 -4
- package/dist/agents/middleware/llmToolSelector.d.cts.map +1 -1
- package/dist/agents/middleware/modelCallLimit.cjs +6 -2
- package/dist/agents/middleware/modelCallLimit.cjs.map +1 -1
- package/dist/agents/middleware/modelCallLimit.d.cts +8 -8
- package/dist/agents/middleware/modelCallLimit.d.cts.map +1 -1
- package/dist/agents/middleware/modelCallLimit.d.ts +8 -8
- package/dist/agents/middleware/modelCallLimit.d.ts.map +1 -1
- package/dist/agents/middleware/modelCallLimit.js +6 -2
- package/dist/agents/middleware/modelCallLimit.js.map +1 -1
- package/dist/agents/middleware/modelFallback.cjs +2 -2
- package/dist/agents/middleware/modelFallback.cjs.map +1 -1
- package/dist/agents/middleware/modelFallback.d.cts +2 -2
- package/dist/agents/middleware/modelFallback.d.cts.map +1 -1
- package/dist/agents/middleware/modelFallback.d.ts +2 -2
- package/dist/agents/middleware/modelFallback.d.ts.map +1 -1
- package/dist/agents/middleware/modelFallback.js +2 -2
- package/dist/agents/middleware/modelFallback.js.map +1 -1
- package/dist/agents/middleware/pii.cjs +445 -0
- package/dist/agents/middleware/pii.cjs.map +1 -0
- package/dist/agents/middleware/pii.d.cts +216 -0
- package/dist/agents/middleware/pii.d.cts.map +1 -0
- package/dist/agents/middleware/pii.d.ts +216 -0
- package/dist/agents/middleware/pii.d.ts.map +1 -0
- package/dist/agents/middleware/pii.js +436 -0
- package/dist/agents/middleware/pii.js.map +1 -0
- package/dist/agents/middleware/piiRedaction.cjs +2 -1
- package/dist/agents/middleware/piiRedaction.cjs.map +1 -1
- package/dist/agents/middleware/piiRedaction.d.cts +4 -1
- package/dist/agents/middleware/piiRedaction.d.cts.map +1 -1
- package/dist/agents/middleware/piiRedaction.d.ts +4 -1
- package/dist/agents/middleware/piiRedaction.d.ts.map +1 -1
- package/dist/agents/middleware/piiRedaction.js +2 -1
- package/dist/agents/middleware/piiRedaction.js.map +1 -1
- package/dist/agents/middleware/promptCaching.d.cts.map +1 -1
- package/dist/agents/middleware/promptCaching.d.ts.map +1 -1
- package/dist/agents/middleware/summarization.cjs +15 -24
- package/dist/agents/middleware/summarization.cjs.map +1 -1
- package/dist/agents/middleware/summarization.d.cts +72 -9
- package/dist/agents/middleware/summarization.d.cts.map +1 -1
- package/dist/agents/middleware/summarization.d.ts +65 -2
- package/dist/agents/middleware/summarization.d.ts.map +1 -1
- package/dist/agents/middleware/summarization.js +13 -25
- package/dist/agents/middleware/summarization.js.map +1 -1
- package/dist/agents/middleware/todoListMiddleware.d.cts.map +1 -1
- package/dist/agents/middleware/todoListMiddleware.d.ts.map +1 -1
- package/dist/agents/middleware/toolCallLimit.d.cts.map +1 -1
- package/dist/agents/middleware/toolCallLimit.d.ts.map +1 -1
- package/dist/agents/middleware/toolEmulator.cjs +118 -0
- package/dist/agents/middleware/toolEmulator.cjs.map +1 -0
- package/dist/agents/middleware/toolEmulator.d.cts +76 -0
- package/dist/agents/middleware/toolEmulator.d.cts.map +1 -0
- package/dist/agents/middleware/toolEmulator.d.ts +76 -0
- package/dist/agents/middleware/toolEmulator.d.ts.map +1 -0
- package/dist/agents/middleware/toolEmulator.js +117 -0
- package/dist/agents/middleware/toolEmulator.js.map +1 -0
- package/dist/agents/middleware/types.d.cts.map +1 -1
- package/dist/agents/middleware/types.d.ts.map +1 -1
- package/dist/agents/middleware/utils.cjs +4 -0
- package/dist/agents/middleware/utils.cjs.map +1 -1
- package/dist/agents/middleware/utils.d.cts.map +1 -1
- package/dist/agents/middleware/utils.d.ts.map +1 -1
- package/dist/agents/middleware/utils.js +4 -0
- package/dist/agents/middleware/utils.js.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 +1 -1
- package/dist/agents/nodes/AgentNode.js.map +1 -1
- package/dist/agents/runtime.d.cts +5 -5
- package/dist/agents/runtime.d.cts.map +1 -1
- package/dist/agents/runtime.d.ts +5 -5
- package/dist/agents/runtime.d.ts.map +1 -1
- package/dist/index.cjs +22 -0
- package/dist/index.d.cts +5 -3
- package/dist/index.d.ts +5 -3
- package/dist/index.js +13 -1
- package/package.json +9 -8
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AgentMiddleware } from "./types.cjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as _langchain_core_language_models_base0 from "@langchain/core/language_models/base";
|
|
3
3
|
import { BaseLanguageModel } from "@langchain/core/language_models/base";
|
|
4
4
|
import * as _langchain_core_messages0 from "@langchain/core/messages";
|
|
5
5
|
import { BaseMessage } from "@langchain/core/messages";
|
|
@@ -7,12 +7,71 @@ import { InferInteropZodInput } from "@langchain/core/utils/types";
|
|
|
7
7
|
import { z } from "zod/v3";
|
|
8
8
|
|
|
9
9
|
//#region src/agents/middleware/summarization.d.ts
|
|
10
|
-
|
|
10
|
+
type TokenCounter = (messages: BaseMessage[]) => number | Promise<number>;
|
|
11
|
+
declare const contextSizeSchema: z.ZodEffects<z.ZodObject<{
|
|
12
|
+
/**
|
|
13
|
+
* Fraction of the model's context size to use as the trigger
|
|
14
|
+
*/
|
|
15
|
+
fraction: z.ZodOptional<z.ZodNumber>;
|
|
16
|
+
/**
|
|
17
|
+
* Number of tokens to use as the trigger
|
|
18
|
+
*/
|
|
19
|
+
tokens: z.ZodOptional<z.ZodNumber>;
|
|
20
|
+
/**
|
|
21
|
+
* Number of messages to use as the trigger
|
|
22
|
+
*/
|
|
23
|
+
messages: z.ZodOptional<z.ZodNumber>;
|
|
24
|
+
}, "strip", z.ZodTypeAny, {
|
|
25
|
+
fraction?: number | undefined;
|
|
26
|
+
tokens?: number | undefined;
|
|
27
|
+
messages?: number | undefined;
|
|
28
|
+
}, {
|
|
29
|
+
fraction?: number | undefined;
|
|
30
|
+
tokens?: number | undefined;
|
|
31
|
+
messages?: number | undefined;
|
|
32
|
+
}>, {
|
|
33
|
+
fraction?: number | undefined;
|
|
34
|
+
tokens?: number | undefined;
|
|
35
|
+
messages?: number | undefined;
|
|
36
|
+
}, {
|
|
37
|
+
fraction?: number | undefined;
|
|
38
|
+
tokens?: number | undefined;
|
|
39
|
+
messages?: number | undefined;
|
|
40
|
+
}>;
|
|
41
|
+
type ContextSize = z.infer<typeof contextSizeSchema>;
|
|
42
|
+
declare const keepSchema: z.ZodEffects<z.ZodObject<{
|
|
43
|
+
/**
|
|
44
|
+
* Fraction of the model's context size to keep
|
|
45
|
+
*/
|
|
46
|
+
fraction: z.ZodOptional<z.ZodNumber>;
|
|
47
|
+
/**
|
|
48
|
+
* Number of tokens to keep
|
|
49
|
+
*/
|
|
50
|
+
tokens: z.ZodOptional<z.ZodNumber>;
|
|
51
|
+
messages: z.ZodOptional<z.ZodNumber>;
|
|
52
|
+
}, "strip", z.ZodTypeAny, {
|
|
53
|
+
fraction?: number | undefined;
|
|
54
|
+
tokens?: number | undefined;
|
|
55
|
+
messages?: number | undefined;
|
|
56
|
+
}, {
|
|
57
|
+
fraction?: number | undefined;
|
|
58
|
+
tokens?: number | undefined;
|
|
59
|
+
messages?: number | undefined;
|
|
60
|
+
}>, {
|
|
61
|
+
fraction?: number | undefined;
|
|
62
|
+
tokens?: number | undefined;
|
|
63
|
+
messages?: number | undefined;
|
|
64
|
+
}, {
|
|
65
|
+
fraction?: number | undefined;
|
|
66
|
+
tokens?: number | undefined;
|
|
67
|
+
messages?: number | undefined;
|
|
68
|
+
}>;
|
|
69
|
+
type KeepSize = z.infer<typeof keepSchema>;
|
|
11
70
|
declare const contextSchema: z.ZodObject<{
|
|
12
71
|
/**
|
|
13
72
|
* Model to use for summarization
|
|
14
73
|
*/
|
|
15
|
-
model: z.ZodType<string | BaseLanguageModel<any,
|
|
74
|
+
model: z.ZodType<string | BaseLanguageModel<any, _langchain_core_language_models_base0.BaseLanguageModelCallOptions>, z.ZodTypeDef, string | BaseLanguageModel<any, _langchain_core_language_models_base0.BaseLanguageModelCallOptions>>;
|
|
16
75
|
/**
|
|
17
76
|
* Trigger conditions for summarization.
|
|
18
77
|
* Can be a single condition object (all properties must be met) or an array of conditions (any condition must be met).
|
|
@@ -144,7 +203,7 @@ declare const contextSchema: z.ZodObject<{
|
|
|
144
203
|
*/
|
|
145
204
|
messagesToKeep: z.ZodOptional<z.ZodNumber>;
|
|
146
205
|
}, "strip", z.ZodTypeAny, {
|
|
147
|
-
model: string | BaseLanguageModel<any,
|
|
206
|
+
model: string | BaseLanguageModel<any, _langchain_core_language_models_base0.BaseLanguageModelCallOptions>;
|
|
148
207
|
trigger?: {
|
|
149
208
|
fraction?: number | undefined;
|
|
150
209
|
tokens?: number | undefined;
|
|
@@ -166,7 +225,7 @@ declare const contextSchema: z.ZodObject<{
|
|
|
166
225
|
maxTokensBeforeSummary?: number | undefined;
|
|
167
226
|
messagesToKeep?: number | undefined;
|
|
168
227
|
}, {
|
|
169
|
-
model: string | BaseLanguageModel<any,
|
|
228
|
+
model: string | BaseLanguageModel<any, _langchain_core_language_models_base0.BaseLanguageModelCallOptions>;
|
|
170
229
|
trigger?: {
|
|
171
230
|
fraction?: number | undefined;
|
|
172
231
|
tokens?: number | undefined;
|
|
@@ -189,6 +248,10 @@ declare const contextSchema: z.ZodObject<{
|
|
|
189
248
|
messagesToKeep?: number | undefined;
|
|
190
249
|
}>;
|
|
191
250
|
type SummarizationMiddlewareConfig = InferInteropZodInput<typeof contextSchema>;
|
|
251
|
+
/**
|
|
252
|
+
* Get max input tokens from model profile or fallback to model name lookup
|
|
253
|
+
*/
|
|
254
|
+
|
|
192
255
|
/**
|
|
193
256
|
* Summarization middleware that automatically summarizes conversation history when token limits are approached.
|
|
194
257
|
*
|
|
@@ -329,7 +392,7 @@ declare function summarizationMiddleware(options: SummarizationMiddlewareConfig)
|
|
|
329
392
|
maxTokensBeforeSummary: z.ZodOptional<z.ZodNumber>;
|
|
330
393
|
messagesToKeep: z.ZodOptional<z.ZodNumber>;
|
|
331
394
|
} & {
|
|
332
|
-
model: z.ZodOptional<z.ZodType<BaseLanguageModel<any,
|
|
395
|
+
model: z.ZodOptional<z.ZodType<BaseLanguageModel<any, _langchain_core_language_models_base0.BaseLanguageModelCallOptions>, z.ZodTypeDef, BaseLanguageModel<any, _langchain_core_language_models_base0.BaseLanguageModelCallOptions>>>;
|
|
333
396
|
}, "strip", z.ZodTypeAny, {
|
|
334
397
|
trigger?: {
|
|
335
398
|
fraction?: number | undefined;
|
|
@@ -351,7 +414,7 @@ declare function summarizationMiddleware(options: SummarizationMiddlewareConfig)
|
|
|
351
414
|
summaryPrefix?: string | undefined;
|
|
352
415
|
maxTokensBeforeSummary?: number | undefined;
|
|
353
416
|
messagesToKeep?: number | undefined;
|
|
354
|
-
model?: BaseLanguageModel<any,
|
|
417
|
+
model?: BaseLanguageModel<any, _langchain_core_language_models_base0.BaseLanguageModelCallOptions> | undefined;
|
|
355
418
|
}, {
|
|
356
419
|
trigger?: {
|
|
357
420
|
fraction?: number | undefined;
|
|
@@ -373,8 +436,8 @@ declare function summarizationMiddleware(options: SummarizationMiddlewareConfig)
|
|
|
373
436
|
summaryPrefix?: string | undefined;
|
|
374
437
|
maxTokensBeforeSummary?: number | undefined;
|
|
375
438
|
messagesToKeep?: number | undefined;
|
|
376
|
-
model?: BaseLanguageModel<any,
|
|
439
|
+
model?: BaseLanguageModel<any, _langchain_core_language_models_base0.BaseLanguageModelCallOptions> | undefined;
|
|
377
440
|
}>, any>;
|
|
378
441
|
//#endregion
|
|
379
|
-
export { SummarizationMiddlewareConfig, summarizationMiddleware };
|
|
442
|
+
export { ContextSize, KeepSize, SummarizationMiddlewareConfig, TokenCounter, summarizationMiddleware };
|
|
380
443
|
//# sourceMappingURL=summarization.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarization.d.cts","names":["_langchain_core_messages0","__types_js0","z","BaseMessage","BaseLanguageModel","InferInteropZodInput","DEFAULT_SUMMARY_PROMPT","TokenCounter","Promise","contextSizeSchema","ZodNumber","ZodOptional","ZodTypeAny","ZodObject","ZodEffects","ContextSize","infer","contextSchema","_langchain_core_language_models_base3","BaseLanguageModelCallOptions","ZodTypeDef","ZodType","ZodArray","ZodUnion","MessageStructure","MessageType","ZodUnknown","ZodTuple","ZodPromise","ZodFunction","ZodString","ZodDefault","SummarizationMiddlewareConfig","summarizationMiddleware","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>;\ndeclare 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>;\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\").MessageType>, z.ZodTypeDef, BaseMessage<import(\"@langchain/core/messages\").MessageStructure, 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\").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\").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 * 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\").MessageType>, z.ZodTypeDef, BaseMessage<import(\"@langchain/core/messages\").MessageStructure, 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\").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\").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}>, any>;\nexport {};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"summarization.d.cts","names":["_langchain_core_messages0","__types_js7","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","MessageStructure","MessageType","ZodUnknown","ZodTuple","ZodPromise","ZodFunction","ZodString","ZodDefault","SummarizationMiddlewareConfig","getProfileLimits","summarizationMiddleware","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\").MessageType>, z.ZodTypeDef, BaseMessage<import(\"@langchain/core/messages\").MessageStructure, 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\").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\").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\").MessageType>, z.ZodTypeDef, BaseMessage<import(\"@langchain/core/messages\").MessageStructure, 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\").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\").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}>, any>;\nexport {};\n"],"mappings":"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"}
|
|
@@ -7,7 +7,66 @@ import * as _langchain_core_language_models_base0 from "@langchain/core/language
|
|
|
7
7
|
import { BaseLanguageModel } from "@langchain/core/language_models/base";
|
|
8
8
|
|
|
9
9
|
//#region src/agents/middleware/summarization.d.ts
|
|
10
|
-
|
|
10
|
+
type TokenCounter = (messages: BaseMessage[]) => number | Promise<number>;
|
|
11
|
+
declare const contextSizeSchema: z.ZodEffects<z.ZodObject<{
|
|
12
|
+
/**
|
|
13
|
+
* Fraction of the model's context size to use as the trigger
|
|
14
|
+
*/
|
|
15
|
+
fraction: z.ZodOptional<z.ZodNumber>;
|
|
16
|
+
/**
|
|
17
|
+
* Number of tokens to use as the trigger
|
|
18
|
+
*/
|
|
19
|
+
tokens: z.ZodOptional<z.ZodNumber>;
|
|
20
|
+
/**
|
|
21
|
+
* Number of messages to use as the trigger
|
|
22
|
+
*/
|
|
23
|
+
messages: z.ZodOptional<z.ZodNumber>;
|
|
24
|
+
}, "strip", z.ZodTypeAny, {
|
|
25
|
+
fraction?: number | undefined;
|
|
26
|
+
tokens?: number | undefined;
|
|
27
|
+
messages?: number | undefined;
|
|
28
|
+
}, {
|
|
29
|
+
fraction?: number | undefined;
|
|
30
|
+
tokens?: number | undefined;
|
|
31
|
+
messages?: number | undefined;
|
|
32
|
+
}>, {
|
|
33
|
+
fraction?: number | undefined;
|
|
34
|
+
tokens?: number | undefined;
|
|
35
|
+
messages?: number | undefined;
|
|
36
|
+
}, {
|
|
37
|
+
fraction?: number | undefined;
|
|
38
|
+
tokens?: number | undefined;
|
|
39
|
+
messages?: number | undefined;
|
|
40
|
+
}>;
|
|
41
|
+
type ContextSize = z.infer<typeof contextSizeSchema>;
|
|
42
|
+
declare const keepSchema: z.ZodEffects<z.ZodObject<{
|
|
43
|
+
/**
|
|
44
|
+
* Fraction of the model's context size to keep
|
|
45
|
+
*/
|
|
46
|
+
fraction: z.ZodOptional<z.ZodNumber>;
|
|
47
|
+
/**
|
|
48
|
+
* Number of tokens to keep
|
|
49
|
+
*/
|
|
50
|
+
tokens: z.ZodOptional<z.ZodNumber>;
|
|
51
|
+
messages: z.ZodOptional<z.ZodNumber>;
|
|
52
|
+
}, "strip", z.ZodTypeAny, {
|
|
53
|
+
fraction?: number | undefined;
|
|
54
|
+
tokens?: number | undefined;
|
|
55
|
+
messages?: number | undefined;
|
|
56
|
+
}, {
|
|
57
|
+
fraction?: number | undefined;
|
|
58
|
+
tokens?: number | undefined;
|
|
59
|
+
messages?: number | undefined;
|
|
60
|
+
}>, {
|
|
61
|
+
fraction?: number | undefined;
|
|
62
|
+
tokens?: number | undefined;
|
|
63
|
+
messages?: number | undefined;
|
|
64
|
+
}, {
|
|
65
|
+
fraction?: number | undefined;
|
|
66
|
+
tokens?: number | undefined;
|
|
67
|
+
messages?: number | undefined;
|
|
68
|
+
}>;
|
|
69
|
+
type KeepSize = z.infer<typeof keepSchema>;
|
|
11
70
|
declare const contextSchema: z.ZodObject<{
|
|
12
71
|
/**
|
|
13
72
|
* Model to use for summarization
|
|
@@ -189,6 +248,10 @@ declare const contextSchema: z.ZodObject<{
|
|
|
189
248
|
messagesToKeep?: number | undefined;
|
|
190
249
|
}>;
|
|
191
250
|
type SummarizationMiddlewareConfig = InferInteropZodInput<typeof contextSchema>;
|
|
251
|
+
/**
|
|
252
|
+
* Get max input tokens from model profile or fallback to model name lookup
|
|
253
|
+
*/
|
|
254
|
+
|
|
192
255
|
/**
|
|
193
256
|
* Summarization middleware that automatically summarizes conversation history when token limits are approached.
|
|
194
257
|
*
|
|
@@ -376,5 +439,5 @@ declare function summarizationMiddleware(options: SummarizationMiddlewareConfig)
|
|
|
376
439
|
model?: BaseLanguageModel<any, _langchain_core_language_models_base0.BaseLanguageModelCallOptions> | undefined;
|
|
377
440
|
}>, any>;
|
|
378
441
|
//#endregion
|
|
379
|
-
export { SummarizationMiddlewareConfig, summarizationMiddleware };
|
|
442
|
+
export { ContextSize, KeepSize, SummarizationMiddlewareConfig, TokenCounter, summarizationMiddleware };
|
|
380
443
|
//# sourceMappingURL=summarization.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarization.d.ts","names":["_langchain_core_messages0","__types_js0","z","BaseMessage","BaseLanguageModel","InferInteropZodInput","DEFAULT_SUMMARY_PROMPT","TokenCounter","Promise","contextSizeSchema","ZodNumber","ZodOptional","ZodTypeAny","ZodObject","ZodEffects","ContextSize","infer","contextSchema","_langchain_core_language_models_base0","BaseLanguageModelCallOptions","ZodTypeDef","ZodType","ZodArray","ZodUnion","MessageStructure","MessageType","ZodUnknown","ZodTuple","ZodPromise","ZodFunction","ZodString","ZodDefault","SummarizationMiddlewareConfig","summarizationMiddleware","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>;\ndeclare 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>;\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\").MessageType>, z.ZodTypeDef, BaseMessage<import(\"@langchain/core/messages\").MessageStructure, 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\").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\").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 * 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\").MessageType>, z.ZodTypeDef, BaseMessage<import(\"@langchain/core/messages\").MessageStructure, 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\").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\").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}>, any>;\nexport {};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"summarization.d.ts","names":["_langchain_core_messages0","__types_js0","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","MessageStructure","MessageType","ZodUnknown","ZodTuple","ZodPromise","ZodFunction","ZodString","ZodDefault","SummarizationMiddlewareConfig","getProfileLimits","summarizationMiddleware","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\").MessageType>, z.ZodTypeDef, BaseMessage<import(\"@langchain/core/messages\").MessageStructure, 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\").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\").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\").MessageType>, z.ZodTypeDef, BaseMessage<import(\"@langchain/core/messages\").MessageStructure, 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\").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\").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}>, any>;\nexport {};\n"],"mappings":";;;;;;;;;KAKYO,YAAAA,cAA0BJ,2BAA2BK;cAC5CC,mBAAmBP,CAAAA,CAAEY,WAAWZ,CAAAA,CAAEW;;;AADvD;EAAwB,QAAA,EAKVX,CAAAA,CAAES,WALQ,CAKIT,CAAAA,CAAEQ,SALN,CAAA;EAAA;;AAAgD;EACnDD,MAAAA,EAQTP,CAAAA,CAAES,WAqBZ,CArBwBT,CAAAA,CAAEQ,SAqB1B,CAAA;EAAA;;;EAzByB,QAICA,EAIdR,CAAAA,CAAES,WAJYD,CAIAR,CAAAA,CAAEQ,SAJFA,CAAAA;CAAS,EAAA,OAAvBC,EAKFT,CAAAA,CAAEU,UALAD,EAAAA;EAAW,QAIKD,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAS,MAAvBC,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAW,QACbC,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;CAAU,EAAA;EAbwC,QAAtBE,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAU,MAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EA8BxCC,QAAAA,CAAAA,EAAAA,MAAW,GAAA,SAAA;CAAA,CAAA,EAAA;EAAA,QAAkBN,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAiB,MAA9BO,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAK,QAAA,CAAA,EAAA,MAAA,GAAA,SAAA;AACjC,CAAA,EAAA;EA0BE,QAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAAA,MAtB4BN,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAS,QAAvBC,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;CAAW,CAAA;AAIfT,KATAa,WAAAA,GAAcb,CAAAA,CAAEc,KASdL,CAAAA,OAT2BF,iBAS3BE,CAAAA;AACcT,cATPe,UASSP,EATGR,CAAAA,CAAEY,UASLJ,CATgBR,CAAAA,CAAEW,SASlBH,CAAAA;EAAS;;;EATkB,QAAtBI,EAIrBZ,CAAAA,CAAES,WAJmBG,CAIPZ,CAAAA,CAAEQ,SAJKI,CAAAA;EAAU;AA2B7C;;EAAoB,MAAkBG,EAnB1Bf,CAAAA,CAAES,WAmBwBM,CAnBZf,CAAAA,CAAEQ,SAmBUO,CAAAA;EAAU,QAAvBD,EAlBXd,CAAAA,CAAES,WAkBSK,CAlBGd,CAAAA,CAAEQ,SAkBLM,CAAAA;AAAK,CAAA,EAAA,OAAA,EAjBlBd,CAAAA,CAAEU,UAiBgB,EAAA;EAChBO,QAAAA,CAAAA,EAAAA,MAmLZ,GAAA,SAAA;EAAA,MAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAAA,QAAAC,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;CA/K8H,EAAA;EAAjF,QAAsFE,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAU,MAAAF,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAA6G,QAAlGhB,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;CAAiB,CAAA,EAAA;EAAvJ,QAqBcM,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAS,MAAvBC,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAW,QAICD,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;CAAS,EAAA;EAAZ,QAIKA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAS,MAAvBC,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAW,QACbC,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;CAAU,CAAA;AAbWV,KAtB3BgB,QAAAA,GAAWhB,CAAAA,CAAEc,KAsBgBF,CAAAA,OAtBHG,UAsBGH,CAAAA;cArB3BK,aAsDoBT,EAtDLR,CAAAA,CAAEW,SAsDGH,CAAAA;EAAS;;;EAId,KAIKA,EA1DvBR,CAAAA,CAAEqB,OA0DqBb,CAAAA,MAAAA,GA1DJN,iBA0DIM,CAAAA,GAAAA,EAqHhCU,qCAAAA,CA/KkGC,4BAAAA,CA0DlEX,EA1DiGR,CAAAA,CAAEoB,UA0DnGZ,EAAAA,MAAAA,GA1DwHN,iBA0DxHM,CAAAA,GAAAA,EA1D6GU,qCAAAA,CAAiFC,4BAAAA,CA0D9LX,CAAAA;EAAS;;;;;;;;;;;;;;;;EAqBP,OAAxBC,EA9DCT,CAAAA,CAAES,WA8DHA,CA9DeT,CAAAA,CAAEuB,QA8DjBd,CAAAA,CA9D2BT,CAAAA,CAAEY,UA8D7BH,CA9DwCT,CAAAA,CAAEW,SA8D1CF,CAAAA;IAAWX;;;IA8B0KE,QAAEoB,EAxFjLpB,CAAAA,CAAES,WAwF+KW,CAxFnKpB,CAAAA,CAAEQ,SAwFiKY,CAAAA;IAAUtB;;;IAAxIE,MAAEqB,EApFvDrB,CAAAA,CAAES,WAoFqDY,CApFzCrB,CAAAA,CAAEQ,SAoFuCa,CAAAA;IAAbrB;;;IAA6SA,QAAEQ,EAhFvVR,CAAAA,CAAES,WAgFqVD,CAhFzUR,CAAAA,CAAEQ,SAgFuUA,CAAAA;EAAS,CAAA,EAAeR,OAAEQ,EA/EnXR,CAAAA,CAAEU,UA+EiXF,EAAAA;IAAfR,QAAE4B,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAA3B5B,MAAEuB,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAA7TvB,QAAE6B,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAW,CAAA,EAA3B7B;IAKcA,QAAE8B,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAf9B,MAAE+B,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAIoB/B,QAAEQ,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAS,CAAA,CAAA,EAAzBR;IAIMA,QAAE8B,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAhB9B,MAAES,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAIqBT,QAAEQ,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAS,CAAA,EAAzBR;IAIMA,QAAEQ,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAhBR,MAAES,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IACVT,QAAEU,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAU,CAAA,CAAA,EArFhBV,CAAAA,CAAEsB,QAqFcJ,CArFLlB,CAAAA,CAAEY,UAqFGM,CArFQlB,CAAAA,CAAEW,SAqFVO,CAAAA;IACJhB;;;IAeSD,QAAAA,EAjGXD,CAAAA,CAAES,WAiGSR,CAjGGD,CAAAA,CAAEQ,SAiGLP,CAAAA;IAAoJK;;;IAO5IR,MAAAA,EApGrBE,CAAAA,CAAES,WAoGmBX,CApGPE,CAAAA,CAAEQ,SAmH4CgB,CAAAA;IAAgB1B;;;IA7K/DE,QAAEW,EA8DbX,CAAAA,CAAES,WA9DWE,CA8DCX,CAAAA,CAAEQ,SA9DHG,CAAAA;EAAS,CAAA,EAAA,OAAA,EA+DxBX,CAAAA,CAAEU,UA/DsB,EAAA;IAoL5BsB,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAA6B;IAAA,MAAA,CAAA,EAAA,MAAA,GAAA,SAAA;IAA+Bf,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAa,CAAA,EAAzCd;IAAoB,QAAA,CAAA,EAAA,MAAA,GAAA,SAAA;IAmDxC+B,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAuB;IAAA,QAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAAA,CAAA,CAAA,EAAUF;IAKzBhC,QAAEQ,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAhBR,MAAES,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAIUT,QAAEQ,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAS,CAAA,EAAzBR;IAIgBA,QAAEQ,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAhBR,MAAES,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IACJT,QAAEU,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAU,CAAA,CAAA,EAbwBV,MAAEW,CAAAA,CAAAA,CAAAA,CAAAA;EAAS;;;EAiChC,IAIDX,EA1LpBA,CAAAA,CAAES,WA0LoBD,CA1LRR,CAAAA,CAAEY,UA0LMJ,CA1LKR,CAAAA,CAAEW,SA0LPH,CAAAA;IAAhBR;;;IAKAA,QAAEU,EA3LAV,CAAAA,CAAES,WA2LFC,CA3LcV,CAAAA,CAAEQ,SA2LhBE,CAAAA;IAbcV;;;IA7BLA,MAAEuB,EA7IbvB,CAAAA,CAAES,WA6IWc,CA7ICvB,CAAAA,CAAEQ,SA6IHe,CAAAA;IAAhBvB,QAAES,EA5IGT,CAAAA,CAAES,WA4ILA,CA5IiBT,CAAAA,CAAEQ,SA4InBC,CAAAA;EAAW,CAAA,EA+DMT,OAAEQ,EA1MlBR,CAAAA,CAAEU,UA0MgBF,EAAAA;IAAhBR,QAAES,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAIUT,MAAEQ,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAhBR,QAAES,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAW,CAAA,EACGT;IAAdA,QAAES,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IACJT,MAAEU,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAVmBV,QAAEW,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAS,CAAA,CAAA,EAAxBX;IAAdA,QAAES,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAWX,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SA2BuG0B;IAAgB1B,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAqC2B;EAAW,CAAA,EAA/GxB;IAAkHD,QAAEoB,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAUtB,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAiD0B;IAAgB1B,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAqC2B;EAAW,CAAA,CAAA,CAA/GxB;EAAW;;;EAA8H,YAAxS0B,EA7M9B3B,CAAAA,CAAES,WA6M4BkB,CA7MhB3B,CAAAA,CAAE6B,WA6McF,CA7MF3B,CAAAA,CAAE2B,QA6MAA,CAAAA,CA7MU3B,CAAAA,CAAEsB,QA6MZK,CA7MqB3B,CAAAA,CAAEqB,OA6MvBM,CA7M+B1B,WA6M/B0B,CA3OzB7B,yBAAAA,CA8BuG0B,gBAAAA,EAAgB1B,yBAAAA,CAAqC2B,WAAAA,CA6MnIE,EA7MiJ3B,CAAAA,CAAEoB,UA6MnJO,EA7M+J1B,WA6M/J0B,CA7M6J7B,yBAAAA,CAAiD0B,gBAAAA,EAAgB1B,yBAAAA,CAAqC2B,WAAAA,CA6MnQE,CAAAA,EAAAA,MAAAA,CAAAA,CAAAA,EA7M4R3B,CAAAA,CAAE0B,UA6M9RC,CAAAA,EA7M2S3B,CAAAA,CAAEuB,QA6M7SI,CAAAA,CA7MuT3B,CAAAA,CAAEQ,SA6MzTmB,EA7MoU3B,CAAAA,CAAE4B,UA6MtUD,CA7MiV3B,CAAAA,CAAEQ,SA6MnVmB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;EAAQ;;;;EAA6S,aAAnUE,EAxMf7B,CAAAA,CAAE+B,UAwMaF,CAxMF7B,CAAAA,CAAE8B,SAwMAD,CAAAA;EAAW;;;EACd,qBACYrB,EAtMhBR,CAAAA,CAAES,WAsMcD,CAtMFR,CAAAA,CAAEQ,SAsMAA,CAAAA;EAAS;;;EACpB,aACYA,EApMzBR,CAAAA,CAAES,WAoMuBD,CApMXR,CAAAA,CAAE8B,SAoMStB,CAAAA;EAAS;;;EACpB,sBAAAU,EAjMLlB,CAAAA,CAAES,WAiMGS,CAjMSlB,CAAAA,CAAEQ,SAmM6DW,CAAAA;EAA4B;;;EAAmH,cAAlGjB,EA/LlIF,CAAAA,CAAES,WA+LgIP,CA/LpHF,CAAAA,CAAEQ,SA+LkHN,CAAAA;CAAiB,EAAA,OAA5ImB,EA9LfrB,CAAAA,CAAEU,UA8LaW,EAAAA;EAAO,KAArBZ,EAAAA,MAAAA,GA7LOP,iBA6LPO,CAAAA,GAAAA,EA9LWS,qCAAAA,CACkEC,4BAAAA,CA6L7EV;EAAW,OACVC,CAAAA,EAAAA;IAAUZ,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAeoD0B;IAAgB1B,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAqC2B;IAApGxB,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAW,CAAA,EAAyIK,GAAAA;IAAOY,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAM5KhB,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAiBJ,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAgB+C0B;EAAgB,CAAA,GAAA1B,SAAAA;EAAgD,IAA/GG,CAAAA,EAAAA;IAAoJK,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAOY,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAM5KhB,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAiB,CAAA,GA1I4GF,SAAEW;EAAS,YAAA,CAAA,EAAA,CAAA,CAAA,MAAA,EAhFvHV,WAgFuH,CA/F/GH,yBAAAA,CAeuC0B,gBAAAA,EAAgB1B,yBAAAA,CAAqC2B,WAAAA,CAgFmB,EAAA,EAAA,GAAA,IAAA,EAAA,OAAA,EAAA,EAAA,GAAA,MAAA,GAhF6BnB,OAgF7B,CAAA,MAAA,CAAA,CAAA,GAAA,SAAA;EAAvB,aAAA,EAAA,MAAA;;;;;;kBAzEzGJ,uBAPoKgB,qCAAAA,CAO9FC,4BAAAA;;;;;;;;;;;;;;;2BAe7DlB,YAfQH,yBAAAA,CAeuC0B,gBAAAA,EAAgB1B,yBAAAA,CAAqC2B,WAAAA,qCAAgDnB;;;;;;;KAOrK0B,6BAAAA,GAAgC7B,4BAA4Bc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmDhDiB,uBAAAA,UAAiCF,gCAA2F,2BAAXhC,CAAAA,CAAEW;WAC9HX,CAAAA,CAAES,YAAYT,CAAAA,CAAEuB,UAAUvB,CAAAA,CAAEY,WAAWZ,CAAAA,CAAEW;;;;cAIpCX,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;;;;YAIlBR,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;;;;cAIdR,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;cAClBR,CAAAA,CAAEU;;;;;;;;;;;;;;;;MAgBVV,CAAAA,CAAEsB,SAAStB,CAAAA,CAAEY,WAAWZ,CAAAA,CAAEW;;;;cAIhBX,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;;;;YAIlBR,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;;;;cAIdR,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;cAClBR,CAAAA,CAAEU;;;;;;;;;;;;;;;;;QAiBRV,CAAAA,CAAES,YAAYT,CAAAA,CAAEY,WAAWZ,CAAAA,CAAEW;;;;cAIrBX,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;;;;YAIlBR,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;cACdR,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;cAClBR,CAAAA,CAAEU;;;;;;;;;;;;;;;;;gBAiBAV,CAAAA,CAAES,YAAYT,CAAAA,CAAE6B,YAAY7B,CAAAA,CAAE2B,UAAU3B,CAAAA,CAAEsB,SAAStB,CAAAA,CAAEqB,QAAQpB,YA3BxDH,yBAAAA,CA2BuG0B,gBAAAA,EAAgB1B,yBAAAA,CAAqC2B,WAAAA,GAAczB,CAAAA,CAAEoB,YAAYnB,YAAFH,yBAAAA,CAAiD0B,gBAAAA,EAAgB1B,yBAAAA,CAAqC2B,WAAAA,cAAyBzB,CAAAA,CAAE0B,aAAa1B,CAAAA,CAAEuB,UAAUvB,CAAAA,CAAEQ,WAAWR,CAAAA,CAAE4B,WAAW5B,CAAAA,CAAEQ;iBAChXR,CAAAA,CAAE+B,WAAW/B,CAAAA,CAAE8B;yBACP9B,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;iBACxBR,CAAAA,CAAES,YAAYT,CAAAA,CAAE8B;0BACP9B,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;kBACxBR,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;;SAEzBR,CAAAA,CAAES,YAAYT,CAAAA,CAAEqB,QAAQnB,uBAFFgB,qCAAAA,CAEwEC,4BAAAA,GAA+BnB,CAAAA,CAAEoB,YAAYlB,uBAAFgB,qCAAAA,CAAwEC,4BAAAA;YAChNnB,CAAAA,CAAEU;;;;;;;;;;;;;;;2BAeeT,YAfLH,yBAAAA,CAeoD0B,gBAAAA,EAAgB1B,yBAAAA,CAAqC2B,WAAAA,qCAAgDnB;;;;;;UAMrKJ,uBAN4KgB,qCAAAA,CAMtGC,4BAAAA;;;;;;;;;;;;;;;;2BAgBrDlB,YAhBAH,yBAAAA,CAgB+C0B,gBAAAA,EAAgB1B,yBAAAA,CAAqC2B,WAAAA,qCAAgDnB;;;;;;UAMrKJ,uBAN4KgB,qCAAAA,CAMtGC,4BAAAA"}
|
|
@@ -56,9 +56,9 @@ const contextSizeSchema = z.object({
|
|
|
56
56
|
return count >= 1;
|
|
57
57
|
}, { message: "At least one of fraction, tokens, or messages must be provided" });
|
|
58
58
|
const keepSchema = z.object({
|
|
59
|
-
fraction: z.number().
|
|
60
|
-
tokens: z.number().
|
|
61
|
-
messages: z.number().int("Messages must be an integer").
|
|
59
|
+
fraction: z.number().min(0, "Messages must be non-negative").max(1, "Fraction must be less than or equal to 1").optional(),
|
|
60
|
+
tokens: z.number().min(0, "Tokens must be greater than or equal to 0").optional(),
|
|
61
|
+
messages: z.number().int("Messages must be an integer").min(0, "Messages must be non-negative").optional()
|
|
62
62
|
}).refine((data) => {
|
|
63
63
|
const count = [
|
|
64
64
|
data.fraction,
|
|
@@ -81,22 +81,10 @@ const contextSchema = z.object({
|
|
|
81
81
|
/**
|
|
82
82
|
* Get max input tokens from model profile or fallback to model name lookup
|
|
83
83
|
*/
|
|
84
|
-
function getProfileLimits(
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
*/
|
|
89
|
-
const modelWithProfile = model;
|
|
90
|
-
if (modelWithProfile.profile && typeof modelWithProfile.profile.max_input_tokens === "number") return modelWithProfile.profile.max_input_tokens;
|
|
91
|
-
} catch {}
|
|
92
|
-
/**
|
|
93
|
-
* Fallback: try to get model name and use getModelContextSize
|
|
94
|
-
*/
|
|
95
|
-
try {
|
|
96
|
-
const modelWithName = model;
|
|
97
|
-
const modelName = modelWithName.model || modelWithName.modelName;
|
|
98
|
-
if (typeof modelName === "string") return getModelContextSize(modelName);
|
|
99
|
-
} catch {}
|
|
84
|
+
function getProfileLimits(input) {
|
|
85
|
+
if ("profile" in input && typeof input.profile === "object" && input.profile && "maxInputTokens" in input.profile && (typeof input.profile.maxInputTokens === "number" || input.profile.maxInputTokens == null)) return input.profile.maxInputTokens ?? void 0;
|
|
86
|
+
if ("model" in input && typeof input.model === "string") return getModelContextSize(input.model);
|
|
87
|
+
if ("modelName" in input && typeof input.modelName === "string") return getModelContextSize(input.modelName);
|
|
100
88
|
return void 0;
|
|
101
89
|
}
|
|
102
90
|
/**
|
|
@@ -174,8 +162,8 @@ function summarizationMiddleware(options) {
|
|
|
174
162
|
/**
|
|
175
163
|
* Merge context with user options
|
|
176
164
|
*/
|
|
177
|
-
const resolvedTrigger = runtime.context
|
|
178
|
-
const resolvedKeep = runtime.context
|
|
165
|
+
const resolvedTrigger = runtime.context?.trigger !== void 0 ? runtime.context.trigger : trigger;
|
|
166
|
+
const resolvedKeep = runtime.context?.keep !== void 0 ? runtime.context.keep : keep ?? { messages: DEFAULT_MESSAGES_TO_KEEP };
|
|
179
167
|
const validatedKeep = keepSchema.parse(resolvedKeep);
|
|
180
168
|
/**
|
|
181
169
|
* Validate trigger conditions
|
|
@@ -198,13 +186,13 @@ function summarizationMiddleware(options) {
|
|
|
198
186
|
const requiresProfile = triggerConditions.some((c) => "fraction" in c) || "fraction" in validatedKeep;
|
|
199
187
|
const model = typeof userOptions.model === "string" ? await initChatModel(userOptions.model) : userOptions.model;
|
|
200
188
|
if (requiresProfile && !getProfileLimits(model)) throw new Error("Model profile information is required to use fractional token limits. Use absolute token counts instead.");
|
|
201
|
-
const summaryPrompt = runtime.context
|
|
202
|
-
const trimTokensToSummarize = runtime.context
|
|
189
|
+
const summaryPrompt = runtime.context?.summaryPrompt === DEFAULT_SUMMARY_PROMPT ? userOptions.summaryPrompt ?? DEFAULT_SUMMARY_PROMPT : runtime.context?.summaryPrompt ?? userOptions.summaryPrompt ?? DEFAULT_SUMMARY_PROMPT;
|
|
190
|
+
const trimTokensToSummarize = runtime.context?.trimTokensToSummarize !== void 0 ? runtime.context.trimTokensToSummarize : userOptions.trimTokensToSummarize ?? DEFAULT_TRIM_TOKEN_LIMIT;
|
|
203
191
|
/**
|
|
204
192
|
* Ensure all messages have IDs
|
|
205
193
|
*/
|
|
206
194
|
ensureMessageIds(state.messages);
|
|
207
|
-
const tokenCounter = runtime.context
|
|
195
|
+
const tokenCounter = runtime.context?.tokenCounter !== void 0 ? runtime.context.tokenCounter : userOptions.tokenCounter ?? countTokensApproximately;
|
|
208
196
|
const totalTokens = await tokenCounter(state.messages);
|
|
209
197
|
const doSummarize = await shouldSummarize(state.messages, totalTokens, triggerConditions, model);
|
|
210
198
|
if (!doSummarize) return;
|
|
@@ -466,5 +454,5 @@ async function trimMessagesForSummary(messages, tokenCounter, trimTokensToSummar
|
|
|
466
454
|
}
|
|
467
455
|
|
|
468
456
|
//#endregion
|
|
469
|
-
export { summarizationMiddleware };
|
|
457
|
+
export { contextSizeSchema, getProfileLimits, keepSchema, summarizationMiddleware };
|
|
470
458
|
//# sourceMappingURL=summarization.js.map
|