langchain 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/agents/ReactAgent.cjs +21 -41
  3. package/dist/agents/ReactAgent.cjs.map +1 -1
  4. package/dist/agents/ReactAgent.js +21 -41
  5. package/dist/agents/ReactAgent.js.map +1 -1
  6. package/dist/agents/annotation.cjs +7 -4
  7. package/dist/agents/annotation.cjs.map +1 -1
  8. package/dist/agents/annotation.js +8 -5
  9. package/dist/agents/annotation.js.map +1 -1
  10. package/dist/agents/middleware/contextEditing.d.cts.map +1 -1
  11. package/dist/agents/middleware/contextEditing.d.ts.map +1 -1
  12. package/dist/agents/middleware/dynamicSystemPrompt.d.cts.map +1 -1
  13. package/dist/agents/middleware/dynamicSystemPrompt.d.ts.map +1 -1
  14. package/dist/agents/middleware/hitl.cjs +7 -2
  15. package/dist/agents/middleware/hitl.cjs.map +1 -1
  16. package/dist/agents/middleware/hitl.d.cts.map +1 -1
  17. package/dist/agents/middleware/hitl.d.ts.map +1 -1
  18. package/dist/agents/middleware/hitl.js +7 -2
  19. package/dist/agents/middleware/hitl.js.map +1 -1
  20. package/dist/agents/middleware/index.cjs +2 -1
  21. package/dist/agents/middleware/index.js +2 -1
  22. package/dist/agents/middleware/llmToolSelector.d.cts +4 -4
  23. package/dist/agents/middleware/llmToolSelector.d.cts.map +1 -1
  24. package/dist/agents/middleware/{callLimit.cjs → modelCallLimit.cjs} +22 -7
  25. package/dist/agents/middleware/modelCallLimit.cjs.map +1 -0
  26. package/dist/agents/middleware/{callLimit.d.cts → modelCallLimit.d.cts} +12 -3
  27. package/dist/agents/middleware/modelCallLimit.d.cts.map +1 -0
  28. package/dist/agents/middleware/{callLimit.d.ts → modelCallLimit.d.ts} +12 -3
  29. package/dist/agents/middleware/modelCallLimit.d.ts.map +1 -0
  30. package/dist/agents/middleware/{callLimit.js → modelCallLimit.js} +22 -7
  31. package/dist/agents/middleware/modelCallLimit.js.map +1 -0
  32. package/dist/agents/middleware/promptCaching.d.cts.map +1 -1
  33. package/dist/agents/middleware/promptCaching.d.ts.map +1 -1
  34. package/dist/agents/middleware/summarization.cjs +274 -52
  35. package/dist/agents/middleware/summarization.cjs.map +1 -1
  36. package/dist/agents/middleware/summarization.d.cts +326 -30
  37. package/dist/agents/middleware/summarization.d.cts.map +1 -1
  38. package/dist/agents/middleware/summarization.d.ts +325 -29
  39. package/dist/agents/middleware/summarization.d.ts.map +1 -1
  40. package/dist/agents/middleware/summarization.js +276 -54
  41. package/dist/agents/middleware/summarization.js.map +1 -1
  42. package/dist/agents/middleware/todoListMiddleware.d.cts.map +1 -1
  43. package/dist/agents/middleware/todoListMiddleware.d.ts.map +1 -1
  44. package/dist/agents/middleware/toolCallLimit.cjs +215 -93
  45. package/dist/agents/middleware/toolCallLimit.cjs.map +1 -1
  46. package/dist/agents/middleware/toolCallLimit.d.cts +48 -37
  47. package/dist/agents/middleware/toolCallLimit.d.cts.map +1 -1
  48. package/dist/agents/middleware/toolCallLimit.d.ts +48 -37
  49. package/dist/agents/middleware/toolCallLimit.d.ts.map +1 -1
  50. package/dist/agents/middleware/toolCallLimit.js +216 -94
  51. package/dist/agents/middleware/toolCallLimit.js.map +1 -1
  52. package/dist/agents/middleware/toolRetry.cjs +224 -0
  53. package/dist/agents/middleware/toolRetry.cjs.map +1 -0
  54. package/dist/agents/middleware/toolRetry.d.cts +179 -0
  55. package/dist/agents/middleware/toolRetry.d.cts.map +1 -0
  56. package/dist/agents/middleware/toolRetry.d.ts +179 -0
  57. package/dist/agents/middleware/toolRetry.d.ts.map +1 -0
  58. package/dist/agents/middleware/toolRetry.js +223 -0
  59. package/dist/agents/middleware/toolRetry.js.map +1 -0
  60. package/dist/agents/middleware/types.d.cts +21 -19
  61. package/dist/agents/middleware/types.d.cts.map +1 -1
  62. package/dist/agents/middleware/types.d.ts +21 -19
  63. package/dist/agents/middleware/types.d.ts.map +1 -1
  64. package/dist/agents/middleware/utils.cjs +7 -0
  65. package/dist/agents/middleware/utils.cjs.map +1 -1
  66. package/dist/agents/middleware/utils.d.cts.map +1 -1
  67. package/dist/agents/middleware/utils.d.ts.map +1 -1
  68. package/dist/agents/middleware/utils.js +7 -1
  69. package/dist/agents/middleware/utils.js.map +1 -1
  70. package/dist/agents/middleware.cjs.map +1 -1
  71. package/dist/agents/middleware.d.cts +4 -4
  72. package/dist/agents/middleware.d.cts.map +1 -1
  73. package/dist/agents/middleware.d.ts +4 -4
  74. package/dist/agents/middleware.d.ts.map +1 -1
  75. package/dist/agents/middleware.js.map +1 -1
  76. package/dist/agents/nodes/AgentNode.cjs +21 -51
  77. package/dist/agents/nodes/AgentNode.cjs.map +1 -1
  78. package/dist/agents/nodes/AgentNode.js +23 -53
  79. package/dist/agents/nodes/AgentNode.js.map +1 -1
  80. package/dist/agents/nodes/ToolNode.cjs +12 -18
  81. package/dist/agents/nodes/ToolNode.cjs.map +1 -1
  82. package/dist/agents/nodes/ToolNode.js +12 -18
  83. package/dist/agents/nodes/ToolNode.js.map +1 -1
  84. package/dist/agents/nodes/middleware.cjs +9 -7
  85. package/dist/agents/nodes/middleware.cjs.map +1 -1
  86. package/dist/agents/nodes/middleware.js +10 -8
  87. package/dist/agents/nodes/middleware.js.map +1 -1
  88. package/dist/agents/nodes/types.d.cts +1 -1
  89. package/dist/agents/nodes/types.d.cts.map +1 -1
  90. package/dist/agents/nodes/types.d.ts +1 -1
  91. package/dist/agents/nodes/types.d.ts.map +1 -1
  92. package/dist/agents/nodes/utils.cjs +5 -1
  93. package/dist/agents/nodes/utils.cjs.map +1 -1
  94. package/dist/agents/nodes/utils.js +5 -1
  95. package/dist/agents/nodes/utils.js.map +1 -1
  96. package/dist/agents/responses.cjs +0 -1
  97. package/dist/agents/responses.js +1 -1
  98. package/dist/agents/runtime.d.cts +11 -27
  99. package/dist/agents/runtime.d.cts.map +1 -1
  100. package/dist/agents/runtime.d.ts +11 -27
  101. package/dist/agents/runtime.d.ts.map +1 -1
  102. package/dist/agents/state.cjs +45 -0
  103. package/dist/agents/state.cjs.map +1 -0
  104. package/dist/agents/state.js +44 -0
  105. package/dist/agents/state.js.map +1 -0
  106. package/dist/agents/types.d.cts +1 -1
  107. package/dist/agents/types.d.cts.map +1 -1
  108. package/dist/agents/types.d.ts +1 -1
  109. package/dist/agents/types.d.ts.map +1 -1
  110. package/dist/agents/utils.cjs +10 -2
  111. package/dist/agents/utils.cjs.map +1 -1
  112. package/dist/agents/utils.js +10 -2
  113. package/dist/agents/utils.js.map +1 -1
  114. package/dist/chat_models/universal.cjs +2 -2
  115. package/dist/chat_models/universal.cjs.map +1 -1
  116. package/dist/chat_models/universal.js +2 -2
  117. package/dist/chat_models/universal.js.map +1 -1
  118. package/dist/index.cjs +6 -18
  119. package/dist/index.cjs.map +1 -1
  120. package/dist/index.d.cts +4 -4
  121. package/dist/index.d.ts +4 -4
  122. package/dist/index.js +4 -5
  123. package/dist/index.js.map +1 -1
  124. package/package.json +7 -7
  125. package/dist/agents/middleware/callLimit.cjs.map +0 -1
  126. package/dist/agents/middleware/callLimit.d.cts.map +0 -1
  127. package/dist/agents/middleware/callLimit.d.ts.map +0 -1
  128. package/dist/agents/middleware/callLimit.js.map +0 -1
  129. package/dist/agents/tools.d.cts +0 -9
  130. package/dist/agents/tools.d.cts.map +0 -1
  131. package/dist/agents/tools.d.ts +0 -9
  132. package/dist/agents/tools.d.ts.map +0 -1
