@@ -30,6 +30,7 @@ import { McpHub } from "../../services/mcp/McpHub"
3030import { McpServerManager } from "../../services/mcp/McpServerManager"
3131import { fileExistsAtPath } from "../../utils/fs"
3232import { playSound , setSoundEnabled , setSoundVolume } from "../../utils/sound"
33+ import { playTts , setTtsEnabled } from "../../utils/tts"
3334import { singleCompletionHandler } from "../../utils/single-completion-handler"
3435import { searchCommits } from "../../utils/git"
3536import { getDiffStrategy } from "../diff/DiffStrategy"
@@ -394,6 +395,11 @@ export class ClineProvider implements vscode.WebviewViewProvider {
394395 setSoundEnabled ( soundEnabled ?? false )
395396 } )
396397
398+ // Initialize tts enabled state
399+ this . getState ( ) . then ( ( { ttsEnabled } ) => {
400+ setTtsEnabled ( ttsEnabled ?? false )
401+ } )
402+
397403 webviewView . webview . options = {
398404 // Allow scripts in the webview
399405 enableScripts : true ,
@@ -1204,6 +1210,17 @@ export class ClineProvider implements vscode.WebviewViewProvider {
12041210 setSoundVolume ( soundVolume )
12051211 await this . postStateToWebview ( )
12061212 break
1213+ case "ttsEnabled" :
1214+ const ttsEnabled = message . bool ?? true
1215+ await this . updateGlobalState ( "ttsEnabled" , ttsEnabled )
1216+ setTtsEnabled ( ttsEnabled ) // Add this line to update the tts utility
1217+ await this . postStateToWebview ( )
1218+ break
1219+ case "playTts" :
1220+ if ( message . text ) {
1221+ playTts ( message . text )
1222+ }
1223+ break
12071224 case "diffEnabled" :
12081225 const diffEnabled = message . bool ?? true
12091226 await this . updateGlobalState ( "diffEnabled" , diffEnabled )
@@ -2125,6 +2142,7 @@ export class ClineProvider implements vscode.WebviewViewProvider {
21252142 alwaysAllowMcp,
21262143 alwaysAllowModeSwitch,
21272144 soundEnabled,
2145+ ttsEnabled,
21282146 diffEnabled,
21292147 enableCheckpoints,
21302148 checkpointStorage,
@@ -2176,6 +2194,7 @@ export class ClineProvider implements vscode.WebviewViewProvider {
21762194 . filter ( ( item : HistoryItem ) => item . ts && item . task )
21772195 . sort ( ( a : HistoryItem , b : HistoryItem ) => b . ts - a . ts ) ,
21782196 soundEnabled : soundEnabled ?? false ,
2197+ ttsEnabled : ttsEnabled ?? false ,
21792198 diffEnabled : diffEnabled ?? true ,
21802199 enableCheckpoints : enableCheckpoints ?? true ,
21812200 checkpointStorage : checkpointStorage ?? "task" ,
@@ -2326,6 +2345,7 @@ export class ClineProvider implements vscode.WebviewViewProvider {
23262345 taskHistory : stateValues . taskHistory ,
23272346 allowedCommands : stateValues . allowedCommands ,
23282347 soundEnabled : stateValues . soundEnabled ?? false ,
2348+ ttsEnabled : stateValues . ttsEnabled ?? false ,
23292349 diffEnabled : stateValues . diffEnabled ?? true ,
23302350 enableCheckpoints : stateValues . enableCheckpoints ?? false ,
23312351 checkpointStorage : stateValues . checkpointStorage ?? "task" ,
0 commit comments