@getpaseo/server 0.1.69 → 0.1.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. package/dist/server/client/daemon-client-runtime-metrics.js.map +1 -1
  2. package/dist/server/client/daemon-client-websocket-transport.js.map +1 -1
  3. package/dist/server/client/daemon-client.d.ts +33 -0
  4. package/dist/server/client/daemon-client.d.ts.map +1 -1
  5. package/dist/server/client/daemon-client.js +37 -1
  6. package/dist/server/client/daemon-client.js.map +1 -1
  7. package/dist/server/server/agent/agent-manager.d.ts +8 -0
  8. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  9. package/dist/server/server/agent/agent-manager.js +54 -5
  10. package/dist/server/server/agent/agent-manager.js.map +1 -1
  11. package/dist/server/server/agent/agent-response-loop.js.map +1 -1
  12. package/dist/server/server/agent/agent-sdk-types.d.ts +15 -2
  13. package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
  14. package/dist/server/server/agent/agent-stream-coalescer.d.ts +1 -1
  15. package/dist/server/server/agent/agent-stream-coalescer.d.ts.map +1 -1
  16. package/dist/server/server/agent/agent-timeline-store.js +1 -1
  17. package/dist/server/server/agent/agent-timeline-store.js.map +1 -1
  18. package/dist/server/server/agent/create-agent-mode.d.ts +14 -0
  19. package/dist/server/server/agent/create-agent-mode.d.ts.map +1 -0
  20. package/dist/server/server/agent/create-agent-mode.js +23 -0
  21. package/dist/server/server/agent/create-agent-mode.js.map +1 -0
  22. package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
  23. package/dist/server/server/agent/mcp-server.js +36 -12
  24. package/dist/server/server/agent/mcp-server.js.map +1 -1
  25. package/dist/server/server/agent/mcp-shared.d.ts +6 -2
  26. package/dist/server/server/agent/mcp-shared.d.ts.map +1 -1
  27. package/dist/server/server/agent/mcp-shared.js +12 -5
  28. package/dist/server/server/agent/mcp-shared.js.map +1 -1
  29. package/dist/server/server/agent/pcm16-resampler.js.map +1 -1
  30. package/dist/server/server/agent/prompt-attachments.d.ts.map +1 -1
  31. package/dist/server/server/agent/prompt-attachments.js +2 -0
  32. package/dist/server/server/agent/prompt-attachments.js.map +1 -1
  33. package/dist/server/server/agent/provider-launch-config.js.map +1 -1
  34. package/dist/server/server/agent/provider-manifest.d.ts +4 -1
  35. package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
  36. package/dist/server/server/agent/provider-manifest.js +11 -0
  37. package/dist/server/server/agent/provider-manifest.js.map +1 -1
  38. package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
  39. package/dist/server/server/agent/provider-registry.js +8 -3
  40. package/dist/server/server/agent/provider-registry.js.map +1 -1
  41. package/dist/server/server/agent/provider-snapshot-manager.js.map +1 -1
  42. package/dist/server/server/agent/providers/acp-agent.d.ts +2 -1
  43. package/dist/server/server/agent/providers/acp-agent.d.ts.map +1 -1
  44. package/dist/server/server/agent/providers/acp-agent.js +35 -17
  45. package/dist/server/server/agent/providers/acp-agent.js.map +1 -1
  46. package/dist/server/server/agent/providers/{claude-agent.d.ts → claude/agent.d.ts} +9 -6
  47. package/dist/server/server/agent/providers/claude/agent.d.ts.map +1 -0
  48. package/dist/server/server/agent/providers/{claude-agent.js → claude/agent.js} +170 -152
  49. package/dist/server/server/agent/providers/claude/agent.js.map +1 -0
  50. package/dist/server/server/agent/providers/claude/{claude-models.d.ts → models.d.ts} +1 -1
  51. package/dist/server/server/agent/providers/claude/models.d.ts.map +1 -0
  52. package/dist/server/server/agent/providers/claude/{claude-models.js → models.js} +8 -1
  53. package/dist/server/server/agent/providers/claude/models.js.map +1 -0
  54. package/dist/server/server/agent/providers/claude/query.d.ts +14 -0
  55. package/dist/server/server/agent/providers/claude/query.d.ts.map +1 -0
  56. package/dist/server/server/agent/providers/claude/query.js +84 -0
  57. package/dist/server/server/agent/providers/claude/query.js.map +1 -0
  58. package/dist/server/server/agent/providers/claude/tool-call-mapper.js.map +1 -1
  59. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +11 -2
  60. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
  61. package/dist/server/server/agent/providers/codex-app-server-agent.js +408 -91
  62. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
  63. package/dist/server/server/agent/providers/diagnostic-utils.d.ts.map +1 -1
  64. package/dist/server/server/agent/providers/diagnostic-utils.js +4 -0
  65. package/dist/server/server/agent/providers/diagnostic-utils.js.map +1 -1
  66. package/dist/server/server/agent/providers/generic-acp-agent.d.ts +1 -1
  67. package/dist/server/server/agent/providers/generic-acp-agent.d.ts.map +1 -1
  68. package/dist/server/server/agent/providers/generic-acp-agent.js +0 -3
  69. package/dist/server/server/agent/providers/generic-acp-agent.js.map +1 -1
  70. package/dist/server/server/agent/providers/mock-load-test-agent.d.ts.map +1 -1
  71. package/dist/server/server/agent/providers/mock-load-test-agent.js +6 -2
  72. package/dist/server/server/agent/providers/mock-load-test-agent.js.map +1 -1
  73. package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
  74. package/dist/server/server/agent/providers/opencode-agent.js +32 -27
  75. package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
  76. package/dist/server/server/agent/providers/provider-image-output.d.ts +20 -0
  77. package/dist/server/server/agent/providers/provider-image-output.d.ts.map +1 -0
  78. package/dist/server/server/agent/providers/provider-image-output.js +51 -0
  79. package/dist/server/server/agent/providers/provider-image-output.js.map +1 -0
  80. package/dist/server/server/agent/providers/provider-runner.d.ts +3 -3
  81. package/dist/server/server/agent/providers/provider-runner.d.ts.map +1 -1
  82. package/dist/server/server/agent/providers/test-utils/session-stream-adapter.js.map +1 -1
  83. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +7 -7
  84. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
  85. package/dist/server/server/agent/providers/tool-call-detail-primitives.js +12 -18
  86. package/dist/server/server/agent/providers/tool-call-detail-primitives.js.map +1 -1
  87. package/dist/server/server/agent/stt-manager.d.ts +1 -0
  88. package/dist/server/server/agent/stt-manager.d.ts.map +1 -1
  89. package/dist/server/server/agent/stt-manager.js +3 -0
  90. package/dist/server/server/agent/stt-manager.js.map +1 -1
  91. package/dist/server/server/agent/tool-name-normalization.js.map +1 -1
  92. package/dist/server/server/agent/tts-manager.js.map +1 -1
  93. package/dist/server/server/bootstrap.d.ts +1 -0
  94. package/dist/server/server/bootstrap.d.ts.map +1 -1
  95. package/dist/server/server/bootstrap.js +3 -1
  96. package/dist/server/server/bootstrap.js.map +1 -1
  97. package/dist/server/server/config.d.ts +1 -0
  98. package/dist/server/server/config.d.ts.map +1 -1
  99. package/dist/server/server/config.js +7 -1
  100. package/dist/server/server/config.js.map +1 -1
  101. package/dist/server/server/connection-offer.d.ts +1 -0
  102. package/dist/server/server/connection-offer.d.ts.map +1 -1
  103. package/dist/server/server/daemon-config-store.d.ts.map +1 -1
  104. package/dist/server/server/daemon-config-store.js +2 -6
  105. package/dist/server/server/daemon-config-store.js.map +1 -1
  106. package/dist/server/server/daemon-keypair.js.map +1 -1
  107. package/dist/server/server/daemon-worker.js +3 -0
  108. package/dist/server/server/daemon-worker.js.map +1 -1
  109. package/dist/server/server/editor-targets.js.map +1 -1
  110. package/dist/server/server/json-utils.js.map +1 -1
  111. package/dist/server/server/logger.js.map +1 -1
  112. package/dist/server/server/loop/rpc-schemas.d.ts +68 -0
  113. package/dist/server/server/loop/rpc-schemas.d.ts.map +1 -1
  114. package/dist/server/server/loop/rpc-schemas.js +4 -0
  115. package/dist/server/server/loop/rpc-schemas.js.map +1 -1
  116. package/dist/server/server/loop-service.d.ts +8 -0
  117. package/dist/server/server/loop-service.d.ts.map +1 -1
  118. package/dist/server/server/loop-service.js +11 -2
  119. package/dist/server/server/loop-service.js.map +1 -1
  120. package/dist/server/server/package-version.d.ts +12 -0
  121. package/dist/server/server/package-version.d.ts.map +1 -1
  122. package/dist/server/server/package-version.js +13 -1
  123. package/dist/server/server/package-version.js.map +1 -1
  124. package/dist/server/server/pairing-offer.d.ts +1 -0
  125. package/dist/server/server/pairing-offer.d.ts.map +1 -1
  126. package/dist/server/server/pairing-offer.js +2 -1
  127. package/dist/server/server/pairing-offer.js.map +1 -1
  128. package/dist/server/server/pairing-qr.js +1 -1
  129. package/dist/server/server/pairing-qr.js.map +1 -1
  130. package/dist/server/server/paseo-env.d.ts +7 -3
  131. package/dist/server/server/paseo-env.d.ts.map +1 -1
  132. package/dist/server/server/paseo-env.js +16 -33
  133. package/dist/server/server/paseo-env.js.map +1 -1
  134. package/dist/server/server/persisted-config.d.ts +9 -0
  135. package/dist/server/server/persisted-config.d.ts.map +1 -1
  136. package/dist/server/server/persisted-config.js +1 -0
  137. package/dist/server/server/persisted-config.js.map +1 -1
  138. package/dist/server/server/persistence-hooks.js.map +1 -1
  139. package/dist/server/server/pid-lock.d.ts +21 -4
  140. package/dist/server/server/pid-lock.d.ts.map +1 -1
  141. package/dist/server/server/pid-lock.js +30 -8
  142. package/dist/server/server/pid-lock.js.map +1 -1
  143. package/dist/server/server/relay-transport.d.ts +2 -1
  144. package/dist/server/server/relay-transport.d.ts.map +1 -1
  145. package/dist/server/server/relay-transport.js +8 -5
  146. package/dist/server/server/relay-transport.js.map +1 -1
  147. package/dist/server/server/schedule/rpc-schemas.d.ts +1136 -0
  148. package/dist/server/server/schedule/rpc-schemas.d.ts.map +1 -1
  149. package/dist/server/server/schedule/rpc-schemas.js +39 -0
  150. package/dist/server/server/schedule/rpc-schemas.js.map +1 -1
  151. package/dist/server/server/schedule/service.d.ts +3 -1
  152. package/dist/server/server/schedule/service.d.ts.map +1 -1
  153. package/dist/server/server/schedule/service.js +92 -5
  154. package/dist/server/server/schedule/service.js.map +1 -1
  155. package/dist/server/server/schedule/types.d.ts +16 -0
  156. package/dist/server/server/schedule/types.d.ts.map +1 -1
  157. package/dist/server/server/script-health-monitor.js.map +1 -1
  158. package/dist/server/server/session.d.ts +3 -4
  159. package/dist/server/server/session.d.ts.map +1 -1
  160. package/dist/server/server/session.js +160 -120
  161. package/dist/server/server/session.js.map +1 -1
  162. package/dist/server/server/speech/audio.js.map +1 -1
  163. package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.d.ts.map +1 -1
  164. package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.js +52 -52
  165. package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.js.map +1 -1
  166. package/dist/server/server/speech/providers/local/sherpa/model-catalog.d.ts.map +1 -1
  167. package/dist/server/server/speech/providers/local/sherpa/model-catalog.js +9 -3
  168. package/dist/server/server/speech/providers/local/sherpa/model-catalog.js.map +1 -1
  169. package/dist/server/server/speech/providers/local/sherpa/model-downloader.d.ts.map +1 -1
  170. package/dist/server/server/speech/providers/local/sherpa/model-downloader.js +12 -10
  171. package/dist/server/server/speech/providers/local/sherpa/model-downloader.js.map +1 -1
  172. package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.js +2 -2
  173. package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.js.map +1 -1
  174. package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.js +1 -1
  175. package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.js.map +1 -1
  176. package/dist/server/server/speech/providers/local/sherpa/sherpa-tts.js.map +1 -1
  177. package/dist/server/server/voice/voice-turn-controller.d.ts +16 -13
  178. package/dist/server/server/voice/voice-turn-controller.d.ts.map +1 -1
  179. package/dist/server/server/voice/voice-turn-controller.js +303 -71
  180. package/dist/server/server/voice/voice-turn-controller.js.map +1 -1
  181. package/dist/server/server/voice-config.js +1 -1
  182. package/dist/server/server/voice-config.js.map +1 -1
  183. package/dist/server/server/websocket-server.js.map +1 -1
  184. package/dist/server/server/workspace-directory.d.ts.map +1 -1
  185. package/dist/server/server/workspace-directory.js +4 -2
  186. package/dist/server/server/workspace-directory.js.map +1 -1
  187. package/dist/server/server/workspace-git-metadata.d.ts.map +1 -1
  188. package/dist/server/server/workspace-git-metadata.js +12 -5
  189. package/dist/server/server/workspace-git-metadata.js.map +1 -1
  190. package/dist/server/server/workspace-git-service.d.ts +2 -0
  191. package/dist/server/server/workspace-git-service.d.ts.map +1 -1
  192. package/dist/server/server/workspace-git-service.js +49 -1
  193. package/dist/server/server/workspace-git-service.js.map +1 -1
  194. package/dist/server/server/workspace-registry-model.d.ts.map +1 -1
  195. package/dist/server/server/workspace-registry-model.js +10 -3
  196. package/dist/server/server/workspace-registry-model.js.map +1 -1
  197. package/dist/server/server/worktree-session.js +1 -1
  198. package/dist/server/server/worktree-session.js.map +1 -1
  199. package/dist/server/services/github-service.d.ts.map +1 -1
  200. package/dist/server/services/github-service.js +9 -2
  201. package/dist/server/services/github-service.js.map +1 -1
  202. package/dist/server/shared/connection-offer.d.ts +10 -0
  203. package/dist/server/shared/connection-offer.d.ts.map +1 -1
  204. package/dist/server/shared/connection-offer.js +1 -0
  205. package/dist/server/shared/connection-offer.js.map +1 -1
  206. package/dist/server/shared/daemon-endpoints.d.ts +4 -0
  207. package/dist/server/shared/daemon-endpoints.d.ts.map +1 -1
  208. package/dist/server/shared/daemon-endpoints.js +6 -1
  209. package/dist/server/shared/daemon-endpoints.js.map +1 -1
  210. package/dist/server/shared/error-utils.d.ts +11 -0
  211. package/dist/server/shared/error-utils.d.ts.map +1 -0
  212. package/dist/server/shared/error-utils.js +27 -0
  213. package/dist/server/shared/error-utils.js.map +1 -0
  214. package/dist/server/shared/messages.d.ts +6475 -2265
  215. package/dist/server/shared/messages.d.ts.map +1 -1
  216. package/dist/server/shared/messages.js +5 -1
  217. package/dist/server/shared/messages.js.map +1 -1
  218. package/dist/server/shared/tool-call-display.d.ts.map +1 -1
  219. package/dist/server/shared/tool-call-display.js +2 -0
  220. package/dist/server/shared/tool-call-display.js.map +1 -1
  221. package/dist/server/terminal/terminal-manager.d.ts +2 -1
  222. package/dist/server/terminal/terminal-manager.d.ts.map +1 -1
  223. package/dist/server/terminal/terminal-manager.js +2 -1
  224. package/dist/server/terminal/terminal-manager.js.map +1 -1
  225. package/dist/server/terminal/terminal-output-coalescer.js.map +1 -1
  226. package/dist/server/terminal/terminal-session-controller.d.ts.map +1 -1
  227. package/dist/server/terminal/terminal-session-controller.js +2 -0
  228. package/dist/server/terminal/terminal-session-controller.js.map +1 -1
  229. package/dist/server/terminal/terminal.d.ts +1 -1
  230. package/dist/server/terminal/terminal.d.ts.map +1 -1
  231. package/dist/server/terminal/terminal.js +53 -8
  232. package/dist/server/terminal/terminal.js.map +1 -1
  233. package/dist/server/terminal/worker-terminal-manager.js.map +1 -1
  234. package/dist/server/utils/checkout-git.d.ts.map +1 -1
  235. package/dist/server/utils/checkout-git.js +67 -11
  236. package/dist/server/utils/checkout-git.js.map +1 -1
  237. package/dist/server/utils/directory-suggestions.js.map +1 -1
  238. package/dist/server/utils/executable.d.ts +2 -1
  239. package/dist/server/utils/executable.d.ts.map +1 -1
  240. package/dist/server/utils/executable.js +50 -51
  241. package/dist/server/utils/executable.js.map +1 -1
  242. package/dist/server/utils/paseo-config-file.d.ts +1 -1
  243. package/dist/server/utils/paseo-config-file.d.ts.map +1 -1
  244. package/dist/server/utils/spawn.d.ts +2 -0
  245. package/dist/server/utils/spawn.d.ts.map +1 -1
  246. package/dist/server/utils/spawn.js +2 -1
  247. package/dist/server/utils/spawn.js.map +1 -1
  248. package/dist/server/utils/tree-kill.d.ts +18 -0
  249. package/dist/server/utils/tree-kill.d.ts.map +1 -0
  250. package/dist/server/utils/{process-tree.js → tree-kill.js} +14 -33
  251. package/dist/server/utils/tree-kill.js.map +1 -0
  252. package/dist/server/utils/worktree.js.map +1 -1
  253. package/dist/src/server/agent/provider-launch-config.js.map +1 -1
  254. package/dist/src/server/agent/provider-manifest.js +11 -0
  255. package/dist/src/server/agent/provider-manifest.js.map +1 -1
  256. package/dist/src/server/loop/rpc-schemas.js +4 -0
  257. package/dist/src/server/loop/rpc-schemas.js.map +1 -1
  258. package/dist/src/server/paseo-env.js +16 -33
  259. package/dist/src/server/paseo-env.js.map +1 -1
  260. package/dist/src/server/persisted-config.js +1 -0
  261. package/dist/src/server/persisted-config.js.map +1 -1
  262. package/dist/src/server/pid-lock.js +30 -8
  263. package/dist/src/server/pid-lock.js.map +1 -1
  264. package/dist/src/server/schedule/rpc-schemas.js +39 -0
  265. package/dist/src/server/schedule/rpc-schemas.js.map +1 -1
  266. package/dist/src/shared/messages.js +5 -1
  267. package/dist/src/shared/messages.js.map +1 -1
  268. package/dist/src/utils/executable.js +50 -51
  269. package/dist/src/utils/executable.js.map +1 -1
  270. package/dist/src/utils/spawn.js +2 -1
  271. package/dist/src/utils/spawn.js.map +1 -1
  272. package/package.json +5 -4
  273. package/dist/server/server/agent/providers/claude/claude-models.d.ts.map +0 -1
  274. package/dist/server/server/agent/providers/claude/claude-models.js.map +0 -1
  275. package/dist/server/server/agent/providers/claude-agent.d.ts.map +0 -1
  276. package/dist/server/server/agent/providers/claude-agent.js.map +0 -1
  277. package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.d.ts +0 -16
  278. package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.d.ts.map +0 -1
  279. package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.js +0 -35
  280. package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.js.map +0 -1
  281. package/dist/server/utils/process-tree.d.ts +0 -25
  282. package/dist/server/utils/process-tree.d.ts.map +0 -1
  283. package/dist/server/utils/process-tree.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"voice-turn-controller.d.ts","sourceRoot":"","sources":["../../../../src/server/voice/voice-turn-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAKnC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAkBlF,MAAM,WAAW,4BAA4B;IAC3C,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,eAAe,CAAC,SAAS,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,iBAAiB,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClF;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,qBAAqB,CAAC;IACrC,aAAa,EAAE,kBAAkB,CAAC;IAClC,SAAS,EAAE,4BAA4B,CAAC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,mBAAmB,CAwLtB"}