@@ -1,31 +1,192 @@
1
1
  import { AgentMiddleware } from "./types.cjs";
2
- import * as _langchain_core_language_models_base0 from "@langchain/core/language_models/base";
2
+ import * as _langchain_core_language_models_base3 from "@langchain/core/language_models/base";
3
3
  import { BaseLanguageModel } from "@langchain/core/language_models/base";
4
+ import * as _langchain_core_messages0 from "@langchain/core/messages";
5
+ import { BaseMessage } from "@langchain/core/messages";
4
6
  import { InferInteropZodInput } from "@langchain/core/utils/types";
5
7
  import { z } from "zod/v3";
6
8
 
7
9
  //#region src/agents/middleware/summarization.d.ts
10
+
8
11
  declare const contextSchema: z.ZodObject<{
9
- model: z.ZodType<BaseLanguageModel<any, _langchain_core_language_models_base0.BaseLanguageModelCallOptions>, z.ZodTypeDef, BaseLanguageModel<any, _langchain_core_language_models_base0.BaseLanguageModelCallOptions>>;
10
- maxTokensBeforeSummary: z.ZodOptional<z.ZodNumber>;
11
- messagesToKeep: z.ZodDefault<z.ZodNumber>;
12
- tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodAny, "many">], z.ZodUnknown>, z.ZodUnion<[z.ZodNumber, z.ZodPromise<z.ZodNumber>]>>>;
12
+ /**
13
+ * Model to use for summarization
14
+ */
15
+ model: z.ZodType<string | BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions>, z.ZodTypeDef, string | BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions>>;
16
+ /**
17
+ * Trigger conditions for summarization.
18
+ * Can be a single condition object (all properties must be met) or an array of conditions (any condition must be met).
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * // Single condition: trigger if tokens >= 5000 AND messages >= 3
23
+ * trigger: { tokens: 5000, messages: 3 }
24
+ *
25
+ * // Multiple conditions: trigger if (tokens >= 5000 AND messages >= 3) OR (tokens >= 3000 AND messages >= 6)
26
+ * trigger: [
27
+ * { tokens: 5000, messages: 3 },
28
+ * { tokens: 3000, messages: 6 }
29
+ * ]
30
+ * ```
31
+ */
32
+ trigger: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodObject<{
33
+ /**
34
+ * Fraction of the model's context size to use as the trigger
35
+ */
36
+ fraction: z.ZodOptional<z.ZodNumber>;
37
+ /**
38
+ * Number of tokens to use as the trigger
39
+ */
40
+ tokens: z.ZodOptional<z.ZodNumber>;
41
+ /**
42
+ * Number of messages to use as the trigger
43
+ */
44
+ messages: z.ZodOptional<z.ZodNumber>;
45
+ }, "strip", z.ZodTypeAny, {
46
+ fraction?: number | undefined;
47
+ tokens?: number | undefined;
48
+ messages?: number | undefined;
49
+ }, {
50
+ fraction?: number | undefined;
51
+ tokens?: number | undefined;
52
+ messages?: number | undefined;
53
+ }>, {
54
+ fraction?: number | undefined;
55
+ tokens?: number | undefined;
56
+ messages?: number | undefined;
57
+ }, {
58
+ fraction?: number | undefined;
59
+ tokens?: number | undefined;
60
+ messages?: number | undefined;
61
+ }>, z.ZodArray<z.ZodEffects<z.ZodObject<{
62
+ /**
63
+ * Fraction of the model's context size to use as the trigger
64
+ */
65
+ fraction: z.ZodOptional<z.ZodNumber>;
66
+ /**
67
+ * Number of tokens to use as the trigger
68
+ */
69
+ tokens: z.ZodOptional<z.ZodNumber>;
70
+ /**
71
+ * Number of messages to use as the trigger
72
+ */
73
+ messages: z.ZodOptional<z.ZodNumber>;
74
+ }, "strip", z.ZodTypeAny, {
75
+ fraction?: number | undefined;
76
+ tokens?: number | undefined;
77
+ messages?: number | undefined;
78
+ }, {
79
+ fraction?: number | undefined;
80
+ tokens?: number | undefined;
81
+ messages?: number | undefined;
82
+ }>, {
83
+ fraction?: number | undefined;
84
+ tokens?: number | undefined;
85
+ messages?: number | undefined;
86
+ }, {
87
+ fraction?: number | undefined;
88
+ tokens?: number | undefined;
89
+ messages?: number | undefined;
90
+ }>, "many">]>>;
91
+ /**
92
+ * Keep conditions for summarization
93
+ */
94
+ keep: z.ZodOptional<z.ZodEffects<z.ZodObject<{
95
+ /**
96
+ * Fraction of the model's context size to keep
97
+ */
98
+ fraction: z.ZodOptional<z.ZodNumber>;
99
+ /**
100
+ * Number of tokens to keep
101
+ */
102
+ tokens: z.ZodOptional<z.ZodNumber>;
103
+ messages: z.ZodOptional<z.ZodNumber>;
104
+ }, "strip", z.ZodTypeAny, {
105
+ fraction?: number | undefined;
106
+ tokens?: number | undefined;
107
+ messages?: number | undefined;
108
+ }, {
109
+ fraction?: number | undefined;
110
+ tokens?: number | undefined;
111
+ messages?: number | undefined;
112
+ }>, {
113
+ fraction?: number | undefined;
114
+ tokens?: number | undefined;
115
+ messages?: number | undefined;
116
+ }, {
117
+ fraction?: number | undefined;
118
+ tokens?: number | undefined;
119
+ messages?: number | undefined;
120
+ }>>;
121
+ /**
122
+ * Token counter function to use for summarization
123
+ */
124
+ tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodType<BaseMessage<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>, z.ZodTypeDef, BaseMessage<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>>, "many">], z.ZodUnknown>, z.ZodUnion<[z.ZodNumber, z.ZodPromise<z.ZodNumber>]>>>;
125
+ /**
126
+ * Summary prompt to use for summarization
127
+ * @default {@link DEFAULT_SUMMARY_PROMPT}
128
+ */
13
129
  summaryPrompt: z.ZodDefault<z.ZodString>;
