@@ -37,6 +37,7 @@ class MockApiHandler extends BaseProvider {
3737
3838// Create a singleton instance for tests
3939const mockApiHandler = new MockApiHandler ( )
40+ const taskId = "test-task-id"
4041
4142/**
4243 * Tests for the truncateConversation function
@@ -49,7 +50,7 @@ describe("truncateConversation", () => {
4950 { role : "user" , content : "Third message" } ,
5051 ]
5152
52- const result = truncateConversation ( messages , 0.5 )
53+ const result = truncateConversation ( messages , 0.5 , taskId )
5354
5455 // With 2 messages after the first, 0.5 fraction means remove 1 message
5556 // But 1 is odd, so it rounds down to 0 (to make it even)
@@ -70,7 +71,7 @@ describe("truncateConversation", () => {
7071
7172 // 4 messages excluding first, 0.5 fraction = 2 messages to remove
7273 // 2 is already even, so no rounding needed
73- const result = truncateConversation ( messages , 0.5 )
74+ const result = truncateConversation ( messages , 0.5 , taskId )
7475
7576 expect ( result . length ) . toBe ( 3 )
7677 expect ( result [ 0 ] ) . toEqual ( messages [ 0 ] )
@@ -91,7 +92,7 @@ describe("truncateConversation", () => {
9192
9293 // 6 messages excluding first, 0.3 fraction = 1.8 messages to remove
9394 // 1.8 rounds down to 1, then to 0 to make it even
94- const result = truncateConversation ( messages , 0.3 )
95+ const result = truncateConversation ( messages , 0.3 , taskId )
9596
9697 expect ( result . length ) . toBe ( 7 ) // No messages removed
9798 expect ( result ) . toEqual ( messages )
@@ -104,7 +105,7 @@ describe("truncateConversation", () => {
104105 { role : "user" , content : "Third message" } ,
105106 ]
106107
107- const result = truncateConversation ( messages , 0 )
108+ const result = truncateConversation ( messages , 0 , taskId )
108109
109110 expect ( result ) . toEqual ( messages )
110111 } )
@@ -119,7 +120,7 @@ describe("truncateConversation", () => {
119120
120121 // 3 messages excluding first, 1.0 fraction = 3 messages to remove
121122 // But 3 is odd, so it rounds down to 2 to make it even
122- const result = truncateConversation ( messages , 1 )
123+ const result = truncateConversation ( messages , 1 , taskId )
123124
124125 expect ( result . length ) . toBe ( 2 )
125126 expect ( result [ 0 ] ) . toEqual ( messages [ 0 ] )
@@ -251,6 +252,7 @@ describe("truncateConversationIfNeeded", () => {
251252 autoCondenseContext : false ,
252253 autoCondenseContextPercent : 100 ,
253254 systemPrompt : "System prompt" ,
255+ taskId,
254256 } )
255257
256258 // Check the new return type
@@ -282,6 +284,7 @@ describe("truncateConversationIfNeeded", () => {
282284 autoCondenseContext : false ,
283285 autoCondenseContextPercent : 100 ,
284286 systemPrompt : "System prompt" ,
287+ taskId,
285288 } )
286289
287290 expect ( result ) . toEqual ( {
@@ -311,6 +314,7 @@ describe("truncateConversationIfNeeded", () => {
311314 autoCondenseContext : false ,
312315 autoCondenseContextPercent : 100 ,
313316 systemPrompt : "System prompt" ,
317+ taskId,
314318 } )
315319
316320 const result2 = await truncateConversationIfNeeded ( {
@@ -322,6 +326,7 @@ describe("truncateConversationIfNeeded", () => {
322326 autoCondenseContext : false ,
323327 autoCondenseContextPercent : 100 ,
324328 systemPrompt : "System prompt" ,
329+ taskId,
325330 } )
326331
327332 expect ( result1 . messages ) . toEqual ( result2 . messages )
@@ -340,6 +345,7 @@ describe("truncateConversationIfNeeded", () => {
340345 autoCondenseContext : false ,
341346 autoCondenseContextPercent : 100 ,
342347 systemPrompt : "System prompt" ,
348+ taskId,
343349 } )
344350
345351 const result4 = await truncateConversationIfNeeded ( {
@@ -351,6 +357,7 @@ describe("truncateConversationIfNeeded", () => {
351357 autoCondenseContext : false ,
352358 autoCondenseContextPercent : 100 ,
353359 systemPrompt : "System prompt" ,
360+ taskId,
354361 } )
355362
356363 expect ( result3 . messages ) . toEqual ( result4 . messages )
@@ -384,6 +391,7 @@ describe("truncateConversationIfNeeded", () => {
384391 autoCondenseContext : false ,
385392 autoCondenseContextPercent : 100 ,
386393 systemPrompt : "System prompt" ,
394+ taskId,
387395 } )
388396 expect ( resultWithSmall ) . toEqual ( {
389397 messages : messagesWithSmallContent ,
@@ -416,6 +424,7 @@ describe("truncateConversationIfNeeded", () => {
416424 autoCondenseContext : false ,
417425 autoCondenseContextPercent : 100 ,
418426 systemPrompt : "System prompt" ,
427+ taskId,
419428 } )
420429 expect ( resultWithLarge . messages ) . not . toEqual ( messagesWithLargeContent ) // Should truncate
421430 expect ( resultWithLarge . summary ) . toBe ( "" )
@@ -441,6 +450,7 @@ describe("truncateConversationIfNeeded", () => {
441450 autoCondenseContext : false ,
442451 autoCondenseContextPercent : 100 ,
443452 systemPrompt : "System prompt" ,
453+ taskId,
444454 } )
445455 expect ( resultWithVeryLarge . messages ) . not . toEqual ( messagesWithVeryLargeContent ) // Should truncate
446456 expect ( resultWithVeryLarge . summary ) . toBe ( "" )
@@ -469,6 +479,7 @@ describe("truncateConversationIfNeeded", () => {
469479 autoCondenseContext : false ,
470480 autoCondenseContextPercent : 100 ,
471481 systemPrompt : "System prompt" ,
482+ taskId,
472483 } )
473484 expect ( result ) . toEqual ( {
474485 messages : expectedResult ,
@@ -510,10 +521,11 @@ describe("truncateConversationIfNeeded", () => {
510521 autoCondenseContext : true ,
511522 autoCondenseContextPercent : 100 ,
512523 systemPrompt : "System prompt" ,
524+ taskId,
513525 } )
514526
515527 // Verify summarizeConversation was called with the right parameters
516- expect ( summarizeSpy ) . toHaveBeenCalledWith ( messagesWithSmallContent , mockApiHandler , "System prompt" )
528+ expect ( summarizeSpy ) . toHaveBeenCalledWith ( messagesWithSmallContent , mockApiHandler , "System prompt" , taskId )
517529
518530 // Verify the result contains the summary information
519531 expect ( result ) . toMatchObject ( {
@@ -557,6 +569,7 @@ describe("truncateConversationIfNeeded", () => {
557569 autoCondenseContext : true ,
558570 autoCondenseContextPercent : 100 ,
559571 systemPrompt : "System prompt" ,
572+ taskId,
560573 } )
561574
562575 // Verify summarizeConversation was called
@@ -594,6 +607,7 @@ describe("truncateConversationIfNeeded", () => {
594607 autoCondenseContext : false ,
595608 autoCondenseContextPercent : 50 , // This shouldn't matter since autoCondenseContext is false
596609 systemPrompt : "System prompt" ,
610+ taskId,
597611 } )
598612
599613 // Verify summarizeConversation was not called
@@ -645,10 +659,11 @@ describe("truncateConversationIfNeeded", () => {
645659 autoCondenseContext : true ,
646660 autoCondenseContextPercent : 50 , // Set threshold to 50% - our tokens are at 60%
647661 systemPrompt : "System prompt" ,
662+ taskId,
648663 } )
649664
650665 // Verify summarizeConversation was called with the right parameters
651- expect ( summarizeSpy ) . toHaveBeenCalledWith ( messagesWithSmallContent , mockApiHandler , "System prompt" )
666+ expect ( summarizeSpy ) . toHaveBeenCalledWith ( messagesWithSmallContent , mockApiHandler , "System prompt" , taskId )
652667
653668 // Verify the result contains the summary information
654669 expect ( result ) . toMatchObject ( {
@@ -682,6 +697,7 @@ describe("truncateConversationIfNeeded", () => {
682697 autoCondenseContext : true ,
683698 autoCondenseContextPercent : 50 , // Set threshold to 50% - our tokens are at 40%
684699 systemPrompt : "System prompt" ,
700+ taskId,
685701 } )
686702
687703 // Verify summarizeConversation was not called
@@ -738,6 +754,7 @@ describe("getMaxTokens", () => {
738754 autoCondenseContext : false ,
739755 autoCondenseContextPercent : 100 ,
740756 systemPrompt : "System prompt" ,
757+ taskId,
741758 } )
742759 expect ( result1 ) . toEqual ( {
743760 messages : messagesWithSmallContent ,
@@ -756,6 +773,7 @@ describe("getMaxTokens", () => {
756773 autoCondenseContext : false ,
757774 autoCondenseContextPercent : 100 ,
758775 systemPrompt : "System prompt" ,
776+ taskId,
759777 } )
760778 expect ( result2 . messages ) . not . toEqual ( messagesWithSmallContent )
761779 expect ( result2 . messages . length ) . toBe ( 3 ) // Truncated with 0.5 fraction
@@ -782,6 +800,7 @@ describe("getMaxTokens", () => {
782800 autoCondenseContext : false ,
783801 autoCondenseContextPercent : 100 ,
784802 systemPrompt : "System prompt" ,
803+ taskId,
785804 } )
786805 expect ( result1 ) . toEqual ( {
787806 messages : messagesWithSmallContent ,
@@ -800,6 +819,7 @@ describe("getMaxTokens", () => {
800819 autoCondenseContext : false ,
801820 autoCondenseContextPercent : 100 ,
802821 systemPrompt : "System prompt" ,
822+ taskId,
803823 } )
804824 expect ( result2 . messages ) . not . toEqual ( messagesWithSmallContent )
805825 expect ( result2 . messages . length ) . toBe ( 3 ) // Truncated with 0.5 fraction
@@ -825,6 +845,7 @@ describe("getMaxTokens", () => {
825845 autoCondenseContext : false ,
826846 autoCondenseContextPercent : 100 ,
827847 systemPrompt : "System prompt" ,
848+ taskId,
828849 } )
829850 expect ( result1 . messages ) . toEqual ( messagesWithSmallContent )
830851
@@ -838,6 +859,7 @@ describe("getMaxTokens", () => {
838859 autoCondenseContext : false ,
839860 autoCondenseContextPercent : 100 ,
840861 systemPrompt : "System prompt" ,
862+ taskId,
841863 } )
842864 expect ( result2 ) . not . toEqual ( messagesWithSmallContent )
843865 expect ( result2 . messages . length ) . toBe ( 3 ) // Truncated with 0.5 fraction
@@ -861,6 +883,7 @@ describe("getMaxTokens", () => {
861883 autoCondenseContext : false ,
862884 autoCondenseContextPercent : 100 ,
863885 systemPrompt : "System prompt" ,
886+ taskId,
864887 } )
865888 expect ( result1 . messages ) . toEqual ( messagesWithSmallContent )
866889
@@ -874,6 +897,7 @@ describe("getMaxTokens", () => {
874897 autoCondenseContext : false ,
875898 autoCondenseContextPercent : 100 ,
876899 systemPrompt : "System prompt" ,
900+ taskId,
877901 } )
878902 expect ( result2 ) . not . toEqual ( messagesWithSmallContent )
879903 expect ( result2 . messages . length ) . toBe ( 3 ) // Truncated with 0.5 fraction
0 commit comments