diff options
| author | adamdottv <[email protected]> | 2025-06-13 06:23:12 -0500 |
|---|---|---|
| committer | adamdottv <[email protected]> | 2025-06-13 06:23:12 -0500 |
| commit | 97837d2d23195942dbbb15f3c5ed749b1af688aa (patch) | |
| tree | 1e44aa57f0dbaf73918e6cf2901c07fed6dfd464 /packages/tui/internal/app | |
| parent | 9abc2a0cf8590b0ff75a441d36bb70351a1f3c92 (diff) | |
| download | opencode-97837d2d23195942dbbb15f3c5ed749b1af688aa.tar.gz opencode-97837d2d23195942dbbb15f3c5ed749b1af688aa.zip | |
wip: refactoring tui
Diffstat (limited to 'packages/tui/internal/app')
| -rw-r--r-- | packages/tui/internal/app/app.go | 49 |
1 files changed, 33 insertions, 16 deletions
diff --git a/packages/tui/internal/app/app.go b/packages/tui/internal/app/app.go index 3917330e3..69900a0bd 100644 --- a/packages/tui/internal/app/app.go +++ b/packages/tui/internal/app/app.go @@ -23,7 +23,7 @@ type App struct { Config *config.Config Client *client.ClientWithResponses Provider *client.ProviderInfo - Model *client.ProviderModel + Model *client.ModelInfo Session *client.SessionInfo Messages []client.MessageInfo Status status.Service @@ -61,20 +61,25 @@ func New(ctx context.Context, version string, httpClient *client.ClientWithRespo } providers := []client.ProviderInfo{} var defaultProvider *client.ProviderInfo - var defaultModel *client.ProviderModel - - for i, provider := range providersResponse.JSON200.Providers { - if i == 0 || provider.Id == "anthropic" { - defaultProvider = &providersResponse.JSON200.Providers[i] - if match, ok := providersResponse.JSON200.Default[provider.Id]; ok { - model := defaultProvider.Models[match] - defaultModel = &model - } else { - for _, model := range provider.Models { - defaultModel = &model - break - } - } + var defaultModel *client.ModelInfo + + var anthropic *client.ProviderInfo + for _, provider := range providersResponse.JSON200.Providers { + if provider.Id == "anthropic" { + anthropic = &provider + } + } + + // default to anthropic if available + if anthropic != nil { + defaultProvider = anthropic + defaultModel = getDefaultModel(providersResponse, *anthropic) + } + + for _, provider := range providersResponse.JSON200.Providers { + if defaultProvider == nil || defaultModel == nil { + defaultProvider = &provider + defaultModel = getDefaultModel(providersResponse, provider) } providers = append(providers, provider) } @@ -91,7 +96,7 @@ func New(ctx context.Context, version string, httpClient *client.ClientWithRespo } var currentProvider *client.ProviderInfo - var currentModel *client.ProviderModel + var currentModel *client.ModelInfo for _, provider := range providers { if provider.Id == appConfig.Provider { currentProvider = &provider @@ -121,6 +126,18 @@ func New(ctx context.Context, version string, httpClient *client.ClientWithRespo return app, nil } +func getDefaultModel(response *client.PostProviderListResponse, provider client.ProviderInfo) *client.ModelInfo { + if match, ok := response.JSON200.Default[provider.Id]; ok { + model := provider.Models[match] + return &model + } else { + for _, model := range provider.Models { + return &model + } + } + return nil +} + type Attachment struct { FilePath string FileName string |
