@@ -54,34 +54,6 @@ async function toStringArray(
54
54
55
55
describe ( 'ChromeAdapter' , ( ) => {
56
56
describe ( 'constructor' , ( ) => {
57
- it ( 'determines expected inputs by request inspection' , async ( ) => {
58
- const languageModelProvider = {
59
- availability : ( ) => Promise . resolve ( Availability . available )
60
- } as LanguageModel ;
61
- const availabilityStub = stub (
62
- languageModelProvider ,
63
- 'availability'
64
- ) . resolves ( Availability . available ) ;
65
- const adapter = new ChromeAdapter (
66
- languageModelProvider ,
67
- 'prefer_on_device'
68
- ) ;
69
- await adapter . isAvailable ( {
70
- contents : [
71
- {
72
- role : 'user' ,
73
- parts : [
74
- { text : 'hi' } ,
75
- // Triggers image as expected type.
76
- { inlineData : { mimeType : 'image/jpeg' , data : 'asd' } }
77
- ]
78
- }
79
- ]
80
- } ) ;
81
- expect ( availabilityStub ) . to . have . been . calledWith ( {
82
- expectedInputs : [ { type : 'image' } ]
83
- } ) ;
84
- } ) ;
85
57
it ( 'honors explicitly set expected inputs' , async ( ) => {
86
58
const languageModelProvider = {
87
59
availability : ( ) => Promise . resolve ( Availability . available )
@@ -303,6 +275,34 @@ describe('ChromeAdapter', () => {
303
275
} )
304
276
) . to . be . false ;
305
277
} ) ;
278
+ it ( 'extracts expected inputs from the request' , async ( ) => {
279
+ const languageModelProvider = {
280
+ availability : ( ) => Promise . resolve ( Availability . available )
281
+ } as LanguageModel ;
282
+ const availabilityStub = stub (
283
+ languageModelProvider ,
284
+ 'availability'
285
+ ) . resolves ( Availability . available ) ;
286
+ const adapter = new ChromeAdapter (
287
+ languageModelProvider ,
288
+ 'prefer_on_device'
289
+ ) ;
290
+ await adapter . isAvailable ( {
291
+ contents : [
292
+ {
293
+ role : 'user' ,
294
+ parts : [
295
+ { text : 'hi' } ,
296
+ // Triggers image as expected type.
297
+ { inlineData : { mimeType : 'image/jpeg' , data : 'asd' } }
298
+ ]
299
+ }
300
+ ]
301
+ } ) ;
302
+ expect ( availabilityStub ) . to . have . been . calledWith ( {
303
+ expectedInputs : [ { type : 'image' } ]
304
+ } ) ;
305
+ } ) ;
306
306
} ) ;
307
307
describe ( 'generateContent' , ( ) => {
308
308
it ( 'throws if Chrome API is undefined' , async ( ) => {
@@ -382,14 +382,9 @@ describe('ChromeAdapter', () => {
382
382
) ;
383
383
const promptOutput = 'hi' ;
384
384
const promptStub = stub ( languageModel , 'prompt' ) . resolves ( promptOutput ) ;
385
- const createOptions = {
386
- systemPrompt : 'be yourself' ,
387
- expectedInputs : [ { type : 'image' } ]
388
- } as LanguageModelCreateOptions ;
389
385
const adapter = new ChromeAdapter (
390
386
languageModelProvider ,
391
- 'prefer_on_device' ,
392
- { createOptions }
387
+ 'prefer_on_device'
393
388
) ;
394
389
const request = {
395
390
contents : [
@@ -409,7 +404,9 @@ describe('ChromeAdapter', () => {
409
404
} as GenerateContentRequest ;
410
405
const response = await adapter . generateContent ( request ) ;
411
406
// Asserts initialization params are proxied.
412
- expect ( createStub ) . to . have . been . calledOnceWith ( createOptions ) ;
407
+ expect ( createStub ) . to . have . been . calledOnceWith ( {
408
+ expectedInputs : [ { type : 'image' } ]
409
+ } ) ;
413
410
// Asserts Vertex input type is mapped to Chrome type.
414
411
expect ( promptStub ) . to . have . been . calledOnceWith ( [
415
412
{
@@ -610,13 +607,9 @@ describe('ChromeAdapter', () => {
610
607
}
611
608
} )
612
609
) ;
613
- const createOptions = {
614
- expectedInputs : [ { type : 'image' } ]
615
- } as LanguageModelCreateOptions ;
616
610
const adapter = new ChromeAdapter (
617
611
languageModelProvider ,
618
- 'prefer_on_device' ,
619
- { createOptions }
612
+ 'prefer_on_device'
620
613
) ;
621
614
const request = {
622
615
contents : [
@@ -635,7 +628,9 @@ describe('ChromeAdapter', () => {
635
628
]
636
629
} as GenerateContentRequest ;
637
630
const response = await adapter . generateContentStream ( request ) ;
638
- expect ( createStub ) . to . have . been . calledOnceWith ( createOptions ) ;
631
+ expect ( createStub ) . to . have . been . calledOnceWith ( {
632
+ expectedInputs : [ { type : 'image' } ]
633
+ } ) ;
639
634
expect ( promptStub ) . to . have . been . calledOnceWith ( [
640
635
{
641
636
role : request . contents [ 0 ] . role ,
0 commit comments