diff --git a/frontend/src/views/WorkspaceView.vue b/frontend/src/views/WorkspaceView.vue index e5d036b..157b975 100644 --- a/frontend/src/views/WorkspaceView.vue +++ b/frontend/src/views/WorkspaceView.vue @@ -5,6 +5,8 @@ import { apiGet } from "@/api/client"; import { useChatStore } from "@/stores/chat"; import { useSettingsStore } from "@/stores/settings"; import { useToastStore } from "@/stores/toast"; +import { useListenMode } from "@/composables/useListenMode"; +import { useStreamingTts } from "@/composables/useStreamingTts"; import { renderMarkdown } from "@/utils/markdown"; import ChatMessage from "@/components/ChatMessage.vue"; import ToolCallCard from "@/components/ToolCallCard.vue"; @@ -16,6 +18,13 @@ const route = useRoute(); const chatStore = useChatStore(); const settingsStore = useSettingsStore(); const toast = useToastStore(); +const listenMode = useListenMode(); +const voiceTtsEnabled = computed(() => settingsStore.voiceTtsReady); +const tts = useStreamingTts({ + streamingContent: computed(() => chatStore.streamingContent), + streaming: computed(() => chatStore.streaming), + enabled: computed(() => listenMode.value && voiceTtsEnabled.value), +}); const projectId = computed(() => Number(route.params.projectId)); @@ -372,6 +381,22 @@ onUnmounted(async () => { @keydown="onInputKeydown" @input="autoResize" > + +