@livekit/agents 1.0.48 → 1.1.0-dev.0

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 (373) hide show
  1. package/dist/constants.cjs +27 -0
  2. package/dist/constants.cjs.map +1 -1
  3. package/dist/constants.d.cts +9 -0
  4. package/dist/constants.d.ts +9 -0
  5. package/dist/constants.d.ts.map +1 -1
  6. package/dist/constants.js +18 -0
  7. package/dist/constants.js.map +1 -1
  8. package/dist/inference/api_protos.d.cts +71 -71
  9. package/dist/inference/api_protos.d.ts +71 -71
  10. package/dist/inference/interruption/defaults.cjs +81 -0
  11. package/dist/inference/interruption/defaults.cjs.map +1 -0
  12. package/dist/inference/interruption/defaults.d.cts +19 -0
  13. package/dist/inference/interruption/defaults.d.ts +19 -0
  14. package/dist/inference/interruption/defaults.d.ts.map +1 -0
  15. package/dist/inference/interruption/defaults.js +46 -0
  16. package/dist/inference/interruption/defaults.js.map +1 -0
  17. package/dist/inference/interruption/errors.cjs +44 -0
  18. package/dist/inference/interruption/errors.cjs.map +1 -0
  19. package/dist/inference/interruption/errors.d.cts +12 -0
  20. package/dist/inference/interruption/errors.d.ts +12 -0
  21. package/dist/inference/interruption/errors.d.ts.map +1 -0
  22. package/dist/inference/interruption/errors.js +20 -0
  23. package/dist/inference/interruption/errors.js.map +1 -0
  24. package/dist/inference/interruption/http_transport.cjs +147 -0
  25. package/dist/inference/interruption/http_transport.cjs.map +1 -0
  26. package/dist/inference/interruption/http_transport.d.cts +63 -0
  27. package/dist/inference/interruption/http_transport.d.ts +63 -0
  28. package/dist/inference/interruption/http_transport.d.ts.map +1 -0
  29. package/dist/inference/interruption/http_transport.js +121 -0
  30. package/dist/inference/interruption/http_transport.js.map +1 -0
  31. package/dist/inference/interruption/interruption_cache_entry.cjs +58 -0
  32. package/dist/inference/interruption/interruption_cache_entry.cjs.map +1 -0
  33. package/dist/inference/interruption/interruption_cache_entry.d.cts +30 -0
  34. package/dist/inference/interruption/interruption_cache_entry.d.ts +30 -0
  35. package/dist/inference/interruption/interruption_cache_entry.d.ts.map +1 -0
  36. package/dist/inference/interruption/interruption_cache_entry.js +34 -0
  37. package/dist/inference/interruption/interruption_cache_entry.js.map +1 -0
  38. package/dist/inference/interruption/interruption_detector.cjs +181 -0
  39. package/dist/inference/interruption/interruption_detector.cjs.map +1 -0
  40. package/dist/inference/interruption/interruption_detector.d.cts +59 -0
  41. package/dist/inference/interruption/interruption_detector.d.ts +59 -0
  42. package/dist/inference/interruption/interruption_detector.d.ts.map +1 -0
  43. package/dist/inference/interruption/interruption_detector.js +147 -0
  44. package/dist/inference/interruption/interruption_detector.js.map +1 -0
  45. package/dist/inference/interruption/interruption_stream.cjs +368 -0
  46. package/dist/inference/interruption/interruption_stream.cjs.map +1 -0
  47. package/dist/inference/interruption/interruption_stream.d.cts +46 -0
  48. package/dist/inference/interruption/interruption_stream.d.ts +46 -0
  49. package/dist/inference/interruption/interruption_stream.d.ts.map +1 -0
  50. package/dist/inference/interruption/interruption_stream.js +344 -0
  51. package/dist/inference/interruption/interruption_stream.js.map +1 -0
  52. package/dist/inference/interruption/types.cjs +17 -0
  53. package/dist/inference/interruption/types.cjs.map +1 -0
  54. package/dist/inference/interruption/types.d.cts +66 -0
  55. package/dist/inference/interruption/types.d.ts +66 -0
  56. package/dist/inference/interruption/types.d.ts.map +1 -0
  57. package/dist/inference/interruption/types.js +1 -0
  58. package/dist/inference/interruption/types.js.map +1 -0
  59. package/dist/inference/interruption/utils.cjs +130 -0
  60. package/dist/inference/interruption/utils.cjs.map +1 -0
  61. package/dist/inference/interruption/utils.d.cts +41 -0
  62. package/dist/inference/interruption/utils.d.ts +41 -0
  63. package/dist/inference/interruption/utils.d.ts.map +1 -0
  64. package/dist/inference/interruption/utils.js +105 -0
  65. package/dist/inference/interruption/utils.js.map +1 -0
  66. package/dist/inference/interruption/utils.test.cjs +105 -0
  67. package/dist/inference/interruption/utils.test.cjs.map +1 -0
  68. package/dist/inference/interruption/utils.test.js +104 -0
  69. package/dist/inference/interruption/utils.test.js.map +1 -0
  70. package/dist/inference/interruption/ws_transport.cjs +329 -0
  71. package/dist/inference/interruption/ws_transport.cjs.map +1 -0
  72. package/dist/inference/interruption/ws_transport.d.cts +33 -0
  73. package/dist/inference/interruption/ws_transport.d.ts +33 -0
  74. package/dist/inference/interruption/ws_transport.d.ts.map +1 -0
  75. package/dist/inference/interruption/ws_transport.js +295 -0
  76. package/dist/inference/interruption/ws_transport.js.map +1 -0
  77. package/dist/inference/llm.cjs +14 -10
  78. package/dist/inference/llm.cjs.map +1 -1
  79. package/dist/inference/llm.d.cts +2 -1
  80. package/dist/inference/llm.d.ts +2 -1
  81. package/dist/inference/llm.d.ts.map +1 -1
  82. package/dist/inference/llm.js +8 -10
  83. package/dist/inference/llm.js.map +1 -1
  84. package/dist/inference/stt.cjs +7 -2
  85. package/dist/inference/stt.cjs.map +1 -1
  86. package/dist/inference/stt.d.cts +2 -0
  87. package/dist/inference/stt.d.ts +2 -0
  88. package/dist/inference/stt.d.ts.map +1 -1
  89. package/dist/inference/stt.js +8 -3
  90. package/dist/inference/stt.js.map +1 -1
  91. package/dist/inference/tts.cjs +7 -2
  92. package/dist/inference/tts.cjs.map +1 -1
  93. package/dist/inference/tts.d.cts +2 -0
  94. package/dist/inference/tts.d.ts +2 -0
  95. package/dist/inference/tts.d.ts.map +1 -1
  96. package/dist/inference/tts.js +8 -3
  97. package/dist/inference/tts.js.map +1 -1
  98. package/dist/inference/utils.cjs +26 -7
  99. package/dist/inference/utils.cjs.map +1 -1
  100. package/dist/inference/utils.d.cts +13 -0
  101. package/dist/inference/utils.d.ts +13 -0
  102. package/dist/inference/utils.d.ts.map +1 -1
  103. package/dist/inference/utils.js +18 -2
  104. package/dist/inference/utils.js.map +1 -1
  105. package/dist/llm/chat_context.cjs +20 -2
  106. package/dist/llm/chat_context.cjs.map +1 -1
  107. package/dist/llm/chat_context.d.cts +19 -1
  108. package/dist/llm/chat_context.d.ts +19 -1
  109. package/dist/llm/chat_context.d.ts.map +1 -1
  110. package/dist/llm/chat_context.js +20 -2
  111. package/dist/llm/chat_context.js.map +1 -1
  112. package/dist/llm/index.cjs.map +1 -1
  113. package/dist/llm/index.d.cts +1 -1
  114. package/dist/llm/index.d.ts +1 -1
  115. package/dist/llm/index.d.ts.map +1 -1
  116. package/dist/llm/index.js.map +1 -1
  117. package/dist/llm/llm.cjs +16 -1
  118. package/dist/llm/llm.cjs.map +1 -1
  119. package/dist/llm/llm.d.cts +9 -0
  120. package/dist/llm/llm.d.ts +9 -0
  121. package/dist/llm/llm.d.ts.map +1 -1
  122. package/dist/llm/llm.js +16 -1
  123. package/dist/llm/llm.js.map +1 -1
  124. package/dist/llm/realtime.cjs +3 -0
  125. package/dist/llm/realtime.cjs.map +1 -1
  126. package/dist/llm/realtime.d.cts +1 -0
  127. package/dist/llm/realtime.d.ts +1 -0
  128. package/dist/llm/realtime.d.ts.map +1 -1
  129. package/dist/llm/realtime.js +3 -0
  130. package/dist/llm/realtime.js.map +1 -1
  131. package/dist/metrics/base.cjs.map +1 -1
  132. package/dist/metrics/base.d.cts +45 -1
  133. package/dist/metrics/base.d.ts +45 -1
  134. package/dist/metrics/base.d.ts.map +1 -1
  135. package/dist/metrics/index.cjs +5 -0
  136. package/dist/metrics/index.cjs.map +1 -1
  137. package/dist/metrics/index.d.cts +2 -1
  138. package/dist/metrics/index.d.ts +2 -1
  139. package/dist/metrics/index.d.ts.map +1 -1
  140. package/dist/metrics/index.js +6 -0
  141. package/dist/metrics/index.js.map +1 -1
  142. package/dist/metrics/model_usage.cjs +189 -0
  143. package/dist/metrics/model_usage.cjs.map +1 -0
  144. package/dist/metrics/model_usage.d.cts +92 -0
  145. package/dist/metrics/model_usage.d.ts +92 -0
  146. package/dist/metrics/model_usage.d.ts.map +1 -0
  147. package/dist/metrics/model_usage.js +164 -0
  148. package/dist/metrics/model_usage.js.map +1 -0
  149. package/dist/metrics/model_usage.test.cjs +474 -0
  150. package/dist/metrics/model_usage.test.cjs.map +1 -0
  151. package/dist/metrics/model_usage.test.js +476 -0
  152. package/dist/metrics/model_usage.test.js.map +1 -0
  153. package/dist/metrics/usage_collector.cjs +3 -0
  154. package/dist/metrics/usage_collector.cjs.map +1 -1
  155. package/dist/metrics/usage_collector.d.cts +9 -0
  156. package/dist/metrics/usage_collector.d.ts +9 -0
  157. package/dist/metrics/usage_collector.d.ts.map +1 -1
  158. package/dist/metrics/usage_collector.js +3 -0
  159. package/dist/metrics/usage_collector.js.map +1 -1
  160. package/dist/metrics/utils.cjs +9 -0
  161. package/dist/metrics/utils.cjs.map +1 -1
  162. package/dist/metrics/utils.d.ts.map +1 -1
  163. package/dist/metrics/utils.js +9 -0
  164. package/dist/metrics/utils.js.map +1 -1
  165. package/dist/stream/multi_input_stream.test.cjs +4 -0
  166. package/dist/stream/multi_input_stream.test.cjs.map +1 -1
  167. package/dist/stream/multi_input_stream.test.js +5 -1
  168. package/dist/stream/multi_input_stream.test.js.map +1 -1
  169. package/dist/stream/stream_channel.cjs +31 -0
  170. package/dist/stream/stream_channel.cjs.map +1 -1
  171. package/dist/stream/stream_channel.d.cts +4 -2
  172. package/dist/stream/stream_channel.d.ts +4 -2
  173. package/dist/stream/stream_channel.d.ts.map +1 -1
  174. package/dist/stream/stream_channel.js +31 -0
  175. package/dist/stream/stream_channel.js.map +1 -1
  176. package/dist/stt/stt.cjs +34 -2
  177. package/dist/stt/stt.cjs.map +1 -1
  178. package/dist/stt/stt.d.cts +22 -0
  179. package/dist/stt/stt.d.ts +22 -0
  180. package/dist/stt/stt.d.ts.map +1 -1
  181. package/dist/stt/stt.js +34 -2
  182. package/dist/stt/stt.js.map +1 -1
  183. package/dist/telemetry/otel_http_exporter.cjs +24 -5
  184. package/dist/telemetry/otel_http_exporter.cjs.map +1 -1
  185. package/dist/telemetry/otel_http_exporter.d.cts +1 -0
  186. package/dist/telemetry/otel_http_exporter.d.ts +1 -0
  187. package/dist/telemetry/otel_http_exporter.d.ts.map +1 -1
  188. package/dist/telemetry/otel_http_exporter.js +24 -5
  189. package/dist/telemetry/otel_http_exporter.js.map +1 -1
  190. package/dist/telemetry/trace_types.cjs +5 -5
  191. package/dist/telemetry/trace_types.cjs.map +1 -1
  192. package/dist/telemetry/trace_types.d.cts +9 -5
  193. package/dist/telemetry/trace_types.d.ts +9 -5
  194. package/dist/telemetry/trace_types.d.ts.map +1 -1
  195. package/dist/telemetry/trace_types.js +5 -5
  196. package/dist/telemetry/trace_types.js.map +1 -1
  197. package/dist/telemetry/traces.cjs +47 -8
  198. package/dist/telemetry/traces.cjs.map +1 -1
  199. package/dist/telemetry/traces.d.ts.map +1 -1
  200. package/dist/telemetry/traces.js +47 -8
  201. package/dist/telemetry/traces.js.map +1 -1
  202. package/dist/tts/tts.cjs +64 -2
  203. package/dist/tts/tts.cjs.map +1 -1
  204. package/dist/tts/tts.d.cts +34 -0
  205. package/dist/tts/tts.d.ts +34 -0
  206. package/dist/tts/tts.d.ts.map +1 -1
  207. package/dist/tts/tts.js +64 -2
  208. package/dist/tts/tts.js.map +1 -1
  209. package/dist/version.cjs +1 -1
  210. package/dist/version.js +1 -1
  211. package/dist/voice/agent.cjs +25 -4
  212. package/dist/voice/agent.cjs.map +1 -1
  213. package/dist/voice/agent.d.cts +10 -2
  214. package/dist/voice/agent.d.ts +10 -2
  215. package/dist/voice/agent.d.ts.map +1 -1
  216. package/dist/voice/agent.js +25 -4
  217. package/dist/voice/agent.js.map +1 -1
  218. package/dist/voice/agent_activity.cjs +261 -36
  219. package/dist/voice/agent_activity.cjs.map +1 -1
  220. package/dist/voice/agent_activity.d.cts +20 -6
  221. package/dist/voice/agent_activity.d.ts +20 -6
  222. package/dist/voice/agent_activity.d.ts.map +1 -1
  223. package/dist/voice/agent_activity.js +262 -37
  224. package/dist/voice/agent_activity.js.map +1 -1
  225. package/dist/voice/agent_session.cjs +105 -48
  226. package/dist/voice/agent_session.cjs.map +1 -1
  227. package/dist/voice/agent_session.d.cts +90 -20
  228. package/dist/voice/agent_session.d.ts +90 -20
  229. package/dist/voice/agent_session.d.ts.map +1 -1
  230. package/dist/voice/agent_session.js +105 -46
  231. package/dist/voice/agent_session.js.map +1 -1
  232. package/dist/voice/audio_recognition.cjs +287 -6
  233. package/dist/voice/audio_recognition.cjs.map +1 -1
  234. package/dist/voice/audio_recognition.d.cts +42 -3
  235. package/dist/voice/audio_recognition.d.ts +42 -3
  236. package/dist/voice/audio_recognition.d.ts.map +1 -1
  237. package/dist/voice/audio_recognition.js +289 -7
  238. package/dist/voice/audio_recognition.js.map +1 -1
  239. package/dist/voice/client_events.cjs +554 -0
  240. package/dist/voice/client_events.cjs.map +1 -0
  241. package/dist/voice/client_events.d.cts +195 -0
  242. package/dist/voice/client_events.d.ts +195 -0
  243. package/dist/voice/client_events.d.ts.map +1 -0
  244. package/dist/voice/client_events.js +548 -0
  245. package/dist/voice/client_events.js.map +1 -0
  246. package/dist/voice/events.cjs +1 -0
  247. package/dist/voice/events.cjs.map +1 -1
  248. package/dist/voice/events.d.cts +8 -5
  249. package/dist/voice/events.d.ts +8 -5
  250. package/dist/voice/events.d.ts.map +1 -1
  251. package/dist/voice/events.js +1 -0
  252. package/dist/voice/events.js.map +1 -1
  253. package/dist/voice/generation.cjs +43 -8
  254. package/dist/voice/generation.cjs.map +1 -1
  255. package/dist/voice/generation.d.cts +3 -3
  256. package/dist/voice/generation.d.ts +3 -3
  257. package/dist/voice/generation.d.ts.map +1 -1
  258. package/dist/voice/generation.js +43 -8
  259. package/dist/voice/generation.js.map +1 -1
  260. package/dist/voice/index.cjs +1 -0
  261. package/dist/voice/index.cjs.map +1 -1
  262. package/dist/voice/index.d.cts +1 -0
  263. package/dist/voice/index.d.ts +1 -0
  264. package/dist/voice/index.d.ts.map +1 -1
  265. package/dist/voice/index.js +1 -0
  266. package/dist/voice/index.js.map +1 -1
  267. package/dist/voice/report.cjs +20 -8
  268. package/dist/voice/report.cjs.map +1 -1
  269. package/dist/voice/report.d.cts +5 -0
  270. package/dist/voice/report.d.ts +5 -0
  271. package/dist/voice/report.d.ts.map +1 -1
  272. package/dist/voice/report.js +20 -8
  273. package/dist/voice/report.js.map +1 -1
  274. package/dist/voice/report.test.cjs +106 -0
  275. package/dist/voice/report.test.cjs.map +1 -0
  276. package/dist/voice/report.test.js +105 -0
  277. package/dist/voice/report.test.js.map +1 -0
  278. package/dist/voice/room_io/room_io.cjs +5 -39
  279. package/dist/voice/room_io/room_io.cjs.map +1 -1
  280. package/dist/voice/room_io/room_io.d.cts +4 -9
  281. package/dist/voice/room_io/room_io.d.ts +4 -9
  282. package/dist/voice/room_io/room_io.d.ts.map +1 -1
  283. package/dist/voice/room_io/room_io.js +5 -40
  284. package/dist/voice/room_io/room_io.js.map +1 -1
  285. package/dist/voice/turn_config/endpointing.cjs +33 -0
  286. package/dist/voice/turn_config/endpointing.cjs.map +1 -0
  287. package/dist/voice/turn_config/endpointing.d.cts +30 -0
  288. package/dist/voice/turn_config/endpointing.d.ts +30 -0
  289. package/dist/voice/turn_config/endpointing.d.ts.map +1 -0
  290. package/dist/voice/turn_config/endpointing.js +9 -0
  291. package/dist/voice/turn_config/endpointing.js.map +1 -0
  292. package/dist/voice/turn_config/interruption.cjs +37 -0
  293. package/dist/voice/turn_config/interruption.cjs.map +1 -0
  294. package/dist/voice/turn_config/interruption.d.cts +53 -0
  295. package/dist/voice/turn_config/interruption.d.ts +53 -0
  296. package/dist/voice/turn_config/interruption.d.ts.map +1 -0
  297. package/dist/voice/turn_config/interruption.js +13 -0
  298. package/dist/voice/turn_config/interruption.js.map +1 -0
  299. package/dist/voice/turn_config/turn_handling.cjs +35 -0
  300. package/dist/voice/turn_config/turn_handling.cjs.map +1 -0
  301. package/dist/voice/turn_config/turn_handling.d.cts +36 -0
  302. package/dist/voice/turn_config/turn_handling.d.ts +36 -0
  303. package/dist/voice/turn_config/turn_handling.d.ts.map +1 -0
  304. package/dist/voice/turn_config/turn_handling.js +11 -0
  305. package/dist/voice/turn_config/turn_handling.js.map +1 -0
  306. package/dist/voice/turn_config/utils.cjs +97 -0
  307. package/dist/voice/turn_config/utils.cjs.map +1 -0
  308. package/dist/voice/turn_config/utils.d.cts +25 -0
  309. package/dist/voice/turn_config/utils.d.ts +25 -0
  310. package/dist/voice/turn_config/utils.d.ts.map +1 -0
  311. package/dist/voice/turn_config/utils.js +73 -0
  312. package/dist/voice/turn_config/utils.js.map +1 -0
  313. package/dist/voice/turn_config/utils.test.cjs +86 -0
  314. package/dist/voice/turn_config/utils.test.cjs.map +1 -0
  315. package/dist/voice/turn_config/utils.test.js +85 -0
  316. package/dist/voice/turn_config/utils.test.js.map +1 -0
  317. package/dist/voice/wire_format.cjs +798 -0
  318. package/dist/voice/wire_format.cjs.map +1 -0
  319. package/dist/voice/wire_format.d.cts +5503 -0
  320. package/dist/voice/wire_format.d.ts +5503 -0
  321. package/dist/voice/wire_format.d.ts.map +1 -0
  322. package/dist/voice/wire_format.js +728 -0
  323. package/dist/voice/wire_format.js.map +1 -0
  324. package/package.json +2 -1
  325. package/src/constants.ts +13 -0
  326. package/src/inference/interruption/defaults.ts +51 -0
  327. package/src/inference/interruption/errors.ts +25 -0
  328. package/src/inference/interruption/http_transport.ts +187 -0
  329. package/src/inference/interruption/interruption_cache_entry.ts +50 -0
  330. package/src/inference/interruption/interruption_detector.ts +188 -0
  331. package/src/inference/interruption/interruption_stream.ts +467 -0
  332. package/src/inference/interruption/types.ts +84 -0
  333. package/src/inference/interruption/utils.test.ts +132 -0
  334. package/src/inference/interruption/utils.ts +137 -0
  335. package/src/inference/interruption/ws_transport.ts +402 -0
  336. package/src/inference/llm.ts +9 -12
  337. package/src/inference/stt.ts +10 -3
  338. package/src/inference/tts.ts +10 -3
  339. package/src/inference/utils.ts +29 -1
  340. package/src/llm/chat_context.ts +40 -2
  341. package/src/llm/index.ts +1 -0
  342. package/src/llm/llm.ts +16 -0
  343. package/src/llm/realtime.ts +4 -0
  344. package/src/metrics/base.ts +48 -1
  345. package/src/metrics/index.ts +11 -0
  346. package/src/metrics/model_usage.test.ts +545 -0
  347. package/src/metrics/model_usage.ts +262 -0
  348. package/src/metrics/usage_collector.ts +11 -0
  349. package/src/metrics/utils.ts +11 -0
  350. package/src/stream/multi_input_stream.test.ts +6 -1
  351. package/src/stream/stream_channel.ts +34 -2
  352. package/src/stt/stt.ts +38 -0
  353. package/src/telemetry/otel_http_exporter.ts +28 -5
  354. package/src/telemetry/trace_types.ts +11 -8
  355. package/src/telemetry/traces.ts +111 -54
  356. package/src/tts/tts.ts +69 -1
  357. package/src/voice/agent.ts +30 -3
  358. package/src/voice/agent_activity.ts +327 -28
  359. package/src/voice/agent_session.ts +207 -59
  360. package/src/voice/audio_recognition.ts +385 -9
  361. package/src/voice/client_events.ts +838 -0
  362. package/src/voice/events.ts +14 -4
  363. package/src/voice/generation.ts +52 -9
  364. package/src/voice/index.ts +1 -0
  365. package/src/voice/report.test.ts +117 -0
  366. package/src/voice/report.ts +29 -6
  367. package/src/voice/room_io/room_io.ts +7 -61
  368. package/src/voice/turn_config/endpointing.ts +33 -0
  369. package/src/voice/turn_config/interruption.ts +56 -0
  370. package/src/voice/turn_config/turn_handling.ts +45 -0
  371. package/src/voice/turn_config/utils.test.ts +100 -0
  372. package/src/voice/turn_config/utils.ts +103 -0
  373. package/src/voice/wire_format.ts +827 -0
