diff --git a/scarf/scarf/Core/Models/HermesConfig.swift b/scarf/scarf/Core/Models/HermesConfig.swift index 9cb2107..bd5d91a 100644 --- a/scarf/scarf/Core/Models/HermesConfig.swift +++ b/scarf/scarf/Core/Models/HermesConfig.swift @@ -13,6 +13,7 @@ struct HermesConfig: Sendable { var streaming: Bool var showReasoning: Bool var verbose: Bool + var autoTTS: Bool static let empty = HermesConfig( model: "unknown", @@ -26,7 +27,8 @@ struct HermesConfig: Sendable { nudgeInterval: 0, streaming: true, showReasoning: false, - verbose: false + verbose: false, + autoTTS: true ) } diff --git a/scarf/scarf/Core/Services/HermesFileService.swift b/scarf/scarf/Core/Services/HermesFileService.swift index 2b764e2..e94d785 100644 --- a/scarf/scarf/Core/Services/HermesFileService.swift +++ b/scarf/scarf/Core/Services/HermesFileService.swift @@ -42,7 +42,8 @@ struct HermesFileService: Sendable { nudgeInterval: Int(values["memory.nudge_interval"] ?? "") ?? 0, streaming: values["display.streaming"] != "false", showReasoning: values["display.show_reasoning"] == "true", - verbose: values["agent.verbose"] == "true" + verbose: values["agent.verbose"] == "true", + autoTTS: values["voice.auto_tts"] != "false" ) } diff --git a/scarf/scarf/Features/Chat/ViewModels/ChatViewModel.swift b/scarf/scarf/Features/Chat/ViewModels/ChatViewModel.swift index d96128a..7b70175 100644 --- a/scarf/scarf/Features/Chat/ViewModels/ChatViewModel.swift +++ b/scarf/scarf/Features/Chat/ViewModels/ChatViewModel.swift @@ -5,6 +5,7 @@ import SwiftTerm @Observable final class ChatViewModel { private let dataService = HermesDataService() + private let fileService = HermesFileService() var recentSessions: [HermesSession] = [] var sessionPreviews: [String: String] = [:] @@ -63,6 +64,7 @@ final class ChatViewModel { } else { sendToTerminal(tv, text: "/voice on\r") voiceEnabled = true + ttsEnabled = fileService.loadConfig().autoTTS } }