| 32 | } |
| 33 | |
| 34 | func (p *Server) computerUseProviderAndModelFromConfig( |
| 35 | ctx context.Context, |
| 36 | ) (provider, modelProvider, modelName string, err error) { |
| 37 | rawProvider, err := p.db.GetChatComputerUseProvider( |
| 38 | computerUseConfigContext(ctx), |
| 39 | ) |
| 40 | if err != nil { |
| 41 | return "", "", "", xerrors.Errorf("get computer use provider: %w", err) |
| 42 | } |
| 43 | |
| 44 | provider = strings.TrimSpace(rawProvider) |
| 45 | if provider == "" { |
| 46 | provider = chattool.ComputerUseProviderAnthropic |
| 47 | } |
| 48 | |
| 49 | modelProvider, modelName, ok := chattool.DefaultComputerUseModel(provider) |
| 50 | if !ok { |
| 51 | return "", "", "", xerrors.Errorf( |
| 52 | "unknown computer-use provider %q configured in agents_computer_use_provider", |
| 53 | provider, |
| 54 | ) |
| 55 | } |
| 56 | |
| 57 | return provider, modelProvider, modelName, nil |
| 58 | } |
| 59 | |
| 60 | func (p *Server) resolveComputerUseModel( |
| 61 | ctx context.Context, |