MCPcopy Index your code
hub / github.com/wavetermdev/waveterm / getWaveAISettings

Function getWaveAISettings

pkg/aiusechat/usechat.go:74–134  ·  view source on GitHub ↗
(premium bool, builderMode bool, rtInfo waveobj.ObjRTInfo, aiModeName string)

Source from the content-addressed store, hash-verified

72}
73
74func getWaveAISettings(premium bool, builderMode bool, rtInfo waveobj.ObjRTInfo, aiModeName string) (*uctypes.AIOptsType, error) {
75 maxTokens := DefaultMaxTokens
76 if builderMode {
77 maxTokens = BuilderMaxTokens
78 }
79 if rtInfo.WaveAIMaxOutputTokens > 0 {
80 maxTokens = rtInfo.WaveAIMaxOutputTokens
81 }
82 aiMode, config, err := resolveAIMode(aiModeName, premium)
83 if err != nil {
84 return nil, err
85 }
86 if config.WaveAICloud && !telemetry.IsTelemetryEnabled() {
87 return nil, fmt.Errorf("Wave AI cloud modes require telemetry to be enabled")
88 }
89 apiToken := config.APIToken
90 if apiToken == "" && config.APITokenSecretName != "" {
91 secret, exists, err := secretstore.GetSecret(config.APITokenSecretName)
92 if err != nil {
93 return nil, fmt.Errorf("failed to retrieve secret %s: %w", config.APITokenSecretName, err)
94 }
95 secret = strings.TrimSpace(secret)
96 if !exists || secret == "" {
97 return nil, fmt.Errorf("secret %s not found or empty", config.APITokenSecretName)
98 }
99 apiToken = secret
100 }
101
102 var baseUrl string
103 if config.Endpoint != "" {
104 baseUrl = config.Endpoint
105 } else {
106 return nil, fmt.Errorf("no ai:endpoint configured for AI mode %s", aiMode)
107 }
108
109 thinkingLevel := config.ThinkingLevel
110 if thinkingLevel == "" {
111 thinkingLevel = uctypes.ThinkingLevelMedium
112 }
113 verbosity := config.Verbosity
114 if verbosity == "" {
115 verbosity = uctypes.VerbosityLevelMedium // default to medium
116 }
117 opts := &uctypes.AIOptsType{
118 Provider: config.Provider,
119 APIType: config.APIType,
120 Model: config.Model,
121 MaxTokens: maxTokens,
122 ThinkingLevel: thinkingLevel,
123 Verbosity: verbosity,
124 AIMode: aiMode,
125 Endpoint: baseUrl,
126 ProxyURL: config.ProxyURL,
127 Capabilities: config.Capabilities,
128 WaveAIPremium: config.WaveAIPremium,
129 }
130 if apiToken != "" {
131 opts.APIToken = apiToken

Callers 1

WaveAIPostMessageHandlerFunction · 0.85

Calls 3

IsTelemetryEnabledFunction · 0.92
GetSecretFunction · 0.92
resolveAIModeFunction · 0.85

Tested by

no test coverage detected