@livekit/agents 0.7.9 → 1.0.0-next.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 (627) hide show
  1. package/dist/_exceptions.cjs +109 -0
  2. package/dist/_exceptions.cjs.map +1 -0
  3. package/dist/_exceptions.d.cts +64 -0
  4. package/dist/_exceptions.d.ts +64 -0
  5. package/dist/_exceptions.d.ts.map +1 -0
  6. package/dist/_exceptions.js +80 -0
  7. package/dist/_exceptions.js.map +1 -0
  8. package/dist/audio.cjs +10 -3
  9. package/dist/audio.cjs.map +1 -1
  10. package/dist/audio.d.cts +2 -0
  11. package/dist/audio.d.ts +2 -0
  12. package/dist/audio.d.ts.map +1 -1
  13. package/dist/audio.js +8 -2
  14. package/dist/audio.js.map +1 -1
  15. package/dist/cli.cjs +25 -0
  16. package/dist/cli.cjs.map +1 -1
  17. package/dist/cli.d.ts.map +1 -1
  18. package/dist/cli.js +25 -0
  19. package/dist/cli.js.map +1 -1
  20. package/dist/constants.cjs +6 -3
  21. package/dist/constants.cjs.map +1 -1
  22. package/dist/constants.d.cts +2 -1
  23. package/dist/constants.d.ts +2 -1
  24. package/dist/constants.d.ts.map +1 -1
  25. package/dist/constants.js +4 -2
  26. package/dist/constants.js.map +1 -1
  27. package/dist/http_server.cjs.map +1 -1
  28. package/dist/http_server.d.cts +1 -0
  29. package/dist/http_server.d.ts +1 -0
  30. package/dist/http_server.d.ts.map +1 -1
  31. package/dist/http_server.js.map +1 -1
  32. package/dist/index.cjs +27 -20
  33. package/dist/index.cjs.map +1 -1
  34. package/dist/index.d.cts +13 -10
  35. package/dist/index.d.ts +13 -10
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +15 -11
  38. package/dist/index.js.map +1 -1
  39. package/dist/inference_runner.cjs +0 -1
  40. package/dist/inference_runner.cjs.map +1 -1
  41. package/dist/inference_runner.d.cts +2 -3
  42. package/dist/inference_runner.d.ts +2 -3
  43. package/dist/inference_runner.d.ts.map +1 -1
  44. package/dist/inference_runner.js +0 -1
  45. package/dist/inference_runner.js.map +1 -1
  46. package/dist/ipc/inference_proc_executor.cjs +2 -2
  47. package/dist/ipc/inference_proc_executor.cjs.map +1 -1
  48. package/dist/ipc/inference_proc_executor.js +2 -2
  49. package/dist/ipc/inference_proc_executor.js.map +1 -1
  50. package/dist/ipc/job_executor.cjs.map +1 -1
  51. package/dist/ipc/job_executor.js.map +1 -1
  52. package/dist/ipc/job_proc_executor.cjs +1 -0
  53. package/dist/ipc/job_proc_executor.cjs.map +1 -1
  54. package/dist/ipc/job_proc_executor.js +1 -0
  55. package/dist/ipc/job_proc_executor.js.map +1 -1
  56. package/dist/ipc/job_proc_lazy_main.cjs +1 -1
  57. package/dist/ipc/job_proc_lazy_main.cjs.map +1 -1
  58. package/dist/ipc/job_proc_lazy_main.js +1 -1
  59. package/dist/ipc/job_proc_lazy_main.js.map +1 -1
  60. package/dist/ipc/supervised_proc.d.cts +1 -1
  61. package/dist/ipc/supervised_proc.d.ts +1 -1
  62. package/dist/ipc/supervised_proc.d.ts.map +1 -1
  63. package/dist/job.cjs +14 -2
  64. package/dist/job.cjs.map +1 -1
  65. package/dist/job.d.cts +8 -0
  66. package/dist/job.d.ts +8 -0
  67. package/dist/job.d.ts.map +1 -1
  68. package/dist/job.js +12 -1
  69. package/dist/job.js.map +1 -1
  70. package/dist/llm/chat_context.cjs +332 -82
  71. package/dist/llm/chat_context.cjs.map +1 -1
  72. package/dist/llm/chat_context.d.cts +152 -48
  73. package/dist/llm/chat_context.d.ts +152 -48
  74. package/dist/llm/chat_context.d.ts.map +1 -1
  75. package/dist/llm/chat_context.js +327 -81
  76. package/dist/llm/chat_context.js.map +1 -1
  77. package/dist/llm/chat_context.test.cjs +380 -0
  78. package/dist/llm/chat_context.test.cjs.map +1 -0
  79. package/dist/llm/chat_context.test.js +385 -0
  80. package/dist/llm/chat_context.test.js.map +1 -0
  81. package/dist/llm/index.cjs +37 -8
  82. package/dist/llm/index.cjs.map +1 -1
  83. package/dist/llm/index.d.cts +7 -3
  84. package/dist/llm/index.d.ts +7 -3
  85. package/dist/llm/index.d.ts.map +1 -1
  86. package/dist/llm/index.js +39 -9
  87. package/dist/llm/index.js.map +1 -1
  88. package/dist/llm/llm.cjs +98 -33
  89. package/dist/llm/llm.cjs.map +1 -1
  90. package/dist/llm/llm.d.cts +50 -24
  91. package/dist/llm/llm.d.ts +50 -24
  92. package/dist/llm/llm.d.ts.map +1 -1
  93. package/dist/llm/llm.js +99 -33
  94. package/dist/llm/llm.js.map +1 -1
  95. package/dist/llm/provider_format/google.cjs +128 -0
  96. package/dist/llm/provider_format/google.cjs.map +1 -0
  97. package/dist/llm/provider_format/google.d.cts +6 -0
  98. package/dist/llm/provider_format/google.d.ts +6 -0
  99. package/dist/llm/provider_format/google.d.ts.map +1 -0
  100. package/dist/llm/provider_format/google.js +104 -0
  101. package/dist/llm/provider_format/google.js.map +1 -0
  102. package/dist/llm/provider_format/google.test.cjs +676 -0
  103. package/dist/llm/provider_format/google.test.cjs.map +1 -0
  104. package/dist/llm/provider_format/google.test.js +675 -0
  105. package/dist/llm/provider_format/google.test.js.map +1 -0
  106. package/dist/llm/provider_format/index.cjs +40 -0
  107. package/dist/llm/provider_format/index.cjs.map +1 -0
  108. package/dist/llm/provider_format/index.d.cts +4 -0
  109. package/dist/llm/provider_format/index.d.ts +4 -0
  110. package/dist/llm/provider_format/index.d.ts.map +1 -0
  111. package/dist/llm/provider_format/index.js +16 -0
  112. package/dist/llm/provider_format/index.js.map +1 -0
  113. package/dist/llm/provider_format/openai.cjs +116 -0
  114. package/dist/llm/provider_format/openai.cjs.map +1 -0
  115. package/dist/llm/provider_format/openai.d.cts +3 -0
  116. package/dist/llm/provider_format/openai.d.ts +3 -0
  117. package/dist/llm/provider_format/openai.d.ts.map +1 -0
  118. package/dist/llm/provider_format/openai.js +92 -0
  119. package/dist/llm/provider_format/openai.js.map +1 -0
  120. package/dist/llm/provider_format/openai.test.cjs +490 -0
  121. package/dist/llm/provider_format/openai.test.cjs.map +1 -0
  122. package/dist/llm/provider_format/openai.test.js +489 -0
  123. package/dist/llm/provider_format/openai.test.js.map +1 -0
  124. package/dist/llm/provider_format/utils.cjs +146 -0
  125. package/dist/llm/provider_format/utils.cjs.map +1 -0
  126. package/dist/llm/provider_format/utils.d.cts +38 -0
  127. package/dist/llm/provider_format/utils.d.ts +38 -0
  128. package/dist/llm/provider_format/utils.d.ts.map +1 -0
  129. package/dist/llm/provider_format/utils.js +122 -0
  130. package/dist/llm/provider_format/utils.js.map +1 -0
  131. package/dist/llm/realtime.cjs +77 -0
  132. package/dist/llm/realtime.cjs.map +1 -0
  133. package/dist/llm/realtime.d.cts +98 -0
  134. package/dist/llm/realtime.d.ts +98 -0
  135. package/dist/llm/realtime.d.ts.map +1 -0
  136. package/dist/llm/realtime.js +52 -0
  137. package/dist/llm/realtime.js.map +1 -0
  138. package/dist/llm/remote_chat_context.cjs +112 -0
  139. package/dist/llm/remote_chat_context.cjs.map +1 -0
  140. package/dist/llm/remote_chat_context.d.cts +23 -0
  141. package/dist/llm/remote_chat_context.d.ts +23 -0
  142. package/dist/llm/remote_chat_context.d.ts.map +1 -0
  143. package/dist/llm/remote_chat_context.js +88 -0
  144. package/dist/llm/remote_chat_context.js.map +1 -0
  145. package/dist/llm/remote_chat_context.test.cjs +225 -0
  146. package/dist/llm/remote_chat_context.test.cjs.map +1 -0
  147. package/dist/llm/remote_chat_context.test.js +224 -0
  148. package/dist/llm/remote_chat_context.test.js.map +1 -0
  149. package/dist/llm/tool_context.cjs +111 -0
  150. package/dist/llm/tool_context.cjs.map +1 -0
  151. package/dist/llm/tool_context.d.cts +125 -0
  152. package/dist/llm/tool_context.d.ts +125 -0
  153. package/dist/llm/tool_context.d.ts.map +1 -0
  154. package/dist/llm/tool_context.js +80 -0
  155. package/dist/llm/tool_context.js.map +1 -0
  156. package/dist/llm/tool_context.test.cjs +162 -0
  157. package/dist/llm/tool_context.test.cjs.map +1 -0
  158. package/dist/llm/tool_context.test.js +161 -0
  159. package/dist/llm/tool_context.test.js.map +1 -0
  160. package/dist/llm/tool_context.type.test.cjs +92 -0
  161. package/dist/llm/tool_context.type.test.cjs.map +1 -0
  162. package/dist/llm/tool_context.type.test.js +91 -0
  163. package/dist/llm/tool_context.type.test.js.map +1 -0
  164. package/dist/llm/utils.cjs +260 -0
  165. package/dist/llm/utils.cjs.map +1 -0
  166. package/dist/llm/utils.d.cts +42 -0
  167. package/dist/llm/utils.d.ts +42 -0
  168. package/dist/llm/utils.d.ts.map +1 -0
  169. package/dist/llm/utils.js +223 -0
  170. package/dist/llm/utils.js.map +1 -0
  171. package/dist/llm/utils.test.cjs +513 -0
  172. package/dist/llm/utils.test.cjs.map +1 -0
  173. package/dist/llm/utils.test.js +490 -0
  174. package/dist/llm/utils.test.js.map +1 -0
  175. package/dist/metrics/base.cjs +0 -27
  176. package/dist/metrics/base.cjs.map +1 -1
  177. package/dist/metrics/base.d.cts +105 -63
  178. package/dist/metrics/base.d.ts +105 -63
  179. package/dist/metrics/base.d.ts.map +1 -1
  180. package/dist/metrics/base.js +0 -19
  181. package/dist/metrics/base.js.map +1 -1
  182. package/dist/metrics/index.cjs +0 -3
  183. package/dist/metrics/index.cjs.map +1 -1
  184. package/dist/metrics/index.d.cts +2 -3
  185. package/dist/metrics/index.d.ts +2 -3
  186. package/dist/metrics/index.d.ts.map +1 -1
  187. package/dist/metrics/index.js +0 -2
  188. package/dist/metrics/index.js.map +1 -1
  189. package/dist/metrics/usage_collector.cjs +17 -12
  190. package/dist/metrics/usage_collector.cjs.map +1 -1
  191. package/dist/metrics/usage_collector.d.cts +3 -2
  192. package/dist/metrics/usage_collector.d.ts +3 -2
  193. package/dist/metrics/usage_collector.d.ts.map +1 -1
  194. package/dist/metrics/usage_collector.js +17 -12
  195. package/dist/metrics/usage_collector.js.map +1 -1
  196. package/dist/metrics/utils.cjs +22 -59
  197. package/dist/metrics/utils.cjs.map +1 -1
  198. package/dist/metrics/utils.d.cts +1 -8
  199. package/dist/metrics/utils.d.ts +1 -8
  200. package/dist/metrics/utils.d.ts.map +1 -1
  201. package/dist/metrics/utils.js +22 -52
  202. package/dist/metrics/utils.js.map +1 -1
  203. package/dist/multimodal/index.cjs +0 -2
  204. package/dist/multimodal/index.cjs.map +1 -1
  205. package/dist/multimodal/index.d.cts +0 -1
  206. package/dist/multimodal/index.d.ts +0 -1
  207. package/dist/multimodal/index.d.ts.map +1 -1
  208. package/dist/multimodal/index.js +0 -1
  209. package/dist/multimodal/index.js.map +1 -1
  210. package/dist/plugin.cjs +24 -8
  211. package/dist/plugin.cjs.map +1 -1
  212. package/dist/plugin.d.cts +18 -4
  213. package/dist/plugin.d.ts +18 -4
  214. package/dist/plugin.d.ts.map +1 -1
  215. package/dist/plugin.js +22 -7
  216. package/dist/plugin.js.map +1 -1
  217. package/dist/stream/deferred_stream.cjs +98 -0
  218. package/dist/stream/deferred_stream.cjs.map +1 -0
  219. package/dist/stream/deferred_stream.d.cts +27 -0
  220. package/dist/stream/deferred_stream.d.ts +27 -0
  221. package/dist/stream/deferred_stream.d.ts.map +1 -0
  222. package/dist/stream/deferred_stream.js +73 -0
  223. package/dist/stream/deferred_stream.js.map +1 -0
  224. package/dist/stream/deferred_stream.test.cjs +527 -0
  225. package/dist/stream/deferred_stream.test.cjs.map +1 -0
  226. package/dist/stream/deferred_stream.test.js +526 -0
  227. package/dist/stream/deferred_stream.test.js.map +1 -0
  228. package/dist/stream/identity_transform.cjs +42 -0
  229. package/dist/stream/identity_transform.cjs.map +1 -0
  230. package/dist/stream/identity_transform.d.cts +6 -0
  231. package/dist/stream/identity_transform.d.ts +6 -0
  232. package/dist/stream/identity_transform.d.ts.map +1 -0
  233. package/dist/stream/identity_transform.js +18 -0
  234. package/dist/stream/identity_transform.js.map +1 -0
  235. package/dist/stream/identity_transform.test.cjs +125 -0
  236. package/dist/stream/identity_transform.test.cjs.map +1 -0
  237. package/dist/stream/identity_transform.test.js +124 -0
  238. package/dist/stream/identity_transform.test.js.map +1 -0
  239. package/dist/stream/index.cjs +38 -0
  240. package/dist/stream/index.cjs.map +1 -0
  241. package/dist/stream/index.d.cts +5 -0
  242. package/dist/stream/index.d.ts +5 -0
  243. package/dist/stream/index.d.ts.map +1 -0
  244. package/dist/stream/index.js +11 -0
  245. package/dist/stream/index.js.map +1 -0
  246. package/dist/stream/merge_readable_streams.cjs +59 -0
  247. package/dist/stream/merge_readable_streams.cjs.map +1 -0
  248. package/dist/stream/merge_readable_streams.d.cts +4 -0
  249. package/dist/stream/merge_readable_streams.d.ts +4 -0
  250. package/dist/stream/merge_readable_streams.d.ts.map +1 -0
  251. package/dist/stream/merge_readable_streams.js +35 -0
  252. package/dist/stream/merge_readable_streams.js.map +1 -0
  253. package/dist/stream/stream_channel.cjs +47 -0
  254. package/dist/stream/stream_channel.cjs.map +1 -0
  255. package/dist/stream/stream_channel.d.cts +9 -0
  256. package/dist/stream/stream_channel.d.ts +9 -0
  257. package/dist/stream/stream_channel.d.ts.map +1 -0
  258. package/dist/stream/stream_channel.js +23 -0
  259. package/dist/stream/stream_channel.js.map +1 -0
  260. package/dist/stream/stream_channel.test.cjs +97 -0
  261. package/dist/stream/stream_channel.test.cjs.map +1 -0
  262. package/dist/stream/stream_channel.test.js +96 -0
  263. package/dist/stream/stream_channel.test.js.map +1 -0
  264. package/dist/stt/stream_adapter.cjs +3 -4
  265. package/dist/stt/stream_adapter.cjs.map +1 -1
  266. package/dist/stt/stream_adapter.d.cts +1 -0
  267. package/dist/stt/stream_adapter.d.ts +1 -0
  268. package/dist/stt/stream_adapter.d.ts.map +1 -1
  269. package/dist/stt/stream_adapter.js +3 -4
  270. package/dist/stt/stream_adapter.js.map +1 -1
  271. package/dist/stt/stt.cjs +101 -10
  272. package/dist/stt/stt.cjs.map +1 -1
  273. package/dist/stt/stt.d.cts +26 -5
  274. package/dist/stt/stt.d.ts +26 -5
  275. package/dist/stt/stt.d.ts.map +1 -1
  276. package/dist/stt/stt.js +102 -11
  277. package/dist/stt/stt.js.map +1 -1
  278. package/dist/tokenize/basic/basic.cjs +10 -5
  279. package/dist/tokenize/basic/basic.cjs.map +1 -1
  280. package/dist/tokenize/basic/basic.d.cts +7 -1
  281. package/dist/tokenize/basic/basic.d.ts +7 -1
  282. package/dist/tokenize/basic/basic.d.ts.map +1 -1
  283. package/dist/tokenize/basic/basic.js +10 -5
  284. package/dist/tokenize/basic/basic.js.map +1 -1
  285. package/dist/tokenize/basic/sentence.cjs +14 -6
  286. package/dist/tokenize/basic/sentence.cjs.map +1 -1
  287. package/dist/tokenize/basic/sentence.d.cts +1 -1
  288. package/dist/tokenize/basic/sentence.d.ts +1 -1
  289. package/dist/tokenize/basic/sentence.d.ts.map +1 -1
  290. package/dist/tokenize/basic/sentence.js +14 -6
  291. package/dist/tokenize/basic/sentence.js.map +1 -1
  292. package/dist/tokenize/token_stream.cjs +5 -3
  293. package/dist/tokenize/token_stream.cjs.map +1 -1
  294. package/dist/tokenize/token_stream.d.cts +1 -0
  295. package/dist/tokenize/token_stream.d.ts +1 -0
  296. package/dist/tokenize/token_stream.d.ts.map +1 -1
  297. package/dist/tokenize/token_stream.js +6 -4
  298. package/dist/tokenize/token_stream.js.map +1 -1
  299. package/dist/transcription.cjs +1 -2
  300. package/dist/transcription.cjs.map +1 -1
  301. package/dist/transcription.d.ts.map +1 -1
  302. package/dist/transcription.js +2 -3
  303. package/dist/transcription.js.map +1 -1
  304. package/dist/tts/index.cjs +2 -4
  305. package/dist/tts/index.cjs.map +1 -1
  306. package/dist/tts/index.d.cts +1 -1
  307. package/dist/tts/index.d.ts +1 -1
  308. package/dist/tts/index.d.ts.map +1 -1
  309. package/dist/tts/index.js +1 -3
  310. package/dist/tts/index.js.map +1 -1
  311. package/dist/tts/stream_adapter.cjs +26 -13
  312. package/dist/tts/stream_adapter.cjs.map +1 -1
  313. package/dist/tts/stream_adapter.d.cts +1 -1
  314. package/dist/tts/stream_adapter.d.ts +1 -1
  315. package/dist/tts/stream_adapter.d.ts.map +1 -1
  316. package/dist/tts/stream_adapter.js +27 -14
  317. package/dist/tts/stream_adapter.js.map +1 -1
  318. package/dist/tts/tts.cjs +157 -25
  319. package/dist/tts/tts.cjs.map +1 -1
  320. package/dist/tts/tts.d.cts +29 -5
  321. package/dist/tts/tts.d.ts +29 -5
  322. package/dist/tts/tts.d.ts.map +1 -1
  323. package/dist/tts/tts.js +157 -24
  324. package/dist/tts/tts.js.map +1 -1
  325. package/dist/types.cjs +60 -0
  326. package/dist/types.cjs.map +1 -0
  327. package/dist/types.d.cts +13 -0
  328. package/dist/types.d.ts +13 -0
  329. package/dist/types.d.ts.map +1 -0
  330. package/dist/types.js +35 -0
  331. package/dist/types.js.map +1 -0
  332. package/dist/utils.cjs +281 -27
  333. package/dist/utils.cjs.map +1 -1
  334. package/dist/utils.d.cts +134 -9
  335. package/dist/utils.d.ts +134 -9
  336. package/dist/utils.d.ts.map +1 -1
  337. package/dist/utils.js +265 -26
  338. package/dist/utils.js.map +1 -1
  339. package/dist/utils.test.cjs +492 -0
  340. package/dist/utils.test.cjs.map +1 -0
  341. package/dist/utils.test.js +498 -0
  342. package/dist/utils.test.js.map +1 -0
  343. package/dist/vad.cjs +76 -20
  344. package/dist/vad.cjs.map +1 -1
  345. package/dist/vad.d.cts +25 -5
  346. package/dist/vad.d.ts +25 -5
  347. package/dist/vad.d.ts.map +1 -1
  348. package/dist/vad.js +76 -20
  349. package/dist/vad.js.map +1 -1
  350. package/dist/voice/agent.cjs +245 -0
  351. package/dist/voice/agent.cjs.map +1 -0
  352. package/dist/voice/agent.d.cts +78 -0
  353. package/dist/voice/agent.d.ts +78 -0
  354. package/dist/voice/agent.d.ts.map +1 -0
  355. package/dist/voice/agent.js +220 -0
  356. package/dist/voice/agent.js.map +1 -0
  357. package/dist/voice/agent.test.cjs +61 -0
  358. package/dist/voice/agent.test.cjs.map +1 -0
  359. package/dist/voice/agent.test.js +60 -0
  360. package/dist/voice/agent.test.js.map +1 -0
  361. package/dist/voice/agent_activity.cjs +1453 -0
  362. package/dist/voice/agent_activity.cjs.map +1 -0
  363. package/dist/voice/agent_activity.d.cts +94 -0
  364. package/dist/voice/agent_activity.d.ts +94 -0
  365. package/dist/voice/agent_activity.d.ts.map +1 -0
  366. package/dist/voice/agent_activity.js +1449 -0
  367. package/dist/voice/agent_activity.js.map +1 -0
  368. package/dist/voice/agent_session.cjs +312 -0
  369. package/dist/voice/agent_session.cjs.map +1 -0
  370. package/dist/voice/agent_session.d.cts +121 -0
  371. package/dist/voice/agent_session.d.ts +121 -0
  372. package/dist/voice/agent_session.d.ts.map +1 -0
  373. package/dist/voice/agent_session.js +295 -0
  374. package/dist/voice/agent_session.js.map +1 -0
  375. package/dist/voice/audio_recognition.cjs +375 -0
  376. package/dist/voice/audio_recognition.cjs.map +1 -0
  377. package/dist/voice/audio_recognition.d.cts +80 -0
  378. package/dist/voice/audio_recognition.d.ts +80 -0
  379. package/dist/voice/audio_recognition.d.ts.map +1 -0
  380. package/dist/voice/audio_recognition.js +351 -0
  381. package/dist/voice/audio_recognition.js.map +1 -0
  382. package/dist/voice/events.cjs +145 -0
  383. package/dist/voice/events.cjs.map +1 -0
  384. package/dist/voice/events.d.cts +124 -0
  385. package/dist/voice/events.d.ts +124 -0
  386. package/dist/voice/events.d.ts.map +1 -0
  387. package/dist/voice/events.js +110 -0
  388. package/dist/voice/events.js.map +1 -0
  389. package/dist/voice/generation.cjs +700 -0
  390. package/dist/voice/generation.cjs.map +1 -0
  391. package/dist/voice/generation.d.cts +115 -0
  392. package/dist/voice/generation.d.ts +115 -0
  393. package/dist/voice/generation.d.ts.map +1 -0
  394. package/dist/voice/generation.js +672 -0
  395. package/dist/voice/generation.js.map +1 -0
  396. package/dist/voice/index.cjs +40 -0
  397. package/dist/voice/index.cjs.map +1 -0
  398. package/dist/voice/index.d.cts +5 -0
  399. package/dist/voice/index.d.ts +5 -0
  400. package/dist/voice/index.d.ts.map +1 -0
  401. package/dist/voice/index.js +11 -0
  402. package/dist/voice/index.js.map +1 -0
  403. package/dist/voice/io.cjs +245 -0
  404. package/dist/voice/io.cjs.map +1 -0
  405. package/dist/voice/io.d.cts +101 -0
  406. package/dist/voice/io.d.ts +101 -0
  407. package/dist/voice/io.d.ts.map +1 -0
  408. package/dist/voice/io.js +217 -0
  409. package/dist/voice/io.js.map +1 -0
  410. package/dist/voice/room_io/_input.cjs +121 -0
  411. package/dist/voice/room_io/_input.cjs.map +1 -0
  412. package/dist/voice/room_io/_input.d.cts +24 -0
  413. package/dist/voice/room_io/_input.d.ts +24 -0
  414. package/dist/voice/room_io/_input.d.ts.map +1 -0
  415. package/dist/voice/room_io/_input.js +102 -0
  416. package/dist/voice/room_io/_input.js.map +1 -0
  417. package/dist/voice/room_io/_output.cjs +358 -0
  418. package/dist/voice/room_io/_output.cjs.map +1 -0
  419. package/dist/voice/room_io/_output.d.cts +75 -0
  420. package/dist/voice/room_io/_output.d.ts +75 -0
  421. package/dist/voice/room_io/_output.d.ts.map +1 -0
  422. package/dist/voice/room_io/_output.js +342 -0
  423. package/dist/voice/room_io/_output.js.map +1 -0
  424. package/dist/voice/room_io/index.cjs +25 -0
  425. package/dist/voice/room_io/index.cjs.map +1 -0
  426. package/dist/voice/room_io/index.d.cts +3 -0
  427. package/dist/voice/room_io/index.d.ts +3 -0
  428. package/dist/voice/room_io/index.d.ts.map +1 -0
  429. package/dist/voice/room_io/index.js +3 -0
  430. package/dist/voice/room_io/index.js.map +1 -0
  431. package/dist/voice/room_io/room_io.cjs +370 -0
  432. package/dist/voice/room_io/room_io.cjs.map +1 -0
  433. package/dist/voice/room_io/room_io.d.cts +73 -0
  434. package/dist/voice/room_io/room_io.d.ts +73 -0
  435. package/dist/voice/room_io/room_io.d.ts.map +1 -0
  436. package/dist/voice/room_io/room_io.js +361 -0
  437. package/dist/voice/room_io/room_io.js.map +1 -0
  438. package/dist/{pipeline/index.cjs → voice/run_context.cjs} +16 -11
  439. package/dist/voice/run_context.cjs.map +1 -0
  440. package/dist/voice/run_context.d.cts +12 -0
  441. package/dist/voice/run_context.d.ts +12 -0
  442. package/dist/voice/run_context.d.ts.map +1 -0
  443. package/dist/voice/run_context.js +14 -0
  444. package/dist/voice/run_context.js.map +1 -0
  445. package/dist/voice/speech_handle.cjs +105 -0
  446. package/dist/voice/speech_handle.cjs.map +1 -0
  447. package/dist/voice/speech_handle.d.cts +46 -0
  448. package/dist/voice/speech_handle.d.ts +46 -0
  449. package/dist/voice/speech_handle.d.ts.map +1 -0
  450. package/dist/voice/speech_handle.js +81 -0
  451. package/dist/voice/speech_handle.js.map +1 -0
  452. package/dist/voice/transcription/_utils.cjs +45 -0
  453. package/dist/voice/transcription/_utils.cjs.map +1 -0
  454. package/dist/voice/transcription/_utils.d.cts +3 -0
  455. package/dist/voice/transcription/_utils.d.ts +3 -0
  456. package/dist/voice/transcription/_utils.d.ts.map +1 -0
  457. package/dist/voice/transcription/_utils.js +21 -0
  458. package/dist/voice/transcription/_utils.js.map +1 -0
  459. package/dist/voice/transcription/index.cjs +23 -0
  460. package/dist/voice/transcription/index.cjs.map +1 -0
  461. package/dist/voice/transcription/index.d.cts +2 -0
  462. package/dist/voice/transcription/index.d.ts +2 -0
  463. package/dist/voice/transcription/index.d.ts.map +1 -0
  464. package/dist/voice/transcription/index.js +2 -0
  465. package/dist/voice/transcription/index.js.map +1 -0
  466. package/dist/voice/transcription/synchronizer.cjs +380 -0
  467. package/dist/voice/transcription/synchronizer.cjs.map +1 -0
  468. package/dist/voice/transcription/synchronizer.d.cts +86 -0
  469. package/dist/voice/transcription/synchronizer.d.ts +86 -0
  470. package/dist/voice/transcription/synchronizer.d.ts.map +1 -0
  471. package/dist/voice/transcription/synchronizer.js +355 -0
  472. package/dist/voice/transcription/synchronizer.js.map +1 -0
  473. package/dist/worker.cjs +22 -4
  474. package/dist/worker.cjs.map +1 -1
  475. package/dist/worker.d.cts +1 -1
  476. package/dist/worker.d.ts +1 -1
  477. package/dist/worker.d.ts.map +1 -1
  478. package/dist/worker.js +22 -4
  479. package/dist/worker.js.map +1 -1
  480. package/package.json +9 -2
  481. package/src/_exceptions.ts +137 -0
  482. package/src/audio.ts +12 -1
  483. package/src/cli.ts +37 -0
  484. package/src/constants.ts +2 -1
  485. package/src/http_server.ts +1 -0
  486. package/src/index.ts +13 -10
  487. package/src/inference_runner.ts +2 -3
  488. package/src/ipc/inference_proc_executor.ts +2 -2
  489. package/src/ipc/job_executor.ts +1 -1
  490. package/src/ipc/job_proc_executor.ts +1 -1
  491. package/src/ipc/job_proc_lazy_main.ts +1 -1
  492. package/src/job.ts +18 -0
  493. package/src/llm/__snapshots__/chat_context.test.ts.snap +527 -0
  494. package/src/llm/__snapshots__/tool_context.test.ts.snap +177 -0
  495. package/src/llm/__snapshots__/utils.test.ts.snap +65 -0
  496. package/src/llm/chat_context.test.ts +450 -0
  497. package/src/llm/chat_context.ts +501 -103
  498. package/src/llm/index.ts +53 -18
  499. package/src/llm/llm.ts +149 -50
  500. package/src/llm/provider_format/google.test.ts +772 -0
  501. package/src/llm/provider_format/google.ts +130 -0
  502. package/src/llm/provider_format/index.ts +23 -0
  503. package/src/llm/provider_format/openai.test.ts +581 -0
  504. package/src/llm/provider_format/openai.ts +118 -0
  505. package/src/llm/provider_format/utils.ts +183 -0
  506. package/src/llm/realtime.ts +151 -0
  507. package/src/llm/remote_chat_context.test.ts +290 -0
  508. package/src/llm/remote_chat_context.ts +114 -0
  509. package/src/llm/tool_context.test.ts +198 -0
  510. package/src/llm/tool_context.ts +259 -0
  511. package/src/llm/tool_context.type.test.ts +115 -0
  512. package/src/llm/utils.test.ts +670 -0
  513. package/src/llm/utils.ts +324 -0
  514. package/src/metrics/base.ts +110 -78
  515. package/src/metrics/index.ts +3 -9
  516. package/src/metrics/usage_collector.ts +19 -13
  517. package/src/metrics/utils.ts +24 -69
  518. package/src/multimodal/index.ts +0 -1
  519. package/src/plugin.ts +26 -8
  520. package/src/stream/deferred_stream.test.ts +755 -0
  521. package/src/stream/deferred_stream.ts +110 -0
  522. package/src/stream/identity_transform.test.ts +179 -0
  523. package/src/stream/identity_transform.ts +18 -0
  524. package/src/stream/index.ts +7 -0
  525. package/src/stream/merge_readable_streams.ts +40 -0
  526. package/src/stream/stream_channel.test.ts +129 -0
  527. package/src/stream/stream_channel.ts +32 -0
  528. package/src/stt/stream_adapter.ts +3 -5
  529. package/src/stt/stt.ts +135 -17
  530. package/src/tokenize/basic/basic.ts +13 -5
  531. package/src/tokenize/basic/sentence.ts +20 -6
  532. package/src/tokenize/token_stream.ts +7 -4
  533. package/src/transcription.ts +2 -3
  534. package/src/tts/index.ts +0 -1
  535. package/src/tts/stream_adapter.ts +42 -16
  536. package/src/tts/tts.ts +203 -21
  537. package/src/types.ts +42 -0
  538. package/src/utils.test.ts +658 -0
  539. package/src/utils.ts +375 -44
  540. package/src/vad.ts +90 -22
  541. package/src/voice/agent.test.ts +80 -0
  542. package/src/voice/agent.ts +332 -0
  543. package/src/voice/agent_activity.ts +1913 -0
  544. package/src/voice/agent_session.ts +460 -0
  545. package/src/voice/audio_recognition.ts +474 -0
  546. package/src/voice/events.ts +252 -0
  547. package/src/voice/generation.ts +881 -0
  548. package/src/voice/index.ts +7 -0
  549. package/src/voice/io.ts +304 -0
  550. package/src/voice/room_io/_input.ts +144 -0
  551. package/src/voice/room_io/_output.ts +436 -0
  552. package/src/voice/room_io/index.ts +5 -0
  553. package/src/voice/room_io/room_io.ts +495 -0
  554. package/src/voice/run_context.ts +20 -0
  555. package/src/voice/speech_handle.ts +104 -0
  556. package/src/voice/transcription/_utils.ts +25 -0
  557. package/src/voice/transcription/index.ts +4 -0
  558. package/src/voice/transcription/synchronizer.ts +478 -0
  559. package/src/worker.ts +22 -2
  560. package/dist/llm/function_context.cjs +0 -103
  561. package/dist/llm/function_context.cjs.map +0 -1
  562. package/dist/llm/function_context.d.cts +0 -47
  563. package/dist/llm/function_context.d.ts +0 -47
  564. package/dist/llm/function_context.d.ts.map +0 -1
  565. package/dist/llm/function_context.js +0 -78
  566. package/dist/llm/function_context.js.map +0 -1
  567. package/dist/llm/function_context.test.cjs +0 -218
  568. package/dist/llm/function_context.test.cjs.map +0 -1
  569. package/dist/llm/function_context.test.js +0 -217
  570. package/dist/llm/function_context.test.js.map +0 -1
  571. package/dist/multimodal/multimodal_agent.cjs +0 -486
  572. package/dist/multimodal/multimodal_agent.cjs.map +0 -1
  573. package/dist/multimodal/multimodal_agent.d.cts +0 -48
  574. package/dist/multimodal/multimodal_agent.d.ts +0 -48
  575. package/dist/multimodal/multimodal_agent.d.ts.map +0 -1
  576. package/dist/multimodal/multimodal_agent.js +0 -461
  577. package/dist/multimodal/multimodal_agent.js.map +0 -1
  578. package/dist/pipeline/agent_output.cjs +0 -197
  579. package/dist/pipeline/agent_output.cjs.map +0 -1
  580. package/dist/pipeline/agent_output.d.cts +0 -33
  581. package/dist/pipeline/agent_output.d.ts +0 -33
  582. package/dist/pipeline/agent_output.d.ts.map +0 -1
  583. package/dist/pipeline/agent_output.js +0 -172
  584. package/dist/pipeline/agent_output.js.map +0 -1
  585. package/dist/pipeline/agent_playout.cjs +0 -175
  586. package/dist/pipeline/agent_playout.cjs.map +0 -1
  587. package/dist/pipeline/agent_playout.d.cts +0 -40
  588. package/dist/pipeline/agent_playout.d.ts +0 -40
  589. package/dist/pipeline/agent_playout.d.ts.map +0 -1
  590. package/dist/pipeline/agent_playout.js +0 -139
  591. package/dist/pipeline/agent_playout.js.map +0 -1
  592. package/dist/pipeline/human_input.cjs +0 -171
  593. package/dist/pipeline/human_input.cjs.map +0 -1
  594. package/dist/pipeline/human_input.d.cts +0 -30
  595. package/dist/pipeline/human_input.d.ts +0 -30
  596. package/dist/pipeline/human_input.d.ts.map +0 -1
  597. package/dist/pipeline/human_input.js +0 -146
  598. package/dist/pipeline/human_input.js.map +0 -1
  599. package/dist/pipeline/index.cjs.map +0 -1
  600. package/dist/pipeline/index.d.cts +0 -2
  601. package/dist/pipeline/index.d.ts +0 -2
  602. package/dist/pipeline/index.d.ts.map +0 -1
  603. package/dist/pipeline/index.js +0 -11
  604. package/dist/pipeline/index.js.map +0 -1
  605. package/dist/pipeline/pipeline_agent.cjs +0 -859
  606. package/dist/pipeline/pipeline_agent.cjs.map +0 -1
  607. package/dist/pipeline/pipeline_agent.d.cts +0 -150
  608. package/dist/pipeline/pipeline_agent.d.ts +0 -150
  609. package/dist/pipeline/pipeline_agent.d.ts.map +0 -1
  610. package/dist/pipeline/pipeline_agent.js +0 -837
  611. package/dist/pipeline/pipeline_agent.js.map +0 -1
  612. package/dist/pipeline/speech_handle.cjs +0 -176
  613. package/dist/pipeline/speech_handle.cjs.map +0 -1
  614. package/dist/pipeline/speech_handle.d.cts +0 -37
  615. package/dist/pipeline/speech_handle.d.ts +0 -37
  616. package/dist/pipeline/speech_handle.d.ts.map +0 -1
  617. package/dist/pipeline/speech_handle.js +0 -152
  618. package/dist/pipeline/speech_handle.js.map +0 -1
  619. package/src/llm/function_context.test.ts +0 -248
  620. package/src/llm/function_context.ts +0 -142
  621. package/src/multimodal/multimodal_agent.ts +0 -592
  622. package/src/pipeline/agent_output.ts +0 -219
  623. package/src/pipeline/agent_playout.ts +0 -192
  624. package/src/pipeline/human_input.ts +0 -188
  625. package/src/pipeline/index.ts +0 -15
  626. package/src/pipeline/pipeline_agent.ts +0 -1197
  627. package/src/pipeline/speech_handle.ts +0 -201
