( payloads []contract.SettingsProviderModelPayload, )
| 977 | } |
| 978 | |
| 979 | func providerModelConfigsFromPayload( |
| 980 | payloads []contract.SettingsProviderModelPayload, |
| 981 | ) []aghconfig.ProviderModelConfig { |
| 982 | if payloads == nil { |
| 983 | return nil |
| 984 | } |
| 985 | models := make([]aghconfig.ProviderModelConfig, 0, len(payloads)) |
| 986 | for _, payload := range payloads { |
| 987 | models = append(models, aghconfig.ProviderModelConfig{ |
| 988 | ID: strings.TrimSpace(payload.ID), |
| 989 | DisplayName: strings.TrimSpace(payload.DisplayName), |
| 990 | ContextWindow: cloneInt64Ptr(payload.ContextWindow), |
| 991 | MaxInputTokens: cloneInt64Ptr(payload.MaxInputTokens), |
| 992 | MaxOutputTokens: cloneInt64Ptr(payload.MaxOutputTokens), |
| 993 | SupportsTools: cloneBoolPtr(payload.SupportsTools), |
| 994 | SupportsReasoning: cloneBoolPtr(payload.SupportsReasoning), |
| 995 | ReasoningEfforts: trimStringSliceInternal(payload.ReasoningEfforts), |
| 996 | DefaultReasoningEffort: strings.TrimSpace(payload.DefaultReasoningEffort), |
| 997 | CostInputPerMillion: cloneFloat64Ptr(payload.CostInputPerMillion), |
| 998 | CostOutputPerMillion: cloneFloat64Ptr(payload.CostOutputPerMillion), |
| 999 | }) |
| 1000 | } |
| 1001 | return models |
| 1002 | } |
| 1003 | |
| 1004 | func cloneFloat64Ptr(value *float64) *float64 { |
| 1005 | if value == nil { |
no test coverage detected