@azure/ai-projects 2.7.1 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (589) hide show
  1. package/README.md +101 -5
  2. package/dist/browser/aiProjectClient.d.ts +4 -0
  3. package/dist/browser/aiProjectClient.d.ts.map +1 -1
  4. package/dist/browser/aiProjectClient.js +6 -1
  5. package/dist/browser/aiProjectClient.js.map +1 -1
  6. package/dist/browser/api/agents/index.d.ts +2 -2
  7. package/dist/browser/api/agents/index.d.ts.map +1 -1
  8. package/dist/browser/api/agents/index.js +1 -1
  9. package/dist/browser/api/agents/index.js.map +1 -1
  10. package/dist/browser/api/agents/operations.d.ts +41 -4
  11. package/dist/browser/api/agents/operations.d.ts.map +1 -1
  12. package/dist/browser/api/agents/operations.js +322 -21
  13. package/dist/browser/api/agents/operations.js.map +1 -1
  14. package/dist/browser/api/agents/options.d.ts +163 -93
  15. package/dist/browser/api/agents/options.d.ts.map +1 -1
  16. package/dist/browser/api/agents/options.js.map +1 -1
  17. package/dist/browser/api/beta/agents/index.d.ts +2 -2
  18. package/dist/browser/api/beta/agents/index.d.ts.map +1 -1
  19. package/dist/browser/api/beta/agents/index.js +1 -1
  20. package/dist/browser/api/beta/agents/index.js.map +1 -1
  21. package/dist/browser/api/beta/agents/operations.d.ts +2 -24
  22. package/dist/browser/api/beta/agents/operations.d.ts.map +1 -1
  23. package/dist/browser/api/beta/agents/operations.js +3 -185
  24. package/dist/browser/api/beta/agents/operations.js.map +1 -1
  25. package/dist/browser/api/beta/agents/options.d.ts +0 -56
  26. package/dist/browser/api/beta/agents/options.d.ts.map +1 -1
  27. package/dist/browser/api/beta/agents/options.js.map +1 -1
  28. package/dist/browser/api/beta/evaluators/index.d.ts +2 -2
  29. package/dist/browser/api/beta/evaluators/index.d.ts.map +1 -1
  30. package/dist/browser/api/beta/evaluators/index.js +1 -1
  31. package/dist/browser/api/beta/evaluators/index.js.map +1 -1
  32. package/dist/browser/api/beta/evaluators/operations.d.ts +2 -59
  33. package/dist/browser/api/beta/evaluators/operations.d.ts.map +1 -1
  34. package/dist/browser/api/beta/evaluators/operations.js +1 -388
  35. package/dist/browser/api/beta/evaluators/operations.js.map +1 -1
  36. package/dist/browser/api/beta/evaluators/options.d.ts +0 -84
  37. package/dist/browser/api/beta/evaluators/options.d.ts.map +1 -1
  38. package/dist/browser/api/beta/evaluators/options.js.map +1 -1
  39. package/dist/browser/api/datasets/index.d.ts +2 -2
  40. package/dist/browser/api/datasets/index.d.ts.map +1 -1
  41. package/dist/browser/api/datasets/index.js +1 -1
  42. package/dist/browser/api/datasets/index.js.map +1 -1
  43. package/dist/browser/api/datasets/operations.d.ts +23 -2
  44. package/dist/browser/api/datasets/operations.d.ts.map +1 -1
  45. package/dist/browser/api/datasets/operations.js +193 -1
  46. package/dist/browser/api/datasets/operations.js.map +1 -1
  47. package/dist/browser/api/datasets/options.d.ts +52 -0
  48. package/dist/browser/api/datasets/options.d.ts.map +1 -1
  49. package/dist/browser/api/datasets/options.js.map +1 -1
  50. package/dist/browser/api/evaluators/index.d.ts +3 -0
  51. package/dist/browser/api/evaluators/index.d.ts.map +1 -0
  52. package/dist/browser/api/evaluators/index.js +4 -0
  53. package/dist/browser/api/evaluators/index.js.map +1 -0
  54. package/dist/browser/api/evaluators/operations.d.ts +62 -0
  55. package/dist/browser/api/evaluators/operations.d.ts.map +1 -0
  56. package/dist/browser/api/evaluators/operations.js +373 -0
  57. package/dist/browser/api/evaluators/operations.js.map +1 -0
  58. package/dist/browser/api/evaluators/options.d.ts +70 -0
  59. package/dist/browser/api/evaluators/options.d.ts.map +1 -0
  60. package/dist/browser/api/evaluators/options.js.map +1 -0
  61. package/dist/browser/classic/agents/index.d.ts +21 -2
  62. package/dist/browser/classic/agents/index.d.ts.map +1 -1
  63. package/dist/browser/classic/agents/index.js +10 -1
  64. package/dist/browser/classic/agents/index.js.map +1 -1
  65. package/dist/browser/classic/beta/agents/index.d.ts +4 -15
  66. package/dist/browser/classic/beta/agents/index.d.ts.map +1 -1
  67. package/dist/browser/classic/beta/agents/index.js +4 -11
  68. package/dist/browser/classic/beta/agents/index.js.map +1 -1
  69. package/dist/browser/classic/beta/evaluators/index.d.ts +3 -38
  70. package/dist/browser/classic/beta/evaluators/index.d.ts.map +1 -1
  71. package/dist/browser/classic/beta/evaluators/index.js +2 -18
  72. package/dist/browser/classic/beta/evaluators/index.js.map +1 -1
  73. package/dist/browser/classic/beta/index.d.ts +2 -4
  74. package/dist/browser/classic/beta/index.d.ts.map +1 -1
  75. package/dist/browser/classic/beta/index.js +3 -6
  76. package/dist/browser/classic/beta/index.js.map +1 -1
  77. package/dist/browser/classic/beta/voiceAgents/conversations/index.d.ts +2 -1
  78. package/dist/browser/classic/beta/voiceAgents/conversations/index.d.ts.map +1 -1
  79. package/dist/browser/classic/beta/voiceAgents/conversations/index.js +5 -4
  80. package/dist/browser/classic/beta/voiceAgents/conversations/index.js.map +1 -1
  81. package/dist/browser/classic/beta/voiceAgents/index.d.ts +3 -2
  82. package/dist/browser/classic/beta/voiceAgents/index.d.ts.map +1 -1
  83. package/dist/browser/classic/beta/voiceAgents/index.js +5 -5
  84. package/dist/browser/classic/beta/voiceAgents/index.js.map +1 -1
  85. package/dist/browser/classic/beta/voiceAgents/telephony/index.d.ts +2 -1
  86. package/dist/browser/classic/beta/voiceAgents/telephony/index.d.ts.map +1 -1
  87. package/dist/browser/classic/beta/voiceAgents/telephony/index.js +16 -11
  88. package/dist/browser/classic/beta/voiceAgents/telephony/index.js.map +1 -1
  89. package/dist/browser/classic/datasets/index.d.ts +13 -2
  90. package/dist/browser/classic/datasets/index.d.ts.map +1 -1
  91. package/dist/browser/classic/datasets/index.js +6 -1
  92. package/dist/browser/classic/datasets/index.js.map +1 -1
  93. package/dist/browser/classic/evaluators/index.d.ts +43 -0
  94. package/dist/browser/classic/evaluators/index.d.ts.map +1 -0
  95. package/dist/browser/classic/evaluators/index.js +19 -0
  96. package/dist/browser/classic/evaluators/index.js.map +1 -0
  97. package/dist/browser/classic/index.d.ts +1 -1
  98. package/dist/browser/classic/index.d.ts.map +1 -1
  99. package/dist/browser/classic/index.js.map +1 -1
  100. package/dist/browser/constants.d.ts +1 -1
  101. package/dist/browser/constants.js +1 -1
  102. package/dist/browser/constants.js.map +1 -1
  103. package/dist/browser/index.d.ts +10 -17
  104. package/dist/browser/index.d.ts.map +1 -1
  105. package/dist/browser/index.js +1 -2
  106. package/dist/browser/index.js.map +1 -1
  107. package/dist/browser/models/index.d.ts +1 -3
  108. package/dist/browser/models/index.d.ts.map +1 -1
  109. package/dist/browser/models/index.js.map +1 -1
  110. package/dist/browser/models/models.d.ts +1081 -536
  111. package/dist/browser/models/models.d.ts.map +1 -1
  112. package/dist/browser/models/models.js +1554 -655
  113. package/dist/browser/models/models.js.map +1 -1
  114. package/dist/browser/package.json +1 -1
  115. package/dist/browser/realtime/voiceAgentRealtimeClient.d.ts +27 -2
  116. package/dist/browser/realtime/voiceAgentRealtimeClient.d.ts.map +1 -1
  117. package/dist/browser/realtime/voiceAgentRealtimeClient.js +97 -17
  118. package/dist/browser/realtime/voiceAgentRealtimeClient.js.map +1 -1
  119. package/dist/browser/tracing/configuration.d.ts +3 -5
  120. package/dist/browser/tracing/configuration.d.ts.map +1 -1
  121. package/dist/browser/tracing/configuration.js +8 -6
  122. package/dist/browser/tracing/configuration.js.map +1 -1
  123. package/dist/browser/tracing/tracingClient.d.ts +1 -1
  124. package/dist/browser/tracing/tracingClient.d.ts.map +1 -1
  125. package/dist/browser/tracing/tracingClient.js +2 -2
  126. package/dist/browser/tracing/tracingClient.js.map +1 -1
  127. package/dist/browser/tracing/voiceAgentTracing.d.ts +63 -0
  128. package/dist/browser/tracing/voiceAgentTracing.d.ts.map +1 -0
  129. package/dist/browser/tracing/voiceAgentTracing.js +740 -0
  130. package/dist/browser/tracing/voiceAgentTracing.js.map +1 -0
  131. package/dist/browser/webSocketTransport.d.ts +1 -0
  132. package/dist/browser/webSocketTransport.d.ts.map +1 -1
  133. package/dist/browser/webSocketTransport.js +5 -13
  134. package/dist/browser/webSocketTransport.js.map +1 -1
  135. package/dist/commonjs/aiProjectClient.d.ts +4 -0
  136. package/dist/commonjs/aiProjectClient.d.ts.map +1 -1
  137. package/dist/commonjs/aiProjectClient.js +6 -1
  138. package/dist/commonjs/aiProjectClient.js.map +2 -2
  139. package/dist/commonjs/api/agents/index.d.ts +2 -2
  140. package/dist/commonjs/api/agents/index.d.ts.map +1 -1
  141. package/dist/commonjs/api/agents/index.js +18 -0
  142. package/dist/commonjs/api/agents/index.js.map +2 -2
  143. package/dist/commonjs/api/agents/operations.d.ts +41 -4
  144. package/dist/commonjs/api/agents/operations.d.ts.map +1 -1
  145. package/dist/commonjs/api/agents/operations.js +415 -19
  146. package/dist/commonjs/api/agents/operations.js.map +2 -2
  147. package/dist/commonjs/api/agents/options.d.ts +163 -93
  148. package/dist/commonjs/api/agents/options.d.ts.map +1 -1
  149. package/dist/commonjs/api/agents/options.js.map +1 -1
  150. package/dist/commonjs/api/beta/agents/index.d.ts +2 -2
  151. package/dist/commonjs/api/beta/agents/index.d.ts.map +1 -1
  152. package/dist/commonjs/api/beta/agents/index.js +2 -12
  153. package/dist/commonjs/api/beta/agents/index.js.map +2 -2
  154. package/dist/commonjs/api/beta/agents/operations.d.ts +2 -24
  155. package/dist/commonjs/api/beta/agents/operations.d.ts.map +1 -1
  156. package/dist/commonjs/api/beta/agents/operations.js +4 -239
  157. package/dist/commonjs/api/beta/agents/operations.js.map +2 -2
  158. package/dist/commonjs/api/beta/agents/options.d.ts +0 -56
  159. package/dist/commonjs/api/beta/agents/options.d.ts.map +1 -1
  160. package/dist/commonjs/api/beta/agents/options.js.map +1 -1
  161. package/dist/commonjs/api/beta/evaluators/index.d.ts +2 -2
  162. package/dist/commonjs/api/beta/evaluators/index.d.ts.map +1 -1
  163. package/dist/commonjs/api/beta/evaluators/index.js +2 -24
  164. package/dist/commonjs/api/beta/evaluators/index.js.map +2 -2
  165. package/dist/commonjs/api/beta/evaluators/operations.d.ts +2 -59
  166. package/dist/commonjs/api/beta/evaluators/operations.d.ts.map +1 -1
  167. package/dist/commonjs/api/beta/evaluators/operations.js +2 -497
  168. package/dist/commonjs/api/beta/evaluators/operations.js.map +2 -2
  169. package/dist/commonjs/api/beta/evaluators/options.d.ts +0 -84
  170. package/dist/commonjs/api/beta/evaluators/options.d.ts.map +1 -1
  171. package/dist/commonjs/api/beta/evaluators/options.js.map +1 -1
  172. package/dist/commonjs/api/datasets/index.d.ts +2 -2
  173. package/dist/commonjs/api/datasets/index.d.ts.map +1 -1
  174. package/dist/commonjs/api/datasets/index.js +10 -0
  175. package/dist/commonjs/api/datasets/index.js.map +2 -2
  176. package/dist/commonjs/api/datasets/operations.d.ts +23 -2
  177. package/dist/commonjs/api/datasets/operations.d.ts.map +1 -1
  178. package/dist/commonjs/api/datasets/operations.js +245 -0
  179. package/dist/commonjs/api/datasets/operations.js.map +2 -2
  180. package/dist/commonjs/api/datasets/options.d.ts +52 -0
  181. package/dist/commonjs/api/datasets/options.d.ts.map +1 -1
  182. package/dist/commonjs/api/datasets/options.js.map +1 -1
  183. package/dist/commonjs/api/evaluators/index.d.ts +3 -0
  184. package/dist/commonjs/api/evaluators/index.d.ts.map +1 -0
  185. package/dist/commonjs/api/{beta/datasets → evaluators}/index.js +17 -5
  186. package/dist/commonjs/api/evaluators/index.js.map +7 -0
  187. package/dist/commonjs/api/evaluators/operations.d.ts +62 -0
  188. package/dist/commonjs/api/evaluators/operations.d.ts.map +1 -0
  189. package/dist/commonjs/api/evaluators/operations.js +505 -0
  190. package/dist/commonjs/api/evaluators/operations.js.map +7 -0
  191. package/dist/commonjs/api/evaluators/options.d.ts +70 -0
  192. package/dist/commonjs/api/evaluators/options.d.ts.map +1 -0
  193. package/dist/commonjs/api/evaluators/options.js.map +7 -0
  194. package/dist/commonjs/classic/agents/index.d.ts +21 -2
  195. package/dist/commonjs/classic/agents/index.d.ts.map +1 -1
  196. package/dist/commonjs/classic/agents/index.js +9 -0
  197. package/dist/commonjs/classic/agents/index.js.map +2 -2
  198. package/dist/commonjs/classic/beta/agents/index.d.ts +4 -15
  199. package/dist/commonjs/classic/beta/agents/index.d.ts.map +1 -1
  200. package/dist/commonjs/classic/beta/agents/index.js +9 -10
  201. package/dist/commonjs/classic/beta/agents/index.js.map +2 -2
  202. package/dist/commonjs/classic/beta/evaluators/index.d.ts +3 -38
  203. package/dist/commonjs/classic/beta/evaluators/index.d.ts.map +1 -1
  204. package/dist/commonjs/classic/beta/evaluators/index.js +2 -18
  205. package/dist/commonjs/classic/beta/evaluators/index.js.map +2 -2
  206. package/dist/commonjs/classic/beta/index.d.ts +2 -4
  207. package/dist/commonjs/classic/beta/index.d.ts.map +1 -1
  208. package/dist/commonjs/classic/beta/index.js +9 -6
  209. package/dist/commonjs/classic/beta/index.js.map +2 -2
  210. package/dist/commonjs/classic/beta/voiceAgents/conversations/index.d.ts +2 -1
  211. package/dist/commonjs/classic/beta/voiceAgents/conversations/index.d.ts.map +1 -1
  212. package/dist/commonjs/classic/beta/voiceAgents/conversations/index.js +10 -4
  213. package/dist/commonjs/classic/beta/voiceAgents/conversations/index.js.map +2 -2
  214. package/dist/commonjs/classic/beta/voiceAgents/index.d.ts +3 -2
  215. package/dist/commonjs/classic/beta/voiceAgents/index.d.ts.map +1 -1
  216. package/dist/commonjs/classic/beta/voiceAgents/index.js +4 -4
  217. package/dist/commonjs/classic/beta/voiceAgents/index.js.map +2 -2
  218. package/dist/commonjs/classic/beta/voiceAgents/telephony/index.d.ts +2 -1
  219. package/dist/commonjs/classic/beta/voiceAgents/telephony/index.d.ts.map +1 -1
  220. package/dist/commonjs/classic/beta/voiceAgents/telephony/index.js +33 -11
  221. package/dist/commonjs/classic/beta/voiceAgents/telephony/index.js.map +2 -2
  222. package/dist/commonjs/classic/datasets/index.d.ts +13 -2
  223. package/dist/commonjs/classic/datasets/index.d.ts.map +1 -1
  224. package/dist/commonjs/classic/datasets/index.js +5 -0
  225. package/dist/commonjs/classic/datasets/index.js.map +2 -2
  226. package/dist/commonjs/classic/evaluators/index.d.ts +43 -0
  227. package/dist/commonjs/classic/evaluators/index.d.ts.map +1 -0
  228. package/dist/commonjs/classic/{beta/datasets → evaluators}/index.js +15 -14
  229. package/dist/commonjs/classic/evaluators/index.js.map +7 -0
  230. package/dist/commonjs/classic/index.d.ts +1 -1
  231. package/dist/commonjs/classic/index.d.ts.map +1 -1
  232. package/dist/commonjs/classic/index.js.map +1 -1
  233. package/dist/commonjs/constants.d.ts +1 -1
  234. package/dist/commonjs/constants.js +1 -1
  235. package/dist/commonjs/constants.js.map +1 -1
  236. package/dist/commonjs/index.d.ts +10 -17
  237. package/dist/commonjs/index.d.ts.map +1 -1
  238. package/dist/commonjs/index.js +1 -2
  239. package/dist/commonjs/index.js.map +3 -3
  240. package/dist/commonjs/models/index.d.ts +1 -3
  241. package/dist/commonjs/models/index.d.ts.map +1 -1
  242. package/dist/commonjs/models/index.js.map +1 -1
  243. package/dist/commonjs/models/models.d.ts +1081 -536
  244. package/dist/commonjs/models/models.d.ts.map +1 -1
  245. package/dist/commonjs/models/models.js +1803 -722
  246. package/dist/commonjs/models/models.js.map +2 -2
  247. package/dist/commonjs/package.json +1 -1
  248. package/dist/commonjs/realtime/voiceAgentRealtimeClient.d.ts +27 -2
  249. package/dist/commonjs/realtime/voiceAgentRealtimeClient.d.ts.map +1 -1
  250. package/dist/commonjs/realtime/voiceAgentRealtimeClient.js +98 -27
  251. package/dist/commonjs/realtime/voiceAgentRealtimeClient.js.map +2 -2
  252. package/dist/commonjs/tracing/configuration.d.ts +3 -5
  253. package/dist/commonjs/tracing/configuration.d.ts.map +1 -1
  254. package/dist/commonjs/tracing/configuration.js +5 -1
  255. package/dist/commonjs/tracing/configuration.js.map +2 -2
  256. package/dist/commonjs/tracing/tracingClient.d.ts +1 -1
  257. package/dist/commonjs/tracing/tracingClient.d.ts.map +1 -1
  258. package/dist/commonjs/tracing/tracingClient.js +2 -2
  259. package/dist/commonjs/tracing/tracingClient.js.map +2 -2
  260. package/dist/commonjs/tracing/voiceAgentTracing.d.ts +63 -0
  261. package/dist/commonjs/tracing/voiceAgentTracing.d.ts.map +1 -0
  262. package/dist/commonjs/tracing/voiceAgentTracing.js +705 -0
  263. package/dist/commonjs/tracing/voiceAgentTracing.js.map +7 -0
  264. package/dist/commonjs/tsdoc-metadata.json +1 -1
  265. package/dist/esm/aiProjectClient.d.ts +4 -0
  266. package/dist/esm/aiProjectClient.d.ts.map +1 -1
  267. package/dist/esm/aiProjectClient.js +6 -1
  268. package/dist/esm/aiProjectClient.js.map +1 -1
  269. package/dist/esm/api/agents/index.d.ts +2 -2
  270. package/dist/esm/api/agents/index.d.ts.map +1 -1
  271. package/dist/esm/api/agents/index.js +1 -1
  272. package/dist/esm/api/agents/index.js.map +1 -1
  273. package/dist/esm/api/agents/operations.d.ts +41 -4
  274. package/dist/esm/api/agents/operations.d.ts.map +1 -1
  275. package/dist/esm/api/agents/operations.js +322 -21
  276. package/dist/esm/api/agents/operations.js.map +1 -1
  277. package/dist/esm/api/agents/options.d.ts +163 -93
  278. package/dist/esm/api/agents/options.d.ts.map +1 -1
  279. package/dist/esm/api/agents/options.js.map +1 -1
  280. package/dist/esm/api/beta/agents/index.d.ts +2 -2
  281. package/dist/esm/api/beta/agents/index.d.ts.map +1 -1
  282. package/dist/esm/api/beta/agents/index.js +1 -1
  283. package/dist/esm/api/beta/agents/index.js.map +1 -1
  284. package/dist/esm/api/beta/agents/operations.d.ts +2 -24
  285. package/dist/esm/api/beta/agents/operations.d.ts.map +1 -1
  286. package/dist/esm/api/beta/agents/operations.js +3 -185
  287. package/dist/esm/api/beta/agents/operations.js.map +1 -1
  288. package/dist/esm/api/beta/agents/options.d.ts +0 -56
  289. package/dist/esm/api/beta/agents/options.d.ts.map +1 -1
  290. package/dist/esm/api/beta/agents/options.js.map +1 -1
  291. package/dist/esm/api/beta/evaluators/index.d.ts +2 -2
  292. package/dist/esm/api/beta/evaluators/index.d.ts.map +1 -1
  293. package/dist/esm/api/beta/evaluators/index.js +1 -1
  294. package/dist/esm/api/beta/evaluators/index.js.map +1 -1
  295. package/dist/esm/api/beta/evaluators/operations.d.ts +2 -59
  296. package/dist/esm/api/beta/evaluators/operations.d.ts.map +1 -1
  297. package/dist/esm/api/beta/evaluators/operations.js +1 -388
  298. package/dist/esm/api/beta/evaluators/operations.js.map +1 -1
  299. package/dist/esm/api/beta/evaluators/options.d.ts +0 -84
  300. package/dist/esm/api/beta/evaluators/options.d.ts.map +1 -1
  301. package/dist/esm/api/beta/evaluators/options.js.map +1 -1
  302. package/dist/esm/api/datasets/index.d.ts +2 -2
  303. package/dist/esm/api/datasets/index.d.ts.map +1 -1
  304. package/dist/esm/api/datasets/index.js +1 -1
  305. package/dist/esm/api/datasets/index.js.map +1 -1
  306. package/dist/esm/api/datasets/operations.d.ts +23 -2
  307. package/dist/esm/api/datasets/operations.d.ts.map +1 -1
  308. package/dist/esm/api/datasets/operations.js +193 -1
  309. package/dist/esm/api/datasets/operations.js.map +1 -1
  310. package/dist/esm/api/datasets/options.d.ts +52 -0
  311. package/dist/esm/api/datasets/options.d.ts.map +1 -1
  312. package/dist/esm/api/datasets/options.js.map +1 -1
  313. package/dist/esm/api/evaluators/index.d.ts +3 -0
  314. package/dist/esm/api/evaluators/index.d.ts.map +1 -0
  315. package/dist/esm/api/evaluators/index.js +4 -0
  316. package/dist/esm/api/evaluators/index.js.map +1 -0
  317. package/dist/esm/api/evaluators/operations.d.ts +62 -0
  318. package/dist/esm/api/evaluators/operations.d.ts.map +1 -0
  319. package/dist/esm/api/evaluators/operations.js +373 -0
  320. package/dist/esm/api/evaluators/operations.js.map +1 -0
  321. package/dist/esm/api/evaluators/options.d.ts +70 -0
  322. package/dist/esm/api/evaluators/options.d.ts.map +1 -0
  323. package/dist/esm/api/evaluators/options.js.map +1 -0
  324. package/dist/esm/classic/agents/index.d.ts +21 -2
  325. package/dist/esm/classic/agents/index.d.ts.map +1 -1
  326. package/dist/esm/classic/agents/index.js +10 -1
  327. package/dist/esm/classic/agents/index.js.map +1 -1
  328. package/dist/esm/classic/beta/agents/index.d.ts +4 -15
  329. package/dist/esm/classic/beta/agents/index.d.ts.map +1 -1
  330. package/dist/esm/classic/beta/agents/index.js +4 -11
  331. package/dist/esm/classic/beta/agents/index.js.map +1 -1
  332. package/dist/esm/classic/beta/evaluators/index.d.ts +3 -38
  333. package/dist/esm/classic/beta/evaluators/index.d.ts.map +1 -1
  334. package/dist/esm/classic/beta/evaluators/index.js +2 -18
  335. package/dist/esm/classic/beta/evaluators/index.js.map +1 -1
  336. package/dist/esm/classic/beta/index.d.ts +2 -4
  337. package/dist/esm/classic/beta/index.d.ts.map +1 -1
  338. package/dist/esm/classic/beta/index.js +3 -6
  339. package/dist/esm/classic/beta/index.js.map +1 -1
  340. package/dist/esm/classic/beta/voiceAgents/conversations/index.d.ts +2 -1
  341. package/dist/esm/classic/beta/voiceAgents/conversations/index.d.ts.map +1 -1
  342. package/dist/esm/classic/beta/voiceAgents/conversations/index.js +5 -4
  343. package/dist/esm/classic/beta/voiceAgents/conversations/index.js.map +1 -1
  344. package/dist/esm/classic/beta/voiceAgents/index.d.ts +3 -2
  345. package/dist/esm/classic/beta/voiceAgents/index.d.ts.map +1 -1
  346. package/dist/esm/classic/beta/voiceAgents/index.js +5 -5
  347. package/dist/esm/classic/beta/voiceAgents/index.js.map +1 -1
  348. package/dist/esm/classic/beta/voiceAgents/telephony/index.d.ts +2 -1
  349. package/dist/esm/classic/beta/voiceAgents/telephony/index.d.ts.map +1 -1
  350. package/dist/esm/classic/beta/voiceAgents/telephony/index.js +16 -11
  351. package/dist/esm/classic/beta/voiceAgents/telephony/index.js.map +1 -1
  352. package/dist/esm/classic/datasets/index.d.ts +13 -2
  353. package/dist/esm/classic/datasets/index.d.ts.map +1 -1
  354. package/dist/esm/classic/datasets/index.js +6 -1
  355. package/dist/esm/classic/datasets/index.js.map +1 -1
  356. package/dist/esm/classic/evaluators/index.d.ts +43 -0
  357. package/dist/esm/classic/evaluators/index.d.ts.map +1 -0
  358. package/dist/esm/classic/evaluators/index.js +19 -0
  359. package/dist/esm/classic/evaluators/index.js.map +1 -0
  360. package/dist/esm/classic/index.d.ts +1 -1
  361. package/dist/esm/classic/index.d.ts.map +1 -1
  362. package/dist/esm/classic/index.js.map +1 -1
  363. package/dist/esm/constants.d.ts +1 -1
  364. package/dist/esm/constants.js +1 -1
  365. package/dist/esm/constants.js.map +1 -1
  366. package/dist/esm/index.d.ts +10 -17
  367. package/dist/esm/index.d.ts.map +1 -1
  368. package/dist/esm/index.js +1 -2
  369. package/dist/esm/index.js.map +1 -1
  370. package/dist/esm/models/index.d.ts +1 -3
  371. package/dist/esm/models/index.d.ts.map +1 -1
  372. package/dist/esm/models/index.js.map +1 -1
  373. package/dist/esm/models/models.d.ts +1081 -536
  374. package/dist/esm/models/models.d.ts.map +1 -1
  375. package/dist/esm/models/models.js +1554 -655
  376. package/dist/esm/models/models.js.map +1 -1
  377. package/dist/esm/package.json +1 -1
  378. package/dist/esm/realtime/voiceAgentRealtimeClient.d.ts +27 -2
  379. package/dist/esm/realtime/voiceAgentRealtimeClient.d.ts.map +1 -1
  380. package/dist/esm/realtime/voiceAgentRealtimeClient.js +97 -17
  381. package/dist/esm/realtime/voiceAgentRealtimeClient.js.map +1 -1
  382. package/dist/esm/tracing/configuration.d.ts +3 -5
  383. package/dist/esm/tracing/configuration.d.ts.map +1 -1
  384. package/dist/esm/tracing/configuration.js +8 -6
  385. package/dist/esm/tracing/configuration.js.map +1 -1
  386. package/dist/esm/tracing/tracingClient.d.ts +1 -1
  387. package/dist/esm/tracing/tracingClient.d.ts.map +1 -1
  388. package/dist/esm/tracing/tracingClient.js +2 -2
  389. package/dist/esm/tracing/tracingClient.js.map +1 -1
  390. package/dist/esm/tracing/voiceAgentTracing.d.ts +63 -0
  391. package/dist/esm/tracing/voiceAgentTracing.d.ts.map +1 -0
  392. package/dist/esm/tracing/voiceAgentTracing.js +740 -0
  393. package/dist/esm/tracing/voiceAgentTracing.js.map +1 -0
  394. package/dist/react-native/aiProjectClient.d.ts +4 -0
  395. package/dist/react-native/aiProjectClient.d.ts.map +1 -1
  396. package/dist/react-native/aiProjectClient.js +6 -1
  397. package/dist/react-native/aiProjectClient.js.map +1 -1
  398. package/dist/react-native/api/agents/index.d.ts +2 -2
  399. package/dist/react-native/api/agents/index.d.ts.map +1 -1
  400. package/dist/react-native/api/agents/index.js +1 -1
  401. package/dist/react-native/api/agents/index.js.map +1 -1
  402. package/dist/react-native/api/agents/operations.d.ts +41 -4
  403. package/dist/react-native/api/agents/operations.d.ts.map +1 -1
  404. package/dist/react-native/api/agents/operations.js +322 -21
  405. package/dist/react-native/api/agents/operations.js.map +1 -1
  406. package/dist/react-native/api/agents/options.d.ts +163 -93
  407. package/dist/react-native/api/agents/options.d.ts.map +1 -1
  408. package/dist/react-native/api/agents/options.js.map +1 -1
  409. package/dist/react-native/api/beta/agents/index.d.ts +2 -2
  410. package/dist/react-native/api/beta/agents/index.d.ts.map +1 -1
  411. package/dist/react-native/api/beta/agents/index.js +1 -1
  412. package/dist/react-native/api/beta/agents/index.js.map +1 -1
  413. package/dist/react-native/api/beta/agents/operations.d.ts +2 -24
  414. package/dist/react-native/api/beta/agents/operations.d.ts.map +1 -1
  415. package/dist/react-native/api/beta/agents/operations.js +3 -185
  416. package/dist/react-native/api/beta/agents/operations.js.map +1 -1
  417. package/dist/react-native/api/beta/agents/options.d.ts +0 -56
  418. package/dist/react-native/api/beta/agents/options.d.ts.map +1 -1
  419. package/dist/react-native/api/beta/agents/options.js.map +1 -1
  420. package/dist/react-native/api/beta/evaluators/index.d.ts +2 -2
  421. package/dist/react-native/api/beta/evaluators/index.d.ts.map +1 -1
  422. package/dist/react-native/api/beta/evaluators/index.js +1 -1
  423. package/dist/react-native/api/beta/evaluators/index.js.map +1 -1
  424. package/dist/react-native/api/beta/evaluators/operations.d.ts +2 -59
  425. package/dist/react-native/api/beta/evaluators/operations.d.ts.map +1 -1
  426. package/dist/react-native/api/beta/evaluators/operations.js +1 -388
  427. package/dist/react-native/api/beta/evaluators/operations.js.map +1 -1
  428. package/dist/react-native/api/beta/evaluators/options.d.ts +0 -84
  429. package/dist/react-native/api/beta/evaluators/options.d.ts.map +1 -1
  430. package/dist/react-native/api/beta/evaluators/options.js.map +1 -1
  431. package/dist/react-native/api/datasets/index.d.ts +2 -2
  432. package/dist/react-native/api/datasets/index.d.ts.map +1 -1
  433. package/dist/react-native/api/datasets/index.js +1 -1
  434. package/dist/react-native/api/datasets/index.js.map +1 -1
  435. package/dist/react-native/api/datasets/operations.d.ts +23 -2
  436. package/dist/react-native/api/datasets/operations.d.ts.map +1 -1
  437. package/dist/react-native/api/datasets/operations.js +193 -1
  438. package/dist/react-native/api/datasets/operations.js.map +1 -1
  439. package/dist/react-native/api/datasets/options.d.ts +52 -0
  440. package/dist/react-native/api/datasets/options.d.ts.map +1 -1
  441. package/dist/react-native/api/datasets/options.js.map +1 -1
  442. package/dist/react-native/api/evaluators/index.d.ts +3 -0
  443. package/dist/react-native/api/evaluators/index.d.ts.map +1 -0
  444. package/dist/react-native/api/evaluators/index.js +4 -0
  445. package/dist/react-native/api/evaluators/index.js.map +1 -0
  446. package/dist/react-native/api/evaluators/operations.d.ts +62 -0
  447. package/dist/react-native/api/evaluators/operations.d.ts.map +1 -0
  448. package/dist/react-native/api/evaluators/operations.js +373 -0
  449. package/dist/react-native/api/evaluators/operations.js.map +1 -0
  450. package/dist/react-native/api/evaluators/options.d.ts +70 -0
  451. package/dist/react-native/api/evaluators/options.d.ts.map +1 -0
  452. package/dist/react-native/api/evaluators/options.js.map +1 -0
  453. package/dist/react-native/classic/agents/index.d.ts +21 -2
  454. package/dist/react-native/classic/agents/index.d.ts.map +1 -1
  455. package/dist/react-native/classic/agents/index.js +10 -1
  456. package/dist/react-native/classic/agents/index.js.map +1 -1
  457. package/dist/react-native/classic/beta/agents/index.d.ts +4 -15
  458. package/dist/react-native/classic/beta/agents/index.d.ts.map +1 -1
  459. package/dist/react-native/classic/beta/agents/index.js +4 -11
  460. package/dist/react-native/classic/beta/agents/index.js.map +1 -1
  461. package/dist/react-native/classic/beta/evaluators/index.d.ts +3 -38
  462. package/dist/react-native/classic/beta/evaluators/index.d.ts.map +1 -1
  463. package/dist/react-native/classic/beta/evaluators/index.js +2 -18
  464. package/dist/react-native/classic/beta/evaluators/index.js.map +1 -1
  465. package/dist/react-native/classic/beta/index.d.ts +2 -4
  466. package/dist/react-native/classic/beta/index.d.ts.map +1 -1
  467. package/dist/react-native/classic/beta/index.js +3 -6
  468. package/dist/react-native/classic/beta/index.js.map +1 -1
  469. package/dist/react-native/classic/beta/voiceAgents/conversations/index.d.ts +2 -1
  470. package/dist/react-native/classic/beta/voiceAgents/conversations/index.d.ts.map +1 -1
  471. package/dist/react-native/classic/beta/voiceAgents/conversations/index.js +5 -4
  472. package/dist/react-native/classic/beta/voiceAgents/conversations/index.js.map +1 -1
  473. package/dist/react-native/classic/beta/voiceAgents/index.d.ts +3 -2
  474. package/dist/react-native/classic/beta/voiceAgents/index.d.ts.map +1 -1
  475. package/dist/react-native/classic/beta/voiceAgents/index.js +5 -5
  476. package/dist/react-native/classic/beta/voiceAgents/index.js.map +1 -1
  477. package/dist/react-native/classic/beta/voiceAgents/telephony/index.d.ts +2 -1
  478. package/dist/react-native/classic/beta/voiceAgents/telephony/index.d.ts.map +1 -1
  479. package/dist/react-native/classic/beta/voiceAgents/telephony/index.js +16 -11
  480. package/dist/react-native/classic/beta/voiceAgents/telephony/index.js.map +1 -1
  481. package/dist/react-native/classic/datasets/index.d.ts +13 -2
  482. package/dist/react-native/classic/datasets/index.d.ts.map +1 -1
  483. package/dist/react-native/classic/datasets/index.js +6 -1
  484. package/dist/react-native/classic/datasets/index.js.map +1 -1
  485. package/dist/react-native/classic/evaluators/index.d.ts +43 -0
  486. package/dist/react-native/classic/evaluators/index.d.ts.map +1 -0
  487. package/dist/react-native/classic/evaluators/index.js +19 -0
  488. package/dist/react-native/classic/evaluators/index.js.map +1 -0
  489. package/dist/react-native/classic/index.d.ts +1 -1
  490. package/dist/react-native/classic/index.d.ts.map +1 -1
  491. package/dist/react-native/classic/index.js.map +1 -1
  492. package/dist/react-native/constants.d.ts +1 -1
  493. package/dist/react-native/constants.js +1 -1
  494. package/dist/react-native/constants.js.map +1 -1
  495. package/dist/react-native/index.d.ts +10 -17
  496. package/dist/react-native/index.d.ts.map +1 -1
  497. package/dist/react-native/index.js +1 -2
  498. package/dist/react-native/index.js.map +1 -1
  499. package/dist/react-native/models/index.d.ts +1 -3
  500. package/dist/react-native/models/index.d.ts.map +1 -1
  501. package/dist/react-native/models/index.js.map +1 -1
  502. package/dist/react-native/models/models.d.ts +1081 -536
  503. package/dist/react-native/models/models.d.ts.map +1 -1
  504. package/dist/react-native/models/models.js +1554 -655
  505. package/dist/react-native/models/models.js.map +1 -1
  506. package/dist/react-native/package.json +1 -1
  507. package/dist/react-native/realtime/voiceAgentRealtimeClient.d.ts +27 -2
  508. package/dist/react-native/realtime/voiceAgentRealtimeClient.d.ts.map +1 -1
  509. package/dist/react-native/realtime/voiceAgentRealtimeClient.js +97 -17
  510. package/dist/react-native/realtime/voiceAgentRealtimeClient.js.map +1 -1
  511. package/dist/react-native/tracing/configuration.d.ts +3 -5
  512. package/dist/react-native/tracing/configuration.d.ts.map +1 -1
  513. package/dist/react-native/tracing/configuration.js +8 -6
  514. package/dist/react-native/tracing/configuration.js.map +1 -1
  515. package/dist/react-native/tracing/tracingClient.d.ts +1 -1
  516. package/dist/react-native/tracing/tracingClient.d.ts.map +1 -1
  517. package/dist/react-native/tracing/tracingClient.js +2 -2
  518. package/dist/react-native/tracing/tracingClient.js.map +1 -1
  519. package/dist/react-native/tracing/voiceAgentTracing.d.ts +63 -0
  520. package/dist/react-native/tracing/voiceAgentTracing.d.ts.map +1 -0
  521. package/dist/react-native/tracing/voiceAgentTracing.js +740 -0
  522. package/dist/react-native/tracing/voiceAgentTracing.js.map +1 -0
  523. package/dist/react-native/webSocketTransport-browser.d.mts +1 -0
  524. package/dist/react-native/webSocketTransport-browser.d.mts.map +1 -1
  525. package/dist/react-native/webSocketTransport-browser.mjs +5 -13
  526. package/dist/react-native/webSocketTransport-browser.mjs.map +1 -1
  527. package/package.json +9 -9
  528. package/dist/browser/api/beta/datasets/index.d.ts +0 -3
  529. package/dist/browser/api/beta/datasets/index.d.ts.map +0 -1
  530. package/dist/browser/api/beta/datasets/index.js +0 -4
  531. package/dist/browser/api/beta/datasets/index.js.map +0 -1
  532. package/dist/browser/api/beta/datasets/operations.d.ts +0 -27
  533. package/dist/browser/api/beta/datasets/operations.d.ts.map +0 -1
  534. package/dist/browser/api/beta/datasets/operations.js +0 -184
  535. package/dist/browser/api/beta/datasets/operations.js.map +0 -1
  536. package/dist/browser/api/beta/datasets/options.d.ts +0 -58
  537. package/dist/browser/api/beta/datasets/options.d.ts.map +0 -1
  538. package/dist/browser/api/beta/datasets/options.js.map +0 -1
  539. package/dist/browser/classic/beta/datasets/index.d.ts +0 -20
  540. package/dist/browser/classic/beta/datasets/index.d.ts.map +0 -1
  541. package/dist/browser/classic/beta/datasets/index.js +0 -18
  542. package/dist/browser/classic/beta/datasets/index.js.map +0 -1
  543. package/dist/commonjs/api/beta/datasets/index.d.ts +0 -3
  544. package/dist/commonjs/api/beta/datasets/index.d.ts.map +0 -1
  545. package/dist/commonjs/api/beta/datasets/index.js.map +0 -7
  546. package/dist/commonjs/api/beta/datasets/operations.d.ts +0 -27
  547. package/dist/commonjs/api/beta/datasets/operations.d.ts.map +0 -1
  548. package/dist/commonjs/api/beta/datasets/operations.js +0 -259
  549. package/dist/commonjs/api/beta/datasets/operations.js.map +0 -7
  550. package/dist/commonjs/api/beta/datasets/options.d.ts +0 -58
  551. package/dist/commonjs/api/beta/datasets/options.d.ts.map +0 -1
  552. package/dist/commonjs/api/beta/datasets/options.js.map +0 -7
  553. package/dist/commonjs/classic/beta/datasets/index.d.ts +0 -20
  554. package/dist/commonjs/classic/beta/datasets/index.d.ts.map +0 -1
  555. package/dist/commonjs/classic/beta/datasets/index.js.map +0 -7
  556. package/dist/esm/api/beta/datasets/index.d.ts +0 -3
  557. package/dist/esm/api/beta/datasets/index.d.ts.map +0 -1
  558. package/dist/esm/api/beta/datasets/index.js +0 -4
  559. package/dist/esm/api/beta/datasets/index.js.map +0 -1
  560. package/dist/esm/api/beta/datasets/operations.d.ts +0 -27
  561. package/dist/esm/api/beta/datasets/operations.d.ts.map +0 -1
  562. package/dist/esm/api/beta/datasets/operations.js +0 -184
  563. package/dist/esm/api/beta/datasets/operations.js.map +0 -1
  564. package/dist/esm/api/beta/datasets/options.d.ts +0 -58
  565. package/dist/esm/api/beta/datasets/options.d.ts.map +0 -1
  566. package/dist/esm/api/beta/datasets/options.js.map +0 -1
  567. package/dist/esm/classic/beta/datasets/index.d.ts +0 -20
  568. package/dist/esm/classic/beta/datasets/index.d.ts.map +0 -1
  569. package/dist/esm/classic/beta/datasets/index.js +0 -18
  570. package/dist/esm/classic/beta/datasets/index.js.map +0 -1
  571. package/dist/react-native/api/beta/datasets/index.d.ts +0 -3
  572. package/dist/react-native/api/beta/datasets/index.d.ts.map +0 -1
  573. package/dist/react-native/api/beta/datasets/index.js +0 -4
  574. package/dist/react-native/api/beta/datasets/index.js.map +0 -1
  575. package/dist/react-native/api/beta/datasets/operations.d.ts +0 -27
  576. package/dist/react-native/api/beta/datasets/operations.d.ts.map +0 -1
  577. package/dist/react-native/api/beta/datasets/operations.js +0 -184
  578. package/dist/react-native/api/beta/datasets/operations.js.map +0 -1
  579. package/dist/react-native/api/beta/datasets/options.d.ts +0 -58
  580. package/dist/react-native/api/beta/datasets/options.d.ts.map +0 -1
  581. package/dist/react-native/api/beta/datasets/options.js.map +0 -1
  582. package/dist/react-native/classic/beta/datasets/index.d.ts +0 -20
  583. package/dist/react-native/classic/beta/datasets/index.d.ts.map +0 -1
  584. package/dist/react-native/classic/beta/datasets/index.js +0 -18
  585. package/dist/react-native/classic/beta/datasets/index.js.map +0 -1
  586. /package/dist/browser/api/{beta/datasets → evaluators}/options.js +0 -0
  587. /package/dist/commonjs/api/{beta/datasets → evaluators}/options.js +0 -0
  588. /package/dist/esm/api/{beta/datasets → evaluators}/options.js +0 -0
  589. /package/dist/react-native/api/{beta/datasets → evaluators}/options.js +0 -0