@@ -9,33 +9,33 @@ export declare const ttsSessionCreateEventSchema: z.ZodObject<{
9
9
  extra: z.ZodRecord<z.ZodString, z.ZodUnknown>;
10
10
  transcript: z.ZodOptional<z.ZodString>;
11
11
  }, "strip", z.ZodTypeAny, {
12
- sample_rate: string;
13
- type: "session.create";
14
12
  extra: Record<string, unknown>;
13
+ type: "session.create";
14
+ sample_rate: string;
15
15
  encoding: string;
16
- language?: string | undefined;
17
- transcript?: string | undefined;
18
16
  model?: string | undefined;
17
+ transcript?: string | undefined;
18
+ language?: string | undefined;
19
19
  voice?: string | undefined;
20
20
  }, {
21
- sample_rate: string;
22
- type: "session.create";
23
21
  extra: Record<string, unknown>;
22
+ type: "session.create";
23
+ sample_rate: string;
24
24
  encoding: string;
25
- language?: string | undefined;
26
- transcript?: string | undefined;
27
25
  model?: string | undefined;
26
+ transcript?: string | undefined;
27
+ language?: string | undefined;
28
28
  voice?: string | undefined;
29
29
  }>;
30
30
  export declare const ttsInputTranscriptEventSchema: z.ZodObject<{
31
31
  type: z.ZodLiteral<"input_transcript">;
32
32
  transcript: z.ZodString;
33
33
  }, "strip", z.ZodTypeAny, {
34
- transcript: string;
35
34
  type: "input_transcript";
36
- }, {
37
35
  transcript: string;
36
+ }, {
38
37
  type: "input_transcript";
38
+ transcript: string;
39
39
  }>;
