@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
@@ -0,0 +1,195 @@
1
+ import type { Room, TextStreamInfo } from '@livekit/rtc-node';
2
+ import type { TypedEventEmitter } from '@livekit/typed-emitter';
3
+ import type { z } from 'zod';
4
+ import type { AgentSession } from './agent_session.js';
5
+ import type { RoomIO } from './room_io/room_io.js';
6
+ import { type clientAgentStateChangedSchema, type clientConversationItemAddedSchema, type clientErrorSchema, clientEventSchema, type clientFunctionToolsExecutedSchema, type clientMetricsCollectedSchema, type clientSessionUsageSchema, type clientUserInputTranscribedSchema, type clientUserOverlappingSpeechSchema, type clientUserStateChangedSchema, getAgentInfoResponseSchema, getChatHistoryResponseSchema, getRTCStatsResponseSchema, getSessionStateResponseSchema, getSessionUsageResponseSchema, sendMessageRequestSchema, sendMessageResponseSchema, streamRequestSchema, streamResponseSchema } from './wire_format.js';
7
+ /** @experimental */
8
+ export type ClientAgentStateChangedEvent = z.infer<typeof clientAgentStateChangedSchema>;
9
+ /** @experimental */
10
+ export type ClientUserStateChangedEvent = z.infer<typeof clientUserStateChangedSchema>;
11
+ /** @experimental */
12
+ export type ClientConversationItemAddedEvent = z.infer<typeof clientConversationItemAddedSchema>;
13
+ /** @experimental */
14
+ export type ClientUserInputTranscribedEvent = z.infer<typeof clientUserInputTranscribedSchema>;
15
+ /** @experimental */
16
+ export type ClientFunctionToolsExecutedEvent = z.infer<typeof clientFunctionToolsExecutedSchema>;
17
+ /** @experimental */
18
+ export type ClientMetricsCollectedEvent = z.infer<typeof clientMetricsCollectedSchema>;
19
+ /** @experimental */
20
+ export type ClientErrorEvent = z.infer<typeof clientErrorSchema>;
21
+ /** @experimental */
22
+ export type ClientUserOverlappingSpeechEvent = z.infer<typeof clientUserOverlappingSpeechSchema>;
23
+ /** @experimental */
24
+ export type ClientSessionUsageEvent = z.infer<typeof clientSessionUsageSchema>;
25
+ /** @experimental */
26
+ export type ClientEvent = z.infer<typeof clientEventSchema>;
27
+ /** @experimental */
28
+ export type ClientEventType = ClientEvent['type'];
29
+ /** @experimental */
30
+ export type StreamRequest = z.infer<typeof streamRequestSchema>;
31
+ /** @experimental */
32
+ export type StreamResponse = z.infer<typeof streamResponseSchema>;
33
+ /** @experimental */
34
+ export type GetSessionStateRequest = Record<string, never>;
35
+ /** @experimental */
36
+ export type GetSessionStateResponse = z.infer<typeof getSessionStateResponseSchema>;
37
+ /** @experimental */
38
+ export type GetChatHistoryRequest = Record<string, never>;
39
+ /** @experimental */
40
+ export type GetChatHistoryResponse = z.infer<typeof getChatHistoryResponseSchema>;
41
+ /** @experimental */
42
+ export type GetAgentInfoRequest = Record<string, never>;
43
+ /** @experimental */
44
+ export type GetAgentInfoResponse = z.infer<typeof getAgentInfoResponseSchema>;
45
+ /** @experimental */
46
+ export type SendMessageRequest = z.infer<typeof sendMessageRequestSchema>;
47
+ /** @experimental */
48
+ export type SendMessageResponse = z.infer<typeof sendMessageResponseSchema>;
49
+ /** @experimental */
50
+ export type GetRTCStatsRequest = Record<string, never>;
51
+ /** @experimental */
52
+ export type GetRTCStatsResponse = z.infer<typeof getRTCStatsResponseSchema>;
53
+ /** @experimental */
54
+ export type GetSessionUsageRequest = Record<string, never>;
55
+ /** @experimental */
56
+ export type GetSessionUsageResponse = z.infer<typeof getSessionUsageResponseSchema>;
57
+ /** @experimental */
58
+ export type RemoteSessionEventTypes = 'agent_state_changed' | 'user_state_changed' | 'conversation_item_added' | 'user_input_transcribed' | 'function_tools_executed' | 'metrics_collected' | 'user_overlapping_speech' | 'session_usage' | 'error';
59
+ /** @experimental */
60
+ export type RemoteSessionCallbacks = {
61
+ agent_state_changed: (ev: ClientAgentStateChangedEvent) => void;
62
+ user_state_changed: (ev: ClientUserStateChangedEvent) => void;
63
+ conversation_item_added: (ev: ClientConversationItemAddedEvent) => void;
64
+ user_input_transcribed: (ev: ClientUserInputTranscribedEvent) => void;
65
+ function_tools_executed: (ev: ClientFunctionToolsExecutedEvent) => void;
66
+ metrics_collected: (ev: ClientMetricsCollectedEvent) => void;
67
+ user_overlapping_speech: (ev: ClientUserOverlappingSpeechEvent) => void;
68
+ session_usage: (ev: ClientSessionUsageEvent) => void;
69
+ error: (ev: ClientErrorEvent) => void;
70
+ };
71
+ export interface TextInputEvent {
72
+ text: string;
73
+ info: TextStreamInfo;
74
+ participantIdentity: string;
75
+ }
76
+ export type TextInputCallback = (session: AgentSession, ev: TextInputEvent) => void | Promise<void>;
77
+ /**
78
+ * Handles exposing AgentSession state to room participants and allows interaction.
79
+ *
80
+ * This class provides:
81
+ * - Event streaming: Automatically streams AgentSession events to clients via a text stream
82
+ * - RPC handlers: Allows clients to request state, chat history, and agent info on demand
83
+ * - Text input handling: Receives text messages from clients and generates agent replies
84
+ */
85
+ /** @experimental */
86
+ export declare class ClientEventsHandler {
87
+ private readonly session;
88
+ private readonly roomIO;
89
+ private textInputCb?;
90
+ private textStreamHandlerRegistered;
91
+ private rpcHandlersRegistered;
92
+ private requestHandlerRegistered;
93
+ private eventHandlersRegistered;
94
+ private started;
95
+ private readonly tasks;
96
+ private readonly logger;
97
+ constructor(session: AgentSession, roomIO: RoomIO);
98
+ private get room();
99
+ start(): Promise<void>;
100
+ close(): Promise<void>;
101
+ /**
102
+ * Registers a callback to handle text input from clients.
103
+ *
104
+ * This callback will be called when a client sends a text message to the agent.
105
+ * The callback should return a promise that resolves when the text input has been processed.
106
+ *
107
+ * @param textInputCb - The callback to handle text input.
108
+ */
109
+ registerTextInput(textInputCb: TextInputCallback): void;
110
+ private registerRpcHandlers;
111
+ private registerRequestHandler;
112
+ private registerEventHandlers;
113
+ private onStreamRequest;
114
+ private handleStreamRequest;
115
+ private streamGetSessionState;
116
+ private streamGetChatHistory;
117
+ private streamGetAgentInfo;
118
+ private streamSendMessage;
119
+ private streamGetRtcStats;
120
+ private streamGetSessionUsage;
121
+ private onUserOverlapSpeech;
122
+ private onAgentStateChanged;
123
+ private onUserStateChanged;
124
+ private onConversationItemAdded;
125
+ private onUserInputTranscribed;
126
+ private onFunctionToolsExecuted;
127
+ private onMetricsCollected;
128
+ private onError;
129
+ private getTargetIdentities;
130
+ private streamClientEvent;
131
+ private sendClientEvent;
132
+ private rpcGetSessionState;
133
+ private rpcGetChatHistory;
134
+ private rpcGetAgentInfo;
135
+ private rpcSendMessage;
136
+ private onUserTextInput;
137
+ private trackTask;
138
+ }
139
+ declare const RemoteSession_base: new () => TypedEventEmitter<RemoteSessionCallbacks>;
140
+ /**
141
+ * Client-side interface to interact with a remote AgentSession.
142
+ *
143
+ * This class allows frontends/clients to:
144
+ * - Subscribe to real-time events from the agent session
145
+ * - Query session state, chat history, and agent info via RPC
146
+ * - Send messages to the agent
147
+ *
148
+ * Example:
149
+ * ```typescript
150
+ * const session = new RemoteSession(room, agentIdentity);
151
+ * session.on('agent_state_changed', (event) => {
152
+ * console.log('Agent state changed:', event.new_state);
153
+ * });
154
+ * session.on('user_state_changed', (event) => {
155
+ * console.log('User state changed:', event.new_state);
156
+ * });
157
+ * session.on('conversation_item_added', (event) => {
158
+ * console.log('Conversation item added:', event.item);
159
+ * });
160
+ * await session.start();
161
+ *
162
+ * const state = await session.fetchSessionState();
163
+ * console.log('Session state:', state);
164
+ *
165
+ * const response = await session.sendMessage('Hello!');
166
+ * console.log('Response:', response);
167
+ * ```
168
+ */
169
+ /** @experimental */
170
+ export declare class RemoteSession extends RemoteSession_base {
171
+ private readonly room;
172
+ private readonly agentIdentity;
173
+ private started;
174
+ private readonly tasks;
175
+ private readonly pendingRequests;
176
+ private readonly logger;
177
+ constructor(room: Room, agentIdentity: string);
178
+ start(): Promise<void>;
179
+ close(): Promise<void>;
180
+ private onEventStream;
181
+ private onResponseStream;
182
+ private readResponse;
183
+ private readEvent;
184
+ private parseEvent;
185
+ private sendRequest;
186
+ fetchSessionState(): Promise<GetSessionStateResponse>;
187
+ fetchChatHistory(): Promise<GetChatHistoryResponse>;
188
+ fetchAgentInfo(): Promise<GetAgentInfoResponse>;
189
+ sendMessage(text: string, responseTimeout?: number): Promise<SendMessageResponse>;
190
+ fetchRtcStats(): Promise<GetRTCStatsResponse>;
191
+ fetchSessionUsage(): Promise<GetSessionUsageResponse>;
192
+ private trackTask;
193
+ }
194
+ export {};
195
+ //# sourceMappingURL=client_events.d.ts.map
@@ -0,0 +1,195 @@
1
+ import type { Room, TextStreamInfo } from '@livekit/rtc-node';
2
+ import type { TypedEventEmitter } from '@livekit/typed-emitter';
3
+ import type { z } from 'zod';
4
+ import type { AgentSession } from './agent_session.js';
5
+ import type { RoomIO } from './room_io/room_io.js';
6
+ import { type clientAgentStateChangedSchema, type clientConversationItemAddedSchema, type clientErrorSchema, clientEventSchema, type clientFunctionToolsExecutedSchema, type clientMetricsCollectedSchema, type clientSessionUsageSchema, type clientUserInputTranscribedSchema, type clientUserOverlappingSpeechSchema, type clientUserStateChangedSchema, getAgentInfoResponseSchema, getChatHistoryResponseSchema, getRTCStatsResponseSchema, getSessionStateResponseSchema, getSessionUsageResponseSchema, sendMessageRequestSchema, sendMessageResponseSchema, streamRequestSchema, streamResponseSchema } from './wire_format.js';
7
+ /** @experimental */
8
+ export type ClientAgentStateChangedEvent = z.infer<typeof clientAgentStateChangedSchema>;
9
+ /** @experimental */
10
+ export type ClientUserStateChangedEvent = z.infer<typeof clientUserStateChangedSchema>;
11
+ /** @experimental */
12
+ export type ClientConversationItemAddedEvent = z.infer<typeof clientConversationItemAddedSchema>;
13
+ /** @experimental */
14
+ export type ClientUserInputTranscribedEvent = z.infer<typeof clientUserInputTranscribedSchema>;
15
+ /** @experimental */
16
+ export type ClientFunctionToolsExecutedEvent = z.infer<typeof clientFunctionToolsExecutedSchema>;
17
+ /** @experimental */
18
+ export type ClientMetricsCollectedEvent = z.infer<typeof clientMetricsCollectedSchema>;
19
+ /** @experimental */
20
+ export type ClientErrorEvent = z.infer<typeof clientErrorSchema>;
21
+ /** @experimental */
22
+ export type ClientUserOverlappingSpeechEvent = z.infer<typeof clientUserOverlappingSpeechSchema>;
23
+ /** @experimental */
24
+ export type ClientSessionUsageEvent = z.infer<typeof clientSessionUsageSchema>;
25
+ /** @experimental */
26
+ export type ClientEvent = z.infer<typeof clientEventSchema>;
27
+ /** @experimental */
28
+ export type ClientEventType = ClientEvent['type'];
29
+ /** @experimental */
30
+ export type StreamRequest = z.infer<typeof streamRequestSchema>;
31
+ /** @experimental */
32
+ export type StreamResponse = z.infer<typeof streamResponseSchema>;
33
+ /** @experimental */
34
+ export type GetSessionStateRequest = Record<string, never>;
35
+ /** @experimental */
36
+ export type GetSessionStateResponse = z.infer<typeof getSessionStateResponseSchema>;
37
+ /** @experimental */
38
+ export type GetChatHistoryRequest = Record<string, never>;
39
+ /** @experimental */
40
+ export type GetChatHistoryResponse = z.infer<typeof getChatHistoryResponseSchema>;
41
+ /** @experimental */
42
+ export type GetAgentInfoRequest = Record<string, never>;
43
+ /** @experimental */
44
+ export type GetAgentInfoResponse = z.infer<typeof getAgentInfoResponseSchema>;
45
+ /** @experimental */
46
+ export type SendMessageRequest = z.infer<typeof sendMessageRequestSchema>;
47
+ /** @experimental */
48
+ export type SendMessageResponse = z.infer<typeof sendMessageResponseSchema>;
49
+ /** @experimental */
50
+ export type GetRTCStatsRequest = Record<string, never>;
51
+ /** @experimental */
52
+ export type GetRTCStatsResponse = z.infer<typeof getRTCStatsResponseSchema>;
53
+ /** @experimental */
54
+ export type GetSessionUsageRequest = Record<string, never>;
55
+ /** @experimental */
56
+ export type GetSessionUsageResponse = z.infer<typeof getSessionUsageResponseSchema>;
57
+ /** @experimental */
58
+ export type RemoteSessionEventTypes = 'agent_state_changed' | 'user_state_changed' | 'conversation_item_added' | 'user_input_transcribed' | 'function_tools_executed' | 'metrics_collected' | 'user_overlapping_speech' | 'session_usage' | 'error';
59
+ /** @experimental */
60
+ export type RemoteSessionCallbacks = {
61
+ agent_state_changed: (ev: ClientAgentStateChangedEvent) => void;
62
+ user_state_changed: (ev: ClientUserStateChangedEvent) => void;
63
+ conversation_item_added: (ev: ClientConversationItemAddedEvent) => void;
64
+ user_input_transcribed: (ev: ClientUserInputTranscribedEvent) => void;
65
+ function_tools_executed: (ev: ClientFunctionToolsExecutedEvent) => void;
66
+ metrics_collected: (ev: ClientMetricsCollectedEvent) => void;
67
+ user_overlapping_speech: (ev: ClientUserOverlappingSpeechEvent) => void;
68
+ session_usage: (ev: ClientSessionUsageEvent) => void;
69
+ error: (ev: ClientErrorEvent) => void;
70
+ };
71
+ export interface TextInputEvent {
72
+ text: string;
73
+ info: TextStreamInfo;
74
+ participantIdentity: string;
75
+ }
76
+ export type TextInputCallback = (session: AgentSession, ev: TextInputEvent) => void | Promise<void>;
77
+ /**
78
+ * Handles exposing AgentSession state to room participants and allows interaction.
79
+ *
80
+ * This class provides:
81
+ * - Event streaming: Automatically streams AgentSession events to clients via a text stream
82
+ * - RPC handlers: Allows clients to request state, chat history, and agent info on demand
83
+ * - Text input handling: Receives text messages from clients and generates agent replies
84
+ */
85
+ /** @experimental */
86
+ export declare class ClientEventsHandler {
87
+ private readonly session;
88
+ private readonly roomIO;
89
+ private textInputCb?;
90
+ private textStreamHandlerRegistered;
91
+ private rpcHandlersRegistered;
92
+ private requestHandlerRegistered;
93
+ private eventHandlersRegistered;
94
+ private started;
95
+ private readonly tasks;
96
+ private readonly logger;
97
+ constructor(session: AgentSession, roomIO: RoomIO);
98
+ private get room();
99
+ start(): Promise<void>;
100
+ close(): Promise<void>;
101
+ /**
102
+ * Registers a callback to handle text input from clients.
103
+ *
104
+ * This callback will be called when a client sends a text message to the agent.
105
+ * The callback should return a promise that resolves when the text input has been processed.
106
+ *
107
+ * @param textInputCb - The callback to handle text input.
108
+ */
109
+ registerTextInput(textInputCb: TextInputCallback): void;
110
+ private registerRpcHandlers;
111
+ private registerRequestHandler;
112
+ private registerEventHandlers;
113
+ private onStreamRequest;
114
+ private handleStreamRequest;
115
+ private streamGetSessionState;
116
+ private streamGetChatHistory;
117
+ private streamGetAgentInfo;
118
+ private streamSendMessage;
119
+ private streamGetRtcStats;
120
+ private streamGetSessionUsage;
121
+ private onUserOverlapSpeech;
122
+ private onAgentStateChanged;
123
+ private onUserStateChanged;
124
+ private onConversationItemAdded;
125
+ private onUserInputTranscribed;
126
+ private onFunctionToolsExecuted;
127
+ private onMetricsCollected;
128
+ private onError;
129
+ private getTargetIdentities;
130
+ private streamClientEvent;
131
+ private sendClientEvent;
132
+ private rpcGetSessionState;
133
+ private rpcGetChatHistory;
134
+ private rpcGetAgentInfo;
135
+ private rpcSendMessage;
136
+ private onUserTextInput;
137
+ private trackTask;
138
+ }
139
+ declare const RemoteSession_base: new () => TypedEventEmitter<RemoteSessionCallbacks>;
140
+ /**
141
+ * Client-side interface to interact with a remote AgentSession.
142
+ *
143
+ * This class allows frontends/clients to:
144
+ * - Subscribe to real-time events from the agent session
145
+ * - Query session state, chat history, and agent info via RPC
146
+ * - Send messages to the agent
147
+ *
148
+ * Example:
149
+ * ```typescript
150
+ * const session = new RemoteSession(room, agentIdentity);
151
+ * session.on('agent_state_changed', (event) => {
152
+ * console.log('Agent state changed:', event.new_state);
153
+ * });
154
+ * session.on('user_state_changed', (event) => {
155
+ * console.log('User state changed:', event.new_state);
156
+ * });
157
+ * session.on('conversation_item_added', (event) => {
158
+ * console.log('Conversation item added:', event.item);
159
+ * });
160
+ * await session.start();
161
+ *
162
+ * const state = await session.fetchSessionState();
163
+ * console.log('Session state:', state);
164
+ *
165
+ * const response = await session.sendMessage('Hello!');
166
+ * console.log('Response:', response);
167
+ * ```
168
+ */
169
+ /** @experimental */
170
+ export declare class RemoteSession extends RemoteSession_base {
171
+ private readonly room;
172
+ private readonly agentIdentity;
173
+ private started;
174
+ private readonly tasks;
175
+ private readonly pendingRequests;
176
+ private readonly logger;
177
+ constructor(room: Room, agentIdentity: string);
178
+ start(): Promise<void>;
179
+ close(): Promise<void>;
180
+ private onEventStream;
181
+ private onResponseStream;
182
+ private readResponse;
183
+ private readEvent;
184
+ private parseEvent;
185
+ private sendRequest;
186
+ fetchSessionState(): Promise<GetSessionStateResponse>;
187
+ fetchChatHistory(): Promise<GetChatHistoryResponse>;
188
+ fetchAgentInfo(): Promise<GetAgentInfoResponse>;
189
+ sendMessage(text: string, responseTimeout?: number): Promise<SendMessageResponse>;
190
+ fetchRtcStats(): Promise<GetRTCStatsResponse>;
191
+ fetchSessionUsage(): Promise<GetSessionUsageResponse>;
192
+ private trackTask;
193
+ }
194
+ export {};
195
+ //# sourceMappingURL=client_events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client_events.d.ts","sourceRoot":"","sources":["../../src/voice/client_events.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAqB,cAAc,EAAoB,MAAM,mBAAmB,CAAC;AACnG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAe7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAWvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAKL,KAAK,6BAA6B,EAClC,KAAK,iCAAiC,EACtC,KAAK,iBAAiB,EACtB,iBAAiB,EACjB,KAAK,iCAAiC,EACtC,KAAK,4BAA4B,EACjC,KAAK,wBAAwB,EAC7B,KAAK,gCAAgC,EACrC,KAAK,iCAAiC,EACtC,KAAK,4BAA4B,EAGjC,0BAA0B,EAC1B,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,EAC7B,6BAA6B,EAE7B,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAE1B,oBAAoB;AACpB,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEzF,oBAAoB;AACpB,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEvF,oBAAoB;AACpB,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAEjG,oBAAoB;AACpB,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE/F,oBAAoB;AACpB,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAEjG,oBAAoB;AACpB,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEvF,oBAAoB;AACpB,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,oBAAoB;AACpB,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAEjG,oBAAoB;AACpB,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE/E,oBAAoB;AACpB,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,oBAAoB;AACpB,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAElD,oBAAoB;AACpB,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,oBAAoB;AACpB,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,oBAAoB;AACpB,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE3D,oBAAoB;AACpB,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,oBAAoB;AACpB,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE1D,oBAAoB;AACpB,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,oBAAoB;AACpB,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAExD,oBAAoB;AACpB,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,oBAAoB;AACpB,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,oBAAoB;AACpB,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,oBAAoB;AACpB,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEvD,oBAAoB;AACpB,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,oBAAoB;AACpB,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE3D,oBAAoB;AACpB,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AA2BpF,oBAAoB;AACpB,MAAM,MAAM,uBAAuB,GAC/B,qBAAqB,GACrB,oBAAoB,GACpB,yBAAyB,GACzB,wBAAwB,GACxB,yBAAyB,GACzB,mBAAmB,GACnB,yBAAyB,GACzB,eAAe,GACf,OAAO,CAAC;AAEZ,oBAAoB;AACpB,MAAM,MAAM,sBAAsB,GAAG;IACnC,mBAAmB,EAAE,CAAC,EAAE,EAAE,4BAA4B,KAAK,IAAI,CAAC;IAChE,kBAAkB,EAAE,CAAC,EAAE,EAAE,2BAA2B,KAAK,IAAI,CAAC;IAC9D,uBAAuB,EAAE,CAAC,EAAE,EAAE,gCAAgC,KAAK,IAAI,CAAC;IACxE,sBAAsB,EAAE,CAAC,EAAE,EAAE,+BAA+B,KAAK,IAAI,CAAC;IACtE,uBAAuB,EAAE,CAAC,EAAE,EAAE,gCAAgC,KAAK,IAAI,CAAC;IACxE,iBAAiB,EAAE,CAAC,EAAE,EAAE,2BAA2B,KAAK,IAAI,CAAC;IAC7D,uBAAuB,EAAE,CAAC,EAAE,EAAE,gCAAgC,KAAK,IAAI,CAAC;IACxE,aAAa,EAAE,CAAC,EAAE,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACrD,KAAK,EAAE,CAAC,EAAE,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACvC,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpG;;;;;;;GAOG;AAEH,oBAAoB;AACpB,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,OAAO,CAAC,WAAW,CAAC,CAAoB;IACxC,OAAO,CAAC,2BAA2B,CAAS;IAC5C,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;IAKjD,OAAO,KAAK,IAAI,GAEf;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyC5B;;;;;;;OAOG;IACH,iBAAiB,CAAC,WAAW,EAAE,iBAAiB,GAAG,IAAI;IAOvD,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,eAAe,CAMrB;YAEY,mBAAmB;YAsDnB,qBAAqB;YAmBrB,oBAAoB;YAMpB,kBAAkB;YAUlB,iBAAiB;YASjB,iBAAiB;YAQjB,qBAAqB;IAOnC,OAAO,CAAC,mBAAmB,CAUzB;IAEF,OAAO,CAAC,mBAAmB,CAQzB;IAEF,OAAO,CAAC,kBAAkB,CAQxB;IAEF,OAAO,CAAC,uBAAuB,CAS7B;IAEF,OAAO,CAAC,sBAAsB,CAQ5B;IAEF,OAAO,CAAC,uBAAuB,CAe7B;IAEF,OAAO,CAAC,kBAAkB,CAYxB;IAEF,OAAO,CAAC,OAAO,CAOb;IAEF,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,iBAAiB;YAKX,eAAe;IAqB7B,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,iBAAiB,CAEvB;IAEF,OAAO,CAAC,eAAe,CAErB;IAEF,OAAO,CAAC,cAAc,CAEpB;IAEF,OAAO,CAAC,eAAe,CAkCrB;IAEF,OAAO,CAAC,SAAS;CAMlB;4CAiC6D,kBAAkB,sBAAsB,CAAC;AA/BvG;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,oBAAoB;AACpB,qBAAa,aAAc,SAAQ,kBAAqE;IACtG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAO;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6C;IAC7E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM;IAMvC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB5B,OAAO,CAAC,aAAa,CAMnB;IAEF,OAAO,CAAC,gBAAgB,CAMtB;YAEY,YAAY;YAcZ,SAAS;IAYvB,OAAO,CAAC,UAAU;YAcJ,WAAW;IAwCnB,iBAAiB,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAKrD,gBAAgB,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAKnD,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAK/C,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,SAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAMhF,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAK7C,iBAAiB,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAK3D,OAAO,CAAC,SAAS;CAMlB"}