1
+ {"version":3,"file":"voice-turn-controller.d.ts","sourceRoot":"","sources":["../../../../src/server/voice/voice-turn-controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAKnC,OAAO,KAAK,EACV,oBAAoB,EAGrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAyClF,MAAM,WAAW,4BAA4B;IAC3C,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,mBAAmB,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrF,iBAAiB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,iBAAiB,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClF;AAQD,UAAU,oBAAoB;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAaD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,qBAAqB,CAAC;IACrC,GAAG,EAAE,oBAAoB,CAAC;IAC1B,SAAS,EAAE,4BAA4B,CAAC;CACzC,GAAG,mBAAmB,CA4btB"}
@@ -2,94 +2,327 @@ import { Buffer } from "node:buffer";
2
2
  import { v4 as uuidv4 } from "uuid";
3
3
  import { Pcm16MonoResampler } from "../agent/pcm16-resampler.js";
4
4
  import { parsePcmRateFromFormat } from "../speech/audio.js";
5
- import { FixedDurationPcmRingBuffer } from "./fixed-duration-pcm-ring-buffer.js";
6
- const PCM_CHANNELS = 1;
7
- const PCM_BITS_PER_SAMPLE = 16;
8
- const DEFAULT_PREFIX_DURATION_MS = 1000;
5
+ const VOICE_FINAL_TRANSCRIPT_TIMEOUT_MS = 10000;
6
+ const FILLER_PARTIAL_WORDS = new Set([
7
+ "uh",
8
+ "um",
9
+ "ah",
10
+ "eh",
11
+ "er",
12
+ "hmm",
13
+ "mm",
14
+ "mmm",
15
+ "mhm",
16
+ "huh",
17
+ "uhhuh",
18
+ "uh-huh",
19
+ "oh",
20
+ ]);
21
+ function isFillerOnlyPartial(transcript) {
22
+ const tokens = transcript
23
+ .toLowerCase()
24
+ .replace(/[^\p{L}\p{N}\s'-]/gu, "")
25
+ .split(/\s+/)
26
+ .filter(Boolean);
27
+ if (tokens.length === 0) {
28
+ return true;
29
+ }
30
+ return tokens.every((token) => FILLER_PARTIAL_WORDS.has(token));
31
+ }
9
32
  export function createVoiceTurnController(params) {
10
33
  const detector = params.turnDetection.createSession({
11
34
  logger: params.logger.child({ component: "turn-detection" }),
12
35
  });
13
- const prefixBuffer = new FixedDurationPcmRingBuffer({
14
- sampleRate: detector.requiredSampleRate,
15
- channels: PCM_CHANNELS,
16
- bitsPerSample: PCM_BITS_PER_SAMPLE,
17
- durationMs: params.prefixDurationMs ?? DEFAULT_PREFIX_DURATION_MS,
18
- });
19
36
  let state = { status: "idle" };
20
37
  let resampler = null;
38
+ let sttSession = null;
39
+ let sttResampler = null;
21
40
  let inputRate = detector.requiredSampleRate;
22
- let utteranceChunks = [];
41
+ let sttInputRate = 0;
23
42
  let queued = Promise.resolve();
24
- let submissionQueue = Promise.resolve();
25
- function buildVoicePcmFormat(sampleRate) {
26
- return `audio/pcm;rate=${sampleRate};bits=16`;
27
- }
43
+ let activeTranscriptSegmentId = null;
44
+ let partialTranscriptFired = false;
45
+ let reconnectAttemptedForTurn = false;
46
+ const sealedTranscriptSegmentIds = new Set();
47
+ let currentFinalizingTurn = null;
28
48
  function fail(error) {
29
49
  params.callbacks.onError(error instanceof Error ? error : new Error(String(error)));
30
50
  }
51
+ function firePartialTranscript(segmentId, transcript) {
52
+ if (partialTranscriptFired || state.status !== "capturing") {
53
+ return;
54
+ }
55
+ partialTranscriptFired = true;
56
+ void runSerial(async () => {
57
+ await params.callbacks.onPartialTranscript({ segmentId, transcript });
58
+ });
59
+ }
60
+ function clearFinalizingTurnTimeout() {
61
+ if (currentFinalizingTurn) {
62
+ clearTimeout(currentFinalizingTurn.timeout);
63
+ }
64
+ }
65
+ function getFinalizingTurnForSegment(segmentId) {
66
+ if (!currentFinalizingTurn) {
67
+ return null;
68
+ }
69
+ if (currentFinalizingTurn.committedSegmentIds.includes(segmentId)) {
70
+ return currentFinalizingTurn;
71
+ }
72
+ if (currentFinalizingTurn.committedSegmentIds.length > 0) {
73
+ return null;
74
+ }
75
+ if (activeTranscriptSegmentId && activeTranscriptSegmentId !== segmentId) {
76
+ return null;
77
+ }
78
+ return currentFinalizingTurn;
79
+ }
80
+ function getOrderedFinalSegmentIds(turn) {
81
+ if (turn.committedSegmentIds.length === 0) {
82
+ return [...turn.finalTranscriptSegmentIds];
83
+ }
84
+ return turn.committedSegmentIds.filter((segmentId) => turn.finalTranscriptSegmentIds.has(segmentId));
85
+ }
86
+ function assembleFinalTranscript(turn) {
87
+ const orderedFinalSegmentIds = getOrderedFinalSegmentIds(turn);
88
+ const transcript = orderedFinalSegmentIds
89
+ .map((segmentId) => turn.transcriptsBySegmentId.get(segmentId)?.trim() ?? "")
90
+ .filter((segment) => segment.length > 0)
91
+ .join(" ")
92
+ .trim();
93
+ const orderedFinalMeta = orderedFinalSegmentIds
94
+ .map((segmentId) => turn.transcriptMetaBySegmentId.get(segmentId))
95
+ .filter((meta) => Boolean(meta));
96
+ const language = orderedFinalMeta.find((meta) => meta.language)?.language;
97
+ const singleSegmentMeta = orderedFinalMeta.length === 1 ? orderedFinalMeta[0] : null;
98
+ const allLowConfidence = orderedFinalMeta.length > 0 &&
99
+ orderedFinalMeta.every((meta) => meta.isLowConfidence === true);
100
+ return {
101
+ segmentId: turn.committedSegmentIds[0] ?? orderedFinalSegmentIds[0] ?? turn.turnId,
102
+ transcript,
103
+ ...(language ? { language } : {}),
104
+ ...(singleSegmentMeta?.avgLogprob !== undefined
105
+ ? { avgLogprob: singleSegmentMeta.avgLogprob }
106
+ : {}),
107
+ ...(allLowConfidence ? { isLowConfidence: true } : {}),
108
+ durationMs: Math.max(0, Date.now() - turn.startedAt),
109
+ };
110
+ }
111
+ function fireFinalTranscript(turn, reason) {
112
+ if (turn.fired || currentFinalizingTurn?.turnId !== turn.turnId) {
113
+ return;
114
+ }
115
+ turn.fired = true;
116
+ clearTimeout(turn.timeout);
117
+ currentFinalizingTurn = null;
118
+ const finalTranscript = assembleFinalTranscript(turn);
119
+ if (reason === "timeout") {
120
+ params.logger.warn({
121
+ turnId: turn.turnId,
122
+ committedSegments: turn.committedSegmentIds.length,
123
+ receivedFinals: turn.finalTranscriptSegmentIds.size,
124
+ timeoutMs: VOICE_FINAL_TRANSCRIPT_TIMEOUT_MS,
125
+ transcriptLength: finalTranscript.transcript.length,
126
+ }, "voice_turn.final_transcript_timeout");
127
+ }
128
+ void runSerial(async () => {
129
+ await params.callbacks.onFinalTranscript(finalTranscript);
130
+ });
131
+ }
132
+ function maybeFireFinalTranscript(turn) {
133
+ if (turn.fired || turn.committedSegmentIds.length === 0) {
134
+ return;
135
+ }
136
+ const allCommittedSegmentsFinal = turn.committedSegmentIds.every((segmentId) => turn.finalTranscriptSegmentIds.has(segmentId));
137
+ if (allCommittedSegmentsFinal) {
138
+ fireFinalTranscript(turn, "complete");
139
+ }
140
+ }
141
+ async function reconnectSttSession() {
142
+ const previousSession = sttSession;
143
+ sttSession = null;
144
+ sttResampler = null;
145
+ sttInputRate = 0;
146
+ previousSession?.close();
147
+ try {
148
+ const nextSession = createSttSession();
149
+ await nextSession.connect();
150
+ sttSession = nextSession;
151
+ params.logger.info("voice_turn.stt_reconnected");
152
+ }
153
+ catch (error) {
154
+ fail(error);
155
+ params.logger.warn({ err: error }, "voice_turn.stt_reconnect_failed");
156
+ }
157
+ }
158
+ function handleSttError(error) {
159
+ fail(error);
160
+ params.logger.warn({ err: error }, "voice_turn.stt_error");
161
+ if (reconnectAttemptedForTurn) {
162
+ sttSession?.close();
163
+ sttSession = null;
164
+ return;
165
+ }
166
+ reconnectAttemptedForTurn = true;
167
+ void runSerial(reconnectSttSession);
168
+ }
169
+ function handleFinalSttTranscript(event) {
170
+ const turn = getFinalizingTurnForSegment(event.segmentId);
171
+ if (!turn || turn.fired) {
172
+ return;
173
+ }
174
+ turn.transcriptsBySegmentId.set(event.segmentId, event.transcript);
175
+ turn.finalTranscriptSegmentIds.add(event.segmentId);
176
+ turn.transcriptMetaBySegmentId.set(event.segmentId, {
177
+ ...(event.language ? { language: event.language } : {}),
178
+ ...(event.avgLogprob !== undefined ? { avgLogprob: event.avgLogprob } : {}),
179
+ ...(event.isLowConfidence !== undefined ? { isLowConfidence: event.isLowConfidence } : {}),
180
+ });
181
+ maybeFireFinalTranscript(turn);
182
+ }
183
+ function handlePartialSttTranscript(event) {
184
+ if (state.status !== "capturing" || partialTranscriptFired) {
185
+ return;
186
+ }
187
+ if (sealedTranscriptSegmentIds.has(event.segmentId)) {
188
+ return;
189
+ }
190
+ if (activeTranscriptSegmentId && event.segmentId !== activeTranscriptSegmentId) {
191
+ return;
192
+ }
193
+ const transcript = event.transcript.trim();
194
+ if (!transcript) {
195
+ return;
196
+ }
197
+ activeTranscriptSegmentId = event.segmentId;
198
+ if (isFillerOnlyPartial(transcript)) {
199
+ return;
200
+ }
201
+ firePartialTranscript(event.segmentId, transcript);
202
+ }
203
+ function handleSttTranscript(event) {
204
+ if (event.isFinal) {
205
+ handleFinalSttTranscript(event);
206
+ return;
207
+ }
208
+ handlePartialSttTranscript(event);
209
+ }
210
+ function createSttSession() {
211
+ const session = params.stt.createSession({
212
+ logger: params.logger.child({ component: "stt" }),
213
+ language: "en",
214
+ });
215
+ session.on("transcript", handleSttTranscript);
216
+ session.on("committed", ({ segmentId }) => {
217
+ sealedTranscriptSegmentIds.add(segmentId);
218
+ if (state.status === "capturing" && !activeTranscriptSegmentId) {
219
+ activeTranscriptSegmentId = segmentId;
220
+ }
221
+ const turn = currentFinalizingTurn;
222
+ if (turn && !turn.committedSegmentIds.includes(segmentId)) {
223
+ turn.committedSegmentIds.push(segmentId);
224
+ maybeFireFinalTranscript(turn);
225
+ }
226
+ });
227
+ session.on("error", handleSttError);
228
+ return session;
229
+ }
31
230
  function runSerial(task) {
32
231
  queued = queued.then(task).catch((error) => {
33
232
  fail(error);
34
233
  });
35
234
  return queued;
36
235
  }
37
- function enqueueUtteranceSubmission(utterance) {
38
- submissionQueue = submissionQueue
39
- .then(async () => {
40
- await params.utteranceSink.submitUtterance(utterance);
236
+ function updateDetectorResampler(parsedInputRate) {
237
+ if (parsedInputRate === inputRate) {
41
238
  return;
42
- })
43
- .catch((error) => {
44
- fail(error);
45
- });
239
+ }
240
+ inputRate = parsedInputRate;
241
+ resampler =
242
+ inputRate === detector.requiredSampleRate
243
+ ? null
244
+ : new Pcm16MonoResampler({
245
+ inputRate,
246
+ outputRate: detector.requiredSampleRate,
247
+ });
248
+ }
249
+ function updateSttResampler(session, parsedInputRate) {
250
+ if (parsedInputRate === sttInputRate) {
251
+ return;
252
+ }
253
+ sttInputRate = parsedInputRate;
254
+ sttResampler =
255
+ sttInputRate === session.requiredSampleRate
256
+ ? null
257
+ : new Pcm16MonoResampler({
258
+ inputRate: sttInputRate,
259
+ outputRate: session.requiredSampleRate,
260
+ });
261
+ }
262
+ function pcmForDetector(pcm16) {
263
+ return resampler === null ? pcm16 : resampler.processChunk(pcm16);
264
+ }
265
+ function pcmForStt(session, pcm16, detectorPcm16) {
266
+ if (session.requiredSampleRate === detector.requiredSampleRate) {
267
+ return detectorPcm16;
268
+ }
269
+ if (sttResampler === null) {
270
+ return pcm16;
271
+ }
272
+ return sttResampler.processChunk(pcm16);
46
273
  }
47
274
  async function handleSpeechStarted() {
48
275
  if (state.status === "capturing") {
49
276
  return;
50
277
  }
51
278
  await params.callbacks.onSpeechStarted();
52
- const prefix = prefixBuffer.drain();
53
279
  const startedAt = Date.now();
54
- utteranceChunks = prefix.length > 0 ? [prefix] : [];
280
+ activeTranscriptSegmentId = null;
281
+ partialTranscriptFired = false;
282
+ reconnectAttemptedForTurn = false;
283
+ clearFinalizingTurnTimeout();
284
+ currentFinalizingTurn = null;
55
285
  state = {
56
286
  status: "capturing",
57
287
  utteranceId: uuidv4(),
58
288
  startedAt,
59
- rollingPrefixBytes: prefixBuffer.byteLength,
60
- utteranceBytes: prefix.length,
61
289
  };
62
290
  params.logger.info({
63
291
  utteranceId: state.utteranceId,
64
- prefixBytes: prefix.length,
65
- rollingPrefixBytes: prefixBuffer.byteLength,
66
292
  }, "voice_turn.speech_started");
67
293
  }
68
294
  async function handleSpeechStopped() {
69
295
  if (state.status !== "capturing") {
70
296
  return;
71
297
  }
72
- const utterance = Buffer.concat(utteranceChunks);
298
+ const turnId = state.utteranceId;
73
299
  const startedAt = state.startedAt;
74
300
  const endedAt = Date.now();
75
- utteranceChunks = [];
76
- state = { status: "listening", rollingPrefixBytes: prefixBuffer.byteLength };
301
+ state = { status: "listening" };
302
+ const finalizingTurn = {
303
+ turnId,
304
+ startedAt,
305
+ committedSegmentIds: [],
306
+ transcriptsBySegmentId: new Map(),
307
+ finalTranscriptSegmentIds: new Set(),
308
+ transcriptMetaBySegmentId: new Map(),
309
+ timeout: setTimeout(() => {
310
+ fireFinalTranscript(finalizingTurn, "timeout");
311
+ }, VOICE_FINAL_TRANSCRIPT_TIMEOUT_MS),
312
+ fired: false,
313
+ };
314
+ currentFinalizingTurn = finalizingTurn;
77
315
  detector.reset();
316
+ try {
317
+ sttSession?.commit();
318
+ }
319
+ catch (error) {
320
+ handleSttError(error);
321
+ }
78
322
  await params.callbacks.onSpeechStopped();
79
323
  params.logger.info({
80
- utteranceBytes: utterance.length,
81
324
  utteranceAgeMs: Math.max(0, endedAt - startedAt),
82
325
  }, "voice_turn.speech_stopped");
83
- if (utterance.length === 0) {
84
- return;
85
- }
86
- enqueueUtteranceSubmission({
87
- pcm16: utterance,
88
- sampleRate: detector.requiredSampleRate,
89
- format: buildVoicePcmFormat(detector.requiredSampleRate),
90
- startedAt,
91
- endedAt,
92
- });
93
326
  }
94
327
  detector.on("speech_started", () => {
95
328
  void runSerial(handleSpeechStarted);
@@ -100,16 +333,22 @@ export function createVoiceTurnController(params) {
100
333
  detector.on("error", fail);
101
334
  return {
102
335
  async start() {
336
+ sttSession = createSttSession();
337
+ await sttSession.connect();
103
338
  await detector.connect();
104
- state = { status: "listening", rollingPrefixBytes: prefixBuffer.byteLength };
339
+ state = { status: "listening" };
105
340
  },
106
341
  async stop() {
107
342
  await runSerial(async () => {
343
+ clearFinalizingTurnTimeout();
108
344
  detector.close();
109
- prefixBuffer.clear();
110
- utteranceChunks = [];
345
+ sttSession?.close();
111
346
  resampler?.reset();
347
+ sttResampler?.reset();
112
348
  resampler = null;
349
+ sttResampler = null;
350
+ sttSession = null;
351
+ currentFinalizingTurn = null;
113
352
  state = { status: "idle" };
114
353
  });
115
354
  },
@@ -124,36 +363,29 @@ export function createVoiceTurnController(params) {
124
363
  }
125
364
  const parsedInputRate = parsePcmRateFromFormat(input.format, detector.requiredSampleRate) ??
126
365
  detector.requiredSampleRate;
127
- if (parsedInputRate !== inputRate) {
128
- inputRate = parsedInputRate;
129
- resampler =
130
- inputRate === detector.requiredSampleRate
131
- ? null
132
- : new Pcm16MonoResampler({
133
- inputRate,
134
- outputRate: detector.requiredSampleRate,
135
- });
366
+ updateDetectorResampler(parsedInputRate);
367
+ const currentSttSession = sttSession;
368
+ if (currentSttSession) {
369
+ updateSttResampler(currentSttSession, parsedInputRate);
136
370
  }
137
- const normalized = resampler === null ? pcm16 : resampler.processChunk(pcm16);
138
- if (normalized.length === 0) {
371
+ const detectorPcm16 = pcmForDetector(pcm16);
372
+ const sttPcm16 = currentSttSession
373
+ ? pcmForStt(currentSttSession, pcm16, detectorPcm16)
374
+ : null;
375
+ if (detectorPcm16.length === 0 && (!sttPcm16 || sttPcm16.length === 0)) {
139
376
  return;
140
377
  }
141
- prefixBuffer.append(normalized);
142
- if (state.status === "listening") {
143
- state = {
144
- status: "listening",
145
- rollingPrefixBytes: prefixBuffer.byteLength,
146
- };
378
+ if (detectorPcm16.length > 0) {
379
+ detector.appendPcm16(detectorPcm16);
147
380
  }
148
- else if (state.status === "capturing") {
149
- utteranceChunks.push(normalized);
150
- state = {
151
- ...state,
152
- rollingPrefixBytes: prefixBuffer.byteLength,
153
- utteranceBytes: state.utteranceBytes + normalized.length,
154
- };
381
+ if (sttPcm16 && sttPcm16.length > 0) {
382
+ try {
383
+ currentSttSession?.appendPcm16(sttPcm16);
384
+ }
385
+ catch (error) {
386
+ handleSttError(error);
387
+ }
155
388
  }
156
- detector.appendPcm16(normalized);
157
389
  });
158
390
  },
159
391
  };
@@ -1 +1 @@
1
- {"version":3,"file":"voice-turn-controller.js","sourceRoot":"","sources":["../../../../src/server/voice/voice-turn-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"voice-turn-controller.js","sourceRoot":"","sources":["../../../../src/server/voice/voice-turn-controller.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,7 @@ export function buildVoiceModeSystemPrompt(existing, enabled) {
41
41
  .join("\n\n");
42
42
  }
43
43
  export function wrapSpokenInput(text) {
44
- return `<spoken-input>\n${text}\n</spoken-input>`;
44
+ return `<spoken-input>\n${text}\n</spoken-input>\n<instruction>This message was spoken by the user. Respond using the speak tool only, not normal messages, because the user may not be looking at the chat.</instruction>`;
45
45
  }
46
46
  export function buildVoiceAgentMcpServerConfig(params) {
47
47
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"voice-config.js","sourceRoot":"","sources":["../../../src/server/voice-config.ts"],"names":[],"mappings":"AAAA,MAAM,wBAAwB,GAAG,oBAAoB,CAAC;AACtD,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AAErD,MAAM,8BAA8B,GAAG;IACrC,6BAA6B;IAC7B,oCAAoC;IACpC,uDAAuD;IACvD,8DAA8D;IAC9D,+HAA+H;IAC/H,2FAA2F;IAC3F,6CAA6C;IAC7C,kEAAkE;IAClE,2KAA2K;IAC3K,wDAAwD;CACzD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,gCAAgC,GAAG;IACvC,8BAA8B;IAC9B,kEAAkE;CACnE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,yBAAyB;IAChC,OAAO,IAAI,MAAM,CACf,GAAG,YAAY,CAAC,wBAAwB,CAAC,aAAa,YAAY,CAAC,sBAAsB,CAAC,EAAE,EAC5F,GAAG,CACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAAiB;IAC1D,MAAM,OAAO,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzE,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAA4B,EAAE,OAAgB;IACvF,MAAM,UAAU,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,gBAAgB,GAAG,OAAO;QAC9B,CAAC,CAAC,8BAA8B;QAChC,CAAC,CAAC,gCAAgC,CAAC;IACrC,MAAM,UAAU,GAAG,CAAC,wBAAwB,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC,IAAI,CAC1F,IAAI,CACL,CAAC;IAEF,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;SAC5B,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SACjF,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,mBAAmB,IAAI,mBAAmB,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,MAK9C;IAMC,OAAO;QACL,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;QACzD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"voice-config.js","sourceRoot":"","sources":["../../../src/server/voice-config.ts"],"names":[],"mappings":"AAAA,MAAM,wBAAwB,GAAG,oBAAoB,CAAC;AACtD,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AAErD,MAAM,8BAA8B,GAAG;IACrC,6BAA6B;IAC7B,oCAAoC;IACpC,uDAAuD;IACvD,8DAA8D;IAC9D,+HAA+H;IAC/H,2FAA2F;IAC3F,6CAA6C;IAC7C,kEAAkE;IAClE,2KAA2K;IAC3K,wDAAwD;CACzD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,gCAAgC,GAAG;IACvC,8BAA8B;IAC9B,kEAAkE;CACnE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,yBAAyB;IAChC,OAAO,IAAI,MAAM,CACf,GAAG,YAAY,CAAC,wBAAwB,CAAC,aAAa,YAAY,CAAC,sBAAsB,CAAC,EAAE,EAC5F,GAAG,CACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAAiB;IAC1D,MAAM,OAAO,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzE,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAA4B,EAAE,OAAgB;IACvF,MAAM,UAAU,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,gBAAgB,GAAG,OAAO;QAC9B,CAAC,CAAC,8BAA8B;QAChC,CAAC,CAAC,gCAAgC,CAAC;IACrC,MAAM,UAAU,GAAG,CAAC,wBAAwB,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC,IAAI,CAC1F,IAAI,CACL,CAAC;IAEF,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;SAC5B,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SACjF,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,mBAAmB,IAAI,6LAA6L,CAAC;AAC9N,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,MAK9C;IAMC,OAAO;QACL,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;QACzD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3C,CAAC;AACJ,CAAC"}