@@ -119,11 +119,21 @@ describe("getMaxTokens", () => {
119119 // Max tokens = 100000 - 50000 = 50000
120120
121121 // Below max tokens - no truncation
122- const result1 = truncateConversationIfNeeded ( messages , 49999 , modelInfo )
122+ const result1 = truncateConversationIfNeeded ( {
123+ messages,
124+ totalTokens : 49999 ,
125+ contextWindow : modelInfo . contextWindow ,
126+ maxTokens : modelInfo . maxTokens ,
127+ } )
123128 expect ( result1 ) . toEqual ( messages )
124129
125130 // Above max tokens - truncate
126- const result2 = truncateConversationIfNeeded ( messages , 50001 , modelInfo )
131+ const result2 = truncateConversationIfNeeded ( {
132+ messages,
133+ totalTokens : 50001 ,
134+ contextWindow : modelInfo . contextWindow ,
135+ maxTokens : modelInfo . maxTokens ,
136+ } )
127137 expect ( result2 ) . not . toEqual ( messages )
128138 expect ( result2 . length ) . toBe ( 3 ) // Truncated with 0.5 fraction
129139 } )
@@ -133,11 +143,21 @@ describe("getMaxTokens", () => {
133143 // Max tokens = 100000 - (100000 * 0.2) = 80000
134144
135145 // Below max tokens - no truncation
136- const result1 = truncateConversationIfNeeded ( messages , 79999 , modelInfo )
146+ const result1 = truncateConversationIfNeeded ( {
147+ messages,
148+ totalTokens : 79999 ,
149+ contextWindow : modelInfo . contextWindow ,
150+ maxTokens : modelInfo . maxTokens ,
151+ } )
137152 expect ( result1 ) . toEqual ( messages )
138153
139154 // Above max tokens - truncate
140- const result2 = truncateConversationIfNeeded ( messages , 80001 , modelInfo )
155+ const result2 = truncateConversationIfNeeded ( {
156+ messages,
157+ totalTokens : 80001 ,
158+ contextWindow : modelInfo . contextWindow ,
159+ maxTokens : modelInfo . maxTokens ,
160+ } )
141161 expect ( result2 ) . not . toEqual ( messages )
142162 expect ( result2 . length ) . toBe ( 3 ) // Truncated with 0.5 fraction
143163 } )
@@ -147,11 +167,21 @@ describe("getMaxTokens", () => {
147167 // Max tokens = 50000 - 10000 = 40000
148168
149169 // Below max tokens - no truncation
150- const result1 = truncateConversationIfNeeded ( messages , 39999 , modelInfo )
170+ const result1 = truncateConversationIfNeeded ( {
171+ messages,
172+ totalTokens : 39999 ,
173+ contextWindow : modelInfo . contextWindow ,
174+ maxTokens : modelInfo . maxTokens ,
175+ } )
151176 expect ( result1 ) . toEqual ( messages )
152177
153178 // Above max tokens - truncate
154- const result2 = truncateConversationIfNeeded ( messages , 40001 , modelInfo )
179+ const result2 = truncateConversationIfNeeded ( {
180+ messages,
181+ totalTokens : 40001 ,
182+ contextWindow : modelInfo . contextWindow ,
183+ maxTokens : modelInfo . maxTokens ,
184+ } )
155185 expect ( result2 ) . not . toEqual ( messages )
156186 expect ( result2 . length ) . toBe ( 3 ) // Truncated with 0.5 fraction
157187 } )
@@ -161,11 +191,21 @@ describe("getMaxTokens", () => {
161191 // Max tokens = 200000 - 30000 = 170000
162192
163193 // Below max tokens - no truncation
164- const result1 = truncateConversationIfNeeded ( messages , 169999 , modelInfo )
194+ const result1 = truncateConversationIfNeeded ( {
195+ messages,
196+ totalTokens : 169999 ,
197+ contextWindow : modelInfo . contextWindow ,
198+ maxTokens : modelInfo . maxTokens ,
199+ } )
165200 expect ( result1 ) . toEqual ( messages )
166201
167202 // Above max tokens - truncate
168- const result2 = truncateConversationIfNeeded ( messages , 170001 , modelInfo )
203+ const result2 = truncateConversationIfNeeded ( {
204+ messages,
205+ totalTokens : 170001 ,
206+ contextWindow : modelInfo . contextWindow ,
207+ maxTokens : modelInfo . maxTokens ,
208+ } )
169209 expect ( result2 ) . not . toEqual ( messages )
170210 expect ( result2 . length ) . toBe ( 3 ) // Truncated with 0.5 fraction
171211 } )
@@ -194,7 +234,12 @@ describe("truncateConversationIfNeeded", () => {
194234 const maxTokens = 100000 - 30000 // 70000
195235 const totalTokens = 69999 // Below threshold
196236
197- const result = truncateConversationIfNeeded ( messages , totalTokens , modelInfo )
237+ const result = truncateConversationIfNeeded ( {
238+ messages,
239+ totalTokens,
240+ contextWindow : modelInfo . contextWindow ,
241+ maxTokens : modelInfo . maxTokens ,
242+ } )
198243 expect ( result ) . toEqual ( messages ) // No truncation occurs
199244 } )
200245
@@ -207,7 +252,12 @@ describe("truncateConversationIfNeeded", () => {
207252 // With 4 messages after the first, 0.5 fraction means remove 2 messages
208253 const expectedResult = [ messages [ 0 ] , messages [ 3 ] , messages [ 4 ] ]
209254
210- const result = truncateConversationIfNeeded ( messages , totalTokens , modelInfo )
255+ const result = truncateConversationIfNeeded ( {
256+ messages,
257+ totalTokens,
258+ contextWindow : modelInfo . contextWindow ,
259+ maxTokens : modelInfo . maxTokens ,
260+ } )
211261 expect ( result ) . toEqual ( expectedResult )
212262 } )
213263
@@ -218,14 +268,38 @@ describe("truncateConversationIfNeeded", () => {
218268
219269 // Test below threshold
220270 const belowThreshold = 69999
221- expect ( truncateConversationIfNeeded ( messages , belowThreshold , modelInfo1 ) ) . toEqual (
222- truncateConversationIfNeeded ( messages , belowThreshold , modelInfo2 ) ,
271+ expect (
272+ truncateConversationIfNeeded ( {
273+ messages,
274+ totalTokens : belowThreshold ,
275+ contextWindow : modelInfo1 . contextWindow ,
276+ maxTokens : modelInfo1 . maxTokens ,
277+ } ) ,
278+ ) . toEqual (
279+ truncateConversationIfNeeded ( {
280+ messages,
281+ totalTokens : belowThreshold ,
282+ contextWindow : modelInfo2 . contextWindow ,
283+ maxTokens : modelInfo2 . maxTokens ,
284+ } ) ,
223285 )
224286
225287 // Test above threshold
226288 const aboveThreshold = 70001
227- expect ( truncateConversationIfNeeded ( messages , aboveThreshold , modelInfo1 ) ) . toEqual (
228- truncateConversationIfNeeded ( messages , aboveThreshold , modelInfo2 ) ,
289+ expect (
290+ truncateConversationIfNeeded ( {
291+ messages,
292+ totalTokens : aboveThreshold ,
293+ contextWindow : modelInfo1 . contextWindow ,
294+ maxTokens : modelInfo1 . maxTokens ,
295+ } ) ,
296+ ) . toEqual (
297+ truncateConversationIfNeeded ( {
298+ messages,
299+ totalTokens : aboveThreshold ,
300+ contextWindow : modelInfo2 . contextWindow ,
301+ maxTokens : modelInfo2 . maxTokens ,
302+ } ) ,
229303 )
230304 } )
231305} )
0 commit comments