@livekit/agents 0.0.0-20260120144724

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 (987) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +17 -0
  3. package/dist/_exceptions.cjs +109 -0
  4. package/dist/_exceptions.cjs.map +1 -0
  5. package/dist/_exceptions.d.cts +64 -0
  6. package/dist/_exceptions.d.ts +64 -0
  7. package/dist/_exceptions.d.ts.map +1 -0
  8. package/dist/_exceptions.js +80 -0
  9. package/dist/_exceptions.js.map +1 -0
  10. package/dist/audio.cjs +170 -0
  11. package/dist/audio.cjs.map +1 -0
  12. package/dist/audio.d.cts +46 -0
  13. package/dist/audio.d.ts +46 -0
  14. package/dist/audio.d.ts.map +1 -0
  15. package/dist/audio.js +133 -0
  16. package/dist/audio.js.map +1 -0
  17. package/dist/cli.cjs +171 -0
  18. package/dist/cli.cjs.map +1 -0
  19. package/dist/cli.d.cts +14 -0
  20. package/dist/cli.d.ts +14 -0
  21. package/dist/cli.d.ts.map +1 -0
  22. package/dist/cli.js +145 -0
  23. package/dist/cli.js.map +1 -0
  24. package/dist/connection_pool.cjs +242 -0
  25. package/dist/connection_pool.cjs.map +1 -0
  26. package/dist/connection_pool.d.cts +123 -0
  27. package/dist/connection_pool.d.ts +123 -0
  28. package/dist/connection_pool.d.ts.map +1 -0
  29. package/dist/connection_pool.js +218 -0
  30. package/dist/connection_pool.js.map +1 -0
  31. package/dist/connection_pool.test.cjs +256 -0
  32. package/dist/connection_pool.test.cjs.map +1 -0
  33. package/dist/connection_pool.test.js +255 -0
  34. package/dist/connection_pool.test.js.map +1 -0
  35. package/dist/constants.cjs +44 -0
  36. package/dist/constants.cjs.map +1 -0
  37. package/dist/constants.d.cts +7 -0
  38. package/dist/constants.d.ts +7 -0
  39. package/dist/constants.d.ts.map +1 -0
  40. package/dist/constants.js +15 -0
  41. package/dist/constants.js.map +1 -0
  42. package/dist/generator.cjs +36 -0
  43. package/dist/generator.cjs.map +1 -0
  44. package/dist/generator.d.cts +23 -0
  45. package/dist/generator.d.ts +23 -0
  46. package/dist/generator.d.ts.map +1 -0
  47. package/dist/generator.js +11 -0
  48. package/dist/generator.js.map +1 -0
  49. package/dist/http_server.cjs +75 -0
  50. package/dist/http_server.cjs.map +1 -0
  51. package/dist/http_server.d.cts +20 -0
  52. package/dist/http_server.d.ts +20 -0
  53. package/dist/http_server.d.ts.map +1 -0
  54. package/dist/http_server.js +51 -0
  55. package/dist/http_server.js.map +1 -0
  56. package/dist/index.cjs +100 -0
  57. package/dist/index.cjs.map +1 -0
  58. package/dist/index.d.cts +35 -0
  59. package/dist/index.d.ts +35 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +40 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/inference/api_protos.cjs +104 -0
  64. package/dist/inference/api_protos.cjs.map +1 -0
  65. package/dist/inference/api_protos.d.cts +222 -0
  66. package/dist/inference/api_protos.d.ts +222 -0
  67. package/dist/inference/api_protos.d.ts.map +1 -0
  68. package/dist/inference/api_protos.js +70 -0
  69. package/dist/inference/api_protos.js.map +1 -0
  70. package/dist/inference/index.cjs +56 -0
  71. package/dist/inference/index.cjs.map +1 -0
  72. package/dist/inference/index.d.cts +8 -0
  73. package/dist/inference/index.d.ts +8 -0
  74. package/dist/inference/index.d.ts.map +1 -0
  75. package/dist/inference/index.js +23 -0
  76. package/dist/inference/index.js.map +1 -0
  77. package/dist/inference/interruption/AdaptiveInterruptionDetector.cjs +152 -0
  78. package/dist/inference/interruption/AdaptiveInterruptionDetector.cjs.map +1 -0
  79. package/dist/inference/interruption/AdaptiveInterruptionDetector.d.cts +50 -0
  80. package/dist/inference/interruption/AdaptiveInterruptionDetector.d.ts +50 -0
  81. package/dist/inference/interruption/AdaptiveInterruptionDetector.d.ts.map +1 -0
  82. package/dist/inference/interruption/AdaptiveInterruptionDetector.js +125 -0
  83. package/dist/inference/interruption/AdaptiveInterruptionDetector.js.map +1 -0
  84. package/dist/inference/interruption/InterruptionStream.cjs +310 -0
  85. package/dist/inference/interruption/InterruptionStream.cjs.map +1 -0
  86. package/dist/inference/interruption/InterruptionStream.d.cts +57 -0
  87. package/dist/inference/interruption/InterruptionStream.d.ts +57 -0
  88. package/dist/inference/interruption/InterruptionStream.d.ts.map +1 -0
  89. package/dist/inference/interruption/InterruptionStream.js +288 -0
  90. package/dist/inference/interruption/InterruptionStream.js.map +1 -0
  91. package/dist/inference/interruption/defaults.cjs +76 -0
  92. package/dist/inference/interruption/defaults.cjs.map +1 -0
  93. package/dist/inference/interruption/defaults.d.cts +14 -0
  94. package/dist/inference/interruption/defaults.d.ts +14 -0
  95. package/dist/inference/interruption/defaults.d.ts.map +1 -0
  96. package/dist/inference/interruption/defaults.js +42 -0
  97. package/dist/inference/interruption/defaults.js.map +1 -0
  98. package/dist/inference/interruption/errors.cjs +2 -0
  99. package/dist/inference/interruption/errors.cjs.map +1 -0
  100. package/dist/inference/interruption/errors.d.cts +2 -0
  101. package/dist/inference/interruption/errors.d.ts +2 -0
  102. package/dist/inference/interruption/errors.d.ts.map +1 -0
  103. package/dist/inference/interruption/errors.js +1 -0
  104. package/dist/inference/interruption/errors.js.map +1 -0
  105. package/dist/inference/interruption/http_transport.cjs +57 -0
  106. package/dist/inference/interruption/http_transport.cjs.map +1 -0
  107. package/dist/inference/interruption/http_transport.d.cts +23 -0
  108. package/dist/inference/interruption/http_transport.d.ts +23 -0
  109. package/dist/inference/interruption/http_transport.d.ts.map +1 -0
  110. package/dist/inference/interruption/http_transport.js +33 -0
  111. package/dist/inference/interruption/http_transport.js.map +1 -0
  112. package/dist/inference/interruption/index.cjs +34 -0
  113. package/dist/inference/interruption/index.cjs.map +1 -0
  114. package/dist/inference/interruption/index.d.cts +5 -0
  115. package/dist/inference/interruption/index.d.ts +5 -0
  116. package/dist/inference/interruption/index.d.ts.map +1 -0
  117. package/dist/inference/interruption/index.js +7 -0
  118. package/dist/inference/interruption/index.js.map +1 -0
  119. package/dist/inference/interruption/interruption.cjs +85 -0
  120. package/dist/inference/interruption/interruption.cjs.map +1 -0
  121. package/dist/inference/interruption/interruption.d.cts +48 -0
  122. package/dist/inference/interruption/interruption.d.ts +48 -0
  123. package/dist/inference/interruption/interruption.d.ts.map +1 -0
  124. package/dist/inference/interruption/interruption.js +59 -0
  125. package/dist/inference/interruption/interruption.js.map +1 -0
  126. package/dist/inference/llm.cjs +347 -0
  127. package/dist/inference/llm.cjs.map +1 -0
  128. package/dist/inference/llm.d.cts +114 -0
  129. package/dist/inference/llm.d.ts +114 -0
  130. package/dist/inference/llm.d.ts.map +1 -0
  131. package/dist/inference/llm.js +318 -0
  132. package/dist/inference/llm.js.map +1 -0
  133. package/dist/inference/stt.cjs +371 -0
  134. package/dist/inference/stt.cjs.map +1 -0
  135. package/dist/inference/stt.d.cts +91 -0
  136. package/dist/inference/stt.d.ts +91 -0
  137. package/dist/inference/stt.d.ts.map +1 -0
  138. package/dist/inference/stt.js +350 -0
  139. package/dist/inference/stt.js.map +1 -0
  140. package/dist/inference/tts.cjs +439 -0
  141. package/dist/inference/tts.cjs.map +1 -0
  142. package/dist/inference/tts.d.cts +80 -0
  143. package/dist/inference/tts.d.ts +80 -0
  144. package/dist/inference/tts.d.ts.map +1 -0
  145. package/dist/inference/tts.js +417 -0
  146. package/dist/inference/tts.js.map +1 -0
  147. package/dist/inference/utils.cjs +89 -0
  148. package/dist/inference/utils.cjs.map +1 -0
  149. package/dist/inference/utils.d.cts +6 -0
  150. package/dist/inference/utils.d.ts +6 -0
  151. package/dist/inference/utils.d.ts.map +1 -0
  152. package/dist/inference/utils.js +63 -0
  153. package/dist/inference/utils.js.map +1 -0
  154. package/dist/inference/utils.test.cjs +20 -0
  155. package/dist/inference/utils.test.cjs.map +1 -0
  156. package/dist/inference/utils.test.js +19 -0
  157. package/dist/inference/utils.test.js.map +1 -0
  158. package/dist/inference_runner.cjs +37 -0
  159. package/dist/inference_runner.cjs.map +1 -0
  160. package/dist/inference_runner.d.cts +11 -0
  161. package/dist/inference_runner.d.ts +11 -0
  162. package/dist/inference_runner.d.ts.map +1 -0
  163. package/dist/inference_runner.js +13 -0
  164. package/dist/inference_runner.js.map +1 -0
  165. package/dist/ipc/index.cjs +23 -0
  166. package/dist/ipc/index.cjs.map +1 -0
  167. package/dist/ipc/index.d.cts +2 -0
  168. package/dist/ipc/index.d.ts +2 -0
  169. package/dist/ipc/index.d.ts.map +1 -0
  170. package/dist/ipc/index.js +2 -0
  171. package/dist/ipc/index.js.map +1 -0
  172. package/dist/ipc/inference_executor.cjs +17 -0
  173. package/dist/ipc/inference_executor.cjs.map +1 -0
  174. package/dist/ipc/inference_executor.d.cts +4 -0
  175. package/dist/ipc/inference_executor.d.ts +4 -0
  176. package/dist/ipc/inference_executor.d.ts.map +1 -0
  177. package/dist/ipc/inference_executor.js +1 -0
  178. package/dist/ipc/inference_executor.js.map +1 -0
  179. package/dist/ipc/inference_proc_executor.cjs +101 -0
  180. package/dist/ipc/inference_proc_executor.cjs.map +1 -0
  181. package/dist/ipc/inference_proc_executor.d.cts +23 -0
  182. package/dist/ipc/inference_proc_executor.d.ts +23 -0
  183. package/dist/ipc/inference_proc_executor.d.ts.map +1 -0
  184. package/dist/ipc/inference_proc_executor.js +75 -0
  185. package/dist/ipc/inference_proc_executor.js.map +1 -0
  186. package/dist/ipc/inference_proc_lazy_main.cjs +86 -0
  187. package/dist/ipc/inference_proc_lazy_main.cjs.map +1 -0
  188. package/dist/ipc/inference_proc_lazy_main.d.cts +2 -0
  189. package/dist/ipc/inference_proc_lazy_main.d.ts +2 -0
  190. package/dist/ipc/inference_proc_lazy_main.d.ts.map +1 -0
  191. package/dist/ipc/inference_proc_lazy_main.js +85 -0
  192. package/dist/ipc/inference_proc_lazy_main.js.map +1 -0
  193. package/dist/ipc/job_executor.cjs +34 -0
  194. package/dist/ipc/job_executor.cjs.map +1 -0
  195. package/dist/ipc/job_executor.d.cts +18 -0
  196. package/dist/ipc/job_executor.d.ts +18 -0
  197. package/dist/ipc/job_executor.d.ts.map +1 -0
  198. package/dist/ipc/job_executor.js +10 -0
  199. package/dist/ipc/job_executor.js.map +1 -0
  200. package/dist/ipc/job_proc_executor.cjs +115 -0
  201. package/dist/ipc/job_proc_executor.cjs.map +1 -0
  202. package/dist/ipc/job_proc_executor.d.cts +19 -0
  203. package/dist/ipc/job_proc_executor.d.ts +19 -0
  204. package/dist/ipc/job_proc_executor.d.ts.map +1 -0
  205. package/dist/ipc/job_proc_executor.js +89 -0
  206. package/dist/ipc/job_proc_executor.js.map +1 -0
  207. package/dist/ipc/job_proc_lazy_main.cjs +210 -0
  208. package/dist/ipc/job_proc_lazy_main.cjs.map +1 -0
  209. package/dist/ipc/job_proc_lazy_main.d.cts +2 -0
  210. package/dist/ipc/job_proc_lazy_main.d.ts +2 -0
  211. package/dist/ipc/job_proc_lazy_main.d.ts.map +1 -0
  212. package/dist/ipc/job_proc_lazy_main.js +187 -0
  213. package/dist/ipc/job_proc_lazy_main.js.map +1 -0
  214. package/dist/ipc/message.cjs +17 -0
  215. package/dist/ipc/message.cjs.map +1 -0
  216. package/dist/ipc/message.d.cts +58 -0
  217. package/dist/ipc/message.d.ts +58 -0
  218. package/dist/ipc/message.d.ts.map +1 -0
  219. package/dist/ipc/message.js +1 -0
  220. package/dist/ipc/message.js.map +1 -0
  221. package/dist/ipc/proc_pool.cjs +164 -0
  222. package/dist/ipc/proc_pool.cjs.map +1 -0
  223. package/dist/ipc/proc_pool.d.cts +31 -0
  224. package/dist/ipc/proc_pool.d.ts +31 -0
  225. package/dist/ipc/proc_pool.d.ts.map +1 -0
  226. package/dist/ipc/proc_pool.js +140 -0
  227. package/dist/ipc/proc_pool.js.map +1 -0
  228. package/dist/ipc/supervised_proc.cjs +229 -0
  229. package/dist/ipc/supervised_proc.cjs.map +1 -0
  230. package/dist/ipc/supervised_proc.d.cts +32 -0
  231. package/dist/ipc/supervised_proc.d.ts +32 -0
  232. package/dist/ipc/supervised_proc.d.ts.map +1 -0
  233. package/dist/ipc/supervised_proc.js +195 -0
  234. package/dist/ipc/supervised_proc.js.map +1 -0
  235. package/dist/ipc/supervised_proc.test.cjs +145 -0
  236. package/dist/ipc/supervised_proc.test.cjs.map +1 -0
  237. package/dist/ipc/supervised_proc.test.js +122 -0
  238. package/dist/ipc/supervised_proc.test.js.map +1 -0
  239. package/dist/job.cjs +373 -0
  240. package/dist/job.cjs.map +1 -0
  241. package/dist/job.d.cts +141 -0
  242. package/dist/job.d.ts +141 -0
  243. package/dist/job.d.ts.map +1 -0
  244. package/dist/job.js +332 -0
  245. package/dist/job.js.map +1 -0
  246. package/dist/llm/chat_context.cjs +527 -0
  247. package/dist/llm/chat_context.cjs.map +1 -0
  248. package/dist/llm/chat_context.d.cts +223 -0
  249. package/dist/llm/chat_context.d.ts +223 -0
  250. package/dist/llm/chat_context.d.ts.map +1 -0
  251. package/dist/llm/chat_context.js +496 -0
  252. package/dist/llm/chat_context.js.map +1 -0
  253. package/dist/llm/chat_context.test.cjs +911 -0
  254. package/dist/llm/chat_context.test.cjs.map +1 -0
  255. package/dist/llm/chat_context.test.js +916 -0
  256. package/dist/llm/chat_context.test.js.map +1 -0
  257. package/dist/llm/fallback_adapter.cjs +278 -0
  258. package/dist/llm/fallback_adapter.cjs.map +1 -0
  259. package/dist/llm/fallback_adapter.d.cts +73 -0
  260. package/dist/llm/fallback_adapter.d.ts +73 -0
  261. package/dist/llm/fallback_adapter.d.ts.map +1 -0
  262. package/dist/llm/fallback_adapter.js +254 -0
  263. package/dist/llm/fallback_adapter.js.map +1 -0
  264. package/dist/llm/fallback_adapter.test.cjs +176 -0
  265. package/dist/llm/fallback_adapter.test.cjs.map +1 -0
  266. package/dist/llm/fallback_adapter.test.js +175 -0
  267. package/dist/llm/fallback_adapter.test.js.map +1 -0
  268. package/dist/llm/index.cjs +79 -0
  269. package/dist/llm/index.cjs.map +1 -0
  270. package/dist/llm/index.d.cts +9 -0
  271. package/dist/llm/index.d.ts +9 -0
  272. package/dist/llm/index.d.ts.map +1 -0
  273. package/dist/llm/index.js +61 -0
  274. package/dist/llm/index.js.map +1 -0
  275. package/dist/llm/llm.cjs +226 -0
  276. package/dist/llm/llm.cjs.map +1 -0
  277. package/dist/llm/llm.d.cts +94 -0
  278. package/dist/llm/llm.d.ts +94 -0
  279. package/dist/llm/llm.d.ts.map +1 -0
  280. package/dist/llm/llm.js +201 -0
  281. package/dist/llm/llm.js.map +1 -0
  282. package/dist/llm/provider_format/google.cjs +132 -0
  283. package/dist/llm/provider_format/google.cjs.map +1 -0
  284. package/dist/llm/provider_format/google.d.cts +6 -0
  285. package/dist/llm/provider_format/google.d.ts +6 -0
  286. package/dist/llm/provider_format/google.d.ts.map +1 -0
  287. package/dist/llm/provider_format/google.js +108 -0
  288. package/dist/llm/provider_format/google.js.map +1 -0
  289. package/dist/llm/provider_format/google.test.cjs +724 -0
  290. package/dist/llm/provider_format/google.test.cjs.map +1 -0
  291. package/dist/llm/provider_format/google.test.js +728 -0
  292. package/dist/llm/provider_format/google.test.js.map +1 -0
  293. package/dist/llm/provider_format/index.cjs +40 -0
  294. package/dist/llm/provider_format/index.cjs.map +1 -0
  295. package/dist/llm/provider_format/index.d.cts +4 -0
  296. package/dist/llm/provider_format/index.d.ts +4 -0
  297. package/dist/llm/provider_format/index.d.ts.map +1 -0
  298. package/dist/llm/provider_format/index.js +16 -0
  299. package/dist/llm/provider_format/index.js.map +1 -0
  300. package/dist/llm/provider_format/openai.cjs +138 -0
  301. package/dist/llm/provider_format/openai.cjs.map +1 -0
  302. package/dist/llm/provider_format/openai.d.cts +3 -0
  303. package/dist/llm/provider_format/openai.d.ts +3 -0
  304. package/dist/llm/provider_format/openai.d.ts.map +1 -0
  305. package/dist/llm/provider_format/openai.js +114 -0
  306. package/dist/llm/provider_format/openai.js.map +1 -0
  307. package/dist/llm/provider_format/openai.test.cjs +557 -0
  308. package/dist/llm/provider_format/openai.test.cjs.map +1 -0
  309. package/dist/llm/provider_format/openai.test.js +561 -0
  310. package/dist/llm/provider_format/openai.test.js.map +1 -0
  311. package/dist/llm/provider_format/utils.cjs +146 -0
  312. package/dist/llm/provider_format/utils.cjs.map +1 -0
  313. package/dist/llm/provider_format/utils.d.cts +38 -0
  314. package/dist/llm/provider_format/utils.d.ts +38 -0
  315. package/dist/llm/provider_format/utils.d.ts.map +1 -0
  316. package/dist/llm/provider_format/utils.js +122 -0
  317. package/dist/llm/provider_format/utils.js.map +1 -0
  318. package/dist/llm/realtime.cjs +77 -0
  319. package/dist/llm/realtime.cjs.map +1 -0
  320. package/dist/llm/realtime.d.cts +106 -0
  321. package/dist/llm/realtime.d.ts +106 -0
  322. package/dist/llm/realtime.d.ts.map +1 -0
  323. package/dist/llm/realtime.js +52 -0
  324. package/dist/llm/realtime.js.map +1 -0
  325. package/dist/llm/remote_chat_context.cjs +112 -0
  326. package/dist/llm/remote_chat_context.cjs.map +1 -0
  327. package/dist/llm/remote_chat_context.d.cts +25 -0
  328. package/dist/llm/remote_chat_context.d.ts +25 -0
  329. package/dist/llm/remote_chat_context.d.ts.map +1 -0
  330. package/dist/llm/remote_chat_context.js +88 -0
  331. package/dist/llm/remote_chat_context.js.map +1 -0
  332. package/dist/llm/remote_chat_context.test.cjs +225 -0
  333. package/dist/llm/remote_chat_context.test.cjs.map +1 -0
  334. package/dist/llm/remote_chat_context.test.js +224 -0
  335. package/dist/llm/remote_chat_context.test.js.map +1 -0
  336. package/dist/llm/tool_context.cjs +152 -0
  337. package/dist/llm/tool_context.cjs.map +1 -0
  338. package/dist/llm/tool_context.d.cts +153 -0
  339. package/dist/llm/tool_context.d.ts +153 -0
  340. package/dist/llm/tool_context.d.ts.map +1 -0
  341. package/dist/llm/tool_context.js +119 -0
  342. package/dist/llm/tool_context.js.map +1 -0
  343. package/dist/llm/tool_context.test.cjs +359 -0
  344. package/dist/llm/tool_context.test.cjs.map +1 -0
  345. package/dist/llm/tool_context.test.js +336 -0
  346. package/dist/llm/tool_context.test.js.map +1 -0
  347. package/dist/llm/tool_context.type.test.cjs +92 -0
  348. package/dist/llm/tool_context.type.test.cjs.map +1 -0
  349. package/dist/llm/tool_context.type.test.js +91 -0
  350. package/dist/llm/tool_context.type.test.js.map +1 -0
  351. package/dist/llm/utils.cjs +267 -0
  352. package/dist/llm/utils.cjs.map +1 -0
  353. package/dist/llm/utils.d.cts +41 -0
  354. package/dist/llm/utils.d.ts +41 -0
  355. package/dist/llm/utils.d.ts.map +1 -0
  356. package/dist/llm/utils.js +230 -0
  357. package/dist/llm/utils.js.map +1 -0
  358. package/dist/llm/utils.test.cjs +513 -0
  359. package/dist/llm/utils.test.cjs.map +1 -0
  360. package/dist/llm/utils.test.js +490 -0
  361. package/dist/llm/utils.test.js.map +1 -0
  362. package/dist/llm/zod-utils.cjs +102 -0
  363. package/dist/llm/zod-utils.cjs.map +1 -0
  364. package/dist/llm/zod-utils.d.cts +65 -0
  365. package/dist/llm/zod-utils.d.ts +65 -0
  366. package/dist/llm/zod-utils.d.ts.map +1 -0
  367. package/dist/llm/zod-utils.js +64 -0
  368. package/dist/llm/zod-utils.js.map +1 -0
  369. package/dist/llm/zod-utils.test.cjs +472 -0
  370. package/dist/llm/zod-utils.test.cjs.map +1 -0
  371. package/dist/llm/zod-utils.test.js +455 -0
  372. package/dist/llm/zod-utils.test.js.map +1 -0
  373. package/dist/log.cjs +81 -0
  374. package/dist/log.cjs.map +1 -0
  375. package/dist/log.d.cts +20 -0
  376. package/dist/log.d.ts +20 -0
  377. package/dist/log.d.ts.map +1 -0
  378. package/dist/log.js +54 -0
  379. package/dist/log.js.map +1 -0
  380. package/dist/metrics/base.cjs +17 -0
  381. package/dist/metrics/base.cjs.map +1 -0
  382. package/dist/metrics/base.d.cts +150 -0
  383. package/dist/metrics/base.d.ts +150 -0
  384. package/dist/metrics/base.d.ts.map +1 -0
  385. package/dist/metrics/base.js +1 -0
  386. package/dist/metrics/base.js.map +1 -0
  387. package/dist/metrics/index.cjs +32 -0
  388. package/dist/metrics/index.cjs.map +1 -0
  389. package/dist/metrics/index.d.cts +4 -0
  390. package/dist/metrics/index.d.ts +4 -0
  391. package/dist/metrics/index.d.ts.map +1 -0
  392. package/dist/metrics/index.js +7 -0
  393. package/dist/metrics/index.js.map +1 -0
  394. package/dist/metrics/usage_collector.cjs +58 -0
  395. package/dist/metrics/usage_collector.cjs.map +1 -0
  396. package/dist/metrics/usage_collector.d.cts +15 -0
  397. package/dist/metrics/usage_collector.d.ts +15 -0
  398. package/dist/metrics/usage_collector.d.ts.map +1 -0
  399. package/dist/metrics/usage_collector.js +34 -0
  400. package/dist/metrics/usage_collector.js.map +1 -0
  401. package/dist/metrics/utils.cjs +74 -0
  402. package/dist/metrics/utils.cjs.map +1 -0
  403. package/dist/metrics/utils.d.cts +3 -0
  404. package/dist/metrics/utils.d.ts +3 -0
  405. package/dist/metrics/utils.d.ts.map +1 -0
  406. package/dist/metrics/utils.js +50 -0
  407. package/dist/metrics/utils.js.map +1 -0
  408. package/dist/plugin.cjs +62 -0
  409. package/dist/plugin.cjs.map +1 -0
  410. package/dist/plugin.d.cts +24 -0
  411. package/dist/plugin.d.ts +24 -0
  412. package/dist/plugin.d.ts.map +1 -0
  413. package/dist/plugin.js +37 -0
  414. package/dist/plugin.js.map +1 -0
  415. package/dist/stream/deferred_stream.cjs +106 -0
  416. package/dist/stream/deferred_stream.cjs.map +1 -0
  417. package/dist/stream/deferred_stream.d.cts +32 -0
  418. package/dist/stream/deferred_stream.d.ts +32 -0
  419. package/dist/stream/deferred_stream.d.ts.map +1 -0
  420. package/dist/stream/deferred_stream.js +81 -0
  421. package/dist/stream/deferred_stream.js.map +1 -0
  422. package/dist/stream/deferred_stream.test.cjs +527 -0
  423. package/dist/stream/deferred_stream.test.cjs.map +1 -0
  424. package/dist/stream/deferred_stream.test.js +526 -0
  425. package/dist/stream/deferred_stream.test.js.map +1 -0
  426. package/dist/stream/identity_transform.cjs +42 -0
  427. package/dist/stream/identity_transform.cjs.map +1 -0
  428. package/dist/stream/identity_transform.d.cts +6 -0
  429. package/dist/stream/identity_transform.d.ts +6 -0
  430. package/dist/stream/identity_transform.d.ts.map +1 -0
  431. package/dist/stream/identity_transform.js +18 -0
  432. package/dist/stream/identity_transform.js.map +1 -0
  433. package/dist/stream/identity_transform.test.cjs +125 -0
  434. package/dist/stream/identity_transform.test.cjs.map +1 -0
  435. package/dist/stream/identity_transform.test.js +124 -0
  436. package/dist/stream/identity_transform.test.js.map +1 -0
  437. package/dist/stream/index.cjs +38 -0
  438. package/dist/stream/index.cjs.map +1 -0
  439. package/dist/stream/index.d.cts +5 -0
  440. package/dist/stream/index.d.ts +5 -0
  441. package/dist/stream/index.d.ts.map +1 -0
  442. package/dist/stream/index.js +11 -0
  443. package/dist/stream/index.js.map +1 -0
  444. package/dist/stream/merge_readable_streams.cjs +59 -0
  445. package/dist/stream/merge_readable_streams.cjs.map +1 -0
  446. package/dist/stream/merge_readable_streams.d.cts +4 -0
  447. package/dist/stream/merge_readable_streams.d.ts +4 -0
  448. package/dist/stream/merge_readable_streams.d.ts.map +1 -0
  449. package/dist/stream/merge_readable_streams.js +35 -0
  450. package/dist/stream/merge_readable_streams.js.map +1 -0
  451. package/dist/stream/stream_channel.cjs +57 -0
  452. package/dist/stream/stream_channel.cjs.map +1 -0
  453. package/dist/stream/stream_channel.d.cts +11 -0
  454. package/dist/stream/stream_channel.d.ts +11 -0
  455. package/dist/stream/stream_channel.d.ts.map +1 -0
  456. package/dist/stream/stream_channel.js +33 -0
  457. package/dist/stream/stream_channel.js.map +1 -0
  458. package/dist/stream/stream_channel.test.cjs +124 -0
  459. package/dist/stream/stream_channel.test.cjs.map +1 -0
  460. package/dist/stream/stream_channel.test.js +123 -0
  461. package/dist/stream/stream_channel.test.js.map +1 -0
  462. package/dist/stt/index.cjs +38 -0
  463. package/dist/stt/index.cjs.map +1 -0
  464. package/dist/stt/index.d.cts +3 -0
  465. package/dist/stt/index.d.ts +3 -0
  466. package/dist/stt/index.d.ts.map +1 -0
  467. package/dist/stt/index.js +14 -0
  468. package/dist/stt/index.js.map +1 -0
  469. package/dist/stt/stream_adapter.cjs +115 -0
  470. package/dist/stt/stream_adapter.cjs.map +1 -0
  471. package/dist/stt/stream_adapter.d.cts +23 -0
  472. package/dist/stt/stream_adapter.d.ts +23 -0
  473. package/dist/stt/stream_adapter.d.ts.map +1 -0
  474. package/dist/stt/stream_adapter.js +90 -0
  475. package/dist/stt/stream_adapter.js.map +1 -0
  476. package/dist/stt/stt.cjs +253 -0
  477. package/dist/stt/stt.cjs.map +1 -0
  478. package/dist/stt/stt.d.cts +158 -0
  479. package/dist/stt/stt.d.ts +158 -0
  480. package/dist/stt/stt.d.ts.map +1 -0
  481. package/dist/stt/stt.js +227 -0
  482. package/dist/stt/stt.js.map +1 -0
  483. package/dist/telemetry/index.cjs +72 -0
  484. package/dist/telemetry/index.cjs.map +1 -0
  485. package/dist/telemetry/index.d.cts +7 -0
  486. package/dist/telemetry/index.d.ts +7 -0
  487. package/dist/telemetry/index.d.ts.map +1 -0
  488. package/dist/telemetry/index.js +37 -0
  489. package/dist/telemetry/index.js.map +1 -0
  490. package/dist/telemetry/logging.cjs +65 -0
  491. package/dist/telemetry/logging.cjs.map +1 -0
  492. package/dist/telemetry/logging.d.cts +21 -0
  493. package/dist/telemetry/logging.d.ts +21 -0
  494. package/dist/telemetry/logging.d.ts.map +1 -0
  495. package/dist/telemetry/logging.js +40 -0
  496. package/dist/telemetry/logging.js.map +1 -0
  497. package/dist/telemetry/otel_http_exporter.cjs +147 -0
  498. package/dist/telemetry/otel_http_exporter.cjs.map +1 -0
  499. package/dist/telemetry/otel_http_exporter.d.cts +62 -0
  500. package/dist/telemetry/otel_http_exporter.d.ts +62 -0
  501. package/dist/telemetry/otel_http_exporter.d.ts.map +1 -0
  502. package/dist/telemetry/otel_http_exporter.js +123 -0
  503. package/dist/telemetry/otel_http_exporter.js.map +1 -0
  504. package/dist/telemetry/pino_otel_transport.cjs +217 -0
  505. package/dist/telemetry/pino_otel_transport.cjs.map +1 -0
  506. package/dist/telemetry/pino_otel_transport.d.cts +58 -0
  507. package/dist/telemetry/pino_otel_transport.d.ts +58 -0
  508. package/dist/telemetry/pino_otel_transport.d.ts.map +1 -0
  509. package/dist/telemetry/pino_otel_transport.js +189 -0
  510. package/dist/telemetry/pino_otel_transport.js.map +1 -0
  511. package/dist/telemetry/trace_types.cjs +206 -0
  512. package/dist/telemetry/trace_types.cjs.map +1 -0
  513. package/dist/telemetry/trace_types.d.cts +61 -0
  514. package/dist/telemetry/trace_types.d.ts +61 -0
  515. package/dist/telemetry/trace_types.d.ts.map +1 -0
  516. package/dist/telemetry/trace_types.js +123 -0
  517. package/dist/telemetry/trace_types.js.map +1 -0
  518. package/dist/telemetry/traces.cjs +444 -0
  519. package/dist/telemetry/traces.cjs.map +1 -0
  520. package/dist/telemetry/traces.d.cts +114 -0
  521. package/dist/telemetry/traces.d.ts +114 -0
  522. package/dist/telemetry/traces.d.ts.map +1 -0
  523. package/dist/telemetry/traces.js +409 -0
  524. package/dist/telemetry/traces.js.map +1 -0
  525. package/dist/telemetry/utils.cjs +86 -0
  526. package/dist/telemetry/utils.cjs.map +1 -0
  527. package/dist/telemetry/utils.d.cts +5 -0
  528. package/dist/telemetry/utils.d.ts +5 -0
  529. package/dist/telemetry/utils.d.ts.map +1 -0
  530. package/dist/telemetry/utils.js +51 -0
  531. package/dist/telemetry/utils.js.map +1 -0
  532. package/dist/tokenize/basic/basic.cjs +105 -0
  533. package/dist/tokenize/basic/basic.cjs.map +1 -0
  534. package/dist/tokenize/basic/basic.d.cts +24 -0
  535. package/dist/tokenize/basic/basic.d.ts +24 -0
  536. package/dist/tokenize/basic/basic.d.ts.map +1 -0
  537. package/dist/tokenize/basic/basic.js +67 -0
  538. package/dist/tokenize/basic/basic.js.map +1 -0
  539. package/dist/tokenize/basic/hyphenator.cjs +425 -0
  540. package/dist/tokenize/basic/hyphenator.cjs.map +1 -0
  541. package/dist/tokenize/basic/hyphenator.d.cts +17 -0
  542. package/dist/tokenize/basic/hyphenator.d.ts +17 -0
  543. package/dist/tokenize/basic/hyphenator.d.ts.map +1 -0
  544. package/dist/tokenize/basic/hyphenator.js +401 -0
  545. package/dist/tokenize/basic/hyphenator.js.map +1 -0
  546. package/dist/tokenize/basic/index.cjs +37 -0
  547. package/dist/tokenize/basic/index.cjs.map +1 -0
  548. package/dist/tokenize/basic/index.d.cts +2 -0
  549. package/dist/tokenize/basic/index.d.ts +2 -0
  550. package/dist/tokenize/basic/index.d.ts.map +1 -0
  551. package/dist/tokenize/basic/index.js +15 -0
  552. package/dist/tokenize/basic/index.js.map +1 -0
  553. package/dist/tokenize/basic/paragraph.cjs +57 -0
  554. package/dist/tokenize/basic/paragraph.cjs.map +1 -0
  555. package/dist/tokenize/basic/paragraph.d.cts +5 -0
  556. package/dist/tokenize/basic/paragraph.d.ts +5 -0
  557. package/dist/tokenize/basic/paragraph.d.ts.map +1 -0
  558. package/dist/tokenize/basic/paragraph.js +33 -0
  559. package/dist/tokenize/basic/paragraph.js.map +1 -0
  560. package/dist/tokenize/basic/sentence.cjs +97 -0
  561. package/dist/tokenize/basic/sentence.cjs.map +1 -0
  562. package/dist/tokenize/basic/sentence.d.cts +5 -0
  563. package/dist/tokenize/basic/sentence.d.ts +5 -0
  564. package/dist/tokenize/basic/sentence.d.ts.map +1 -0
  565. package/dist/tokenize/basic/sentence.js +73 -0
  566. package/dist/tokenize/basic/sentence.js.map +1 -0
  567. package/dist/tokenize/basic/word.cjs +44 -0
  568. package/dist/tokenize/basic/word.cjs.map +1 -0
  569. package/dist/tokenize/basic/word.d.cts +5 -0
  570. package/dist/tokenize/basic/word.d.ts +5 -0
  571. package/dist/tokenize/basic/word.d.ts.map +1 -0
  572. package/dist/tokenize/basic/word.js +20 -0
  573. package/dist/tokenize/basic/word.js.map +1 -0
  574. package/dist/tokenize/index.cjs +55 -0
  575. package/dist/tokenize/index.cjs.map +1 -0
  576. package/dist/tokenize/index.d.cts +5 -0
  577. package/dist/tokenize/index.d.ts +5 -0
  578. package/dist/tokenize/index.d.ts.map +1 -0
  579. package/dist/tokenize/index.js +19 -0
  580. package/dist/tokenize/index.js.map +1 -0
  581. package/dist/tokenize/token_stream.cjs +168 -0
  582. package/dist/tokenize/token_stream.cjs.map +1 -0
  583. package/dist/tokenize/token_stream.d.cts +40 -0
  584. package/dist/tokenize/token_stream.d.ts +40 -0
  585. package/dist/tokenize/token_stream.d.ts.map +1 -0
  586. package/dist/tokenize/token_stream.js +142 -0
  587. package/dist/tokenize/token_stream.js.map +1 -0
  588. package/dist/tokenize/tokenizer.cjs +184 -0
  589. package/dist/tokenize/tokenizer.cjs.map +1 -0
  590. package/dist/tokenize/tokenizer.d.cts +55 -0
  591. package/dist/tokenize/tokenizer.d.ts +55 -0
  592. package/dist/tokenize/tokenizer.d.ts.map +1 -0
  593. package/dist/tokenize/tokenizer.js +156 -0
  594. package/dist/tokenize/tokenizer.js.map +1 -0
  595. package/dist/tokenize/tokenizer.test.cjs +220 -0
  596. package/dist/tokenize/tokenizer.test.cjs.map +1 -0
  597. package/dist/tokenize/tokenizer.test.js +219 -0
  598. package/dist/tokenize/tokenizer.test.js.map +1 -0
  599. package/dist/transcription.cjs +247 -0
  600. package/dist/transcription.cjs.map +1 -0
  601. package/dist/transcription.d.cts +31 -0
  602. package/dist/transcription.d.ts +31 -0
  603. package/dist/transcription.d.ts.map +1 -0
  604. package/dist/transcription.js +222 -0
  605. package/dist/transcription.js.map +1 -0
  606. package/dist/tts/index.cjs +38 -0
  607. package/dist/tts/index.cjs.map +1 -0
  608. package/dist/tts/index.d.cts +3 -0
  609. package/dist/tts/index.d.ts +3 -0
  610. package/dist/tts/index.d.ts.map +1 -0
  611. package/dist/tts/index.js +14 -0
  612. package/dist/tts/index.js.map +1 -0
  613. package/dist/tts/stream_adapter.cjs +105 -0
  614. package/dist/tts/stream_adapter.cjs.map +1 -0
  615. package/dist/tts/stream_adapter.d.cts +20 -0
  616. package/dist/tts/stream_adapter.d.ts +20 -0
  617. package/dist/tts/stream_adapter.d.ts.map +1 -0
  618. package/dist/tts/stream_adapter.js +80 -0
  619. package/dist/tts/stream_adapter.js.map +1 -0
  620. package/dist/tts/tts.cjs +431 -0
  621. package/dist/tts/tts.cjs.map +1 -0
  622. package/dist/tts/tts.d.cts +161 -0
  623. package/dist/tts/tts.d.ts +161 -0
  624. package/dist/tts/tts.d.ts.map +1 -0
  625. package/dist/tts/tts.js +405 -0
  626. package/dist/tts/tts.js.map +1 -0
  627. package/dist/types.cjs +49 -0
  628. package/dist/types.cjs.map +1 -0
  629. package/dist/types.d.cts +44 -0
  630. package/dist/types.d.ts +44 -0
  631. package/dist/types.d.ts.map +1 -0
  632. package/dist/types.js +23 -0
  633. package/dist/types.js.map +1 -0
  634. package/dist/utils/ws_transport.cjs +51 -0
  635. package/dist/utils/ws_transport.cjs.map +1 -0
  636. package/dist/utils/ws_transport.d.cts +9 -0
  637. package/dist/utils/ws_transport.d.ts +9 -0
  638. package/dist/utils/ws_transport.d.ts.map +1 -0
  639. package/dist/utils/ws_transport.js +17 -0
  640. package/dist/utils/ws_transport.js.map +1 -0
  641. package/dist/utils/ws_transport.test.cjs +212 -0
  642. package/dist/utils/ws_transport.test.cjs.map +1 -0
  643. package/dist/utils/ws_transport.test.js +211 -0
  644. package/dist/utils/ws_transport.test.js.map +1 -0
  645. package/dist/utils.cjs +669 -0
  646. package/dist/utils.cjs.map +1 -0
  647. package/dist/utils.d.cts +244 -0
  648. package/dist/utils.d.ts +244 -0
  649. package/dist/utils.d.ts.map +1 -0
  650. package/dist/utils.js +617 -0
  651. package/dist/utils.js.map +1 -0
  652. package/dist/utils.test.cjs +492 -0
  653. package/dist/utils.test.cjs.map +1 -0
  654. package/dist/utils.test.js +491 -0
  655. package/dist/utils.test.js.map +1 -0
  656. package/dist/vad.cjs +211 -0
  657. package/dist/vad.cjs.map +1 -0
  658. package/dist/vad.d.cts +105 -0
  659. package/dist/vad.d.ts +105 -0
  660. package/dist/vad.d.ts.map +1 -0
  661. package/dist/vad.js +185 -0
  662. package/dist/vad.js.map +1 -0
  663. package/dist/version.cjs +29 -0
  664. package/dist/version.cjs.map +1 -0
  665. package/dist/version.d.cts +2 -0
  666. package/dist/version.d.ts +2 -0
  667. package/dist/version.d.ts.map +1 -0
  668. package/dist/version.js +5 -0
  669. package/dist/version.js.map +1 -0
  670. package/dist/voice/agent.cjs +308 -0
  671. package/dist/voice/agent.cjs.map +1 -0
  672. package/dist/voice/agent.d.cts +83 -0
  673. package/dist/voice/agent.d.ts +83 -0
  674. package/dist/voice/agent.d.ts.map +1 -0
  675. package/dist/voice/agent.js +287 -0
  676. package/dist/voice/agent.js.map +1 -0
  677. package/dist/voice/agent.test.cjs +61 -0
  678. package/dist/voice/agent.test.cjs.map +1 -0
  679. package/dist/voice/agent.test.js +60 -0
  680. package/dist/voice/agent.test.js.map +1 -0
  681. package/dist/voice/agent_activity.cjs +1784 -0
  682. package/dist/voice/agent_activity.cjs.map +1 -0
  683. package/dist/voice/agent_activity.d.cts +116 -0
  684. package/dist/voice/agent_activity.d.ts +116 -0
  685. package/dist/voice/agent_activity.d.ts.map +1 -0
  686. package/dist/voice/agent_activity.js +1780 -0
  687. package/dist/voice/agent_activity.js.map +1 -0
  688. package/dist/voice/agent_session.cjs +592 -0
  689. package/dist/voice/agent_session.cjs.map +1 -0
  690. package/dist/voice/agent_session.d.cts +165 -0
  691. package/dist/voice/agent_session.d.ts +165 -0
  692. package/dist/voice/agent_session.d.ts.map +1 -0
  693. package/dist/voice/agent_session.js +582 -0
  694. package/dist/voice/agent_session.js.map +1 -0
  695. package/dist/voice/audio_recognition.cjs +668 -0
  696. package/dist/voice/audio_recognition.cjs.map +1 -0
  697. package/dist/voice/audio_recognition.d.cts +127 -0
  698. package/dist/voice/audio_recognition.d.ts +127 -0
  699. package/dist/voice/audio_recognition.d.ts.map +1 -0
  700. package/dist/voice/audio_recognition.js +647 -0
  701. package/dist/voice/audio_recognition.js.map +1 -0
  702. package/dist/voice/avatar/datastream_io.cjs +204 -0
  703. package/dist/voice/avatar/datastream_io.cjs.map +1 -0
  704. package/dist/voice/avatar/datastream_io.d.cts +37 -0
  705. package/dist/voice/avatar/datastream_io.d.ts +37 -0
  706. package/dist/voice/avatar/datastream_io.d.ts.map +1 -0
  707. package/dist/voice/avatar/datastream_io.js +188 -0
  708. package/dist/voice/avatar/datastream_io.js.map +1 -0
  709. package/dist/voice/avatar/index.cjs +23 -0
  710. package/dist/voice/avatar/index.cjs.map +1 -0
  711. package/dist/voice/avatar/index.d.cts +2 -0
  712. package/dist/voice/avatar/index.d.ts +2 -0
  713. package/dist/voice/avatar/index.d.ts.map +1 -0
  714. package/dist/voice/avatar/index.js +2 -0
  715. package/dist/voice/avatar/index.js.map +1 -0
  716. package/dist/voice/background_audio.cjs +366 -0
  717. package/dist/voice/background_audio.cjs.map +1 -0
  718. package/dist/voice/background_audio.d.cts +121 -0
  719. package/dist/voice/background_audio.d.ts +121 -0
  720. package/dist/voice/background_audio.d.ts.map +1 -0
  721. package/dist/voice/background_audio.js +342 -0
  722. package/dist/voice/background_audio.js.map +1 -0
  723. package/dist/voice/events.cjs +147 -0
  724. package/dist/voice/events.cjs.map +1 -0
  725. package/dist/voice/events.d.cts +127 -0
  726. package/dist/voice/events.d.ts +127 -0
  727. package/dist/voice/events.d.ts.map +1 -0
  728. package/dist/voice/events.js +112 -0
  729. package/dist/voice/events.js.map +1 -0
  730. package/dist/voice/generation.cjs +747 -0
  731. package/dist/voice/generation.cjs.map +1 -0
  732. package/dist/voice/generation.d.cts +116 -0
  733. package/dist/voice/generation.d.ts +116 -0
  734. package/dist/voice/generation.d.ts.map +1 -0
  735. package/dist/voice/generation.js +719 -0
  736. package/dist/voice/generation.js.map +1 -0
  737. package/dist/voice/generation_tools.test.cjs +236 -0
  738. package/dist/voice/generation_tools.test.cjs.map +1 -0
  739. package/dist/voice/generation_tools.test.js +235 -0
  740. package/dist/voice/generation_tools.test.js.map +1 -0
  741. package/dist/voice/index.cjs +49 -0
  742. package/dist/voice/index.cjs.map +1 -0
  743. package/dist/voice/index.d.cts +10 -0
  744. package/dist/voice/index.d.ts +10 -0
  745. package/dist/voice/index.d.ts.map +1 -0
  746. package/dist/voice/index.js +16 -0
  747. package/dist/voice/index.js.map +1 -0
  748. package/dist/voice/interruption_detection.test.cjs +114 -0
  749. package/dist/voice/interruption_detection.test.cjs.map +1 -0
  750. package/dist/voice/interruption_detection.test.js +113 -0
  751. package/dist/voice/interruption_detection.test.js.map +1 -0
  752. package/dist/voice/io.cjs +270 -0
  753. package/dist/voice/io.cjs.map +1 -0
  754. package/dist/voice/io.d.cts +126 -0
  755. package/dist/voice/io.d.ts +126 -0
  756. package/dist/voice/io.d.ts.map +1 -0
  757. package/dist/voice/io.js +242 -0
  758. package/dist/voice/io.js.map +1 -0
  759. package/dist/voice/recorder_io/index.cjs +23 -0
  760. package/dist/voice/recorder_io/index.cjs.map +1 -0
  761. package/dist/voice/recorder_io/index.d.cts +2 -0
  762. package/dist/voice/recorder_io/index.d.ts +2 -0
  763. package/dist/voice/recorder_io/index.d.ts.map +1 -0
  764. package/dist/voice/recorder_io/index.js +2 -0
  765. package/dist/voice/recorder_io/index.js.map +1 -0
  766. package/dist/voice/recorder_io/recorder_io.cjs +542 -0
  767. package/dist/voice/recorder_io/recorder_io.cjs.map +1 -0
  768. package/dist/voice/recorder_io/recorder_io.d.cts +100 -0
  769. package/dist/voice/recorder_io/recorder_io.d.ts +100 -0
  770. package/dist/voice/recorder_io/recorder_io.d.ts.map +1 -0
  771. package/dist/voice/recorder_io/recorder_io.js +508 -0
  772. package/dist/voice/recorder_io/recorder_io.js.map +1 -0
  773. package/dist/voice/report.cjs +75 -0
  774. package/dist/voice/report.cjs.map +1 -0
  775. package/dist/voice/report.d.cts +42 -0
  776. package/dist/voice/report.d.ts +42 -0
  777. package/dist/voice/report.d.ts.map +1 -0
  778. package/dist/voice/report.js +50 -0
  779. package/dist/voice/report.js.map +1 -0
  780. package/dist/voice/room_io/_input.cjs +133 -0
  781. package/dist/voice/room_io/_input.cjs.map +1 -0
  782. package/dist/voice/room_io/_input.d.cts +24 -0
  783. package/dist/voice/room_io/_input.d.ts +24 -0
  784. package/dist/voice/room_io/_input.d.ts.map +1 -0
  785. package/dist/voice/room_io/_input.js +114 -0
  786. package/dist/voice/room_io/_input.js.map +1 -0
  787. package/dist/voice/room_io/_output.cjs +359 -0
  788. package/dist/voice/room_io/_output.cjs.map +1 -0
  789. package/dist/voice/room_io/_output.d.cts +77 -0
  790. package/dist/voice/room_io/_output.d.ts +77 -0
  791. package/dist/voice/room_io/_output.d.ts.map +1 -0
  792. package/dist/voice/room_io/_output.js +343 -0
  793. package/dist/voice/room_io/_output.js.map +1 -0
  794. package/dist/voice/room_io/index.cjs +25 -0
  795. package/dist/voice/room_io/index.cjs.map +1 -0
  796. package/dist/voice/room_io/index.d.cts +3 -0
  797. package/dist/voice/room_io/index.d.ts +3 -0
  798. package/dist/voice/room_io/index.d.ts.map +1 -0
  799. package/dist/voice/room_io/index.js +3 -0
  800. package/dist/voice/room_io/index.js.map +1 -0
  801. package/dist/voice/room_io/room_io.cjs +373 -0
  802. package/dist/voice/room_io/room_io.cjs.map +1 -0
  803. package/dist/voice/room_io/room_io.d.cts +94 -0
  804. package/dist/voice/room_io/room_io.d.ts +94 -0
  805. package/dist/voice/room_io/room_io.d.ts.map +1 -0
  806. package/dist/voice/room_io/room_io.js +364 -0
  807. package/dist/voice/room_io/room_io.js.map +1 -0
  808. package/dist/voice/run_context.cjs +51 -0
  809. package/dist/voice/run_context.cjs.map +1 -0
  810. package/dist/voice/run_context.d.cts +22 -0
  811. package/dist/voice/run_context.d.ts +22 -0
  812. package/dist/voice/run_context.d.ts.map +1 -0
  813. package/dist/voice/run_context.js +27 -0
  814. package/dist/voice/run_context.js.map +1 -0
  815. package/dist/voice/speech_handle.cjs +228 -0
  816. package/dist/voice/speech_handle.cjs.map +1 -0
  817. package/dist/voice/speech_handle.d.cts +97 -0
  818. package/dist/voice/speech_handle.d.ts +97 -0
  819. package/dist/voice/speech_handle.d.ts.map +1 -0
  820. package/dist/voice/speech_handle.js +204 -0
  821. package/dist/voice/speech_handle.js.map +1 -0
  822. package/dist/voice/transcription/_utils.cjs +45 -0
  823. package/dist/voice/transcription/_utils.cjs.map +1 -0
  824. package/dist/voice/transcription/_utils.d.cts +3 -0
  825. package/dist/voice/transcription/_utils.d.ts +3 -0
  826. package/dist/voice/transcription/_utils.d.ts.map +1 -0
  827. package/dist/voice/transcription/_utils.js +21 -0
  828. package/dist/voice/transcription/_utils.js.map +1 -0
  829. package/dist/voice/transcription/index.cjs +23 -0
  830. package/dist/voice/transcription/index.cjs.map +1 -0
  831. package/dist/voice/transcription/index.d.cts +2 -0
  832. package/dist/voice/transcription/index.d.ts +2 -0
  833. package/dist/voice/transcription/index.d.ts.map +1 -0
  834. package/dist/voice/transcription/index.js +2 -0
  835. package/dist/voice/transcription/index.js.map +1 -0
  836. package/dist/voice/transcription/synchronizer.cjs +379 -0
  837. package/dist/voice/transcription/synchronizer.cjs.map +1 -0
  838. package/dist/voice/transcription/synchronizer.d.cts +87 -0
  839. package/dist/voice/transcription/synchronizer.d.ts +87 -0
  840. package/dist/voice/transcription/synchronizer.d.ts.map +1 -0
  841. package/dist/voice/transcription/synchronizer.js +354 -0
  842. package/dist/voice/transcription/synchronizer.js.map +1 -0
  843. package/dist/worker.cjs +680 -0
  844. package/dist/worker.cjs.map +1 -0
  845. package/dist/worker.d.cts +119 -0
  846. package/dist/worker.d.ts +119 -0
  847. package/dist/worker.d.ts.map +1 -0
  848. package/dist/worker.js +645 -0
  849. package/dist/worker.js.map +1 -0
  850. package/package.json +86 -0
  851. package/resources/NOTICE +2 -0
  852. package/resources/keyboard-typing.ogg +0 -0
  853. package/resources/keyboard-typing2.ogg +0 -0
  854. package/resources/office-ambience.ogg +0 -0
  855. package/src/_exceptions.ts +137 -0
  856. package/src/audio.ts +205 -0
  857. package/src/cli.ts +224 -0
  858. package/src/connection_pool.test.ts +346 -0
  859. package/src/connection_pool.ts +307 -0
  860. package/src/constants.ts +9 -0
  861. package/src/generator.ts +38 -0
  862. package/src/http_server.ts +64 -0
  863. package/src/index.ts +41 -0
  864. package/src/inference/api_protos.ts +82 -0
  865. package/src/inference/index.ts +32 -0
  866. package/src/inference/interruption/AdaptiveInterruptionDetector.ts +166 -0
  867. package/src/inference/interruption/InterruptionStream.ts +397 -0
  868. package/src/inference/interruption/defaults.ts +33 -0
  869. package/src/inference/interruption/errors.ts +0 -0
  870. package/src/inference/interruption/http_transport.ts +61 -0
  871. package/src/inference/interruption/index.ts +4 -0
  872. package/src/inference/interruption/interruption.ts +88 -0
  873. package/src/inference/llm.ts +532 -0
  874. package/src/inference/stt.ts +524 -0
  875. package/src/inference/tts.ts +574 -0
  876. package/src/inference/utils.test.ts +31 -0
  877. package/src/inference/utils.ts +81 -0
  878. package/src/inference_runner.ts +19 -0
  879. package/src/ipc/index.ts +5 -0
  880. package/src/ipc/inference_executor.ts +7 -0
  881. package/src/ipc/inference_proc_executor.ts +101 -0
  882. package/src/ipc/inference_proc_lazy_main.ts +115 -0
  883. package/src/ipc/job_executor.ts +23 -0
  884. package/src/ipc/job_proc_executor.ts +122 -0
  885. package/src/ipc/job_proc_lazy_main.ts +247 -0
  886. package/src/ipc/message.ts +52 -0
  887. package/src/ipc/proc_pool.ts +164 -0
  888. package/src/ipc/supervised_proc.test.ts +153 -0
  889. package/src/ipc/supervised_proc.ts +242 -0
  890. package/src/job.ts +461 -0
  891. package/src/llm/__snapshots__/chat_context.test.ts.snap +527 -0
  892. package/src/llm/__snapshots__/tool_context.test.ts.snap +177 -0
  893. package/src/llm/__snapshots__/zod-utils.test.ts.snap +559 -0
  894. package/src/llm/chat_context.test.ts +1057 -0
  895. package/src/llm/chat_context.ts +759 -0
  896. package/src/llm/fallback_adapter.test.ts +238 -0
  897. package/src/llm/fallback_adapter.ts +391 -0
  898. package/src/llm/index.ts +74 -0
  899. package/src/llm/llm.ts +303 -0
  900. package/src/llm/provider_format/google.test.ts +843 -0
  901. package/src/llm/provider_format/google.ts +134 -0
  902. package/src/llm/provider_format/index.ts +23 -0
  903. package/src/llm/provider_format/openai.test.ts +675 -0
  904. package/src/llm/provider_format/openai.ts +146 -0
  905. package/src/llm/provider_format/utils.ts +187 -0
  906. package/src/llm/realtime.ts +163 -0
  907. package/src/llm/remote_chat_context.test.ts +290 -0
  908. package/src/llm/remote_chat_context.ts +114 -0
  909. package/src/llm/tool_context.test.ts +407 -0
  910. package/src/llm/tool_context.ts +343 -0
  911. package/src/llm/tool_context.type.test.ts +115 -0
  912. package/src/llm/utils.test.ts +670 -0
  913. package/src/llm/utils.ts +336 -0
  914. package/src/llm/zod-utils.test.ts +577 -0
  915. package/src/llm/zod-utils.ts +153 -0
  916. package/src/log.ts +83 -0
  917. package/src/metrics/base.ts +168 -0
  918. package/src/metrics/index.ts +15 -0
  919. package/src/metrics/usage_collector.ts +46 -0
  920. package/src/metrics/utils.ts +64 -0
  921. package/src/plugin.ts +46 -0
  922. package/src/stream/deferred_stream.test.ts +755 -0
  923. package/src/stream/deferred_stream.ts +127 -0
  924. package/src/stream/identity_transform.test.ts +179 -0
  925. package/src/stream/identity_transform.ts +18 -0
  926. package/src/stream/index.ts +7 -0
  927. package/src/stream/merge_readable_streams.ts +40 -0
  928. package/src/stream/stream_channel.test.ts +166 -0
  929. package/src/stream/stream_channel.ts +44 -0
  930. package/src/stt/index.ts +15 -0
  931. package/src/stt/stream_adapter.ts +107 -0
  932. package/src/stt/stt.ts +374 -0
  933. package/src/telemetry/index.ts +28 -0
  934. package/src/telemetry/logging.ts +55 -0
  935. package/src/telemetry/otel_http_exporter.ts +195 -0
  936. package/src/telemetry/pino_otel_transport.ts +265 -0
  937. package/src/telemetry/trace_types.ts +95 -0
  938. package/src/telemetry/traces.ts +612 -0
  939. package/src/telemetry/utils.ts +61 -0
  940. package/src/tokenize/basic/basic.ts +83 -0
  941. package/src/tokenize/basic/hyphenator.ts +434 -0
  942. package/src/tokenize/basic/index.ts +11 -0
  943. package/src/tokenize/basic/paragraph.ts +43 -0
  944. package/src/tokenize/basic/sentence.ts +89 -0
  945. package/src/tokenize/basic/word.ts +27 -0
  946. package/src/tokenize/index.ts +16 -0
  947. package/src/tokenize/token_stream.ts +180 -0
  948. package/src/tokenize/tokenizer.test.ts +255 -0
  949. package/src/tokenize/tokenizer.ts +152 -0
  950. package/src/transcription.ts +307 -0
  951. package/src/tts/index.ts +12 -0
  952. package/src/tts/stream_adapter.ts +110 -0
  953. package/src/tts/tts.ts +598 -0
  954. package/src/types.ts +66 -0
  955. package/src/utils/ws_transport.test.ts +282 -0
  956. package/src/utils/ws_transport.ts +22 -0
  957. package/src/utils.test.ts +651 -0
  958. package/src/utils.ts +871 -0
  959. package/src/vad.ts +262 -0
  960. package/src/version.ts +5 -0
  961. package/src/voice/agent.test.ts +80 -0
  962. package/src/voice/agent.ts +418 -0
  963. package/src/voice/agent_activity.ts +2375 -0
  964. package/src/voice/agent_session.ts +866 -0
  965. package/src/voice/audio_recognition.ts +877 -0
  966. package/src/voice/avatar/datastream_io.ts +247 -0
  967. package/src/voice/avatar/index.ts +4 -0
  968. package/src/voice/background_audio.ts +491 -0
  969. package/src/voice/events.ts +261 -0
  970. package/src/voice/generation.ts +946 -0
  971. package/src/voice/generation_tools.test.ts +268 -0
  972. package/src/voice/index.ts +12 -0
  973. package/src/voice/interruption_detection.test.ts +151 -0
  974. package/src/voice/io.ts +347 -0
  975. package/src/voice/recorder_io/index.ts +4 -0
  976. package/src/voice/recorder_io/recorder_io.ts +690 -0
  977. package/src/voice/report.ts +100 -0
  978. package/src/voice/room_io/_input.ts +162 -0
  979. package/src/voice/room_io/_output.ts +439 -0
  980. package/src/voice/room_io/index.ts +5 -0
  981. package/src/voice/room_io/room_io.ts +518 -0
  982. package/src/voice/run_context.ts +34 -0
  983. package/src/voice/speech_handle.ts +250 -0
  984. package/src/voice/transcription/_utils.ts +25 -0
  985. package/src/voice/transcription/index.ts +4 -0
  986. package/src/voice/transcription/synchronizer.ts +477 -0
  987. package/src/worker.ts +798 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/telemetry/pino_otel_transport.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2025 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Custom Pino OTEL Transport\n *\n * Standalone exporter for Pino logs to LiveKit Cloud.\n * Uses raw HTTP JSON format, bypassing the OTEL SDK.\n */\nimport { SeverityNumber } from '@opentelemetry/api-logs';\nimport { AccessToken } from 'livekit-server-sdk';\n\nexport interface PinoLogObject {\n level: number;\n time: number;\n msg: string;\n pid?: number;\n hostname?: string;\n [key: string]: unknown;\n}\n\nexport interface PinoCloudExporterConfig {\n cloudHostname: string;\n roomId: string;\n jobId: string;\n loggerName?: string;\n batchSize?: number;\n flushIntervalMs?: number;\n}\n\nfunction mapPinoLevelToSeverity(pinoLevel: number): {\n severityNumber: SeverityNumber;\n severityText: string;\n} {\n if (pinoLevel <= 10) {\n return { severityNumber: SeverityNumber.TRACE, severityText: 'TRACE' };\n } else if (pinoLevel <= 20) {\n return { severityNumber: SeverityNumber.DEBUG, severityText: 'DEBUG' };\n } else if (pinoLevel <= 30) {\n return { severityNumber: SeverityNumber.INFO, severityText: 'INFO' };\n } else if (pinoLevel <= 40) {\n return { severityNumber: SeverityNumber.WARN, severityText: 'WARN' };\n } else if (pinoLevel <= 50) {\n return { severityNumber: SeverityNumber.ERROR, severityText: 'ERROR' };\n } else {\n return { severityNumber: SeverityNumber.FATAL, severityText: 'FATAL' };\n }\n}\n\nconst EXCLUDE_FIELDS = new Set(['level', 'time', 'msg', 'pid', 'hostname', 'v']);\n\nfunction convertValue(value: unknown): unknown {\n if (value === null || value === undefined) {\n return { stringValue: '' };\n }\n if (typeof value === 'string') {\n return { stringValue: value };\n }\n if (typeof value === 'number') {\n return Number.isInteger(value) ? { intValue: String(value) } : { doubleValue: value };\n }\n if (typeof value === 'boolean') {\n return { boolValue: value };\n }\n if (typeof value === 'object') {\n return { stringValue: JSON.stringify(value) };\n }\n return { stringValue: String(value) };\n}\n\n/**\n * Standalone Pino log exporter for LiveKit Cloud.\n *\n * Collects Pino logs, batches them, and sends via raw HTTP JSON.\n * No OTEL SDK dependency\n *\n * @example\n * ```typescript\n * const exporter = new PinoCloudExporter({\n * cloudHostname: 'cloud.livekit.io',\n * roomId: 'RM_xxx',\n * jobId: 'AJ_xxx',\n * });\n *\n * // In Pino formatter hook:\n * exporter.emit(logObj);\n *\n * // On session end:\n * await exporter.flush();\n * ```\n */\nexport class PinoCloudExporter {\n private readonly config: PinoCloudExporterConfig;\n private readonly loggerName: string;\n private readonly batchSize: number;\n private readonly flushIntervalMs: number;\n private jwt: string | null = null;\n private pendingLogs: any[] = [];\n private flushTimer: NodeJS.Timeout | null = null;\n\n constructor(config: PinoCloudExporterConfig) {\n this.config = config;\n this.loggerName = config.loggerName || 'livekit.agents';\n this.batchSize = config.batchSize || 100;\n this.flushIntervalMs = config.flushIntervalMs || 5000;\n }\n\n emit(logObj: PinoLogObject): void {\n const record = this.convertToOtlpRecord(logObj);\n this.pendingLogs.push(record);\n\n if (!this.flushTimer) {\n this.flushTimer = setTimeout(() => {\n this.flush().catch(console.error);\n }, this.flushIntervalMs);\n }\n\n if (this.pendingLogs.length >= this.batchSize) {\n this.flush().catch(console.error);\n }\n }\n\n private convertToOtlpRecord(logObj: PinoLogObject): any {\n const { severityNumber, severityText } = mapPinoLevelToSeverity(logObj.level);\n\n const attributes: any[] = [\n { key: 'room_id', value: { stringValue: this.config.roomId } },\n { key: 'job_id', value: { stringValue: this.config.jobId } },\n { key: 'logger.name', value: { stringValue: this.loggerName } },\n ];\n\n if (logObj.pid !== undefined) {\n attributes.push({ key: 'process.pid', value: { intValue: String(logObj.pid) } });\n }\n if (logObj.hostname !== undefined) {\n attributes.push({ key: 'host.name', value: { stringValue: logObj.hostname } });\n }\n\n for (const [key, value] of Object.entries(logObj)) {\n if (!EXCLUDE_FIELDS.has(key)) {\n attributes.push({ key, value: convertValue(value) });\n }\n }\n\n return {\n timeUnixNano: String(BigInt(logObj.time) * BigInt(1_000_000)),\n observedTimeUnixNano: String(BigInt(Date.now()) * BigInt(1_000_000)),\n severityNumber,\n severityText,\n body: { stringValue: logObj.msg || '' },\n attributes,\n traceId: '',\n spanId: '',\n };\n }\n\n async flush(): Promise<void> {\n if (this.flushTimer) {\n clearTimeout(this.flushTimer);\n this.flushTimer = null;\n }\n\n if (this.pendingLogs.length === 0) {\n return;\n }\n\n const logs = this.pendingLogs;\n this.pendingLogs = [];\n\n try {\n await this.sendLogs(logs);\n } catch (error) {\n this.pendingLogs = [...logs, ...this.pendingLogs];\n console.error('[PinoCloudExporter] Failed to flush logs:', error);\n }\n }\n\n private async sendLogs(logRecords: any[]): Promise<void> {\n await this.ensureJwt();\n\n const payload = {\n resourceLogs: [\n {\n resource: {\n attributes: [\n { key: 'service.name', value: { stringValue: 'livekit-agents' } },\n { key: 'room_id', value: { stringValue: this.config.roomId } },\n { key: 'job_id', value: { stringValue: this.config.jobId } },\n ],\n },\n scopeLogs: [\n {\n scope: {\n name: this.loggerName,\n attributes: [\n { key: 'room_id', value: { stringValue: this.config.roomId } },\n { key: 'job_id', value: { stringValue: this.config.jobId } },\n ],\n },\n logRecords,\n },\n ],\n },\n ],\n };\n\n const endpoint = `https://${this.config.cloudHostname}/observability/logs/otlp/v0`;\n\n const response = await fetch(endpoint, {\n method: 'POST',\n headers: {\n Authorization: `Bearer ${this.jwt}`,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n });\n\n if (!response.ok) {\n const text = await response.text();\n throw new Error(`Log export failed: ${response.status} ${response.statusText} - ${text}`);\n }\n }\n\n private async ensureJwt(): Promise<void> {\n if (this.jwt) return;\n\n const apiKey = process.env.LIVEKIT_API_KEY;\n const apiSecret = process.env.LIVEKIT_API_SECRET;\n\n if (!apiKey || !apiSecret) {\n throw new Error('LIVEKIT_API_KEY and LIVEKIT_API_SECRET must be set');\n }\n\n const token = new AccessToken(apiKey, apiSecret, { ttl: '6h' });\n token.addObservabilityGrant({ write: true });\n this.jwt = await token.toJwt();\n }\n\n async shutdown(): Promise<void> {\n await this.flush();\n }\n}\n\nlet globalExporter: PinoCloudExporter | null = null;\n\nexport function initPinoCloudExporter(config: PinoCloudExporterConfig): void {\n globalExporter = new PinoCloudExporter(config);\n}\n\nexport function getPinoCloudExporter(): PinoCloudExporter | null {\n return globalExporter;\n}\n\nexport function emitToOtel(logObj: PinoLogObject): void {\n if (globalExporter) {\n globalExporter.emit(logObj);\n }\n}\n\nexport async function flushPinoLogs(): Promise<void> {\n if (globalExporter) {\n await globalExporter.flush();\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,58 @@
1
+ export interface PinoLogObject {
2
+ level: number;
3
+ time: number;
4
+ msg: string;
5
+ pid?: number;
6
+ hostname?: string;
7
+ [key: string]: unknown;
8
+ }
9
+ export interface PinoCloudExporterConfig {
10
+ cloudHostname: string;
11
+ roomId: string;
12
+ jobId: string;
13
+ loggerName?: string;
14
+ batchSize?: number;
15
+ flushIntervalMs?: number;
16
+ }
17
+ /**
18
+ * Standalone Pino log exporter for LiveKit Cloud.
19
+ *
20
+ * Collects Pino logs, batches them, and sends via raw HTTP JSON.
21
+ * No OTEL SDK dependency
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const exporter = new PinoCloudExporter({
26
+ * cloudHostname: 'cloud.livekit.io',
27
+ * roomId: 'RM_xxx',
28
+ * jobId: 'AJ_xxx',
29
+ * });
30
+ *
31
+ * // In Pino formatter hook:
32
+ * exporter.emit(logObj);
33
+ *
34
+ * // On session end:
35
+ * await exporter.flush();
36
+ * ```
37
+ */
38
+ export declare class PinoCloudExporter {
39
+ private readonly config;
40
+ private readonly loggerName;
41
+ private readonly batchSize;
42
+ private readonly flushIntervalMs;
43
+ private jwt;
44
+ private pendingLogs;
45
+ private flushTimer;
46
+ constructor(config: PinoCloudExporterConfig);
47
+ emit(logObj: PinoLogObject): void;
48
+ private convertToOtlpRecord;
49
+ flush(): Promise<void>;
50
+ private sendLogs;
51
+ private ensureJwt;
52
+ shutdown(): Promise<void>;
53
+ }
54
+ export declare function initPinoCloudExporter(config: PinoCloudExporterConfig): void;
55
+ export declare function getPinoCloudExporter(): PinoCloudExporter | null;
56
+ export declare function emitToOtel(logObj: PinoLogObject): void;
57
+ export declare function flushPinoLogs(): Promise<void>;
58
+ //# sourceMappingURL=pino_otel_transport.d.ts.map
@@ -0,0 +1,58 @@
1
+ export interface PinoLogObject {
2
+ level: number;
3
+ time: number;
4
+ msg: string;
5
+ pid?: number;
6
+ hostname?: string;
7
+ [key: string]: unknown;
8
+ }
9
+ export interface PinoCloudExporterConfig {
10
+ cloudHostname: string;
11
+ roomId: string;
12
+ jobId: string;
13
+ loggerName?: string;
14
+ batchSize?: number;
15
+ flushIntervalMs?: number;
16
+ }
17
+ /**
18
+ * Standalone Pino log exporter for LiveKit Cloud.
19
+ *
20
+ * Collects Pino logs, batches them, and sends via raw HTTP JSON.
21
+ * No OTEL SDK dependency
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const exporter = new PinoCloudExporter({
26
+ * cloudHostname: 'cloud.livekit.io',
27
+ * roomId: 'RM_xxx',
28
+ * jobId: 'AJ_xxx',
29
+ * });
30
+ *
31
+ * // In Pino formatter hook:
32
+ * exporter.emit(logObj);
33
+ *
34
+ * // On session end:
35
+ * await exporter.flush();
36
+ * ```
37
+ */
38
+ export declare class PinoCloudExporter {
39
+ private readonly config;
40
+ private readonly loggerName;
41
+ private readonly batchSize;
42
+ private readonly flushIntervalMs;
43
+ private jwt;
44
+ private pendingLogs;
45
+ private flushTimer;
46
+ constructor(config: PinoCloudExporterConfig);
47
+ emit(logObj: PinoLogObject): void;
48
+ private convertToOtlpRecord;
49
+ flush(): Promise<void>;
50
+ private sendLogs;
51
+ private ensureJwt;
52
+ shutdown(): Promise<void>;
53
+ }
54
+ export declare function initPinoCloudExporter(config: PinoCloudExporterConfig): void;
55
+ export declare function getPinoCloudExporter(): PinoCloudExporter | null;
56
+ export declare function emitToOtel(logObj: PinoLogObject): void;
57
+ export declare function flushPinoLogs(): Promise<void>;
58
+ //# sourceMappingURL=pino_otel_transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pino_otel_transport.d.ts","sourceRoot":"","sources":["../../src/telemetry/pino_otel_transport.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AA0CD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,GAAG,CAAuB;IAClC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,UAAU,CAA+B;gBAErC,MAAM,EAAE,uBAAuB;IAO3C,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAejC,OAAO,CAAC,mBAAmB;IAkCrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAqBd,QAAQ;YA8CR,SAAS;IAejB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC;AAID,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAE3E;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,GAAG,IAAI,CAE/D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAItD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAInD"}
@@ -0,0 +1,189 @@
1
+ import { SeverityNumber } from "@opentelemetry/api-logs";
2
+ import { AccessToken } from "livekit-server-sdk";
3
+ function mapPinoLevelToSeverity(pinoLevel) {
4
+ if (pinoLevel <= 10) {
5
+ return { severityNumber: SeverityNumber.TRACE, severityText: "TRACE" };
6
+ } else if (pinoLevel <= 20) {
7
+ return { severityNumber: SeverityNumber.DEBUG, severityText: "DEBUG" };
8
+ } else if (pinoLevel <= 30) {
9
+ return { severityNumber: SeverityNumber.INFO, severityText: "INFO" };
10
+ } else if (pinoLevel <= 40) {
11
+ return { severityNumber: SeverityNumber.WARN, severityText: "WARN" };
12
+ } else if (pinoLevel <= 50) {
13
+ return { severityNumber: SeverityNumber.ERROR, severityText: "ERROR" };
14
+ } else {
15
+ return { severityNumber: SeverityNumber.FATAL, severityText: "FATAL" };
16
+ }
17
+ }
18
+ const EXCLUDE_FIELDS = /* @__PURE__ */ new Set(["level", "time", "msg", "pid", "hostname", "v"]);
19
+ function convertValue(value) {
20
+ if (value === null || value === void 0) {
21
+ return { stringValue: "" };
22
+ }
23
+ if (typeof value === "string") {
24
+ return { stringValue: value };
25
+ }
26
+ if (typeof value === "number") {
27
+ return Number.isInteger(value) ? { intValue: String(value) } : { doubleValue: value };
28
+ }
29
+ if (typeof value === "boolean") {
30
+ return { boolValue: value };
31
+ }
32
+ if (typeof value === "object") {
33
+ return { stringValue: JSON.stringify(value) };
34
+ }
35
+ return { stringValue: String(value) };
36
+ }
37
+ class PinoCloudExporter {
38
+ config;
39
+ loggerName;
40
+ batchSize;
41
+ flushIntervalMs;
42
+ jwt = null;
43
+ pendingLogs = [];
44
+ flushTimer = null;
45
+ constructor(config) {
46
+ this.config = config;
47
+ this.loggerName = config.loggerName || "livekit.agents";
48
+ this.batchSize = config.batchSize || 100;
49
+ this.flushIntervalMs = config.flushIntervalMs || 5e3;
50
+ }
51
+ emit(logObj) {
52
+ const record = this.convertToOtlpRecord(logObj);
53
+ this.pendingLogs.push(record);
54
+ if (!this.flushTimer) {
55
+ this.flushTimer = setTimeout(() => {
56
+ this.flush().catch(console.error);
57
+ }, this.flushIntervalMs);
58
+ }
59
+ if (this.pendingLogs.length >= this.batchSize) {
60
+ this.flush().catch(console.error);
61
+ }
62
+ }
63
+ convertToOtlpRecord(logObj) {
64
+ const { severityNumber, severityText } = mapPinoLevelToSeverity(logObj.level);
65
+ const attributes = [
66
+ { key: "room_id", value: { stringValue: this.config.roomId } },
67
+ { key: "job_id", value: { stringValue: this.config.jobId } },
68
+ { key: "logger.name", value: { stringValue: this.loggerName } }
69
+ ];
70
+ if (logObj.pid !== void 0) {
71
+ attributes.push({ key: "process.pid", value: { intValue: String(logObj.pid) } });
72
+ }
73
+ if (logObj.hostname !== void 0) {
74
+ attributes.push({ key: "host.name", value: { stringValue: logObj.hostname } });
75
+ }
76
+ for (const [key, value] of Object.entries(logObj)) {
77
+ if (!EXCLUDE_FIELDS.has(key)) {
78
+ attributes.push({ key, value: convertValue(value) });
79
+ }
80
+ }
81
+ return {
82
+ timeUnixNano: String(BigInt(logObj.time) * BigInt(1e6)),
83
+ observedTimeUnixNano: String(BigInt(Date.now()) * BigInt(1e6)),
84
+ severityNumber,
85
+ severityText,
86
+ body: { stringValue: logObj.msg || "" },
87
+ attributes,
88
+ traceId: "",
89
+ spanId: ""
90
+ };
91
+ }
92
+ async flush() {
93
+ if (this.flushTimer) {
94
+ clearTimeout(this.flushTimer);
95
+ this.flushTimer = null;
96
+ }
97
+ if (this.pendingLogs.length === 0) {
98
+ return;
99
+ }
100
+ const logs = this.pendingLogs;
101
+ this.pendingLogs = [];
102
+ try {
103
+ await this.sendLogs(logs);
104
+ } catch (error) {
105
+ this.pendingLogs = [...logs, ...this.pendingLogs];
106
+ console.error("[PinoCloudExporter] Failed to flush logs:", error);
107
+ }
108
+ }
109
+ async sendLogs(logRecords) {
110
+ await this.ensureJwt();
111
+ const payload = {
112
+ resourceLogs: [
113
+ {
114
+ resource: {
115
+ attributes: [
116
+ { key: "service.name", value: { stringValue: "livekit-agents" } },
117
+ { key: "room_id", value: { stringValue: this.config.roomId } },
118
+ { key: "job_id", value: { stringValue: this.config.jobId } }
119
+ ]
120
+ },
121
+ scopeLogs: [
122
+ {
123
+ scope: {
124
+ name: this.loggerName,
125
+ attributes: [
126
+ { key: "room_id", value: { stringValue: this.config.roomId } },
127
+ { key: "job_id", value: { stringValue: this.config.jobId } }
128
+ ]
129
+ },
130
+ logRecords
131
+ }
132
+ ]
133
+ }
134
+ ]
135
+ };
136
+ const endpoint = `https://${this.config.cloudHostname}/observability/logs/otlp/v0`;
137
+ const response = await fetch(endpoint, {
138
+ method: "POST",
139
+ headers: {
140
+ Authorization: `Bearer ${this.jwt}`,
141
+ "Content-Type": "application/json"
142
+ },
143
+ body: JSON.stringify(payload)
144
+ });
145
+ if (!response.ok) {
146
+ const text = await response.text();
147
+ throw new Error(`Log export failed: ${response.status} ${response.statusText} - ${text}`);
148
+ }
149
+ }
150
+ async ensureJwt() {
151
+ if (this.jwt) return;
152
+ const apiKey = process.env.LIVEKIT_API_KEY;
153
+ const apiSecret = process.env.LIVEKIT_API_SECRET;
154
+ if (!apiKey || !apiSecret) {
155
+ throw new Error("LIVEKIT_API_KEY and LIVEKIT_API_SECRET must be set");
156
+ }
157
+ const token = new AccessToken(apiKey, apiSecret, { ttl: "6h" });
158
+ token.addObservabilityGrant({ write: true });
159
+ this.jwt = await token.toJwt();
160
+ }
161
+ async shutdown() {
162
+ await this.flush();
163
+ }
164
+ }
165
+ let globalExporter = null;
166
+ function initPinoCloudExporter(config) {
167
+ globalExporter = new PinoCloudExporter(config);
168
+ }
169
+ function getPinoCloudExporter() {
170
+ return globalExporter;
171
+ }
172
+ function emitToOtel(logObj) {
173
+ if (globalExporter) {
174
+ globalExporter.emit(logObj);
175
+ }
176
+ }
177
+ async function flushPinoLogs() {
178
+ if (globalExporter) {
179
+ await globalExporter.flush();
180
+ }
181
+ }
182
+ export {
183
+ PinoCloudExporter,
184
+ emitToOtel,
185
+ flushPinoLogs,
186
+ getPinoCloudExporter,
187
+ initPinoCloudExporter
188
+ };
189
+ //# sourceMappingURL=pino_otel_transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/telemetry/pino_otel_transport.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2025 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Custom Pino OTEL Transport\n *\n * Standalone exporter for Pino logs to LiveKit Cloud.\n * Uses raw HTTP JSON format, bypassing the OTEL SDK.\n */\nimport { SeverityNumber } from '@opentelemetry/api-logs';\nimport { AccessToken } from 'livekit-server-sdk';\n\nexport interface PinoLogObject {\n level: number;\n time: number;\n msg: string;\n pid?: number;\n hostname?: string;\n [key: string]: unknown;\n}\n\nexport interface PinoCloudExporterConfig {\n cloudHostname: string;\n roomId: string;\n jobId: string;\n loggerName?: string;\n batchSize?: number;\n flushIntervalMs?: number;\n}\n\nfunction mapPinoLevelToSeverity(pinoLevel: number): {\n severityNumber: SeverityNumber;\n severityText: string;\n} {\n if (pinoLevel <= 10) {\n return { severityNumber: SeverityNumber.TRACE, severityText: 'TRACE' };\n } else if (pinoLevel <= 20) {\n return { severityNumber: SeverityNumber.DEBUG, severityText: 'DEBUG' };\n } else if (pinoLevel <= 30) {\n return { severityNumber: SeverityNumber.INFO, severityText: 'INFO' };\n } else if (pinoLevel <= 40) {\n return { severityNumber: SeverityNumber.WARN, severityText: 'WARN' };\n } else if (pinoLevel <= 50) {\n return { severityNumber: SeverityNumber.ERROR, severityText: 'ERROR' };\n } else {\n return { severityNumber: SeverityNumber.FATAL, severityText: 'FATAL' };\n }\n}\n\nconst EXCLUDE_FIELDS = new Set(['level', 'time', 'msg', 'pid', 'hostname', 'v']);\n\nfunction convertValue(value: unknown): unknown {\n if (value === null || value === undefined) {\n return { stringValue: '' };\n }\n if (typeof value === 'string') {\n return { stringValue: value };\n }\n if (typeof value === 'number') {\n return Number.isInteger(value) ? { intValue: String(value) } : { doubleValue: value };\n }\n if (typeof value === 'boolean') {\n return { boolValue: value };\n }\n if (typeof value === 'object') {\n return { stringValue: JSON.stringify(value) };\n }\n return { stringValue: String(value) };\n}\n\n/**\n * Standalone Pino log exporter for LiveKit Cloud.\n *\n * Collects Pino logs, batches them, and sends via raw HTTP JSON.\n * No OTEL SDK dependency\n *\n * @example\n * ```typescript\n * const exporter = new PinoCloudExporter({\n * cloudHostname: 'cloud.livekit.io',\n * roomId: 'RM_xxx',\n * jobId: 'AJ_xxx',\n * });\n *\n * // In Pino formatter hook:\n * exporter.emit(logObj);\n *\n * // On session end:\n * await exporter.flush();\n * ```\n */\nexport class PinoCloudExporter {\n private readonly config: PinoCloudExporterConfig;\n private readonly loggerName: string;\n private readonly batchSize: number;\n private readonly flushIntervalMs: number;\n private jwt: string | null = null;\n private pendingLogs: any[] = [];\n private flushTimer: NodeJS.Timeout | null = null;\n\n constructor(config: PinoCloudExporterConfig) {\n this.config = config;\n this.loggerName = config.loggerName || 'livekit.agents';\n this.batchSize = config.batchSize || 100;\n this.flushIntervalMs = config.flushIntervalMs || 5000;\n }\n\n emit(logObj: PinoLogObject): void {\n const record = this.convertToOtlpRecord(logObj);\n this.pendingLogs.push(record);\n\n if (!this.flushTimer) {\n this.flushTimer = setTimeout(() => {\n this.flush().catch(console.error);\n }, this.flushIntervalMs);\n }\n\n if (this.pendingLogs.length >= this.batchSize) {\n this.flush().catch(console.error);\n }\n }\n\n private convertToOtlpRecord(logObj: PinoLogObject): any {\n const { severityNumber, severityText } = mapPinoLevelToSeverity(logObj.level);\n\n const attributes: any[] = [\n { key: 'room_id', value: { stringValue: this.config.roomId } },\n { key: 'job_id', value: { stringValue: this.config.jobId } },\n { key: 'logger.name', value: { stringValue: this.loggerName } },\n ];\n\n if (logObj.pid !== undefined) {\n attributes.push({ key: 'process.pid', value: { intValue: String(logObj.pid) } });\n }\n if (logObj.hostname !== undefined) {\n attributes.push({ key: 'host.name', value: { stringValue: logObj.hostname } });\n }\n\n for (const [key, value] of Object.entries(logObj)) {\n if (!EXCLUDE_FIELDS.has(key)) {\n attributes.push({ key, value: convertValue(value) });\n }\n }\n\n return {\n timeUnixNano: String(BigInt(logObj.time) * BigInt(1_000_000)),\n observedTimeUnixNano: String(BigInt(Date.now()) * BigInt(1_000_000)),\n severityNumber,\n severityText,\n body: { stringValue: logObj.msg || '' },\n attributes,\n traceId: '',\n spanId: '',\n };\n }\n\n async flush(): Promise<void> {\n if (this.flushTimer) {\n clearTimeout(this.flushTimer);\n this.flushTimer = null;\n }\n\n if (this.pendingLogs.length === 0) {\n return;\n }\n\n const logs = this.pendingLogs;\n this.pendingLogs = [];\n\n try {\n await this.sendLogs(logs);\n } catch (error) {\n this.pendingLogs = [...logs, ...this.pendingLogs];\n console.error('[PinoCloudExporter] Failed to flush logs:', error);\n }\n }\n\n private async sendLogs(logRecords: any[]): Promise<void> {\n await this.ensureJwt();\n\n const payload = {\n resourceLogs: [\n {\n resource: {\n attributes: [\n { key: 'service.name', value: { stringValue: 'livekit-agents' } },\n { key: 'room_id', value: { stringValue: this.config.roomId } },\n { key: 'job_id', value: { stringValue: this.config.jobId } },\n ],\n },\n scopeLogs: [\n {\n scope: {\n name: this.loggerName,\n attributes: [\n { key: 'room_id', value: { stringValue: this.config.roomId } },\n { key: 'job_id', value: { stringValue: this.config.jobId } },\n ],\n },\n logRecords,\n },\n ],\n },\n ],\n };\n\n const endpoint = `https://${this.config.cloudHostname}/observability/logs/otlp/v0`;\n\n const response = await fetch(endpoint, {\n method: 'POST',\n headers: {\n Authorization: `Bearer ${this.jwt}`,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n });\n\n if (!response.ok) {\n const text = await response.text();\n throw new Error(`Log export failed: ${response.status} ${response.statusText} - ${text}`);\n }\n }\n\n private async ensureJwt(): Promise<void> {\n if (this.jwt) return;\n\n const apiKey = process.env.LIVEKIT_API_KEY;\n const apiSecret = process.env.LIVEKIT_API_SECRET;\n\n if (!apiKey || !apiSecret) {\n throw new Error('LIVEKIT_API_KEY and LIVEKIT_API_SECRET must be set');\n }\n\n const token = new AccessToken(apiKey, apiSecret, { ttl: '6h' });\n token.addObservabilityGrant({ write: true });\n this.jwt = await token.toJwt();\n }\n\n async shutdown(): Promise<void> {\n await this.flush();\n }\n}\n\nlet globalExporter: PinoCloudExporter | null = null;\n\nexport function initPinoCloudExporter(config: PinoCloudExporterConfig): void {\n globalExporter = new PinoCloudExporter(config);\n}\n\nexport function getPinoCloudExporter(): PinoCloudExporter | null {\n return globalExporter;\n}\n\nexport function emitToOtel(logObj: PinoLogObject): void {\n if (globalExporter) {\n globalExporter.emit(logObj);\n }\n}\n\nexport async function flushPinoLogs(): Promise<void> {\n if (globalExporter) {\n await globalExporter.flush();\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var trace_types_exports = {};
20
+ __export(trace_types_exports, {
21
+ ATTR_AGENT_LABEL: () => ATTR_AGENT_LABEL,
22
+ ATTR_AGENT_NAME: () => ATTR_AGENT_NAME,
23
+ ATTR_CHAT_CTX: () => ATTR_CHAT_CTX,
24
+ ATTR_END_OF_TURN_DELAY: () => ATTR_END_OF_TURN_DELAY,
25
+ ATTR_END_TIME: () => ATTR_END_TIME,
26
+ ATTR_EOU_DELAY: () => ATTR_EOU_DELAY,
27
+ ATTR_EOU_LANGUAGE: () => ATTR_EOU_LANGUAGE,
28
+ ATTR_EOU_PROBABILITY: () => ATTR_EOU_PROBABILITY,
29
+ ATTR_EOU_UNLIKELY_THRESHOLD: () => ATTR_EOU_UNLIKELY_THRESHOLD,
30
+ ATTR_EXCEPTION_MESSAGE: () => ATTR_EXCEPTION_MESSAGE,
31
+ ATTR_EXCEPTION_TRACE: () => ATTR_EXCEPTION_TRACE,
32
+ ATTR_EXCEPTION_TYPE: () => ATTR_EXCEPTION_TYPE,
33
+ ATTR_FUNCTION_TOOLS: () => ATTR_FUNCTION_TOOLS,
34
+ ATTR_FUNCTION_TOOL_ARGS: () => ATTR_FUNCTION_TOOL_ARGS,
35
+ ATTR_FUNCTION_TOOL_IS_ERROR: () => ATTR_FUNCTION_TOOL_IS_ERROR,
36
+ ATTR_FUNCTION_TOOL_NAME: () => ATTR_FUNCTION_TOOL_NAME,
37
+ ATTR_FUNCTION_TOOL_OUTPUT: () => ATTR_FUNCTION_TOOL_OUTPUT,
38
+ ATTR_GEN_AI_OPERATION_NAME: () => ATTR_GEN_AI_OPERATION_NAME,
39
+ ATTR_GEN_AI_REQUEST_MODEL: () => ATTR_GEN_AI_REQUEST_MODEL,
40
+ ATTR_GEN_AI_USAGE_INPUT_AUDIO_TOKENS: () => ATTR_GEN_AI_USAGE_INPUT_AUDIO_TOKENS,
41
+ ATTR_GEN_AI_USAGE_INPUT_CACHED_TOKENS: () => ATTR_GEN_AI_USAGE_INPUT_CACHED_TOKENS,
42
+ ATTR_GEN_AI_USAGE_INPUT_TEXT_TOKENS: () => ATTR_GEN_AI_USAGE_INPUT_TEXT_TOKENS,
43
+ ATTR_GEN_AI_USAGE_INPUT_TOKENS: () => ATTR_GEN_AI_USAGE_INPUT_TOKENS,
44
+ ATTR_GEN_AI_USAGE_OUTPUT_AUDIO_TOKENS: () => ATTR_GEN_AI_USAGE_OUTPUT_AUDIO_TOKENS,
45
+ ATTR_GEN_AI_USAGE_OUTPUT_TEXT_TOKENS: () => ATTR_GEN_AI_USAGE_OUTPUT_TEXT_TOKENS,
46
+ ATTR_GEN_AI_USAGE_OUTPUT_TOKENS: () => ATTR_GEN_AI_USAGE_OUTPUT_TOKENS,
47
+ ATTR_INSTRUCTIONS: () => ATTR_INSTRUCTIONS,
48
+ ATTR_INTERRUPTION_DETECTION_DELAY: () => ATTR_INTERRUPTION_DETECTION_DELAY,
49
+ ATTR_INTERRUPTION_PREDICTION_DURATION: () => ATTR_INTERRUPTION_PREDICTION_DURATION,
50
+ ATTR_INTERRUPTION_PROBABILITY: () => ATTR_INTERRUPTION_PROBABILITY,
51
+ ATTR_INTERRUPTION_TOTAL_DURATION: () => ATTR_INTERRUPTION_TOTAL_DURATION,
52
+ ATTR_IS_INTERRUPTION: () => ATTR_IS_INTERRUPTION,
53
+ ATTR_JOB_ID: () => ATTR_JOB_ID,
54
+ ATTR_LANGFUSE_COMPLETION_START_TIME: () => ATTR_LANGFUSE_COMPLETION_START_TIME,
55
+ ATTR_LLM_METRICS: () => ATTR_LLM_METRICS,
56
+ ATTR_PARTICIPANT_ID: () => ATTR_PARTICIPANT_ID,
57
+ ATTR_PARTICIPANT_IDENTITY: () => ATTR_PARTICIPANT_IDENTITY,
58
+ ATTR_PARTICIPANT_KIND: () => ATTR_PARTICIPANT_KIND,
59
+ ATTR_REALTIME_MODEL_METRICS: () => ATTR_REALTIME_MODEL_METRICS,
60
+ ATTR_RESPONSE_FUNCTION_CALLS: () => ATTR_RESPONSE_FUNCTION_CALLS,
61
+ ATTR_RESPONSE_TEXT: () => ATTR_RESPONSE_TEXT,
62
+ ATTR_RETRY_COUNT: () => ATTR_RETRY_COUNT,
63
+ ATTR_ROOM_NAME: () => ATTR_ROOM_NAME,
64
+ ATTR_SESSION_OPTIONS: () => ATTR_SESSION_OPTIONS,
65
+ ATTR_SPEECH_ID: () => ATTR_SPEECH_ID,
66
+ ATTR_SPEECH_INTERRUPTED: () => ATTR_SPEECH_INTERRUPTED,
67
+ ATTR_START_TIME: () => ATTR_START_TIME,
68
+ ATTR_TRANSCRIPTION_DELAY: () => ATTR_TRANSCRIPTION_DELAY,
69
+ ATTR_TRANSCRIPT_CONFIDENCE: () => ATTR_TRANSCRIPT_CONFIDENCE,
70
+ ATTR_TTS_INPUT_TEXT: () => ATTR_TTS_INPUT_TEXT,
71
+ ATTR_TTS_LABEL: () => ATTR_TTS_LABEL,
72
+ ATTR_TTS_METRICS: () => ATTR_TTS_METRICS,
73
+ ATTR_TTS_STREAMING: () => ATTR_TTS_STREAMING,
74
+ ATTR_USER_INPUT: () => ATTR_USER_INPUT,
75
+ ATTR_USER_TRANSCRIPT: () => ATTR_USER_TRANSCRIPT,
76
+ EVENT_GEN_AI_ASSISTANT_MESSAGE: () => EVENT_GEN_AI_ASSISTANT_MESSAGE,
77
+ EVENT_GEN_AI_CHOICE: () => EVENT_GEN_AI_CHOICE,
78
+ EVENT_GEN_AI_SYSTEM_MESSAGE: () => EVENT_GEN_AI_SYSTEM_MESSAGE,
79
+ EVENT_GEN_AI_TOOL_MESSAGE: () => EVENT_GEN_AI_TOOL_MESSAGE,
80
+ EVENT_GEN_AI_USER_MESSAGE: () => EVENT_GEN_AI_USER_MESSAGE
81
+ });
82
+ module.exports = __toCommonJS(trace_types_exports);
83
+ const ATTR_SPEECH_ID = "lk.speech_id";
84
+ const ATTR_AGENT_LABEL = "lk.agent_label";
85
+ const ATTR_START_TIME = "lk.start_time";
86
+ const ATTR_END_TIME = "lk.end_time";
87
+ const ATTR_RETRY_COUNT = "lk.retry_count";
88
+ const ATTR_PARTICIPANT_ID = "lk.participant_id";
89
+ const ATTR_PARTICIPANT_IDENTITY = "lk.participant_identity";
90
+ const ATTR_PARTICIPANT_KIND = "lk.participant_kind";
91
+ const ATTR_JOB_ID = "lk.job_id";
92
+ const ATTR_AGENT_NAME = "lk.agent_name";
93
+ const ATTR_ROOM_NAME = "lk.room_name";
94
+ const ATTR_SESSION_OPTIONS = "lk.session_options";
95
+ const ATTR_USER_INPUT = "lk.user_input";
96
+ const ATTR_INSTRUCTIONS = "lk.instructions";
97
+ const ATTR_SPEECH_INTERRUPTED = "lk.interrupted";
98
+ const ATTR_CHAT_CTX = "lk.chat_ctx";
99
+ const ATTR_FUNCTION_TOOLS = "lk.function_tools";
100
+ const ATTR_RESPONSE_TEXT = "lk.response.text";
101
+ const ATTR_RESPONSE_FUNCTION_CALLS = "lk.response.function_calls";
102
+ const ATTR_FUNCTION_TOOL_NAME = "lk.function_tool.name";
103
+ const ATTR_FUNCTION_TOOL_ARGS = "lk.function_tool.arguments";
104
+ const ATTR_FUNCTION_TOOL_IS_ERROR = "lk.function_tool.is_error";
105
+ const ATTR_FUNCTION_TOOL_OUTPUT = "lk.function_tool.output";
106
+ const ATTR_TTS_INPUT_TEXT = "lk.input_text";
107
+ const ATTR_TTS_STREAMING = "lk.tts.streaming";
108
+ const ATTR_TTS_LABEL = "lk.tts.label";
109
+ const ATTR_EOU_PROBABILITY = "lk.eou.probability";
110
+ const ATTR_EOU_UNLIKELY_THRESHOLD = "lk.eou.unlikely_threshold";
111
+ const ATTR_EOU_DELAY = "lk.eou.endpointing_delay";
112
+ const ATTR_EOU_LANGUAGE = "lk.eou.language";
113
+ const ATTR_USER_TRANSCRIPT = "lk.user_transcript";
114
+ const ATTR_TRANSCRIPT_CONFIDENCE = "lk.transcript_confidence";
115
+ const ATTR_TRANSCRIPTION_DELAY = "lk.transcription_delay";
116
+ const ATTR_END_OF_TURN_DELAY = "lk.end_of_turn_delay";
117
+ const ATTR_IS_INTERRUPTION = "lk.is_interruption";
118
+ const ATTR_INTERRUPTION_PROBABILITY = "lk.interruption.probability";
119
+ const ATTR_INTERRUPTION_TOTAL_DURATION = "lk.interruption.total_duration";
120
+ const ATTR_INTERRUPTION_PREDICTION_DURATION = "lk.interruption.prediction_duration";
121
+ const ATTR_INTERRUPTION_DETECTION_DELAY = "lk.interruption.detection_delay";
122
+ const ATTR_LLM_METRICS = "lk.llm_metrics";
123
+ const ATTR_TTS_METRICS = "lk.tts_metrics";
124
+ const ATTR_REALTIME_MODEL_METRICS = "lk.realtime_model_metrics";
125
+ const ATTR_GEN_AI_OPERATION_NAME = "gen_ai.operation.name";
126
+ const ATTR_GEN_AI_REQUEST_MODEL = "gen_ai.request.model";
127
+ const ATTR_GEN_AI_USAGE_INPUT_TOKENS = "gen_ai.usage.input_tokens";
128
+ const ATTR_GEN_AI_USAGE_OUTPUT_TOKENS = "gen_ai.usage.output_tokens";
129
+ const ATTR_GEN_AI_USAGE_INPUT_TEXT_TOKENS = "gen_ai.usage.input_text_tokens";
130
+ const ATTR_GEN_AI_USAGE_INPUT_AUDIO_TOKENS = "gen_ai.usage.input_audio_tokens";
131
+ const ATTR_GEN_AI_USAGE_INPUT_CACHED_TOKENS = "gen_ai.usage.input_cached_tokens";
132
+ const ATTR_GEN_AI_USAGE_OUTPUT_TEXT_TOKENS = "gen_ai.usage.output_text_tokens";
133
+ const ATTR_GEN_AI_USAGE_OUTPUT_AUDIO_TOKENS = "gen_ai.usage.output_audio_tokens";
134
+ const EVENT_GEN_AI_SYSTEM_MESSAGE = "gen_ai.system.message";
135
+ const EVENT_GEN_AI_USER_MESSAGE = "gen_ai.user.message";
136
+ const EVENT_GEN_AI_ASSISTANT_MESSAGE = "gen_ai.assistant.message";
137
+ const EVENT_GEN_AI_TOOL_MESSAGE = "gen_ai.tool.message";
138
+ const EVENT_GEN_AI_CHOICE = "gen_ai.choice";
139
+ const ATTR_EXCEPTION_TRACE = "exception.stacktrace";
140
+ const ATTR_EXCEPTION_TYPE = "exception.type";
141
+ const ATTR_EXCEPTION_MESSAGE = "exception.message";
142
+ const ATTR_LANGFUSE_COMPLETION_START_TIME = "langfuse.observation.completion_start_time";
143
+ // Annotate the CommonJS export names for ESM import in node:
144
+ 0 && (module.exports = {
145
+ ATTR_AGENT_LABEL,
146
+ ATTR_AGENT_NAME,
147
+ ATTR_CHAT_CTX,
148
+ ATTR_END_OF_TURN_DELAY,
149
+ ATTR_END_TIME,
150
+ ATTR_EOU_DELAY,
151
+ ATTR_EOU_LANGUAGE,
152
+ ATTR_EOU_PROBABILITY,
153
+ ATTR_EOU_UNLIKELY_THRESHOLD,
154
+ ATTR_EXCEPTION_MESSAGE,
155
+ ATTR_EXCEPTION_TRACE,
156
+ ATTR_EXCEPTION_TYPE,
157
+ ATTR_FUNCTION_TOOLS,
158
+ ATTR_FUNCTION_TOOL_ARGS,
159
+ ATTR_FUNCTION_TOOL_IS_ERROR,
160
+ ATTR_FUNCTION_TOOL_NAME,
161
+ ATTR_FUNCTION_TOOL_OUTPUT,
162
+ ATTR_GEN_AI_OPERATION_NAME,
163
+ ATTR_GEN_AI_REQUEST_MODEL,
164
+ ATTR_GEN_AI_USAGE_INPUT_AUDIO_TOKENS,
165
+ ATTR_GEN_AI_USAGE_INPUT_CACHED_TOKENS,
166
+ ATTR_GEN_AI_USAGE_INPUT_TEXT_TOKENS,
167
+ ATTR_GEN_AI_USAGE_INPUT_TOKENS,
168
+ ATTR_GEN_AI_USAGE_OUTPUT_AUDIO_TOKENS,
169
+ ATTR_GEN_AI_USAGE_OUTPUT_TEXT_TOKENS,
170
+ ATTR_GEN_AI_USAGE_OUTPUT_TOKENS,
171
+ ATTR_INSTRUCTIONS,
172
+ ATTR_INTERRUPTION_DETECTION_DELAY,
173
+ ATTR_INTERRUPTION_PREDICTION_DURATION,
174
+ ATTR_INTERRUPTION_PROBABILITY,
175
+ ATTR_INTERRUPTION_TOTAL_DURATION,
176
+ ATTR_IS_INTERRUPTION,
177
+ ATTR_JOB_ID,
178
+ ATTR_LANGFUSE_COMPLETION_START_TIME,
179
+ ATTR_LLM_METRICS,
180
+ ATTR_PARTICIPANT_ID,
181
+ ATTR_PARTICIPANT_IDENTITY,
182
+ ATTR_PARTICIPANT_KIND,
183
+ ATTR_REALTIME_MODEL_METRICS,
184
+ ATTR_RESPONSE_FUNCTION_CALLS,
185
+ ATTR_RESPONSE_TEXT,
186
+ ATTR_RETRY_COUNT,
187
+ ATTR_ROOM_NAME,
188
+ ATTR_SESSION_OPTIONS,
189
+ ATTR_SPEECH_ID,
190
+ ATTR_SPEECH_INTERRUPTED,
191
+ ATTR_START_TIME,
192
+ ATTR_TRANSCRIPTION_DELAY,
193
+ ATTR_TRANSCRIPT_CONFIDENCE,
194
+ ATTR_TTS_INPUT_TEXT,
195
+ ATTR_TTS_LABEL,
196
+ ATTR_TTS_METRICS,
197
+ ATTR_TTS_STREAMING,
198
+ ATTR_USER_INPUT,
199
+ ATTR_USER_TRANSCRIPT,
200
+ EVENT_GEN_AI_ASSISTANT_MESSAGE,
201
+ EVENT_GEN_AI_CHOICE,
202
+ EVENT_GEN_AI_SYSTEM_MESSAGE,
203
+ EVENT_GEN_AI_TOOL_MESSAGE,
204
+ EVENT_GEN_AI_USER_MESSAGE
205
+ });
206
+ //# sourceMappingURL=trace_types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/telemetry/trace_types.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2025 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n\n// LiveKit custom attributes\nexport const ATTR_SPEECH_ID = 'lk.speech_id';\nexport const ATTR_AGENT_LABEL = 'lk.agent_label';\nexport const ATTR_START_TIME = 'lk.start_time';\nexport const ATTR_END_TIME = 'lk.end_time';\nexport const ATTR_RETRY_COUNT = 'lk.retry_count';\n\nexport const ATTR_PARTICIPANT_ID = 'lk.participant_id';\nexport const ATTR_PARTICIPANT_IDENTITY = 'lk.participant_identity';\nexport const ATTR_PARTICIPANT_KIND = 'lk.participant_kind';\n\n// session start\nexport const ATTR_JOB_ID = 'lk.job_id';\nexport const ATTR_AGENT_NAME = 'lk.agent_name';\nexport const ATTR_ROOM_NAME = 'lk.room_name';\nexport const ATTR_SESSION_OPTIONS = 'lk.session_options';\n\n// assistant turn\nexport const ATTR_USER_INPUT = 'lk.user_input';\nexport const ATTR_INSTRUCTIONS = 'lk.instructions';\nexport const ATTR_SPEECH_INTERRUPTED = 'lk.interrupted';\n\n// llm node\nexport const ATTR_CHAT_CTX = 'lk.chat_ctx';\nexport const ATTR_FUNCTION_TOOLS = 'lk.function_tools';\nexport const ATTR_RESPONSE_TEXT = 'lk.response.text';\nexport const ATTR_RESPONSE_FUNCTION_CALLS = 'lk.response.function_calls';\n\n// function tool\nexport const ATTR_FUNCTION_TOOL_NAME = 'lk.function_tool.name';\nexport const ATTR_FUNCTION_TOOL_ARGS = 'lk.function_tool.arguments';\nexport const ATTR_FUNCTION_TOOL_IS_ERROR = 'lk.function_tool.is_error';\nexport const ATTR_FUNCTION_TOOL_OUTPUT = 'lk.function_tool.output';\n\n// tts node\nexport const ATTR_TTS_INPUT_TEXT = 'lk.input_text';\nexport const ATTR_TTS_STREAMING = 'lk.tts.streaming';\nexport const ATTR_TTS_LABEL = 'lk.tts.label';\n\n// eou detection\nexport const ATTR_EOU_PROBABILITY = 'lk.eou.probability';\nexport const ATTR_EOU_UNLIKELY_THRESHOLD = 'lk.eou.unlikely_threshold';\nexport const ATTR_EOU_DELAY = 'lk.eou.endpointing_delay';\nexport const ATTR_EOU_LANGUAGE = 'lk.eou.language';\nexport const ATTR_USER_TRANSCRIPT = 'lk.user_transcript';\nexport const ATTR_TRANSCRIPT_CONFIDENCE = 'lk.transcript_confidence';\nexport const ATTR_TRANSCRIPTION_DELAY = 'lk.transcription_delay';\nexport const ATTR_END_OF_TURN_DELAY = 'lk.end_of_turn_delay';\n\n// Adaptive Interruption attributes\nexport const ATTR_IS_INTERRUPTION = 'lk.is_interruption';\nexport const ATTR_INTERRUPTION_PROBABILITY = 'lk.interruption.probability';\nexport const ATTR_INTERRUPTION_TOTAL_DURATION = 'lk.interruption.total_duration';\nexport const ATTR_INTERRUPTION_PREDICTION_DURATION = 'lk.interruption.prediction_duration';\nexport const ATTR_INTERRUPTION_DETECTION_DELAY = 'lk.interruption.detection_delay';\n\n// metrics\nexport const ATTR_LLM_METRICS = 'lk.llm_metrics';\nexport const ATTR_TTS_METRICS = 'lk.tts_metrics';\nexport const ATTR_REALTIME_MODEL_METRICS = 'lk.realtime_model_metrics';\n\n// OpenTelemetry GenAI attributes\n// OpenTelemetry specification: https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/\nexport const ATTR_GEN_AI_OPERATION_NAME = 'gen_ai.operation.name';\nexport const ATTR_GEN_AI_REQUEST_MODEL = 'gen_ai.request.model';\nexport const ATTR_GEN_AI_USAGE_INPUT_TOKENS = 'gen_ai.usage.input_tokens';\nexport const ATTR_GEN_AI_USAGE_OUTPUT_TOKENS = 'gen_ai.usage.output_tokens';\n\n// Unofficial OpenTelemetry GenAI attributes, recognized by LangFuse\n// https://langfuse.com/integrations/native/opentelemetry#usage\n// but not yet in the official OpenTelemetry specification.\nexport const ATTR_GEN_AI_USAGE_INPUT_TEXT_TOKENS = 'gen_ai.usage.input_text_tokens';\nexport const ATTR_GEN_AI_USAGE_INPUT_AUDIO_TOKENS = 'gen_ai.usage.input_audio_tokens';\nexport const ATTR_GEN_AI_USAGE_INPUT_CACHED_TOKENS = 'gen_ai.usage.input_cached_tokens';\nexport const ATTR_GEN_AI_USAGE_OUTPUT_TEXT_TOKENS = 'gen_ai.usage.output_text_tokens';\nexport const ATTR_GEN_AI_USAGE_OUTPUT_AUDIO_TOKENS = 'gen_ai.usage.output_audio_tokens';\n\n// OpenTelemetry GenAI event names (for structured logging)\nexport const EVENT_GEN_AI_SYSTEM_MESSAGE = 'gen_ai.system.message';\nexport const EVENT_GEN_AI_USER_MESSAGE = 'gen_ai.user.message';\nexport const EVENT_GEN_AI_ASSISTANT_MESSAGE = 'gen_ai.assistant.message';\nexport const EVENT_GEN_AI_TOOL_MESSAGE = 'gen_ai.tool.message';\nexport const EVENT_GEN_AI_CHOICE = 'gen_ai.choice';\n\n// Exception attributes\nexport const ATTR_EXCEPTION_TRACE = 'exception.stacktrace';\nexport const ATTR_EXCEPTION_TYPE = 'exception.type';\nexport const ATTR_EXCEPTION_MESSAGE = 'exception.message';\n\n// Platform-specific attributes\nexport const ATTR_LANGFUSE_COMPLETION_START_TIME = 'langfuse.observation.completion_start_time';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKO,MAAM,iBAAiB;AACvB,MAAM,mBAAmB;AACzB,MAAM,kBAAkB;AACxB,MAAM,gBAAgB;AACtB,MAAM,mBAAmB;AAEzB,MAAM,sBAAsB;AAC5B,MAAM,4BAA4B;AAClC,MAAM,wBAAwB;AAG9B,MAAM,cAAc;AACpB,MAAM,kBAAkB;AACxB,MAAM,iBAAiB;AACvB,MAAM,uBAAuB;AAG7B,MAAM,kBAAkB;AACxB,MAAM,oBAAoB;AAC1B,MAAM,0BAA0B;AAGhC,MAAM,gBAAgB;AACtB,MAAM,sBAAsB;AAC5B,MAAM,qBAAqB;AAC3B,MAAM,+BAA+B;AAGrC,MAAM,0BAA0B;AAChC,MAAM,0BAA0B;AAChC,MAAM,8BAA8B;AACpC,MAAM,4BAA4B;AAGlC,MAAM,sBAAsB;AAC5B,MAAM,qBAAqB;AAC3B,MAAM,iBAAiB;AAGvB,MAAM,uBAAuB;AAC7B,MAAM,8BAA8B;AACpC,MAAM,iBAAiB;AACvB,MAAM,oBAAoB;AAC1B,MAAM,uBAAuB;AAC7B,MAAM,6BAA6B;AACnC,MAAM,2BAA2B;AACjC,MAAM,yBAAyB;AAG/B,MAAM,uBAAuB;AAC7B,MAAM,gCAAgC;AACtC,MAAM,mCAAmC;AACzC,MAAM,wCAAwC;AAC9C,MAAM,oCAAoC;AAG1C,MAAM,mBAAmB;AACzB,MAAM,mBAAmB;AACzB,MAAM,8BAA8B;AAIpC,MAAM,6BAA6B;AACnC,MAAM,4BAA4B;AAClC,MAAM,iCAAiC;AACvC,MAAM,kCAAkC;AAKxC,MAAM,sCAAsC;AAC5C,MAAM,uCAAuC;AAC7C,MAAM,wCAAwC;AAC9C,MAAM,uCAAuC;AAC7C,MAAM,wCAAwC;AAG9C,MAAM,8BAA8B;AACpC,MAAM,4BAA4B;AAClC,MAAM,iCAAiC;AACvC,MAAM,4BAA4B;AAClC,MAAM,sBAAsB;AAG5B,MAAM,uBAAuB;AAC7B,MAAM,sBAAsB;AAC5B,MAAM,yBAAyB;AAG/B,MAAM,sCAAsC;","names":[]}
@@ -0,0 +1,61 @@
1
+ export declare const ATTR_SPEECH_ID = "lk.speech_id";
2
+ export declare const ATTR_AGENT_LABEL = "lk.agent_label";
3
+ export declare const ATTR_START_TIME = "lk.start_time";
4
+ export declare const ATTR_END_TIME = "lk.end_time";
5
+ export declare const ATTR_RETRY_COUNT = "lk.retry_count";
6
+ export declare const ATTR_PARTICIPANT_ID = "lk.participant_id";
7
+ export declare const ATTR_PARTICIPANT_IDENTITY = "lk.participant_identity";
8
+ export declare const ATTR_PARTICIPANT_KIND = "lk.participant_kind";
9
+ export declare const ATTR_JOB_ID = "lk.job_id";
10
+ export declare const ATTR_AGENT_NAME = "lk.agent_name";
11
+ export declare const ATTR_ROOM_NAME = "lk.room_name";
12
+ export declare const ATTR_SESSION_OPTIONS = "lk.session_options";
13
+ export declare const ATTR_USER_INPUT = "lk.user_input";
14
+ export declare const ATTR_INSTRUCTIONS = "lk.instructions";
15
+ export declare const ATTR_SPEECH_INTERRUPTED = "lk.interrupted";
16
+ export declare const ATTR_CHAT_CTX = "lk.chat_ctx";
17
+ export declare const ATTR_FUNCTION_TOOLS = "lk.function_tools";
18
+ export declare const ATTR_RESPONSE_TEXT = "lk.response.text";
19
+ export declare const ATTR_RESPONSE_FUNCTION_CALLS = "lk.response.function_calls";
20
+ export declare const ATTR_FUNCTION_TOOL_NAME = "lk.function_tool.name";
21
+ export declare const ATTR_FUNCTION_TOOL_ARGS = "lk.function_tool.arguments";
22
+ export declare const ATTR_FUNCTION_TOOL_IS_ERROR = "lk.function_tool.is_error";
23
+ export declare const ATTR_FUNCTION_TOOL_OUTPUT = "lk.function_tool.output";
24
+ export declare const ATTR_TTS_INPUT_TEXT = "lk.input_text";
25
+ export declare const ATTR_TTS_STREAMING = "lk.tts.streaming";
26
+ export declare const ATTR_TTS_LABEL = "lk.tts.label";
27
+ export declare const ATTR_EOU_PROBABILITY = "lk.eou.probability";
28
+ export declare const ATTR_EOU_UNLIKELY_THRESHOLD = "lk.eou.unlikely_threshold";
29
+ export declare const ATTR_EOU_DELAY = "lk.eou.endpointing_delay";
30
+ export declare const ATTR_EOU_LANGUAGE = "lk.eou.language";
31
+ export declare const ATTR_USER_TRANSCRIPT = "lk.user_transcript";
32
+ export declare const ATTR_TRANSCRIPT_CONFIDENCE = "lk.transcript_confidence";
33
+ export declare const ATTR_TRANSCRIPTION_DELAY = "lk.transcription_delay";
34
+ export declare const ATTR_END_OF_TURN_DELAY = "lk.end_of_turn_delay";
35
+ export declare const ATTR_IS_INTERRUPTION = "lk.is_interruption";
36
+ export declare const ATTR_INTERRUPTION_PROBABILITY = "lk.interruption.probability";
37
+ export declare const ATTR_INTERRUPTION_TOTAL_DURATION = "lk.interruption.total_duration";
38
+ export declare const ATTR_INTERRUPTION_PREDICTION_DURATION = "lk.interruption.prediction_duration";
39
+ export declare const ATTR_INTERRUPTION_DETECTION_DELAY = "lk.interruption.detection_delay";
40
+ export declare const ATTR_LLM_METRICS = "lk.llm_metrics";
41
+ export declare const ATTR_TTS_METRICS = "lk.tts_metrics";
42
+ export declare const ATTR_REALTIME_MODEL_METRICS = "lk.realtime_model_metrics";
43
+ export declare const ATTR_GEN_AI_OPERATION_NAME = "gen_ai.operation.name";
44
+ export declare const ATTR_GEN_AI_REQUEST_MODEL = "gen_ai.request.model";
45
+ export declare const ATTR_GEN_AI_USAGE_INPUT_TOKENS = "gen_ai.usage.input_tokens";
46
+ export declare const ATTR_GEN_AI_USAGE_OUTPUT_TOKENS = "gen_ai.usage.output_tokens";
47
+ export declare const ATTR_GEN_AI_USAGE_INPUT_TEXT_TOKENS = "gen_ai.usage.input_text_tokens";
48
+ export declare const ATTR_GEN_AI_USAGE_INPUT_AUDIO_TOKENS = "gen_ai.usage.input_audio_tokens";
49
+ export declare const ATTR_GEN_AI_USAGE_INPUT_CACHED_TOKENS = "gen_ai.usage.input_cached_tokens";
50
+ export declare const ATTR_GEN_AI_USAGE_OUTPUT_TEXT_TOKENS = "gen_ai.usage.output_text_tokens";
51
+ export declare const ATTR_GEN_AI_USAGE_OUTPUT_AUDIO_TOKENS = "gen_ai.usage.output_audio_tokens";
52
+ export declare const EVENT_GEN_AI_SYSTEM_MESSAGE = "gen_ai.system.message";
53
+ export declare const EVENT_GEN_AI_USER_MESSAGE = "gen_ai.user.message";
54
+ export declare const EVENT_GEN_AI_ASSISTANT_MESSAGE = "gen_ai.assistant.message";
55
+ export declare const EVENT_GEN_AI_TOOL_MESSAGE = "gen_ai.tool.message";
56
+ export declare const EVENT_GEN_AI_CHOICE = "gen_ai.choice";
57
+ export declare const ATTR_EXCEPTION_TRACE = "exception.stacktrace";
58
+ export declare const ATTR_EXCEPTION_TYPE = "exception.type";
59
+ export declare const ATTR_EXCEPTION_MESSAGE = "exception.message";
60
+ export declare const ATTR_LANGFUSE_COMPLETION_START_TIME = "langfuse.observation.completion_start_time";
61
+ //# sourceMappingURL=trace_types.d.ts.map