@@ -1,96 +1,138 @@
1
- export interface LLMMetrics {
1
+ export type AgentMetrics = STTMetrics | LLMMetrics | TTSMetrics | VADMetrics | EOUMetrics | RealtimeModelMetrics;
2
+ export type LLMMetrics = {
3
+ type: 'llm_metrics';
4
+ label: string;
2
5
  requestId: string;
3
6
  timestamp: number;
4
- ttft: number;
5
7
  duration: number;
6
- label: string;
8
+ ttft: number;
7
9
  cancelled: boolean;
8
10
  completionTokens: number;
9
11
  promptTokens: number;
12
+ promptCachedTokens: number;
10
13
  totalTokens: number;
11
14
  tokensPerSecond: number;
12
- error?: Error;
13
- }
14
- export interface STTMetrics {
15
+ speechId?: string;
16
+ };
17
+ export type STTMetrics = {
18
+ type: 'stt_metrics';
19
+ label: string;
15
20
  requestId: string;
16
21
  timestamp: number;
22
+ /**
23
+ * The request duration in seconds, 0.0 if the STT is streaming.
24
+ */
17
25
  duration: number;
18
- label: string;
26
+ /**
27
+ * The duration of the pushed audio in seconds.
28
+ */
19
29
  audioDuration: number;
30
+ /**
31
+ * Whether the STT is streaming (e.g using websocket).
32
+ */
20
33
  streamed: boolean;
21
- error?: Error;
22
- }
23
- export interface TTSMetrics {
34
+ };
35
+ export type TTSMetrics = {
36
+ type: 'tts_metrics';
37
+ label: string;
24
38
  requestId: string;
25
39
  timestamp: number;
26
40
  ttfb: number;
27
41
  duration: number;
28
- label: string;
29
42
  audioDuration: number;
30
43
  cancelled: boolean;
31
44
  charactersCount: number;
32
45
  streamed: boolean;
33
- error?: Error;
34
- }
35
- export interface VADMetrics {
46
+ segmentId?: string;
47
+ speechId?: string;
48
+ };
49
+ export type VADMetrics = {
50
+ type: 'vad_metrics';
51
+ label: string;
36
52
  timestamp: number;
37
53
  idleTime: number;
38
54
  inferenceDurationTotal: number;
39
55
  inferenceCount: number;
40
- label: string;
41
- }
42
- export interface PipelineEOUMetrics {
56
+ };
57
+ export type EOUMetrics = {
58
+ type: 'eou_metrics';
59
+ timestamp: number;
43
60
  /**
44
- * Unique identifier shared across different metrics to combine related STT, LLM, and TTS metrics
61
+ * Amount of time between the end of speech from VAD and the decision to end the user's turn.
62
+ * Set to 0.0 if the end of speech was not detected.
45
63
  */
46
- sequenceId: string;
47
- /** Timestamp of when the event was recorded */
48
- timestamp: number;
49
- /** Amount of time between the end of speech from VAD and the decision to end the user's turn */
50
64
  endOfUtteranceDelay: number;
51
65
  /**
52
66
  * Time taken to obtain the transcript after the end of the user's speech.
53
- *
54
- * @remarks
55
- * May be 0 if the transcript was already available.
67
+ * Set to 0.0 if the end of speech was not detected.
56
68
  */
57
69
  transcriptionDelay: number;
58
- }
59
- export interface PipelineLLMMetrics extends LLMMetrics {
60
- /**
61
- * Unique identifier shared across different metrics to combine related STT, LLM, and TTS metrics
62
- */
63
- sequenceId: string;
64
- }
65
- export interface PipelineTTSMetrics extends TTSMetrics {
66
- /**
67
- * Unique identifier shared across different metrics to combine related STT, LLM, and TTS metrics
68
- */
69
- sequenceId: string;
70
- }
71
- export type PipelineSTTMetrics = STTMetrics;
72
- export type PipelineVADMetrics = VADMetrics;
73
- export declare class MultimodalLLMError extends Error {
74
- type?: string;
75
- reason?: string;
76
- code?: string;
77
- constructor({ type, reason, code, message, }?: {
78
- type?: string;
79
- reason?: string;
80
- code?: string;
81
- message?: string;
82
- });
83
- }
84
- export interface MultimodalLLMMetrics extends LLMMetrics {
85
- inputTokenDetails: {
86
- cachedTokens: number;
87
- textTokens: number;
88
- audioTokens: number;
89
- };
90
- outputTokenDetails: {
91
- textTokens: number;
92
- audioTokens: number;
93
- };
94
- }
95
- export type AgentMetrics = STTMetrics | LLMMetrics | TTSMetrics | VADMetrics | PipelineSTTMetrics | PipelineEOUMetrics | PipelineLLMMetrics | PipelineTTSMetrics | PipelineVADMetrics | MultimodalLLMMetrics;
70
+ /**
71
+ * Time taken to invoke the user's `Agent.onUserTurnCompleted` callback.
72
+ */
73
+ onUserTurnCompletedDelay: number;
74
+ speechId?: string;
75
+ };
76
+ export type RealtimeModelMetricsCachedTokenDetails = {
77
+ audioTokens: number;
78
+ textTokens: number;
79
+ imageTokens: number;
80
+ };
81
+ export type RealtimeModelMetricsInputTokenDetails = {
82
+ audioTokens: number;
83
+ textTokens: number;
84
+ imageTokens: number;
85
+ cachedTokens: number;
86
+ cachedTokensDetails?: RealtimeModelMetricsCachedTokenDetails;
87
+ };
88
+ export type RealtimeModelMetricsOutputTokenDetails = {
89
+ textTokens: number;
90
+ audioTokens: number;
91
+ imageTokens: number;
92
+ };
93
+ export type RealtimeModelMetrics = {
94
+ type: 'realtime_model_metrics';
95
+ label: string;
96
+ requestId: string;
97
+ /**
98
+ * The timestamp of the response creation.
99
+ */
100
+ timestamp: number;
101
+ /**
102
+ * The duration of the response from created to done in seconds.
103
+ */
104
+ duration: number;
105
+ /**
106
+ * Time to first audio token in seconds. -1 if no audio token was sent.
107
+ */
108
+ ttft: number;
109
+ /**
110
+ * Whether the request was cancelled.
111
+ */
112
+ cancelled: boolean;
113
+ /**
114
+ * The number of input tokens used in the Response, including text and audio tokens.
115
+ */
116
+ inputTokens: number;
117
+ /**
118
+ * The number of output tokens sent in the Response, including text and audio tokens.
119
+ */
120
+ outputTokens: number;
121
+ /**
122
+ * The total number of tokens in the Response.
123
+ */
124
+ totalTokens: number;
125
+ /**
126
+ * The number of tokens per second.
127
+ */
128
+ tokensPerSecond: number;
129
+ /**
130
+ * Details about the input tokens used in the Response.
131
+ */
132
+ inputTokenDetails: RealtimeModelMetricsInputTokenDetails;
133
+ /**
134
+ * Details about the output tokens used in the Response.
135
+ */
136
+ outputTokenDetails: RealtimeModelMetricsOutputTokenDetails;
137
+ };
96
138
  //# sourceMappingURL=base.d.ts.map
