@mistralai/mistralai 2.2.5 → 2.2.6

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 (617) hide show
  1. package/README.md +49 -2
  2. package/esm/extra/observability/formatting.d.ts +40 -0
  3. package/esm/extra/observability/formatting.d.ts.map +1 -0
  4. package/esm/extra/observability/formatting.js +187 -0
  5. package/esm/extra/observability/formatting.js.map +1 -0
  6. package/esm/extra/observability/index.d.ts +3 -0
  7. package/esm/extra/observability/index.d.ts.map +1 -0
  8. package/esm/extra/observability/index.js +3 -0
  9. package/esm/extra/observability/index.js.map +1 -0
  10. package/esm/extra/observability/otel.d.ts +59 -0
  11. package/esm/extra/observability/otel.d.ts.map +1 -0
  12. package/esm/extra/observability/otel.js +578 -0
  13. package/esm/extra/observability/otel.js.map +1 -0
  14. package/esm/extra/observability/streaming.d.ts +25 -0
  15. package/esm/extra/observability/streaming.d.ts.map +1 -0
  16. package/esm/extra/observability/streaming.js +142 -0
  17. package/esm/extra/observability/streaming.js.map +1 -0
  18. package/esm/funcs/betaConnectorsGetAuthUrl.js +2 -0
  19. package/esm/funcs/betaConnectorsGetAuthUrl.js.map +1 -1
  20. package/esm/funcs/betaObservabilityLogsFetchOptions.d.ts +16 -0
  21. package/esm/funcs/betaObservabilityLogsFetchOptions.d.ts.map +1 -0
  22. package/esm/funcs/betaObservabilityLogsFetchOptions.js +94 -0
  23. package/esm/funcs/betaObservabilityLogsFetchOptions.js.map +1 -0
  24. package/esm/funcs/betaObservabilityLogsList.d.ts +15 -0
  25. package/esm/funcs/betaObservabilityLogsList.d.ts.map +1 -0
  26. package/esm/funcs/betaObservabilityLogsList.js +71 -0
  27. package/esm/funcs/betaObservabilityLogsList.js.map +1 -0
  28. package/esm/funcs/betaObservabilityLogsSearch.d.ts +16 -0
  29. package/esm/funcs/betaObservabilityLogsSearch.d.ts.map +1 -0
  30. package/esm/funcs/betaObservabilityLogsSearch.js +90 -0
  31. package/esm/funcs/betaObservabilityLogsSearch.js.map +1 -0
  32. package/esm/funcs/betaObservabilitySpansFetchSpanEvalFieldOptions.d.ts +16 -0
  33. package/esm/funcs/betaObservabilitySpansFetchSpanEvalFieldOptions.d.ts.map +1 -0
  34. package/esm/funcs/betaObservabilitySpansFetchSpanEvalFieldOptions.js +94 -0
  35. package/esm/funcs/betaObservabilitySpansFetchSpanEvalFieldOptions.js.map +1 -0
  36. package/esm/funcs/betaObservabilitySpansFetchSpanFieldOptions.d.ts +16 -0
  37. package/esm/funcs/betaObservabilitySpansFetchSpanFieldOptions.d.ts.map +1 -0
  38. package/esm/funcs/betaObservabilitySpansFetchSpanFieldOptions.js +94 -0
  39. package/esm/funcs/betaObservabilitySpansFetchSpanFieldOptions.js.map +1 -0
  40. package/esm/funcs/betaObservabilitySpansListSpanEvalFields.d.ts +15 -0
  41. package/esm/funcs/betaObservabilitySpansListSpanEvalFields.d.ts.map +1 -0
  42. package/esm/funcs/betaObservabilitySpansListSpanEvalFields.js +71 -0
  43. package/esm/funcs/betaObservabilitySpansListSpanEvalFields.js.map +1 -0
  44. package/esm/funcs/betaObservabilitySpansListSpanFields.d.ts +15 -0
  45. package/esm/funcs/betaObservabilitySpansListSpanFields.d.ts.map +1 -0
  46. package/esm/funcs/betaObservabilitySpansListSpanFields.js +71 -0
  47. package/esm/funcs/betaObservabilitySpansListSpanFields.js.map +1 -0
  48. package/esm/funcs/betaObservabilitySpansSearchLatestSpanEvaluations.d.ts +16 -0
  49. package/esm/funcs/betaObservabilitySpansSearchLatestSpanEvaluations.d.ts.map +1 -0
  50. package/esm/funcs/betaObservabilitySpansSearchLatestSpanEvaluations.js +93 -0
  51. package/esm/funcs/betaObservabilitySpansSearchLatestSpanEvaluations.js.map +1 -0
  52. package/esm/funcs/betaObservabilitySpansSearchSpanEvaluations.d.ts +16 -0
  53. package/esm/funcs/betaObservabilitySpansSearchSpanEvaluations.d.ts.map +1 -0
  54. package/esm/funcs/betaObservabilitySpansSearchSpanEvaluations.js +93 -0
  55. package/esm/funcs/betaObservabilitySpansSearchSpanEvaluations.js.map +1 -0
  56. package/esm/funcs/betaObservabilitySpansSearchSpans.d.ts +16 -0
  57. package/esm/funcs/betaObservabilitySpansSearchSpans.d.ts.map +1 -0
  58. package/esm/funcs/betaObservabilitySpansSearchSpans.js +90 -0
  59. package/esm/funcs/betaObservabilitySpansSearchSpans.js.map +1 -0
  60. package/esm/funcs/betaObservabilityTracesFetchOptions.d.ts +16 -0
  61. package/esm/funcs/betaObservabilityTracesFetchOptions.d.ts.map +1 -0
  62. package/esm/funcs/betaObservabilityTracesFetchOptions.js +94 -0
  63. package/esm/funcs/betaObservabilityTracesFetchOptions.js.map +1 -0
  64. package/esm/funcs/betaObservabilityTracesGetSpanById.d.ts +16 -0
  65. package/esm/funcs/betaObservabilityTracesGetSpanById.d.ts.map +1 -0
  66. package/esm/funcs/betaObservabilityTracesGetSpanById.js +98 -0
  67. package/esm/funcs/betaObservabilityTracesGetSpanById.js.map +1 -0
  68. package/esm/funcs/betaObservabilityTracesGetTraceById.d.ts +16 -0
  69. package/esm/funcs/betaObservabilityTracesGetTraceById.d.ts.map +1 -0
  70. package/esm/funcs/betaObservabilityTracesGetTraceById.js +89 -0
  71. package/esm/funcs/betaObservabilityTracesGetTraceById.js.map +1 -0
  72. package/esm/funcs/betaObservabilityTracesGetTraceFields.d.ts +15 -0
  73. package/esm/funcs/betaObservabilityTracesGetTraceFields.d.ts.map +1 -0
  74. package/esm/funcs/betaObservabilityTracesGetTraceFields.js +71 -0
  75. package/esm/funcs/betaObservabilityTracesGetTraceFields.js.map +1 -0
  76. package/esm/funcs/betaObservabilityTracesGetTraceSpans.d.ts +16 -0
  77. package/esm/funcs/betaObservabilityTracesGetTraceSpans.d.ts.map +1 -0
  78. package/esm/funcs/betaObservabilityTracesGetTraceSpans.js +96 -0
  79. package/esm/funcs/betaObservabilityTracesGetTraceSpans.js.map +1 -0
  80. package/esm/funcs/betaObservabilityTracesSearch.d.ts +16 -0
  81. package/esm/funcs/betaObservabilityTracesSearch.d.ts.map +1 -0
  82. package/esm/funcs/betaObservabilityTracesSearch.js +91 -0
  83. package/esm/funcs/betaObservabilityTracesSearch.js.map +1 -0
  84. package/esm/funcs/workflowsDeploymentsListDeployments.js +5 -0
  85. package/esm/funcs/workflowsDeploymentsListDeployments.js.map +1 -1
  86. package/esm/funcs/workflowsExecutionsGetWorkflowExecutionLogs.d.ts +24 -0
  87. package/esm/funcs/workflowsExecutionsGetWorkflowExecutionLogs.d.ts.map +1 -0
  88. package/esm/funcs/workflowsExecutionsGetWorkflowExecutionLogs.js +105 -0
  89. package/esm/funcs/workflowsExecutionsGetWorkflowExecutionLogs.js.map +1 -0
  90. package/esm/funcs/workflowsExecutionsStreamWorkflowExecutionLogs.d.ts +22 -0
  91. package/esm/funcs/workflowsExecutionsStreamWorkflowExecutionLogs.d.ts.map +1 -0
  92. package/esm/funcs/workflowsExecutionsStreamWorkflowExecutionLogs.js +110 -0
  93. package/esm/funcs/workflowsExecutionsStreamWorkflowExecutionLogs.js.map +1 -0
  94. package/esm/funcs/workflowsGetWorkflows.js +6 -0
  95. package/esm/funcs/workflowsGetWorkflows.js.map +1 -1
  96. package/esm/funcs/workflowsRunsListRuns.js +7 -0
  97. package/esm/funcs/workflowsRunsListRuns.js.map +1 -1
  98. package/esm/funcs/workflowsSchedulesTriggerSchedule.d.ts +15 -0
  99. package/esm/funcs/workflowsSchedulesTriggerSchedule.d.ts.map +1 -0
  100. package/esm/funcs/workflowsSchedulesTriggerSchedule.js +92 -0
  101. package/esm/funcs/workflowsSchedulesTriggerSchedule.js.map +1 -0
  102. package/esm/hooks/registration.d.ts.map +1 -1
  103. package/esm/hooks/registration.js +6 -0
  104. package/esm/hooks/registration.js.map +1 -1
  105. package/esm/hooks/tracing.d.ts +21 -0
  106. package/esm/hooks/tracing.d.ts.map +1 -0
  107. package/esm/hooks/tracing.js +104 -0
  108. package/esm/hooks/tracing.js.map +1 -0
  109. package/esm/lib/config.d.ts +2 -2
  110. package/esm/lib/config.js +2 -2
  111. package/esm/models/components/authdata.d.ts +2 -2
  112. package/esm/models/components/authdata.d.ts.map +1 -1
  113. package/esm/models/components/authdata.js +1 -1
  114. package/esm/models/components/authdata.js.map +1 -1
  115. package/esm/models/components/authenticationconfiguration.d.ts +2 -0
  116. package/esm/models/components/authenticationconfiguration.d.ts.map +1 -1
  117. package/esm/models/components/authenticationconfiguration.js +2 -0
  118. package/esm/models/components/authenticationconfiguration.js.map +1 -1
  119. package/esm/models/components/authstatus.d.ts +11 -0
  120. package/esm/models/components/authstatus.d.ts.map +1 -0
  121. package/esm/models/components/authstatus.js +13 -0
  122. package/esm/models/components/authstatus.js.map +1 -0
  123. package/esm/models/components/basefielddefinition.d.ts +4 -4
  124. package/esm/models/components/basefielddefinition.d.ts.map +1 -1
  125. package/esm/models/components/basefielddefinition.js +3 -3
  126. package/esm/models/components/basefielddefinition.js.map +1 -1
  127. package/esm/models/components/completiontokensdetails.d.ts +13 -0
  128. package/esm/models/components/completiontokensdetails.d.ts.map +1 -0
  129. package/esm/models/components/completiontokensdetails.js +19 -0
  130. package/esm/models/components/completiontokensdetails.js.map +1 -0
  131. package/esm/models/components/connectioncredentials.d.ts +2 -0
  132. package/esm/models/components/connectioncredentials.d.ts.map +1 -1
  133. package/esm/models/components/connectioncredentials.js +2 -0
  134. package/esm/models/components/connectioncredentials.js.map +1 -1
  135. package/esm/models/components/connectorprotocol.d.ts +0 -2
  136. package/esm/models/components/connectorprotocol.d.ts.map +1 -1
  137. package/esm/models/components/connectorprotocol.js +0 -2
  138. package/esm/models/components/connectorprotocol.js.map +1 -1
  139. package/esm/models/components/createconnectorrequest.d.ts +11 -0
  140. package/esm/models/components/createconnectorrequest.d.ts.map +1 -1
  141. package/esm/models/components/createconnectorrequest.js +6 -0
  142. package/esm/models/components/createconnectorrequest.js.map +1 -1
  143. package/esm/models/components/credentialsstatus.d.ts +15 -0
  144. package/esm/models/components/credentialsstatus.d.ts.map +1 -0
  145. package/esm/models/components/credentialsstatus.js +27 -0
  146. package/esm/models/components/credentialsstatus.js.map +1 -0
  147. package/esm/models/components/deploymentdetailresponse.d.ts +4 -0
  148. package/esm/models/components/deploymentdetailresponse.d.ts.map +1 -1
  149. package/esm/models/components/deploymentdetailresponse.js +2 -0
  150. package/esm/models/components/deploymentdetailresponse.js.map +1 -1
  151. package/esm/models/components/deploymentlistresponse.d.ts +8 -0
  152. package/esm/models/components/deploymentlistresponse.d.ts.map +1 -1
  153. package/esm/models/components/deploymentlistresponse.js +8 -0
  154. package/esm/models/components/deploymentlistresponse.js.map +1 -1
  155. package/esm/models/components/deploymentresponse.d.ts +4 -0
  156. package/esm/models/components/deploymentresponse.d.ts.map +1 -1
  157. package/esm/models/components/deploymentresponse.js +2 -0
  158. package/esm/models/components/deploymentresponse.js.map +1 -1
  159. package/esm/models/components/encodedpayloadoptions.d.ts +1 -0
  160. package/esm/models/components/encodedpayloadoptions.d.ts.map +1 -1
  161. package/esm/models/components/encodedpayloadoptions.js +1 -0
  162. package/esm/models/components/encodedpayloadoptions.js.map +1 -1
  163. package/esm/models/components/executionlogrecord.d.ts +17 -0
  164. package/esm/models/components/executionlogrecord.d.ts.map +1 -0
  165. package/esm/models/components/executionlogrecord.js +27 -0
  166. package/esm/models/components/executionlogrecord.js.map +1 -0
  167. package/esm/models/components/executionlogsearchresponse.d.ts +12 -0
  168. package/esm/models/components/executionlogsearchresponse.d.ts.map +1 -0
  169. package/esm/models/components/executionlogsearchresponse.js +21 -0
  170. package/esm/models/components/executionlogsearchresponse.js.map +1 -0
  171. package/esm/models/components/extendedoauthservermetadata.d.ts +64 -0
  172. package/esm/models/components/extendedoauthservermetadata.d.ts.map +1 -0
  173. package/esm/models/components/extendedoauthservermetadata.js +64 -0
  174. package/esm/models/components/extendedoauthservermetadata.js.map +1 -0
  175. package/esm/models/components/feedresultgetlog.d.ts +13 -0
  176. package/esm/models/components/feedresultgetlog.d.ts.map +1 -0
  177. package/esm/models/components/feedresultgetlog.js +17 -0
  178. package/esm/models/components/feedresultgetlog.js.map +1 -0
  179. package/esm/models/components/feedresultgetspan.d.ts +13 -0
  180. package/esm/models/components/feedresultgetspan.d.ts.map +1 -0
  181. package/esm/models/components/feedresultgetspan.js +17 -0
  182. package/esm/models/components/feedresultgetspan.js.map +1 -0
  183. package/esm/models/components/feedresultgetspanevaluation.d.ts +13 -0
  184. package/esm/models/components/feedresultgetspanevaluation.d.ts.map +1 -0
  185. package/esm/models/components/feedresultgetspanevaluation.js +17 -0
  186. package/esm/models/components/feedresultgetspanevaluation.js.map +1 -0
  187. package/esm/models/components/feedresultgettrace.d.ts +13 -0
  188. package/esm/models/components/feedresultgettrace.d.ts.map +1 -0
  189. package/esm/models/components/feedresultgettrace.js +17 -0
  190. package/esm/models/components/feedresultgettrace.js.map +1 -0
  191. package/esm/models/components/getlog.d.ts +35 -0
  192. package/esm/models/components/getlog.d.ts.map +1 -0
  193. package/esm/models/components/getlog.js +55 -0
  194. package/esm/models/components/getlog.js.map +1 -0
  195. package/esm/models/components/getlogfieldoptions.d.ts +10 -0
  196. package/esm/models/components/getlogfieldoptions.d.ts.map +1 -0
  197. package/esm/models/components/getlogfieldoptions.js +14 -0
  198. package/esm/models/components/getlogfieldoptions.js.map +1 -0
  199. package/esm/models/components/getlogfields.d.ts +11 -0
  200. package/esm/models/components/getlogfields.d.ts.map +1 -0
  201. package/esm/models/components/getlogfields.js +21 -0
  202. package/esm/models/components/getlogfields.js.map +1 -0
  203. package/esm/models/components/getlogs.d.ts +11 -0
  204. package/esm/models/components/getlogs.d.ts.map +1 -0
  205. package/esm/models/components/getlogs.js +15 -0
  206. package/esm/models/components/getlogs.js.map +1 -0
  207. package/esm/models/components/getspan.d.ts +81 -0
  208. package/esm/models/components/getspan.d.ts.map +1 -0
  209. package/esm/models/components/getspan.js +143 -0
  210. package/esm/models/components/getspan.js.map +1 -0
  211. package/esm/models/components/getspanevaluation.d.ts +25 -0
  212. package/esm/models/components/getspanevaluation.d.ts.map +1 -0
  213. package/esm/models/components/getspanevaluation.js +42 -0
  214. package/esm/models/components/getspanevaluation.js.map +1 -0
  215. package/esm/models/components/getspanevaluationfieldoptions.d.ts +10 -0
  216. package/esm/models/components/getspanevaluationfieldoptions.d.ts.map +1 -0
  217. package/esm/models/components/getspanevaluationfieldoptions.js +14 -0
  218. package/esm/models/components/getspanevaluationfieldoptions.js.map +1 -0
  219. package/esm/models/components/getspanevaluationfields.d.ts +11 -0
  220. package/esm/models/components/getspanevaluationfields.d.ts.map +1 -0
  221. package/esm/models/components/getspanevaluationfields.js +20 -0
  222. package/esm/models/components/getspanevaluationfields.js.map +1 -0
  223. package/esm/models/components/getspanevaluations.d.ts +11 -0
  224. package/esm/models/components/getspanevaluations.d.ts.map +1 -0
  225. package/esm/models/components/getspanevaluations.js +20 -0
  226. package/esm/models/components/getspanevaluations.js.map +1 -0
  227. package/esm/models/components/getspanfieldoptions.d.ts +10 -0
  228. package/esm/models/components/getspanfieldoptions.d.ts.map +1 -0
  229. package/esm/models/components/getspanfieldoptions.js +14 -0
  230. package/esm/models/components/getspanfieldoptions.js.map +1 -0
  231. package/esm/models/components/getspanfields.d.ts +11 -0
  232. package/esm/models/components/getspanfields.d.ts.map +1 -0
  233. package/esm/models/components/getspanfields.js +21 -0
  234. package/esm/models/components/getspanfields.js.map +1 -0
  235. package/esm/models/components/getspans.d.ts +11 -0
  236. package/esm/models/components/getspans.d.ts.map +1 -0
  237. package/esm/models/components/getspans.js +15 -0
  238. package/esm/models/components/getspans.js.map +1 -0
  239. package/esm/models/components/gettrace.d.ts +51 -0
  240. package/esm/models/components/gettrace.d.ts.map +1 -0
  241. package/esm/models/components/gettrace.js +91 -0
  242. package/esm/models/components/gettrace.js.map +1 -0
  243. package/esm/models/components/gettracefieldoptions.d.ts +10 -0
  244. package/esm/models/components/gettracefieldoptions.d.ts.map +1 -0
  245. package/esm/models/components/gettracefieldoptions.js +14 -0
  246. package/esm/models/components/gettracefieldoptions.js.map +1 -0
  247. package/esm/models/components/gettracefields.d.ts +11 -0
  248. package/esm/models/components/gettracefields.d.ts.map +1 -0
  249. package/esm/models/components/gettracefields.js +20 -0
  250. package/esm/models/components/gettracefields.js.map +1 -0
  251. package/esm/models/components/gettraces.d.ts +11 -0
  252. package/esm/models/components/gettraces.d.ts.map +1 -0
  253. package/esm/models/components/gettraces.js +15 -0
  254. package/esm/models/components/gettraces.js.map +1 -0
  255. package/esm/models/components/httpstatus.d.ts +112 -0
  256. package/esm/models/components/httpstatus.d.ts.map +1 -0
  257. package/esm/models/components/httpstatus.js +93 -0
  258. package/esm/models/components/httpstatus.js.map +1 -0
  259. package/esm/models/components/index.d.ts +39 -1
  260. package/esm/models/components/index.d.ts.map +1 -1
  261. package/esm/models/components/index.js +39 -1
  262. package/esm/models/components/index.js.map +1 -1
  263. package/esm/models/components/logsrequest.d.ts +22 -0
  264. package/esm/models/components/logsrequest.d.ts.map +1 -0
  265. package/esm/models/components/logsrequest.js +25 -0
  266. package/esm/models/components/logsrequest.js.map +1 -0
  267. package/esm/models/components/mcpservercard.d.ts +3 -3
  268. package/esm/models/components/mcpservercard.d.ts.map +1 -1
  269. package/esm/models/components/mcpservercard.js +3 -3
  270. package/esm/models/components/mcpservercard.js.map +1 -1
  271. package/esm/models/components/mcpservercardtool.d.ts +27 -0
  272. package/esm/models/components/mcpservercardtool.d.ts.map +1 -0
  273. package/esm/models/components/mcpservercardtool.js +31 -0
  274. package/esm/models/components/mcpservercardtool.js.map +1 -0
  275. package/esm/models/components/mcptoolmeta.d.ts +11 -16
  276. package/esm/models/components/mcptoolmeta.d.ts.map +1 -1
  277. package/esm/models/components/mcptoolmeta.js +5 -13
  278. package/esm/models/components/mcptoolmeta.js.map +1 -1
  279. package/esm/models/components/mcpuitoolmeta.d.ts +23 -0
  280. package/esm/models/components/mcpuitoolmeta.d.ts.map +1 -0
  281. package/esm/models/components/mcpuitoolmeta.js +23 -0
  282. package/esm/models/components/mcpuitoolmeta.js.map +1 -0
  283. package/esm/models/components/observabilityerrorcode.d.ts +0 -1
  284. package/esm/models/components/observabilityerrorcode.d.ts.map +1 -1
  285. package/esm/models/components/observabilityerrorcode.js +0 -1
  286. package/esm/models/components/observabilityerrorcode.js.map +1 -1
  287. package/esm/models/components/otelfielddefinition.d.ts +57 -0
  288. package/esm/models/components/otelfielddefinition.d.ts.map +1 -0
  289. package/esm/models/components/otelfielddefinition.js +64 -0
  290. package/esm/models/components/otelfielddefinition.js.map +1 -0
  291. package/esm/models/components/outboundauthenticationtype.d.ts +2 -0
  292. package/esm/models/components/outboundauthenticationtype.d.ts.map +1 -1
  293. package/esm/models/components/outboundauthenticationtype.js +2 -0
  294. package/esm/models/components/outboundauthenticationtype.js.map +1 -1
  295. package/esm/models/components/prompttokensdetails.d.ts +1 -0
  296. package/esm/models/components/prompttokensdetails.d.ts.map +1 -1
  297. package/esm/models/components/prompttokensdetails.js +2 -0
  298. package/esm/models/components/prompttokensdetails.js.map +1 -1
  299. package/esm/models/components/reasoningeffort.d.ts +4 -0
  300. package/esm/models/components/reasoningeffort.d.ts.map +1 -1
  301. package/esm/models/components/reasoningeffort.js +4 -0
  302. package/esm/models/components/reasoningeffort.js.map +1 -1
  303. package/esm/models/components/spanevaluationsrequest.d.ts +12 -0
  304. package/esm/models/components/spanevaluationsrequest.d.ts.map +1 -0
  305. package/esm/models/components/spanevaluationsrequest.js +18 -0
  306. package/esm/models/components/spanevaluationsrequest.js.map +1 -0
  307. package/esm/models/components/spansrequest.d.ts +12 -0
  308. package/esm/models/components/spansrequest.d.ts.map +1 -0
  309. package/esm/models/components/spansrequest.js +18 -0
  310. package/esm/models/components/spansrequest.js.map +1 -0
  311. package/esm/models/components/streamerror.d.ts +10 -0
  312. package/esm/models/components/streamerror.d.ts.map +1 -0
  313. package/esm/models/components/streamerror.js +15 -0
  314. package/esm/models/components/streamerror.js.map +1 -0
  315. package/esm/models/components/tooltype.d.ts +12 -0
  316. package/esm/models/components/tooltype.d.ts.map +1 -0
  317. package/esm/models/components/tooltype.js +15 -0
  318. package/esm/models/components/tooltype.js.map +1 -0
  319. package/esm/models/components/tracesrequest.d.ts +12 -0
  320. package/esm/models/components/tracesrequest.d.ts.map +1 -0
  321. package/esm/models/components/tracesrequest.js +18 -0
  322. package/esm/models/components/tracesrequest.js.map +1 -0
  323. package/esm/models/components/turbinetoollocale.d.ts +24 -0
  324. package/esm/models/components/turbinetoollocale.d.ts.map +1 -0
  325. package/esm/models/components/turbinetoollocale.js +25 -0
  326. package/esm/models/components/turbinetoollocale.js.map +1 -0
  327. package/esm/models/components/turbinetoolmeta.d.ts +15 -0
  328. package/esm/models/components/turbinetoolmeta.d.ts.map +1 -0
  329. package/esm/models/components/turbinetoolmeta.js +25 -0
  330. package/esm/models/components/turbinetoolmeta.js.map +1 -0
  331. package/esm/models/components/updateconnectorrequest.d.ts +2 -6
  332. package/esm/models/components/updateconnectorrequest.d.ts.map +1 -1
  333. package/esm/models/components/updateconnectorrequest.js +1 -2
  334. package/esm/models/components/updateconnectorrequest.js.map +1 -1
  335. package/esm/models/components/usageinfodollardefs.d.ts +2 -0
  336. package/esm/models/components/usageinfodollardefs.d.ts.map +1 -1
  337. package/esm/models/components/usageinfodollardefs.js +4 -0
  338. package/esm/models/components/usageinfodollardefs.js.map +1 -1
  339. package/esm/models/components/voicecreaterequest.d.ts +0 -3
  340. package/esm/models/components/voicecreaterequest.d.ts.map +1 -1
  341. package/esm/models/components/voicecreaterequest.js +0 -2
  342. package/esm/models/components/voicecreaterequest.js.map +1 -1
  343. package/esm/models/components/voiceresponse.d.ts +1 -2
  344. package/esm/models/components/voiceresponse.d.ts.map +1 -1
  345. package/esm/models/components/voiceresponse.js +2 -2
  346. package/esm/models/components/voiceresponse.js.map +1 -1
  347. package/esm/models/components/voiceupdaterequest.d.ts +0 -3
  348. package/esm/models/components/voiceupdaterequest.d.ts.map +1 -1
  349. package/esm/models/components/voiceupdaterequest.js +0 -2
  350. package/esm/models/components/voiceupdaterequest.js.map +1 -1
  351. package/esm/models/components/workflow.d.ts +4 -4
  352. package/esm/models/components/workflow.d.ts.map +1 -1
  353. package/esm/models/components/workflow.js +1 -2
  354. package/esm/models/components/workflow.js.map +1 -1
  355. package/esm/models/components/workflowbasicdefinition.d.ts +4 -0
  356. package/esm/models/components/workflowbasicdefinition.d.ts.map +1 -1
  357. package/esm/models/components/workflowbasicdefinition.js +1 -0
  358. package/esm/models/components/workflowbasicdefinition.js.map +1 -1
  359. package/esm/models/components/workflowcodedefinition.d.ts +4 -0
  360. package/esm/models/components/workflowcodedefinition.d.ts.map +1 -1
  361. package/esm/models/components/workflowcodedefinition.js +2 -0
  362. package/esm/models/components/workflowcodedefinition.js.map +1 -1
  363. package/esm/models/components/workflowscheduletriggerrequest.d.ts +16 -0
  364. package/esm/models/components/workflowscheduletriggerrequest.d.ts.map +1 -0
  365. package/esm/models/components/workflowscheduletriggerrequest.js +14 -0
  366. package/esm/models/components/workflowscheduletriggerrequest.js.map +1 -0
  367. package/esm/models/components/workflowupdaterequest.d.ts +5 -0
  368. package/esm/models/components/workflowupdaterequest.d.ts.map +1 -1
  369. package/esm/models/components/workflowupdaterequest.js +1 -0
  370. package/esm/models/components/workflowupdaterequest.js.map +1 -1
  371. package/esm/models/components/workflowwithworkerstatus.d.ts +4 -4
  372. package/esm/models/components/workflowwithworkerstatus.d.ts.map +1 -1
  373. package/esm/models/components/workflowwithworkerstatus.js +1 -2
  374. package/esm/models/components/workflowwithworkerstatus.js.map +1 -1
  375. package/esm/models/operations/connectorgetauthurlv1.d.ts +11 -0
  376. package/esm/models/operations/connectorgetauthurlv1.d.ts.map +1 -1
  377. package/esm/models/operations/connectorgetauthurlv1.js +5 -0
  378. package/esm/models/operations/connectorgetauthurlv1.js.map +1 -1
  379. package/esm/models/operations/getlogfieldoptionsv1observabilitylogsfieldsfieldnameoptionsget.d.ts +16 -0
  380. package/esm/models/operations/getlogfieldoptionsv1observabilitylogsfieldsfieldnameoptionsget.d.ts.map +1 -0
  381. package/esm/models/operations/getlogfieldoptionsv1observabilitylogsfieldsfieldnameoptionsget.js +21 -0
  382. package/esm/models/operations/getlogfieldoptionsv1observabilitylogsfieldsfieldnameoptionsget.js.map +1 -0
  383. package/esm/models/operations/getspanbyidv1observabilitytracestraceidspansspanidget.d.ts +18 -0
  384. package/esm/models/operations/getspanbyidv1observabilitytracestraceidspansspanidget.d.ts.map +1 -0
  385. package/esm/models/operations/getspanbyidv1observabilitytracestraceidspansspanidget.js +23 -0
  386. package/esm/models/operations/getspanbyidv1observabilitytracestraceidspansspanidget.js.map +1 -0
  387. package/esm/models/operations/getspanevaluationfieldoptionsv1observabilityspansevaluationsfieldsfieldnameoptionsget.d.ts +16 -0
  388. package/esm/models/operations/getspanevaluationfieldoptionsv1observabilityspansevaluationsfieldsfieldnameoptionsget.d.ts.map +1 -0
  389. package/esm/models/operations/getspanevaluationfieldoptionsv1observabilityspansevaluationsfieldsfieldnameoptionsget.js +21 -0
  390. package/esm/models/operations/getspanevaluationfieldoptionsv1observabilityspansevaluationsfieldsfieldnameoptionsget.js.map +1 -0
  391. package/esm/models/operations/getspanfieldoptionsv1observabilityspansfieldsfieldnameoptionsget.d.ts +16 -0
  392. package/esm/models/operations/getspanfieldoptionsv1observabilityspansfieldsfieldnameoptionsget.d.ts.map +1 -0
  393. package/esm/models/operations/getspanfieldoptionsv1observabilityspansfieldsfieldnameoptionsget.js +21 -0
  394. package/esm/models/operations/getspanfieldoptionsv1observabilityspansfieldsfieldnameoptionsget.js.map +1 -0
  395. package/esm/models/operations/gettracebyidv1observabilitytracestraceidget.d.ts +12 -0
  396. package/esm/models/operations/gettracebyidv1observabilitytracestraceidget.d.ts.map +1 -0
  397. package/esm/models/operations/gettracebyidv1observabilitytracestraceidget.js +18 -0
  398. package/esm/models/operations/gettracebyidv1observabilitytracestraceidget.js.map +1 -0
  399. package/esm/models/operations/gettracefieldoptionsv1observabilitytracesfieldsfieldnameoptionsget.d.ts +16 -0
  400. package/esm/models/operations/gettracefieldoptionsv1observabilitytracesfieldsfieldnameoptionsget.d.ts.map +1 -0
  401. package/esm/models/operations/gettracefieldoptionsv1observabilitytracesfieldsfieldnameoptionsget.js +21 -0
  402. package/esm/models/operations/gettracefieldoptionsv1observabilitytracesfieldsfieldnameoptionsget.js.map +1 -0
  403. package/esm/models/operations/gettracespansv1observabilitytracestraceidspansget.d.ts +20 -0
  404. package/esm/models/operations/gettracespansv1observabilitytracestraceidspansget.d.ts.map +1 -0
  405. package/esm/models/operations/gettracespansv1observabilitytracestraceidspansget.js +24 -0
  406. package/esm/models/operations/gettracespansv1observabilitytracestraceidspansget.js.map +1 -0
  407. package/esm/models/operations/getworkflowexecutionlogs.d.ts +61 -0
  408. package/esm/models/operations/getworkflowexecutionlogs.d.ts.map +1 -0
  409. package/esm/models/operations/getworkflowexecutionlogs.js +36 -0
  410. package/esm/models/operations/getworkflowexecutionlogs.js.map +1 -0
  411. package/esm/models/operations/getworkflowsv1workflowsget.d.ts +71 -3
  412. package/esm/models/operations/getworkflowsv1workflowsget.d.ts.map +1 -1
  413. package/esm/models/operations/getworkflowsv1workflowsget.js +41 -2
  414. package/esm/models/operations/getworkflowsv1workflowsget.js.map +1 -1
  415. package/esm/models/operations/index.d.ts +15 -0
  416. package/esm/models/operations/index.d.ts.map +1 -1
  417. package/esm/models/operations/index.js +15 -0
  418. package/esm/models/operations/index.js.map +1 -1
  419. package/esm/models/operations/listdeploymentsv1workflowsdeploymentsget.d.ts +25 -0
  420. package/esm/models/operations/listdeploymentsv1workflowsdeploymentsget.d.ts.map +1 -1
  421. package/esm/models/operations/listdeploymentsv1workflowsdeploymentsget.js +7 -0
  422. package/esm/models/operations/listdeploymentsv1workflowsdeploymentsget.js.map +1 -1
  423. package/esm/models/operations/listrunsv1workflowsrunsget.d.ts +63 -1
  424. package/esm/models/operations/listrunsv1workflowsrunsget.d.ts.map +1 -1
  425. package/esm/models/operations/listrunsv1workflowsrunsget.js +34 -0
  426. package/esm/models/operations/listrunsv1workflowsrunsget.js.map +1 -1
  427. package/esm/models/operations/searchlatestspanevaluationsv1observabilityspansevaluationssearchlatestpost.d.ts +21 -0
  428. package/esm/models/operations/searchlatestspanevaluationsv1observabilityspansevaluationssearchlatestpost.d.ts.map +1 -0
  429. package/esm/models/operations/searchlatestspanevaluationsv1observabilityspansevaluationssearchlatestpost.js +25 -0
  430. package/esm/models/operations/searchlatestspanevaluationsv1observabilityspansevaluationssearchlatestpost.js.map +1 -0
  431. package/esm/models/operations/searchlogsv1observabilitylogssearchpost.d.ts +21 -0
  432. package/esm/models/operations/searchlogsv1observabilitylogssearchpost.d.ts.map +1 -0
  433. package/esm/models/operations/searchlogsv1observabilitylogssearchpost.js +24 -0
  434. package/esm/models/operations/searchlogsv1observabilitylogssearchpost.js.map +1 -0
  435. package/esm/models/operations/searchspanevaluationsv1observabilityspansevaluationssearchpost.d.ts +21 -0
  436. package/esm/models/operations/searchspanevaluationsv1observabilityspansevaluationssearchpost.d.ts.map +1 -0
  437. package/esm/models/operations/searchspanevaluationsv1observabilityspansevaluationssearchpost.js +25 -0
  438. package/esm/models/operations/searchspanevaluationsv1observabilityspansevaluationssearchpost.js.map +1 -0
  439. package/esm/models/operations/searchspansv1observabilityspanssearchpost.d.ts +21 -0
  440. package/esm/models/operations/searchspansv1observabilityspanssearchpost.d.ts.map +1 -0
  441. package/esm/models/operations/searchspansv1observabilityspanssearchpost.js +24 -0
  442. package/esm/models/operations/searchspansv1observabilityspanssearchpost.js.map +1 -0
  443. package/esm/models/operations/searchtracesv1observabilitytracessearchpost.d.ts +21 -0
  444. package/esm/models/operations/searchtracesv1observabilitytracessearchpost.d.ts.map +1 -0
  445. package/esm/models/operations/searchtracesv1observabilitytracessearchpost.js +24 -0
  446. package/esm/models/operations/searchtracesv1observabilitytracessearchpost.js.map +1 -0
  447. package/esm/models/operations/speechv1audiospeechpost.d.ts +3 -3
  448. package/esm/models/operations/speechv1audiospeechpost.d.ts.map +1 -1
  449. package/esm/models/operations/speechv1audiospeechpost.js +3 -3
  450. package/esm/models/operations/speechv1audiospeechpost.js.map +1 -1
  451. package/esm/models/operations/streamworkflowexecutionlogs.d.ts +58 -0
  452. package/esm/models/operations/streamworkflowexecutionlogs.d.ts.map +1 -0
  453. package/esm/models/operations/streamworkflowexecutionlogs.js +70 -0
  454. package/esm/models/operations/streamworkflowexecutionlogs.js.map +1 -0
  455. package/esm/models/operations/triggerschedulev1workflowsschedulesscheduleidtriggerpost.d.ts +15 -0
  456. package/esm/models/operations/triggerschedulev1workflowsschedulesscheduleidtriggerpost.d.ts.map +1 -0
  457. package/esm/models/operations/triggerschedulev1workflowsschedulesscheduleidtriggerpost.js +22 -0
  458. package/esm/models/operations/triggerschedulev1workflowsschedulesscheduleidtriggerpost.js.map +1 -0
  459. package/esm/sdk/executions.d.ts +22 -0
  460. package/esm/sdk/executions.d.ts.map +1 -1
  461. package/esm/sdk/executions.js +28 -0
  462. package/esm/sdk/executions.js.map +1 -1
  463. package/esm/sdk/logs.d.ts +18 -0
  464. package/esm/sdk/logs.d.ts.map +1 -0
  465. package/esm/sdk/logs.js +30 -0
  466. package/esm/sdk/logs.js.map +1 -0
  467. package/esm/sdk/observability.d.ts +9 -0
  468. package/esm/sdk/observability.d.ts.map +1 -1
  469. package/esm/sdk/observability.js +15 -0
  470. package/esm/sdk/observability.js.map +1 -1
  471. package/esm/sdk/schedules.d.ts +4 -0
  472. package/esm/sdk/schedules.d.ts.map +1 -1
  473. package/esm/sdk/schedules.js +7 -0
  474. package/esm/sdk/schedules.js.map +1 -1
  475. package/esm/sdk/spans.d.ts +34 -0
  476. package/esm/sdk/spans.d.ts.map +1 -0
  477. package/esm/sdk/spans.js +58 -0
  478. package/esm/sdk/spans.js.map +1 -0
  479. package/esm/sdk/traces.d.ts +30 -0
  480. package/esm/sdk/traces.d.ts.map +1 -0
  481. package/esm/sdk/traces.js +51 -0
  482. package/esm/sdk/traces.js.map +1 -0
  483. package/jsr.json +1 -1
  484. package/package.json +21 -1
  485. package/src/extra/observability/formatting.ts +194 -0
  486. package/src/extra/observability/index.ts +2 -0
  487. package/src/extra/observability/otel.ts +750 -0
  488. package/src/extra/observability/streaming.ts +174 -0
  489. package/src/funcs/betaConnectorsGetAuthUrl.ts +2 -0
  490. package/src/funcs/betaObservabilityLogsFetchOptions.ts +192 -0
  491. package/src/funcs/betaObservabilityLogsList.ts +154 -0
  492. package/src/funcs/betaObservabilityLogsSearch.ts +183 -0
  493. package/src/funcs/betaObservabilitySpansFetchSpanEvalFieldOptions.ts +192 -0
  494. package/src/funcs/betaObservabilitySpansFetchSpanFieldOptions.ts +192 -0
  495. package/src/funcs/betaObservabilitySpansListSpanEvalFields.ts +155 -0
  496. package/src/funcs/betaObservabilitySpansListSpanFields.ts +154 -0
  497. package/src/funcs/betaObservabilitySpansSearchLatestSpanEvaluations.ts +191 -0
  498. package/src/funcs/betaObservabilitySpansSearchSpanEvaluations.ts +189 -0
  499. package/src/funcs/betaObservabilitySpansSearchSpans.ts +183 -0
  500. package/src/funcs/betaObservabilityTracesFetchOptions.ts +192 -0
  501. package/src/funcs/betaObservabilityTracesGetSpanById.ts +196 -0
  502. package/src/funcs/betaObservabilityTracesGetTraceById.ts +181 -0
  503. package/src/funcs/betaObservabilityTracesGetTraceFields.ts +154 -0
  504. package/src/funcs/betaObservabilityTracesGetTraceSpans.ts +191 -0
  505. package/src/funcs/betaObservabilityTracesSearch.ts +184 -0
  506. package/src/funcs/workflowsDeploymentsListDeployments.ts +5 -0
  507. package/src/funcs/workflowsExecutionsGetWorkflowExecutionLogs.ts +197 -0
  508. package/src/funcs/workflowsExecutionsStreamWorkflowExecutionLogs.ts +207 -0
  509. package/src/funcs/workflowsGetWorkflows.ts +6 -0
  510. package/src/funcs/workflowsRunsListRuns.ts +7 -0
  511. package/src/funcs/workflowsSchedulesTriggerSchedule.ts +186 -0
  512. package/src/hooks/registration.ts +6 -0
  513. package/src/hooks/tracing.ts +173 -0
  514. package/src/lib/config.ts +2 -2
  515. package/src/models/components/authdata.ts +3 -3
  516. package/src/models/components/authenticationconfiguration.ts +6 -0
  517. package/src/models/components/authstatus.ts +19 -0
  518. package/src/models/components/basefielddefinition.ts +11 -7
  519. package/src/models/components/completiontokensdetails.ts +39 -0
  520. package/src/models/components/connectioncredentials.ts +4 -0
  521. package/src/models/components/connectorprotocol.ts +0 -5
  522. package/src/models/components/createconnectorrequest.ts +23 -0
  523. package/src/models/components/credentialsstatus.ts +49 -0
  524. package/src/models/components/deploymentdetailresponse.ts +6 -0
  525. package/src/models/components/deploymentlistresponse.ts +16 -0
  526. package/src/models/components/deploymentresponse.ts +6 -0
  527. package/src/models/components/encodedpayloadoptions.ts +1 -0
  528. package/src/models/components/executionlogrecord.ts +49 -0
  529. package/src/models/components/executionlogsearchresponse.ts +42 -0
  530. package/src/models/components/extendedoauthservermetadata.ts +163 -0
  531. package/src/models/components/feedresultgetlog.ts +36 -0
  532. package/src/models/components/feedresultgetspan.ts +36 -0
  533. package/src/models/components/feedresultgetspanevaluation.ts +39 -0
  534. package/src/models/components/feedresultgettrace.ts +36 -0
  535. package/src/models/components/getlog.ts +88 -0
  536. package/src/models/components/getlogfieldoptions.ts +31 -0
  537. package/src/models/components/getlogfields.ts +38 -0
  538. package/src/models/components/getlogs.ts +32 -0
  539. package/src/models/components/getspan.ts +222 -0
  540. package/src/models/components/getspanevaluation.ts +72 -0
  541. package/src/models/components/getspanevaluationfieldoptions.ts +31 -0
  542. package/src/models/components/getspanevaluationfields.ts +40 -0
  543. package/src/models/components/getspanevaluations.ts +40 -0
  544. package/src/models/components/getspanfieldoptions.ts +31 -0
  545. package/src/models/components/getspanfields.ts +38 -0
  546. package/src/models/components/getspans.ts +32 -0
  547. package/src/models/components/gettrace.ts +145 -0
  548. package/src/models/components/gettracefieldoptions.ts +31 -0
  549. package/src/models/components/gettracefields.ts +38 -0
  550. package/src/models/components/gettraces.ts +32 -0
  551. package/src/models/components/httpstatus.ts +120 -0
  552. package/src/models/components/index.ts +39 -1
  553. package/src/models/components/logsrequest.ts +45 -0
  554. package/src/models/components/mcpservercard.ts +8 -5
  555. package/src/models/components/mcpservercardtool.ts +60 -0
  556. package/src/models/components/mcptoolmeta.ts +16 -24
  557. package/src/models/components/mcpuitoolmeta.ts +47 -0
  558. package/src/models/components/observabilityerrorcode.ts +0 -1
  559. package/src/models/components/otelfielddefinition.ts +102 -0
  560. package/src/models/components/outboundauthenticationtype.ts +2 -0
  561. package/src/models/components/prompttokensdetails.ts +3 -0
  562. package/src/models/components/reasoningeffort.ts +4 -0
  563. package/src/models/components/spanevaluationsrequest.ts +36 -0
  564. package/src/models/components/spansrequest.ts +32 -0
  565. package/src/models/components/streamerror.ts +29 -0
  566. package/src/models/components/tooltype.ts +20 -0
  567. package/src/models/components/tracesrequest.ts +32 -0
  568. package/src/models/components/turbinetoollocale.ts +46 -0
  569. package/src/models/components/turbinetoolmeta.ts +48 -0
  570. package/src/models/components/updateconnectorrequest.ts +3 -10
  571. package/src/models/components/usageinfodollardefs.ts +8 -0
  572. package/src/models/components/voicecreaterequest.ts +0 -8
  573. package/src/models/components/voiceresponse.ts +3 -6
  574. package/src/models/components/voiceupdaterequest.ts +0 -8
  575. package/src/models/components/workflow.ts +5 -6
  576. package/src/models/components/workflowbasicdefinition.ts +5 -0
  577. package/src/models/components/workflowcodedefinition.ts +6 -0
  578. package/src/models/components/workflowscheduletriggerrequest.ts +40 -0
  579. package/src/models/components/workflowupdaterequest.ts +6 -0
  580. package/src/models/components/workflowwithworkerstatus.ts +5 -6
  581. package/src/models/operations/connectorgetauthurlv1.ts +15 -0
  582. package/src/models/operations/getlogfieldoptionsv1observabilitylogsfieldsfieldnameoptionsget.ts +49 -0
  583. package/src/models/operations/getspanbyidv1observabilitytracestraceidspansspanidget.ts +50 -0
  584. package/src/models/operations/getspanevaluationfieldoptionsv1observabilityspansevaluationsfieldsfieldnameoptionsget.ts +49 -0
  585. package/src/models/operations/getspanfieldoptionsv1observabilityspansfieldsfieldnameoptionsget.ts +49 -0
  586. package/src/models/operations/gettracebyidv1observabilitytracestraceidget.ts +40 -0
  587. package/src/models/operations/gettracefieldoptionsv1observabilitytracesfieldsfieldnameoptionsget.ts +49 -0
  588. package/src/models/operations/gettracespansv1observabilitytracestraceidspansget.ts +53 -0
  589. package/src/models/operations/getworkflowexecutionlogs.ts +102 -0
  590. package/src/models/operations/getworkflowsv1workflowsget.ts +122 -5
  591. package/src/models/operations/index.ts +15 -0
  592. package/src/models/operations/listdeploymentsv1workflowsdeploymentsget.ts +32 -0
  593. package/src/models/operations/listrunsv1workflowsrunsget.ts +87 -1
  594. package/src/models/operations/searchlatestspanevaluationsv1observabilityspansevaluationssearchlatestpost.ts +57 -0
  595. package/src/models/operations/searchlogsv1observabilitylogssearchpost.ts +54 -0
  596. package/src/models/operations/searchspanevaluationsv1observabilityspansevaluationssearchpost.ts +57 -0
  597. package/src/models/operations/searchspansv1observabilityspanssearchpost.ts +54 -0
  598. package/src/models/operations/searchtracesv1observabilitytracessearchpost.ts +54 -0
  599. package/src/models/operations/speechv1audiospeechpost.ts +12 -12
  600. package/src/models/operations/streamworkflowexecutionlogs.ts +157 -0
  601. package/src/models/operations/triggerschedulev1workflowsschedulesscheduleidtriggerpost.ts +53 -0
  602. package/src/sdk/executions.ts +44 -0
  603. package/src/sdk/logs.ts +55 -0
  604. package/src/sdk/observability.ts +18 -0
  605. package/src/sdk/schedules.ts +16 -0
  606. package/src/sdk/spans.ts +116 -0
  607. package/src/sdk/traces.ts +102 -0
  608. package/tests/extra/observability/customProvider.test.ts +98 -0
  609. package/tests/extra/observability/formatting.test.ts +111 -0
  610. package/tests/extra/observability/helpers.ts +62 -0
  611. package/tests/extra/observability/otel.test.ts +453 -0
  612. package/tests/extra/observability/streaming.test.ts +94 -0
  613. package/esm/models/components/voiceappearance.d.ts +0 -23
  614. package/esm/models/components/voiceappearance.d.ts.map +0 -1
  615. package/esm/models/components/voiceappearance.js +0 -42
  616. package/esm/models/components/voiceappearance.js.map +0 -1
  617. package/src/models/components/voiceappearance.ts +0 -75
