@@ -35,6 +35,7 @@ import { getNonce } from "./getNonce"
3535import { getUri } from "./getUri"
3636import { telemetryService } from "../../services/telemetry/TelemetryService"
3737import { TelemetrySetting } from "../../shared/TelemetrySetting"
38+ import { validateThinkingBudget } from "../../utils/validation"
3839
3940/*
4041https://github.com/microsoft/vscode-webview-ui-toolkit-samples/blob/main/default/weather-webview/src/providers/WeatherViewProvider.ts
@@ -261,6 +262,19 @@ export class ClineProvider implements vscode.WebviewViewProvider {
261262 // Update state when marketplace tab setting changes
262263 await this . postStateToWebview ( )
263264 }
265+ if ( e && e . affectsConfiguration ( "cline.modelSettings.anthropic.thinkingBudgetTokens" ) ) {
266+ const config = vscode . workspace . getConfiguration ( "cline.modelSettings.anthropic" )
267+ const thinkingBudget = config . get < number > ( "thinkingBudgetTokens" , 0 )
268+
269+ const validatedValue = validateThinkingBudget ( thinkingBudget )
270+
271+ // Only update if the value changed
272+ if ( validatedValue !== thinkingBudget ) {
273+ await config . update ( "thinkingBudgetTokens" , validatedValue , true )
274+ }
275+
276+ await this . postStateToWebview ( )
277+ }
264278 } ,
265279 null ,
266280 this . disposables ,
@@ -976,6 +990,15 @@ export class ClineProvider implements vscode.WebviewViewProvider {
976990 }
977991 break
978992 }
993+ case "updateThinkingBudgetTokens" : {
994+ if ( message . number !== undefined ) {
995+ const validatedValue = validateThinkingBudget ( message . number )
996+
997+ const config = vscode . workspace . getConfiguration ( "cline.modelSettings.anthropic" )
998+ await config . update ( "thinkingBudgetTokens" , validatedValue , true )
999+ }
1000+ break
1001+ }
9791002 case "openExtensionSettings" : {
9801003 const settingsFilter = message . text || ""
9811004 await vscode . commands . executeCommand (
@@ -2042,6 +2065,10 @@ Here is the project's README to help you get started:\n\n${mcpDetails.readmeCont
20422065 . getConfiguration ( "cline.modelSettings.o3Mini" )
20432066 . get ( "reasoningEffort" , "medium" )
20442067
2068+ const thinkingBudgetTokens = vscode . workspace
2069+ . getConfiguration ( "cline.modelSettings.anthropic" )
2070+ . get ( "thinkingBudgetTokens" , 0 )
2071+
20452072 const mcpMarketplaceEnabled = vscode . workspace . getConfiguration ( "cline" ) . get < boolean > ( "mcpMarketplace.enabled" , true )
20462073
20472074 return {
@@ -2084,6 +2111,7 @@ Here is the project's README to help you get started:\n\n${mcpDetails.readmeCont
20842111 openRouterModelInfo,
20852112 vsCodeLmModelSelector,
20862113 o3MiniReasoningEffort,
2114+ thinkingBudgetTokens,
20872115 liteLlmBaseUrl,
20882116 liteLlmModelId,
20892117 liteLlmApiKey,
0 commit comments