diff --git a/docs/duplex_interaction.svg b/docs/duplex_interaction.svg
new file mode 100644
index 0000000..9ccd0bb
--- /dev/null
+++ b/docs/duplex_interaction.svg
@@ -0,0 +1,96 @@
+
diff --git a/examples/web_client.html b/examples/web_client.html
index 02ab70e..6838171 100644
--- a/examples/web_client.html
+++ b/examples/web_client.html
@@ -331,7 +331,6 @@
-
Chat
@@ -372,7 +371,6 @@
const outputSelect = document.getElementById("outputSelect");
const startMicBtn = document.getElementById("startMicBtn");
const stopMicBtn = document.getElementById("stopMicBtn");
- const interruptBtn = document.getElementById("interruptBtn");
const refreshDevicesBtn = document.getElementById("refreshDevicesBtn");
const sendChatBtn = document.getElementById("sendChatBtn");
const clearLogBtn = document.getElementById("clearLogBtn");
@@ -504,6 +502,7 @@
setStatus(true, "Session open");
logLine("sys", "WebSocket connected");
ensureAudioContext();
+ sendCommand({ command: "invite", option: { codec: "pcm", sampleRate: targetSampleRate } });
};
ws.onclose = () => {
@@ -653,7 +652,6 @@
});
startMicBtn.addEventListener("click", startMic);
stopMicBtn.addEventListener("click", stopMic);
- interruptBtn.addEventListener("click", () => sendCommand({ command: "interrupt" }));
sendChatBtn.addEventListener("click", () => {
const text = chatInput.value.trim();
if (!text) return;