@@ -45,7 +45,8 @@ export class GenkitRunner implements LlmRunner {
4545 async generateConstrained < T extends z . ZodTypeAny = z . ZodTypeAny > (
4646 options : LlmConstrainedOutputGenerateRequestOptions < T >
4747 ) : Promise < LlmConstrainedOutputGenerateResponse < T > > {
48- const result = await this . _genkitRequest ( options ) ;
48+ const { provider, model } = this . resolveModel ( options . model ) ;
49+ const result = await this . _genkitRequest ( provider , model , options ) ;
4950
5051 return {
5152 output : result . output ,
@@ -72,10 +73,16 @@ export class GenkitRunner implements LlmRunner {
7273 } ) ,
7374 } ;
7475
75- const result = await this . _genkitRequest ( requestOptions ) ;
76+ const { provider, model } = this . resolveModel ( options . model ) ;
77+ const result = await this . _genkitRequest ( provider , model , requestOptions ) ;
78+ const files = result . output . outputFiles || [ ] ;
79+
80+ if ( ! provider . validateGeneratedFiles ( files ) ) {
81+ throw new Error ( `Invalid files generated by model "${ options . model } "` ) ;
82+ }
7683
7784 return {
78- files : result . output . outputFiles || [ ] ,
85+ files,
7986 usage : result . usage ,
8087 reasoning : result . reasoning ,
8188 toolLogs : this . flushToolLogs ( ) ,
@@ -89,7 +96,8 @@ export class GenkitRunner implements LlmRunner {
8996 async generateText (
9097 options : LlmGenerateTextRequestOptions
9198 ) : Promise < LlmGenerateTextResponse > {
92- const result = await this . _genkitRequest ( options ) ;
99+ const { provider, model } = this . resolveModel ( options . model ) ;
100+ const result = await this . _genkitRequest ( provider , model , options ) ;
93101
94102 return {
95103 text : result . text ,
@@ -104,12 +112,12 @@ export class GenkitRunner implements LlmRunner {
104112 }
105113
106114 private async _genkitRequest (
115+ provider : GenkitModelProvider ,
116+ model : ModelReference < any > ,
107117 options :
108118 | LlmGenerateTextRequestOptions
109119 | LlmConstrainedOutputGenerateRequestOptions
110120 ) {
111- const { provider, model } = this . resolveModel ( options . model ) ;
112-
113121 return await rateLimitLLMRequest (
114122 provider ,
115123 model ,
0 commit comments