@@ -1,96 +1,138 @@
1
- export interface LLMMetrics {
1
+ export type AgentMetrics = STTMetrics | LLMMetrics | TTSMetrics | VADMetrics | EOUMetrics | RealtimeModelMetrics;
2
+ export type LLMMetrics = {
3
+ type: 'llm_metrics';
4
+ label: string;
2
5
  requestId: string;
3
6
  timestamp: number;
4
- ttft: number;
5
7
  duration: number;
6
- label: string;
8
+ ttft: number;
7
9
  cancelled: boolean;
8
10
  completionTokens: number;
9
11
  promptTokens: number;
12
+ promptCachedTokens: number;
10
13
  totalTokens: number;
11
14
  tokensPerSecond: number;
12
- error?: Error;
13
- }
14
- export interface STTMetrics {
15
+ speechId?: string;
16
+ };
17
+ export type STTMetrics = {
18
+ type: 'stt_metrics';
19
+ label: string;
15
20
  requestId: string;
16
21
  timestamp: number;
22
+ /**
23
+ * The request duration in seconds, 0.0 if the STT is streaming.
24
+ */
17
25
  duration: number;
18
- label: string;
26
+ /**
27
+ * The duration of the pushed audio in seconds.
28
+ */
19
29
  audioDuration: number;
30
+ /**
31
+ * Whether the STT is streaming (e.g using websocket).
32
+ */
20
33
  streamed: boolean;
21
- error?: Error;
22
- }
23
- export interface TTSMetrics {
34
+ };
35
+ export type TTSMetrics = {
36
+ type: 'tts_metrics';
37
+ label: string;
24
38
  requestId: string;
25
39
  timestamp: number;
26
40
  ttfb: number;
27
41
  duration: number;
28
- label: string;
29
42
  audioDuration: number;
30
43
  cancelled: boolean;
31
44
  charactersCount: number;
32
45
  streamed: boolean;
33
- error?: Error;
34
- }
35
- export interface VADMetrics {
46
+ segmentId?: string;
47
+ speechId?: string;
48
+ };
49
+ export type VADMetrics = {
50
+ type: 'vad_metrics';
51
+ label: string;
36
52
  timestamp: number;
37
53
  idleTime: number;
38
54
  inferenceDurationTotal: number;
39
55
  inferenceCount: number;
40
- label: string;
41
- }
42
- export interface PipelineEOUMetrics {
56
+ };
57
+ export type EOUMetrics = {
58
+ type: 'eou_metrics';
59
+ timestamp: number;
43
60
  /**
44
- * Unique identifier shared across different metrics to combine related STT, LLM, and TTS metrics
61
+ * Amount of time between the end of speech from VAD and the decision to end the user's turn.
62
+ * Set to 0.0 if the end of speech was not detected.
45
63
  */
46
- sequenceId: string;
47
- /** Timestamp of when the event was recorded */
48
- timestamp: number;
49
- /** Amount of time between the end of speech from VAD and the decision to end the user's turn */
50
64
  endOfUtteranceDelay: number;
51
65
  /**
52
66
  * Time taken to obtain the transcript after the end of the user's speech.
53
- *
54
- * @remarks
55
- * May be 0 if the transcript was already available.
67
+ * Set to 0.0 if the end of speech was not detected.
56
68
  */
57
69
  transcriptionDelay: number;
58
- }
59
- export interface PipelineLLMMetrics extends LLMMetrics {
60
- /**
61
- * Unique identifier shared across different metrics to combine related STT, LLM, and TTS metrics
62
- */
63
- sequenceId: string;
64
- }
65
- export interface PipelineTTSMetrics extends TTSMetrics {
66
- /**
67
- * Unique identifier shared across different metrics to combine related STT, LLM, and TTS metrics
68
- */
69
- sequenceId: string;
70
- }
71
- export type PipelineSTTMetrics = STTMetrics;
72
- export type PipelineVADMetrics = VADMetrics;
73
- export declare class MultimodalLLMError extends Error {
74
- type?: string;
75
- reason?: string;
76
- code?: string;
77
- constructor({ type, reason, code, message, }?: {
78
- type?: string;
79
- reason?: string;
80
- code?: string;
81
- message?: string;
82
- });
83
- }
84
- export interface MultimodalLLMMetrics extends LLMMetrics {
85
- inputTokenDetails: {
86
- cachedTokens: number;
87
- textTokens: number;
88
- audioTokens: number;
89
- };
90
- outputTokenDetails: {
91
- textTokens: number;
92
- audioTokens: number;
93
- };
94
- }
95
- export type AgentMetrics = STTMetrics | LLMMetrics | TTSMetrics | VADMetrics | PipelineSTTMetrics | PipelineEOUMetrics | PipelineLLMMetrics | PipelineTTSMetrics | PipelineVADMetrics | MultimodalLLMMetrics;
70
+ /**
71
+ * Time taken to invoke the user's `Agent.onUserTurnCompleted` callback.
72
+ */
73
+ onUserTurnCompletedDelay: number;
74
+ speechId?: string;
75
+ };
76
+ export type RealtimeModelMetricsCachedTokenDetails = {
77
+ audioTokens: number;
78
+ textTokens: number;
79
+ imageTokens: number;
80
+ };
81
+ export type RealtimeModelMetricsInputTokenDetails = {
82
+ audioTokens: number;
83
+ textTokens: number;
84
+ imageTokens: number;
85
+ cachedTokens: number;
86
+ cachedTokensDetails?: RealtimeModelMetricsCachedTokenDetails;
87
+ };
88
+ export type RealtimeModelMetricsOutputTokenDetails = {
89
+ textTokens: number;
90
+ audioTokens: number;
91
+ imageTokens: number;
92
+ };
93
+ export type RealtimeModelMetrics = {
94
+ type: 'realtime_model_metrics';
95
+ label: string;
96
+ requestId: string;
97
+ /**
98
+ * The timestamp of the response creation.
99
+ */
100
+ timestamp: number;
101
+ /**
102
+ * The duration of the response from created to done in seconds.
103
+ */
104
+ duration: number;
105
+ /**
106
+ * Time to first audio token in seconds. -1 if no audio token was sent.
107
+ */
108
+ ttft: number;
109
+ /**
110
+ * Whether the request was cancelled.
111
+ */
112
+ cancelled: boolean;
113
+ /**
114
+ * The number of input tokens used in the Response, including text and audio tokens.
115
+ */
116
+ inputTokens: number;
117
+ /**
118
+ * The number of output tokens sent in the Response, including text and audio tokens.
119
+ */
120
+ outputTokens: number;
121
+ /**
122
+ * The total number of tokens in the Response.
123
+ */
124
+ totalTokens: number;
125
+ /**
126
+ * The number of tokens per second.
127
+ */
128
+ tokensPerSecond: number;
129
+ /**
130
+ * Details about the input tokens used in the Response.
131
+ */
132
+ inputTokenDetails: RealtimeModelMetricsInputTokenDetails;
133
+ /**
134
+ * Details about the output tokens used in the Response.
135
+ */
136
+ outputTokenDetails: RealtimeModelMetricsOutputTokenDetails;
137
+ };
96
138
  //# sourceMappingURL=base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/metrics/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/metrics/base.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1 @@
