Support continue conversation in Assist dialog (#24511)

This commit is contained in:
Paulus Schoutsen 2025-03-05 02:11:29 -05:00 committed by GitHub
parent 79374f6052
commit 03b08fefb7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 10 additions and 1 deletions

View File

@ -295,6 +295,7 @@ export class HaAssistChat extends LitElement {
this._addMessage(userMessage);
this.requestUpdate("_audioRecorder");
let continueConversation = false;
let hassMessage = {
who: "hass",
text: "…",
@ -369,6 +370,8 @@ export class HaAssistChat extends LitElement {
if (event.type === "intent-end") {
this._conversationId = event.data.intent_output.conversation_id;
continueConversation =
event.data.intent_output.continue_conversation;
const plain = event.data.intent_output.response.speech?.plain;
if (plain) {
hassMessage.text = plain.speech;
@ -380,7 +383,12 @@ export class HaAssistChat extends LitElement {
const url = event.data.tts_output.url;
this._audio = new Audio(url);
this._audio.play();
this._audio.addEventListener("ended", this._unloadAudio);
this._audio.addEventListener("ended", () => {
this._unloadAudio();
if (continueConversation) {
this._startListening();
}
});
this._audio.addEventListener("pause", this._unloadAudio);
this._audio.addEventListener("canplaythrough", this._playAudio);
this._audio.addEventListener("error", this._audioError);

View File

@ -51,6 +51,7 @@ export interface ConversationResult {
| IntentResultActionDone
| IntentResultQueryAnswer
| IntentResultError;
continue_conversation: boolean;
}
export interface Agent {