diff --git a/examples/aws-agentcore/server/client/README.md b/examples/aws-agentcore/server/client/README.md
new file mode 100644
index 000000000..9ba3ad393
--- /dev/null
+++ b/examples/aws-agentcore/server/client/README.md
@@ -0,0 +1,27 @@
+# JavaScript Implementation
+
+Basic implementation using the [Pipecat JavaScript SDK](https://docs.pipecat.ai/client/js/introduction).
+
+## Setup
+
+1. Run the bot server. See the [server README](../../README).
+
+2. Navigate to the `client/typescript` directory:
+
+```bash
+cd client/typescript
+```
+
+3. Install dependencies:
+
+```bash
+yarn install
+```
+
+4. Run the client app:
+
+```
+yarn dev
+```
+
+5. Visit http://localhost:5173 in your browser.
diff --git a/examples/aws-agentcore/server/client/env.example b/examples/aws-agentcore/server/client/env.example
new file mode 100644
index 000000000..fe5ca1996
--- /dev/null
+++ b/examples/aws-agentcore/server/client/env.example
@@ -0,0 +1 @@
+VITE_PIPECAT_BASE_URL=http://0.0.0.0:7860
\ No newline at end of file
diff --git a/examples/aws-agentcore/server/client/index.html b/examples/aws-agentcore/server/client/index.html
new file mode 100644
index 000000000..8a231ddae
--- /dev/null
+++ b/examples/aws-agentcore/server/client/index.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+ WebRTC demo
+
+
+
+
+
+
+ Status: Disconnected
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/aws-agentcore/server/client/package.json b/examples/aws-agentcore/server/client/package.json
new file mode 100644
index 000000000..54464f125
--- /dev/null
+++ b/examples/aws-agentcore/server/client/package.json
@@ -0,0 +1,24 @@
+{
+ "name": "client",
+ "version": "1.0.0",
+ "main": "index.js",
+ "scripts": {
+ "dev": "node_modules/.bin/vite",
+ "build": "node_modules/.bin/tsc && vite build",
+ "preview": "node_modules/.bin/vite preview"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "description": "",
+ "devDependencies": {
+ "@types/node": "^22.13.1",
+ "@vitejs/plugin-react-swc": "^3.7.2",
+ "typescript": "^5.7.3",
+ "vite": "^6.3.6"
+ },
+ "dependencies": {
+ "@pipecat-ai/client-js": "^1.4.1",
+ "@pipecat-ai/small-webrtc-transport": "^1.7.1"
+ }
+}
diff --git a/examples/aws-agentcore/server/client/src/app.ts b/examples/aws-agentcore/server/client/src/app.ts
new file mode 100644
index 000000000..780ca1603
--- /dev/null
+++ b/examples/aws-agentcore/server/client/src/app.ts
@@ -0,0 +1,186 @@
+import { SmallWebRTCTransport } from '@pipecat-ai/small-webrtc-transport';
+import {
+ APIRequest,
+ BotLLMTextData,
+ Participant,
+ PipecatClient,
+ PipecatClientOptions,
+ TranscriptData,
+ TransportState,
+} from '@pipecat-ai/client-js';
+
+class WebRTCApp {
+ private declare connectBtn: HTMLButtonElement;
+ private declare disconnectBtn: HTMLButtonElement;
+ private declare botAudioElement: HTMLAudioElement;
+
+ private debugLog: HTMLElement | null = null;
+ private statusSpan: HTMLElement | null = null;
+
+ private declare smallWebRTCTransport: SmallWebRTCTransport;
+ private declare pcClient: PipecatClient;
+
+ private declare baseUrl: string;
+ private declare startUrl: string;
+ private declare apiKey: string;
+
+ constructor() {
+ this.setupEnvironmentVariables();
+ this.setupDOMElements();
+ this.setupDOMEventListeners();
+ this.initializePipecatClient();
+ }
+
+ private setupEnvironmentVariables() {
+ this.baseUrl = import.meta.env.VITE_PIPECAT_BASE_URL
+ this.startUrl = `${this.baseUrl}/start`
+ this.apiKey = import.meta.env.VITE_PIPECAT_PUBLIC_API;
+ }
+
+ private initializePipecatClient(): void {
+ const opts: PipecatClientOptions = {
+ transport: new SmallWebRTCTransport({waitForICEGathering:true}),
+ enableMic: true,
+ enableCam: true,
+ callbacks: {
+ onTransportStateChanged: (state: TransportState) => {
+ this.log(`Transport state: ${state}`);
+ },
+ onConnected: () => {
+ this.onConnectedHandler();
+ },
+ onBotReady: () => {
+ this.log('Bot is ready.');
+ },
+ onDisconnected: () => {
+ this.onDisconnectedHandler();
+ },
+ onUserStartedSpeaking: () => {
+ this.log('User started speaking.');
+ },
+ onUserStoppedSpeaking: () => {
+ this.log('User stopped speaking.');
+ },
+ onBotStartedSpeaking: () => {
+ this.log('Bot started speaking.');
+ },
+ onBotStoppedSpeaking: () => {
+ this.log('Bot stopped speaking.');
+ },
+ onUserTranscript: (transcript: TranscriptData) => {
+ if (transcript.final) {
+ this.log(`User transcript: ${transcript.text}`);
+ }
+ },
+ onBotTranscript: (data: BotLLMTextData) => {
+ this.log(`Bot transcript: ${data.text}`);
+ },
+ onTrackStarted: (
+ track: MediaStreamTrack,
+ participant?: Participant
+ ) => {
+ if (!participant?.local) {
+ this.onBotTrackStarted(track);
+ }
+ },
+ onServerMessage: (msg: unknown) => {
+ this.log(`Server message: ${msg}`);
+ },
+ },
+ };
+ this.pcClient = new PipecatClient(opts);
+ // @ts-ignore
+ window.webapp = this;
+ // @ts-ignore
+ window.client = this.pcClient; // Expose client for debugging
+ this.smallWebRTCTransport = this.pcClient.transport as SmallWebRTCTransport;
+ }
+
+ private setupDOMElements(): void {
+ this.connectBtn = document.getElementById(
+ 'connect-btn'
+ ) as HTMLButtonElement;
+ this.disconnectBtn = document.getElementById(
+ 'disconnect-btn'
+ ) as HTMLButtonElement;
+ this.debugLog = document.getElementById('debug-log');
+ this.statusSpan = document.getElementById('connection-status');
+ this.botAudioElement = document.getElementById('bot-audio') as HTMLAudioElement;
+ }
+
+ private setupDOMEventListeners(): void {
+ this.connectBtn.addEventListener('click', () => this.start());
+ this.disconnectBtn.addEventListener('click', () => this.stop());
+ }
+
+ private log(message: string): void {
+ if (!this.debugLog) return;
+ const entry = document.createElement('div');
+ entry.textContent = `${new Date().toISOString()} - ${message}`;
+ if (message.startsWith('User: ')) {
+ entry.style.color = '#2196F3';
+ } else if (message.startsWith('Bot: ')) {
+ entry.style.color = '#4CAF50';
+ }
+ this.debugLog.appendChild(entry);
+ this.debugLog.scrollTop = this.debugLog.scrollHeight;
+ }
+
+ private clearAllLogs() {
+ this.debugLog!.innerText = '';
+ }
+
+ private updateStatus(status: string): void {
+ if (this.statusSpan) {
+ this.statusSpan.textContent = status;
+ }
+ this.log(`Status: ${status}`);
+ }
+
+ private onConnectedHandler() {
+ this.updateStatus('Connected');
+ if (this.connectBtn) this.connectBtn.disabled = true;
+ if (this.disconnectBtn) this.disconnectBtn.disabled = false;
+ }
+
+ private onDisconnectedHandler() {
+ this.updateStatus('Disconnected');
+ if (this.connectBtn) this.connectBtn.disabled = false;
+ if (this.disconnectBtn) this.disconnectBtn.disabled = true;
+ }
+
+ private onBotTrackStarted(track: MediaStreamTrack) {
+ if (track.kind === 'audio') {
+ this.botAudioElement.srcObject = new MediaStream([track]);
+ }
+ }
+
+ private async start(): Promise {
+ this.clearAllLogs();
+ await this.pcClient.initDevices()
+ this.connectBtn.disabled = true;
+ try {
+ this.updateStatus('Starting the bot');
+ const headers = new Headers();
+ headers.append("Authorization", `Bearer ${this.apiKey}`);
+ await this.pcClient.startBotAndConnect({
+ endpoint: this.startUrl,
+ headers: headers,
+ requestData: {
+ createDailyRoom: false,
+ enableDefaultIceServers: true
+ }
+ });
+ } catch (e) {
+ console.log(`Failed to connect ${e}`);
+ this.stop();
+ }
+ }
+
+ private stop(): void {
+ void this.pcClient.disconnect();
+ }
+}
+
+// Create the WebRTCConnection instance
+const webRTCConnection = new WebRTCApp();
\ No newline at end of file
diff --git a/examples/aws-agentcore/server/client/src/style.css b/examples/aws-agentcore/server/client/src/style.css
new file mode 100644
index 000000000..09fa9d396
--- /dev/null
+++ b/examples/aws-agentcore/server/client/src/style.css
@@ -0,0 +1,122 @@
+body {
+ margin: 0;
+ padding: 20px;
+ font-family: Arial, sans-serif;
+ background-color: #f0f0f0;
+ display: flex;
+ flex-direction: row;
+ width: 100%;
+}
+
+.container {
+ margin: 0 auto;
+ width: 90%;
+}
+
+.option {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+}
+
+label {
+ margin: 5px;
+}
+
+select {
+ padding: 8px;
+ margin: 10px;
+ border-radius: 4px;
+ border: 1px solid #ccc;
+}
+
+#mute-mic {
+ padding: 8px;
+ margin: 10px;
+ border-radius: 4px;
+ border: 1px solid #ccc;
+ background-color: white;
+ cursor: pointer;
+}
+
+.status-bar {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ align-items: center;
+ padding: 10px;
+ background-color: #fff;
+ border-radius: 8px;
+ margin-bottom: 20px;
+}
+
+.controls button {
+ padding: 8px 16px;
+ margin-left: 10px;
+ border: none;
+ border-radius: 4px;
+ cursor: pointer;
+}
+
+#connect-btn {
+ background-color: #4caf50;
+ color: white;
+}
+
+#disconnect-btn {
+ background-color: #f44336;
+ color: white;
+}
+
+button:disabled {
+ opacity: 0.5;
+ cursor: not-allowed;
+}
+
+.main-content {
+ background-color: #fff;
+ border-radius: 8px;
+ padding: 20px;
+ margin-bottom: 20px;
+ display: flex;
+ flex-wrap: wrap;
+}
+
+.bot-container {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ width: 50%;
+}
+
+.debug-panel {
+ background-color: #fff;
+ border-radius: 8px;
+ width: 100%;
+}
+
+@media (max-width: 768px) {
+ .bot-container {
+ width: 100%;
+ }
+ .debug-panel {
+ width: 100%;
+ }
+}
+
+.debug-panel h3 {
+ margin: 0 0 10px 0;
+ font-size: 16px;
+ font-weight: bold;
+}
+
+#debug-log {
+ height: 360px;
+ overflow-y: auto;
+ background-color: #f8f8f8;
+ border-radius: 4px;
+ font-family: monospace;
+ font-size: 12px;
+ line-height: 1.4;
+}
+
diff --git a/examples/aws-agentcore/server/client/tsconfig.json b/examples/aws-agentcore/server/client/tsconfig.json
new file mode 100644
index 000000000..627040ce4
--- /dev/null
+++ b/examples/aws-agentcore/server/client/tsconfig.json
@@ -0,0 +1,11 @@
+{
+ "compilerOptions": {
+ "target": "ESNext",
+ "module": "ESNext",
+ "moduleResolution": "NodeNext", // <— important
+ "types": ["vite/client"],
+ "strict": true,
+ "esModuleInterop": true,
+ "skipLibCheck": true
+ }
+}
\ No newline at end of file
diff --git a/examples/aws-agentcore/server/client/vite.config.js b/examples/aws-agentcore/server/client/vite.config.js
new file mode 100644
index 000000000..82258263b
--- /dev/null
+++ b/examples/aws-agentcore/server/client/vite.config.js
@@ -0,0 +1,17 @@
+/* jshint esversion: 6 */
+import { defineConfig } from 'vite';
+import react from '@vitejs/plugin-react-swc';
+
+export default defineConfig({
+ plugins: [react()],
+ server: {
+ allowedHosts: true, // Allows external connections like ngrok
+ proxy: {
+ // Proxy /api requests to the backend server
+ '/v1': {
+ target: 'http://0.0.0.0:8000', // Replace with your backend URL
+ changeOrigin: true,
+ },
+ },
+ },
+});
diff --git a/examples/aws-agentcore/server/client/yarn.lock b/examples/aws-agentcore/server/client/yarn.lock
new file mode 100644
index 000000000..526557134
--- /dev/null
+++ b/examples/aws-agentcore/server/client/yarn.lock
@@ -0,0 +1,636 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@babel/runtime@^7.12.5":
+ version "7.28.3"
+ resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.3.tgz"
+ integrity sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==
+
+"@daily-co/daily-js@^0.83.1":
+ version "0.83.1"
+ resolved "https://registry.npmjs.org/@daily-co/daily-js/-/daily-js-0.83.1.tgz"
+ integrity sha512-KXA3zrSnNPZONwhip4TI6ayD3huumI1QBD/xPAjFArvHuFFB7t0QTOS2oxH1bXvdOBJ6XnY08vdlJslTVi2/2w==
+ dependencies:
+ "@babel/runtime" "^7.12.5"
+ "@sentry/browser" "^8.33.1"
+ bowser "^2.8.1"
+ dequal "^2.0.3"
+ events "^3.1.0"
+
+"@esbuild/aix-ppc64@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.6.tgz#164b19122e2ed54f85469df9dea98ddb01d5e79e"
+ integrity sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw==
+
+"@esbuild/android-arm64@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.6.tgz#8f539e7def848f764f6432598e51cc3820fde3a5"
+ integrity sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==
+
+"@esbuild/android-arm@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.6.tgz#4ceb0f40113e9861169be83e2a670c260dd234ff"
+ integrity sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==
+
+"@esbuild/android-x64@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.6.tgz#ad4f280057622c25fe985c08999443a195dc63a8"
+ integrity sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==
+
+"@esbuild/darwin-arm64@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.6.tgz"
+ integrity sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==
+
+"@esbuild/darwin-x64@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.6.tgz#2b4a6cedb799f635758d7832d75b23772c8ef68f"
+ integrity sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==
+
+"@esbuild/freebsd-arm64@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.6.tgz#a26266cc97dd78dc3c3f3d6788b1b83697b1055d"
+ integrity sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==
+
+"@esbuild/freebsd-x64@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.6.tgz#9feb8e826735c568ebfd94859b22a3fbb6a9bdd2"
+ integrity sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==
+
+"@esbuild/linux-arm64@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.6.tgz#c07cbed8e249f4c28e7f32781d36fc4695293d28"
+ integrity sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==
+
+"@esbuild/linux-arm@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.6.tgz#d6e2cd8ef3196468065d41f13fa2a61aaa72644a"
+ integrity sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==
+
+"@esbuild/linux-ia32@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.6.tgz#3e682bd47c4eddcc4b8f1393dfc8222482f17997"
+ integrity sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==
+
+"@esbuild/linux-loong64@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.6.tgz#473f5ea2e52399c08ad4cd6b12e6dbcddd630f05"
+ integrity sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==
+
+"@esbuild/linux-mips64el@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.6.tgz#9960631c9fd61605b0939c19043acf4ef2b51718"
+ integrity sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==
+
+"@esbuild/linux-ppc64@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.6.tgz#477cbf8bb04aa034b94f362c32c86b5c31db8d3e"
+ integrity sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==
+
+"@esbuild/linux-riscv64@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.6.tgz#bcdb46c8fb8e93aa779e9a0a62cd4ac00dcac626"
+ integrity sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==
+
+"@esbuild/linux-s390x@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.6.tgz#f412cf5fdf0aea849ff51c73fd817c6c0234d46d"
+ integrity sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==
+
+"@esbuild/linux-x64@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.6.tgz#d8233c09b5ebc0c855712dc5eeb835a3a3341108"
+ integrity sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==
+
+"@esbuild/netbsd-arm64@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.6.tgz#f51ae8dd1474172e73cf9cbaf8a38d1c72dd8f1a"
+ integrity sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==
+
+"@esbuild/netbsd-x64@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.6.tgz#a267538602c0e50a858cf41dcfe5d8036f8da8e7"
+ integrity sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==
+
+"@esbuild/openbsd-arm64@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.6.tgz#a51be60c425b85c216479b8c344ad0511635f2d2"
+ integrity sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==
+
+"@esbuild/openbsd-x64@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.6.tgz#7e4a743c73f75562e29223ba69d0be6c9c9008da"
+ integrity sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==
+
+"@esbuild/openharmony-arm64@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.6.tgz#2087a5028f387879154ebf44bdedfafa17682e5b"
+ integrity sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==
+
+"@esbuild/sunos-x64@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.6.tgz#56531f861723ea0dc6283a2bb8837304223cb736"
+ integrity sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==
+
+"@esbuild/win32-arm64@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.6.tgz#f4989f033deac6fae323acff58764fa8bc01436e"
+ integrity sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==
+
+"@esbuild/win32-ia32@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.6.tgz#b260e9df71e3939eb33925076d39f63cec7d1525"
+ integrity sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==
+
+"@esbuild/win32-x64@0.25.6":
+ version "0.25.6"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.6.tgz#4276edd5c105bc28b11c6a1f76fb9d29d1bd25c1"
+ integrity sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==
+
+"@pipecat-ai/client-js@^1.4.1":
+ version "1.4.1"
+ resolved "https://registry.npmjs.org/@pipecat-ai/client-js/-/client-js-1.4.1.tgz"
+ integrity sha512-NwqpsSpNd2nK0Nm33lUTxU0qc0sTPcC9x/sJaOFraEtAxhbEXWOo0mam0E/AqXQ9m/r/HusXoI645u384HujsA==
+ dependencies:
+ "@types/events" "^3.0.3"
+ bowser "^2.11.0"
+ clone-deep "^4.0.1"
+ events "^3.3.0"
+ typed-emitter "^2.1.0"
+ uuid "^10.0.0"
+
+"@pipecat-ai/small-webrtc-transport@^1.7.1":
+ version "1.7.3"
+ resolved "https://registry.yarnpkg.com/@pipecat-ai/small-webrtc-transport/-/small-webrtc-transport-1.7.3.tgz#e4521adaf6ceada331d737bf1a462d0532321df6"
+ integrity sha512-Qwwrw8E1P6IjdR/FZ7le8vMhe1fG67rjwZvlt3pjC4c0S8FUazHw6OXdkLEHejPkJx3Csh09rMAeHPAR81MGkg==
+ dependencies:
+ "@daily-co/daily-js" "^0.83.1"
+ dequal "^2.0.3"
+ lodash "^4.17.21"
+
+"@rolldown/pluginutils@1.0.0-beta.11":
+ version "1.0.0-beta.11"
+ resolved "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.11.tgz"
+ integrity sha512-L/gAA/hyCSuzTF1ftlzUSI/IKr2POHsv1Dd78GfqkR83KMNuswWD61JxGV2L7nRwBBBSDr6R1gCkdTmoN7W4ag==
+
+"@rollup/rollup-android-arm-eabi@4.44.2":
+ version "4.44.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.44.2.tgz#6819b7f1e41a49af566f629a1556eaeea774d043"
+ integrity sha512-g0dF8P1e2QYPOj1gu7s/3LVP6kze9A7m6x0BZ9iTdXK8N5c2V7cpBKHV3/9A4Zd8xxavdhK0t4PnqjkqVmUc9Q==
+
+"@rollup/rollup-android-arm64@4.44.2":
+ version "4.44.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.44.2.tgz#7bd5591af68c64a75be1779e2b20f187878daba9"
+ integrity sha512-Yt5MKrOosSbSaAK5Y4J+vSiID57sOvpBNBR6K7xAaQvk3MkcNVV0f9fE20T+41WYN8hDn6SGFlFrKudtx4EoxA==
+
+"@rollup/rollup-darwin-arm64@4.44.2":
+ version "4.44.2"
+ resolved "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.44.2.tgz"
+ integrity sha512-EsnFot9ZieM35YNA26nhbLTJBHD0jTwWpPwmRVDzjylQT6gkar+zenfb8mHxWpRrbn+WytRRjE0WKsfaxBkVUA==
+
+"@rollup/rollup-darwin-x64@4.44.2":
+ version "4.44.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.44.2.tgz#202f80eea3acfe3f67496fedffa006a5f1ce7f5a"
+ integrity sha512-dv/t1t1RkCvJdWWxQ2lWOO+b7cMsVw5YFaS04oHpZRWehI1h0fV1gF4wgGCTyQHHjJDfbNpwOi6PXEafRBBezw==
+
+"@rollup/rollup-freebsd-arm64@4.44.2":
+ version "4.44.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.44.2.tgz#4880f9769f1a7eec436b9c146e1d714338c26567"
+ integrity sha512-W4tt4BLorKND4qeHElxDoim0+BsprFTwb+vriVQnFFtT/P6v/xO5I99xvYnVzKWrK6j7Hb0yp3x7V5LUbaeOMg==
+
+"@rollup/rollup-freebsd-x64@4.44.2":
+ version "4.44.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.44.2.tgz#647d6e333349b1c0fb322c2827ba1a53a0f10301"
+ integrity sha512-tdT1PHopokkuBVyHjvYehnIe20fxibxFCEhQP/96MDSOcyjM/shlTkZZLOufV3qO6/FQOSiJTBebhVc12JyPTA==
+
+"@rollup/rollup-linux-arm-gnueabihf@4.44.2":
+ version "4.44.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.44.2.tgz#7ba5c97a7224f49618861d093c4a7b40fa50867b"
+ integrity sha512-+xmiDGGaSfIIOXMzkhJ++Oa0Gwvl9oXUeIiwarsdRXSe27HUIvjbSIpPxvnNsRebsNdUo7uAiQVgBD1hVriwSQ==
+
+"@rollup/rollup-linux-arm-musleabihf@4.44.2":
+ version "4.44.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.44.2.tgz#f858dcf498299d6c625ec697a5191e0e41423905"
+ integrity sha512-bDHvhzOfORk3wt8yxIra8N4k/N0MnKInCW5OGZaeDYa/hMrdPaJzo7CSkjKZqX4JFUWjUGm88lI6QJLCM7lDrA==
+
+"@rollup/rollup-linux-arm64-gnu@4.44.2":
+ version "4.44.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.44.2.tgz#c0f1fc20c50666c61f574536a00cdd486b6aaae1"
+ integrity sha512-NMsDEsDiYghTbeZWEGnNi4F0hSbGnsuOG+VnNvxkKg0IGDvFh7UVpM/14mnMwxRxUf9AdAVJgHPvKXf6FpMB7A==
+
+"@rollup/rollup-linux-arm64-musl@4.44.2":
+ version "4.44.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.44.2.tgz#0214efc3e404ddf108e946ad5f7e4ee2792a155a"
+ integrity sha512-lb5bxXnxXglVq+7imxykIp5xMq+idehfl+wOgiiix0191av84OqbjUED+PRC5OA8eFJYj5xAGcpAZ0pF2MnW+A==
+
+"@rollup/rollup-linux-loongarch64-gnu@4.44.2":
+ version "4.44.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.44.2.tgz#8303c4ea2ae7bcbb96b2c77cfb53527d964bfceb"
+ integrity sha512-Yl5Rdpf9pIc4GW1PmkUGHdMtbx0fBLE1//SxDmuf3X0dUC57+zMepow2LK0V21661cjXdTn8hO2tXDdAWAqE5g==
+
+"@rollup/rollup-linux-powerpc64le-gnu@4.44.2":
+ version "4.44.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.44.2.tgz#4197ffbc61809629094c0fccf825e43a40fbc0ca"
+ integrity sha512-03vUDH+w55s680YYryyr78jsO1RWU9ocRMaeV2vMniJJW/6HhoTBwyyiiTPVHNWLnhsnwcQ0oH3S9JSBEKuyqw==
+
+"@rollup/rollup-linux-riscv64-gnu@4.44.2":
+ version "4.44.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.44.2.tgz#bcb99c9004c9b91e3704a6a70c892cb0599b1f42"
+ integrity sha512-iYtAqBg5eEMG4dEfVlkqo05xMOk6y/JXIToRca2bAWuqjrJYJlx/I7+Z+4hSrsWU8GdJDFPL4ktV3dy4yBSrzg==
+
+"@rollup/rollup-linux-riscv64-musl@4.44.2":
+ version "4.44.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.44.2.tgz#3e943bae9b8b4637c573c1922392beb8a5e81acb"
+ integrity sha512-e6vEbgaaqz2yEHqtkPXa28fFuBGmUJ0N2dOJK8YUfijejInt9gfCSA7YDdJ4nYlv67JfP3+PSWFX4IVw/xRIPg==
+
+"@rollup/rollup-linux-s390x-gnu@4.44.2":
+ version "4.44.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.44.2.tgz#dc43fb467bff9547f5b9937f38668da07fa8fa9f"
+ integrity sha512-evFOtkmVdY3udE+0QKrV5wBx7bKI0iHz5yEVx5WqDJkxp9YQefy4Mpx3RajIVcM6o7jxTvVd/qpC1IXUhGc1Mw==
+
+"@rollup/rollup-linux-x64-gnu@4.44.2":
+ version "4.44.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.44.2.tgz#0699c560fa6ce6b846581a7e6c30c85c22a3f0da"
+ integrity sha512-/bXb0bEsWMyEkIsUL2Yt5nFB5naLAwyOWMEviQfQY1x3l5WsLKgvZf66TM7UTfED6erckUVUJQ/jJ1FSpm3pRQ==
+
+"@rollup/rollup-linux-x64-musl@4.44.2":
+ version "4.44.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.44.2.tgz#9fb1becedcdc9e227d4748576eb8ba2fad8d2e29"
+ integrity sha512-3D3OB1vSSBXmkGEZR27uiMRNiwN08/RVAcBKwhUYPaiZ8bcvdeEwWPvbnXvvXHY+A/7xluzcN+kaiOFNiOZwWg==
+
+"@rollup/rollup-win32-arm64-msvc@4.44.2":
+ version "4.44.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.44.2.tgz#fcf3e62edd76c560252b819f69627685f65887d7"
+ integrity sha512-VfU0fsMK+rwdK8mwODqYeM2hDrF2WiHaSmCBrS7gColkQft95/8tphyzv2EupVxn3iE0FI78wzffoULH1G+dkw==
+
+"@rollup/rollup-win32-ia32-msvc@4.44.2":
+ version "4.44.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.44.2.tgz#45a5304491d6da4666f6159be4f739d4d43a283f"
+ integrity sha512-+qMUrkbUurpE6DVRjiJCNGZBGo9xM4Y0FXU5cjgudWqIBWbcLkjE3XprJUsOFgC6xjBClwVa9k6O3A7K3vxb5Q==
+
+"@rollup/rollup-win32-x64-msvc@4.44.2":
+ version "4.44.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.44.2.tgz#660018c9696ad4f48abe8c5d56db53c81aadba25"
+ integrity sha512-3+QZROYfJ25PDcxFF66UEk8jGWigHJeecZILvkPkyQN7oc5BvFo4YEXFkOs154j3FTMp9mn9Ky8RCOwastduEA==
+
+"@sentry-internal/browser-utils@8.55.0":
+ version "8.55.0"
+ resolved "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.55.0.tgz"
+ integrity sha512-ROgqtQfpH/82AQIpESPqPQe0UyWywKJsmVIqi3c5Fh+zkds5LUxnssTj3yNd1x+kxaPDVB023jAP+3ibNgeNDw==
+ dependencies:
+ "@sentry/core" "8.55.0"
+
+"@sentry-internal/feedback@8.55.0":
+ version "8.55.0"
+ resolved "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.55.0.tgz"
+ integrity sha512-cP3BD/Q6pquVQ+YL+rwCnorKuTXiS9KXW8HNKu4nmmBAyf7urjs+F6Hr1k9MXP5yQ8W3yK7jRWd09Yu6DHWOiw==
+ dependencies:
+ "@sentry/core" "8.55.0"
+
+"@sentry-internal/replay-canvas@8.55.0":
+ version "8.55.0"
+ resolved "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.55.0.tgz"
+ integrity sha512-nIkfgRWk1091zHdu4NbocQsxZF1rv1f7bbp3tTIlZYbrH62XVZosx5iHAuZG0Zc48AETLE7K4AX9VGjvQj8i9w==
+ dependencies:
+ "@sentry-internal/replay" "8.55.0"
+ "@sentry/core" "8.55.0"
+
+"@sentry-internal/replay@8.55.0":
+ version "8.55.0"
+ resolved "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.55.0.tgz"
+ integrity sha512-roCDEGkORwolxBn8xAKedybY+Jlefq3xYmgN2fr3BTnsXjSYOPC7D1/mYqINBat99nDtvgFvNfRcZPiwwZ1hSw==
+ dependencies:
+ "@sentry-internal/browser-utils" "8.55.0"
+ "@sentry/core" "8.55.0"
+
+"@sentry/browser@^8.33.1":
+ version "8.55.0"
+ resolved "https://registry.npmjs.org/@sentry/browser/-/browser-8.55.0.tgz"
+ integrity sha512-1A31mCEWCjaMxJt6qGUK+aDnLDcK6AwLAZnqpSchNysGni1pSn1RWSmk9TBF8qyTds5FH8B31H480uxMPUJ7Cw==
+ dependencies:
+ "@sentry-internal/browser-utils" "8.55.0"
+ "@sentry-internal/feedback" "8.55.0"
+ "@sentry-internal/replay" "8.55.0"
+ "@sentry-internal/replay-canvas" "8.55.0"
+ "@sentry/core" "8.55.0"
+
+"@sentry/core@8.55.0":
+ version "8.55.0"
+ resolved "https://registry.npmjs.org/@sentry/core/-/core-8.55.0.tgz"
+ integrity sha512-6g7jpbefjHYs821Z+EBJ8r4Z7LT5h80YSWRJaylGS4nW5W5Z2KXzpdnyFarv37O7QjauzVC2E+PABmpkw5/JGA==
+
+"@swc/core-darwin-arm64@1.12.9":
+ version "1.12.9"
+ resolved "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.12.9.tgz"
+ integrity sha512-GACFEp4nD6V+TZNR2JwbMZRHB+Yyvp14FrcmB6UCUYmhuNWjkxi+CLnEvdbuiKyQYv0zA+TRpCHZ+whEs6gwfA==
+
+"@swc/core-darwin-x64@1.12.9":
+ version "1.12.9"
+ resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.12.9.tgz#166843f1a8b8000d9932817769cfac0c189dc40c"
+ integrity sha512-hv2kls7Ilkm2EpeJz+I9MCil7pGS3z55ZAgZfxklEuYsxpICycxeH+RNRv4EraggN44ms+FWCjtZFu0LGg2V3g==
+
+"@swc/core-linux-arm-gnueabihf@1.12.9":
+ version "1.12.9"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.12.9.tgz#b9b3e29691694e99481386d6d4043f09e90ee66f"
+ integrity sha512-od9tDPiG+wMU9wKtd6y3nYJdNqgDOyLdgRRcrj1/hrbHoUPOM8wZQZdwQYGarw63iLXGgsw7t5HAF9Yc51ilFA==
+
+"@swc/core-linux-arm64-gnu@1.12.9":
+ version "1.12.9"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.12.9.tgz#6b353ddab0931736b5f788154cb11b1942817bc6"
+ integrity sha512-6qx1ka9LHcLzxIgn2Mros+CZLkHK2TawlXzi/h7DJeNnzi8F1Hw0Yzjp8WimxNCg6s2n+o3jnmin1oXB7gg8rw==
+
+"@swc/core-linux-arm64-musl@1.12.9":
+ version "1.12.9"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.12.9.tgz#98d129cf6fd548a58b2c8398842f85305a3f9949"
+ integrity sha512-yghFZWKPVVGbUdqiD7ft23G0JX6YFGDJPz9YbLLAwGuKZ9th3/jlWoQDAw1Naci31LQhVC+oIji6ozihSuwB2A==
+
+"@swc/core-linux-x64-gnu@1.12.9":
+ version "1.12.9"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.12.9.tgz#23fdc03983ca96ddb7b4f1910195b73b4c441033"
+ integrity sha512-SFUxyhWLZRNL8QmgGNqdi2Q43PNyFVkRZ2zIif30SOGFSxnxcf2JNeSeBgKIGVgaLSuk6xFVVCtJ3KIeaStgRg==
+
+"@swc/core-linux-x64-musl@1.12.9":
+ version "1.12.9"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.12.9.tgz#54bffa601a6b84b0de9116bdaaabd6ae6fa61ee8"
+ integrity sha512-9FB0wM+6idCGTI20YsBNBg9xSWtkDBymnpaTCsZM3qDc0l4uOpJMqbfWhQvp17x7r/ulZfb2QY8RDvQmCL6AcQ==
+
+"@swc/core-win32-arm64-msvc@1.12.9":
+ version "1.12.9"
+ resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.12.9.tgz#bfdd139dc88db0b7afe771e25feff5c4525f33fe"
+ integrity sha512-zHOusMVbOH9ik5RtRrMiGzLpKwxrPXgXkBm3SbUCa65HAdjV33NZ0/R9Rv1uPESALtEl2tzMYLUxYA5ECFDFhA==
+
+"@swc/core-win32-ia32-msvc@1.12.9":
+ version "1.12.9"
+ resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.12.9.tgz#36ec3cd70e434dea13344b2683117cdc7cb25cf5"
+ integrity sha512-aWZf0PqE0ot7tCuhAjRkDFf41AzzSQO0x2xRfTbnhpROp57BRJ/N5eee1VULO/UA2PIJRG7GKQky5bSGBYlFug==
+
+"@swc/core-win32-x64-msvc@1.12.9":
+ version "1.12.9"
+ resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.12.9.tgz#c0abf441bdede09c66e9f4079fb24ea2d62af668"
+ integrity sha512-C25fYftXOras3P3anSUeXXIpxmEkdAcsIL9yrr0j1xepTZ/yKwpnQ6g3coj8UXdeJy4GTVlR6+Ow/QiBgZQNOg==
+
+"@swc/core@^1.11.31":
+ version "1.12.9"
+ resolved "https://registry.npmjs.org/@swc/core/-/core-1.12.9.tgz"
+ integrity sha512-O+LfT2JlVMsIMWG9x+rdxg8GzpzeGtCZQfXV7cKc1PjIKUkLFf1QJ7okuseA4f/9vncu37dQ2ZcRrPKy0Ndd5g==
+ dependencies:
+ "@swc/counter" "^0.1.3"
+ "@swc/types" "^0.1.23"
+ optionalDependencies:
+ "@swc/core-darwin-arm64" "1.12.9"
+ "@swc/core-darwin-x64" "1.12.9"
+ "@swc/core-linux-arm-gnueabihf" "1.12.9"
+ "@swc/core-linux-arm64-gnu" "1.12.9"
+ "@swc/core-linux-arm64-musl" "1.12.9"
+ "@swc/core-linux-x64-gnu" "1.12.9"
+ "@swc/core-linux-x64-musl" "1.12.9"
+ "@swc/core-win32-arm64-msvc" "1.12.9"
+ "@swc/core-win32-ia32-msvc" "1.12.9"
+ "@swc/core-win32-x64-msvc" "1.12.9"
+
+"@swc/counter@^0.1.3":
+ version "0.1.3"
+ resolved "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz"
+ integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==
+
+"@swc/types@^0.1.23":
+ version "0.1.23"
+ resolved "https://registry.npmjs.org/@swc/types/-/types-0.1.23.tgz"
+ integrity sha512-u1iIVZV9Q0jxY+yM2vw/hZGDNudsN85bBpTqzAQ9rzkxW9D+e3aEM4Han+ow518gSewkXgjmEK0BD79ZcNVgPw==
+ dependencies:
+ "@swc/counter" "^0.1.3"
+
+"@types/estree@1.0.8":
+ version "1.0.8"
+ resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz"
+ integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==
+
+"@types/events@^3.0.3":
+ version "3.0.3"
+ resolved "https://registry.npmjs.org/@types/events/-/events-3.0.3.tgz"
+ integrity sha512-trOc4AAUThEz9hapPtSd7wf5tiQKvTtu5b371UxXdTuqzIh0ArcRspRP0i0Viu+LXstIQ1z96t1nsPxT9ol01g==
+
+"@types/node@^22.13.1":
+ version "22.16.0"
+ resolved "https://registry.npmjs.org/@types/node/-/node-22.16.0.tgz"
+ integrity sha512-B2egV9wALML1JCpv3VQoQ+yesQKAmNMBIAY7OteVrikcOcAkWm+dGL6qpeCktPjAv6N1JLnhbNiqS35UpFyBsQ==
+ dependencies:
+ undici-types "~6.21.0"
+
+"@vitejs/plugin-react-swc@^3.7.2":
+ version "3.10.2"
+ resolved "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.10.2.tgz"
+ integrity sha512-xD3Rdvrt5LgANug7WekBn1KhcvLn1H3jNBfJRL3reeOIua/WnZOEV5qi5qIBq5T8R0jUDmRtxuvk4bPhzGHDWw==
+ dependencies:
+ "@rolldown/pluginutils" "1.0.0-beta.11"
+ "@swc/core" "^1.11.31"
+
+bowser@^2.11.0, bowser@^2.8.1:
+ version "2.11.0"
+ resolved "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz"
+ integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==
+
+clone-deep@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz"
+ integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
+ dependencies:
+ is-plain-object "^2.0.4"
+ kind-of "^6.0.2"
+ shallow-clone "^3.0.0"
+
+dequal@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz"
+ integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==
+
+esbuild@^0.25.0:
+ version "0.25.6"
+ resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.25.6.tgz"
+ integrity sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==
+ optionalDependencies:
+ "@esbuild/aix-ppc64" "0.25.6"
+ "@esbuild/android-arm" "0.25.6"
+ "@esbuild/android-arm64" "0.25.6"
+ "@esbuild/android-x64" "0.25.6"
+ "@esbuild/darwin-arm64" "0.25.6"
+ "@esbuild/darwin-x64" "0.25.6"
+ "@esbuild/freebsd-arm64" "0.25.6"
+ "@esbuild/freebsd-x64" "0.25.6"
+ "@esbuild/linux-arm" "0.25.6"
+ "@esbuild/linux-arm64" "0.25.6"
+ "@esbuild/linux-ia32" "0.25.6"
+ "@esbuild/linux-loong64" "0.25.6"
+ "@esbuild/linux-mips64el" "0.25.6"
+ "@esbuild/linux-ppc64" "0.25.6"
+ "@esbuild/linux-riscv64" "0.25.6"
+ "@esbuild/linux-s390x" "0.25.6"
+ "@esbuild/linux-x64" "0.25.6"
+ "@esbuild/netbsd-arm64" "0.25.6"
+ "@esbuild/netbsd-x64" "0.25.6"
+ "@esbuild/openbsd-arm64" "0.25.6"
+ "@esbuild/openbsd-x64" "0.25.6"
+ "@esbuild/openharmony-arm64" "0.25.6"
+ "@esbuild/sunos-x64" "0.25.6"
+ "@esbuild/win32-arm64" "0.25.6"
+ "@esbuild/win32-ia32" "0.25.6"
+ "@esbuild/win32-x64" "0.25.6"
+
+events@^3.1.0, events@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz"
+ integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
+
+fdir@^6.4.4:
+ version "6.4.6"
+ resolved "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz"
+ integrity sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==
+
+fsevents@~2.3.2, fsevents@~2.3.3:
+ version "2.3.3"
+ resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz"
+ integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
+
+is-plain-object@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz"
+ integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
+ dependencies:
+ isobject "^3.0.1"
+
+isobject@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"
+ integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
+
+kind-of@^6.0.2:
+ version "6.0.3"
+ resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz"
+ integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
+
+lodash@^4.17.21:
+ version "4.17.21"
+ resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
+ integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+
+nanoid@^3.3.11:
+ version "3.3.11"
+ resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz"
+ integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==
+
+picocolors@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz"
+ integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
+
+picomatch@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz"
+ integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==
+
+postcss@^8.5.3:
+ version "8.5.6"
+ resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz"
+ integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==
+ dependencies:
+ nanoid "^3.3.11"
+ picocolors "^1.1.1"
+ source-map-js "^1.2.1"
+
+rollup@^4.34.9:
+ version "4.44.2"
+ resolved "https://registry.npmjs.org/rollup/-/rollup-4.44.2.tgz"
+ integrity sha512-PVoapzTwSEcelaWGth3uR66u7ZRo6qhPHc0f2uRO9fX6XDVNrIiGYS0Pj9+R8yIIYSD/mCx2b16Ws9itljKSPg==
+ dependencies:
+ "@types/estree" "1.0.8"
+ optionalDependencies:
+ "@rollup/rollup-android-arm-eabi" "4.44.2"
+ "@rollup/rollup-android-arm64" "4.44.2"
+ "@rollup/rollup-darwin-arm64" "4.44.2"
+ "@rollup/rollup-darwin-x64" "4.44.2"
+ "@rollup/rollup-freebsd-arm64" "4.44.2"
+ "@rollup/rollup-freebsd-x64" "4.44.2"
+ "@rollup/rollup-linux-arm-gnueabihf" "4.44.2"
+ "@rollup/rollup-linux-arm-musleabihf" "4.44.2"
+ "@rollup/rollup-linux-arm64-gnu" "4.44.2"
+ "@rollup/rollup-linux-arm64-musl" "4.44.2"
+ "@rollup/rollup-linux-loongarch64-gnu" "4.44.2"
+ "@rollup/rollup-linux-powerpc64le-gnu" "4.44.2"
+ "@rollup/rollup-linux-riscv64-gnu" "4.44.2"
+ "@rollup/rollup-linux-riscv64-musl" "4.44.2"
+ "@rollup/rollup-linux-s390x-gnu" "4.44.2"
+ "@rollup/rollup-linux-x64-gnu" "4.44.2"
+ "@rollup/rollup-linux-x64-musl" "4.44.2"
+ "@rollup/rollup-win32-arm64-msvc" "4.44.2"
+ "@rollup/rollup-win32-ia32-msvc" "4.44.2"
+ "@rollup/rollup-win32-x64-msvc" "4.44.2"
+ fsevents "~2.3.2"
+
+rxjs@^7.5.2:
+ version "7.8.2"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b"
+ integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==
+ dependencies:
+ tslib "^2.1.0"
+
+shallow-clone@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz"
+ integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
+ dependencies:
+ kind-of "^6.0.2"
+
+source-map-js@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz"
+ integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
+
+tinyglobby@^0.2.13:
+ version "0.2.14"
+ resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz"
+ integrity sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==
+ dependencies:
+ fdir "^6.4.4"
+ picomatch "^4.0.2"
+
+tslib@^2.1.0:
+ version "2.8.1"
+ resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz"
+ integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
+
+typed-emitter@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz"
+ integrity sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==
+ optionalDependencies:
+ rxjs "^7.5.2"
+
+typescript@^5.7.3:
+ version "5.8.3"
+ resolved "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz"
+ integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==
+
+undici-types@~6.21.0:
+ version "6.21.0"
+ resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz"
+ integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==
+
+uuid@^10.0.0:
+ version "10.0.0"
+ resolved "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz"
+ integrity sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==
+
+vite@^6.3.6:
+ version "6.3.6"
+ resolved "https://registry.npmjs.org/vite/-/vite-6.3.6.tgz"
+ integrity sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA==
+ dependencies:
+ esbuild "^0.25.0"
+ fdir "^6.4.4"
+ picomatch "^4.0.2"
+ postcss "^8.5.3"
+ rollup "^4.34.9"
+ tinyglobby "^0.2.13"
+ optionalDependencies:
+ fsevents "~2.3.3"
diff --git a/examples/aws-agentcore/server/server.py b/examples/aws-agentcore/server/server.py
index 3313c1e82..f20bb6896 100644
--- a/examples/aws-agentcore/server/server.py
+++ b/examples/aws-agentcore/server/server.py
@@ -18,6 +18,7 @@ import uvicorn
from botocore.response import StreamingBody
from dotenv import load_dotenv
from fastapi import BackgroundTasks, FastAPI, HTTPException, Request, Response
+from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import RedirectResponse
from loguru import logger
from pipecat.transports.smallwebrtc.request_handler import (
@@ -25,14 +26,20 @@ from pipecat.transports.smallwebrtc.request_handler import (
SmallWebRTCPatchRequest,
SmallWebRTCRequest,
)
-from pipecat_ai_small_webrtc_prebuilt.frontend import SmallWebRTCPrebuiltUI
load_dotenv(override=True)
app = FastAPI()
-# Mount the frontend at /
-app.mount("/client", SmallWebRTCPrebuiltUI)
+# Add CORS middleware
+app.add_middleware(
+ CORSMiddleware,
+ allow_origins=["http://localhost:5173", "http://127.0.0.1:5173"], # Add your frontend URL
+ allow_credentials=True,
+ allow_methods=["*"],
+ allow_headers=["*"],
+)
+
# In-memory store of active sessions: session_id -> session info
active_sessions: Dict[str, Dict[str, Any]] = {}
@@ -96,15 +103,6 @@ async def offer(request: Request):
return answer_sdp
-
-@app.patch("/api/offer")
-async def ice_candidate(request: SmallWebRTCPatchRequest):
- """Handle WebRTC new ice candidate requests."""
- logger.debug(f"Received patch request: {request}")
- # TODO need to send this to agentcore
- return {"status": "success"}
-
-
@app.post("/start")
async def rtvi_start(request: Request):
"""Mimic Pipecat Cloud's /start endpoint."""
@@ -153,24 +151,9 @@ async def proxy_request(
return Response(content="Invalid or not-yet-ready session_id", status_code=404)
if path.endswith("api/offer"):
- # Parse the request body and convert to SmallWebRTCRequest
try:
- request_data = await request.json()
- if request.method == HTTPMethod.POST.value:
- webrtc_request = SmallWebRTCRequest(
- sdp=request_data["sdp"],
- type=request_data["type"],
- pc_id=request_data.get("pc_id"),
- restart_pc=request_data.get("restart_pc"),
- request_data=request_data,
- )
- return await offer(webrtc_request, background_tasks)
- elif request.method == HTTPMethod.PATCH.value:
- patch_request = SmallWebRTCPatchRequest(
- pc_id=request_data["pc_id"],
- candidates=[IceCandidate(**c) for c in request_data.get("candidates", [])],
- )
- return await ice_candidate(patch_request)
+ if request.method == HTTPMethod.POST.value:
+ return await offer(request)
except Exception as e:
logger.error(f"Failed to parse WebRTC request: {e}")
return Response(content="Invalid WebRTC request", status_code=400)