(req dto.AgentModelConfigUpdateReq)
| 935 | } |
| 936 | |
| 937 | func (a AgentService) UpdateModelConfig(req dto.AgentModelConfigUpdateReq) error { |
| 938 | agent, err := agentRepo.GetFirst(repo.WithByID(req.AgentID)) |
| 939 | if err != nil { |
| 940 | return err |
| 941 | } |
| 942 | account, err := agentAccountRepo.GetFirst(repo.WithByID(req.AccountID)) |
| 943 | if err != nil { |
| 944 | return err |
| 945 | } |
| 946 | resolvedRuntime, err := resolveOpenclawAccountModelRuntimeByID(account, req.Model) |
| 947 | if err != nil { |
| 948 | return err |
| 949 | } |
| 950 | modelName := resolvedRuntime.StoredModel |
| 951 | apiType, maxTokens, contextWindow := resolvedRuntime.APIType, resolvedRuntime.MaxTokens, resolvedRuntime.ContextWindow |
| 952 | confDir := path.Dir(agent.ConfigPath) |
| 953 | if agent.AgentType == constant.AppHermesAgent { |
| 954 | cfg, err := readHermesConfig(agent.ConfigPath) |
| 955 | if err != nil { |
| 956 | return err |
| 957 | } |
| 958 | if err := writeHermesConfig(confDir, account, modelName, cfg.Timezone); err != nil { |
| 959 | return err |
| 960 | } |
| 961 | } else { |
| 962 | if agent.AgentType != constant.AppOpenclaw { |
| 963 | return fmt.Errorf("%s does not support", agent.AgentType) |
| 964 | } |
| 965 | if err := writeOpenclawConfig(confDir, account, modelName, agent.Token, nil, req.Fallbacks); err != nil { |
| 966 | return err |
| 967 | } |
| 968 | } |
| 969 | agent.Provider = account.Provider |
| 970 | agent.Model = modelName |
| 971 | agent.APIType = apiType |
| 972 | agent.MaxTokens = maxTokens |
| 973 | agent.ContextWindow = contextWindow |
| 974 | agent.BaseURL = account.BaseURL |
| 975 | agent.APIKey = account.APIKey |
| 976 | agent.AccountID = account.ID |
| 977 | return agentRepo.Save(agent) |
| 978 | } |
| 979 | |
| 980 | func (a AgentService) GetProviders() ([]dto.ProviderInfo, error) { |
| 981 | definitions := providercatalog.All() |
nothing calls this directly
no test coverage detected