14
- summaryPrefix: z.ZodDefault<z.ZodString>;
130
+ /**
131
+ * Number of tokens to trim to before summarizing
132
+ */
133
+ trimTokensToSummarize: z.ZodOptional<z.ZodNumber>;
134
+ /**
135
+ * Prefix to add to the summary
136
+ */
137
+ summaryPrefix: z.ZodOptional<z.ZodString>;
138
+ /**
139
+ * @deprecated Use `trigger: { tokens: value }` instead.
140
+ */
141
+ maxTokensBeforeSummary: z.ZodOptional<z.ZodNumber>;
142
+ /**
143
+ * @deprecated Use `keep: { messages: value }` instead.
144
+ */
145
+ messagesToKeep: z.ZodOptional<z.ZodNumber>;
15
146
  }, "strip", z.ZodTypeAny, {
16
- model: BaseLanguageModel<any, _langchain_core_language_models_base0.BaseLanguageModelCallOptions>;
17
- maxTokensBeforeSummary?: number | undefined;
18
- messagesToKeep: number;
19
- tokenCounter?: ((args_0: any[], ...args: unknown[]) => number | Promise<number>) | undefined;
147
+ model: string | BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions>;
148
+ trigger?: {
149
+ fraction?: number | undefined;
150
+ tokens?: number | undefined;
151
+ messages?: number | undefined;
152
+ }[] | {
153
+ fraction?: number | undefined;
154
+ tokens?: number | undefined;
155
+ messages?: number | undefined;
156
+ } | undefined;
157
+ keep?: {
158
+ fraction?: number | undefined;
159
+ tokens?: number | undefined;
160
+ messages?: number | undefined;
161
+ } | undefined;
162
+ tokenCounter?: ((args_0: BaseMessage<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;
20
163
  summaryPrompt: string;
21
- summaryPrefix: string;
22
- }, {
23
- model: BaseLanguageModel<any, _langchain_core_language_models_base0.BaseLanguageModelCallOptions>;
164
+ trimTokensToSummarize?: number | undefined;
165
+ summaryPrefix?: string | undefined;
24
166
  maxTokensBeforeSummary?: number | undefined;
25
167
  messagesToKeep?: number | undefined;
26
- tokenCounter?: ((args_0: any[], ...args: unknown[]) => number | Promise<number>) | undefined;
168
+ }, {
169
+ model: string | BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions>;
170
+ trigger?: {
171
+ fraction?: number | undefined;
172
+ tokens?: number | undefined;
173
+ messages?: number | undefined;
174
+ }[] | {
175
+ fraction?: number | undefined;
176
+ tokens?: number | undefined;
177
+ messages?: number | undefined;
178
+ } | undefined;
179
+ keep?: {
180
+ fraction?: number | undefined;
181
+ tokens?: number | undefined;
182
+ messages?: number | undefined;
183
+ } | undefined;
184
+ tokenCounter?: ((args_0: BaseMessage<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;
27
185
  summaryPrompt?: string | undefined;
186
+ trimTokensToSummarize?: number | undefined;
28
187
  summaryPrefix?: string | undefined;
188
+ maxTokensBeforeSummary?: number | undefined;
189
+ messagesToKeep?: number | undefined;
29
190
  }>;
30
191
  type SummarizationMiddlewareConfig = InferInteropZodInput<typeof contextSchema>;
31
192
  /**
@@ -43,14 +204,31 @@ type SummarizationMiddlewareConfig = InferInteropZodInput<typeof contextSchema>;
43
204
  * import { summarizationMiddleware } from "langchain";
44
205
  * import { createAgent } from "langchain";
45
206
  *
46
- * const agent = createAgent({
207
+ * // Single condition: trigger if tokens >= 4000 AND messages >= 10
208
+ * const agent1 = createAgent({
209
+ * llm: model,
210
+ * tools: [getWeather],
211
+ * middleware: [
212
+ * summarizationMiddleware({
213
+ * model: new ChatOpenAI({ model: "gpt-4o" }),
214
+ * trigger: { tokens: 4000, messages: 10 },
215
+ * keep: { messages: 20 },
216
+ * })
217
+ * ],
218
+ * });
219
+ *
220
+ * // Multiple conditions: trigger if (tokens >= 5000 AND messages >= 3) OR (tokens >= 3000 AND messages >= 6)
221
+ * const agent2 = createAgent({
47
222
  * llm: model,
48
223
  * tools: [getWeather],
49
224
  * middleware: [
50
225
  * summarizationMiddleware({
51
226
  * model: new ChatOpenAI({ model: "gpt-4o" }),
52
- * maxTokensBeforeSummary: 4000,
53
- * messagesToKeep: 20,
227
+ * trigger: [
228
+ * { tokens: 5000, messages: 3 },
229
+ * { tokens: 3000, messages: 6 },
230
+ * ],
231
+ * keep: { messages: 20 },
54
232
  * })
55
233
  * ],
56
234
  * });
@@ -58,26 +236,144 @@ type SummarizationMiddlewareConfig = InferInteropZodInput<typeof contextSchema>;
58
236
  * ```
59
237
  */
60
238
  declare function summarizationMiddleware(options: SummarizationMiddlewareConfig): AgentMiddleware<undefined, z.ZodObject<{
61
- model: z.ZodType<BaseLanguageModel<any, _langchain_core_language_models_base0.BaseLanguageModelCallOptions>, z.ZodTypeDef, BaseLanguageModel<any, _langchain_core_language_models_base0.BaseLanguageModelCallOptions>>;
62
- maxTokensBeforeSummary: z.ZodOptional<z.ZodNumber>;
63
- messagesToKeep: z.ZodDefault<z.ZodNumber>;
64
- tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodAny, "many">], z.ZodUnknown>, z.ZodUnion<[z.ZodNumber, z.ZodPromise<z.ZodNumber>]>>>;
239
+ trigger: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodObject<{
240
+ /**
241
+ * Fraction of the model's context size to use as the trigger
242
+ */
243
+ fraction: z.ZodOptional<z.ZodNumber>;
244
+ /**
245
+ * Number of tokens to use as the trigger
246
+ */
247
+ tokens: z.ZodOptional<z.ZodNumber>;
248
+ /**
249
+ * Number of messages to use as the trigger
250
+ */
251
+ messages: z.ZodOptional<z.ZodNumber>;
252
+ }, "strip", z.ZodTypeAny, {
253
+ fraction?: number | undefined;
254
+ tokens?: number | undefined;
255
+ messages?: number | undefined;
256
+ }, {
257
+ fraction?: number | undefined;
258
+ tokens?: number | undefined;
259
+ messages?: number | undefined;
260
+ }>, {
261
+ fraction?: number | undefined;
262
+ tokens?: number | undefined;
263
+ messages?: number | undefined;
264
+ }, {
265
+ fraction?: number | undefined;
266
+ tokens?: number | undefined;
267
+ messages?: number | undefined;
268
+ }>, z.ZodArray<z.ZodEffects<z.ZodObject<{
269
+ /**
270
+ * Fraction of the model's context size to use as the trigger
271
+ */
272
+ fraction: z.ZodOptional<z.ZodNumber>;
273
+ /**
274
+ * Number of tokens to use as the trigger
275
+ */
276
+ tokens: z.ZodOptional<z.ZodNumber>;
277
+ /**
278
+ * Number of messages to use as the trigger
279
+ */
280
+ messages: z.ZodOptional<z.ZodNumber>;
281
+ }, "strip", z.ZodTypeAny, {
282
+ fraction?: number | undefined;
283
+ tokens?: number | undefined;
284
+ messages?: number | undefined;
285
+ }, {
286
+ fraction?: number | undefined;
287
+ tokens?: number | undefined;
288
+ messages?: number | undefined;
289
+ }>, {
290
+ fraction?: number | undefined;
291
+ tokens?: number | undefined;
292
+ messages?: number | undefined;
293
+ }, {
294
+ fraction?: number | undefined;
295
+ tokens?: number | undefined;
296
+ messages?: number | undefined;
297
+ }>, "many">]>>;
298
+ keep: z.ZodOptional<z.ZodEffects<z.ZodObject<{
299
+ /**
300
+ * Fraction of the model's context size to keep
301
+ */
302
+ fraction: z.ZodOptional<z.ZodNumber>;
303
+ /**
304
+ * Number of tokens to keep
305
+ */
306
+ tokens: z.ZodOptional<z.ZodNumber>;
307
+ messages: z.ZodOptional<z.ZodNumber>;
308
+ }, "strip", z.ZodTypeAny, {
309
+ fraction?: number | undefined;
310
+ tokens?: number | undefined;
311
+ messages?: number | undefined;
312
+ }, {
313
+ fraction?: number | undefined;
314
+ tokens?: number | undefined;
315
+ messages?: number | undefined;
316
+ }>, {
317
+ fraction?: number | undefined;
318
+ tokens?: number | undefined;
319
+ messages?: number | undefined;
320
+ }, {
321
+ fraction?: number | undefined;
322
+ tokens?: number | undefined;
323
+ messages?: number | undefined;
324
+ }>>;
325
+ tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodType<BaseMessage<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>, z.ZodTypeDef, BaseMessage<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>>, "many">], z.ZodUnknown>, z.ZodUnion<[z.ZodNumber, z.ZodPromise<z.ZodNumber>]>>>;
65
326
  summaryPrompt: z.ZodDefault<z.ZodString>;
66
- summaryPrefix: z.ZodDefault<z.ZodString>;
327
+ trimTokensToSummarize: z.ZodOptional<z.ZodNumber>;
328
+ summaryPrefix: z.ZodOptional<z.ZodString>;
329
+ maxTokensBeforeSummary: z.ZodOptional<z.ZodNumber>;
330
+ messagesToKeep: z.ZodOptional<z.ZodNumber>;
331
+ } & {
332
+ model: z.ZodOptional<z.ZodType<BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions>, z.ZodTypeDef, BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions>>>;
67
333
  }, "strip", z.ZodTypeAny, {
68
- model: BaseLanguageModel<any, _langchain_core_language_models_base0.BaseLanguageModelCallOptions>;
69
- maxTokensBeforeSummary?: number | undefined;
70
- messagesToKeep: number;
71
- tokenCounter?: ((args_0: any[], ...args: unknown[]) => number | Promise<number>) | undefined;
334
+ trigger?: {
335
+ fraction?: number | undefined;
336
+ tokens?: number | undefined;
337
+ messages?: number | undefined;
338
+ }[] | {
339
+ fraction?: number | undefined;
340
+ tokens?: number | undefined;
341
+ messages?: number | undefined;
342
+ } | undefined;
343
+ keep?: {
344
+ fraction?: number | undefined;
345
+ tokens?: number | undefined;
346
+ messages?: number | undefined;
347
+ } | undefined;
348
+ tokenCounter?: ((args_0: BaseMessage<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;
72
349
  summaryPrompt: string;
73
- summaryPrefix: string;
74
- }, {
75
- model: BaseLanguageModel<any, _langchain_core_language_models_base0.BaseLanguageModelCallOptions>;
350
+ trimTokensToSummarize?: number | undefined;
351
+ summaryPrefix?: string | undefined;
76
352
  maxTokensBeforeSummary?: number | undefined;
77
353
  messagesToKeep?: number | undefined;
78
- tokenCounter?: ((args_0: any[], ...args: unknown[]) => number | Promise<number>) | undefined;
354
+ model?: BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions> | undefined;
355
+ }, {
356
+ trigger?: {
357
+ fraction?: number | undefined;
358
+ tokens?: number | undefined;
359
+ messages?: number | undefined;
360
+ }[] | {
361
+ fraction?: number | undefined;
362
+ tokens?: number | undefined;
363
+ messages?: number | undefined;
364
+ } | undefined;
365
+ keep?: {
366
+ fraction?: number | undefined;
367
+ tokens?: number | undefined;
368
+ messages?: number | undefined;
369
+ } | undefined;
370
+ tokenCounter?: ((args_0: BaseMessage<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;
79
371
  summaryPrompt?: string | undefined;
372
+ trimTokensToSummarize?: number | undefined;
80
373
  summaryPrefix?: string | undefined;
374
+ maxTokensBeforeSummary?: number | undefined;
375
+ messagesToKeep?: number | undefined;
376
+ model?: BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions> | undefined;
81
377
  }>, any>;
82
378
  //#endregion
83
379
  export { SummarizationMiddlewareConfig, summarizationMiddleware };
@@ -1 +1 @@
1
- {"version":3,"file":"summarization.d.cts","names":["__types_js0","z","BaseLanguageModel","InferInteropZodInput","contextSchema","_langchain_core_language_models_base0","BaseLanguageModelCallOptions","ZodTypeDef","ZodType","ZodNumber","ZodOptional","ZodDefault","ZodAny","ZodArray","ZodUnknown","ZodTuple","ZodPromise","ZodUnion","ZodFunction","ZodString","ZodTypeAny","Promise","ZodObject","SummarizationMiddlewareConfig","summarizationMiddleware","AgentMiddleware"],"sources":["../../../src/agents/middleware/summarization.d.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport { BaseLanguageModel } from \"@langchain/core/language_models/base\";\nimport { InferInteropZodInput } from \"@langchain/core/utils/types\";\ndeclare const contextSchema: z.ZodObject<{\n model: z.ZodType<BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>, z.ZodTypeDef, BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>>;\n maxTokensBeforeSummary: z.ZodOptional<z.ZodNumber>;\n messagesToKeep: z.ZodDefault<z.ZodNumber>;\n tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodAny, \"many\">], z.ZodUnknown>, z.ZodUnion<[z.ZodNumber, z.ZodPromise<z.ZodNumber>]>>>;\n summaryPrompt: z.ZodDefault<z.ZodString>;\n summaryPrefix: z.ZodDefault<z.ZodString>;\n}, \"strip\", z.ZodTypeAny, {\n model: BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep: number;\n tokenCounter?: ((args_0: any[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt: string;\n summaryPrefix: string;\n}, {\n model: BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n tokenCounter?: ((args_0: any[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt?: string | undefined;\n summaryPrefix?: string | 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 * const agent = createAgent({\n * llm: model,\n * tools: [getWeather],\n * middleware: [\n * summarizationMiddleware({\n * model: new ChatOpenAI({ model: \"gpt-4o\" }),\n * maxTokensBeforeSummary: 4000,\n * messagesToKeep: 20,\n * })\n * ],\n * });\n *\n * ```\n */\nexport declare function summarizationMiddleware(options: SummarizationMiddlewareConfig): import(\"./types.js\").AgentMiddleware<undefined, z.ZodObject<{\n model: z.ZodType<BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>, z.ZodTypeDef, BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>>;\n maxTokensBeforeSummary: z.ZodOptional<z.ZodNumber>;\n messagesToKeep: z.ZodDefault<z.ZodNumber>;\n tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodAny, \"many\">], z.ZodUnknown>, z.ZodUnion<[z.ZodNumber, z.ZodPromise<z.ZodNumber>]>>>;\n summaryPrompt: z.ZodDefault<z.ZodString>;\n summaryPrefix: z.ZodDefault<z.ZodString>;\n}, \"strip\", z.ZodTypeAny, {\n model: BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep: number;\n tokenCounter?: ((args_0: any[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt: string;\n summaryPrefix: string;\n}, {\n model: BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n tokenCounter?: ((args_0: any[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt?: string | undefined;\n summaryPrefix?: string | undefined;\n}>, any>;\nexport {};\n"],"mappings":"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"}
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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"}