1
- class MultimodalLLMError extends Error {
2
- type;
3
- reason;
4
- code;
5
- constructor({
6
- type,
7
- reason,
8
- code,
9
- message
10
- } = {}) {
11
- super(message);
12
- this.type = type;
13
- this.reason = reason;
14
- this.code = code;
15
- }
16
- }
17
- export {
18
- MultimodalLLMError
19
- };
20
1
  //# sourceMappingURL=base.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/metrics/base.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n\nexport interface LLMMetrics {\n requestId: string;\n timestamp: number;\n ttft: number;\n duration: number;\n label: string;\n cancelled: boolean;\n completionTokens: number;\n promptTokens: number;\n totalTokens: number;\n tokensPerSecond: number;\n error?: Error;\n}\n\nexport interface STTMetrics {\n requestId: string;\n timestamp: number;\n duration: number;\n label: string;\n audioDuration: number;\n streamed: boolean;\n error?: Error;\n}\n\nexport interface TTSMetrics {\n requestId: string;\n timestamp: number;\n ttfb: number;\n duration: number;\n label: string;\n audioDuration: number;\n cancelled: boolean;\n charactersCount: number;\n streamed: boolean;\n error?: Error;\n}\n\nexport interface VADMetrics {\n timestamp: number;\n idleTime: number;\n inferenceDurationTotal: number;\n inferenceCount: number;\n label: string;\n}\n\nexport interface PipelineEOUMetrics {\n /**\n * Unique identifier shared across different metrics to combine related STT, LLM, and TTS metrics\n */\n sequenceId: string;\n /** Timestamp of when the event was recorded */\n timestamp: number;\n /** Amount of time between the end of speech from VAD and the decision to end the user's turn */\n endOfUtteranceDelay: number;\n /**\n * Time taken to obtain the transcript after the end of the user's speech.\n *\n * @remarks\n * May be 0 if the transcript was already available.\n */\n transcriptionDelay: number;\n}\n\nexport interface PipelineLLMMetrics extends LLMMetrics {\n /**\n * Unique identifier shared across different metrics to combine related STT, LLM, and TTS metrics\n */\n sequenceId: string;\n}\n\nexport interface PipelineTTSMetrics extends TTSMetrics {\n /**\n * Unique identifier shared across different metrics to combine related STT, LLM, and TTS metrics\n */\n sequenceId: string;\n}\n\nexport type PipelineSTTMetrics = STTMetrics;\nexport type PipelineVADMetrics = VADMetrics;\n\nexport class MultimodalLLMError extends Error {\n type?: string;\n reason?: string;\n code?: string;\n constructor({\n type,\n reason,\n code,\n message,\n }: { type?: string; reason?: string; code?: string; message?: string } = {}) {\n super(message);\n this.type = type;\n this.reason = reason;\n this.code = code;\n }\n}\n\nexport interface MultimodalLLMMetrics extends LLMMetrics {\n inputTokenDetails: {\n cachedTokens: number;\n textTokens: number;\n audioTokens: number;\n };\n outputTokenDetails: {\n textTokens: number;\n audioTokens: number;\n };\n}\n\nexport type AgentMetrics =\n | STTMetrics\n | LLMMetrics\n | TTSMetrics\n | VADMetrics\n | PipelineSTTMetrics\n | PipelineEOUMetrics\n | PipelineLLMMetrics\n | PipelineTTSMetrics\n | PipelineVADMetrics\n | MultimodalLLMMetrics;\n"],"mappings":"AAoFO,MAAM,2BAA2B,MAAM;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAyE,CAAC,GAAG;AAC3E,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,SAAK,SAAS;AACd,SAAK,OAAO;AAAA,EACd;AACF;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -18,17 +18,14 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var metrics_exports = {};
