MCPcopy Create free account
hub / github.com/alibaba/open-code-review / runConfigModel

Function runConfigModel

cmd/opencodereview/provider_cmd.go:292–386  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

290}
291
292func runConfigModel() error {
293 configPath, err := defaultConfigPath()
294 if err != nil {
295 return err
296 }
297
298 cfg, err := loadOrCreateConfig(configPath)
299 if err != nil {
300 return fmt.Errorf("load config: %w", err)
301 }
302
303 if cfg.Provider == "" {
304 return fmt.Errorf("no provider configured. Run 'ocr config provider' first")
305 }
306
307 currentModel := ""
308 provider := llm.Provider{Name: cfg.Provider, DisplayName: cfg.Provider}
309 isCustom := false
310 registryModels := []string(nil)
311 if preset, isPreset := llm.LookupProvider(cfg.Provider); isPreset {
312 provider = preset
313 registryModels = append([]string(nil), preset.Models...)
314 if entry, ok := cfg.Providers[cfg.Provider]; ok {
315 currentModel = activeModelForProvider(cfg, cfg.Provider, entry)
316 provider.Models = mergeModelLists(provider.Models, entry.Models)
317 }
318 } else {
319 isCustom = true
320 entry, ok := cfg.CustomProviders[cfg.Provider]
321 if !ok {
322 return fmt.Errorf("provider %q is not configured in custom_providers", cfg.Provider)
323 }
324 currentModel = activeModelForProvider(cfg, cfg.Provider, entry)
325 provider.DisplayName = cfg.Provider + " (custom)"
326 provider.Protocol = entry.Protocol
327 provider.BaseURL = entry.URL
328 provider.Models = mergeModelLists(entry.Models)
329 }
330
331 m := newModelTUIConfig(modelTUIConfig{
332 Provider: provider,
333 CurrentModel: currentModel,
334 RegistryModels: registryModels,
335 ExistingCfg: cfg,
336 ConfigPath: configPath,
337 ProviderName: cfg.Provider,
338 IsCustom: isCustom,
339 })
340 p := tea.NewProgram(m)
341 finalModel, err := p.Run()
342 if err != nil {
343 return fmt.Errorf("TUI error: %w", err)
344 }
345
346 final := finalModel.(modelTUIModel)
347 if final.cancelled {
348 printWizardCancelled(final.savedInSession, "Model list changes")
349 return nil

Callers 2

runConfigFunction · 0.85
config_cmd.goFile · 0.85

Calls 12

LookupProviderFunction · 0.92
ModelListContainsFunction · 0.92
defaultConfigPathFunction · 0.85
loadOrCreateConfigFunction · 0.85
activeModelForProviderFunction · 0.85
newModelTUIConfigFunction · 0.85
printWizardCancelledFunction · 0.85
ensureModelInListFunction · 0.85
saveConfigFunction · 0.85
selectedModelMethod · 0.80
mergeModelListsFunction · 0.70
RunMethod · 0.45

Tested by 1

runConfigFunction · 0.68