Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | 1x 1x 1x 1x 1x 1x 1x 1x | import { McpDisplayMode, OpenaiReasoningEffort, UpdateSettingsRequest } from "@shared/proto/cline/state"
import { StateServiceClient } from "@/services/grpc-client"
/**
* Converts values to their corresponding proto format
* @param field - The field name
* @param value - The value to convert
* @returns The converted value
* @throws Error if the value is invalid for the field
*/
const convertToProtoValue = (field: keyof UpdateSettingsRequest, value: any): any => {
if (field === "openaiReasoningEffort" && typeof value === "string") {
switch (value) {
case "minimal":
return OpenaiReasoningEffort.MINIMAL
case "low":
return OpenaiReasoningEffort.LOW
case "medium":
return OpenaiReasoningEffort.MEDIUM
case "high":
return OpenaiReasoningEffort.HIGH
default:
throw new Error(`Invalid OpenAI reasoning effort value: ${value}`)
}
} else if (field === "mcpDisplayMode" && typeof value === "string") {
switch (value) {
case "rich":
return McpDisplayMode.RICH
case "plain":
return McpDisplayMode.PLAIN
case "markdown":
return McpDisplayMode.MARKDOWN
default:
throw new Error(`Invalid MCP display mode value: ${value}`)
}
}
return value
}
/**
* Updates a single field in the settings.
*
* @param field - The field key to update
* @param value - The new value for the field
*/
export const updateSetting = (field: keyof UpdateSettingsRequest, value: any) => {
const updateRequest: Partial<UpdateSettingsRequest> = {}
const convertedValue = convertToProtoValue(field, value)
updateRequest[field] = convertedValue
StateServiceClient.updateSettings(UpdateSettingsRequest.create(updateRequest)).catch((error) => {
console.error(`Failed to update setting ${field}:`, error)
})
}
|