@@ -107,6 +107,14 @@ function expectSingleToolCallContent(
107107 expect ( item . name ) . toBe ( name ) ;
108108}
109109
110+ function firstBaseContext ( baseFn : ReturnType < typeof vi . fn > ) : { messages : unknown [ ] } {
111+ const call = baseFn . mock . calls . at ( 0 ) ;
112+ if ( ! call ) {
113+ throw new Error ( "expected base stream call" ) ;
114+ }
115+ return call [ 1 ] as { messages : unknown [ ] } ;
116+ }
117+
110118describe ( "buildEmbeddedAttemptToolRunContext" , ( ) => {
111119 it ( "carries runtime toolsAllow into coding tool construction" , ( ) => {
112120 const context = buildEmbeddedAttemptToolRunContext ( {
@@ -1894,7 +1902,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
18941902 await Promise . resolve ( stream ) ;
18951903
18961904 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
1897- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as { messages : unknown [ ] } ;
1905+ const seenContext = firstBaseContext ( baseFn ) ;
18981906 expect ( seenContext . messages ) . toEqual ( [
18991907 {
19001908 role : "user" ,
@@ -1926,7 +1934,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
19261934 await Promise . resolve ( stream ) ;
19271935
19281936 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
1929- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as { messages : unknown [ ] } ;
1937+ const seenContext = firstBaseContext ( baseFn ) ;
19301938 expect ( seenContext . messages ) . toBe ( messages ) ;
19311939 } ) ;
19321940
@@ -1958,7 +1966,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
19581966 await Promise . resolve ( stream ) ;
19591967
19601968 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
1961- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as { messages : unknown [ ] } ;
1969+ const seenContext = firstBaseContext ( baseFn ) ;
19621970 expect ( seenContext . messages ) . toEqual ( [
19631971 {
19641972 role : "user" ,
@@ -1996,7 +2004,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
19962004 await Promise . resolve ( stream ) ;
19972005
19982006 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
1999- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as { messages : unknown [ ] } ;
2007+ const seenContext = firstBaseContext ( baseFn ) ;
20002008 expect ( seenContext . messages ) . toEqual ( [
20012009 {
20022010 role : "user" ,
@@ -2037,7 +2045,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
20372045 await Promise . resolve ( stream ) ;
20382046
20392047 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2040- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as { messages : unknown [ ] } ;
2048+ const seenContext = firstBaseContext ( baseFn ) ;
20412049 expect ( seenContext . messages ) . toEqual ( [
20422050 {
20432051 role : "user" ,
@@ -2077,7 +2085,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
20772085 await Promise . resolve ( stream ) ;
20782086
20792087 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2080- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as { messages : unknown [ ] } ;
2088+ const seenContext = firstBaseContext ( baseFn ) ;
20812089 expect ( seenContext . messages ) . toEqual ( [
20822090 {
20832091 role : "user" ,
@@ -2118,7 +2126,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
21182126 await Promise . resolve ( stream ) ;
21192127
21202128 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2121- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as { messages : unknown [ ] } ;
2129+ const seenContext = firstBaseContext ( baseFn ) ;
21222130 expect ( seenContext . messages ) . toEqual ( [
21232131 {
21242132 role : "user" ,
@@ -2171,7 +2179,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
21712179 await Promise . resolve ( stream ) ;
21722180
21732181 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2174- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as { messages : unknown [ ] } ;
2182+ const seenContext = firstBaseContext ( baseFn ) ;
21752183 expect ( seenContext . messages ) . toEqual ( [
21762184 {
21772185 role : "user" ,
@@ -2230,7 +2238,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
22302238 await Promise . resolve ( stream ) ;
22312239
22322240 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2233- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as { messages : unknown [ ] } ;
2241+ const seenContext = firstBaseContext ( baseFn ) ;
22342242 expect ( seenContext . messages ) . toEqual ( [
22352243 {
22362244 role : "user" ,
@@ -2268,7 +2276,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
22682276 await Promise . resolve ( stream ) ;
22692277
22702278 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2271- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as { messages : unknown [ ] } ;
2279+ const seenContext = firstBaseContext ( baseFn ) ;
22722280 expect ( seenContext . messages ) . toHaveLength ( 3 ) ;
22732281 expect ( seenContext . messages [ 0 ] ) . toEqual ( {
22742282 role : "assistant" ,
@@ -2328,7 +2336,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
23282336 await Promise . resolve ( stream ) ;
23292337
23302338 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2331- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as {
2339+ const seenContext = firstBaseContext ( baseFn ) as {
23322340 messages : Array < { content ?: Array < Record < string , unknown > > } > ;
23332341 } ;
23342342 const toolCall = seenContext . messages [ 0 ] ?. content ?. [ 0 ] as {
@@ -2366,7 +2374,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
23662374 await Promise . resolve ( stream ) ;
23672375
23682376 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2369- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as {
2377+ const seenContext = firstBaseContext ( baseFn ) as {
23702378 messages : Array < { content ?: unknown [ ] } > ;
23712379 } ;
23722380 expect ( seenContext . messages [ 0 ] ?. content ) . toEqual ( [
@@ -2396,7 +2404,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
23962404 await Promise . resolve ( stream ) ;
23972405
23982406 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2399- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as { messages : unknown [ ] } ;
2407+ const seenContext = firstBaseContext ( baseFn ) ;
24002408 expect ( seenContext . messages ) . toBe ( messages ) ;
24012409 } ) ;
24022410
@@ -2418,7 +2426,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
24182426 await Promise . resolve ( stream ) ;
24192427
24202428 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2421- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as {
2429+ const seenContext = firstBaseContext ( baseFn ) as {
24222430 messages : Array < { content ?: Array < { name ?: string } > } > ;
24232431 } ;
24242432 expect ( seenContext . messages [ 0 ] ?. content ?. [ 0 ] ?. name ) . toBe ( "read" ) ;
@@ -2442,7 +2450,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
24422450 await Promise . resolve ( stream ) ;
24432451
24442452 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2445- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as {
2453+ const seenContext = firstBaseContext ( baseFn ) as {
24462454 messages : Array < { content ?: Array < { name ?: string } > } > ;
24472455 } ;
24482456 expect ( seenContext . messages [ 0 ] ?. content ?. [ 0 ] ?. name ) . toBe ( "ReadFile" ) ;
@@ -2466,7 +2474,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
24662474 await Promise . resolve ( stream ) ;
24672475
24682476 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2469- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as {
2477+ const seenContext = firstBaseContext ( baseFn ) as {
24702478 messages : Array < { content ?: Array < { name ?: string } > } > ;
24712479 } ;
24722480 expect ( seenContext . messages [ 0 ] ?. content ?. [ 0 ] ?. name ) . toBe ( "write" ) ;
@@ -2497,7 +2505,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
24972505 await Promise . resolve ( stream ) ;
24982506
24992507 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2500- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as { messages : unknown [ ] } ;
2508+ const seenContext = firstBaseContext ( baseFn ) ;
25012509 expect ( seenContext . messages ) . toStrictEqual ( [ ] ) ;
25022510 } ) ;
25032511
@@ -2519,7 +2527,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
25192527 await Promise . resolve ( stream ) ;
25202528
25212529 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2522- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as {
2530+ const seenContext = firstBaseContext ( baseFn ) as {
25232531 messages : Array < { content ?: Array < { name ?: string } > } > ;
25242532 } ;
25252533 expect ( seenContext . messages [ 0 ] ?. content ?. [ 0 ] ?. name ) . toBe ( "read" ) ;
@@ -2555,7 +2563,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
25552563 await Promise . resolve ( stream ) ;
25562564
25572565 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2558- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as {
2566+ const seenContext = firstBaseContext ( baseFn ) as {
25592567 messages : Array < { role ?: string } > ;
25602568 } ;
25612569 expect ( seenContext . messages ) . toEqual ( [
@@ -2595,7 +2603,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
25952603 await Promise . resolve ( stream ) ;
25962604
25972605 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2598- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as {
2606+ const seenContext = firstBaseContext ( baseFn ) as {
25992607 messages : Array < { role ?: string } > ;
26002608 } ;
26012609 expect ( seenContext . messages ) . toEqual ( [
@@ -2630,7 +2638,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
26302638 await Promise . resolve ( stream ) ;
26312639
26322640 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2633- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as { messages : unknown [ ] } ;
2641+ const seenContext = firstBaseContext ( baseFn ) ;
26342642 expect ( seenContext . messages ) . toStrictEqual ( [ ] ) ;
26352643 } ) ;
26362644
@@ -2655,7 +2663,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
26552663 await Promise . resolve ( stream ) ;
26562664
26572665 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2658- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as { messages : unknown [ ] } ;
2666+ const seenContext = firstBaseContext ( baseFn ) ;
26592667 expect ( seenContext . messages ) . toStrictEqual ( [ ] ) ;
26602668 } ) ;
26612669
@@ -2692,7 +2700,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
26922700 await Promise . resolve ( stream ) ;
26932701
26942702 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2695- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as { messages : unknown [ ] } ;
2703+ const seenContext = firstBaseContext ( baseFn ) ;
26962704 expect ( seenContext . messages ) . toEqual ( [
26972705 {
26982706 role : "assistant" ,
@@ -2745,7 +2753,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
27452753 await Promise . resolve ( stream ) ;
27462754
27472755 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2748- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as {
2756+ const seenContext = firstBaseContext ( baseFn ) as {
27492757 messages : Array < { role ?: string ; content ?: unknown [ ] } > ;
27502758 } ;
27512759 expect ( seenContext . messages ) . toEqual ( [
@@ -2792,7 +2800,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
27922800 await Promise . resolve ( stream ) ;
27932801
27942802 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2795- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as {
2803+ const seenContext = firstBaseContext ( baseFn ) as {
27962804 messages : Array < { role ?: string ; content ?: unknown [ ] } > ;
27972805 } ;
27982806 expect ( seenContext . messages ) . toEqual ( [
@@ -2846,7 +2854,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
28462854 await Promise . resolve ( stream ) ;
28472855
28482856 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2849- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as {
2857+ const seenContext = firstBaseContext ( baseFn ) as {
28502858 messages : Array < { role ?: string ; content ?: unknown [ ] } > ;
28512859 } ;
28522860 expect ( seenContext . messages ) . toEqual ( [
@@ -2897,7 +2905,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
28972905 await Promise . resolve ( stream ) ;
28982906
28992907 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2900- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as {
2908+ const seenContext = firstBaseContext ( baseFn ) as {
29012909 messages : Array < { role ?: string ; content ?: unknown [ ] } > ;
29022910 } ;
29032911 expect ( seenContext . messages ) . toEqual ( messages ) ;
@@ -2939,7 +2947,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
29392947 await Promise . resolve ( stream ) ;
29402948
29412949 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2942- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as {
2950+ const seenContext = firstBaseContext ( baseFn ) as {
29432951 messages : Array < { role ?: string ; content ?: unknown [ ] } > ;
29442952 } ;
29452953 expect ( seenContext . messages ) . toEqual ( messages ) ;
@@ -2981,7 +2989,7 @@ describe("wrapStreamFnSanitizeMalformedToolCalls", () => {
29812989 await Promise . resolve ( stream ) ;
29822990
29832991 expect ( baseFn ) . toHaveBeenCalledTimes ( 1 ) ;
2984- const seenContext = baseFn . mock . calls . at ( 0 ) ?. [ 1 ] as {
2992+ const seenContext = firstBaseContext ( baseFn ) as {
29852993 messages : Array < { role ?: string ; content ?: unknown [ ] } > ;
29862994 } ;
29872995 expect ( seenContext . messages ) . toEqual ( [
0 commit comments