@@ -16,11 +16,16 @@ interface MockLanguageModelTextPart {
1616 value : string
1717}
1818
19+ type MockLanguageModelChatMessage = {
20+ role : string
21+ content : unknown
22+ }
23+
1924interface MockLanguageModelToolCallPart {
2025 type : "tool_call"
2126 callId : string
2227 name : string
23- input : any
28+ input : object
2429}
2530
2631interface MockLanguageModelToolResultPart {
@@ -46,7 +51,7 @@ vitest.mock("vscode", () => {
4651 constructor (
4752 public callId : string ,
4853 public name : string ,
49- public input : any ,
54+ public input : object ,
5055 ) { }
5156 }
5257
@@ -165,7 +170,7 @@ describe("convertToVsCodeLmMessages", () => {
165170 type : "tool_use" ,
166171 id : "tool-num" ,
167172 name : "numericTool" ,
168- input : 42 as any , // number is valid JSON
173+ input : 42 as unknown as object , // number is valid JSON
169174 } ,
170175 ] ,
171176 } ,
@@ -241,7 +246,7 @@ describe("convertToVsCodeLmMessages", () => {
241246 content : [
242247 {
243248 type : "image" ,
244- source : { type : "url" , url : "https://example.com/img.png" } as any ,
249+ source : { type : "url" , url : "https://example.com/img.png" } ,
245250 } ,
246251 ] ,
247252 } ,
@@ -263,7 +268,7 @@ describe("convertToVsCodeLmMessages", () => {
263268 content : [
264269 {
265270 type : "image" ,
266- source : { type : "url" , url : "https://example.com/img.png" } as any ,
271+ source : { type : "url" , url : "https://example.com/img.png" } ,
267272 } ,
268273 ] ,
269274 } ,
@@ -272,7 +277,7 @@ describe("convertToVsCodeLmMessages", () => {
272277 ]
273278
274279 const result = convertToVsCodeLmMessages ( messages )
275- const toolResult = result [ 0 ] . content [ 0 ] as any
280+ const toolResult = result [ 0 ] . content [ 0 ] as MockLanguageModelToolResultPart
276281 expect ( toolResult . content [ 0 ] . value ) . toContain ( "[Image (url): not supported by VSCode LM API]" )
277282 } )
278283
@@ -296,7 +301,7 @@ describe("convertToVsCodeLmMessages", () => {
296301 ]
297302
298303 const result = convertToVsCodeLmMessages ( messages )
299- const toolResult = result [ 0 ] . content [ 0 ] as any
304+ const toolResult = result [ 0 ] . content [ 0 ] as MockLanguageModelToolResultPart
300305 expect ( toolResult . content [ 0 ] . value ) . toBe ( "[Image (base64): image/jpeg not supported by VSCode LM API]" )
301306 } )
302307
@@ -308,31 +313,31 @@ describe("convertToVsCodeLmMessages", () => {
308313 {
309314 type : "tool_result" ,
310315 tool_use_id : "tool-1" ,
311- content : [ { type : "document" } as any ] ,
316+ content : [ { type : "document" } as unknown as Anthropic . Messages . DocumentBlockParam ] ,
312317 } ,
313318 ] ,
314319 } ,
315320 ]
316321
317322 const result = convertToVsCodeLmMessages ( messages )
318- const toolResult = result [ 0 ] . content [ 0 ] as any
323+ const toolResult = result [ 0 ] . content [ 0 ] as MockLanguageModelToolResultPart
319324 expect ( toolResult . content [ 0 ] . value ) . toBe ( "" )
320325 } )
321326} )
322327
323328describe ( "convertToAnthropicRole" , ( ) => {
324329 it ( "should convert assistant role correctly" , ( ) => {
325- const result = convertToAnthropicRole ( "assistant" as any )
330+ const result = convertToAnthropicRole ( vscode . LanguageModelChatMessageRole . Assistant )
326331 expect ( result ) . toBe ( "assistant" )
327332 } )
328333
329334 it ( "should convert user role correctly" , ( ) => {
330- const result = convertToAnthropicRole ( "user" as any )
335+ const result = convertToAnthropicRole ( vscode . LanguageModelChatMessageRole . User )
331336 expect ( result ) . toBe ( "user" )
332337 } )
333338
334339 it ( "should return null for unknown roles" , ( ) => {
335- const result = convertToAnthropicRole ( "unknown" as any )
340+ const result = convertToAnthropicRole ( "unknown" as unknown as vscode . LanguageModelChatMessageRole )
336341 expect ( result ) . toBeNull ( )
337342 } )
338343} )
@@ -342,7 +347,7 @@ describe("extractTextCountFromMessage", () => {
342347 const message = {
343348 role : "user" ,
344349 content : "Hello world" ,
345- } as any
350+ } satisfies MockLanguageModelChatMessage as unknown as vscode . LanguageModelChatMessage
346351
347352 const result = extractTextCountFromMessage ( message )
348353 expect ( result ) . toBe ( "Hello world" )
@@ -353,7 +358,7 @@ describe("extractTextCountFromMessage", () => {
353358 const message = {
354359 role : "user" ,
355360 content : [ mockTextPart ] ,
356- } as any
361+ } satisfies MockLanguageModelChatMessage as unknown as vscode . LanguageModelChatMessage
357362
358363 const result = extractTextCountFromMessage ( message )
359364 expect ( result ) . toBe ( "Text content" )
@@ -365,7 +370,7 @@ describe("extractTextCountFromMessage", () => {
365370 const message = {
366371 role : "user" ,
367372 content : [ mockTextPart1 , mockTextPart2 ] ,
368- } as any
373+ } satisfies MockLanguageModelChatMessage as unknown as vscode . LanguageModelChatMessage
369374
370375 const result = extractTextCountFromMessage ( message )
371376 expect ( result ) . toBe ( "First partSecond part" )
@@ -379,7 +384,7 @@ describe("extractTextCountFromMessage", () => {
379384 const message = {
380385 role : "user" ,
381386 content : [ mockToolResultPart ] ,
382- } as any
387+ } satisfies MockLanguageModelChatMessage as unknown as vscode . LanguageModelChatMessage
383388
384389 const result = extractTextCountFromMessage ( message )
385390 expect ( result ) . toBe ( "tool-result-idTool result content" )
@@ -390,7 +395,7 @@ describe("extractTextCountFromMessage", () => {
390395 const message = {
391396 role : "assistant" ,
392397 content : [ mockToolCallPart ] ,
393- } as any
398+ } satisfies MockLanguageModelChatMessage as unknown as vscode . LanguageModelChatMessage
394399
395400 const result = extractTextCountFromMessage ( message )
396401 expect ( result ) . toBe ( "tool-namecall-id" )
@@ -406,7 +411,7 @@ describe("extractTextCountFromMessage", () => {
406411 const message = {
407412 role : "assistant" ,
408413 content : [ mockToolCallPart ] ,
409- } as any
414+ } satisfies MockLanguageModelChatMessage as unknown as vscode . LanguageModelChatMessage
410415
411416 const result = extractTextCountFromMessage ( message )
412417 expect ( result ) . toBe ( `calculatorcall-id${ JSON . stringify ( mockInput ) } ` )
@@ -417,7 +422,7 @@ describe("extractTextCountFromMessage", () => {
417422 const message = {
418423 role : "assistant" ,
419424 content : [ mockToolCallPart ] ,
420- } as any
425+ } satisfies MockLanguageModelChatMessage as unknown as vscode . LanguageModelChatMessage
421426
422427 const result = extractTextCountFromMessage ( message )
423428 expect ( result ) . toBe ( "tool-namecall-id" )
@@ -435,7 +440,7 @@ describe("extractTextCountFromMessage", () => {
435440 const message = {
436441 role : "assistant" ,
437442 content : [ mockTextPart , mockToolResultPart , mockToolCallPart ] ,
438- } as any
443+ } satisfies MockLanguageModelChatMessage as unknown as vscode . LanguageModelChatMessage
439444
440445 const result = extractTextCountFromMessage ( message )
441446 expect ( result ) . toBe ( `Text contentresult-idTool resulttoolcall-id${ JSON . stringify ( mockInput ) } ` )
@@ -445,7 +450,7 @@ describe("extractTextCountFromMessage", () => {
445450 const message = {
446451 role : "user" ,
447452 content : [ ] ,
448- } as any
453+ } satisfies MockLanguageModelChatMessage as unknown as vscode . LanguageModelChatMessage
449454
450455 const result = extractTextCountFromMessage ( message )
451456 expect ( result ) . toBe ( "" )
@@ -455,7 +460,7 @@ describe("extractTextCountFromMessage", () => {
455460 const message = {
456461 role : "user" ,
457462 content : undefined ,
458- } as any
463+ } satisfies MockLanguageModelChatMessage as unknown as vscode . LanguageModelChatMessage
459464
460465 const result = extractTextCountFromMessage ( message )
461466 expect ( result ) . toBe ( "" )
@@ -472,7 +477,7 @@ describe("extractTextCountFromMessage", () => {
472477 const message = {
473478 role : "user" ,
474479 content : [ mockToolResultPart ] ,
475- } as any
480+ } satisfies MockLanguageModelChatMessage as unknown as vscode . LanguageModelChatMessage
476481
477482 const result = extractTextCountFromMessage ( message )
478483 expect ( result ) . toBe ( "result-idPart 1Part 2" )
@@ -484,7 +489,7 @@ describe("extractTextCountFromMessage", () => {
484489 const message = {
485490 role : "user" ,
486491 content : [ mockToolResultPart ] ,
487- } as any
492+ } satisfies MockLanguageModelChatMessage as unknown as vscode . LanguageModelChatMessage
488493
489494 const result = extractTextCountFromMessage ( message )
490495 expect ( result ) . toBe ( "result-id" )
@@ -494,8 +499,7 @@ describe("extractTextCountFromMessage", () => {
494499 const consoleErrorSpy = vi . spyOn ( console , "error" ) . mockImplementation ( ( ) => { } )
495500
496501 // Create an object with a circular reference that will throw on JSON.stringify
497- // eslint-disable-next-line @typescript-eslint/no-explicit-any
498- const circularInput : any = { name : "circular" }
502+ const circularInput : Record < string , unknown > = { name : "circular" }
499503 circularInput . self = circularInput
500504
501505 const mockToolCallPart = new ( vitest . mocked ( vscode ) . LanguageModelToolCallPart ) (
@@ -504,13 +508,12 @@ describe("extractTextCountFromMessage", () => {
504508 circularInput ,
505509 )
506510
507- // eslint-disable-next-line @typescript-eslint/no-explicit-any
508- const message : any = {
509- role : vscode . LanguageModelChatMessageRole . Assistant ,
511+ const message : MockLanguageModelChatMessage = {
512+ role : "assistant" ,
510513 content : [ mockToolCallPart ] ,
511514 }
512515
513- const result = extractTextCountFromMessage ( message )
516+ const result = extractTextCountFromMessage ( message as unknown as vscode . LanguageModelChatMessage )
514517
515518 // Should still return the tool name and callId even when input stringify fails
516519 expect ( result ) . toBe ( "broken-toolcall-id" )
0 commit comments