@@ -9,7 +9,7 @@ import fuzzysort from "fuzzysort"
99import { toast } from "sonner"
1010import { X , Rocket , Check , ChevronsUpDown , HardDriveUpload , CircleCheck } from "lucide-react"
1111
12- import { globalSettingsSchema , rooCodeDefaults } from "@evals/types"
12+ import { globalSettingsSchema , providerSettingsSchema , rooCodeDefaults } from "@evals/types"
1313
1414import { createRun } from "@/lib/server/runs"
1515import { createRunSchema as formSchema , type CreateRun as FormValues } from "@/lib/schemas"
@@ -73,7 +73,6 @@ export function NewRun() {
7373
7474 const {
7575 setValue,
76- setError,
7776 clearErrors,
7877 watch,
7978 formState : { isSubmitting } ,
@@ -147,14 +146,51 @@ export function NewRun() {
147146 clearErrors ( "settings" )
148147
149148 try {
150- const result = z . object ( { globalSettings : globalSettingsSchema } ) . parse ( JSON . parse ( await file . text ( ) ) )
151- setValue ( "settings" , result . globalSettings )
149+ const { providerProfiles, globalSettings } = z
150+ . object ( {
151+ providerProfiles : z . object ( {
152+ currentApiConfigName : z . string ( ) ,
153+ apiConfigs : z . record ( z . string ( ) , providerSettingsSchema ) ,
154+ } ) ,
155+ globalSettings : globalSettingsSchema ,
156+ } )
157+ . parse ( JSON . parse ( await file . text ( ) ) )
158+
159+ const providerSettings = providerProfiles . apiConfigs [ providerProfiles . currentApiConfigName ] ?? { }
160+
161+ if ( providerSettings . apiProvider === "openrouter" && providerSettings . openRouterModelId ) {
162+ const {
163+ openRouterModelId,
164+ modelMaxTokens,
165+ modelMaxThinkingTokens,
166+ modelTemperature,
167+ includeMaxTokens,
168+ } = providerSettings
169+
170+ const model = openRouterModelId
171+
172+ const settings = {
173+ ...rooCodeDefaults ,
174+ openRouterModelId,
175+ modelMaxTokens,
176+ modelMaxThinkingTokens,
177+ modelTemperature,
178+ includeMaxTokens,
179+ ...globalSettings ,
180+ }
181+
182+ setValue ( "model" , model )
183+ setValue ( "settings" , settings )
184+ } else {
185+ setValue ( "settings" , globalSettings )
186+ }
187+
152188 event . target . value = ""
153- } catch ( _error ) {
154- setError ( "settings" , { message : " Error parsing JSON file. Please check the file format." } )
189+ } catch ( e ) {
190+ toast . error ( e instanceof Error ? e . message : "An unknown error occurred." )
155191 }
156192 } ,
157- [ clearErrors , setError , setValue ] ,
193+ [ clearErrors , setValue ] ,
158194 )
159195
160196 return (
0 commit comments