@@ -257,13 +257,20 @@ export function parseArgs(argv: readonly string[]): CliOptions {
257257 return opts ;
258258}
259259
260+ // exactOptionalPropertyTypes forbids passing an explicit `undefined` for an
261+ // optional field, so build the fallback object with the key present only
262+ // when the CLI option was actually given.
263+ function providerModelFallback ( opts : CliOptions ) : { provider ?: string ; model ?: string } {
264+ return {
265+ ...( opts . provider !== undefined ? { provider : opts . provider } : { } ) ,
266+ ...( opts . model !== undefined ? { model : opts . model } : { } ) ,
267+ } ;
268+ }
269+
260270function requireExplicitModelPair ( opts : CliOptions ) : void {
261271 const matrix = opts . matrix ?. trim ( ) ;
262272 if ( matrix !== undefined && matrix . length > 0 ) {
263- parseMatrix ( matrix , {
264- provider : opts . provider ,
265- model : opts . model ,
266- } ) ;
273+ parseMatrix ( matrix , providerModelFallback ( opts ) ) ;
267274 return ;
268275 }
269276 if ( ! opts . provider && ! opts . model ) {
@@ -705,8 +712,8 @@ async function runCase(
705712 const resolvedProvider = execResult . provider ?? config . providerName ?? labels . provider ;
706713 const resolvedModel = execResult . model ?? config . model ?? labels . model ;
707714 providerFallback = detectProviderFallback ( {
708- requestedProvider : requested . provider ,
709- requestedModel : requested . model ,
715+ ... ( requested . provider !== undefined ? { requestedProvider : requested . provider } : { } ) ,
716+ ... ( requested . model !== undefined ? { requestedModel : requested . model } : { } ) ,
710717 resolvedProvider,
711718 resolvedModel,
712719 } ) ;
@@ -852,10 +859,7 @@ async function main(): Promise<number> {
852859 }
853860 const all = await loadEvalCases ( CASES_ROOT ) ;
854861 const selected = filterCases ( all , opts . caseSelector ) ;
855- const variants = parseMatrix ( opts . matrix , {
856- provider : opts . provider ,
857- model : opts . model ,
858- } ) ;
862+ const variants = parseMatrix ( opts . matrix , providerModelFallback ( opts ) ) ;
859863 const plan = expandMatrix ( selected , variants ) ;
860864
861865 console . log (
0 commit comments