@@ -0,0 +1,705 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var voiceAgentTracing_exports = {};
19
+ __export(voiceAgentTracing_exports, {
20
+ VoiceAgentRealtimeTracing: () => VoiceAgentRealtimeTracing,
21
+ traceVoiceAgentOperation: () => traceVoiceAgentOperation
22
+ });
23
+ module.exports = __toCommonJS(voiceAgentTracing_exports);
24
+ var import_api = require("@opentelemetry/api");
25
+ var import_core_rest_pipeline = require("@azure/core-rest-pipeline");
26
+ var import_logger = require("../logger.js");
27
+ var import_attributes = require("./attributes.js");
28
+ var import_tracingClient = require("./tracingClient.js");
29
+ var import_metrics = require("./metrics.js");
30
+ var import_constants = require("./constants.js");
31
+ const prefix = "az.ai.voice_agents.";
32
+ const maxResponses = 64;
33
+ const maxInputItems = 64;
34
+ const maxParts = 32;
35
+ const maxContentLength = 4096;
36
+ const safeErrorTypes = /* @__PURE__ */ new Set([
37
+ "Error",
38
+ "TypeError",
39
+ "AbortError",
40
+ "RestError",
41
+ "VoiceAgentAuthenticationError",
42
+ "VoiceAgentConnectionError",
43
+ "VoiceAgentProtocolError",
44
+ "invalid_request_error",
45
+ "server_error",
46
+ "authentication_error",
47
+ "rate_limit_error"
48
+ ]);
49
+ const safeErrorCodes = /* @__PURE__ */ new Set([
50
+ "agent_disabled",
51
+ "invalid_request",
52
+ "invalid_request_error",
53
+ "invalid_event",
54
+ "invalid_state",
55
+ "rate_limit_exceeded",
56
+ "insufficient_quota",
57
+ "session_expired",
58
+ "authentication_error",
59
+ "permission_denied",
60
+ "server_error"
61
+ ]);
62
+ function serverErrorAttributes(type, code) {
63
+ const attributes = {
64
+ [import_constants.ERROR_TYPE]: typeof type === "string" && safeErrorTypes.has(type) ? type : "Error"
65
+ };
66
+ if (typeof code === "string" && safeErrorCodes.has(code)) {
67
+ attributes[`${prefix}error.code`] = code;
68
+ }
69
+ return attributes;
70
+ }
71
+ function recordTelemetry(action) {
72
+ try {
73
+ action();
74
+ } catch {
75
+ import_logger.logger.warning("Unable to record Voice Agents telemetry.");
76
+ }
77
+ }
78
+ function commonAttributes(span, endpoint) {
79
+ span.setAttribute(import_constants.GEN_AI_PROVIDER_NAME, import_constants.AGENTS_PROVIDER);
80
+ span.setAttribute(import_constants.AZ_NAMESPACE, import_constants.AZ_NAMESPACE_VALUE);
81
+ (0, import_attributes.setServerAttributes)(span, endpoint);
82
+ }
83
+ function fail(span, error) {
84
+ const type = (0, import_core_rest_pipeline.isRestError)(error) ? "RestError" : error instanceof Error && safeErrorTypes.has(error.name) ? error.name : "Error";
85
+ span.setAttribute(import_constants.ERROR_TYPE, type);
86
+ if ((0, import_core_rest_pipeline.isRestError)(error) && error.statusCode !== void 0) {
87
+ span.setAttribute("http.response.status_code", error.statusCode);
88
+ }
89
+ span.setStatus({ code: import_api.SpanStatusCode.ERROR });
90
+ }
91
+ async function traceVoiceAgentOperation(operationName, endpoint, config, operation, resultAttributes) {
92
+ if (!config?.enabled) {
93
+ return operation();
94
+ }
95
+ let recording;
96
+ recordTelemetry(() => {
97
+ recording = (0, import_tracingClient.startSpan)(operationName);
98
+ commonAttributes(recording.span, endpoint);
99
+ recording.span.setAttribute(
100
+ operationName === "create_agent" ? import_constants.GEN_AI_OPERATION_NAME : `${prefix}operation`,
101
+ operationName.slice(operationName.lastIndexOf(".") + 1)
102
+ );
103
+ });
104
+ if (!recording) return operation();
105
+ const { span, ctx } = recording;
106
+ try {
107
+ const result = await (0, import_tracingClient.runInSpanContext)(ctx, operation);
108
+ recordTelemetry(() => {
109
+ if (resultAttributes) span.setAttributes(resultAttributes(result));
110
+ });
111
+ return result;
112
+ } catch (error) {
113
+ recordTelemetry(() => {
114
+ if (!(error instanceof Error && error.name === "AbortError")) fail(span, error);
115
+ else span.setAttribute(`${prefix}cancelled`, true);
116
+ });
117
+ throw error;
118
+ } finally {
119
+ recordTelemetry(() => span.end());
120
+ }
121
+ }
122
+ function asRecord(value) {
123
+ return value !== null && typeof value === "object" && !Array.isArray(value) ? value : void 0;
124
+ }
125
+ function limitedContent(value) {
126
+ return typeof value === "string" ? value.slice(0, maxContentLength) : void 0;
127
+ }
128
+ function messagePart(value, contentRecording) {
129
+ const part = asRecord(value);
130
+ const type = part?.type;
131
+ if (!part || typeof type !== "string" || !["input_text", "output_text", "text", "input_audio", "output_audio", "audio"].includes(type)) {
132
+ return void 0;
133
+ }
134
+ const audio = type.includes("audio");
135
+ const summary = { type: audio ? "audio" : "text" };
136
+ if (contentRecording) {
137
+ const content = limitedContent(audio ? part.transcript : part.text);
138
+ if (content !== void 0) summary.content = content;
139
+ }
140
+ return summary;
141
+ }
142
+ function messages(item, contentRecording) {
143
+ const record = asRecord(item);
144
+ if (!record) return void 0;
145
+ if (record.type === "function_call" || record.type === "function_call_output" || record.type === "mcp_call") {
146
+ const part = {
147
+ type: record.type === "function_call_output" ? "tool_call_response" : "tool_call"
148
+ };
149
+ if (typeof record.call_id === "string") part.id = record.call_id;
150
+ if (contentRecording) {
151
+ if (typeof record.name === "string") part.name = limitedContent(record.name);
152
+ if (typeof record.arguments === "string") part.arguments = limitedContent(record.arguments);
153
+ if (typeof record.output === "string") part.result = limitedContent(record.output);
154
+ }
155
+ return { role: record.type === "function_call_output" ? "tool" : "assistant", parts: [part] };
156
+ }
157
+ if (record.type !== "message") return void 0;
158
+ const parts = [];
159
+ if (Array.isArray(record.content)) {
160
+ for (const value of record.content.slice(0, maxParts)) {
161
+ const summary = messagePart(value, contentRecording);
162
+ if (summary) parts.push(summary);
163
+ }
164
+ }
165
+ const role = record.role === "system" || record.role === "user" ? record.role : "assistant";
166
+ return parts.length ? { role, parts } : void 0;
167
+ }
168
+ class VoiceAgentRealtimeTracing {
169
+ constructor(endpoint, config, transport = "websocket") {
170
+ this.endpoint = endpoint;
171
+ this.config = config;
172
+ recordTelemetry(() => {
173
+ this.session = (0, import_tracingClient.startSpan)("voice_agents.realtime.session");
174
+ commonAttributes(this.session.span, endpoint);
175
+ this.session.span.setAttribute(`${prefix}connection.transport`, transport);
176
+ this.connectSpan = (0, import_tracingClient.startSpan)("voice_agents.realtime.connect", this.session.ctx).span;
177
+ commonAttributes(this.connectSpan, endpoint);
178
+ this.connectSpan.setAttribute(`${prefix}connection.transport`, transport);
179
+ });
180
+ }
181
+ endpoint;
182
+ config;
183
+ responses = /* @__PURE__ */ new Map();
184
+ session;
185
+ connectSpan;
186
+ ended = false;
187
+ connected = false;
188
+ model;
189
+ inputAudioBytes = 0;
190
+ inputSequence = 0;
191
+ nextInputSequence = 0;
192
+ inputAudioBuffer;
193
+ inputAudioItems = /* @__PURE__ */ new Map();
194
+ pendingAudioCommits = { items: [], skipped: 0 };
195
+ pendingAudioMessages = { items: [], skipped: 0 };
196
+ pendingAudioClears = 0;
197
+ untrackedInputItems = 0;
198
+ finishedResponses = 0;
199
+ untrackedResponses = 0;
200
+ opened() {
201
+ recordTelemetry(() => {
202
+ if (this.ended) return;
203
+ this.connected = true;
204
+ this.connectSpan?.end();
205
+ this.connectSpan = void 0;
206
+ });
207
+ }
208
+ reserveSend(event) {
209
+ let reservation;
210
+ recordTelemetry(() => {
211
+ if (this.ended || !this.session || event.type !== "conversation.item.create") return;
212
+ const summary = messages(event.item, this.config.contentRecording);
213
+ const item = asRecord(event.item);
214
+ if (!summary) return;
215
+ reservation = { sequence: ++this.nextInputSequence };
216
+ if (summary.role !== "user" || !summary.parts.some((part) => part.type === "audio") || typeof item?.id === "string" || this.pendingAudioMessages.items.length >= maxInputItems || this.pendingAudioMessages.skipped > 0) {
217
+ return;
218
+ }
219
+ reservation.audio = { sequence: reservation.sequence, pendingSend: true };
220
+ this.enqueueInputAudio(this.pendingAudioMessages, reservation.audio);
221
+ });
222
+ return reservation;
223
+ }
224
+ sent(event, reservation) {
225
+ recordTelemetry(() => {
226
+ if (this.ended || !this.session) return;
227
+ if (event.type === "input_audio_buffer.append") {
228
+ this.inputAudioBytes += Math.max(
229
+ 0,
230
+ Math.floor(event.audio.length * 3 / 4) - (event.audio.endsWith("==") ? 2 : event.audio.endsWith("=") ? 1 : 0)
231
+ );
232
+ if (!this.inputAudioBuffer) {
233
+ this.inputAudioBuffer = this.startInputAudio();
234
+ } else if (this.inputAudioBuffer.sequence !== this.inputSequence) {
235
+ this.inputSequence = ++this.nextInputSequence;
236
+ this.inputAudioBuffer.sequence = this.inputSequence;
237
+ this.setInputAudioSummary();
238
+ }
239
+ } else if (event.type === "input_audio_buffer.commit") {
240
+ if (this.inputAudioBuffer) {
241
+ this.enqueueInputAudio(this.pendingAudioCommits, this.inputAudioBuffer);
242
+ this.inputAudioBuffer = void 0;
243
+ }
244
+ } else if (event.type === "input_audio_buffer.clear") {
245
+ this.inputAudioBuffer = void 0;
246
+ this.pendingAudioClears++;
247
+ } else if (event.type === "conversation.item.create") {
248
+ const summary = messages(event.item, this.config.contentRecording);
249
+ const item = asRecord(event.item);
250
+ if (summary) {
251
+ const sequence = reservation?.sequence ?? ++this.nextInputSequence;
252
+ if (summary.role === "user" && summary.parts.some((part) => part.type === "audio")) {
253
+ const input = reservation?.audio ?? { sequence };
254
+ input.pendingSend = void 0;
255
+ if (!reservation?.audio) {
256
+ if (typeof item?.id === "string") {
257
+ this.rememberInputAudio(item.id, input);
258
+ } else {
259
+ this.enqueueInputAudio(this.pendingAudioMessages, input);
260
+ }
261
+ }
262
+ }
263
+ if (sequence >= this.inputSequence) {
264
+ this.inputSequence = sequence;
265
+ this.session.span.setAttribute(import_constants.GEN_AI_INPUT_MESSAGES, JSON.stringify([summary]));
266
+ if (reservation?.audio?.pendingTranscript !== void 0) {
267
+ this.setInputAudioSummary(reservation.audio.pendingTranscript);
268
+ }
269
+ }
270
+ }
271
+ if (item?.type === "function_call_output" && typeof item.call_id === "string") {
272
+ this.session.span.addEvent("voice_agents.tool.output_sent", {
273
+ [import_constants.GEN_AI_TOOL_CALL_ID]: item.call_id
274
+ });
275
+ }
276
+ } else if (event.type === "response.cancel") {
277
+ this.session.span.addEvent("voice_agents.response.cancel_requested");
278
+ }
279
+ });
280
+ }
281
+ sendFailed(error, reservation) {
282
+ recordTelemetry(() => {
283
+ if (reservation?.audio) this.rollbackPendingAudioMessage(reservation.audio);
284
+ if (!this.ended) {
285
+ this.session?.span.addEvent("voice_agents.send.failed", {
286
+ [import_constants.ERROR_TYPE]: error instanceof Error && safeErrorTypes.has(error.name) ? error.name : "Error"
287
+ });
288
+ }
289
+ });
290
+ }
291
+ received(event) {
292
+ recordTelemetry(() => {
293
+ if (this.ended || !this.session || event.type === "unknown") return;
294
+ switch (event.type) {
295
+ case "session.created":
296
+ case "session.updated":
297
+ this.model = event.session.model;
298
+ this.session.span.setAttribute(`${prefix}session.id`, event.session.id);
299
+ if (event.type === "session.created" && event.conversation_id) {
300
+ this.session.span.setAttribute(import_constants.GEN_AI_CONVERSATION_ID, event.conversation_id);
301
+ }
302
+ if (this.model) this.session.span.setAttribute(import_constants.GEN_AI_REQUEST_MODEL, this.model);
303
+ break;
304
+ case "input_audio_buffer.speech_started":
305
+ if (!this.inputAudioItems.has(event.item_id)) {
306
+ const buffer = this.inputAudioBuffer;
307
+ const input = buffer && buffer.itemId === void 0 ? buffer : this.startInputAudio();
308
+ this.rememberInputAudio(event.item_id, input);
309
+ this.inputAudioBuffer = input;
310
+ }
311
+ break;
312
+ case "input_audio_buffer.committed": {
313
+ const pending = this.pendingAudioCommits.items.length > 0 || this.pendingAudioCommits.skipped > 0;
314
+ let input = this.matchInputAudio(this.pendingAudioCommits, event.item_id);
315
+ if (!input) {
316
+ if (pending) break;
317
+ input = this.inputAudioBuffer ?? this.startInputAudio();
318
+ this.rememberInputAudio(event.item_id, input);
319
+ }
320
+ if (this.inputAudioBuffer === input) this.inputAudioBuffer = void 0;
321
+ break;
322
+ }
323
+ case "input_audio_buffer.cleared":
324
+ if (this.pendingAudioClears > 0) this.pendingAudioClears--;
325
+ else this.inputAudioBuffer = void 0;
326
+ break;
327
+ case "conversation.item.added":
328
+ case "conversation.item.created": {
329
+ const item = asRecord(event.item);
330
+ const summary = messages(event.item, false);
331
+ if (typeof item?.id === "string" && summary?.role === "user" && summary.parts.some((part) => part.type === "audio")) {
332
+ this.matchInputAudio(this.pendingAudioMessages, item.id);
333
+ }
334
+ break;
335
+ }
336
+ case "response.created":
337
+ this.beginResponse(event.response);
338
+ break;
339
+ case "response.output_audio.delta": {
340
+ const tracked = this.responses.get(event.response_id);
341
+ if (tracked) {
342
+ tracked.audioBytes += event.delta.byteLength;
343
+ if (event.delta.byteLength > 0) {
344
+ tracked.firstAudioInSeconds ??= (performance.now() - tracked.started) / 1e3;
345
+ }
346
+ }
347
+ break;
348
+ }
349
+ case "response.done":
350
+ this.endResponse(event.response);
351
+ break;
352
+ case "response.output_text.done":
353
+ case "response.output_audio_transcript.done": {
354
+ const tracked = this.responses.get(event.response_id);
355
+ if (tracked) {
356
+ const part = {
357
+ type: event.type === "response.output_text.done" ? "text" : "audio"
358
+ };
359
+ if (this.config.contentRecording) {
360
+ part.content = limitedContent(
361
+ event.type === "response.output_text.done" ? event.text : event.transcript
362
+ );
363
+ }
364
+ this.recordOutputPart(tracked, event.item_id, event.content_index, part);
365
+ }
366
+ break;
367
+ }
368
+ case "response.output_audio.done": {
369
+ const tracked = this.responses.get(event.response_id);
370
+ if (tracked) {
371
+ this.recordOutputPart(tracked, event.item_id, event.content_index, { type: "audio" });
372
+ }
373
+ break;
374
+ }
375
+ case "response.function_call_arguments.done": {
376
+ const span = this.responses.get(event.response_id)?.span ?? this.session.span;
377
+ const attributes = {
378
+ [import_constants.GEN_AI_TOOL_CALL_ID]: event.call_id,
379
+ [`${prefix}tool.kind`]: "function"
380
+ };
381
+ if (this.config.contentRecording) {
382
+ attributes["gen_ai.tool.name"] = limitedContent(event.name);
383
+ attributes[`${prefix}tool.arguments`] = limitedContent(event.arguments);
384
+ }
385
+ span.addEvent("voice_agents.tool.requested", attributes);
386
+ const tracked = this.responses.get(event.response_id);
387
+ const summary = messages(
388
+ {
389
+ type: "function_call",
390
+ call_id: event.call_id,
391
+ name: event.name,
392
+ arguments: event.arguments
393
+ },
394
+ this.config.contentRecording
395
+ );
396
+ if (tracked && summary && tracked.outputMessages.size < maxParts) {
397
+ tracked.outputMessages.set(`tool:${event.call_id}`, summary);
398
+ }
399
+ break;
400
+ }
401
+ case "response.mcp_call.completed":
402
+ case "response.mcp_call.failed":
403
+ this.session.span.addEvent(event.type, { [`${prefix}item.id`]: event.item_id });
404
+ break;
405
+ case "session.subagent.started":
406
+ case "session.subagent.completed":
407
+ case "session.subagent.aborted": {
408
+ const attributes = {
409
+ [`${prefix}subagent.consultation.id`]: event.consultation_id
410
+ };
411
+ if (event.type === "session.subagent.aborted" && [
412
+ "unknown_target",
413
+ "timeout",
414
+ "cancelled",
415
+ "stopped_by_user",
416
+ "superseded",
417
+ "failed"
418
+ ].includes(event.reason)) {
419
+ attributes[`${prefix}subagent.abort_reason`] = event.reason;
420
+ }
421
+ this.session.span.addEvent(event.type, attributes);
422
+ break;
423
+ }
424
+ case "error":
425
+ this.session.span.addEvent(
426
+ "voice_agents.server_error",
427
+ serverErrorAttributes(event.error.type, event.error.code)
428
+ );
429
+ break;
430
+ case "warning":
431
+ this.session.span.addEvent("voice_agents.warning");
432
+ break;
433
+ case "rtc.call.error":
434
+ this.session.span.addEvent(
435
+ "rtc.call.error",
436
+ serverErrorAttributes(event.error.type, event.error.code)
437
+ );
438
+ break;
439
+ case "conversation.item.input_audio_transcription.completed": {
440
+ const input = this.inputAudioItems.get(event.item_id);
441
+ if (input?.pendingSend) {
442
+ input.pendingTranscript = event.transcript;
443
+ } else if (input?.sequence === this.inputSequence) {
444
+ this.setInputAudioSummary(event.transcript);
445
+ }
446
+ this.session.span.addEvent("voice_agents.transcription.completed");
447
+ break;
448
+ }
449
+ case "conversation.item.input_audio_transcription.failed": {
450
+ const input = this.inputAudioItems.get(event.item_id);
451
+ if (input?.sequence === this.inputSequence) {
452
+ this.setInputAudioSummary();
453
+ }
454
+ this.session.span.addEvent("voice_agents.transcription.failed");
455
+ break;
456
+ }
457
+ }
458
+ });
459
+ }
460
+ startInputAudio() {
461
+ const input = { sequence: ++this.nextInputSequence };
462
+ this.inputSequence = input.sequence;
463
+ this.setInputAudioSummary();
464
+ return input;
465
+ }
466
+ enqueueInputAudio(queue, input) {
467
+ input.pendingQueue = queue;
468
+ if (queue.items.length >= maxInputItems || queue.skipped > 0) {
469
+ input.pendingSkipped = true;
470
+ queue.skipped++;
471
+ this.untrackedInputItems++;
472
+ } else {
473
+ queue.items.push(input);
474
+ }
475
+ }
476
+ rollbackPendingAudioMessage(input) {
477
+ if (input.pendingQueue) {
478
+ const index = input.pendingQueue.items.indexOf(input);
479
+ if (index !== -1) {
480
+ input.pendingQueue.items.splice(index, 1);
481
+ } else if (input.pendingSkipped && input.pendingQueue.skipped > 0) {
482
+ input.pendingQueue.skipped--;
483
+ this.untrackedInputItems--;
484
+ }
485
+ input.pendingQueue = void 0;
486
+ input.pendingSkipped = void 0;
487
+ }
488
+ if (input.itemId && this.inputAudioItems.get(input.itemId) === input) {
489
+ this.inputAudioItems.delete(input.itemId);
490
+ }
491
+ input.pendingSend = void 0;
492
+ input.pendingTranscript = void 0;
493
+ }
494
+ matchInputAudio(queue, itemId) {
495
+ const known = this.inputAudioItems.get(itemId);
496
+ if (known) {
497
+ if (known.pendingQueue === queue) {
498
+ const index = queue.items.indexOf(known);
499
+ if (index !== -1) queue.items.splice(index, 1);
500
+ else if (known.pendingSkipped && queue.skipped > 0) queue.skipped--;
501
+ known.pendingQueue = void 0;
502
+ known.pendingSkipped = void 0;
503
+ }
504
+ return known;
505
+ }
506
+ const input = queue.items.shift();
507
+ if (input) {
508
+ input.pendingQueue = void 0;
509
+ this.rememberInputAudio(itemId, input);
510
+ return input;
511
+ }
512
+ if (queue.skipped > 0) queue.skipped--;
513
+ return void 0;
514
+ }
515
+ rememberInputAudio(itemId, input) {
516
+ input.itemId = itemId;
517
+ this.inputAudioItems.set(itemId, input);
518
+ if (this.inputAudioItems.size > maxInputItems) {
519
+ for (const [id, tracked] of this.inputAudioItems) {
520
+ if (tracked.sequence !== this.inputSequence || id !== tracked.itemId) {
521
+ this.inputAudioItems.delete(id);
522
+ break;
523
+ }
524
+ }
525
+ }
526
+ }
527
+ setInputAudioSummary(transcript) {
528
+ const parts = [{ type: "audio" }];
529
+ if (this.config.contentRecording && transcript !== void 0) {
530
+ parts[0].content = limitedContent(transcript);
531
+ }
532
+ this.session?.span.setAttribute(
533
+ import_constants.GEN_AI_INPUT_MESSAGES,
534
+ JSON.stringify([{ role: "user", parts }])
535
+ );
536
+ }
537
+ recordOutputPart(tracked, itemId, contentIndex, part) {
538
+ const key = `${itemId}:${contentIndex}:${part.type}`;
539
+ const existing = tracked.outputParts.get(key);
540
+ if (existing) {
541
+ if (part.content !== void 0) existing.part.content = part.content;
542
+ } else if (tracked.outputParts.size < maxParts) {
543
+ tracked.outputParts.set(key, { itemId, contentIndex, part });
544
+ }
545
+ }
546
+ beginResponse(response) {
547
+ const id = response.id;
548
+ if (!id || !this.session || this.responses.has(id)) return;
549
+ if (this.responses.size >= maxResponses) {
550
+ this.untrackedResponses++;
551
+ return;
552
+ }
553
+ const { span } = (0, import_tracingClient.startSpan)("invoke_agent", this.session.ctx);
554
+ commonAttributes(span, this.endpoint);
555
+ span.setAttribute(import_constants.GEN_AI_OPERATION_NAME, "invoke_agent");
556
+ span.setAttribute(import_constants.GEN_AI_RESPONSE_ID, id);
557
+ if (this.model) span.setAttribute(import_constants.GEN_AI_REQUEST_MODEL, this.model);
558
+ if (response.conversation_id) {
559
+ span.setAttribute(import_constants.GEN_AI_CONVERSATION_ID, response.conversation_id);
560
+ }
561
+ this.responses.set(id, {
562
+ span,
563
+ started: performance.now(),
564
+ audioBytes: 0,
565
+ model: this.model,
566
+ outputMessages: /* @__PURE__ */ new Map(),
567
+ outputParts: /* @__PURE__ */ new Map()
568
+ });
569
+ }
570
+ endResponse(response) {
571
+ const id = response.id;
572
+ const tracked = id ? this.responses.get(id) : void 0;
573
+ if (!tracked || !id) return;
574
+ this.responses.delete(id);
575
+ const durationInSeconds = (performance.now() - tracked.started) / 1e3;
576
+ const { span } = tracked;
577
+ if (response.status) span.setAttribute(`${prefix}response.status`, response.status);
578
+ if (response.output_modalities) {
579
+ span.setAttribute(`${prefix}response.output_modalities`, response.output_modalities);
580
+ }
581
+ if (response.usage?.input_tokens !== void 0) {
582
+ span.setAttribute(import_constants.GEN_AI_USAGE_INPUT_TOKENS, response.usage.input_tokens);
583
+ }
584
+ if (response.usage?.output_tokens !== void 0) {
585
+ span.setAttribute(import_constants.GEN_AI_USAGE_OUTPUT_TOKENS, response.usage.output_tokens);
586
+ }
587
+ this.flushObservedResponse(tracked, response);
588
+ if (response.status === "failed") {
589
+ span.setAttribute(import_constants.ERROR_TYPE, "response_failed");
590
+ span.setStatus({ code: import_api.SpanStatusCode.ERROR });
591
+ } else if (response.status === "completed") {
592
+ span.setStatus({ code: import_api.SpanStatusCode.OK });
593
+ }
594
+ const dimensions = {
595
+ operationName: "invoke_agent",
596
+ ...(0, import_attributes.parseEndpoint)(this.endpoint),
597
+ responseModel: tracked.model,
598
+ ...response.status === "failed" ? { errorType: "response_failed" } : {}
599
+ };
600
+ span.end();
601
+ this.finishedResponses++;
602
+ (0, import_metrics.recordOperationDuration)(durationInSeconds, dimensions);
603
+ (0, import_metrics.recordTokenUsage)(response.usage?.input_tokens, response.usage?.output_tokens, dimensions);
604
+ }
605
+ flushObservedResponse(tracked, response) {
606
+ const { span } = tracked;
607
+ span.setAttribute(`${prefix}output.audio.bytes`, tracked.audioBytes);
608
+ if (tracked.firstAudioInSeconds !== void 0) {
609
+ span.setAttribute(
610
+ `${prefix}response.time_to_first_audio_seconds`,
611
+ tracked.firstAudioInSeconds
612
+ );
613
+ }
614
+ const fallback = new Map(tracked.outputMessages);
615
+ for (const observed of [...tracked.outputParts.values()].sort(
616
+ (a, b) => a.contentIndex - b.contentIndex
617
+ )) {
618
+ const message = fallback.get(observed.itemId) ?? {
619
+ role: "assistant",
620
+ parts: []
621
+ };
622
+ message.parts.push(observed.part);
623
+ fallback.set(observed.itemId, message);
624
+ }
625
+ const output = [];
626
+ let unkeyedFinalItem = false;
627
+ for (const item of response?.output?.slice(0, maxParts) ?? []) {
628
+ const summary = messages(item, this.config.contentRecording);
629
+ if (!summary) continue;
630
+ const record = asRecord(item);
631
+ const itemId = record?.type === "function_call" && typeof record.call_id === "string" ? `tool:${record.call_id}` : typeof record?.id === "string" ? record.id : typeof record?.call_id === "string" ? record.call_id : void 0;
632
+ if (itemId) {
633
+ fallback.delete(itemId);
634
+ if (record?.type === "message" && Array.isArray(record.content)) {
635
+ summary.parts = record.content.slice(0, maxParts).flatMap((value, index) => {
636
+ const part = messagePart(value, this.config.contentRecording);
637
+ if (!part) return [];
638
+ const observed = tracked.outputParts.get(`${itemId}:${index}:${part.type}`);
639
+ if (part.content === void 0 && observed?.part.content !== void 0) {
640
+ part.content = observed.part.content;
641
+ }
642
+ return [part];
643
+ });
644
+ }
645
+ } else {
646
+ unkeyedFinalItem = true;
647
+ }
648
+ output.push(summary);
649
+ }
650
+ if (!unkeyedFinalItem) output.push(...fallback.values());
651
+ if (output.length) {
652
+ span.setAttribute(import_constants.GEN_AI_OUTPUT_MESSAGES, JSON.stringify(output.slice(0, maxParts)));
653
+ }
654
+ }
655
+ close(code, wasClean, error) {
656
+ if (this.ended) return;
657
+ this.ended = true;
658
+ recordTelemetry(() => {
659
+ const cancelled = asRecord(error)?.code === "operationCancelled";
660
+ if (this.connectSpan) {
661
+ if (error && !cancelled) fail(this.connectSpan, error);
662
+ this.connectSpan.end();
663
+ this.connectSpan = void 0;
664
+ }
665
+ for (const tracked of this.responses.values()) {
666
+ this.flushObservedResponse(tracked);
667
+ tracked.span.setAttribute(`${prefix}response.status`, "interrupted");
668
+ if (error && !cancelled) fail(tracked.span, error);
669
+ tracked.span.end();
670
+ (0, import_metrics.recordOperationDuration)((performance.now() - tracked.started) / 1e3, {
671
+ operationName: "invoke_agent",
672
+ ...(0, import_attributes.parseEndpoint)(this.endpoint),
673
+ responseModel: tracked.model,
674
+ ...error && !cancelled ? { errorType: "response_interrupted" } : {}
675
+ });
676
+ }
677
+ this.responses.clear();
678
+ this.inputAudioItems.clear();
679
+ this.pendingAudioCommits.items.length = 0;
680
+ this.pendingAudioMessages.items.length = 0;
681
+ this.inputAudioBuffer = void 0;
682
+ if (!this.session) return;
683
+ if (error && !cancelled) fail(this.session.span, error);
684
+ if (cancelled) this.session.span.setAttribute(`${prefix}cancelled`, true);
685
+ if (code !== void 0) this.session.span.setAttribute(`${prefix}close.code`, code);
686
+ this.session.span.setAttribute(`${prefix}close.was_clean`, wasClean);
687
+ this.session.span.setAttribute(`${prefix}input.audio.bytes`, this.inputAudioBytes);
688
+ if (this.untrackedInputItems) {
689
+ this.session.span.setAttribute(`${prefix}input.items.untracked`, this.untrackedInputItems);
690
+ }
691
+ this.session.span.setAttribute(`${prefix}responses.finished`, this.finishedResponses);
692
+ if (this.untrackedResponses) {
693
+ this.session.span.setAttribute(`${prefix}responses.untracked`, this.untrackedResponses);
694
+ }
695
+ this.session.span.setAttribute(`${prefix}connected`, this.connected);
696
+ this.session.span.end();
697
+ });
698
+ }
699
+ }
700
+ // Annotate the CommonJS export names for ESM import in node:
701
+ 0 && (module.exports = {
702
+ VoiceAgentRealtimeTracing,
703
+ traceVoiceAgentOperation
704
+ });
705
+ //# sourceMappingURL=voiceAgentTracing.js.map