20
20
  __export(metrics_exports, {
21
- MultimodalLLMError: () => import_base.MultimodalLLMError,
22
21
  UsageCollector: () => import_usage_collector.UsageCollector,
23
22
  logMetrics: () => import_utils.logMetrics
24
23
  });
25
24
  module.exports = __toCommonJS(metrics_exports);
26
- var import_base = require("./base.cjs");
27
25
  var import_usage_collector = require("./usage_collector.cjs");
28
26
  var import_utils = require("./utils.cjs");
29
27
  // Annotate the CommonJS export names for ESM import in node:
30
28
  0 && (module.exports = {
31
- MultimodalLLMError,
32
29
  UsageCollector,
33
30
  logMetrics
34
31
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/metrics/index.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n\nexport type {\n AgentMetrics,\n STTMetrics,\n LLMMetrics,\n TTSMetrics,\n VADMetrics,\n PipelineSTTMetrics,\n PipelineEOUMetrics,\n PipelineLLMMetrics,\n PipelineTTSMetrics,\n PipelineVADMetrics,\n MultimodalLLMMetrics,\n} from './base.js';\nexport { MultimodalLLMError } from './base.js';\nexport { type UsageSummary, UsageCollector } from './usage_collector.js';\nexport { logMetrics } from './utils.js';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBA,kBAAmC;AACnC,6BAAkD;AAClD,mBAA2B;","names":[]}
1
+ {"version":3,"sources":["../../src/metrics/index.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n\nexport type {\n AgentMetrics,\n LLMMetrics,\n RealtimeModelMetrics,\n STTMetrics,\n TTSMetrics,\n VADMetrics,\n} from './base.js';\nexport { UsageCollector, type UsageSummary } from './usage_collector.js';\nexport { logMetrics } from './utils.js';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA,6BAAkD;AAClD,mBAA2B;","names":[]}
@@ -1,5 +1,4 @@
1
- export type { AgentMetrics, STTMetrics, LLMMetrics, TTSMetrics, VADMetrics, PipelineSTTMetrics, PipelineEOUMetrics, PipelineLLMMetrics, PipelineTTSMetrics, PipelineVADMetrics, MultimodalLLMMetrics, } from './base.js';
2
- export { MultimodalLLMError } from './base.js';
3
- export { type UsageSummary, UsageCollector } from './usage_collector.js';
1
+ export type { AgentMetrics, LLMMetrics, RealtimeModelMetrics, STTMetrics, TTSMetrics, VADMetrics, } from './base.js';
2
+ export { UsageCollector, type UsageSummary } from './usage_collector.js';
4
3
  export { logMetrics } from './utils.js';
5
4
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,4 @@
1
- export type { AgentMetrics, STTMetrics, LLMMetrics, TTSMetrics, VADMetrics, PipelineSTTMetrics, PipelineEOUMetrics, PipelineLLMMetrics, PipelineTTSMetrics, PipelineVADMetrics, MultimodalLLMMetrics, } from './base.js';
2
- export { MultimodalLLMError } from './base.js';
3
- export { type UsageSummary, UsageCollector } from './usage_collector.js';
1
+ export type { AgentMetrics, LLMMetrics, RealtimeModelMetrics, STTMetrics, TTSMetrics, VADMetrics, } from './base.js';
2
+ export { UsageCollector, type UsageSummary } from './usage_collector.js';
4
3
  export { logMetrics } from './utils.js';
5
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,YAAY,EACZ,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,KAAK,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
@@ -1,8 +1,6 @@
1
- import { MultimodalLLMError } from "./base.js";
2
1
  import { UsageCollector } from "./usage_collector.js";
3
2
  import { logMetrics } from "./utils.js";
4
3
  export {
5
- MultimodalLLMError,
6
4
  UsageCollector,
7
5
  logMetrics
8
6
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/metrics/index.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n\nexport type {\n AgentMetrics,\n STTMetrics,\n LLMMetrics,\n TTSMetrics,\n VADMetrics,\n PipelineSTTMetrics,\n PipelineEOUMetrics,\n PipelineLLMMetrics,\n PipelineTTSMetrics,\n PipelineVADMetrics,\n MultimodalLLMMetrics,\n} from './base.js';\nexport { MultimodalLLMError } from './base.js';\nexport { type UsageSummary, UsageCollector } from './usage_collector.js';\nexport { logMetrics } from './utils.js';\n"],"mappings":"AAiBA,SAAS,0BAA0B;AACnC,SAA4B,sBAAsB;AAClD,SAAS,kBAAkB;","names":[]}
1
+ {"version":3,"sources":["../../src/metrics/index.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n\nexport type {\n AgentMetrics,\n LLMMetrics,\n RealtimeModelMetrics,\n STTMetrics,\n TTSMetrics,\n VADMetrics,\n} from './base.js';\nexport { UsageCollector, type UsageSummary } from './usage_collector.js';\nexport { logMetrics } from './utils.js';\n"],"mappings":"AAYA,SAAS,sBAAyC;AAClD,SAAS,kBAAkB;","names":[]}
@@ -21,29 +21,34 @@ __export(usage_collector_exports, {
21
21
  UsageCollector: () => UsageCollector
22
22
  });
23
23
  module.exports = __toCommonJS(usage_collector_exports);
24
- var import_utils = require("./utils.cjs");
25
24
  class UsageCollector {
26
- #summary;
25
+ summary;
27
26
  constructor() {
28
- this.#summary = {
27
+ this.summary = {
29
28
  llmPromptTokens: 0,
29
+ llmPromptCachedTokens: 0,
30
30
  llmCompletionTokens: 0,
31
31
  ttsCharactersCount: 0,
32
32
  sttAudioDuration: 0
33
33
  };
34
34
  }
35
35
  collect(metrics) {
36
- if ((0, import_utils.isLLMMetrics)(metrics)) {
37
- this.#summary.llmPromptTokens += metrics.promptTokens;
38
- this.#summary.llmCompletionTokens += metrics.completionTokens;
39
- } else if ((0, import_utils.isTTSMetrics)(metrics)) {
40
- this.#summary.ttsCharactersCount += metrics.charactersCount;
41
- } else if ((0, import_utils.isSTTMetrics)(metrics)) {
42
- this.#summary.sttAudioDuration += metrics.audioDuration;
36
+ if (metrics.type === "llm_metrics") {
37
+ this.summary.llmPromptTokens += metrics.promptTokens;
38
+ this.summary.llmPromptCachedTokens += metrics.promptCachedTokens;
39
+ this.summary.llmCompletionTokens += metrics.completionTokens;
40
+ } else if (metrics.type === "realtime_model_metrics") {
41
+ this.summary.llmPromptTokens += metrics.inputTokens;
42
+ this.summary.llmPromptCachedTokens += metrics.inputTokenDetails.cachedTokens;
43
+ this.summary.llmCompletionTokens += metrics.outputTokens;
44
+ } else if (metrics.type === "tts_metrics") {
45
+ this.summary.ttsCharactersCount += metrics.charactersCount;
46
+ } else if (metrics.type === "stt_metrics") {
47
+ this.summary.sttAudioDuration += metrics.audioDuration;
43
48
  }
44
49
  }
45
- get summary() {
46
- return { ...this.#summary };
50
+ getSummary() {
51
+ return { ...this.summary };
47
52
  }
48
53
  }
49
54
  // Annotate the CommonJS export names for ESM import in node:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/metrics/usage_collector.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { AgentMetrics } from './base.js';\nimport { isLLMMetrics, isSTTMetrics, isTTSMetrics } from './utils.js';\n\nexport interface UsageSummary {\n llmPromptTokens: number;\n llmCompletionTokens: number;\n ttsCharactersCount: number;\n sttAudioDuration: number;\n}\n\nexport class UsageCollector {\n #summary: UsageSummary;\n\n constructor() {\n this.#summary = {\n llmPromptTokens: 0,\n llmCompletionTokens: 0,\n ttsCharactersCount: 0,\n sttAudioDuration: 0,\n };\n }\n\n collect(metrics: AgentMetrics) {\n if (isLLMMetrics(metrics)) {\n this.#summary.llmPromptTokens += metrics.promptTokens;\n this.#summary.llmCompletionTokens += metrics.completionTokens;\n } else if (isTTSMetrics(metrics)) {\n this.#summary.ttsCharactersCount += metrics.charactersCount;\n } else if (isSTTMetrics(metrics)) {\n this.#summary.sttAudioDuration += metrics.audioDuration;\n }\n }\n\n get summary(): UsageSummary {\n return { ...this.#summary };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,mBAAyD;AASlD,MAAM,eAAe;AAAA,EAC1B;AAAA,EAEA,cAAc;AACZ,SAAK,WAAW;AAAA,MACd,iBAAiB;AAAA,MACjB,qBAAqB;AAAA,MACrB,oBAAoB;AAAA,MACpB,kBAAkB;AAAA,IACpB;AAAA,EACF;AAAA,EAEA,QAAQ,SAAuB;AAC7B,YAAI,2BAAa,OAAO,GAAG;AACzB,WAAK,SAAS,mBAAmB,QAAQ;AACzC,WAAK,SAAS,uBAAuB,QAAQ;AAAA,IAC/C,eAAW,2BAAa,OAAO,GAAG;AAChC,WAAK,SAAS,sBAAsB,QAAQ;AAAA,IAC9C,eAAW,2BAAa,OAAO,GAAG;AAChC,WAAK,SAAS,oBAAoB,QAAQ;AAAA,IAC5C;AAAA,EACF;AAAA,EAEA,IAAI,UAAwB;AAC1B,WAAO,EAAE,GAAG,KAAK,SAAS;AAAA,EAC5B;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/metrics/usage_collector.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { AgentMetrics } from './base.js';\n\nexport interface UsageSummary {\n llmPromptTokens: number;\n llmPromptCachedTokens: number;\n llmCompletionTokens: number;\n ttsCharactersCount: number;\n sttAudioDuration: number;\n}\n\nexport class UsageCollector {\n private summary: UsageSummary;\n\n constructor() {\n this.summary = {\n llmPromptTokens: 0,\n llmPromptCachedTokens: 0,\n llmCompletionTokens: 0,\n ttsCharactersCount: 0,\n sttAudioDuration: 0,\n };\n }\n\n collect(metrics: AgentMetrics): void {\n if (metrics.type === 'llm_metrics') {\n this.summary.llmPromptTokens += metrics.promptTokens;\n this.summary.llmPromptCachedTokens += metrics.promptCachedTokens;\n this.summary.llmCompletionTokens += metrics.completionTokens;\n } else if (metrics.type === 'realtime_model_metrics') {\n this.summary.llmPromptTokens += metrics.inputTokens;\n this.summary.llmPromptCachedTokens += metrics.inputTokenDetails.cachedTokens;\n this.summary.llmCompletionTokens += metrics.outputTokens;\n } else if (metrics.type === 'tts_metrics') {\n this.summary.ttsCharactersCount += metrics.charactersCount;\n } else if (metrics.type === 'stt_metrics') {\n this.summary.sttAudioDuration += metrics.audioDuration;\n }\n }\n\n getSummary(): UsageSummary {\n return { ...this.summary };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAaO,MAAM,eAAe;AAAA,EAClB;AAAA,EAER,cAAc;AACZ,SAAK,UAAU;AAAA,MACb,iBAAiB;AAAA,MACjB,uBAAuB;AAAA,MACvB,qBAAqB;AAAA,MACrB,oBAAoB;AAAA,MACpB,kBAAkB;AAAA,IACpB;AAAA,EACF;AAAA,EAEA,QAAQ,SAA6B;AACnC,QAAI,QAAQ,SAAS,eAAe;AAClC,WAAK,QAAQ,mBAAmB,QAAQ;AACxC,WAAK,QAAQ,yBAAyB,QAAQ;AAC9C,WAAK,QAAQ,uBAAuB,QAAQ;AAAA,IAC9C,WAAW,QAAQ,SAAS,0BAA0B;AACpD,WAAK,QAAQ,mBAAmB,QAAQ;AACxC,WAAK,QAAQ,yBAAyB,QAAQ,kBAAkB;AAChE,WAAK,QAAQ,uBAAuB,QAAQ;AAAA,IAC9C,WAAW,QAAQ,SAAS,eAAe;AACzC,WAAK,QAAQ,sBAAsB,QAAQ;AAAA,IAC7C,WAAW,QAAQ,SAAS,eAAe;AACzC,WAAK,QAAQ,oBAAoB,QAAQ;AAAA,IAC3C;AAAA,EACF;AAAA,EAEA,aAA2B;AACzB,WAAO,EAAE,GAAG,KAAK,QAAQ;AAAA,EAC3B;AACF;","names":[]}
@@ -1,14 +1,15 @@
1
1
  import type { AgentMetrics } from './base.js';
2
2
  export interface UsageSummary {
3
3
  llmPromptTokens: number;
4
+ llmPromptCachedTokens: number;
4
5
  llmCompletionTokens: number;
5
6
  ttsCharactersCount: number;
6
7
  sttAudioDuration: number;
7
8
  }
8
9
  export declare class UsageCollector {
9
- #private;
10
+ private summary;
10
11
  constructor();
11
12
  collect(metrics: AgentMetrics): void;
12
- get summary(): UsageSummary;
13
+ getSummary(): UsageSummary;
13
14
  }
14
15
  //# sourceMappingURL=usage_collector.d.ts.map
@@ -1,14 +1,15 @@
1
1
  import type { AgentMetrics } from './base.js';
2
2
  export interface UsageSummary {
3
3
  llmPromptTokens: number;
4
+ llmPromptCachedTokens: number;
4
5
  llmCompletionTokens: number;
5
6
  ttsCharactersCount: number;
6
7
  sttAudioDuration: number;
7
8
  }
8
9
  export declare class UsageCollector {
9
- #private;
10
+ private summary;
10
11
  constructor();
11
12
  collect(metrics: AgentMetrics): void;
12
- get summary(): UsageSummary;
13
+ getSummary(): UsageSummary;
13
14
  }
14
15
  //# sourceMappingURL=usage_collector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usage_collector.d.ts","sourceRoot":"","sources":["../../src/metrics/usage_collector.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAG9C,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,cAAc;;;IAYzB,OAAO,CAAC,OAAO,EAAE,YAAY;IAW7B,IAAI,OAAO,IAAI,YAAY,CAE1B;CACF"}
1
+ {"version":3,"file":"usage_collector.d.ts","sourceRoot":"","sources":["../../src/metrics/usage_collector.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAe;;IAY9B,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAgBpC,UAAU,IAAI,YAAY;CAG3B"}