@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 @@
1
+ {"version":3,"file":"voiceAgentTracing.js","sourceRoot":"","sources":["../../../src/tracing/voiceAgentTracing.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { Attributes, Context, Span } from \"@opentelemetry/api\";\nimport { SpanStatusCode } from \"@opentelemetry/api\";\nimport { isRestError } from \"@azure/core-rest-pipeline\";\nimport type { ResolvedTracingConfig } from \"./configuration.js\";\nimport type {\n VoiceAgentClientEvent,\n VoiceAgentRealtimeResponse,\n VoiceAgentTransport,\n} from \"../models/models.js\";\nimport type { VoiceAgentRealtimeEvent } from \"../realtime/events.js\";\nimport { logger } from \"../logger.js\";\nimport { setServerAttributes, parseEndpoint } from \"./attributes.js\";\nimport { startSpan, runInSpanContext } from \"./tracingClient.js\";\nimport { recordOperationDuration, recordTokenUsage } from \"./metrics.js\";\nimport {\n AGENTS_PROVIDER,\n AZ_NAMESPACE,\n AZ_NAMESPACE_VALUE,\n GEN_AI_PROVIDER_NAME,\n GEN_AI_OPERATION_NAME,\n GEN_AI_INPUT_MESSAGES,\n GEN_AI_OUTPUT_MESSAGES,\n GEN_AI_REQUEST_MODEL,\n GEN_AI_RESPONSE_ID,\n GEN_AI_CONVERSATION_ID,\n GEN_AI_USAGE_INPUT_TOKENS,\n GEN_AI_USAGE_OUTPUT_TOKENS,\n GEN_AI_TOOL_CALL_ID,\n ERROR_TYPE,\n} from \"./constants.js\";\n\nconst prefix = \"az.ai.voice_agents.\";\nconst maxResponses = 64;\nconst maxInputItems = 64;\nconst maxParts = 32;\nconst maxContentLength = 4096;\nconst safeErrorTypes = new Set([\n \"Error\",\n \"TypeError\",\n \"AbortError\",\n \"RestError\",\n \"VoiceAgentAuthenticationError\",\n \"VoiceAgentConnectionError\",\n \"VoiceAgentProtocolError\",\n \"invalid_request_error\",\n \"server_error\",\n \"authentication_error\",\n \"rate_limit_error\",\n]);\nconst safeErrorCodes = new Set([\n \"agent_disabled\",\n \"invalid_request\",\n \"invalid_request_error\",\n \"invalid_event\",\n \"invalid_state\",\n \"rate_limit_exceeded\",\n \"insufficient_quota\",\n \"session_expired\",\n \"authentication_error\",\n \"permission_denied\",\n \"server_error\",\n]);\n\nfunction serverErrorAttributes(type: unknown, code?: unknown): Attributes {\n const attributes: Attributes = {\n [ERROR_TYPE]: typeof type === \"string\" && safeErrorTypes.has(type) ? type : \"Error\",\n };\n if (typeof code === \"string\" && safeErrorCodes.has(code)) {\n attributes[`${prefix}error.code`] = code;\n }\n return attributes;\n}\n\n// Exporter/provider failures must not change a service operation's result.\nfunction recordTelemetry(action: () => void): void {\n try {\n action();\n } catch {\n logger.warning(\"Unable to record Voice Agents telemetry.\");\n }\n}\n\nfunction commonAttributes(span: Span, endpoint: string): void {\n span.setAttribute(GEN_AI_PROVIDER_NAME, AGENTS_PROVIDER);\n span.setAttribute(AZ_NAMESPACE, AZ_NAMESPACE_VALUE);\n setServerAttributes(span, endpoint);\n}\n\nfunction fail(span: Span, error: unknown): void {\n const type = isRestError(error)\n ? \"RestError\"\n : error instanceof Error && safeErrorTypes.has(error.name)\n ? error.name\n : \"Error\";\n span.setAttribute(ERROR_TYPE, type);\n if (isRestError(error) && error.statusCode !== undefined) {\n span.setAttribute(\"http.response.status_code\", error.statusCode);\n }\n span.setStatus({ code: SpanStatusCode.ERROR });\n}\n\n/** @internal */\nexport async function traceVoiceAgentOperation<T>(\n operationName: string,\n endpoint: string,\n config: ResolvedTracingConfig | undefined,\n operation: () => Promise<T>,\n resultAttributes?: (result: T) => Attributes,\n): Promise<T> {\n if (!config?.enabled) {\n return operation();\n }\n let recording: { span: Span; ctx: Context } | undefined;\n recordTelemetry(() => {\n recording = startSpan(operationName);\n commonAttributes(recording.span, endpoint);\n recording.span.setAttribute(\n operationName === \"create_agent\" ? GEN_AI_OPERATION_NAME : `${prefix}operation`,\n operationName.slice(operationName.lastIndexOf(\".\") + 1),\n );\n });\n if (!recording) return operation();\n const { span, ctx } = recording;\n try {\n const result = await runInSpanContext(ctx, operation);\n recordTelemetry(() => {\n if (resultAttributes) span.setAttributes(resultAttributes(result));\n });\n return result;\n } catch (error) {\n recordTelemetry(() => {\n if (!(error instanceof Error && error.name === \"AbortError\")) fail(span, error);\n else span.setAttribute(`${prefix}cancelled`, true);\n });\n throw error;\n } finally {\n recordTelemetry(() => span.end());\n }\n}\n\ninterface TrackedResponse {\n span: Span;\n started: number;\n firstAudioInSeconds?: number;\n audioBytes: number;\n model?: string;\n outputMessages: Map<string, MessageSummary>;\n outputParts: Map<string, { itemId: string; contentIndex: number; part: Record<string, unknown> }>;\n}\n\ninterface TrackedInputAudio {\n sequence: number;\n itemId?: string;\n pendingQueue?: PendingInputAudio;\n pendingSkipped?: boolean;\n pendingSend?: boolean;\n pendingTranscript?: string;\n}\n\ninterface PendingInputAudio {\n items: TrackedInputAudio[];\n skipped: number;\n}\n\ninterface ReservedInput {\n sequence: number;\n audio?: TrackedInputAudio;\n}\n\ninterface MessageSummary {\n role: \"system\" | \"user\" | \"assistant\" | \"tool\";\n parts: Record<string, unknown>[];\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> | undefined {\n return value !== null && typeof value === \"object\" && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : undefined;\n}\n\nfunction limitedContent(value: unknown): string | undefined {\n return typeof value === \"string\" ? value.slice(0, maxContentLength) : undefined;\n}\n\nfunction messagePart(\n value: unknown,\n contentRecording: boolean,\n): Record<string, unknown> | undefined {\n const part = asRecord(value);\n const type = part?.type;\n if (\n !part ||\n typeof type !== \"string\" ||\n ![\"input_text\", \"output_text\", \"text\", \"input_audio\", \"output_audio\", \"audio\"].includes(type)\n ) {\n return undefined;\n }\n const audio = type.includes(\"audio\");\n const summary: Record<string, unknown> = { type: audio ? \"audio\" : \"text\" };\n if (contentRecording) {\n const content = limitedContent(audio ? part.transcript : part.text);\n if (content !== undefined) summary.content = content;\n }\n return summary;\n}\n\nfunction messages(item: unknown, contentRecording: boolean): MessageSummary | undefined {\n const record = asRecord(item);\n if (!record) return undefined;\n if (\n record.type === \"function_call\" ||\n record.type === \"function_call_output\" ||\n record.type === \"mcp_call\"\n ) {\n const part: Record<string, unknown> = {\n type: record.type === \"function_call_output\" ? \"tool_call_response\" : \"tool_call\",\n };\n if (typeof record.call_id === \"string\") part.id = record.call_id;\n if (contentRecording) {\n if (typeof record.name === \"string\") part.name = limitedContent(record.name);\n if (typeof record.arguments === \"string\") part.arguments = limitedContent(record.arguments);\n if (typeof record.output === \"string\") part.result = limitedContent(record.output);\n }\n return { role: record.type === \"function_call_output\" ? \"tool\" : \"assistant\", parts: [part] };\n }\n if (record.type !== \"message\") return undefined;\n const parts: Record<string, unknown>[] = [];\n if (Array.isArray(record.content)) {\n for (const value of record.content.slice(0, maxParts)) {\n const summary = messagePart(value, contentRecording);\n if (summary) parts.push(summary);\n }\n }\n const role = record.role === \"system\" || record.role === \"user\" ? record.role : \"assistant\";\n return parts.length ? { role, parts } : undefined;\n}\n\n/** Tracks SDK-observed realtime work, independently of the user's event iterator. @internal */\nexport class VoiceAgentRealtimeTracing {\n private readonly responses = new Map<string, TrackedResponse>();\n private session?: { span: Span; ctx: Context };\n private connectSpan?: Span;\n private ended = false;\n private connected = false;\n private model?: string;\n private inputAudioBytes = 0;\n private inputSequence = 0;\n private nextInputSequence = 0;\n private inputAudioBuffer?: TrackedInputAudio;\n private readonly inputAudioItems = new Map<string, TrackedInputAudio>();\n private readonly pendingAudioCommits: PendingInputAudio = { items: [], skipped: 0 };\n private readonly pendingAudioMessages: PendingInputAudio = { items: [], skipped: 0 };\n private pendingAudioClears = 0;\n private untrackedInputItems = 0;\n private finishedResponses = 0;\n private untrackedResponses = 0;\n\n public constructor(\n private readonly endpoint: string,\n private readonly config: ResolvedTracingConfig,\n transport: VoiceAgentTransport = \"websocket\",\n ) {\n recordTelemetry(() => {\n this.session = startSpan(\"voice_agents.realtime.session\");\n commonAttributes(this.session.span, endpoint);\n this.session.span.setAttribute(`${prefix}connection.transport`, transport);\n this.connectSpan = startSpan(\"voice_agents.realtime.connect\", this.session.ctx).span;\n commonAttributes(this.connectSpan, endpoint);\n this.connectSpan.setAttribute(`${prefix}connection.transport`, transport);\n });\n }\n\n public opened(): void {\n recordTelemetry(() => {\n if (this.ended) return;\n this.connected = true;\n this.connectSpan?.end();\n this.connectSpan = undefined;\n });\n }\n\n public reserveSend(event: VoiceAgentClientEvent): ReservedInput | undefined {\n let reservation: ReservedInput | undefined;\n recordTelemetry(() => {\n if (this.ended || !this.session || event.type !== \"conversation.item.create\") return;\n const summary = messages(event.item, this.config.contentRecording);\n const item = asRecord(event.item);\n if (!summary) return;\n reservation = { sequence: ++this.nextInputSequence };\n if (\n summary.role !== \"user\" ||\n !summary.parts.some((part) => part.type === \"audio\") ||\n typeof item?.id === \"string\" ||\n this.pendingAudioMessages.items.length >= maxInputItems ||\n this.pendingAudioMessages.skipped > 0\n ) {\n return;\n }\n reservation.audio = { sequence: reservation.sequence, pendingSend: true };\n this.enqueueInputAudio(this.pendingAudioMessages, reservation.audio);\n });\n return reservation;\n }\n\n public sent(event: VoiceAgentClientEvent, reservation?: ReservedInput): void {\n recordTelemetry(() => {\n if (this.ended || !this.session) return;\n if (event.type === \"input_audio_buffer.append\") {\n // Count decoded bytes without retaining or decoding the media.\n this.inputAudioBytes += Math.max(\n 0,\n Math.floor((event.audio.length * 3) / 4) -\n (event.audio.endsWith(\"==\") ? 2 : event.audio.endsWith(\"=\") ? 1 : 0),\n );\n if (!this.inputAudioBuffer) {\n this.inputAudioBuffer = this.startInputAudio();\n } else if (this.inputAudioBuffer.sequence !== this.inputSequence) {\n this.inputSequence = ++this.nextInputSequence;\n this.inputAudioBuffer.sequence = this.inputSequence;\n this.setInputAudioSummary();\n }\n } else if (event.type === \"input_audio_buffer.commit\") {\n if (this.inputAudioBuffer) {\n this.enqueueInputAudio(this.pendingAudioCommits, this.inputAudioBuffer);\n this.inputAudioBuffer = undefined;\n }\n } else if (event.type === \"input_audio_buffer.clear\") {\n this.inputAudioBuffer = undefined;\n this.pendingAudioClears++;\n } else if (event.type === \"conversation.item.create\") {\n const summary = messages(event.item, this.config.contentRecording);\n const item = asRecord(event.item);\n if (summary) {\n const sequence = reservation?.sequence ?? ++this.nextInputSequence;\n if (summary.role === \"user\" && summary.parts.some((part) => part.type === \"audio\")) {\n const input = reservation?.audio ?? { sequence };\n input.pendingSend = undefined;\n if (!reservation?.audio) {\n if (typeof item?.id === \"string\") {\n this.rememberInputAudio(item.id, input);\n } else {\n this.enqueueInputAudio(this.pendingAudioMessages, input);\n }\n }\n }\n if (sequence >= this.inputSequence) {\n this.inputSequence = sequence;\n this.session.span.setAttribute(GEN_AI_INPUT_MESSAGES, JSON.stringify([summary]));\n if (reservation?.audio?.pendingTranscript !== undefined) {\n this.setInputAudioSummary(reservation.audio.pendingTranscript);\n }\n }\n }\n if (item?.type === \"function_call_output\" && typeof item.call_id === \"string\") {\n this.session.span.addEvent(\"voice_agents.tool.output_sent\", {\n [GEN_AI_TOOL_CALL_ID]: item.call_id,\n });\n }\n } else if (event.type === \"response.cancel\") {\n this.session.span.addEvent(\"voice_agents.response.cancel_requested\");\n }\n });\n }\n\n public sendFailed(error: unknown, reservation?: ReservedInput): void {\n recordTelemetry(() => {\n if (reservation?.audio) this.rollbackPendingAudioMessage(reservation.audio);\n if (!this.ended) {\n this.session?.span.addEvent(\"voice_agents.send.failed\", {\n [ERROR_TYPE]:\n error instanceof Error && safeErrorTypes.has(error.name) ? error.name : \"Error\",\n });\n }\n });\n }\n\n public received(event: VoiceAgentRealtimeEvent): void {\n recordTelemetry(() => {\n if (this.ended || !this.session || event.type === \"unknown\") return;\n switch (event.type) {\n case \"session.created\":\n case \"session.updated\":\n this.model = event.session.model;\n this.session.span.setAttribute(`${prefix}session.id`, event.session.id);\n if (event.type === \"session.created\" && event.conversation_id) {\n this.session.span.setAttribute(GEN_AI_CONVERSATION_ID, event.conversation_id);\n }\n if (this.model) this.session.span.setAttribute(GEN_AI_REQUEST_MODEL, this.model);\n break;\n case \"input_audio_buffer.speech_started\":\n if (!this.inputAudioItems.has(event.item_id)) {\n const buffer = this.inputAudioBuffer;\n const input = buffer && buffer.itemId === undefined ? buffer : this.startInputAudio();\n this.rememberInputAudio(event.item_id, input);\n this.inputAudioBuffer = input;\n }\n break;\n case \"input_audio_buffer.committed\": {\n const pending =\n this.pendingAudioCommits.items.length > 0 || this.pendingAudioCommits.skipped > 0;\n let input = this.matchInputAudio(this.pendingAudioCommits, event.item_id);\n if (!input) {\n if (pending) break;\n input = this.inputAudioBuffer ?? this.startInputAudio();\n this.rememberInputAudio(event.item_id, input);\n }\n if (this.inputAudioBuffer === input) this.inputAudioBuffer = undefined;\n break;\n }\n case \"input_audio_buffer.cleared\":\n if (this.pendingAudioClears > 0) this.pendingAudioClears--;\n else this.inputAudioBuffer = undefined;\n break;\n case \"conversation.item.added\":\n case \"conversation.item.created\": {\n const item = asRecord(event.item);\n const summary = messages(event.item, false);\n if (\n typeof item?.id === \"string\" &&\n summary?.role === \"user\" &&\n summary.parts.some((part) => part.type === \"audio\")\n ) {\n this.matchInputAudio(this.pendingAudioMessages, item.id);\n }\n break;\n }\n case \"response.created\":\n this.beginResponse(event.response);\n break;\n case \"response.output_audio.delta\": {\n const tracked = this.responses.get(event.response_id);\n if (tracked) {\n tracked.audioBytes += event.delta.byteLength;\n if (event.delta.byteLength > 0) {\n tracked.firstAudioInSeconds ??= (performance.now() - tracked.started) / 1000;\n }\n }\n break;\n }\n case \"response.done\":\n this.endResponse(event.response);\n break;\n case \"response.output_text.done\":\n case \"response.output_audio_transcript.done\": {\n const tracked = this.responses.get(event.response_id);\n if (tracked) {\n const part: Record<string, unknown> = {\n type: event.type === \"response.output_text.done\" ? \"text\" : \"audio\",\n };\n if (this.config.contentRecording) {\n part.content = limitedContent(\n event.type === \"response.output_text.done\" ? event.text : event.transcript,\n );\n }\n this.recordOutputPart(tracked, event.item_id, event.content_index, part);\n }\n break;\n }\n case \"response.output_audio.done\": {\n const tracked = this.responses.get(event.response_id);\n if (tracked) {\n this.recordOutputPart(tracked, event.item_id, event.content_index, { type: \"audio\" });\n }\n break;\n }\n case \"response.function_call_arguments.done\": {\n const span = this.responses.get(event.response_id)?.span ?? this.session.span;\n const attributes: Attributes = {\n [GEN_AI_TOOL_CALL_ID]: event.call_id,\n [`${prefix}tool.kind`]: \"function\",\n };\n if (this.config.contentRecording) {\n attributes[\"gen_ai.tool.name\"] = limitedContent(event.name);\n attributes[`${prefix}tool.arguments`] = limitedContent(event.arguments);\n }\n span.addEvent(\"voice_agents.tool.requested\", attributes);\n const tracked = this.responses.get(event.response_id);\n const summary = messages(\n {\n type: \"function_call\",\n call_id: event.call_id,\n name: event.name,\n arguments: event.arguments,\n },\n this.config.contentRecording,\n );\n if (tracked && summary && tracked.outputMessages.size < maxParts) {\n tracked.outputMessages.set(`tool:${event.call_id}`, summary);\n }\n break;\n }\n case \"response.mcp_call.completed\":\n case \"response.mcp_call.failed\":\n this.session.span.addEvent(event.type, { [`${prefix}item.id`]: event.item_id });\n break;\n case \"session.subagent.started\":\n case \"session.subagent.completed\":\n case \"session.subagent.aborted\": {\n const attributes: Attributes = {\n [`${prefix}subagent.consultation.id`]: event.consultation_id,\n };\n if (\n event.type === \"session.subagent.aborted\" &&\n [\n \"unknown_target\",\n \"timeout\",\n \"cancelled\",\n \"stopped_by_user\",\n \"superseded\",\n \"failed\",\n ].includes(event.reason)\n ) {\n attributes[`${prefix}subagent.abort_reason`] = event.reason;\n }\n this.session.span.addEvent(event.type, attributes);\n break;\n }\n case \"error\":\n this.session.span.addEvent(\n \"voice_agents.server_error\",\n serverErrorAttributes(event.error.type, event.error.code),\n );\n break;\n case \"warning\":\n this.session.span.addEvent(\"voice_agents.warning\");\n break;\n case \"rtc.call.error\":\n this.session.span.addEvent(\n \"rtc.call.error\",\n serverErrorAttributes(event.error.type, event.error.code),\n );\n break;\n case \"conversation.item.input_audio_transcription.completed\": {\n const input = this.inputAudioItems.get(event.item_id);\n if (input?.pendingSend) {\n input.pendingTranscript = event.transcript;\n } else if (input?.sequence === this.inputSequence) {\n this.setInputAudioSummary(event.transcript);\n }\n this.session.span.addEvent(\"voice_agents.transcription.completed\");\n break;\n }\n case \"conversation.item.input_audio_transcription.failed\": {\n const input = this.inputAudioItems.get(event.item_id);\n if (input?.sequence === this.inputSequence) {\n this.setInputAudioSummary();\n }\n this.session.span.addEvent(\"voice_agents.transcription.failed\");\n break;\n }\n }\n });\n }\n\n private startInputAudio(): TrackedInputAudio {\n const input = { sequence: ++this.nextInputSequence };\n this.inputSequence = input.sequence;\n this.setInputAudioSummary();\n return input;\n }\n\n private enqueueInputAudio(queue: PendingInputAudio, input: TrackedInputAudio): void {\n input.pendingQueue = queue;\n if (queue.items.length >= maxInputItems || queue.skipped > 0) {\n input.pendingSkipped = true;\n queue.skipped++;\n this.untrackedInputItems++;\n } else {\n queue.items.push(input);\n }\n }\n\n private rollbackPendingAudioMessage(input: TrackedInputAudio): void {\n if (input.pendingQueue) {\n const index = input.pendingQueue.items.indexOf(input);\n if (index !== -1) {\n input.pendingQueue.items.splice(index, 1);\n } else if (input.pendingSkipped && input.pendingQueue.skipped > 0) {\n input.pendingQueue.skipped--;\n this.untrackedInputItems--;\n }\n input.pendingQueue = undefined;\n input.pendingSkipped = undefined;\n }\n if (input.itemId && this.inputAudioItems.get(input.itemId) === input) {\n this.inputAudioItems.delete(input.itemId);\n }\n input.pendingSend = undefined;\n input.pendingTranscript = undefined;\n }\n\n private matchInputAudio(queue: PendingInputAudio, itemId: string): TrackedInputAudio | undefined {\n const known = this.inputAudioItems.get(itemId);\n if (known) {\n if (known.pendingQueue === queue) {\n const index = queue.items.indexOf(known);\n if (index !== -1) queue.items.splice(index, 1);\n else if (known.pendingSkipped && queue.skipped > 0) queue.skipped--;\n known.pendingQueue = undefined;\n known.pendingSkipped = undefined;\n }\n return known;\n }\n // Match ordered commit/create acknowledgements, never asynchronous ASR completion order.\n const input = queue.items.shift();\n if (input) {\n input.pendingQueue = undefined;\n this.rememberInputAudio(itemId, input);\n return input;\n }\n if (queue.skipped > 0) queue.skipped--;\n return undefined;\n }\n\n private rememberInputAudio(itemId: string, input: TrackedInputAudio): void {\n input.itemId = itemId;\n this.inputAudioItems.set(itemId, input);\n if (this.inputAudioItems.size > maxInputItems) {\n for (const [id, tracked] of this.inputAudioItems) {\n if (tracked.sequence !== this.inputSequence || id !== tracked.itemId) {\n this.inputAudioItems.delete(id);\n break;\n }\n }\n }\n }\n\n private setInputAudioSummary(transcript?: string): void {\n const parts: Record<string, unknown>[] = [{ type: \"audio\" }];\n if (this.config.contentRecording && transcript !== undefined) {\n parts[0].content = limitedContent(transcript);\n }\n this.session?.span.setAttribute(\n GEN_AI_INPUT_MESSAGES,\n JSON.stringify([{ role: \"user\", parts }]),\n );\n }\n\n private recordOutputPart(\n tracked: TrackedResponse,\n itemId: string,\n contentIndex: number,\n part: Record<string, unknown>,\n ): void {\n const key = `${itemId}:${contentIndex}:${part.type}`;\n const existing = tracked.outputParts.get(key);\n if (existing) {\n if (part.content !== undefined) existing.part.content = part.content;\n } else if (tracked.outputParts.size < maxParts) {\n tracked.outputParts.set(key, { itemId, contentIndex, part });\n }\n }\n\n private beginResponse(response: VoiceAgentRealtimeResponse): void {\n const id = response.id;\n if (!id || !this.session || this.responses.has(id)) return;\n if (this.responses.size >= maxResponses) {\n this.untrackedResponses++;\n return;\n }\n const { span } = startSpan(\"invoke_agent\", this.session.ctx);\n commonAttributes(span, this.endpoint);\n span.setAttribute(GEN_AI_OPERATION_NAME, \"invoke_agent\");\n span.setAttribute(GEN_AI_RESPONSE_ID, id);\n if (this.model) span.setAttribute(GEN_AI_REQUEST_MODEL, this.model);\n if (response.conversation_id) {\n span.setAttribute(GEN_AI_CONVERSATION_ID, response.conversation_id);\n }\n this.responses.set(id, {\n span,\n started: performance.now(),\n audioBytes: 0,\n model: this.model,\n outputMessages: new Map(),\n outputParts: new Map(),\n });\n }\n\n private endResponse(response: VoiceAgentRealtimeResponse): void {\n const id = response.id;\n const tracked = id ? this.responses.get(id) : undefined;\n if (!tracked || !id) return;\n this.responses.delete(id);\n const durationInSeconds = (performance.now() - tracked.started) / 1000;\n const { span } = tracked;\n if (response.status) span.setAttribute(`${prefix}response.status`, response.status);\n if (response.output_modalities) {\n span.setAttribute(`${prefix}response.output_modalities`, response.output_modalities);\n }\n if (response.usage?.input_tokens !== undefined) {\n span.setAttribute(GEN_AI_USAGE_INPUT_TOKENS, response.usage.input_tokens);\n }\n if (response.usage?.output_tokens !== undefined) {\n span.setAttribute(GEN_AI_USAGE_OUTPUT_TOKENS, response.usage.output_tokens);\n }\n this.flushObservedResponse(tracked, response);\n if (response.status === \"failed\") {\n span.setAttribute(ERROR_TYPE, \"response_failed\");\n span.setStatus({ code: SpanStatusCode.ERROR });\n } else if (response.status === \"completed\") {\n span.setStatus({ code: SpanStatusCode.OK });\n }\n const dimensions = {\n operationName: \"invoke_agent\",\n ...parseEndpoint(this.endpoint),\n responseModel: tracked.model,\n ...(response.status === \"failed\" ? { errorType: \"response_failed\" } : {}),\n };\n span.end();\n this.finishedResponses++;\n recordOperationDuration(durationInSeconds, dimensions);\n recordTokenUsage(response.usage?.input_tokens, response.usage?.output_tokens, dimensions);\n }\n\n private flushObservedResponse(\n tracked: TrackedResponse,\n response?: VoiceAgentRealtimeResponse,\n ): void {\n const { span } = tracked;\n span.setAttribute(`${prefix}output.audio.bytes`, tracked.audioBytes);\n if (tracked.firstAudioInSeconds !== undefined) {\n span.setAttribute(\n `${prefix}response.time_to_first_audio_seconds`,\n tracked.firstAudioInSeconds,\n );\n }\n const fallback = new Map(tracked.outputMessages);\n for (const observed of [...tracked.outputParts.values()].sort(\n (a, b) => a.contentIndex - b.contentIndex,\n )) {\n const message: MessageSummary = fallback.get(observed.itemId) ?? {\n role: \"assistant\",\n parts: [],\n };\n message.parts.push(observed.part);\n fallback.set(observed.itemId, message);\n }\n const output: MessageSummary[] = [];\n let unkeyedFinalItem = false;\n for (const item of response?.output?.slice(0, maxParts) ?? []) {\n const summary = messages(item, this.config.contentRecording);\n if (!summary) continue;\n const record = asRecord(item);\n const itemId =\n record?.type === \"function_call\" && typeof record.call_id === \"string\"\n ? `tool:${record.call_id}`\n : typeof record?.id === \"string\"\n ? record.id\n : typeof record?.call_id === \"string\"\n ? record.call_id\n : undefined;\n if (itemId) {\n fallback.delete(itemId);\n if (record?.type === \"message\" && Array.isArray(record.content)) {\n summary.parts = record.content.slice(0, maxParts).flatMap((value, index) => {\n const part = messagePart(value, this.config.contentRecording);\n if (!part) return [];\n const observed = tracked.outputParts.get(`${itemId}:${index}:${part.type}`);\n if (part.content === undefined && observed?.part.content !== undefined) {\n part.content = observed.part.content;\n }\n return [part];\n });\n }\n } else {\n // Final output is authoritative; don't guess identities for items without an ID.\n unkeyedFinalItem = true;\n }\n output.push(summary);\n }\n if (!unkeyedFinalItem) output.push(...fallback.values());\n if (output.length) {\n span.setAttribute(GEN_AI_OUTPUT_MESSAGES, JSON.stringify(output.slice(0, maxParts)));\n }\n }\n\n public close(code: number | undefined, wasClean: boolean, error?: unknown): void {\n if (this.ended) return;\n this.ended = true;\n recordTelemetry(() => {\n const cancelled = asRecord(error)?.code === \"operationCancelled\";\n if (this.connectSpan) {\n if (error && !cancelled) fail(this.connectSpan, error);\n this.connectSpan.end();\n this.connectSpan = undefined;\n }\n for (const tracked of this.responses.values()) {\n this.flushObservedResponse(tracked);\n tracked.span.setAttribute(`${prefix}response.status`, \"interrupted\");\n if (error && !cancelled) fail(tracked.span, error);\n tracked.span.end();\n recordOperationDuration((performance.now() - tracked.started) / 1000, {\n operationName: \"invoke_agent\",\n ...parseEndpoint(this.endpoint),\n responseModel: tracked.model,\n ...(error && !cancelled ? { errorType: \"response_interrupted\" } : {}),\n });\n }\n this.responses.clear();\n this.inputAudioItems.clear();\n this.pendingAudioCommits.items.length = 0;\n this.pendingAudioMessages.items.length = 0;\n this.inputAudioBuffer = undefined;\n if (!this.session) return;\n if (error && !cancelled) fail(this.session.span, error);\n if (cancelled) this.session.span.setAttribute(`${prefix}cancelled`, true);\n if (code !== undefined) this.session.span.setAttribute(`${prefix}close.code`, code);\n this.session.span.setAttribute(`${prefix}close.was_clean`, wasClean);\n this.session.span.setAttribute(`${prefix}input.audio.bytes`, this.inputAudioBytes);\n if (this.untrackedInputItems) {\n this.session.span.setAttribute(`${prefix}input.items.untracked`, this.untrackedInputItems);\n }\n this.session.span.setAttribute(`${prefix}responses.finished`, this.finishedResponses);\n if (this.untrackedResponses) {\n this.session.span.setAttribute(`${prefix}responses.untracked`, this.untrackedResponses);\n }\n this.session.span.setAttribute(`${prefix}connected`, this.connected);\n this.session.span.end();\n });\n }\n}\n"]}
@@ -6,6 +6,7 @@ import type { VoiceAgentWebSocketConnectOptions, VoiceAgentWebSocketFactory, Voi
6
6
  * Browsers cannot set an `Authorization` header on a WebSocket upgrade request. This transport sends
7
7
  * the Microsoft Entra bearer token as the `authorization.bearer.<token>` WebSocket subprotocol,
8
8
  * which the service converts back into an `Authorization` header before forwarding the request.
9
+ * Only preview features, client request IDs, and structured inputs are mapped to query parameters.
9
10
  */
10
11
  export declare class BrowserWebSocketTransport implements VoiceAgentWebSocketTransport {
11
12
  private webSocket?;
@@ -1 +1 @@
1
- {"version":3,"file":"webSocketTransport.d.ts","sourceRoot":"","sources":["../../src/webSocketTransport.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EACV,iCAAiC,EACjC,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,sCAAsC,CAAC;AAS9C;;;;;;GAMG;AACH,qBAAa,yBAA0B,YAAW,4BAA4B;IAC5E,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,QAAQ,CAAC,CAA8B;IAC/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,YAAY,CAAoC;IAIxD,OAAO,CAAC,aAAa,CAAoC;gBAEtC,gBAAgB,SAAQ;IAIpC,WAAW,CAAC,QAAQ,EAAE,2BAA2B,GAAG,IAAI;IAIlD,OAAO,CAAC,OAAO,EAAE,iCAAiC,GAAG,OAAO,CAAC,IAAI,CAAC;IAoClE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7E,2FAA2F;YAC7E,cAAc;IAQ5B,iFAAiF;YACnE,YAAY;YAWZ,qBAAqB;IActB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAyBhE;AA6DD,gBAAgB;AAChB,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAyBpF;AAsBD,gBAAgB;AAChB,wBAAgB,uCAAuC,IAAI,0BAA0B,CAEpF"}
1
+ {"version":3,"file":"webSocketTransport.d.ts","sourceRoot":"","sources":["../../src/webSocketTransport.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EACV,iCAAiC,EACjC,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,sCAAsC,CAAC;AAS9C;;;;;;;GAOG;AACH,qBAAa,yBAA0B,YAAW,4BAA4B;IAC5E,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,QAAQ,CAAC,CAA8B;IAC/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,YAAY,CAAoC;IAIxD,OAAO,CAAC,aAAa,CAAoC;gBAEtC,gBAAgB,SAAQ;IAIpC,WAAW,CAAC,QAAQ,EAAE,2BAA2B,GAAG,IAAI;IAIlD,OAAO,CAAC,OAAO,EAAE,iCAAiC,GAAG,OAAO,CAAC,IAAI,CAAC;IAoClE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7E,2FAA2F;YAC7E,cAAc;IAQ5B,iFAAiF;YACnE,YAAY;YAWZ,qBAAqB;IActB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAyBhE;AA6DD,gBAAgB;AAChB,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAgBpF;AAsBD,gBAAgB;AAChB,wBAAgB,uCAAuC,IAAI,0BAA0B,CAEpF"}
@@ -7,6 +7,7 @@ import { logger } from "./logger.js";
7
7
  * Browsers cannot set an `Authorization` header on a WebSocket upgrade request. This transport sends
8
8
  * the Microsoft Entra bearer token as the `authorization.bearer.<token>` WebSocket subprotocol,
9
9
  * which the service converts back into an `Authorization` header before forwarding the request.
10
+ * Only preview features, client request IDs, and structured inputs are mapped to query parameters.
10
11
  */
11
12
  export class BrowserWebSocketTransport {
12
13
  webSocket;
@@ -171,29 +172,20 @@ async function waitForClose(webSocket, closeNotified, timeoutInMs) {
171
172
  /** @internal */
172
173
  export function addHeadersToUrl(url, headers) {
173
174
  const target = new URL(url);
174
- let foundryFeatures;
175
175
  for (const [name, value] of Object.entries(headers)) {
176
176
  switch (name.toLowerCase()) {
177
- case "authorization":
178
- break;
179
177
  case "foundry-features":
180
- foundryFeatures = value;
178
+ target.searchParams.set("foundry_features", value);
181
179
  break;
182
180
  case "x-ms-client-request-id":
183
181
  target.searchParams.set("client-request-id", value);
184
182
  break;
185
- default:
186
- target.searchParams.set(`h-${name.toLowerCase()}`, value);
183
+ case "x-ms-voice-structured-inputs":
184
+ target.searchParams.set("structured_input", value);
187
185
  break;
188
186
  }
189
187
  }
190
- const targetUrl = target.toString();
191
- if (foundryFeatures === undefined) {
192
- return targetUrl;
193
- }
194
- const separator = target.search ? "&" : "?";
195
- const encodedFeatures = encodeURIComponent(foundryFeatures).replace(/%3D/gi, "=");
196
- return `${targetUrl}${separator}foundry_features=${encodedFeatures}`;
188
+ return target.toString();
197
189
  }
198
190
  function addCredentialSubprotocol(protocols, headers) {
199
191
  const authorization = Object.entries(headers).find(([name]) => name.toLowerCase() === "authorization")?.[1];
@@ -1 +1 @@
1
- {"version":3,"file":"webSocketTransport.js","sourceRoot":"","sources":["../../src/webSocketTransport.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { logger } from \"./logger.js\";\nimport type {\n VoiceAgentWebSocketConnectOptions,\n VoiceAgentWebSocketFactory,\n VoiceAgentWebSocketHandlers,\n VoiceAgentWebSocketTransport,\n} from \"./realtime/webSocketTransportLike.js\";\n\n/** The `CloseEvent` fields this transport forwards; the DOM lib is not in scope here. */\ninterface NativeCloseEvent {\n code: number;\n reason: string;\n wasClean: boolean;\n}\n\n/**\n * Default browser transport for the Voice Agents realtime client.\n *\n * Browsers cannot set an `Authorization` header on a WebSocket upgrade request. This transport sends\n * the Microsoft Entra bearer token as the `authorization.bearer.<token>` WebSocket subprotocol,\n * which the service converts back into an `Authorization` header before forwarding the request.\n */\nexport class BrowserWebSocketTransport implements VoiceAgentWebSocketTransport {\n private webSocket?: WebSocket;\n private handlers?: VoiceAgentWebSocketHandlers;\n private readonly closeTimeoutInMs: number;\n private messageChain: Promise<void> = Promise.resolve();\n // Resolves once `onClose` has actually been invoked for the current connection (after\n // `messageChain` drains). `close()` awaits this - not just the raw native \"close\" event -\n // so it never resolves before the caller observes the authoritative close code/reason/wasClean.\n private closeNotified: Promise<void> = Promise.resolve();\n\n public constructor(closeTimeoutInMs = 5_000) {\n this.closeTimeoutInMs = closeTimeoutInMs;\n }\n\n public setHandlers(handlers: VoiceAgentWebSocketHandlers): void {\n this.handlers = handlers;\n }\n\n public async connect(options: VoiceAgentWebSocketConnectOptions): Promise<void> {\n if (options.abortSignal?.aborted) {\n throw new Error(\"WebSocket connection was cancelled.\");\n }\n const protocols = addCredentialSubprotocol(options.protocols, options.headers);\n const url = addHeadersToUrl(options.url, options.headers);\n\n let notifyClosed: () => void = () => {};\n this.closeNotified = new Promise<void>((resolve) => {\n notifyClosed = resolve;\n });\n\n const webSocket = new WebSocket(url, protocols);\n webSocket.binaryType = \"arraybuffer\";\n this.webSocket = webSocket;\n\n // These forward events for the lifetime of the connection, independent of whether connect()\n // itself is still pending.\n webSocket.addEventListener(\"message\", (event: MessageEvent) => {\n // Chain handling so an async Blob conversion can never let a later message be delivered to\n // the protocol parser out of arrival order.\n this.messageChain = this.deliverMessage(this.messageChain, event.data);\n });\n webSocket.addEventListener(\"close\", (event) => void this.deliverClose(event, notifyClosed));\n webSocket.addEventListener(\"error\", () => {\n this.handlers?.onError(new Error(\"WebSocket connection failed.\"));\n });\n\n try {\n await waitForOpen(webSocket, options.connectionTimeoutInMs, options.abortSignal);\n } catch (error) {\n webSocket.close();\n throw error;\n }\n }\n\n public async send(data: string, abortSignal?: AbortSignalLike): Promise<void> {\n if (!this.webSocket || this.webSocket.readyState !== WebSocket.OPEN) {\n throw new Error(\"WebSocket is not connected.\");\n }\n if (abortSignal?.aborted) {\n throw new Error(\"WebSocket send was cancelled.\");\n }\n this.webSocket.send(data);\n }\n\n /** Chains `data` behind `previous` so an async `Blob` conversion cannot reorder events. */\n private async deliverMessage(\n previous: Promise<void>,\n data: string | ArrayBuffer | Blob,\n ): Promise<void> {\n await previous;\n await this.handleIncomingMessage(data);\n }\n\n /** Reports the close only after every earlier message has reached the parser. */\n private async deliverClose(event: Event, notifyClosed: () => void): Promise<void> {\n const { code, reason, wasClean } = event as unknown as NativeCloseEvent;\n try {\n await this.messageChain;\n } catch {\n // handleIncomingMessage already reported the failure through onError.\n }\n this.handlers?.onClose(code, reason, wasClean);\n notifyClosed();\n }\n\n private async handleIncomingMessage(data: string | ArrayBuffer | Blob): Promise<void> {\n if (typeof data === \"string\" || data instanceof ArrayBuffer) {\n this.handlers?.onMessage(data);\n return;\n }\n if (data instanceof Blob) {\n try {\n this.handlers?.onMessage(await data.arrayBuffer());\n } catch (error) {\n this.handlers?.onError(error instanceof Error ? error : new Error(String(error)));\n }\n }\n }\n\n public async close(code: number, reason: string): Promise<void> {\n if (!this.webSocket) {\n return;\n }\n const webSocket = this.webSocket;\n try {\n if (webSocket.readyState !== WebSocket.CLOSING && webSocket.readyState !== WebSocket.CLOSED) {\n if (code === 1000 || (code >= 3000 && code <= 4999)) {\n webSocket.close(code, reason);\n } else {\n webSocket.close();\n }\n }\n await waitForClose(webSocket, this.closeNotified, this.closeTimeoutInMs);\n } catch (error) {\n // close() is a best-effort cleanup operation and must never throw (callers, including our\n // own VoiceAgentConnection.close()/dispose(), rely on it always resolving), so a transport\n // error here is logged for diagnosability rather than rejecting.\n logger.warning(\"Error while closing the voice-agent WebSocket transport\", { error });\n } finally {\n if (this.webSocket === webSocket) {\n this.webSocket = undefined;\n }\n }\n }\n}\n\n/** Waits for `webSocket` to open, or rejects early on an error, timeout, or abort. */\nfunction waitForOpen(\n webSocket: WebSocket,\n connectionTimeoutInMs: number,\n abortSignal?: AbortSignalLike,\n): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n const timeout = setTimeout(() => {\n finish(() =>\n reject(new Error(`WebSocket connection timed out after ${connectionTimeoutInMs}ms.`)),\n );\n }, connectionTimeoutInMs);\n const onOpen = (): void => finish(resolve);\n const onError = (): void => finish(() => reject(new Error(\"WebSocket connection failed.\")));\n const onAbort = (): void =>\n finish(() => reject(new Error(\"WebSocket connection was cancelled.\")));\n\n function finish(settle: () => void): void {\n clearTimeout(timeout);\n webSocket.removeEventListener(\"open\", onOpen);\n webSocket.removeEventListener(\"error\", onError);\n abortSignal?.removeEventListener(\"abort\", onAbort);\n settle();\n }\n\n webSocket.addEventListener(\"open\", onOpen, { once: true });\n webSocket.addEventListener(\"error\", onError, { once: true });\n abortSignal?.addEventListener(\"abort\", onAbort);\n });\n}\n\n/**\n * Waits until `onClose` has been delivered to the handlers, so `close()` never returns before the\n * caller observes the true close outcome. Resolves on timeout if the socket never closes; rejects\n * if it errors instead.\n */\nasync function waitForClose(\n webSocket: WebSocket,\n closeNotified: Promise<void>,\n timeoutInMs: number,\n): Promise<void> {\n let timeout: ReturnType<typeof setTimeout> | undefined;\n let onError: (() => void) | undefined;\n const errorOrTimeout = new Promise<void>((resolve, reject) => {\n timeout = setTimeout(resolve, timeoutInMs);\n onError = (): void => reject(new Error(\"WebSocket connection failed while closing.\"));\n webSocket.addEventListener(\"error\", onError, { once: true });\n });\n\n try {\n await Promise.race([closeNotified, errorOrTimeout]);\n } finally {\n clearTimeout(timeout);\n if (onError) {\n webSocket.removeEventListener(\"error\", onError);\n }\n }\n}\n\n/** @internal */\nexport function addHeadersToUrl(url: string, headers: Record<string, string>): string {\n const target = new URL(url);\n let foundryFeatures: string | undefined;\n for (const [name, value] of Object.entries(headers)) {\n switch (name.toLowerCase()) {\n case \"authorization\":\n break;\n case \"foundry-features\":\n foundryFeatures = value;\n break;\n case \"x-ms-client-request-id\":\n target.searchParams.set(\"client-request-id\", value);\n break;\n default:\n target.searchParams.set(`h-${name.toLowerCase()}`, value);\n break;\n }\n }\n const targetUrl = target.toString();\n if (foundryFeatures === undefined) {\n return targetUrl;\n }\n const separator = target.search ? \"&\" : \"?\";\n const encodedFeatures = encodeURIComponent(foundryFeatures).replace(/%3D/gi, \"=\");\n return `${targetUrl}${separator}foundry_features=${encodedFeatures}`;\n}\n\nfunction addCredentialSubprotocol(protocols: string[], headers: Record<string, string>): string[] {\n const authorization = Object.entries(headers).find(\n ([name]) => name.toLowerCase() === \"authorization\",\n )?.[1];\n if (authorization === undefined) {\n return protocols;\n }\n const bearerPrefix = \"Bearer \";\n if (!authorization.startsWith(bearerPrefix) || authorization.length === bearerPrefix.length) {\n throw new Error(\"Browser WebSocket authentication requires a Microsoft Entra bearer token.\");\n }\n return [...protocols, `authorization.bearer.${authorization.slice(bearerPrefix.length)}`];\n}\n\nclass BrowserWebSocketFactory implements VoiceAgentWebSocketFactory {\n public create(): VoiceAgentWebSocketTransport {\n return new BrowserWebSocketTransport();\n }\n}\n\n/** @internal */\nexport function createDefaultVoiceAgentWebSocketFactory(): VoiceAgentWebSocketFactory {\n return new BrowserWebSocketFactory();\n}\n"]}
1
+ {"version":3,"file":"webSocketTransport.js","sourceRoot":"","sources":["../../src/webSocketTransport.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { logger } from \"./logger.js\";\nimport type {\n VoiceAgentWebSocketConnectOptions,\n VoiceAgentWebSocketFactory,\n VoiceAgentWebSocketHandlers,\n VoiceAgentWebSocketTransport,\n} from \"./realtime/webSocketTransportLike.js\";\n\n/** The `CloseEvent` fields this transport forwards; the DOM lib is not in scope here. */\ninterface NativeCloseEvent {\n code: number;\n reason: string;\n wasClean: boolean;\n}\n\n/**\n * Default browser transport for the Voice Agents realtime client.\n *\n * Browsers cannot set an `Authorization` header on a WebSocket upgrade request. This transport sends\n * the Microsoft Entra bearer token as the `authorization.bearer.<token>` WebSocket subprotocol,\n * which the service converts back into an `Authorization` header before forwarding the request.\n * Only preview features, client request IDs, and structured inputs are mapped to query parameters.\n */\nexport class BrowserWebSocketTransport implements VoiceAgentWebSocketTransport {\n private webSocket?: WebSocket;\n private handlers?: VoiceAgentWebSocketHandlers;\n private readonly closeTimeoutInMs: number;\n private messageChain: Promise<void> = Promise.resolve();\n // Resolves once `onClose` has actually been invoked for the current connection (after\n // `messageChain` drains). `close()` awaits this - not just the raw native \"close\" event -\n // so it never resolves before the caller observes the authoritative close code/reason/wasClean.\n private closeNotified: Promise<void> = Promise.resolve();\n\n public constructor(closeTimeoutInMs = 5_000) {\n this.closeTimeoutInMs = closeTimeoutInMs;\n }\n\n public setHandlers(handlers: VoiceAgentWebSocketHandlers): void {\n this.handlers = handlers;\n }\n\n public async connect(options: VoiceAgentWebSocketConnectOptions): Promise<void> {\n if (options.abortSignal?.aborted) {\n throw new Error(\"WebSocket connection was cancelled.\");\n }\n const protocols = addCredentialSubprotocol(options.protocols, options.headers);\n const url = addHeadersToUrl(options.url, options.headers);\n\n let notifyClosed: () => void = () => {};\n this.closeNotified = new Promise<void>((resolve) => {\n notifyClosed = resolve;\n });\n\n const webSocket = new WebSocket(url, protocols);\n webSocket.binaryType = \"arraybuffer\";\n this.webSocket = webSocket;\n\n // These forward events for the lifetime of the connection, independent of whether connect()\n // itself is still pending.\n webSocket.addEventListener(\"message\", (event: MessageEvent) => {\n // Chain handling so an async Blob conversion can never let a later message be delivered to\n // the protocol parser out of arrival order.\n this.messageChain = this.deliverMessage(this.messageChain, event.data);\n });\n webSocket.addEventListener(\"close\", (event) => void this.deliverClose(event, notifyClosed));\n webSocket.addEventListener(\"error\", () => {\n this.handlers?.onError(new Error(\"WebSocket connection failed.\"));\n });\n\n try {\n await waitForOpen(webSocket, options.connectionTimeoutInMs, options.abortSignal);\n } catch (error) {\n webSocket.close();\n throw error;\n }\n }\n\n public async send(data: string, abortSignal?: AbortSignalLike): Promise<void> {\n if (!this.webSocket || this.webSocket.readyState !== WebSocket.OPEN) {\n throw new Error(\"WebSocket is not connected.\");\n }\n if (abortSignal?.aborted) {\n throw new Error(\"WebSocket send was cancelled.\");\n }\n this.webSocket.send(data);\n }\n\n /** Chains `data` behind `previous` so an async `Blob` conversion cannot reorder events. */\n private async deliverMessage(\n previous: Promise<void>,\n data: string | ArrayBuffer | Blob,\n ): Promise<void> {\n await previous;\n await this.handleIncomingMessage(data);\n }\n\n /** Reports the close only after every earlier message has reached the parser. */\n private async deliverClose(event: Event, notifyClosed: () => void): Promise<void> {\n const { code, reason, wasClean } = event as unknown as NativeCloseEvent;\n try {\n await this.messageChain;\n } catch {\n // handleIncomingMessage already reported the failure through onError.\n }\n this.handlers?.onClose(code, reason, wasClean);\n notifyClosed();\n }\n\n private async handleIncomingMessage(data: string | ArrayBuffer | Blob): Promise<void> {\n if (typeof data === \"string\" || data instanceof ArrayBuffer) {\n this.handlers?.onMessage(data);\n return;\n }\n if (data instanceof Blob) {\n try {\n this.handlers?.onMessage(await data.arrayBuffer());\n } catch (error) {\n this.handlers?.onError(error instanceof Error ? error : new Error(String(error)));\n }\n }\n }\n\n public async close(code: number, reason: string): Promise<void> {\n if (!this.webSocket) {\n return;\n }\n const webSocket = this.webSocket;\n try {\n if (webSocket.readyState !== WebSocket.CLOSING && webSocket.readyState !== WebSocket.CLOSED) {\n if (code === 1000 || (code >= 3000 && code <= 4999)) {\n webSocket.close(code, reason);\n } else {\n webSocket.close();\n }\n }\n await waitForClose(webSocket, this.closeNotified, this.closeTimeoutInMs);\n } catch (error) {\n // close() is a best-effort cleanup operation and must never throw (callers, including our\n // own VoiceAgentConnection.close()/dispose(), rely on it always resolving), so a transport\n // error here is logged for diagnosability rather than rejecting.\n logger.warning(\"Error while closing the voice-agent WebSocket transport\", { error });\n } finally {\n if (this.webSocket === webSocket) {\n this.webSocket = undefined;\n }\n }\n }\n}\n\n/** Waits for `webSocket` to open, or rejects early on an error, timeout, or abort. */\nfunction waitForOpen(\n webSocket: WebSocket,\n connectionTimeoutInMs: number,\n abortSignal?: AbortSignalLike,\n): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n const timeout = setTimeout(() => {\n finish(() =>\n reject(new Error(`WebSocket connection timed out after ${connectionTimeoutInMs}ms.`)),\n );\n }, connectionTimeoutInMs);\n const onOpen = (): void => finish(resolve);\n const onError = (): void => finish(() => reject(new Error(\"WebSocket connection failed.\")));\n const onAbort = (): void =>\n finish(() => reject(new Error(\"WebSocket connection was cancelled.\")));\n\n function finish(settle: () => void): void {\n clearTimeout(timeout);\n webSocket.removeEventListener(\"open\", onOpen);\n webSocket.removeEventListener(\"error\", onError);\n abortSignal?.removeEventListener(\"abort\", onAbort);\n settle();\n }\n\n webSocket.addEventListener(\"open\", onOpen, { once: true });\n webSocket.addEventListener(\"error\", onError, { once: true });\n abortSignal?.addEventListener(\"abort\", onAbort);\n });\n}\n\n/**\n * Waits until `onClose` has been delivered to the handlers, so `close()` never returns before the\n * caller observes the true close outcome. Resolves on timeout if the socket never closes; rejects\n * if it errors instead.\n */\nasync function waitForClose(\n webSocket: WebSocket,\n closeNotified: Promise<void>,\n timeoutInMs: number,\n): Promise<void> {\n let timeout: ReturnType<typeof setTimeout> | undefined;\n let onError: (() => void) | undefined;\n const errorOrTimeout = new Promise<void>((resolve, reject) => {\n timeout = setTimeout(resolve, timeoutInMs);\n onError = (): void => reject(new Error(\"WebSocket connection failed while closing.\"));\n webSocket.addEventListener(\"error\", onError, { once: true });\n });\n\n try {\n await Promise.race([closeNotified, errorOrTimeout]);\n } finally {\n clearTimeout(timeout);\n if (onError) {\n webSocket.removeEventListener(\"error\", onError);\n }\n }\n}\n\n/** @internal */\nexport function addHeadersToUrl(url: string, headers: Record<string, string>): string {\n const target = new URL(url);\n for (const [name, value] of Object.entries(headers)) {\n switch (name.toLowerCase()) {\n case \"foundry-features\":\n target.searchParams.set(\"foundry_features\", value);\n break;\n case \"x-ms-client-request-id\":\n target.searchParams.set(\"client-request-id\", value);\n break;\n case \"x-ms-voice-structured-inputs\":\n target.searchParams.set(\"structured_input\", value);\n break;\n }\n }\n return target.toString();\n}\n\nfunction addCredentialSubprotocol(protocols: string[], headers: Record<string, string>): string[] {\n const authorization = Object.entries(headers).find(\n ([name]) => name.toLowerCase() === \"authorization\",\n )?.[1];\n if (authorization === undefined) {\n return protocols;\n }\n const bearerPrefix = \"Bearer \";\n if (!authorization.startsWith(bearerPrefix) || authorization.length === bearerPrefix.length) {\n throw new Error(\"Browser WebSocket authentication requires a Microsoft Entra bearer token.\");\n }\n return [...protocols, `authorization.bearer.${authorization.slice(bearerPrefix.length)}`];\n}\n\nclass BrowserWebSocketFactory implements VoiceAgentWebSocketFactory {\n public create(): VoiceAgentWebSocketTransport {\n return new BrowserWebSocketTransport();\n }\n}\n\n/** @internal */\nexport function createDefaultVoiceAgentWebSocketFactory(): VoiceAgentWebSocketFactory {\n return new BrowserWebSocketFactory();\n}\n"]}
@@ -7,6 +7,7 @@ import type { ConnectionsOperations } from "./classic/connections/index.js";
7
7
  import type { DatasetsOperations } from "./classic/datasets/index.js";
8
8
  import type { DeploymentsOperations } from "./classic/deployments/index.js";
9
9
  import type { EvaluationRulesOperations } from "./classic/evaluationRules/index.js";
10
+ import type { EvaluatorsOperations } from "./classic/evaluators/index.js";
10
11
  import type { IndexesOperations } from "./classic/indexes/index.js";
11
12
  import type { TelemetryOperations } from "./classic/telemetry/index.js";
12
13
  import type { TokenCredential } from "@azure/core-auth";
@@ -27,6 +28,7 @@ export type { AIProjectClientOptionalParams } from "./api/aiProjectContext.js";
27
28
  * @property {ConnectionsOperations} connections - The operation groups for connections
28
29
  * @property {AgentsOperations} agents - The operation groups for agents
29
30
  * @property {ToolboxesOperations} toolboxes - The operation groups for toolboxes
31
+ * @property {EvaluatorsOperations} evaluators - The operation groups for evaluators
30
32
  * @property {BetaOperations} beta - The operation groups for beta include beta features:
31
33
  * - Memory Stores
32
34
  * - Evaluators
@@ -52,6 +54,8 @@ export declare class AIProjectClient {
52
54
  constructor(endpoint: string, credential: TokenCredential, options?: AIProjectClientOptionalParams);
53
55
  /** The operation groups for toolboxes */
54
56
  readonly toolboxes: ToolboxesOperations;
57
+ /** The operation groups for evaluators */
58
+ readonly evaluators: EvaluatorsOperations;
55
59
  /** The operation groups for indexes */
56
60
  readonly indexes: IndexesOperations;
57
61
  /** The operation groups for deployments */
@@ -1 +1 @@
1
- {"version":3,"file":"aiProjectClient.d.ts","sourceRoot":"","sources":["../../src/aiProjectClient.ts"],"names":[],"mappings":"AAIA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,KAAK,EAAoB,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAEtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAEpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIxD,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAOnF,YAAY,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAoB/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,qBAAqB,CAAmB;IAChD,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,cAAc,CAAwB;gBAG5C,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,eAAe,EAC3B,OAAO,GAAE,6BAAkC;IAuC7C,yCAAyC;IACzC,SAAgB,SAAS,EAAE,mBAAmB,CAAC;IAC/C,uCAAuC;IACvC,SAAgB,OAAO,EAAE,iBAAiB,CAAC;IAC3C,2CAA2C;IAC3C,SAAgB,WAAW,EAAE,qBAAqB,CAAC;IACnD,wCAAwC;IACxC,SAAgB,QAAQ,EAAE,kBAAkB,CAAC;IAC7C,2CAA2C;IAC3C,SAAgB,WAAW,EAAE,qBAAqB,CAAC;IACnD,+CAA+C;IAC/C,SAAgB,eAAe,EAAE,yBAAyB,CAAC;IAC3D,sCAAsC;IACtC,SAAgB,MAAM,EAAE,gBAAgB,CAAC;IACzC;;;;;;;;;;;;OAYG;IACH,SAAgB,IAAI,EAAE,cAAc,CAAC;IACrC,yCAAyC;IACzC,SAAgB,SAAS,EAAE,mBAAmB,CAAC;IAC/C;;;OAGG;IAEI,eAAe,CAAC,kBAAkB,CAAC,EAAE,iCAAiC,GAAG,MAAM;IA+DtF;;;OAGG;IACH,IAAW,QAAQ,IAAI,MAAM,CAE5B;CACF"}
1
+ {"version":3,"file":"aiProjectClient.d.ts","sourceRoot":"","sources":["../../src/aiProjectClient.ts"],"names":[],"mappings":"AAIA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,KAAK,EAAoB,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAEtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAEpF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIxD,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAOnF,YAAY,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAoB/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,qBAAqB,CAAmB;IAChD,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,cAAc,CAAwB;gBAG5C,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,eAAe,EAC3B,OAAO,GAAE,6BAAkC;IAyC7C,yCAAyC;IACzC,SAAgB,SAAS,EAAE,mBAAmB,CAAC;IAC/C,0CAA0C;IAC1C,SAAgB,UAAU,EAAE,oBAAoB,CAAC;IACjD,uCAAuC;IACvC,SAAgB,OAAO,EAAE,iBAAiB,CAAC;IAC3C,2CAA2C;IAC3C,SAAgB,WAAW,EAAE,qBAAqB,CAAC;IACnD,wCAAwC;IACxC,SAAgB,QAAQ,EAAE,kBAAkB,CAAC;IAC7C,2CAA2C;IAC3C,SAAgB,WAAW,EAAE,qBAAqB,CAAC;IACnD,+CAA+C;IAC/C,SAAgB,eAAe,EAAE,yBAAyB,CAAC;IAC3D,sCAAsC;IACtC,SAAgB,MAAM,EAAE,gBAAgB,CAAC;IACzC;;;;;;;;;;;;OAYG;IACH,SAAgB,IAAI,EAAE,cAAc,CAAC;IACrC,yCAAyC;IACzC,SAAgB,SAAS,EAAE,mBAAmB,CAAC;IAC/C;;;OAGG;IAEI,eAAe,CAAC,kBAAkB,CAAC,EAAE,iCAAiC,GAAG,MAAM;IA+DtF;;;OAGG;IACH,IAAW,QAAQ,IAAI,MAAM,CAE5B;CACF"}
@@ -40,6 +40,7 @@ var import_connections = require("./classic/connections/index.js");
40
40
  var import_datasets = require("./classic/datasets/index.js");
41
41
  var import_deployments = require("./classic/deployments/index.js");
42
42
  var import_evaluationRules = require("./classic/evaluationRules/index.js");
43
+ var import_evaluators = require("./classic/evaluators/index.js");
43
44
  var import_indexes = require("./classic/indexes/index.js");
44
45
  var import_telemetry = require("./classic/telemetry/index.js");
45
46
  var import_overwriteOpenAIClient = require("./overwriteOpenAIClient.js");
@@ -84,6 +85,7 @@ class AIProjectClient {
84
85
  userAgentOptions: { userAgentPrefix }
85
86
  });
86
87
  this.toolboxes = (0, import_toolboxes._getToolboxesOperations)(this._cognitiveScopeClient);
88
+ this.evaluators = (0, import_evaluators._getEvaluatorsOperations)(this._cognitiveScopeClient);
87
89
  this.indexes = (0, import_indexes._getIndexesOperations)(this._azureScopeClient);
88
90
  this.deployments = (0, import_deployments._getDeploymentsOperations)(this._azureScopeClient);
89
91
  this.datasets = (0, import_datasets._getDatasetsOperations)(this._azureScopeClient, this._options);
@@ -94,12 +96,15 @@ class AIProjectClient {
94
96
  this._cognitiveScopeClient,
95
97
  credential,
96
98
  options.endpoint ?? endpoint,
97
- resolveRealtimeOptions(options, prefixFromOptions)
99
+ resolveRealtimeOptions(options, prefixFromOptions),
100
+ this._tracingConfig
98
101
  );
99
102
  this.telemetry = (0, import_telemetry._getTelemetryOperations)(this.connections);
100
103
  }
101
104
  /** The operation groups for toolboxes */
102
105
  toolboxes;
106
+ /** The operation groups for evaluators */
107
+ evaluators;
103
108
  /** The operation groups for indexes */
104
109
  indexes;
105
110
  /** The operation groups for deployments */
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/aiProjectClient.ts"],
4
- "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/* eslint-disable tsdoc/syntax */\n\nimport OpenAI from \"openai\";\nimport { getBearerTokenProvider } from \"@azure/identity\";\nimport type { AIProjectContext, AIProjectClientOptionalParams } from \"./api/index.js\";\nimport { createAIProject } from \"./api/index.js\";\nimport type { AgentsOperations } from \"./classic/agents/index.js\";\nimport { _getAgentsOperations } from \"./classic/agents/index.js\";\nimport type { ToolboxesOperations } from \"./classic/toolboxes/index.js\";\nimport { _getToolboxesOperations } from \"./classic/toolboxes/index.js\";\nimport type { BetaOperations } from \"./classic/beta/index.js\";\nimport { _getBetaOperations } from \"./classic/beta/index.js\";\nimport type { ConnectionsOperations } from \"./classic/connections/index.js\";\nimport { _getConnectionsOperations } from \"./classic/connections/index.js\";\nimport type { DatasetsOperations } from \"./classic/datasets/index.js\";\nimport { _getDatasetsOperations } from \"./classic/datasets/index.js\";\nimport type { DeploymentsOperations } from \"./classic/deployments/index.js\";\nimport { _getDeploymentsOperations } from \"./classic/deployments/index.js\";\nimport type { EvaluationRulesOperations } from \"./classic/evaluationRules/index.js\";\nimport { _getEvaluationRulesOperations } from \"./classic/evaluationRules/index.js\";\nimport type { IndexesOperations } from \"./classic/indexes/index.js\";\nimport { _getIndexesOperations } from \"./classic/indexes/index.js\";\nimport type { TelemetryOperations } from \"./classic/telemetry/index.js\";\nimport { _getTelemetryOperations } from \"./classic/telemetry/index.js\";\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { overwriteOpenAIClient } from \"./overwriteOpenAIClient.js\";\nimport { getCustomFetch } from \"#platform/getCustomFetch\";\nimport { getOpenAIDefaultHeaders } from \"./util.js\";\nimport type { OpenAIClientOptionsWithAzureAgent } from \"./azureAgent.interface.js\";\nimport { KnownApiVersions } from \"./models/models.js\";\nimport { getTracingFetch } from \"./tracing/tracingFetch.js\";\nimport { resolveTracingConfig } from \"./tracing/configuration.js\";\nimport type { ResolvedTracingConfig } from \"./tracing/configuration.js\";\nimport type { VoiceAgentRealtimeClientOptions } from \"./realtime/voiceAgentRealtimeClient.js\";\n\nexport type { AIProjectClientOptionalParams } from \"./api/aiProjectContext.js\";\n\n/**\n * Resolves the effective options for the realtime voice-agent client: explicit `realtimeOptions`\n * values win, otherwise each falls back to its corresponding top-level client option so realtime\n * connections stay consistent with the rest of the client by default.\n */\nfunction resolveRealtimeOptions(\n options: AIProjectClientOptionalParams,\n userAgentPrefix: string | undefined,\n): VoiceAgentRealtimeClientOptions {\n const { realtimeOptions } = options;\n return {\n ...realtimeOptions,\n apiVersion: realtimeOptions?.apiVersion ?? options.apiVersion,\n credentialScopes: realtimeOptions?.credentialScopes ?? options.credentials?.scopes,\n userAgentPrefix: realtimeOptions?.userAgentPrefix ?? userAgentPrefix,\n };\n}\n\n/**\n * The main client for the AIProjectClient service. It provides access to the various operations available in the service.\n * @class AIProjectClient\n * @extends {AIProjectContext}\n * @description The main client for the AIProjectClient\n * @constructor\n * @param {string} endpoint - The endpoint to use\n * @param {TokenCredential} credential - The credential to use\n * @param {AIProjectClientOptionalParams} [options] - Optional parameters for the client.\n * @property {DeploymentsOperations} deployments - The operation groups for deployments\n * @property {IndexesOperations} indexes - The operation groups for indexes\n * @property {DatasetsOperations} datasets - The operation groups for datasets\n * @property {ConnectionsOperations} connections - The operation groups for connections\n * @property {AgentsOperations} agents - The operation groups for agents\n * @property {ToolboxesOperations} toolboxes - The operation groups for toolboxes\n * @property {BetaOperations} beta - The operation groups for beta include beta features:\n * - Memory Stores\n * - Evaluators\n * - Evaluation Taxonomies\n * - Insights\n * - Schedules\n * - Red Teams\n * - agents\n * - skills\n * - routines\n * - models\n * @property {TelemetryOperations} telemetry - The operation groups for telemetry\n * @property {getEndpointUrl} getEndpointUrl - gets the endpoint of the client\n * @property {getOpenAIClient} getOpenAIClient - gets the OpenAI client with optional OpenAI client options\n */\nexport class AIProjectClient {\n private _cognitiveScopeClient: AIProjectContext;\n private _azureScopeClient: AIProjectContext;\n private _endpoint: string;\n private _credential: TokenCredential;\n private _options: AIProjectClientOptionalParams;\n private _tracingConfig: ResolvedTracingConfig;\n\n constructor(\n endpoint: string,\n credential: TokenCredential,\n options: AIProjectClientOptionalParams = {},\n ) {\n this._endpoint = endpoint;\n this._credential = credential;\n this._options = options;\n this._tracingConfig = resolveTracingConfig(options.tracingOptions);\n const prefixFromOptions = options?.userAgentOptions?.userAgentPrefix;\n const userAgentPrefix = prefixFromOptions\n ? `${prefixFromOptions} azsdk-js-client`\n : `azsdk-js-client`;\n this._cognitiveScopeClient = createAIProject(endpoint, this._credential, {\n ...options,\n userAgentOptions: { userAgentPrefix },\n credentials: {\n ...options.credentials,\n scopes: [\"https://ai.azure.com/.default\"],\n },\n });\n this._azureScopeClient = createAIProject(endpoint, credential, {\n ...options,\n userAgentOptions: { userAgentPrefix },\n });\n\n this.toolboxes = _getToolboxesOperations(this._cognitiveScopeClient);\n this.indexes = _getIndexesOperations(this._azureScopeClient);\n this.deployments = _getDeploymentsOperations(this._azureScopeClient);\n this.datasets = _getDatasetsOperations(this._azureScopeClient, this._options);\n this.connections = _getConnectionsOperations(this._azureScopeClient);\n this.evaluationRules = _getEvaluationRulesOperations(this._azureScopeClient);\n this.agents = _getAgentsOperations(this._azureScopeClient, this._tracingConfig);\n this.beta = _getBetaOperations(\n this._cognitiveScopeClient,\n credential,\n options.endpoint ?? endpoint,\n resolveRealtimeOptions(options, prefixFromOptions),\n );\n this.telemetry = _getTelemetryOperations(this.connections);\n }\n\n /** The operation groups for toolboxes */\n public readonly toolboxes: ToolboxesOperations;\n /** The operation groups for indexes */\n public readonly indexes: IndexesOperations;\n /** The operation groups for deployments */\n public readonly deployments: DeploymentsOperations;\n /** The operation groups for datasets */\n public readonly datasets: DatasetsOperations;\n /** The operation groups for connections */\n public readonly connections: ConnectionsOperations;\n /** The operation groups for evaluationRules */\n public readonly evaluationRules: EvaluationRulesOperations;\n /** The operation groups for agents */\n public readonly agents: AgentsOperations;\n /** The operation groups for beta include beta features:\n * - Memory Stores\n * - Evaluators\n * - Evaluation Taxonomies\n * - Insights\n * - Schedules\n * - Red Teams\n * - agents\n * - skills\n * - routines\n * - models\n * - realtime (voice-agent WebSocket connections)\n */\n public readonly beta: BetaOperations;\n /** The operation groups for telemetry */\n public readonly telemetry: TelemetryOperations;\n /**\n * gets the OpenAI client\n * @returns the OpenAI client\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public getOpenAIClient(optsWithAzureAgent?: OpenAIClientOptionsWithAzureAgent): OpenAI {\n const scope = \"https://ai.azure.com/.default\";\n const { azureConfig, ...opts } = optsWithAzureAgent || {};\n let customFetch: NonNullable<ConstructorParameters<typeof OpenAI>[0]>[\"fetch\"];\n\n if (\n this._options.additionalPolicies?.find((policy) => policy.policy.name === \"recording policy\")\n ) {\n customFetch = getCustomFetch(this._azureScopeClient.pipeline, this._options.httpClient);\n }\n\n // Wrap fetch with tracing to inject traceparent/tracestate headers\n customFetch = getTracingFetch(customFetch, this._tracingConfig);\n\n let baseURL: string;\n if (opts?.baseURL) {\n baseURL = opts.baseURL;\n } else if (azureConfig?.agentName) {\n if (!azureConfig.allowPreview) {\n throw new Error(\n \"Calling `getOpenAIClient` with an `agentName` requires you to set `allowPreview: true`\" +\n \"\\nwhen providing azureConfig. Note that preview features are under development and \" +\n \"\\nsubject to change. They should not be used in production environments.\",\n );\n }\n baseURL = `${this._endpoint}/agents/${azureConfig.agentName}/endpoint/protocols/openai`;\n } else {\n baseURL = `${this._endpoint}/openai/v1`;\n }\n\n const defaultHeaders = getOpenAIDefaultHeaders(\n opts?.defaultHeaders,\n this._options?.userAgentOptions?.userAgentPrefix,\n );\n\n // When targeting an agent endpoint, add api-version to defaultQuery if not already present\n const defaultQuery = {\n ...(opts?.defaultQuery || {}),\n };\n if (azureConfig?.agentName && !defaultQuery[\"api-version\"]) {\n defaultQuery[\"api-version\"] = this._options.apiVersion ?? KnownApiVersions.v1;\n }\n\n // Destructure opts to exclude defaultHeaders, baseURL, and defaultQuery, then override specific properties\n const {\n defaultHeaders: _ignoredHeaders,\n baseURL: _ignoredBaseURL,\n defaultQuery: _ignoredQuery,\n ...restOpts\n } = opts || {};\n const openAIOptions: ConstructorParameters<typeof OpenAI>[0] = {\n ...restOpts,\n apiKey: getBearerTokenProvider(this._credential, scope),\n baseURL,\n dangerouslyAllowBrowser: true,\n defaultHeaders: defaultHeaders.toJSON({ preserveCase: true }),\n defaultQuery: Object.keys(defaultQuery).length > 0 ? defaultQuery : undefined,\n fetch: customFetch,\n };\n\n const openaiClient = new OpenAI(openAIOptions);\n return overwriteOpenAIClient(openaiClient, this._endpoint, this._tracingConfig);\n }\n /**\n * gets the endpoint of the client\n * @returns the endpoint of the client\n */\n public get endpoint(): string {\n return this._endpoint;\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/* eslint-disable tsdoc/syntax */\n\nimport OpenAI from \"openai\";\nimport { getBearerTokenProvider } from \"@azure/identity\";\nimport type { AIProjectContext, AIProjectClientOptionalParams } from \"./api/index.js\";\nimport { createAIProject } from \"./api/index.js\";\nimport type { AgentsOperations } from \"./classic/agents/index.js\";\nimport { _getAgentsOperations } from \"./classic/agents/index.js\";\nimport type { ToolboxesOperations } from \"./classic/toolboxes/index.js\";\nimport { _getToolboxesOperations } from \"./classic/toolboxes/index.js\";\nimport type { BetaOperations } from \"./classic/beta/index.js\";\nimport { _getBetaOperations } from \"./classic/beta/index.js\";\nimport type { ConnectionsOperations } from \"./classic/connections/index.js\";\nimport { _getConnectionsOperations } from \"./classic/connections/index.js\";\nimport type { DatasetsOperations } from \"./classic/datasets/index.js\";\nimport { _getDatasetsOperations } from \"./classic/datasets/index.js\";\nimport type { DeploymentsOperations } from \"./classic/deployments/index.js\";\nimport { _getDeploymentsOperations } from \"./classic/deployments/index.js\";\nimport type { EvaluationRulesOperations } from \"./classic/evaluationRules/index.js\";\nimport { _getEvaluationRulesOperations } from \"./classic/evaluationRules/index.js\";\nimport type { EvaluatorsOperations } from \"./classic/evaluators/index.js\";\nimport { _getEvaluatorsOperations } from \"./classic/evaluators/index.js\";\nimport type { IndexesOperations } from \"./classic/indexes/index.js\";\nimport { _getIndexesOperations } from \"./classic/indexes/index.js\";\nimport type { TelemetryOperations } from \"./classic/telemetry/index.js\";\nimport { _getTelemetryOperations } from \"./classic/telemetry/index.js\";\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { overwriteOpenAIClient } from \"./overwriteOpenAIClient.js\";\nimport { getCustomFetch } from \"#platform/getCustomFetch\";\nimport { getOpenAIDefaultHeaders } from \"./util.js\";\nimport type { OpenAIClientOptionsWithAzureAgent } from \"./azureAgent.interface.js\";\nimport { KnownApiVersions } from \"./models/models.js\";\nimport { getTracingFetch } from \"./tracing/tracingFetch.js\";\nimport { resolveTracingConfig } from \"./tracing/configuration.js\";\nimport type { ResolvedTracingConfig } from \"./tracing/configuration.js\";\nimport type { VoiceAgentRealtimeClientOptions } from \"./realtime/voiceAgentRealtimeClient.js\";\n\nexport type { AIProjectClientOptionalParams } from \"./api/aiProjectContext.js\";\n\n/**\n * Resolves the effective options for the realtime voice-agent client: explicit `realtimeOptions`\n * values win, otherwise each falls back to its corresponding top-level client option so realtime\n * connections stay consistent with the rest of the client by default.\n */\nfunction resolveRealtimeOptions(\n options: AIProjectClientOptionalParams,\n userAgentPrefix: string | undefined,\n): VoiceAgentRealtimeClientOptions {\n const { realtimeOptions } = options;\n return {\n ...realtimeOptions,\n apiVersion: realtimeOptions?.apiVersion ?? options.apiVersion,\n credentialScopes: realtimeOptions?.credentialScopes ?? options.credentials?.scopes,\n userAgentPrefix: realtimeOptions?.userAgentPrefix ?? userAgentPrefix,\n };\n}\n\n/**\n * The main client for the AIProjectClient service. It provides access to the various operations available in the service.\n * @class AIProjectClient\n * @extends {AIProjectContext}\n * @description The main client for the AIProjectClient\n * @constructor\n * @param {string} endpoint - The endpoint to use\n * @param {TokenCredential} credential - The credential to use\n * @param {AIProjectClientOptionalParams} [options] - Optional parameters for the client.\n * @property {DeploymentsOperations} deployments - The operation groups for deployments\n * @property {IndexesOperations} indexes - The operation groups for indexes\n * @property {DatasetsOperations} datasets - The operation groups for datasets\n * @property {ConnectionsOperations} connections - The operation groups for connections\n * @property {AgentsOperations} agents - The operation groups for agents\n * @property {ToolboxesOperations} toolboxes - The operation groups for toolboxes\n * @property {EvaluatorsOperations} evaluators - The operation groups for evaluators\n * @property {BetaOperations} beta - The operation groups for beta include beta features:\n * - Memory Stores\n * - Evaluators\n * - Evaluation Taxonomies\n * - Insights\n * - Schedules\n * - Red Teams\n * - agents\n * - skills\n * - routines\n * - models\n * @property {TelemetryOperations} telemetry - The operation groups for telemetry\n * @property {getEndpointUrl} getEndpointUrl - gets the endpoint of the client\n * @property {getOpenAIClient} getOpenAIClient - gets the OpenAI client with optional OpenAI client options\n */\nexport class AIProjectClient {\n private _cognitiveScopeClient: AIProjectContext;\n private _azureScopeClient: AIProjectContext;\n private _endpoint: string;\n private _credential: TokenCredential;\n private _options: AIProjectClientOptionalParams;\n private _tracingConfig: ResolvedTracingConfig;\n\n constructor(\n endpoint: string,\n credential: TokenCredential,\n options: AIProjectClientOptionalParams = {},\n ) {\n this._endpoint = endpoint;\n this._credential = credential;\n this._options = options;\n this._tracingConfig = resolveTracingConfig(options.tracingOptions);\n const prefixFromOptions = options?.userAgentOptions?.userAgentPrefix;\n const userAgentPrefix = prefixFromOptions\n ? `${prefixFromOptions} azsdk-js-client`\n : `azsdk-js-client`;\n this._cognitiveScopeClient = createAIProject(endpoint, this._credential, {\n ...options,\n userAgentOptions: { userAgentPrefix },\n credentials: {\n ...options.credentials,\n scopes: [\"https://ai.azure.com/.default\"],\n },\n });\n this._azureScopeClient = createAIProject(endpoint, credential, {\n ...options,\n userAgentOptions: { userAgentPrefix },\n });\n\n this.toolboxes = _getToolboxesOperations(this._cognitiveScopeClient);\n this.evaluators = _getEvaluatorsOperations(this._cognitiveScopeClient);\n this.indexes = _getIndexesOperations(this._azureScopeClient);\n this.deployments = _getDeploymentsOperations(this._azureScopeClient);\n this.datasets = _getDatasetsOperations(this._azureScopeClient, this._options);\n this.connections = _getConnectionsOperations(this._azureScopeClient);\n this.evaluationRules = _getEvaluationRulesOperations(this._azureScopeClient);\n this.agents = _getAgentsOperations(this._azureScopeClient, this._tracingConfig);\n this.beta = _getBetaOperations(\n this._cognitiveScopeClient,\n credential,\n options.endpoint ?? endpoint,\n resolveRealtimeOptions(options, prefixFromOptions),\n this._tracingConfig,\n );\n this.telemetry = _getTelemetryOperations(this.connections);\n }\n\n /** The operation groups for toolboxes */\n public readonly toolboxes: ToolboxesOperations;\n /** The operation groups for evaluators */\n public readonly evaluators: EvaluatorsOperations;\n /** The operation groups for indexes */\n public readonly indexes: IndexesOperations;\n /** The operation groups for deployments */\n public readonly deployments: DeploymentsOperations;\n /** The operation groups for datasets */\n public readonly datasets: DatasetsOperations;\n /** The operation groups for connections */\n public readonly connections: ConnectionsOperations;\n /** The operation groups for evaluationRules */\n public readonly evaluationRules: EvaluationRulesOperations;\n /** The operation groups for agents */\n public readonly agents: AgentsOperations;\n /** The operation groups for beta include beta features:\n * - Memory Stores\n * - Evaluators\n * - Evaluation Taxonomies\n * - Insights\n * - Schedules\n * - Red Teams\n * - agents\n * - skills\n * - routines\n * - models\n * - realtime (voice-agent WebSocket connections)\n */\n public readonly beta: BetaOperations;\n /** The operation groups for telemetry */\n public readonly telemetry: TelemetryOperations;\n /**\n * gets the OpenAI client\n * @returns the OpenAI client\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public getOpenAIClient(optsWithAzureAgent?: OpenAIClientOptionsWithAzureAgent): OpenAI {\n const scope = \"https://ai.azure.com/.default\";\n const { azureConfig, ...opts } = optsWithAzureAgent || {};\n let customFetch: NonNullable<ConstructorParameters<typeof OpenAI>[0]>[\"fetch\"];\n\n if (\n this._options.additionalPolicies?.find((policy) => policy.policy.name === \"recording policy\")\n ) {\n customFetch = getCustomFetch(this._azureScopeClient.pipeline, this._options.httpClient);\n }\n\n // Wrap fetch with tracing to inject traceparent/tracestate headers\n customFetch = getTracingFetch(customFetch, this._tracingConfig);\n\n let baseURL: string;\n if (opts?.baseURL) {\n baseURL = opts.baseURL;\n } else if (azureConfig?.agentName) {\n if (!azureConfig.allowPreview) {\n throw new Error(\n \"Calling `getOpenAIClient` with an `agentName` requires you to set `allowPreview: true`\" +\n \"\\nwhen providing azureConfig. Note that preview features are under development and \" +\n \"\\nsubject to change. They should not be used in production environments.\",\n );\n }\n baseURL = `${this._endpoint}/agents/${azureConfig.agentName}/endpoint/protocols/openai`;\n } else {\n baseURL = `${this._endpoint}/openai/v1`;\n }\n\n const defaultHeaders = getOpenAIDefaultHeaders(\n opts?.defaultHeaders,\n this._options?.userAgentOptions?.userAgentPrefix,\n );\n\n // When targeting an agent endpoint, add api-version to defaultQuery if not already present\n const defaultQuery = {\n ...(opts?.defaultQuery || {}),\n };\n if (azureConfig?.agentName && !defaultQuery[\"api-version\"]) {\n defaultQuery[\"api-version\"] = this._options.apiVersion ?? KnownApiVersions.v1;\n }\n\n // Destructure opts to exclude defaultHeaders, baseURL, and defaultQuery, then override specific properties\n const {\n defaultHeaders: _ignoredHeaders,\n baseURL: _ignoredBaseURL,\n defaultQuery: _ignoredQuery,\n ...restOpts\n } = opts || {};\n const openAIOptions: ConstructorParameters<typeof OpenAI>[0] = {\n ...restOpts,\n apiKey: getBearerTokenProvider(this._credential, scope),\n baseURL,\n dangerouslyAllowBrowser: true,\n defaultHeaders: defaultHeaders.toJSON({ preserveCase: true }),\n defaultQuery: Object.keys(defaultQuery).length > 0 ? defaultQuery : undefined,\n fetch: customFetch,\n };\n\n const openaiClient = new OpenAI(openAIOptions);\n return overwriteOpenAIClient(openaiClient, this._endpoint, this._tracingConfig);\n }\n /**\n * gets the endpoint of the client\n * @returns the endpoint of the client\n */\n public get endpoint(): string {\n return this._endpoint;\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,oBAAmB;AACnB,sBAAuC;AAEvC,iBAAgC;AAEhC,oBAAqC;AAErC,uBAAwC;AAExC,kBAAmC;AAEnC,yBAA0C;AAE1C,sBAAuC;AAEvC,yBAA0C;AAE1C,6BAA8C;AAE9C,wBAAyC;AAEzC,qBAAsC;AAEtC,uBAAwC;AAExC,mCAAsC;AACtC,4BAA+B;AAC/B,kBAAwC;AAExC,oBAAiC;AACjC,0BAAgC;AAChC,2BAAqC;AAWrC,SAAS,uBACP,SACA,iBACiC;AACjC,QAAM,EAAE,gBAAgB,IAAI;AAC5B,SAAO;AAAA,IACL,GAAG;AAAA,IACH,YAAY,iBAAiB,cAAc,QAAQ;AAAA,IACnD,kBAAkB,iBAAiB,oBAAoB,QAAQ,aAAa;AAAA,IAC5E,iBAAiB,iBAAiB,mBAAmB;AAAA,EACvD;AACF;AAiCO,MAAM,gBAAgB;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAER,YACE,UACA,YACA,UAAyC,CAAC,GAC1C;AACA,SAAK,YAAY;AACjB,SAAK,cAAc;AACnB,SAAK,WAAW;AAChB,SAAK,qBAAiB,2CAAqB,QAAQ,cAAc;AACjE,UAAM,oBAAoB,SAAS,kBAAkB;AACrD,UAAM,kBAAkB,oBACpB,GAAG,iBAAiB,qBACpB;AACJ,SAAK,4BAAwB,4BAAgB,UAAU,KAAK,aAAa;AAAA,MACvE,GAAG;AAAA,MACH,kBAAkB,EAAE,gBAAgB;AAAA,MACpC,aAAa;AAAA,QACX,GAAG,QAAQ;AAAA,QACX,QAAQ,CAAC,+BAA+B;AAAA,MAC1C;AAAA,IACF,CAAC;AACD,SAAK,wBAAoB,4BAAgB,UAAU,YAAY;AAAA,MAC7D,GAAG;AAAA,MACH,kBAAkB,EAAE,gBAAgB;AAAA,IACtC,CAAC;AAED,SAAK,gBAAY,0CAAwB,KAAK,qBAAqB;AACnE,SAAK,iBAAa,4CAAyB,KAAK,qBAAqB;AACrE,SAAK,cAAU,sCAAsB,KAAK,iBAAiB;AAC3D,SAAK,kBAAc,8CAA0B,KAAK,iBAAiB;AACnE,SAAK,eAAW,wCAAuB,KAAK,mBAAmB,KAAK,QAAQ;AAC5E,SAAK,kBAAc,8CAA0B,KAAK,iBAAiB;AACnE,SAAK,sBAAkB,sDAA8B,KAAK,iBAAiB;AAC3E,SAAK,aAAS,oCAAqB,KAAK,mBAAmB,KAAK,cAAc;AAC9E,SAAK,WAAO;AAAA,MACV,KAAK;AAAA,MACL;AAAA,MACA,QAAQ,YAAY;AAAA,MACpB,uBAAuB,SAAS,iBAAiB;AAAA,MACjD,KAAK;AAAA,IACP;AACA,SAAK,gBAAY,0CAAwB,KAAK,WAAW;AAAA,EAC3D;AAAA;AAAA,EAGgB;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA;AAAA;AAAA,EAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT,gBAAgB,oBAAgE;AACrF,UAAM,QAAQ;AACd,UAAM,EAAE,aAAa,GAAG,KAAK,IAAI,sBAAsB,CAAC;AACxD,QAAI;AAEJ,QACE,KAAK,SAAS,oBAAoB,KAAK,CAAC,WAAW,OAAO,OAAO,SAAS,kBAAkB,GAC5F;AACA,wBAAc,sCAAe,KAAK,kBAAkB,UAAU,KAAK,SAAS,UAAU;AAAA,IACxF;AAGA,sBAAc,qCAAgB,aAAa,KAAK,cAAc;AAE9D,QAAI;AACJ,QAAI,MAAM,SAAS;AACjB,gBAAU,KAAK;AAAA,IACjB,WAAW,aAAa,WAAW;AACjC,UAAI,CAAC,YAAY,cAAc;AAC7B,cAAM,IAAI;AAAA,UACR;AAAA,QAGF;AAAA,MACF;AACA,gBAAU,GAAG,KAAK,SAAS,WAAW,YAAY,SAAS;AAAA,IAC7D,OAAO;AACL,gBAAU,GAAG,KAAK,SAAS;AAAA,IAC7B;AAEA,UAAM,qBAAiB;AAAA,MACrB,MAAM;AAAA,MACN,KAAK,UAAU,kBAAkB;AAAA,IACnC;AAGA,UAAM,eAAe;AAAA,MACnB,GAAI,MAAM,gBAAgB,CAAC;AAAA,IAC7B;AACA,QAAI,aAAa,aAAa,CAAC,aAAa,aAAa,GAAG;AAC1D,mBAAa,aAAa,IAAI,KAAK,SAAS,cAAc,+BAAiB;AAAA,IAC7E;AAGA,UAAM;AAAA,MACJ,gBAAgB;AAAA,MAChB,SAAS;AAAA,MACT,cAAc;AAAA,MACd,GAAG;AAAA,IACL,IAAI,QAAQ,CAAC;AACb,UAAM,gBAAyD;AAAA,MAC7D,GAAG;AAAA,MACH,YAAQ,wCAAuB,KAAK,aAAa,KAAK;AAAA,MACtD;AAAA,MACA,yBAAyB;AAAA,MACzB,gBAAgB,eAAe,OAAO,EAAE,cAAc,KAAK,CAAC;AAAA,MAC5D,cAAc,OAAO,KAAK,YAAY,EAAE,SAAS,IAAI,eAAe;AAAA,MACpE,OAAO;AAAA,IACT;AAEA,UAAM,eAAe,IAAI,cAAAA,QAAO,aAAa;AAC7C,eAAO,oDAAsB,cAAc,KAAK,WAAW,KAAK,cAAc;AAAA,EAChF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAW,WAAmB;AAC5B,WAAO,KAAK;AAAA,EACd;AACF;",
6
6
  "names": ["OpenAI"]
7
7
  }
@@ -1,3 +1,3 @@
1
- export { deleteSessionFile, listSessionFiles, downloadSessionFile, uploadSessionFile, getMicrosoft365PublishDefaults, getMicrosoft365Package, publishToMicrosoft365, getSessionLogStream, listSessions, stopSession, deleteSession, getSession, createSession, disable, enable, downloadAgentCode, createVersionFromCode, updateAgentObject, patchAgentObject, listVersions, deleteVersion, getVersion, createAgentVersionFromManifest, createVersion, list, $delete, updateAgentFromManifest, createAgentFromManifest, update, create, get, } from "./operations.js";
2
- export type { AgentsDeleteSessionFileOptionalParams, AgentsListSessionFilesOptionalParams, AgentsDownloadSessionFileOptionalParams, AgentsUploadSessionFileOptionalParams, AgentsListTelephonyCallsOptionalParams, AgentsDeleteTelephonyBindingOptionalParams, AgentsUpdateTelephonyBindingOptionalParams, AgentsGetTelephonyBindingOptionalParams, AgentsListTelephonyBindingsOptionalParams, AgentsCreateTelephonyBindingOptionalParams, GetMicrosoft365PublishDefaultsOptionalParams, GetMicrosoft365PackageOptionalParams, PublishToMicrosoft365OptionalParams, AgentsGetSessionLogStreamOptionalParams, AgentsListSessionsOptionalParams, AgentsStopSessionOptionalParams, AgentsDeleteSessionOptionalParams, AgentsGetSessionOptionalParams, AgentsCreateSessionOptionalParams, AgentsDisableOptionalParams, AgentsEnableOptionalParams, AgentsDownloadAgentCodeOptionalParams, AgentsCreateVersionFromCodeOptionalParams, AgentsUpdateAgentObjectOptionalParams, AgentsPatchAgentObjectOptionalParams, AgentsListVersionsOptionalParams, AgentsDeleteVersionOptionalParams, AgentsGetVersionOptionalParams, AgentsCreateAgentVersionFromManifestOptionalParams, AgentsCreateVersionOptionalParams, AgentsListOptionalParams, AgentsDeleteOptionalParams, AgentsUpdateAgentFromManifestOptionalParams, AgentsCreateAgentFromManifestOptionalParams, AgentsUpdateOptionalParams, AgentsCreateOptionalParams, AgentsGetOptionalParams, } from "./options.js";
1
+ export { deleteSessionFile, listSessionFiles, downloadSessionFile, uploadSessionFile, getMicrosoft365PublishDefaults, getMicrosoft365Package, publishToMicrosoft365, getSessionLogStream, listSessions, stopSession, deleteSession, getSession, createSession, disable, enable, downloadAgentCode, createVersionFromCode, updateAgentObject, patchAgentObject, listVersions, deleteVersion, getVersion, createAgentVersionFromManifest, createVersion, list, $delete, updateAgentFromManifest, createAgentFromManifest, update, create, get, promoteOptimizationCandidate, getOptimizationCandidate, listOptimizationCandidates, deleteOptimizationJob, cancelOptimizationJob, listOptimizationJobs, getOptimizationJob, estimateOptimizationJob, createOptimizationJob, } from "./operations.js";
2
+ export type { AgentsDeleteSessionFileOptionalParams, AgentsListSessionFilesOptionalParams, AgentsDownloadSessionFileOptionalParams, AgentsUploadSessionFileOptionalParams, AgentsListTelephonyCallsOptionalParams, AgentsDeleteTelephonyBindingOptionalParams, AgentsUpdateTelephonyBindingOptionalParams, AgentsGetTelephonyBindingOptionalParams, AgentsListTelephonyBindingsOptionalParams, AgentsCreateTelephonyBindingOptionalParams, GetMicrosoft365PublishDefaultsOptionalParams, GetMicrosoft365PackageOptionalParams, PublishToMicrosoft365OptionalParams, AgentsGetSessionLogStreamOptionalParams, AgentsListSessionsOptionalParams, AgentsStopSessionOptionalParams, AgentsDeleteSessionOptionalParams, AgentsGetSessionOptionalParams, AgentsCreateSessionOptionalParams, AgentsDisableOptionalParams, AgentsEnableOptionalParams, AgentsDownloadAgentCodeOptionalParams, AgentsCreateVersionFromCodeOptionalParams, AgentsUpdateAgentObjectOptionalParams, AgentsPatchAgentObjectOptionalParams, AgentsListVersionsOptionalParams, AgentsDeleteVersionOptionalParams, AgentsGetVersionOptionalParams, AgentsCreateAgentVersionFromManifestOptionalParams, AgentsCreateVersionOptionalParams, AgentsListOptionalParams, AgentsDeleteOptionalParams, AgentsUpdateAgentFromManifestOptionalParams, AgentsCreateAgentFromManifestOptionalParams, AgentsUpdateOptionalParams, AgentsCreateOptionalParams, AgentsGetOptionalParams, AgentsPromoteOptimizationCandidateOptionalParams, AgentsGetOptimizationCandidateOptionalParams, AgentsListOptimizationCandidatesOptionalParams, AgentsDeleteOptimizationJobOptionalParams, AgentsCancelOptimizationJobOptionalParams, AgentsListOptimizationJobsOptionalParams, AgentsGetOptimizationJobOptionalParams, AgentsEstimateOptimizationJobOptionalParams, AgentsCreateOptimizationJobOptionalParams, } from "./options.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/agents/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,8BAA8B,EAC9B,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,EACb,OAAO,EACP,MAAM,EACN,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,UAAU,EACV,8BAA8B,EAC9B,aAAa,EACb,IAAI,EACJ,OAAO,EACP,uBAAuB,EACvB,uBAAuB,EACvB,MAAM,EACN,MAAM,EACN,GAAG,GACJ,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,qCAAqC,EACrC,oCAAoC,EACpC,uCAAuC,EACvC,qCAAqC,EACrC,sCAAsC,EACtC,0CAA0C,EAC1C,0CAA0C,EAC1C,uCAAuC,EACvC,yCAAyC,EACzC,0CAA0C,EAC1C,4CAA4C,EAC5C,oCAAoC,EACpC,mCAAmC,EACnC,uCAAuC,EACvC,gCAAgC,EAChC,+BAA+B,EAC/B,iCAAiC,EACjC,8BAA8B,EAC9B,iCAAiC,EACjC,2BAA2B,EAC3B,0BAA0B,EAC1B,qCAAqC,EACrC,yCAAyC,EACzC,qCAAqC,EACrC,oCAAoC,EACpC,gCAAgC,EAChC,iCAAiC,EACjC,8BAA8B,EAC9B,kDAAkD,EAClD,iCAAiC,EACjC,wBAAwB,EACxB,0BAA0B,EAC1B,2CAA2C,EAC3C,2CAA2C,EAC3C,0BAA0B,EAC1B,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/agents/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,8BAA8B,EAC9B,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,EACb,OAAO,EACP,MAAM,EACN,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,UAAU,EACV,8BAA8B,EAC9B,aAAa,EACb,IAAI,EACJ,OAAO,EACP,uBAAuB,EACvB,uBAAuB,EACvB,MAAM,EACN,MAAM,EACN,GAAG,EACH,4BAA4B,EAC5B,wBAAwB,EACxB,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,qCAAqC,EACrC,oCAAoC,EACpC,uCAAuC,EACvC,qCAAqC,EACrC,sCAAsC,EACtC,0CAA0C,EAC1C,0CAA0C,EAC1C,uCAAuC,EACvC,yCAAyC,EACzC,0CAA0C,EAC1C,4CAA4C,EAC5C,oCAAoC,EACpC,mCAAmC,EACnC,uCAAuC,EACvC,gCAAgC,EAChC,+BAA+B,EAC/B,iCAAiC,EACjC,8BAA8B,EAC9B,iCAAiC,EACjC,2BAA2B,EAC3B,0BAA0B,EAC1B,qCAAqC,EACrC,yCAAyC,EACzC,qCAAqC,EACrC,oCAAoC,EACpC,gCAAgC,EAChC,iCAAiC,EACjC,8BAA8B,EAC9B,kDAAkD,EAClD,iCAAiC,EACjC,wBAAwB,EACxB,0BAA0B,EAC1B,2CAA2C,EAC3C,2CAA2C,EAC3C,0BAA0B,EAC1B,0BAA0B,EAC1B,uBAAuB,EACvB,gDAAgD,EAChD,4CAA4C,EAC5C,8CAA8C,EAC9C,yCAAyC,EACzC,yCAAyC,EACzC,wCAAwC,EACxC,sCAAsC,EACtC,2CAA2C,EAC3C,yCAAyC,GAC1C,MAAM,cAAc,CAAC"}
@@ -18,12 +18,15 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
18
18
  var agents_exports = {};
19
19
  __export(agents_exports, {
20
20
  $delete: () => import_operations.$delete,
21
+ cancelOptimizationJob: () => import_operations.cancelOptimizationJob,
21
22
  create: () => import_operations.create,
22
23
  createAgentFromManifest: () => import_operations.createAgentFromManifest,
23
24
  createAgentVersionFromManifest: () => import_operations.createAgentVersionFromManifest,
25
+ createOptimizationJob: () => import_operations.createOptimizationJob,
24
26
  createSession: () => import_operations.createSession,
25
27
  createVersion: () => import_operations.createVersion,
26
28
  createVersionFromCode: () => import_operations.createVersionFromCode,
29
+ deleteOptimizationJob: () => import_operations.deleteOptimizationJob,
27
30
  deleteSession: () => import_operations.deleteSession,
28
31
  deleteSessionFile: () => import_operations.deleteSessionFile,
29
32
  deleteVersion: () => import_operations.deleteVersion,
@@ -31,17 +34,23 @@ __export(agents_exports, {
31
34
  downloadAgentCode: () => import_operations.downloadAgentCode,
32
35
  downloadSessionFile: () => import_operations.downloadSessionFile,
33
36
  enable: () => import_operations.enable,
37
+ estimateOptimizationJob: () => import_operations.estimateOptimizationJob,
34
38
  get: () => import_operations.get,
35
39
  getMicrosoft365Package: () => import_operations.getMicrosoft365Package,
36
40
  getMicrosoft365PublishDefaults: () => import_operations.getMicrosoft365PublishDefaults,
41
+ getOptimizationCandidate: () => import_operations.getOptimizationCandidate,
42
+ getOptimizationJob: () => import_operations.getOptimizationJob,
37
43
  getSession: () => import_operations.getSession,
38
44
  getSessionLogStream: () => import_operations.getSessionLogStream,
39
45
  getVersion: () => import_operations.getVersion,
40
46
  list: () => import_operations.list,
47
+ listOptimizationCandidates: () => import_operations.listOptimizationCandidates,
48
+ listOptimizationJobs: () => import_operations.listOptimizationJobs,
41
49
  listSessionFiles: () => import_operations.listSessionFiles,
42
50
  listSessions: () => import_operations.listSessions,
43
51
  listVersions: () => import_operations.listVersions,
44
52
  patchAgentObject: () => import_operations.patchAgentObject,
53
+ promoteOptimizationCandidate: () => import_operations.promoteOptimizationCandidate,
45
54
  publishToMicrosoft365: () => import_operations.publishToMicrosoft365,
46
55
  stopSession: () => import_operations.stopSession,
47
56
  update: () => import_operations.update,
@@ -54,12 +63,15 @@ var import_operations = require("./operations.js");
54
63
  // Annotate the CommonJS export names for ESM import in node:
55
64
  0 && (module.exports = {
56
65
  $delete,
66
+ cancelOptimizationJob,
57
67
  create,
58
68
  createAgentFromManifest,
59
69
  createAgentVersionFromManifest,
70
+ createOptimizationJob,
60
71
  createSession,
61
72
  createVersion,
62
73
  createVersionFromCode,
74
+ deleteOptimizationJob,
63
75
  deleteSession,
64
76
  deleteSessionFile,
65
77
  deleteVersion,
@@ -67,17 +79,23 @@ var import_operations = require("./operations.js");
67
79
  downloadAgentCode,
68
80
  downloadSessionFile,
69
81
  enable,
82
+ estimateOptimizationJob,
70
83
  get,
71
84
  getMicrosoft365Package,
72
85
  getMicrosoft365PublishDefaults,
86
+ getOptimizationCandidate,
87
+ getOptimizationJob,
73
88
  getSession,
74
89
  getSessionLogStream,
75
90
  getVersion,
76
91
  list,
92
+ listOptimizationCandidates,
93
+ listOptimizationJobs,
77
94
  listSessionFiles,
78
95
  listSessions,
79
96
  listVersions,
80
97
  patchAgentObject,
98
+ promoteOptimizationCandidate,
81
99
  publishToMicrosoft365,
82
100
  stopSession,
83
101
  update,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/api/agents/index.ts"],
4
- "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport {\n deleteSessionFile,\n listSessionFiles,\n downloadSessionFile,\n uploadSessionFile,\n getMicrosoft365PublishDefaults,\n getMicrosoft365Package,\n publishToMicrosoft365,\n getSessionLogStream,\n listSessions,\n stopSession,\n deleteSession,\n getSession,\n createSession,\n disable,\n enable,\n downloadAgentCode,\n createVersionFromCode,\n updateAgentObject,\n patchAgentObject,\n listVersions,\n deleteVersion,\n getVersion,\n createAgentVersionFromManifest,\n createVersion,\n list,\n $delete,\n updateAgentFromManifest,\n createAgentFromManifest,\n update,\n create,\n get,\n} from \"./operations.js\";\nexport type {\n AgentsDeleteSessionFileOptionalParams,\n AgentsListSessionFilesOptionalParams,\n AgentsDownloadSessionFileOptionalParams,\n AgentsUploadSessionFileOptionalParams,\n AgentsListTelephonyCallsOptionalParams,\n AgentsDeleteTelephonyBindingOptionalParams,\n AgentsUpdateTelephonyBindingOptionalParams,\n AgentsGetTelephonyBindingOptionalParams,\n AgentsListTelephonyBindingsOptionalParams,\n AgentsCreateTelephonyBindingOptionalParams,\n GetMicrosoft365PublishDefaultsOptionalParams,\n GetMicrosoft365PackageOptionalParams,\n PublishToMicrosoft365OptionalParams,\n AgentsGetSessionLogStreamOptionalParams,\n AgentsListSessionsOptionalParams,\n AgentsStopSessionOptionalParams,\n AgentsDeleteSessionOptionalParams,\n AgentsGetSessionOptionalParams,\n AgentsCreateSessionOptionalParams,\n AgentsDisableOptionalParams,\n AgentsEnableOptionalParams,\n AgentsDownloadAgentCodeOptionalParams,\n AgentsCreateVersionFromCodeOptionalParams,\n AgentsUpdateAgentObjectOptionalParams,\n AgentsPatchAgentObjectOptionalParams,\n AgentsListVersionsOptionalParams,\n AgentsDeleteVersionOptionalParams,\n AgentsGetVersionOptionalParams,\n AgentsCreateAgentVersionFromManifestOptionalParams,\n AgentsCreateVersionOptionalParams,\n AgentsListOptionalParams,\n AgentsDeleteOptionalParams,\n AgentsUpdateAgentFromManifestOptionalParams,\n AgentsCreateAgentFromManifestOptionalParams,\n AgentsUpdateOptionalParams,\n AgentsCreateOptionalParams,\n AgentsGetOptionalParams,\n} from \"./options.js\";\n"],
5
- "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;AAGA,wBAgCO;",
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport {\n deleteSessionFile,\n listSessionFiles,\n downloadSessionFile,\n uploadSessionFile,\n getMicrosoft365PublishDefaults,\n getMicrosoft365Package,\n publishToMicrosoft365,\n getSessionLogStream,\n listSessions,\n stopSession,\n deleteSession,\n getSession,\n createSession,\n disable,\n enable,\n downloadAgentCode,\n createVersionFromCode,\n updateAgentObject,\n patchAgentObject,\n listVersions,\n deleteVersion,\n getVersion,\n createAgentVersionFromManifest,\n createVersion,\n list,\n $delete,\n updateAgentFromManifest,\n createAgentFromManifest,\n update,\n create,\n get,\n promoteOptimizationCandidate,\n getOptimizationCandidate,\n listOptimizationCandidates,\n deleteOptimizationJob,\n cancelOptimizationJob,\n listOptimizationJobs,\n getOptimizationJob,\n estimateOptimizationJob,\n createOptimizationJob,\n} from \"./operations.js\";\nexport type {\n AgentsDeleteSessionFileOptionalParams,\n AgentsListSessionFilesOptionalParams,\n AgentsDownloadSessionFileOptionalParams,\n AgentsUploadSessionFileOptionalParams,\n AgentsListTelephonyCallsOptionalParams,\n AgentsDeleteTelephonyBindingOptionalParams,\n AgentsUpdateTelephonyBindingOptionalParams,\n AgentsGetTelephonyBindingOptionalParams,\n AgentsListTelephonyBindingsOptionalParams,\n AgentsCreateTelephonyBindingOptionalParams,\n GetMicrosoft365PublishDefaultsOptionalParams,\n GetMicrosoft365PackageOptionalParams,\n PublishToMicrosoft365OptionalParams,\n AgentsGetSessionLogStreamOptionalParams,\n AgentsListSessionsOptionalParams,\n AgentsStopSessionOptionalParams,\n AgentsDeleteSessionOptionalParams,\n AgentsGetSessionOptionalParams,\n AgentsCreateSessionOptionalParams,\n AgentsDisableOptionalParams,\n AgentsEnableOptionalParams,\n AgentsDownloadAgentCodeOptionalParams,\n AgentsCreateVersionFromCodeOptionalParams,\n AgentsUpdateAgentObjectOptionalParams,\n AgentsPatchAgentObjectOptionalParams,\n AgentsListVersionsOptionalParams,\n AgentsDeleteVersionOptionalParams,\n AgentsGetVersionOptionalParams,\n AgentsCreateAgentVersionFromManifestOptionalParams,\n AgentsCreateVersionOptionalParams,\n AgentsListOptionalParams,\n AgentsDeleteOptionalParams,\n AgentsUpdateAgentFromManifestOptionalParams,\n AgentsCreateAgentFromManifestOptionalParams,\n AgentsUpdateOptionalParams,\n AgentsCreateOptionalParams,\n AgentsGetOptionalParams,\n AgentsPromoteOptimizationCandidateOptionalParams,\n AgentsGetOptimizationCandidateOptionalParams,\n AgentsListOptimizationCandidatesOptionalParams,\n AgentsDeleteOptimizationJobOptionalParams,\n AgentsCancelOptimizationJobOptionalParams,\n AgentsListOptimizationJobsOptionalParams,\n AgentsGetOptimizationJobOptionalParams,\n AgentsEstimateOptimizationJobOptionalParams,\n AgentsCreateOptimizationJobOptionalParams,\n} from \"./options.js\";\n"],
5
+ "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;AAGA,wBAyCO;",
6
6
  "names": []
7
7
  }