{"version":3,"sources":["../src/tools/audio.ts"],"names":["tool","z"],"mappings":"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","file":"chunk-77ZIJFZZ.cjs","sourcesContent":["import { tool } from '@strands-agents/sdk'\nimport { z } from 'zod'\n\n/** speak — browser-native TTS via SpeechSynthesis */\nexport const speakTool = tool({\n  name: 'speak',\n  description: 'Speak text aloud using browser TTS (SpeechSynthesis API).',\n  inputSchema: z.object({\n    text: z.string(),\n    rate: z.number().optional().describe('Speech rate (0.1-10, default 1)'),\n    pitch: z.number().optional().describe('Speech pitch (0-2, default 1)'),\n    voice: z.string().optional().describe('Voice name or lang (e.g. en-US)'),\n  }),\n  callback: (input) => {\n    try {\n      if (!('speechSynthesis' in window)) return JSON.stringify({ status: 'error', error: 'SpeechSynthesis not supported' })\n      speechSynthesis.cancel()\n      const u = new SpeechSynthesisUtterance(input.text)\n      if (input.rate) u.rate = input.rate\n      if (input.pitch) u.pitch = input.pitch\n      if (input.voice) {\n        const voices = speechSynthesis.getVoices()\n        const match = voices.find(v => v.name === input.voice || v.lang === input.voice)\n        if (match) u.voice = match\n      }\n      speechSynthesis.speak(u)\n      return JSON.stringify({ status: 'speaking', textLength: input.text.length })\n    } catch (err: unknown) { return JSON.stringify({ status: 'error', error: (err as Error).message }) }\n  },\n})\n\nexport const stopSpeakingTool = tool({\n  name: 'stop_speaking',\n  description: 'Stop all TTS playback',\n  inputSchema: z.object({}),\n  callback: () => {\n    try { speechSynthesis.cancel(); return JSON.stringify({ status: 'stopped' }) }\n    catch (err: unknown) { return JSON.stringify({ status: 'error', error: (err as Error).message }) }\n  },\n})\n\nexport const listVoicesTool = tool({\n  name: 'list_voices',\n  description: 'List available TTS voices',\n  inputSchema: z.object({}),\n  callback: () => {\n    try {\n      const voices = speechSynthesis.getVoices().map(v => ({\n        name: v.name, lang: v.lang, default: v.default, localService: v.localService,\n      }))\n      return JSON.stringify({ status: 'success', count: voices.length, voices })\n    } catch (err: unknown) { return JSON.stringify({ status: 'error', error: (err as Error).message }) }\n  },\n})\n\n/** listen — start browser SpeechRecognition (Chrome/Edge) */\nexport const listenTool = tool({\n  name: 'listen',\n  description: 'Listen to user speech via SpeechRecognition. Returns transcript. Chrome/Edge only.',\n  inputSchema: z.object({\n    lang: z.string().optional(),\n    timeout: z.number().optional().describe('Max listen time in ms (default 10000)'),\n  }),\n  callback: async (input) => {\n    try {\n      const SR = (window as any).SpeechRecognition || (window as any).webkitSpeechRecognition\n      if (!SR) return JSON.stringify({ status: 'error', error: 'SpeechRecognition not supported (Chrome/Edge only)' })\n      return await new Promise<string>((resolve) => {\n        const rec = new SR()\n        rec.lang = input.lang || 'en-US'\n        rec.continuous = false\n        rec.interimResults = false\n        let done = false\n        const finish = (payload: any) => { if (!done) { done = true; resolve(JSON.stringify(payload)) } }\n        rec.onresult = (e: any) => {\n          const transcript = e.results[0][0].transcript\n          const confidence = e.results[0][0].confidence\n          finish({ status: 'success', transcript, confidence })\n        }\n        rec.onerror = (e: any) => finish({ status: 'error', error: e.error })\n        rec.onend = () => finish({ status: 'ended', note: 'No speech detected' })\n        rec.start()\n        setTimeout(() => { try { rec.stop() } catch {} }, input.timeout || 10000)\n      })\n    } catch (err: unknown) { return JSON.stringify({ status: 'error', error: (err as Error).message }) }\n  },\n})\n\nexport const AUDIO_TOOLS = [speakTool, stopSpeakingTool, listVoicesTool, listenTool]\n"]}