feat(voicewake): route replies to last channel

This commit is contained in:
Peter Steinberger
2025-12-12 16:15:19 +00:00
parent 3f1bcac077
commit a524b9ae9b
15 changed files with 536 additions and 144 deletions

View File

@@ -33,10 +33,11 @@ enum VoiceWakeForwarder {
}
struct ForwardOptions: Sendable {
var session: String = "main"
var sessionKey: String = "main"
var thinking: String = "low"
var deliver: Bool = true
var to: String?
var channel: String = "last"
}
@discardableResult
@@ -45,12 +46,15 @@ enum VoiceWakeForwarder {
options: ForwardOptions = ForwardOptions()) async -> Result<Void, VoiceWakeForwardError>
{
let payload = Self.prefixedTranscript(transcript)
let channel = options.channel.trimmingCharacters(in: .whitespacesAndNewlines).lowercased()
let deliver = options.deliver && channel != "webchat"
let result = await AgentRPC.shared.send(
text: payload,
thinking: options.thinking,
session: options.session,
deliver: options.deliver,
to: options.to)
sessionKey: options.sessionKey,
deliver: deliver,
to: options.to,
channel: channel)
if result.ok {
self.logger.info("voice wake forward ok")