@@ -0,0 +1,750 @@
1
+ /**
2
+ * OTEL conventions for gen AI may be found at:
3
+ *
4
+ * https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/
5
+ * https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-agent-spans/
6
+ */
7
+
8
+ import {
9
+ context as contextApi,
10
+ propagation,
11
+ trace,
12
+ type Context,
13
+ type Span,
14
+ type Tracer,
15
+ type TracerProvider,
16
+ SpanStatusCode,
17
+ } from "@opentelemetry/api";
18
+ import * as semConvAttributes from "@opentelemetry/semantic-conventions/incubating";
19
+
20
+ import {
21
+ formatInputMessage,
22
+ formatOutputMessage,
23
+ formatToolDefinition,
24
+ } from "./formatting.js";
25
+ import { accumulateChunksToResponseDict, parseSseChunks } from "./streaming.js";
26
+
27
+ export type { Context, Span, Tracer };
28
+ export { semConvAttributes };
29
+
30
+ export const OTEL_SERVICE_NAME = "mistralai_sdk";
31
+ export const MISTRAL_SDK_OTEL_TRACER_NAME = `${OTEL_SERVICE_NAME}_tracer`;
32
+ const MISTRAL_AGENT_TRACE_PUBLIC_ATTRIBUTE = "agent.trace.public";
33
+ let registeredTracerProvider: TracerProvider | undefined;
34
+
35
+ /**
36
+ * Route SDK tracing spans to a specific OpenTelemetry tracer provider.
37
+ */
38
+ export function registerTracerProvider(tracerProvider?: TracerProvider): void {
39
+ registeredTracerProvider = tracerProvider;
40
+ }
41
+
42
+ // Safe check for environment variable in both Node.js and browser
43
+ const getDebugTracing = (): boolean => {
44
+ try {
45
+ if (typeof globalThis !== "undefined" && "process" in globalThis) {
46
+ const proc = (globalThis as { process?: { env?: Record<string, string> } }).process;
47
+ return proc?.env?.["MISTRAL_SDK_DEBUG_TRACING"]?.toLowerCase() === "true";
48
+ }
49
+ } catch {
50
+ // Ignore
51
+ }
52
+ return false;
53
+ };
54
+ const MISTRAL_SDK_DEBUG_TRACING = getDebugTracing();
55
+ const DEBUG_HINT = "To see detailed tracing logs, set MISTRAL_SDK_DEBUG_TRACING=true.";
56
+
57
+ export const MistralAIAttributes = {
58
+ MISTRAL_AI_OCR_USAGE_PAGES_PROCESSED: "mistral_ai.ocr.usage.pages_processed",
59
+ MISTRAL_AI_OCR_USAGE_DOC_SIZE_BYTES: "mistral_ai.ocr.usage.doc_size_bytes",
60
+ MISTRAL_AI_ERROR_CODE: "mistral_ai.error.code",
61
+ } as const;
62
+
63
+ export const TracingErrors = {
64
+ FAILED_TO_CREATE_SPAN_FOR_REQUEST: "Failed to create span for request.",
65
+ FAILED_TO_ENRICH_SPAN_WITH_RESPONSE: "Failed to enrich span with response.",
66
+ FAILED_TO_HANDLE_ERROR_IN_SPAN: "Failed to handle error in span.",
67
+ FAILED_TO_END_SPAN: "Failed to end span.",
68
+ } as const;
69
+
70
+ function parseTimeToMillis(ts: string): number {
71
+ return new Date(ts).getTime();
72
+ }
73
+
74
+ function inferGenAiOperationName(operationId: string): string | null {
75
+ if (operationId.includes("chat_completion") || operationId === "stream_chat") {
76
+ return semConvAttributes.GEN_AI_OPERATION_NAME_VALUE_CHAT;
77
+ }
78
+ if (
79
+ (operationId.includes("agents_create") || operationId.includes("agents_update")) &&
80
+ !operationId.includes("alias")
81
+ ) {
82
+ return semConvAttributes.GEN_AI_OPERATION_NAME_VALUE_CREATE_AGENT;
83
+ }
84
+ if (operationId.includes("agents_completion") || operationId === "stream_agents") {
85
+ return semConvAttributes.GEN_AI_OPERATION_NAME_VALUE_INVOKE_AGENT;
86
+ }
87
+ if (
88
+ operationId.includes("conversations") &&
89
+ (operationId.includes("start") ||
90
+ operationId.includes("append") ||
91
+ operationId.includes("restart"))
92
+ ) {
93
+ return semConvAttributes.GEN_AI_OPERATION_NAME_VALUE_INVOKE_AGENT;
94
+ }
95
+ if (operationId.includes("fim")) {
96
+ return semConvAttributes.GEN_AI_OPERATION_NAME_VALUE_TEXT_COMPLETION;
97
+ }
98
+ if (operationId.includes("embeddings")) {
99
+ return semConvAttributes.GEN_AI_OPERATION_NAME_VALUE_EMBEDDINGS;
100
+ }
101
+ if (operationId.includes("ocr_post")) {
102
+ return semConvAttributes.GEN_AI_OPERATION_NAME_VALUE_GENERATE_CONTENT;
103
+ }
104
+ return null;
105
+ }
106
+
107
+ function isKnownGenAiOperation(operationId: string): boolean {
108
+ return inferGenAiOperationName(operationId) !== null;
109
+ }
110
+
111
+ function isJsonContentType(contentType: string | null): boolean {
112
+ const mediaType = contentType?.split(";")[0]?.trim().toLowerCase();
113
+ return mediaType === "application/json" ||
114
+ mediaType === "text/json" ||
115
+ mediaType?.endsWith("+json") === true;
116
+ }
117
+
118
+ function buildGenaiSpanName(
119
+ genAiOp: string,
120
+ body: Record<string, unknown>
121
+ ): string {
122
+ if (
123
+ genAiOp === semConvAttributes.GEN_AI_OPERATION_NAME_VALUE_CREATE_AGENT ||
124
+ genAiOp === semConvAttributes.GEN_AI_OPERATION_NAME_VALUE_INVOKE_AGENT
125
+ ) {
126
+ const agentName = body["name"] as string | undefined;
127
+ return agentName ? `${genAiOp} ${agentName}` : genAiOp;
128
+ }
129
+ if (genAiOp === semConvAttributes.GEN_AI_OPERATION_NAME_VALUE_EXECUTE_TOOL) {
130
+ const toolName = body["name"] as string | undefined;
131
+ return toolName ? `${genAiOp} ${toolName}` : genAiOp;
132
+ }
133
+ const model = body["model"] as string | undefined;
134
+ return model ? `${genAiOp} ${model}` : genAiOp;
135
+ }
136
+
137
+ function setAvailableAttributes(span: Span, attributes: Record<string, unknown>): void {
138
+ for (const [key, value] of Object.entries(attributes)) {
139
+ if (value != null && value !== "") {
140
+ span.setAttribute(key, value as string | number | boolean);
141
+ }
142
+ }
143
+ }
144
+
145
+ function setMistralAgentTraceMarker(span: Span): void {
146
+ // Mistral-internal marker consumed by downstream trace processors.
147
+ span.setAttribute(MISTRAL_AGENT_TRACE_PUBLIC_ATTRIBUTE, "");
148
+ }
149
+
150
+ function setHttpAttributes(
151
+ span: Span,
152
+ url: URL,
153
+ method: string,
154
+ host: string
155
+ ): void {
156
+ let port = url.port ? parseInt(url.port, 10) : -1;
157
+ if (port === -1) {
158
+ if (url.protocol === "https:") {
159
+ port = 443;
160
+ } else if (url.protocol === "http:") {
161
+ port = 80;
162
+ }
163
+ }
164
+
165
+ span.setAttributes({
166
+ [semConvAttributes.ATTR_HTTP_REQUEST_METHOD]: method,
167
+ [semConvAttributes.ATTR_URL_FULL]: url.toString(),
168
+ [semConvAttributes.ATTR_SERVER_ADDRESS]: host,
169
+ [semConvAttributes.ATTR_SERVER_PORT]: port,
170
+ });
171
+ }
172
+
173
+ function enrichRequestGenaiAttrs(
174
+ span: Span,
175
+ genAiOp: string,
176
+ requestBody: Record<string, unknown>
177
+ ): void {
178
+ span.updateName(buildGenaiSpanName(genAiOp, requestBody));
179
+
180
+ const attributes: Record<string, unknown> = {
181
+ [semConvAttributes.ATTR_GEN_AI_REQUEST_CHOICE_COUNT]: requestBody["n"],
182
+ [semConvAttributes.ATTR_GEN_AI_REQUEST_ENCODING_FORMATS]: requestBody["encoding_formats"],
183
+ [semConvAttributes.ATTR_GEN_AI_REQUEST_FREQUENCY_PENALTY]: requestBody["frequency_penalty"],
184
+ [semConvAttributes.ATTR_GEN_AI_REQUEST_MAX_TOKENS]: requestBody["max_tokens"],
185
+ [semConvAttributes.ATTR_GEN_AI_REQUEST_MODEL]: requestBody["model"],
186
+ [semConvAttributes.ATTR_GEN_AI_REQUEST_PRESENCE_PENALTY]: requestBody["presence_penalty"],
187
+ [semConvAttributes.ATTR_GEN_AI_REQUEST_SEED]: requestBody["random_seed"],
188
+ [semConvAttributes.ATTR_GEN_AI_REQUEST_STOP_SEQUENCES]: requestBody["stop"],
189
+ [semConvAttributes.ATTR_GEN_AI_REQUEST_TEMPERATURE]: requestBody["temperature"],
190
+ [semConvAttributes.ATTR_GEN_AI_REQUEST_TOP_P]: requestBody["top_p"],
191
+ [semConvAttributes.ATTR_GEN_AI_REQUEST_TOP_K]: requestBody["top_k"],
192
+ };
193
+
194
+ const inputMessages = (requestBody["messages"] || requestBody["inputs"]) as
195
+ | string
196
+ | Array<Record<string, unknown>>
197
+ | undefined;
198
+ if (typeof inputMessages === "string") {
199
+ attributes[semConvAttributes.ATTR_GEN_AI_INPUT_MESSAGES] = JSON.stringify([
200
+ formatInputMessage({ role: "user", content: inputMessages }),
201
+ ]);
202
+ } else if (Array.isArray(inputMessages)) {
203
+ attributes[semConvAttributes.ATTR_GEN_AI_INPUT_MESSAGES] = JSON.stringify(
204
+ inputMessages.map((msg) => formatInputMessage(msg))
205
+ );
206
+ }
207
+
208
+ const tools = requestBody["tools"] as Array<Record<string, unknown>> | undefined;
209
+ if (tools) {
210
+ const formattedTools = tools
211
+ .map((tool) => formatToolDefinition(tool))
212
+ .filter((t): t is Record<string, unknown> => t !== null);
213
+ if (formattedTools.length > 0) {
214
+ attributes[semConvAttributes.ATTR_GEN_AI_TOOL_DEFINITIONS] = JSON.stringify(formattedTools);
215
+ }
216
+ }
217
+
218
+ // TODO: For agent start conversation, add agent id and version attributes here ?
219
+
220
+ setAvailableAttributes(span, attributes);
221
+ }
222
+
223
+ export function enrichSpanFromRequest(
224
+ span: Span,
225
+ operationId: string,
226
+ url: URL,
227
+ method: string,
228
+ host: string,
229
+ body: string | null
230
+ ): Span {
231
+ setHttpAttributes(span, url, method, host);
232
+
233
+ const genAiOp = inferGenAiOperationName(operationId);
234
+ if (genAiOp === null) {
235
+ return span;
236
+ }
237
+
238
+ span.setAttributes({
239
+ [semConvAttributes.ATTR_GEN_AI_OPERATION_NAME]: genAiOp,
240
+ [semConvAttributes.ATTR_GEN_AI_PROVIDER_NAME]: semConvAttributes.GEN_AI_PROVIDER_NAME_VALUE_MISTRAL_AI,
241
+ });
242
+
243
+ if (body) {
244
+ try {
245
+ const requestBody = JSON.parse(body) as Record<string, unknown>;
246
+ enrichRequestGenaiAttrs(span, genAiOp, requestBody);
247
+ } catch {
248
+ // Ignore parse errors
249
+ }
250
+ }
251
+
252
+ return span;
253
+ }
254
+
255
+ function enrichResponseGenaiAttrs(
256
+ span: Span,
257
+ genAiOp: string,
258
+ responseData: Record<string, unknown>
259
+ ): void {
260
+ const attributes: Record<string, unknown> = {};
261
+
262
+ if (genAiOp !== semConvAttributes.GEN_AI_OPERATION_NAME_VALUE_CREATE_AGENT) {
263
+ attributes[semConvAttributes.ATTR_GEN_AI_RESPONSE_ID] = responseData["id"];
264
+ }
265
+ attributes[semConvAttributes.ATTR_GEN_AI_RESPONSE_MODEL] = responseData["model"];
266
+
267
+ const choices = (responseData["choices"] || []) as Array<Record<string, unknown>>;
268
+ const finishReasons = choices
269
+ .map((c) => c["finish_reason"] as string | undefined)
270
+ .filter((r): r is string => !!r);
271
+ if (finishReasons.length > 0) {
272
+ attributes[semConvAttributes.ATTR_GEN_AI_RESPONSE_FINISH_REASONS] = finishReasons;
273
+ }
274
+ if (choices.length > 0) {
275
+ attributes[semConvAttributes.ATTR_GEN_AI_OUTPUT_MESSAGES] = JSON.stringify(
276
+ choices.map((choice) => formatOutputMessage(choice))
277
+ );
278
+ }
279
+
280
+ const usage = responseData["usage"] as Record<string, number> | undefined;
281
+ if (usage) {
282
+ attributes[semConvAttributes.ATTR_GEN_AI_USAGE_INPUT_TOKENS] = usage["prompt_tokens"] || 0;
283
+ attributes[semConvAttributes.ATTR_GEN_AI_USAGE_OUTPUT_TOKENS] = usage["completion_tokens"] || 0;
284
+ }
285
+
286
+ setAvailableAttributes(span, attributes);
287
+ }
288
+
289
+ function enrichCreateAgent(span: Span, responseData: Record<string, unknown>): void {
290
+ const agentAttributes: Record<string, unknown> = {
291
+ [semConvAttributes.ATTR_GEN_AI_AGENT_DESCRIPTION]: responseData["description"],
292
+ [semConvAttributes.ATTR_GEN_AI_AGENT_ID]: responseData["id"],
293
+ [semConvAttributes.ATTR_GEN_AI_AGENT_NAME]: responseData["name"],
294
+ "gen_ai.agent.version": String(responseData["version"]),
295
+ [semConvAttributes.ATTR_GEN_AI_REQUEST_MODEL]: responseData["model"],
296
+ [semConvAttributes.ATTR_GEN_AI_SYSTEM_INSTRUCTIONS]: responseData["instructions"],
297
+ };
298
+ setAvailableAttributes(span, agentAttributes);
299
+ }
300
+
301
+ function stringifyToolAttribute(value: unknown): string | null {
302
+ if (typeof value === "string") {
303
+ return value;
304
+ }
305
+ if (value) {
306
+ return JSON.stringify(value);
307
+ }
308
+ return null;
309
+ }
310
+
311
+ function createToolExecutionChildSpan(
312
+ tracer: Tracer,
313
+ parentContext: ReturnType<typeof contextApi.active>,
314
+ output: Record<string, unknown>
315
+ ): void {
316
+ const startMs = parseTimeToMillis(output["created_at"] as string);
317
+ const endMs = parseTimeToMillis(output["completed_at"] as string);
318
+ const opName = semConvAttributes.GEN_AI_OPERATION_NAME_VALUE_EXECUTE_TOOL;
319
+ const spanName = buildGenaiSpanName(opName, output);
320
+ const childSpan = tracer.startSpan(spanName, { startTime: startMs }, parentContext);
321
+ setMistralAgentTraceMarker(childSpan);
322
+
323
+ const toolArguments = output["arguments"];
324
+ const toolResult = output["info"];
325
+ const toolAttributes: Record<string, unknown> = {
326
+ [semConvAttributes.ATTR_GEN_AI_OPERATION_NAME]: opName,
327
+ [semConvAttributes.ATTR_GEN_AI_PROVIDER_NAME]: semConvAttributes.GEN_AI_PROVIDER_NAME_VALUE_MISTRAL_AI,
328
+ [semConvAttributes.ATTR_GEN_AI_TOOL_CALL_ID]: output["id"],
329
+ [semConvAttributes.ATTR_GEN_AI_TOOL_CALL_ARGUMENTS]: stringifyToolAttribute(toolArguments),
330
+ [semConvAttributes.ATTR_GEN_AI_TOOL_CALL_RESULT]: stringifyToolAttribute(toolResult),
331
+ [semConvAttributes.ATTR_GEN_AI_TOOL_NAME]: output["name"],
332
+ [semConvAttributes.ATTR_GEN_AI_TOOL_TYPE]: "extension",
333
+ };
334
+ setAvailableAttributes(childSpan, toolAttributes);
335
+ childSpan.end(endMs);
336
+ }
337
+
338
+ function createMessageOutputChildSpan(
339
+ tracer: Tracer,
340
+ parentContext: ReturnType<typeof contextApi.active>,
341
+ output: Record<string, unknown>
342
+ ): void {
343
+ const startMs = parseTimeToMillis(output["created_at"] as string);
344
+ const endMs = parseTimeToMillis(output["completed_at"] as string);
345
+ const opName = semConvAttributes.GEN_AI_OPERATION_NAME_VALUE_CHAT;
346
+ const spanName = buildGenaiSpanName(opName, output);
347
+ const childSpan = tracer.startSpan(spanName, { startTime: startMs }, parentContext);
348
+ setMistralAgentTraceMarker(childSpan);
349
+
350
+ const choiceWrapper = {
351
+ message: output,
352
+ finish_reason: (output["finish_reason"] as string) || "",
353
+ };
354
+ const messageAttributes: Record<string, unknown> = {
355
+ [semConvAttributes.ATTR_GEN_AI_OPERATION_NAME]: opName,
356
+ [semConvAttributes.ATTR_GEN_AI_PROVIDER_NAME]: semConvAttributes.GEN_AI_PROVIDER_NAME_VALUE_MISTRAL_AI,
357
+ [semConvAttributes.ATTR_GEN_AI_RESPONSE_ID]: output["id"],
358
+ [semConvAttributes.ATTR_GEN_AI_AGENT_ID]: output["agent_id"],
359
+ [semConvAttributes.ATTR_GEN_AI_RESPONSE_MODEL]: output["model"],
360
+ [semConvAttributes.ATTR_GEN_AI_OUTPUT_MESSAGES]: JSON.stringify([formatOutputMessage(choiceWrapper)]),
361
+ };
362
+ setAvailableAttributes(childSpan, messageAttributes);
363
+ childSpan.end(endMs);
364
+ }
365
+
366
+ function enrichInvokeAgent(
367
+ tracer: Tracer,
368
+ span: Span,
369
+ responseData: Record<string, unknown>
370
+ ): void {
371
+ const conversationAttributes: Record<string, unknown> = {
372
+ [semConvAttributes.ATTR_GEN_AI_CONVERSATION_ID]: responseData["conversation_id"],
373
+ };
374
+ setAvailableAttributes(span, conversationAttributes);
375
+
376
+ const outputs = (responseData["outputs"] || []) as Array<Record<string, unknown>>;
377
+ const parentContext = trace.setSpan(contextApi.active(), span);
378
+ for (const output of outputs) {
379
+ const outputType = output["type"] as string | undefined;
380
+ if (!outputType) continue;
381
+ if (outputType === "function.call") {
382
+ continue;
383
+ }
384
+ if (outputType === "tool.execution") {
385
+ createToolExecutionChildSpan(tracer, parentContext, output);
386
+ } else if (outputType === "message.output") {
387
+ createMessageOutputChildSpan(tracer, parentContext, output);
388
+ }
389
+ }
390
+ }
391
+
392
+ function enrichOcr(span: Span, responseData: Record<string, unknown>): void {
393
+ const usageInfo = responseData["usage_info"] as Record<string, unknown> | undefined;
394
+ if (!usageInfo) return;
395
+ const ocrAttributes: Record<string, unknown> = {
396
+ [MistralAIAttributes.MISTRAL_AI_OCR_USAGE_PAGES_PROCESSED]: usageInfo["pages_processed"],
397
+ [MistralAIAttributes.MISTRAL_AI_OCR_USAGE_DOC_SIZE_BYTES]: usageInfo["doc_size_bytes"],
398
+ };
399
+ setAvailableAttributes(span, ocrAttributes);
400
+ }
401
+
402
+ export function enrichSpanFromResponse(
403
+ tracer: Tracer,
404
+ span: Span,
405
+ operationId: string,
406
+ responseData: Record<string, unknown>
407
+ ): void {
408
+ const genAiOp = inferGenAiOperationName(operationId);
409
+ if (genAiOp === null) {
410
+ return;
411
+ }
412
+
413
+ enrichResponseGenaiAttrs(span, genAiOp, responseData);
414
+
415
+ if (genAiOp === semConvAttributes.GEN_AI_OPERATION_NAME_VALUE_CREATE_AGENT) {
416
+ enrichCreateAgent(span, responseData);
417
+ } else if (genAiOp === semConvAttributes.GEN_AI_OPERATION_NAME_VALUE_INVOKE_AGENT) {
418
+ enrichInvokeAgent(tracer, span, responseData);
419
+ }
420
+
421
+ if (operationId === "ocr_v1_ocr_post") {
422
+ enrichOcr(span, responseData);
423
+ }
424
+ }
425
+
426
+ /**
427
+ * Get a tracer from the registered or global TracerProvider.
428
+ *
429
+ * The SDK does not set up its own TracerProvider. It relies on the application
430
+ * to register one explicitly or configure OpenTelemetry's global provider.
431
+ *
432
+ * If no TracerProvider is configured, the ProxyTracerProvider (default) will
433
+ * return a NoOp tracer, effectively disabling tracing. Once the application
434
+ * sets up a real TracerProvider, subsequent spans will be recorded.
435
+ */
436
+ export function getOrCreateOtelTracer(): Tracer {
437
+ const tracerProvider = registeredTracerProvider ?? trace.getTracerProvider();
438
+ return tracerProvider.getTracer(MISTRAL_SDK_OTEL_TRACER_NAME);
439
+ }
440
+
441
+ export function getSpanContext(span: Span): Context {
442
+ return trace.setSpan(contextApi.active(), span);
443
+ }
444
+
445
+ export function runWithContext<T>(context: Context, fn: () => T): T {
446
+ return contextApi.with(context, fn);
447
+ }
448
+
449
+ export async function recordRequestError(
450
+ context: Context,
451
+ error: unknown
452
+ ): Promise<void> {
453
+ const span = trace.getSpan(context);
454
+ if (span) {
455
+ await getResponseAndError(span, null, error);
456
+ }
457
+ }
458
+
459
+ function warn(error: string, details: unknown): void {
460
+ if (MISTRAL_SDK_DEBUG_TRACING) {
461
+ console.warn(error, details);
462
+ } else {
463
+ console.warn(error, DEBUG_HINT);
464
+ }
465
+ }
466
+
467
+ export async function getTracedRequestAndSpan(
468
+ tracer: Tracer,
469
+ operationId: string,
470
+ request: Request
471
+ ): Promise<{ request: Request; span: Span; body: string | null }> {
472
+ const span = tracer.startSpan(operationId);
473
+
474
+ if (!span.isRecording()) {
475
+ return { request, span, body: null };
476
+ }
477
+
478
+ try {
479
+ setMistralAgentTraceMarker(span);
480
+
481
+ // Propagate gen_ai.conversation.id from OTEL baggage if present
482
+ const baggage = propagation.getBaggage(contextApi.active());
483
+ const conversationId = baggage?.getEntry(semConvAttributes.ATTR_GEN_AI_CONVERSATION_ID)?.value;
484
+ if (conversationId) {
485
+ span.setAttribute(semConvAttributes.ATTR_GEN_AI_CONVERSATION_ID, conversationId);
486
+ }
487
+
488
+ let body: string | null = null;
489
+ if (
490
+ request.body &&
491
+ isKnownGenAiOperation(operationId) &&
492
+ isJsonContentType(request.headers.get("content-type"))
493
+ ) {
494
+ try {
495
+ const cloned = request.clone();
496
+ body = await cloned.text();
497
+ } catch {
498
+ // Ignore - body might not be cloneable
499
+ }
500
+ }
501
+
502
+ const headers = new Headers(request.headers);
503
+ const headerCarrier: Record<string, string> = {};
504
+ propagation.inject(trace.setSpan(contextApi.active(), span), headerCarrier);
505
+ for (const [key, value] of Object.entries(headerCarrier)) {
506
+ headers.set(key, value);
507
+ }
508
+
509
+ const newRequest = new Request(request, { headers });
510
+
511
+ const url = new URL(request.url);
512
+ enrichSpanFromRequest(
513
+ span,
514
+ operationId,
515
+ url,
516
+ request.method,
517
+ headers.get("host") || url.host,
518
+ body
519
+ );
520
+
521
+ return { request: newRequest, span, body };
522
+ } catch (err) {
523
+ warn(TracingErrors.FAILED_TO_CREATE_SPAN_FOR_REQUEST, err);
524
+ try {
525
+ span.end();
526
+ } catch {
527
+ // Ignore
528
+ }
529
+ return { request, span, body: null };
530
+ }
531
+ }
532
+
533
+ export async function getTracedResponse(
534
+ tracer: Tracer,
535
+ span: Span,
536
+ operationId: string,
537
+ response: Response,
538
+ ): Promise<Response> {
539
+ if (!span.isRecording()) {
540
+ return response;
541
+ }
542
+
543
+ try {
544
+ span.setStatus({ code: SpanStatusCode.OK });
545
+ span.setAttribute(semConvAttributes.ATTR_HTTP_RESPONSE_STATUS_CODE, response.status);
546
+
547
+ const knownGenAiOperation = isKnownGenAiOperation(operationId);
548
+ const responseContentType = response.headers.get("content-type");
549
+ const isStreamResponse =
550
+ knownGenAiOperation &&
551
+ !response.bodyUsed &&
552
+ responseContentType?.toLowerCase().includes("text/event-stream") === true;
553
+
554
+ if (isStreamResponse && response.body) {
555
+ return createTracedStreamResponse(response, span, tracer, operationId);
556
+ }
557
+
558
+ if (
559
+ knownGenAiOperation &&
560
+ !response.bodyUsed &&
561
+ isJsonContentType(responseContentType)
562
+ ) {
563
+ const clonedResponse = response.clone();
564
+ try {
565
+ const responseData = await clonedResponse.json();
566
+ enrichSpanFromResponse(
567
+ tracer,
568
+ span,
569
+ operationId,
570
+ responseData as Record<string, unknown>
571
+ );
572
+ } catch {
573
+ // Ignore parse errors
574
+ }
575
+ }
576
+ endSpan(span);
577
+
578
+ return response;
579
+ } catch (err) {
580
+ warn(TracingErrors.FAILED_TO_ENRICH_SPAN_WITH_RESPONSE, err);
581
+ endSpan(span);
582
+ return response;
583
+ }
584
+ }
585
+
586
+ function createTracedStreamResponse(
587
+ response: Response,
588
+ span: Span,
589
+ tracer: Tracer,
590
+ operationId: string
591
+ ): Response {
592
+ const originalBody = response.body!;
593
+ const chunks: string[] = [];
594
+ const decoder = new TextDecoder();
595
+ const reader = originalBody.getReader();
596
+ let finalized = false;
597
+
598
+ const finalize = (): void => {
599
+ if (finalized) {
600
+ return;
601
+ }
602
+ const remaining = decoder.decode();
603
+ if (remaining) {
604
+ chunks.push(remaining);
605
+ }
606
+ finalized = true;
607
+ finalizeStreamSpan(chunks, span, tracer, operationId);
608
+ };
609
+
610
+ const tracedStream = new ReadableStream<Uint8Array>(
611
+ {
612
+ async pull(controller) {
613
+ try {
614
+ const { done, value } = await reader.read();
615
+ if (done) {
616
+ finalize();
617
+ controller.close();
618
+ return;
619
+ }
620
+
621
+ chunks.push(decoder.decode(value, { stream: true }));
622
+ controller.enqueue(value);
623
+ } catch (err) {
624
+ finalize();
625
+ controller.error(err);
626
+ try {
627
+ await reader.cancel(err);
628
+ } catch {
629
+ // Ignore cancellation errors from already-failed streams.
630
+ }
631
+ }
632
+ },
633
+ async cancel(reason) {
634
+ finalize();
635
+ await reader.cancel(reason);
636
+ },
637
+ },
638
+ { highWaterMark: 0 }
639
+ );
640
+
641
+ return new Response(tracedStream, {
642
+ status: response.status,
643
+ statusText: response.statusText,
644
+ headers: response.headers,
645
+ });
646
+ }
647
+
648
+ function finalizeStreamSpan(
649
+ chunks: string[],
650
+ span: Span,
651
+ tracer: Tracer,
652
+ operationId: string
653
+ ): void {
654
+ try {
655
+ const fullText = chunks.join("");
656
+ const parsedChunks = parseSseChunks(fullText);
657
+ if (parsedChunks.length > 0) {
658
+ const responseData = accumulateChunksToResponseDict(parsedChunks);
659
+ enrichSpanFromResponse(tracer, span, operationId, responseData);
660
+ }
661
+ } catch (err) {
662
+ warn("Failed to enrich span with streaming response.", err);
663
+ }
664
+ endSpan(span);
665
+ }
666
+
667
+ export async function getResponseAndError(
668
+ span: Span,
669
+ response: Response | null,
670
+ error: unknown
671
+ ): Promise<{ response: Response | null; error: unknown }> {
672
+ if (!span.isRecording()) {
673
+ return { response, error };
674
+ }
675
+
676
+ try {
677
+ if (error) {
678
+ span.recordException(error as Error);
679
+ span.setStatus({ code: SpanStatusCode.ERROR, message: String(error) });
680
+ }
681
+
682
+ if (!response) {
683
+ endSpan(span);
684
+ return { response, error };
685
+ }
686
+
687
+ try {
688
+ const responseBody = await response.clone().json();
689
+ const body = responseBody as Record<string, unknown>;
690
+ if (body["object"] === "error") {
691
+ const errorMsg = (body["message"] as string) || "";
692
+ const errorType = (body["type"] as string) || "";
693
+ if (errorMsg) {
694
+ span.setStatus({ code: SpanStatusCode.ERROR, message: errorMsg });
695
+ span.addEvent("exception", {
696
+ "exception.type": errorType || "api_error",
697
+ "exception.message": errorMsg,
698
+ });
699
+ const attrs: Record<string, unknown> = {
700
+ [semConvAttributes.ATTR_HTTP_RESPONSE_STATUS_CODE]: response.status,
701
+ };
702
+ if (errorType) {
703
+ attrs[semConvAttributes.ATTR_ERROR_TYPE] = errorType;
704
+ }
705
+ if (body["code"]) {
706
+ attrs[MistralAIAttributes.MISTRAL_AI_ERROR_CODE] = body["code"];
707
+ }
708
+ setAvailableAttributes(span, attrs);
709
+ }
710
+ }
711
+ } catch {
712
+ // Non-JSON error bodies are valid API responses; leave the span as-is.
713
+ }
714
+ endSpan(span);
715
+ } catch (err) {
716
+ warn(TracingErrors.FAILED_TO_HANDLE_ERROR_IN_SPAN, err);
717
+ try {
718
+ span.end();
719
+ } catch {
720
+ // Ignore
721
+ }
722
+ }
723
+
724
+ return { response, error };
725
+ }
726
+
727
+ function endSpan(span: Span): void {
728
+ try {
729
+ span.end();
730
+ } catch (err) {
731
+ warn(TracingErrors.FAILED_TO_END_SPAN, err);
732
+ }
733
+ }
734
+
735
+ /**
736
+ * Create a traced span using a callback pattern.
737
+ * This is the TypeScript equivalent of Python's context manager.
738
+ */
739
+ export async function traceAsync<T>(
740
+ name: string,
741
+ fn: (span: Span) => Promise<T>
742
+ ): Promise<T> {
743
+ const tracer = getOrCreateOtelTracer();
744
+ const span = tracer.startSpan(name);
745
+ try {
746
+ return await fn(span);
747
+ } finally {
748
+ span.end();
749
+ }
750
+ }