40
40
  export declare const ttsSessionFlushEventSchema: z.ZodObject<{
41
41
  type: z.ZodLiteral<"session.flush">;
@@ -66,12 +66,12 @@ export declare const ttsOutputAudioEventSchema: z.ZodObject<{
66
66
  audio: z.ZodString;
67
67
  session_id: z.ZodString;
68
68
  }, "strip", z.ZodTypeAny, {
69
- type: "output_audio";
70
69
  audio: string;
70
+ type: "output_audio";
71
71
  session_id: string;
72
72
  }, {
73
- type: "output_audio";
74
73
  audio: string;
74
+ type: "output_audio";
75
75
  session_id: string;
76
76
  }>;
77
77
  export declare const ttsDoneEventSchema: z.ZodObject<{
@@ -117,32 +117,32 @@ export declare const ttsClientEventSchema: z.ZodDiscriminatedUnion<"type", [z.Zo
117
117
  extra: z.ZodRecord<z.ZodString, z.ZodUnknown>;
118
118
  transcript: z.ZodOptional<z.ZodString>;
119
119
  }, "strip", z.ZodTypeAny, {
120
- sample_rate: string;
121
- type: "session.create";
122
120
  extra: Record<string, unknown>;
121
+ type: "session.create";
122
+ sample_rate: string;
123
123
  encoding: string;
124
- language?: string | undefined;
125
- transcript?: string | undefined;
126
124
  model?: string | undefined;
125
+ transcript?: string | undefined;
126
+ language?: string | undefined;
127
127
  voice?: string | undefined;
128
128
  }, {
129
- sample_rate: string;
130
- type: "session.create";
131
129
  extra: Record<string, unknown>;
130
+ type: "session.create";
131
+ sample_rate: string;
132
132
  encoding: string;
133
- language?: string | undefined;
134
- transcript?: string | undefined;
135
133
  model?: string | undefined;
134
+ transcript?: string | undefined;
135
+ language?: string | undefined;
136
136
  voice?: string | undefined;
137
137
  }>, z.ZodObject<{
138
138
  type: z.ZodLiteral<"input_transcript">;
139
139
  transcript: z.ZodString;
140
140
  }, "strip", z.ZodTypeAny, {
141
- transcript: string;
142
141
  type: "input_transcript";
143
- }, {
144
142
  transcript: string;
143
+ }, {
145
144
  type: "input_transcript";
145
+ transcript: string;
146
146
  }>, z.ZodObject<{
147
147
  type: z.ZodLiteral<"session.flush">;
148
148
  }, "strip", z.ZodTypeAny, {
@@ -170,12 +170,12 @@ export declare const ttsServerEventSchema: z.ZodDiscriminatedUnion<"type", [z.Zo
170
170
  audio: z.ZodString;
171
171
  session_id: z.ZodString;
172
172
  }, "strip", z.ZodTypeAny, {
173
- type: "output_audio";
174
173
  audio: string;
174
+ type: "output_audio";
175
175
  session_id: string;
176
176
  }, {
177
- type: "output_audio";
178
177
  audio: string;
178
+ type: "output_audio";
179
179
  session_id: string;
180
180
  }>, z.ZodObject<{
181
181
  type: z.ZodLiteral<"done">;
@@ -227,16 +227,16 @@ export declare const sttWordSchema: z.ZodObject<{
227
227
  extra: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
228
228
  }, "strip", z.ZodTypeAny, {
229
229
  end: number;
230
- word: string;
231
230
  confidence: number;
232
231
  start: number;
232
+ word: string;
233
233
  extra?: unknown;
234
234
  }, {
235
235
  end?: number | undefined;
236
- word?: string | undefined;
236
+ extra?: unknown;
237
237
  confidence?: number | undefined;
238
238
  start?: number | undefined;
239
- extra?: unknown;
239
+ word?: string | undefined;
240
240
  }>;
241
241
  export declare const sttInterimTranscriptEventSchema: z.ZodObject<{
242
242
  type: z.ZodLiteral<"interim_transcript">;
@@ -254,49 +254,49 @@ export declare const sttInterimTranscriptEventSchema: z.ZodObject<{
254
254
  extra: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
255
255
  }, "strip", z.ZodTypeAny, {
256
256
  end: number;
257
- word: string;
258
257
  confidence: number;
259
258
  start: number;
259
+ word: string;
260
260
  extra?: unknown;
261
261
  }, {
262
262
  end?: number | undefined;
263
- word?: string | undefined;
263
+ extra?: unknown;
264
264
  confidence?: number | undefined;
265
265
  start?: number | undefined;
266
- extra?: unknown;
266
+ word?: string | undefined;
267
267
  }>, "many">>>;
268
268
  extra: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
269
269
  }, "strip", z.ZodTypeAny, {
270
- language: string;
271
- transcript: string;
272
270
  type: "interim_transcript";
271
+ transcript: string;
272
+ language: string;
273
273
  confidence: number;
274
274
  start: number;
275
275
  duration: number;
276
276
  words: {
277
277
  end: number;
278
- word: string;
279
278
  confidence: number;
280
279
  start: number;
280
+ word: string;
281
281
  extra?: unknown;
282
282
  }[];
283
283
  extra?: unknown;
284
284
  session_id?: string | undefined;
285
285
  }, {
286
286
  type: "interim_transcript";
287
- language?: string | undefined;
287
+ extra?: unknown;
288
288
  transcript?: string | undefined;
289
+ session_id?: string | undefined;
290
+ language?: string | undefined;
289
291
  confidence?: number | undefined;
290
292
  start?: number | undefined;
291
- extra?: unknown;
292
- session_id?: string | undefined;
293
293
  duration?: number | undefined;
294
294
  words?: {
295
295
  end?: number | undefined;
296
- word?: string | undefined;
296
+ extra?: unknown;
297
297
  confidence?: number | undefined;
298
298
  start?: number | undefined;
299
- extra?: unknown;
299
+ word?: string | undefined;
300
300
  }[] | undefined;
301
301
  }>;
302
302
  export declare const sttFinalTranscriptEventSchema: z.ZodObject<{
@@ -315,49 +315,49 @@ export declare const sttFinalTranscriptEventSchema: z.ZodObject<{
315
315
  extra: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
316
316
  }, "strip", z.ZodTypeAny, {
317
317
  end: number;
318
- word: string;
319
318
  confidence: number;
320
319
  start: number;
320
+ word: string;
321
321
  extra?: unknown;
322
322
  }, {
323
323
  end?: number | undefined;
324
- word?: string | undefined;
324
+ extra?: unknown;
325
325
  confidence?: number | undefined;
326
326
  start?: number | undefined;
327
- extra?: unknown;
327
+ word?: string | undefined;
328
328
  }>, "many">>>;
329
329
  extra: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
330
330
  }, "strip", z.ZodTypeAny, {
331
- language: string;
332
- transcript: string;
333
331
  type: "final_transcript";
332
+ transcript: string;
333
+ language: string;
334
334
  confidence: number;
335
335
  start: number;
336
336
  duration: number;
337
337
  words: {
338
338
  end: number;
339
- word: string;
340
339
  confidence: number;
341
340
  start: number;
341
+ word: string;
342
342
  extra?: unknown;
343
343
  }[];
344
344
  extra?: unknown;
345
345
  session_id?: string | undefined;
346
346
  }, {
347
347
  type: "final_transcript";
348
- language?: string | undefined;
348
+ extra?: unknown;
349
349
  transcript?: string | undefined;
350
+ session_id?: string | undefined;
351
+ language?: string | undefined;
350
352
  confidence?: number | undefined;
351
353
  start?: number | undefined;
352
- extra?: unknown;
353
- session_id?: string | undefined;
354
354
  duration?: number | undefined;
355
355
  words?: {
356
356
  end?: number | undefined;
357
- word?: string | undefined;
357
+ extra?: unknown;
358
358
  confidence?: number | undefined;
359
359
  start?: number | undefined;
360
- extra?: unknown;
360
+ word?: string | undefined;
361
361
  }[] | undefined;
362
362
  }>;
363
363
  export declare const sttSessionCreatedEventSchema: z.ZodObject<{
@@ -434,49 +434,49 @@ export declare const sttServerEventSchema: z.ZodDiscriminatedUnion<"type", [z.Zo
434
434
  extra: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
435
435
  }, "strip", z.ZodTypeAny, {
436
436
  end: number;
437
- word: string;
438
437
  confidence: number;
439
438
  start: number;
439
+ word: string;
440
440
  extra?: unknown;
441
441
  }, {
442
442
  end?: number | undefined;
443
- word?: string | undefined;
443
+ extra?: unknown;
444
444
  confidence?: number | undefined;
445
445
  start?: number | undefined;
446
- extra?: unknown;
446
+ word?: string | undefined;
447
447
  }>, "many">>>;
448
448
  extra: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
449
449
  }, "strip", z.ZodTypeAny, {
450
- language: string;
451
- transcript: string;
452
450
  type: "interim_transcript";
451
+ transcript: string;
452
+ language: string;
453
453
  confidence: number;
454
454
  start: number;
455
455
  duration: number;
456
456
  words: {
457
457
  end: number;
458
- word: string;
459
458
  confidence: number;
460
459
  start: number;
460
+ word: string;
461
461
  extra?: unknown;
462
462
  }[];
463
463
  extra?: unknown;
464
464
  session_id?: string | undefined;
465
465
  }, {
466
466
  type: "interim_transcript";
467
- language?: string | undefined;
467
+ extra?: unknown;
468
468
  transcript?: string | undefined;
469
+ session_id?: string | undefined;
470
+ language?: string | undefined;
469
471
  confidence?: number | undefined;
470
472
  start?: number | undefined;
471
- extra?: unknown;
472
- session_id?: string | undefined;
473
473
  duration?: number | undefined;
474
474
  words?: {
475
475
  end?: number | undefined;
476
- word?: string | undefined;
476
+ extra?: unknown;
477
477
  confidence?: number | undefined;
478
478
  start?: number | undefined;
479
- extra?: unknown;
479
+ word?: string | undefined;
480
480
  }[] | undefined;
481
481
  }>, z.ZodObject<{
482
482
  type: z.ZodLiteral<"final_transcript">;
@@ -494,49 +494,49 @@ export declare const sttServerEventSchema: z.ZodDiscriminatedUnion<"type", [z.Zo
494
494
  extra: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
495
495
  }, "strip", z.ZodTypeAny, {
496
496
  end: number;
497
- word: string;
498
497
  confidence: number;
499
498
  start: number;
499
+ word: string;
500
500
  extra?: unknown;
501
501
  }, {
502
502
  end?: number | undefined;
503
- word?: string | undefined;
503
+ extra?: unknown;
504
504
  confidence?: number | undefined;
505
505
  start?: number | undefined;
506
- extra?: unknown;
506
+ word?: string | undefined;
507
507
  }>, "many">>>;
508
508
  extra: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
509
509
  }, "strip", z.ZodTypeAny, {
510
- language: string;
511
- transcript: string;
512
510
  type: "final_transcript";
511
+ transcript: string;
512
+ language: string;
513
513
  confidence: number;
514
514
  start: number;
515
515
  duration: number;
516
516
  words: {
517
517
  end: number;
518
- word: string;
519
518
  confidence: number;
520
519
  start: number;
520
+ word: string;
521
521
  extra?: unknown;
522
522
  }[];
523
523
  extra?: unknown;
524
524
  session_id?: string | undefined;
525
525
  }, {
526
526
  type: "final_transcript";
527
- language?: string | undefined;
527
+ extra?: unknown;
528
528
  transcript?: string | undefined;
529
+ session_id?: string | undefined;
530
+ language?: string | undefined;
529
531
  confidence?: number | undefined;
530
532
  start?: number | undefined;
531
- extra?: unknown;
532
- session_id?: string | undefined;
533
533
  duration?: number | undefined;
534
534
  words?: {
535
535
  end?: number | undefined;
536
- word?: string | undefined;
536
+ extra?: unknown;
537
537
  confidence?: number | undefined;
538
538
  start?: number | undefined;
539
- extra?: unknown;
539
+ word?: string | undefined;
540
540
  }[] | undefined;
541
541
  }>, z.ZodObject<{
542
542
  type: z.ZodLiteral<"error">;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var defaults_exports = {};
20
+ __export(defaults_exports, {
21
+ AUDIO_PREFIX_DURATION_IN_S: () => AUDIO_PREFIX_DURATION_IN_S,
22
+ DETECTION_INTERVAL_IN_S: () => DETECTION_INTERVAL_IN_S,
23
+ FRAMES_PER_SECOND: () => FRAMES_PER_SECOND,
24
+ FRAME_DURATION_IN_S: () => FRAME_DURATION_IN_S,
25
+ MAX_AUDIO_DURATION_IN_S: () => MAX_AUDIO_DURATION_IN_S,
26
+ MIN_INTERRUPTION_DURATION_IN_S: () => MIN_INTERRUPTION_DURATION_IN_S,
27
+ REMOTE_INFERENCE_TIMEOUT_IN_S: () => REMOTE_INFERENCE_TIMEOUT_IN_S,
28
+ SAMPLE_RATE: () => SAMPLE_RATE,
29
+ THRESHOLD: () => THRESHOLD,
30
+ apiConnectDefaults: () => apiConnectDefaults,
31
+ interruptionOptionDefaults: () => interruptionOptionDefaults,
32
+ intervalForRetry: () => intervalForRetry
33
+ });
34
+ module.exports = __toCommonJS(defaults_exports);
35
+ const MIN_INTERRUPTION_DURATION_IN_S = 0.025 * 2;
36
+ const THRESHOLD = 0.5;
37
+ const MAX_AUDIO_DURATION_IN_S = 3;
38
+ const AUDIO_PREFIX_DURATION_IN_S = 0.5;
39
+ const DETECTION_INTERVAL_IN_S = 0.1;
40
+ const REMOTE_INFERENCE_TIMEOUT_IN_S = 1;
41
+ const SAMPLE_RATE = 16e3;
42
+ const FRAMES_PER_SECOND = 40;
43
+ const FRAME_DURATION_IN_S = 0.025;
44
+ const apiConnectDefaults = {
45
+ maxRetries: 3,
46
+ retryInterval: 2e3,
47
+ timeout: 1e4
48
+ };
49
+ function intervalForRetry(attempt, baseInterval = apiConnectDefaults.retryInterval) {
50
+ const exponentialDelay = baseInterval * Math.pow(2, attempt);
51
+ const jitter = exponentialDelay * Math.random() * 0.25;
52
+ return exponentialDelay + jitter;
53
+ }
54
+ const interruptionOptionDefaults = {
55
+ sampleRate: SAMPLE_RATE,
56
+ threshold: THRESHOLD,
57
+ minFrames: Math.ceil(MIN_INTERRUPTION_DURATION_IN_S * FRAMES_PER_SECOND),
58
+ maxAudioDurationInS: MAX_AUDIO_DURATION_IN_S,
59
+ audioPrefixDurationInS: AUDIO_PREFIX_DURATION_IN_S,
60
+ detectionIntervalInS: DETECTION_INTERVAL_IN_S,
61
+ inferenceTimeout: REMOTE_INFERENCE_TIMEOUT_IN_S * 1e3,
62
+ apiKey: process.env.LIVEKIT_API_KEY || "",
63
+ apiSecret: process.env.LIVEKIT_API_SECRET || "",
64
+ minInterruptionDurationInS: MIN_INTERRUPTION_DURATION_IN_S
65
+ };
66
+ // Annotate the CommonJS export names for ESM import in node:
67
+ 0 && (module.exports = {
68
+ AUDIO_PREFIX_DURATION_IN_S,
69
+ DETECTION_INTERVAL_IN_S,
70
+ FRAMES_PER_SECOND,
71
+ FRAME_DURATION_IN_S,
72
+ MAX_AUDIO_DURATION_IN_S,
73
+ MIN_INTERRUPTION_DURATION_IN_S,
74
+ REMOTE_INFERENCE_TIMEOUT_IN_S,
75
+ SAMPLE_RATE,
76
+ THRESHOLD,
77
+ apiConnectDefaults,
78
+ interruptionOptionDefaults,
79
+ intervalForRetry
80
+ });
81
+ //# sourceMappingURL=defaults.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/inference/interruption/defaults.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2026 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { ApiConnectOptions } from './interruption_stream.js';\nimport type { InterruptionOptions } from './types.js';\n\nexport const MIN_INTERRUPTION_DURATION_IN_S = 0.025 * 2; // 25ms per frame, 2 consecutive frames\nexport const THRESHOLD = 0.5;\nexport const MAX_AUDIO_DURATION_IN_S = 3.0;\nexport const AUDIO_PREFIX_DURATION_IN_S = 0.5;\nexport const DETECTION_INTERVAL_IN_S = 0.1;\nexport const REMOTE_INFERENCE_TIMEOUT_IN_S = 1.0;\nexport const SAMPLE_RATE = 16000;\nexport const FRAMES_PER_SECOND = 40;\nexport const FRAME_DURATION_IN_S = 0.025; // 25ms per frame\n\nexport const apiConnectDefaults: ApiConnectOptions = {\n maxRetries: 3,\n retryInterval: 2_000,\n timeout: 10_000,\n} as const;\n\n/**\n * Calculate the retry interval using exponential backoff with jitter.\n * Matches the Python implementation's _interval_for_retry behavior.\n */\nexport function intervalForRetry(\n attempt: number,\n baseInterval: number = apiConnectDefaults.retryInterval,\n): number {\n // Exponential backoff: baseInterval * 2^attempt with some jitter\n const exponentialDelay = baseInterval * Math.pow(2, attempt);\n // Add jitter (0-25% of the delay)\n const jitter = exponentialDelay * Math.random() * 0.25;\n return exponentialDelay + jitter;\n}\n\n// baseUrl and useProxy are resolved dynamically in the constructor\n// to respect LIVEKIT_REMOTE_EOT_URL environment variable\nexport const interruptionOptionDefaults: Omit<InterruptionOptions, 'baseUrl' | 'useProxy'> = {\n sampleRate: SAMPLE_RATE,\n threshold: THRESHOLD,\n minFrames: Math.ceil(MIN_INTERRUPTION_DURATION_IN_S * FRAMES_PER_SECOND),\n maxAudioDurationInS: MAX_AUDIO_DURATION_IN_S,\n audioPrefixDurationInS: AUDIO_PREFIX_DURATION_IN_S,\n detectionIntervalInS: DETECTION_INTERVAL_IN_S,\n inferenceTimeout: REMOTE_INFERENCE_TIMEOUT_IN_S * 1_000,\n apiKey: process.env.LIVEKIT_API_KEY || '',\n apiSecret: process.env.LIVEKIT_API_SECRET || '',\n minInterruptionDurationInS: MIN_INTERRUPTION_DURATION_IN_S,\n} as const;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,MAAM,iCAAiC,QAAQ;AAC/C,MAAM,YAAY;AAClB,MAAM,0BAA0B;AAChC,MAAM,6BAA6B;AACnC,MAAM,0BAA0B;AAChC,MAAM,gCAAgC;AACtC,MAAM,cAAc;AACpB,MAAM,oBAAoB;AAC1B,MAAM,sBAAsB;AAE5B,MAAM,qBAAwC;AAAA,EACnD,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,SAAS;AACX;AAMO,SAAS,iBACd,SACA,eAAuB,mBAAmB,eAClC;AAER,QAAM,mBAAmB,eAAe,KAAK,IAAI,GAAG,OAAO;AAE3D,QAAM,SAAS,mBAAmB,KAAK,OAAO,IAAI;AAClD,SAAO,mBAAmB;AAC5B;AAIO,MAAM,6BAAgF;AAAA,EAC3F,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,WAAW,KAAK,KAAK,iCAAiC,iBAAiB;AAAA,EACvE,qBAAqB;AAAA,EACrB,wBAAwB;AAAA,EACxB,sBAAsB;AAAA,EACtB,kBAAkB,gCAAgC;AAAA,EAClD,QAAQ,QAAQ,IAAI,mBAAmB;AAAA,EACvC,WAAW,QAAQ,IAAI,sBAAsB;AAAA,EAC7C,4BAA4B;AAC9B;","names":[]}
@@ -0,0 +1,19 @@
1
+ import type { ApiConnectOptions } from './interruption_stream.js';
2
+ import type { InterruptionOptions } from './types.js';
3
+ export declare const MIN_INTERRUPTION_DURATION_IN_S: number;
4
+ export declare const THRESHOLD = 0.5;
5
+ export declare const MAX_AUDIO_DURATION_IN_S = 3;
6
+ export declare const AUDIO_PREFIX_DURATION_IN_S = 0.5;
7
+ export declare const DETECTION_INTERVAL_IN_S = 0.1;
8
+ export declare const REMOTE_INFERENCE_TIMEOUT_IN_S = 1;
9
+ export declare const SAMPLE_RATE = 16000;
10
+ export declare const FRAMES_PER_SECOND = 40;
11
+ export declare const FRAME_DURATION_IN_S = 0.025;
12
+ export declare const apiConnectDefaults: ApiConnectOptions;
13
+ /**
14
+ * Calculate the retry interval using exponential backoff with jitter.
15
+ * Matches the Python implementation's _interval_for_retry behavior.
16
+ */
17
+ export declare function intervalForRetry(attempt: number, baseInterval?: number): number;
18
+ export declare const interruptionOptionDefaults: Omit<InterruptionOptions, 'baseUrl' | 'useProxy'>;
19
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1,19 @@
1
+ import type { ApiConnectOptions } from './interruption_stream.js';
2
+ import type { InterruptionOptions } from './types.js';
3
+ export declare const MIN_INTERRUPTION_DURATION_IN_S: number;
4
+ export declare const THRESHOLD = 0.5;
5
+ export declare const MAX_AUDIO_DURATION_IN_S = 3;
6
+ export declare const AUDIO_PREFIX_DURATION_IN_S = 0.5;
7
+ export declare const DETECTION_INTERVAL_IN_S = 0.1;
8
+ export declare const REMOTE_INFERENCE_TIMEOUT_IN_S = 1;
9
+ export declare const SAMPLE_RATE = 16000;
10
+ export declare const FRAMES_PER_SECOND = 40;
11
+ export declare const FRAME_DURATION_IN_S = 0.025;
12
+ export declare const apiConnectDefaults: ApiConnectOptions;
13
+ /**
14
+ * Calculate the retry interval using exponential backoff with jitter.
15
+ * Matches the Python implementation's _interval_for_retry behavior.
16
+ */
17
+ export declare function intervalForRetry(attempt: number, baseInterval?: number): number;
18
+ export declare const interruptionOptionDefaults: Omit<InterruptionOptions, 'baseUrl' | 'useProxy'>;
19
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/inference/interruption/defaults.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,eAAO,MAAM,8BAA8B,QAAY,CAAC;AACxD,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B,eAAO,MAAM,uBAAuB,IAAM,CAAC;AAC3C,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,6BAA6B,IAAM,CAAC;AACjD,eAAO,MAAM,WAAW,QAAQ,CAAC;AACjC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAEzC,eAAO,MAAM,kBAAkB,EAAE,iBAIvB,CAAC;AAEX;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,YAAY,GAAE,MAAyC,GACtD,MAAM,CAMR;AAID,eAAO,MAAM,0BAA0B,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,UAAU,CAW/E,CAAC"}
@@ -0,0 +1,46 @@
1
+ const MIN_INTERRUPTION_DURATION_IN_S = 0.025 * 2;
2
+ const THRESHOLD = 0.5;
3
+ const MAX_AUDIO_DURATION_IN_S = 3;
4
+ const AUDIO_PREFIX_DURATION_IN_S = 0.5;
5
+ const DETECTION_INTERVAL_IN_S = 0.1;
6
+ const REMOTE_INFERENCE_TIMEOUT_IN_S = 1;
7
+ const SAMPLE_RATE = 16e3;
8
+ const FRAMES_PER_SECOND = 40;
9
+ const FRAME_DURATION_IN_S = 0.025;
10
+ const apiConnectDefaults = {
11
+ maxRetries: 3,
12
+ retryInterval: 2e3,
13
+ timeout: 1e4
14
+ };
15
+ function intervalForRetry(attempt, baseInterval = apiConnectDefaults.retryInterval) {
16
+ const exponentialDelay = baseInterval * Math.pow(2, attempt);
17
+ const jitter = exponentialDelay * Math.random() * 0.25;
18
+ return exponentialDelay + jitter;
19
+ }
20
+ const interruptionOptionDefaults = {
21
+ sampleRate: SAMPLE_RATE,
22
+ threshold: THRESHOLD,
23
+ minFrames: Math.ceil(MIN_INTERRUPTION_DURATION_IN_S * FRAMES_PER_SECOND),
24
+ maxAudioDurationInS: MAX_AUDIO_DURATION_IN_S,
25
+ audioPrefixDurationInS: AUDIO_PREFIX_DURATION_IN_S,
26
+ detectionIntervalInS: DETECTION_INTERVAL_IN_S,
27
+ inferenceTimeout: REMOTE_INFERENCE_TIMEOUT_IN_S * 1e3,
28
+ apiKey: process.env.LIVEKIT_API_KEY || "",
29
+ apiSecret: process.env.LIVEKIT_API_SECRET || "",
30
+ minInterruptionDurationInS: MIN_INTERRUPTION_DURATION_IN_S
31
+ };
32
+ export {
33
+ AUDIO_PREFIX_DURATION_IN_S,
34
+ DETECTION_INTERVAL_IN_S,
35
+ FRAMES_PER_SECOND,
36
+ FRAME_DURATION_IN_S,
37
+ MAX_AUDIO_DURATION_IN_S,
38
+ MIN_INTERRUPTION_DURATION_IN_S,
39
+ REMOTE_INFERENCE_TIMEOUT_IN_S,
40
+ SAMPLE_RATE,
41
+ THRESHOLD,
42
+ apiConnectDefaults,
43
+ interruptionOptionDefaults,
44
+ intervalForRetry
45
+ };
46
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/inference/interruption/defaults.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2026 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { ApiConnectOptions } from './interruption_stream.js';\nimport type { InterruptionOptions } from './types.js';\n\nexport const MIN_INTERRUPTION_DURATION_IN_S = 0.025 * 2; // 25ms per frame, 2 consecutive frames\nexport const THRESHOLD = 0.5;\nexport const MAX_AUDIO_DURATION_IN_S = 3.0;\nexport const AUDIO_PREFIX_DURATION_IN_S = 0.5;\nexport const DETECTION_INTERVAL_IN_S = 0.1;\nexport const REMOTE_INFERENCE_TIMEOUT_IN_S = 1.0;\nexport const SAMPLE_RATE = 16000;\nexport const FRAMES_PER_SECOND = 40;\nexport const FRAME_DURATION_IN_S = 0.025; // 25ms per frame\n\nexport const apiConnectDefaults: ApiConnectOptions = {\n maxRetries: 3,\n retryInterval: 2_000,\n timeout: 10_000,\n} as const;\n\n/**\n * Calculate the retry interval using exponential backoff with jitter.\n * Matches the Python implementation's _interval_for_retry behavior.\n */\nexport function intervalForRetry(\n attempt: number,\n baseInterval: number = apiConnectDefaults.retryInterval,\n): number {\n // Exponential backoff: baseInterval * 2^attempt with some jitter\n const exponentialDelay = baseInterval * Math.pow(2, attempt);\n // Add jitter (0-25% of the delay)\n const jitter = exponentialDelay * Math.random() * 0.25;\n return exponentialDelay + jitter;\n}\n\n// baseUrl and useProxy are resolved dynamically in the constructor\n// to respect LIVEKIT_REMOTE_EOT_URL environment variable\nexport const interruptionOptionDefaults: Omit<InterruptionOptions, 'baseUrl' | 'useProxy'> = {\n sampleRate: SAMPLE_RATE,\n threshold: THRESHOLD,\n minFrames: Math.ceil(MIN_INTERRUPTION_DURATION_IN_S * FRAMES_PER_SECOND),\n maxAudioDurationInS: MAX_AUDIO_DURATION_IN_S,\n audioPrefixDurationInS: AUDIO_PREFIX_DURATION_IN_S,\n detectionIntervalInS: DETECTION_INTERVAL_IN_S,\n inferenceTimeout: REMOTE_INFERENCE_TIMEOUT_IN_S * 1_000,\n apiKey: process.env.LIVEKIT_API_KEY || '',\n apiSecret: process.env.LIVEKIT_API_SECRET || '',\n minInterruptionDurationInS: MIN_INTERRUPTION_DURATION_IN_S,\n} as const;\n"],"mappings":"AAMO,MAAM,iCAAiC,QAAQ;AAC/C,MAAM,YAAY;AAClB,MAAM,0BAA0B;AAChC,MAAM,6BAA6B;AACnC,MAAM,0BAA0B;AAChC,MAAM,gCAAgC;AACtC,MAAM,cAAc;AACpB,MAAM,oBAAoB;AAC1B,MAAM,sBAAsB;AAE5B,MAAM,qBAAwC;AAAA,EACnD,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,SAAS;AACX;AAMO,SAAS,iBACd,SACA,eAAuB,mBAAmB,eAClC;AAER,QAAM,mBAAmB,eAAe,KAAK,IAAI,GAAG,OAAO;AAE3D,QAAM,SAAS,mBAAmB,KAAK,OAAO,IAAI;AAClD,SAAO,mBAAmB;AAC5B;AAIO,MAAM,6BAAgF;AAAA,EAC3F,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,WAAW,KAAK,KAAK,iCAAiC,iBAAiB;AAAA,EACvE,qBAAqB;AAAA,EACrB,wBAAwB;AAAA,EACxB,sBAAsB;AAAA,EACtB,kBAAkB,gCAAgC;AAAA,EAClD,QAAQ,QAAQ,IAAI,mBAAmB;AAAA,EACvC,WAAW,QAAQ,IAAI,sBAAsB;AAAA,EAC7C,4BAA4B;AAC9B;","names":[]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var errors_exports = {};
20
+ __export(errors_exports, {
21
+ InterruptionDetectionError: () => InterruptionDetectionError
22
+ });
23
+ module.exports = __toCommonJS(errors_exports);
24
+ class InterruptionDetectionError extends Error {
25
+ type = "interruption_detection_error";
26
+ timestamp;
27
+ label;
28
+ recoverable;
29
+ constructor(message, timestamp, label, recoverable) {
30
+ super(message);
31
+ this.name = "InterruptionDetectionError";
32
+ this.timestamp = timestamp;
33
+ this.label = label;
34
+ this.recoverable = recoverable;
35
+ }
36
+ toString() {
37
+ return `${this.name}: ${this.message} (label=${this.label}, timestamp=${this.timestamp}, recoverable=${this.recoverable})`;
38
+ }
39
+ }
40
+ // Annotate the CommonJS export names for ESM import in node:
41
+ 0 && (module.exports = {
42
+ InterruptionDetectionError
43
+ });
44
+ //# sourceMappingURL=errors.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/inference/interruption/errors.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2026 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Error thrown during interruption detection.\n */\nexport class InterruptionDetectionError extends Error {\n readonly type = 'interruption_detection_error' as const;\n\n readonly timestamp: number;\n readonly label: string;\n readonly recoverable: boolean;\n\n constructor(message: string, timestamp: number, label: string, recoverable: boolean) {\n super(message);\n this.name = 'InterruptionDetectionError';\n this.timestamp = timestamp;\n this.label = label;\n this.recoverable = recoverable;\n }\n\n toString(): string {\n return `${this.name}: ${this.message} (label=${this.label}, timestamp=${this.timestamp}, recoverable=${this.recoverable})`;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,MAAM,mCAAmC,MAAM;AAAA,EAC3C,OAAO;AAAA,EAEP;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,SAAiB,WAAmB,OAAe,aAAsB;AACnF,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,SAAK,YAAY;AACjB,SAAK,QAAQ;AACb,SAAK,cAAc;AAAA,EACrB;AAAA,EAEA,WAAmB;AACjB,WAAO,GAAG,KAAK,IAAI,KAAK,KAAK,OAAO,WAAW,KAAK,KAAK,eAAe,KAAK,SAAS,iBAAiB,KAAK,WAAW;AAAA,EACzH;AACF;","names":[]}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Error thrown during interruption detection.
3
+ */
4
+ export declare class InterruptionDetectionError extends Error {
5
+ readonly type: "interruption_detection_error";
6
+ readonly timestamp: number;
7
+ readonly label: string;
8
+ readonly recoverable: boolean;
9
+ constructor(message: string, timestamp: number, label: string, recoverable: boolean);
10
+ toString(): string;
11
+ }
12
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Error thrown during interruption detection.
3
+ */
4
+ export declare class InterruptionDetectionError extends Error {
5
+ readonly type: "interruption_detection_error";
6
+ readonly timestamp: number;
7
+ readonly label: string;
8
+ readonly recoverable: boolean;
9
+ constructor(message: string, timestamp: number, label: string, recoverable: boolean);
10
+ toString(): string;
11
+ }
12
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/inference/interruption/errors.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,QAAQ,CAAC,IAAI,iCAA2C;IAExD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO;IAQnF,QAAQ,IAAI,MAAM;CAGnB"}
@@ -0,0 +1,20 @@
1
+ class InterruptionDetectionError extends Error {
2
+ type = "interruption_detection_error";
3
+ timestamp;
4
+ label;
5
+ recoverable;
6
+ constructor(message, timestamp, label, recoverable) {
7
+ super(message);
8
+ this.name = "InterruptionDetectionError";
9
+ this.timestamp = timestamp;
10
+ this.label = label;
11
+ this.recoverable = recoverable;
12
+ }
13
+ toString() {
14
+ return `${this.name}: ${this.message} (label=${this.label}, timestamp=${this.timestamp}, recoverable=${this.recoverable})`;
15
+ }
16
+ }
17
+ export {
18
+ InterruptionDetectionError
19
+ };
20
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/inference/interruption/errors.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2026 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Error thrown during interruption detection.\n */\nexport class InterruptionDetectionError extends Error {\n readonly type = 'interruption_detection_error' as const;\n\n readonly timestamp: number;\n readonly label: string;\n readonly recoverable: boolean;\n\n constructor(message: string, timestamp: number, label: string, recoverable: boolean) {\n super(message);\n this.name = 'InterruptionDetectionError';\n this.timestamp = timestamp;\n this.label = label;\n this.recoverable = recoverable;\n }\n\n toString(): string {\n return `${this.name}: ${this.message} (label=${this.label}, timestamp=${this.timestamp}, recoverable=${this.recoverable})`;\n }\n}\n"],"mappings":"AAMO,MAAM,mCAAmC,MAAM;AAAA,EAC3C,OAAO;AAAA,EAEP;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,SAAiB,WAAmB,OAAe,aAAsB;AACnF,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,SAAK,YAAY;AACjB,SAAK,QAAQ;AACb,SAAK,cAAc;AAAA,EACrB;AAAA,EAEA,WAAmB;AACjB,WAAO,GAAG,KAAK,IAAI,KAAK,KAAK,OAAO,WAAW,KAAK,KAAK,eAAe,KAAK,SAAS,iBAAiB,KAAK,WAAW;AAAA,EACzH;AACF;","names":[]}