eve 0.71.2 → 0.72.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 (470) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/README.md +22 -6
  3. package/dist/src/acp/adapter.js +1 -1
  4. package/dist/src/ai/decide.d.ts +7 -0
  5. package/dist/src/ai/decide.js +1 -0
  6. package/dist/src/channel/conversation-context.d.ts +4 -1
  7. package/dist/src/channel/invoke-tool.d.ts +41 -0
  8. package/dist/src/channel/invoke-tool.js +1 -0
  9. package/dist/src/channel/routes.d.ts +3 -0
  10. package/dist/src/chunks/{use-eve-agent-CFCaYnrI.js → use-eve-agent-C1GYGCtb.js} +698 -388
  11. package/dist/src/chunks/{use-eve-agent-DcDhXNv1.js → use-eve-agent-hZJ7CB8t.js} +698 -388
  12. package/dist/src/cli/commands/integration-setup.js +1 -1
  13. package/dist/src/cli/commands/registry.js +1 -1
  14. package/dist/src/cli/commands/trace-detail.d.ts +1 -1
  15. package/dist/src/cli/commands/trace-detail.js +1 -1
  16. package/dist/src/cli/dev/tui/runner.js +1 -1
  17. package/dist/src/cli/dev/tui/setup-flow.d.ts +1 -0
  18. package/dist/src/cli/dev/tui/setup-panel.d.ts +1 -0
  19. package/dist/src/cli/dev/tui/setup-panel.js +2 -1
  20. package/dist/src/cli/dev/tui/traces/trace-conversation.d.ts +2 -2
  21. package/dist/src/cli/dev/tui/traces/trace-conversation.js +2 -2
  22. package/dist/src/cli/dev/tui/transcript-parts.d.ts +2 -1
  23. package/dist/src/cli/dev/tui/transcript-parts.js +1 -1
  24. package/dist/src/cli/dev/tui/transcript.js +1 -1
  25. package/dist/src/cli/dev/tui/tui-prompter.js +1 -1
  26. package/dist/src/client/conversation-projection.d.ts +4 -0
  27. package/dist/src/client/conversation-projection.js +1 -0
  28. package/dist/src/client/conversation-reducer.js +1 -1
  29. package/dist/src/client/conversation-state.d.ts +5 -26
  30. package/dist/src/client/conversation-state.js +1 -1
  31. package/dist/src/client/index.d.ts +1 -0
  32. package/dist/src/client/index.js +1 -1
  33. package/dist/src/client/message-action-parts.d.ts +1 -11
  34. package/dist/src/client/message-action-parts.js +1 -1
  35. package/dist/src/client/message-reducer.d.ts +3 -1
  36. package/dist/src/client/message-reducer.js +1 -1
  37. package/dist/src/client/session-utils.js +1 -1
  38. package/dist/src/client/session.js +1 -1
  39. package/dist/src/client/tool-call-state.d.ts +23 -0
  40. package/dist/src/client/tool-call-state.js +1 -0
  41. package/dist/src/client/tool-part-state.d.ts +7 -0
  42. package/dist/src/client/tool-part-state.js +1 -0
  43. package/dist/src/compiled/.vendor-stamp.json +10 -10
  44. package/dist/src/compiled/@ai-sdk/anthropic/index.d.ts +1453 -1358
  45. package/dist/src/compiled/@ai-sdk/anthropic/index.js +1 -2
  46. package/dist/src/compiled/@ai-sdk/code-mode/index.d.ts +172 -163
  47. package/dist/src/compiled/@ai-sdk/code-mode/index.js +15 -20
  48. package/dist/src/compiled/@ai-sdk/google/index.d.ts +772 -733
  49. package/dist/src/compiled/@ai-sdk/google/index.js +6 -8
  50. package/dist/src/compiled/@ai-sdk/mcp/index.d.ts +887 -790
  51. package/dist/src/compiled/@ai-sdk/mcp/index.js +1 -1
  52. package/dist/src/compiled/@ai-sdk/openai/index.d.ts +1722 -1691
  53. package/dist/src/compiled/@ai-sdk/openai/index.js +3 -14
  54. package/dist/src/compiled/@ai-sdk/otel/index.d.ts +216 -159
  55. package/dist/src/compiled/@ai-sdk/otel/index.js +3 -3
  56. package/dist/src/compiled/@ai-sdk/provider/index.d.ts +7542 -7271
  57. package/dist/src/compiled/@ai-sdk/provider/index.js +1 -3
  58. package/dist/src/compiled/@ai-sdk/provider-utils/index.d.ts +1799 -1600
  59. package/dist/src/compiled/@eve/catalog/index.js +1 -1
  60. package/dist/src/compiled/_chunks/workflow/dist-DXLdlucM.js +15 -0
  61. package/dist/src/compiled/_chunks/workflow/experimental-decision-BrfWf6-n.js +3 -0
  62. package/dist/src/compiler/extension-compatibility.d.ts +36 -20
  63. package/dist/src/compiler/extension-compatibility.js +1 -1
  64. package/dist/src/compiler/manifest.js +1 -1
  65. package/dist/src/context/build-dynamic-tools.js +1 -1
  66. package/dist/src/context/caller-scope.d.ts +7 -0
  67. package/dist/src/context/caller-scope.js +1 -0
  68. package/dist/src/context/dynamic-tool-lifecycle.js +1 -1
  69. package/dist/src/context/dynamic-tool-metadata.d.ts +1 -0
  70. package/dist/src/context/providers/session.js +1 -1
  71. package/dist/src/evals/define-eval.d.ts +1 -1
  72. package/dist/src/evals/judge.d.ts +1 -1
  73. package/dist/src/evals/judge.js +2 -2
  74. package/dist/src/evals/types.d.ts +8 -8
  75. package/dist/src/execution/cancel-descendant-turns-step.d.ts +1 -0
  76. package/dist/src/execution/cancel-descendant-turns-step.js +1 -1
  77. package/dist/src/execution/cancelled-model-call-batch.js +1 -1
  78. package/dist/src/execution/coordination-dispatch-shared.d.ts +2 -1
  79. package/dist/src/execution/coordination-dispatch-shared.js +1 -1
  80. package/dist/src/execution/coordination-dispatch-step.js +1 -1
  81. package/dist/src/execution/durable-session-read.d.ts +5 -0
  82. package/dist/src/execution/durable-session-read.js +1 -0
  83. package/dist/src/execution/durable-session-store.d.ts +4 -10
  84. package/dist/src/execution/durable-session-store.js +1 -1
  85. package/dist/src/execution/dynamic-connections.d.ts +3 -3
  86. package/dist/src/execution/dynamic-connections.js +1 -1
  87. package/dist/src/execution/dynamic-workflow/tool.js +1 -1
  88. package/dist/src/execution/invoke-tool.d.ts +35 -0
  89. package/dist/src/execution/invoke-tool.js +1 -0
  90. package/dist/src/execution/legacy-session/interrupt-step.js +1 -1
  91. package/dist/src/execution/legacy-session/snapshot.d.ts +3 -0
  92. package/dist/src/execution/legacy-session/snapshot.js +1 -1
  93. package/dist/src/execution/model-call-batching.js +1 -1
  94. package/dist/src/execution/node-step.d.ts +2 -0
  95. package/dist/src/execution/node-step.js +1 -1
  96. package/dist/src/execution/proxied-deliver-step.js +1 -1
  97. package/dist/src/execution/publish-session-events.d.ts +8 -0
  98. package/dist/src/execution/publish-session-events.js +1 -1
  99. package/dist/src/execution/sandbox/active-handles.d.ts +6 -0
  100. package/dist/src/execution/sandbox/active-handles.js +1 -1
  101. package/dist/src/execution/sandbox/ensure.js +1 -1
  102. package/dist/src/execution/session/active-turn.js +1 -1
  103. package/dist/src/execution/session/answer-caller.d.ts +15 -0
  104. package/dist/src/execution/session/answer-caller.js +1 -0
  105. package/dist/src/execution/session/checkpoint-migrations.js +1 -1
  106. package/dist/src/execution/session/finalization.js +1 -1
  107. package/dist/src/execution/session/handoff-steps.d.ts +3 -1
  108. package/dist/src/execution/session/handoff-steps.js +1 -1
  109. package/dist/src/execution/session/handoff.d.ts +1 -1
  110. package/dist/src/execution/session/handoff.js +1 -1
  111. package/dist/src/execution/session/pending-turn-state.d.ts +8 -3
  112. package/dist/src/execution/session/pending-turn-state.js +1 -1
  113. package/dist/src/execution/session/task-tool-tracing-step.d.ts +5 -0
  114. package/dist/src/execution/session/task-tool-tracing-step.js +1 -0
  115. package/dist/src/execution/session/turn-step-result.js +1 -1
  116. package/dist/src/execution/session/turn-step.js +1 -1
  117. package/dist/src/execution/session/turn-waiting-step.js +1 -1
  118. package/dist/src/execution/session/turn.d.ts +1 -0
  119. package/dist/src/execution/session/turn.js +1 -1
  120. package/dist/src/execution/settle-cancelled-turn-step.d.ts +4 -6
  121. package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
  122. package/dist/src/execution/tasks/start.d.ts +3 -3
  123. package/dist/src/execution/tasks/start.js +1 -1
  124. package/dist/src/execution/tasks/steps.d.ts +1 -1
  125. package/dist/src/execution/tasks/steps.js +1 -1
  126. package/dist/src/execution/terminal-session-completion-step.d.ts +7 -0
  127. package/dist/src/execution/terminal-session-completion-step.js +1 -1
  128. package/dist/src/execution/terminal-session-failure-step.js +1 -1
  129. package/dist/src/execution/tools/agent-router-workflow.js +1 -1
  130. package/dist/src/execution/tools/connection-tools.js +1 -1
  131. package/dist/src/execution/tools/workflow/authorization-completion.js +1 -1
  132. package/dist/src/execution/tools/workflow/harness-definition.js +1 -1
  133. package/dist/src/execution/tools/workflow/step-execution.js +1 -1
  134. package/dist/src/execution/tools/workflow/step.js +1 -1
  135. package/dist/src/execution/tools/workflow/withdraw-step.d.ts +7 -9
  136. package/dist/src/execution/tools/workflow/withdraw-step.js +1 -1
  137. package/dist/src/execution/workflow-runtime.js +1 -1
  138. package/dist/src/execution/workflow-trace-context.d.ts +2 -2
  139. package/dist/src/harness/authorization.d.ts +4 -2
  140. package/dist/src/harness/authorization.js +1 -1
  141. package/dist/src/harness/{compaction.js → compaction/engine.js} +1 -1
  142. package/dist/src/harness/compaction/step.d.ts +46 -0
  143. package/dist/src/harness/compaction/step.js +1 -0
  144. package/dist/src/harness/coordination.d.ts +32 -64
  145. package/dist/src/harness/coordination.js +1 -1
  146. package/dist/src/harness/current-messages.d.ts +1 -3
  147. package/dist/src/harness/current-messages.js +1 -1
  148. package/dist/src/harness/emission.d.ts +4 -52
  149. package/dist/src/harness/emission.js +1 -1
  150. package/dist/src/harness/execute-tool.d.ts +1 -0
  151. package/dist/src/harness/final-output.d.ts +5 -0
  152. package/dist/src/harness/final-output.js +1 -1
  153. package/dist/src/harness/hitl/approvals.d.ts +115 -0
  154. package/dist/src/harness/hitl/approvals.js +1 -0
  155. package/dist/src/harness/hitl/approved-call-callers.d.ts +14 -0
  156. package/dist/src/harness/hitl/approved-call-callers.js +1 -0
  157. package/dist/src/harness/hitl/approved-calls.d.ts +37 -0
  158. package/dist/src/harness/hitl/approved-calls.js +1 -0
  159. package/dist/src/harness/{session-limit-continuation.d.ts → hitl/budget-request.d.ts} +3 -1
  160. package/dist/src/harness/hitl/budget-request.js +1 -0
  161. package/dist/src/harness/hitl/budget.d.ts +21 -0
  162. package/dist/src/harness/hitl/budget.js +1 -0
  163. package/dist/src/harness/{approval-candidates.d.ts → hitl/candidates.d.ts} +13 -18
  164. package/dist/src/harness/hitl/candidates.js +1 -0
  165. package/dist/src/harness/hitl/coordinator.js +1 -0
  166. package/dist/src/harness/hitl/delivery.d.ts +37 -0
  167. package/dist/src/harness/hitl/delivery.js +1 -0
  168. package/dist/src/harness/hitl/index.d.ts +49 -0
  169. package/dist/src/harness/hitl/index.js +1 -0
  170. package/dist/src/harness/hitl/intake.d.ts +67 -0
  171. package/dist/src/harness/hitl/intake.js +1 -0
  172. package/dist/src/harness/{stale-input-responses.d.ts → hitl/stale-responses.d.ts} +5 -3
  173. package/dist/src/harness/hitl/stale-responses.js +3 -0
  174. package/dist/src/harness/inline-tool-authorization.d.ts +4 -0
  175. package/dist/src/harness/inline-tool-authorization.js +1 -1
  176. package/dist/src/harness/input-extraction.d.ts +1 -10
  177. package/dist/src/harness/input-extraction.js +1 -1
  178. package/dist/src/harness/input-request-resolution.d.ts +1 -5
  179. package/dist/src/harness/input-request-resolution.js +1 -1
  180. package/dist/src/harness/messages.js +1 -1
  181. package/dist/src/harness/model-call/call.d.ts +78 -0
  182. package/dist/src/harness/model-call/call.js +1 -0
  183. package/dist/src/harness/{model-call-error.d.ts → model-call/errors.d.ts} +1 -1
  184. package/dist/src/harness/model-call/failure.d.ts +52 -0
  185. package/dist/src/harness/model-call/failure.js +1 -0
  186. package/dist/src/harness/model-call/model.d.ts +18 -0
  187. package/dist/src/harness/model-call/model.js +1 -0
  188. package/dist/src/harness/model-call/recovery.d.ts +52 -0
  189. package/dist/src/harness/model-call/recovery.js +1 -0
  190. package/dist/src/harness/model-call/request.d.ts +30 -0
  191. package/dist/src/harness/model-call/request.js +3 -0
  192. package/dist/src/harness/model-call/response.d.ts +39 -0
  193. package/dist/src/harness/model-call/response.js +1 -0
  194. package/dist/src/harness/model-call/retry.d.ts +11 -0
  195. package/dist/src/harness/model-call/retry.js +1 -0
  196. package/dist/src/harness/model-call/run.d.ts +38 -0
  197. package/dist/src/harness/model-call/run.js +1 -0
  198. package/dist/src/harness/model-call/tools.d.ts +48 -0
  199. package/dist/src/harness/model-call/tools.js +1 -0
  200. package/dist/src/harness/model-call/usage.d.ts +23 -0
  201. package/dist/src/harness/model-call/usage.js +1 -0
  202. package/dist/src/harness/nested-actions.d.ts +2 -2
  203. package/dist/src/harness/provider-tools.d.ts +7 -3
  204. package/dist/src/harness/provider-tools.js +1 -1
  205. package/dist/src/harness/proxy-input-requests.d.ts +4 -12
  206. package/dist/src/harness/proxy-input-requests.js +1 -1
  207. package/dist/src/harness/session-machine/commit.d.ts +28 -0
  208. package/dist/src/harness/session-machine/commit.js +1 -0
  209. package/dist/src/harness/session-machine/current.d.ts +29 -0
  210. package/dist/src/harness/session-machine/current.js +1 -0
  211. package/dist/src/harness/session-machine/events.d.ts +6 -0
  212. package/dist/src/harness/session-machine/events.js +1 -0
  213. package/dist/src/harness/session-machine/resolver-events.d.ts +12 -0
  214. package/dist/src/harness/session-machine/resolver-events.js +1 -0
  215. package/dist/src/harness/session-machine/state.d.ts +47 -0
  216. package/dist/src/harness/session-machine/state.js +1 -0
  217. package/dist/src/harness/session-machine/transitions.d.ts +188 -0
  218. package/dist/src/harness/session-machine/transitions.js +1 -0
  219. package/dist/src/harness/session-machine/view.d.ts +58 -0
  220. package/dist/src/harness/session-machine/view.js +1 -0
  221. package/dist/src/harness/step/after-model.d.ts +7 -0
  222. package/dist/src/harness/step/after-model.js +1 -0
  223. package/dist/src/harness/step/context.d.ts +59 -0
  224. package/dist/src/harness/step/context.js +1 -0
  225. package/dist/src/harness/step/intake.d.ts +34 -0
  226. package/dist/src/harness/step/intake.js +1 -0
  227. package/dist/src/harness/step/prompt.d.ts +37 -0
  228. package/dist/src/harness/step/prompt.js +1 -0
  229. package/dist/src/harness/step-hooks.d.ts +8 -13
  230. package/dist/src/harness/step-hooks.js +1 -1
  231. package/dist/src/harness/tool-call-io.d.ts +25 -0
  232. package/dist/src/harness/tool-call-io.js +1 -0
  233. package/dist/src/harness/tool-loop.d.ts +7 -22
  234. package/dist/src/harness/tool-loop.js +1 -3
  235. package/dist/src/harness/tool-model-output.d.ts +1 -2
  236. package/dist/src/harness/tools.d.ts +14 -0
  237. package/dist/src/harness/tools.js +1 -1
  238. package/dist/src/harness/turn-tag-state.d.ts +1 -1
  239. package/dist/src/harness/types.d.ts +6 -0
  240. package/dist/src/instrumentation/ai-sdk-hook-bridge.d.ts +1 -1
  241. package/dist/src/instrumentation/ai-sdk-hook-bridge.js +1 -1
  242. package/dist/src/instrumentation/content.js +1 -1
  243. package/dist/src/instrumentation/dispatch.js +1 -1
  244. package/dist/src/instrumentation/lifecycle.d.ts +28 -52
  245. package/dist/src/instrumentation/native-events.d.ts +2 -1
  246. package/dist/src/instrumentation/native-events.js +1 -1
  247. package/dist/src/instrumentation/provider.d.ts +1 -1
  248. package/dist/src/instrumentation/runtime-context.d.ts +2 -3
  249. package/dist/src/instrumentation/runtime-context.js +1 -1
  250. package/dist/src/instrumentation/runtime.d.ts +11 -1
  251. package/dist/src/instrumentation/runtime.js +1 -1
  252. package/dist/src/instrumentation/state.d.ts +6 -1
  253. package/dist/src/instrumentation/state.js +1 -1
  254. package/dist/src/internal/application/package.js +1 -1
  255. package/dist/src/internal/attachments/limited-read.d.ts +16 -0
  256. package/dist/src/internal/attachments/limited-read.js +1 -0
  257. package/dist/src/internal/authored-definition/schema-backed.d.ts +2 -1
  258. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  259. package/dist/src/internal/gateway.d.ts +2 -0
  260. package/dist/src/internal/gateway.js +1 -1
  261. package/dist/src/internal/mcp/published-tools.d.ts +13 -0
  262. package/dist/src/internal/mcp/published-tools.js +1 -0
  263. package/dist/src/internal/mcp/request-trace-context.d.ts +12 -0
  264. package/dist/src/internal/mcp/request-trace-context.js +1 -0
  265. package/dist/src/internal/mcp/streamable-http-server.d.ts +7 -3
  266. package/dist/src/internal/mcp/streamable-http-server.js +1 -1
  267. package/dist/src/internal/model-auth/transport.d.ts +3 -3
  268. package/dist/src/internal/model-auth/transport.js +1 -1
  269. package/dist/src/internal/nitro/host/instrumentation-entry.js +2 -2
  270. package/dist/src/internal/nitro/routes/channel-dispatch.js +1 -1
  271. package/dist/src/internal/nitro/routes/channel-request-instrumentation.js +1 -1
  272. package/dist/src/internal/nitro/routes/route-invoke-tool.d.ts +24 -0
  273. package/dist/src/internal/nitro/routes/route-invoke-tool.js +1 -0
  274. package/dist/src/models/auto.d.ts +5 -5
  275. package/dist/src/models/auto.js +2 -2
  276. package/dist/src/protocol/message.d.ts +7 -0
  277. package/dist/src/protocol/message.js +1 -1
  278. package/dist/src/protocol/session-projection.d.ts +159 -0
  279. package/dist/src/protocol/session-projection.js +1 -0
  280. package/dist/src/public/ai/index.d.ts +1 -1
  281. package/dist/src/public/ai/index.js +1 -1
  282. package/dist/src/public/channels/chat-sdk/attachment-refs.d.ts +15 -0
  283. package/dist/src/public/channels/chat-sdk/attachment-refs.js +1 -0
  284. package/dist/src/public/channels/chat-sdk/chatSdkChannel.js +2 -2
  285. package/dist/src/public/channels/chat-sdk/messageToUserContent.d.ts +11 -5
  286. package/dist/src/public/channels/chat-sdk/messageToUserContent.js +1 -1
  287. package/dist/src/public/channels/discord/attachments.d.ts +15 -0
  288. package/dist/src/public/channels/discord/attachments.js +1 -0
  289. package/dist/src/public/channels/discord/discordChannel.js +1 -1
  290. package/dist/src/public/channels/discord/inbound.d.ts +13 -0
  291. package/dist/src/public/channels/discord/inbound.js +1 -1
  292. package/dist/src/public/channels/index.d.ts +1 -1
  293. package/dist/src/public/channels/linear/inbound-uploads.d.ts +21 -0
  294. package/dist/src/public/channels/linear/inbound-uploads.js +1 -0
  295. package/dist/src/public/channels/linear/linearChannel.js +1 -1
  296. package/dist/src/public/channels/linq/inboundContent.d.ts +7 -1
  297. package/dist/src/public/channels/linq/inboundContent.js +1 -1
  298. package/dist/src/public/channels/linq/linqChannel.js +1 -1
  299. package/dist/src/public/channels/mcp.d.ts +17 -2
  300. package/dist/src/public/channels/mcp.js +1 -1
  301. package/dist/src/public/channels/photon/attachments.d.ts +21 -0
  302. package/dist/src/public/channels/photon/attachments.js +1 -0
  303. package/dist/src/public/channels/photon/photonIMessageChannel.js +1 -1
  304. package/dist/src/public/channels/slack/attachments.d.ts +3 -1
  305. package/dist/src/public/channels/slack/attachments.js +1 -1
  306. package/dist/src/public/channels/slack/slackChannel.js +1 -1
  307. package/dist/src/public/channels/teams/attachments.d.ts +4 -4
  308. package/dist/src/public/channels/teams/attachments.js +1 -1
  309. package/dist/src/public/channels/telegram/attachments.js +1 -1
  310. package/dist/src/public/channels/twilio/api.d.ts +7 -0
  311. package/dist/src/public/channels/twilio/api.js +1 -1
  312. package/dist/src/public/channels/twilio/inbound.d.ts +7 -0
  313. package/dist/src/public/channels/twilio/inbound.js +2 -2
  314. package/dist/src/public/channels/twilio/twilioChannel.js +1 -1
  315. package/dist/src/public/definitions/channel.d.ts +1 -0
  316. package/dist/src/public/definitions/connections/mcp.d.ts +1 -1
  317. package/dist/src/public/definitions/connections/openapi.d.ts +1 -1
  318. package/dist/src/public/models/openai/chatgpt/model.js +1 -1
  319. package/dist/src/react/index.d.ts +1 -0
  320. package/dist/src/react/index.js +1 -1
  321. package/dist/src/runtime/agent/mock-model-adapter.js +2 -2
  322. package/dist/src/runtime/connections/mcp-client.js +1 -1
  323. package/dist/src/runtime/connections/scoped-authorization.js +1 -1
  324. package/dist/src/runtime/resolve-tool.js +1 -1
  325. package/dist/src/setup/boxes/resolve-provisioning.d.ts +2 -0
  326. package/dist/src/setup/boxes/resolve-provisioning.js +1 -1
  327. package/dist/src/setup/cli/prompt-ui.d.ts +3 -0
  328. package/dist/src/setup/cli/prompt-ui.js +3 -1
  329. package/dist/src/setup/cli/select-component.d.ts +1 -0
  330. package/dist/src/setup/cli/select-component.js +1 -1
  331. package/dist/src/setup/flows/ensure-vercel-project.d.ts +2 -0
  332. package/dist/src/setup/flows/ensure-vercel-project.js +1 -1
  333. package/dist/src/setup/integrations/discord/api.js +1 -1
  334. package/dist/src/setup/integrations/web/auth-options.d.ts +4 -0
  335. package/dist/src/setup/integrations/web/auth-options.js +1 -0
  336. package/dist/src/setup/integrations/web/auth-scaffold.d.ts +7 -0
  337. package/dist/src/setup/integrations/web/auth-scaffold.js +1 -0
  338. package/dist/src/setup/integrations/web/provision-auth.d.ts +3 -0
  339. package/dist/src/setup/integrations/web/provision-auth.js +1 -0
  340. package/dist/src/setup/integrations/web/setup.d.ts +11 -6
  341. package/dist/src/setup/integrations/web/setup.js +3 -3
  342. package/dist/src/setup/prompter.d.ts +2 -0
  343. package/dist/src/setup/prompter.js +1 -1
  344. package/dist/src/setup/scaffold/create/add-to-project.js +1 -1
  345. package/dist/src/setup/scaffold/create/project.js +2 -2
  346. package/dist/src/setup/scaffold/create/web-template.d.ts +3 -3
  347. package/dist/src/setup/scaffold/create/web-template.js +26 -8
  348. package/dist/src/setup/scaffold/update/web-options.js +1 -1
  349. package/dist/src/setup/vercel-project-api.d.ts +9 -0
  350. package/dist/src/setup/vercel-project-api.js +1 -1
  351. package/dist/src/setup/vercel-project.d.ts +4 -2
  352. package/dist/src/setup/vercel-project.js +0 -0
  353. package/dist/src/shared/web-search.d.ts +1 -1
  354. package/dist/src/subagents/adapter.js +1 -1
  355. package/dist/src/subagents/event-proxy-step.js +1 -1
  356. package/dist/src/subagents/hitl-proxy.d.ts +4 -28
  357. package/dist/src/subagents/hitl-proxy.js +1 -1
  358. package/dist/src/svelte/index.d.ts +2 -0
  359. package/dist/src/svelte/index.js +39 -2
  360. package/dist/src/svelte/use-eve-agent.js +1 -1
  361. package/dist/src/tools/approval/policies.d.ts +5 -5
  362. package/dist/src/tools/approval/policies.js +1 -1
  363. package/dist/src/tools/framework/agent.js +1 -1
  364. package/dist/src/tools/provided/agent-router.js +1 -1
  365. package/dist/src/tools/provided/ask-question-workflow.js +1 -1
  366. package/dist/src/tools/provided/ask-question.js +2 -2
  367. package/dist/src/tools/provided/bash.js +1 -1
  368. package/dist/src/tools/provided/framework-tool.d.ts +3 -0
  369. package/dist/src/tools/provided/framework-tool.js +1 -0
  370. package/dist/src/tools/provided/glob.js +2 -2
  371. package/dist/src/tools/provided/grep.js +2 -2
  372. package/dist/src/tools/provided/load-skill.js +1 -1
  373. package/dist/src/tools/provided/no-reply.js +1 -1
  374. package/dist/src/tools/provided/read-file.js +2 -2
  375. package/dist/src/tools/provided/sleep-workflow.js +1 -1
  376. package/dist/src/tools/provided/sleep.js +1 -1
  377. package/dist/src/tools/provided/task-cancel.js +1 -1
  378. package/dist/src/tools/provided/task-wait.js +1 -1
  379. package/dist/src/tools/provided/web-fetch.js +2 -2
  380. package/dist/src/tools/provided/web-search.js +1 -1
  381. package/dist/src/tools/provided/workflow.js +1 -1
  382. package/dist/src/tools/provided/write-file.js +2 -2
  383. package/dist/src/tracing/agent-approval-instrumentation.d.ts +2 -2
  384. package/dist/src/tracing/agent-approval-instrumentation.js +1 -1
  385. package/dist/src/tracing/agent-otel-provider.js +2 -2
  386. package/dist/src/tracing/agent-otel-usage.d.ts +1 -1
  387. package/dist/src/tracing/agent-otel-usage.js +1 -1
  388. package/dist/src/tracing/agent-span-contract.d.ts +8 -1
  389. package/dist/src/tracing/agent-span-contract.js +1 -1
  390. package/dist/src/tracing/agent-tool-instrumentation.d.ts +16 -5
  391. package/dist/src/tracing/agent-tool-instrumentation.js +1 -1
  392. package/dist/src/tracing/agent-trace-context-codec.js +1 -1
  393. package/dist/src/tracing/agent-trace-span-processor.js +1 -1
  394. package/dist/src/tracing/agent-trace-state.d.ts +8 -3
  395. package/dist/src/tracing/install-instrumentation-runtime.js +1 -1
  396. package/dist/src/tracing/invoke-tool-span.d.ts +61 -0
  397. package/dist/src/tracing/invoke-tool-span.js +1 -0
  398. package/dist/src/tracing/local-trace-analysis.js +1 -1
  399. package/dist/src/vue/index.d.ts +2 -0
  400. package/dist/src/vue/index.js +39 -2
  401. package/dist/src/vue/use-eve-agent.js +1 -1
  402. package/docs/agent-config.md +2 -2
  403. package/docs/channels/chat-sdk.mdx +3 -1
  404. package/docs/channels/custom.mdx +3 -0
  405. package/docs/channels/discord.mdx +5 -4
  406. package/docs/channels/eve.mdx +65 -0
  407. package/docs/channels/linear.mdx +1 -1
  408. package/docs/channels/linq.mdx +2 -0
  409. package/docs/channels/mcp.mdx +39 -1
  410. package/docs/channels/photon.mdx +5 -0
  411. package/docs/channels/teams.mdx +4 -7
  412. package/docs/channels/twilio.mdx +1 -1
  413. package/docs/concepts/built-in-tools.md +12 -0
  414. package/docs/concepts/sessions-runs-and-streaming.md +3 -3
  415. package/docs/connections/overview.mdx +1 -1
  416. package/docs/dynamic-configuration/meta.json +1 -1
  417. package/docs/evals/judge.mdx +16 -16
  418. package/docs/evals/overview.mdx +1 -1
  419. package/docs/guides/{evaluate.md → decide.md} +35 -35
  420. package/docs/guides/dynamic-capabilities.md +1 -1
  421. package/docs/guides/frontend/overview.mdx +3 -1
  422. package/docs/guides/hooks.md +1 -1
  423. package/docs/guides/instrumentation/instrumentation.mdx +23 -22
  424. package/docs/guides/instrumentation/otel.mdx +13 -2
  425. package/docs/reference/cli.md +4 -2
  426. package/docs/reference/typescript-api.md +4 -2
  427. package/docs/tools/human-in-the-loop.md +8 -4
  428. package/docs/tools/workflows.mdx +4 -4
  429. package/package.json +13 -11
  430. package/dist/src/ai/evaluate.d.ts +0 -7
  431. package/dist/src/ai/evaluate.js +0 -1
  432. package/dist/src/client/message-task-parts.d.ts +0 -8
  433. package/dist/src/client/message-task-parts.js +0 -1
  434. package/dist/src/compiled/_chunks/workflow/dist-C3ZE62yI.js +0 -25
  435. package/dist/src/compiled/_chunks/workflow/experimental-evaluation-Dm32egEG.js +0 -5
  436. package/dist/src/harness/active-turn-id.d.ts +0 -11
  437. package/dist/src/harness/active-turn-id.js +0 -1
  438. package/dist/src/harness/approval-candidates.js +0 -1
  439. package/dist/src/harness/approval-delivery-coordinator.js +0 -1
  440. package/dist/src/harness/cancelled-turn-emission.d.ts +0 -12
  441. package/dist/src/harness/cancelled-turn-emission.js +0 -1
  442. package/dist/src/harness/emission-state.d.ts +0 -26
  443. package/dist/src/harness/emission-state.js +0 -1
  444. package/dist/src/harness/held-requests.d.ts +0 -18
  445. package/dist/src/harness/held-requests.js +0 -1
  446. package/dist/src/harness/hitl/approval-input-requests.d.ts +0 -27
  447. package/dist/src/harness/hitl/approval-input-requests.js +0 -1
  448. package/dist/src/harness/hitl/pending-input-resolution.d.ts +0 -54
  449. package/dist/src/harness/hitl/pending-input-resolution.js +0 -1
  450. package/dist/src/harness/hitl/session-limit-input-requests.d.ts +0 -12
  451. package/dist/src/harness/hitl/session-limit-input-requests.js +0 -1
  452. package/dist/src/harness/input-requests.d.ts +0 -31
  453. package/dist/src/harness/input-requests.js +0 -1
  454. package/dist/src/harness/pending-input-batches.d.ts +0 -81
  455. package/dist/src/harness/pending-input-batches.js +0 -1
  456. package/dist/src/harness/session-limit-continuation.js +0 -1
  457. package/dist/src/harness/session-limit-enforcement.d.ts +0 -45
  458. package/dist/src/harness/session-limit-enforcement.js +0 -1
  459. package/dist/src/harness/stale-input-responses.js +0 -3
  460. package/dist/src/harness/workflow-dispatch.d.ts +0 -30
  461. package/dist/src/harness/workflow-dispatch.js +0 -1
  462. package/dist/src/public/channels/linear/inbound-images.d.ts +0 -19
  463. package/dist/src/public/channels/linear/inbound-images.js +0 -1
  464. package/dist/src/tracing/agent-action-instrumentation.d.ts +0 -25
  465. package/dist/src/tracing/agent-action-instrumentation.js +0 -1
  466. /package/dist/src/harness/{compaction.d.ts → compaction/engine.d.ts} +0 -0
  467. /package/dist/src/harness/{compaction-prompt.d.ts → compaction/prompt.d.ts} +0 -0
  468. /package/dist/src/harness/{compaction-prompt.js → compaction/prompt.js} +0 -0
  469. /package/dist/src/harness/{approval-delivery-coordinator.d.ts → hitl/coordinator.d.ts} +0 -0
  470. /package/dist/src/harness/{model-call-error.js → model-call/errors.js} +0 -0
@@ -1,3 +1,3 @@
1
- import{APICallError as e}from"../provider/index.js";import{l as t,r as n,s as r,u as i}from"../../_chunks/workflow/esm-DtrPCf49.js";import{RetryError as a,convertDataContentToBase64String as o}from"ai";function s(e){let t=e.toLowerCase();for(let[e,n]of[[`google.vertex`,`gcp.vertex_ai`],[`google.generative-ai`,`gcp.gemini`],[`google-vertex`,`gcp.vertex_ai`],[`amazon-bedrock`,`aws.bedrock`],[`azure-openai`,`azure.ai.openai`],[`anthropic`,`anthropic`],[`openai`,`openai`],[`azure`,`azure.ai.inference`],[`google`,`gcp.gemini`],[`mistral`,`mistral_ai`],[`cohere`,`cohere`],[`bedrock`,`aws.bedrock`],[`groq`,`groq`],[`deepseek`,`deepseek`],[`perplexity`,`perplexity`],[`xai`,`x_ai`]])if(t===e||t.startsWith(e+`.`)||t.startsWith(e+`-`))return n;return e}function c(e){return{"ai.generateText":`invoke_agent`,"ai.streamText":`invoke_agent`,"ai.generateObject":`invoke_agent`,"ai.streamObject":`invoke_agent`,"ai.embed":`embeddings`,"ai.embedMany":`embeddings`,"ai.rerank":`rerank`}[e]??e}function l(e){return typeof e==`string`?[{type:`text`,content:e}]:Array.isArray(e)?e.map(e=>({type:`text`,content:e.content})):[{type:`text`,content:e.content}]}function u(e){switch(e.type){case`text`:return{type:`text`,content:e.text};case`reasoning`:return{type:`reasoning`,content:e.text};case`tool-call`:return{type:`tool_call`,id:e.toolCallId??null,name:e.toolName,arguments:e.input};case`tool-result`:{let t=e.output,n;return t&&(n=t.type===`text`||t.type===`error-text`||t.type===`json`||t.type===`error-json`?t.value:t.type===`execution-denied`?{denied:!0,reason:t.reason}:t),{type:`tool_call_response`,id:e.toolCallId??null,response:n}}case`file`:{let t=e.data,n=(()=>{if(typeof t==`object`&&t&&!(t instanceof URL)&&!(t instanceof Uint8Array)&&!(t instanceof ArrayBuffer)&&`type`in t)switch(t.type){case`data`:return t.data;case`url`:return t.url;case`text`:return t.text;default:return``}return t})(),r;if(n instanceof Uint8Array)r=o(n);else if(typeof n==`string`){if(n.startsWith(`http://`)||n.startsWith(`https://`))return{type:`uri`,modality:d(e.mediaType),mime_type:e.mediaType??null,uri:n};r=n}else if(n instanceof URL)return{type:`uri`,modality:d(e.mediaType),mime_type:e.mediaType??null,uri:n.toString()};else r=String(n);return{type:`blob`,modality:d(e.mediaType),mime_type:e.mediaType??null,content:r}}case`tool-approval-response`:return{type:`tool_approval_response`,approval_id:e.approvalId,approved:e.approved,reason:e.reason};case`custom`:return{type:`custom`,kind:e.kind};case`reasoning-file`:return{type:String(e.type)};default:return{type:String(e.type)}}}function d(e){return!e||e.startsWith(`image/`)?`image`:e.startsWith(`video/`)?`video`:e.startsWith(`audio/`)?`audio`:`image`}function f(e){return e.map(e=>{if(e.role===`system`)return{role:`system`,parts:[{type:`text`,content:e.content}]};let t=e.content.map(u);return{role:e.role,parts:t}})}function p({prompt:e,messages:t}){let n=[];if(typeof e==`string`)n.push({role:`user`,parts:[{type:`text`,content:e}]});else if(Array.isArray(e))for(let t of e){let e=m(t);e&&n.push(e)}if(t)for(let e of t){let t=m(e);t&&n.push(t)}return n}function m(e){return e.role===`system`?{role:`system`,parts:[{type:`text`,content:e.content}]}:e.role===`user`?typeof e.content==`string`?{role:`user`,parts:[{type:`text`,content:e.content}]}:{role:`user`,parts:e.content.map(e=>{switch(e.type){case`text`:return{type:`text`,content:e.text};case`image`:{let t=e.image;return t instanceof URL?{type:`uri`,modality:`image`,mime_type:e.mediaType??null,uri:t.toString()}:typeof t==`string`?t.startsWith(`http://`)||t.startsWith(`https://`)?{type:`uri`,modality:`image`,mime_type:e.mediaType??null,uri:t}:{type:`blob`,modality:`image`,mime_type:e.mediaType??null,content:t}:{type:`blob`,modality:`image`,mime_type:e.mediaType??null,content:o(t)}}case`file`:{let t=e.data,n=(()=>{if(typeof t==`object`&&t&&!(t instanceof URL)&&!(t instanceof Uint8Array)&&!(t instanceof ArrayBuffer)&&`type`in t)switch(t.type){case`data`:return t.data;case`url`:return t.url;case`text`:return t.text;default:return``}return t})();return n instanceof URL?{type:`uri`,modality:d(e.mediaType),mime_type:e.mediaType??null,uri:n.toString()}:typeof n==`string`?n.startsWith(`http://`)||n.startsWith(`https://`)?{type:`uri`,modality:d(e.mediaType),mime_type:e.mediaType??null,uri:n}:{type:`blob`,modality:d(e.mediaType),mime_type:e.mediaType??null,content:n}:{type:`blob`,modality:d(e.mediaType),mime_type:e.mediaType??null,content:o(n)}}default:return{type:String(e.type)}}})}:e.role===`assistant`?typeof e.content==`string`?{role:`assistant`,parts:[{type:`text`,content:e.content}]}:{role:`assistant`,parts:e.content.map(e=>{switch(e.type){case`text`:return{type:`text`,content:e.text};case`reasoning`:return{type:`reasoning`,content:e.text};case`tool-call`:return{type:`tool_call`,id:e.toolCallId??null,name:e.toolName,arguments:e.input};case`tool-result`:{let t=e.output,n;return t&&(n=t.type===`text`||t.type===`error-text`||t.type===`json`||t.type===`error-json`?t.value:t.type===`execution-denied`?{denied:!0,reason:t.reason}:t),{type:`tool_call_response`,id:e.toolCallId??null,response:n}}default:return{type:String(e.type)}}})}:e.role===`tool`?{role:`tool`,parts:e.content.map(e=>{if(e.type===`tool-result`){let t=e.output,n;return t&&(n=t.type===`text`||t.type===`error-text`||t.type===`json`||t.type===`error-json`?t.value:t.type===`execution-denied`?{denied:!0,reason:t.reason}:t),{type:`tool_call_response`,id:e.toolCallId??null,response:n}}return{type:String(e.type)}})}:e}function h({text:e,reasoning:t,toolCalls:n,toolResults:r,files:i,finishReason:a}){let o=[];if(t)for(let e of t)`text`in e&&e.text&&o.push({type:`reasoning`,content:e.text});if(e!=null&&e.length>0&&o.push({type:`text`,content:e}),n)for(let e of n)o.push({type:`tool_call`,id:e.toolCallId,name:e.toolName,arguments:e.input});if(r)for(let e of r)o.push({type:`tool_call_response`,id:e.toolCallId,response:e.output});if(i)for(let e of i)o.push({type:`blob`,modality:d(e.mediaType),mime_type:e.mediaType,content:e.base64});return[{role:`assistant`,parts:o,finish_reason:_(a)}]}function g({objectText:e,finishReason:t}){return[{role:`assistant`,parts:[{type:`text`,content:e}],finish_reason:_(t)}]}function _(e){return{stop:`stop`,length:`length`,"content-filter":`content_filter`,"tool-calls":`tool_call`,error:`error`,other:`stop`,unknown:`stop`}[e]??e}function v(n,r){let i=a.isInstance(r)?r.lastError:r;e.isInstance(i)&&i.statusCode!=null&&n.setAttribute(`http.response.status_code`,i.statusCode),r instanceof Error?(n.recordException({name:r.name,message:r.message,stack:r.stack}),n.setStatus({code:t.ERROR,message:r.message})):n.setStatus({code:t.ERROR})}function y(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`}function b(e){if(!Array.isArray(e))return typeof e==`number`&&!Number.isFinite(e)?void 0:e;let t=new Set(e.filter(y).map(e=>typeof e));if(t.size!==1)return;let[n]=t;if(n===`string`)return e.filter(e=>typeof e==`string`);if(n===`number`){let t=e.filter(e=>typeof e==`number`);return t.every(Number.isFinite)?t:void 0}return e.filter(e=>typeof e==`boolean`)}function x(e){let t={};for(let[n,r]of Object.entries(e??{})){if(r==null)continue;let e=b(r);e!=null&&(t[n]=e)}return t}function S(e){return e?.isEnabled!==!1}function C(e,t){if(!S(e))return{};let n={};for(let[r,i]of Object.entries(t)){if(i==null)continue;if(typeof i==`object`&&`input`in i&&typeof i.input==`function`){if(e?.recordInputs===!1)continue;let t=i.input();if(t!=null){let e=b(t);e!=null&&(n[r]=e)}continue}if(typeof i==`object`&&`output`in i&&typeof i.output==`function`){if(e?.recordOutputs===!1)continue;let t=i.output();if(t!=null){let e=b(t);e!=null&&(n[r]=e)}continue}let t=b(i);t!=null&&(n[r]=t)}return n}var w={usage:!1,providerMetadata:!1,embedding:!1,reranking:!1,runtimeContext:!1,headers:!1,toolChoice:!1,schema:!1};function T(e){return{...w,usage:e.usage??!1,providerMetadata:e.providerMetadata??!1,embedding:e.embedding??!1,reranking:e.reranking??!1,runtimeContext:e.runtimeContext??!1,headers:e.headers??!1,toolChoice:e.toolChoice??!1,schema:e.schema??!1}}function E(e){let t={};for(let[n,r]of Object.entries(e??{}))D(t,`ai.settings.context.${n}`,r);return t}function D(e,t,n){if(n!=null){if(Array.isArray(n)||typeof n!=`object`){e[t]=n;return}for(let[r,i]of Object.entries(n))D(e,`${t}.${r}`,i)}}function O(e){return Object.fromEntries(Object.entries(e??{}).filter(([,e])=>e!=null).map(([e,t])=>[`ai.request.headers.${e}`,t]))}function k(e){return{"ai.usage.inputTokenDetails.noCacheTokens":e.inputTokenDetails?.noCacheTokens,"ai.usage.outputTokenDetails.textTokens":e.outputTokenDetails?.textTokens,"ai.usage.outputTokenDetails.reasoningTokens":e.outputTokenDetails?.reasoningTokens}}function A(e,t,n){let r={};for(let[i,a]of Object.entries(n))t[i]&&a!=null&&Object.assign(r,C(e,a));return r}function j(e){return e==null?void 0:e/1e3}function M(e){return{"gen_ai.client.operation.duration":j(e.responseTimeMs),"gen_ai.client.operation.time_to_first_chunk":j(e.timeToFirstOutputMs),"gen_ai.client.operation.time_per_output_chunk":j(e.timeBetweenOutputChunksMs?.avg)}}var N=class{constructor(e={}){this.callStates=new Map,this.tracer=e.tracer??n.getTracer(`gen_ai`),this.supplementalAttributes=T(e),this.enrichSpan=e.enrichSpan}getCallState(e){return this.callStates.get(e)}cleanupCallState(e){this.callStates.delete(e)}getSpanAttributes({attributes:e,spanType:t,operationId:n,callId:r,runtimeContext:i}){let a;try{a=this.enrichSpan?.call(this,{spanType:t,operationId:n,callId:r,runtimeContext:i})}catch{a=void 0}return{...x(a),...e}}executeTool({callId:e,toolCallId:t,execute:n}){let i=this.getCallState(e)?.toolSpans.get(t);return i==null?n():r.with(i.context,n)}executeLanguageModelCall({callId:e,execute:t}){let n=this.getCallState(e),i=n?.inferenceContext??n?.stepContext;return i==null?t():r.with(i,t)}onStart(e){if(e.operationId===`ai.embed`||e.operationId===`ai.embedMany`){this.onEmbedOperationStart(e);return}if(e.operationId===`ai.rerank`){this.onRerankOperationStart(e);return}if(e.operationId===`ai.generateObject`||e.operationId===`ai.streamObject`){this.onObjectOperationStart(e);return}this.onGenerateStart(e)}onGenerateStart(e){let t={recordInputs:e.recordInputs,recordOutputs:e.recordOutputs,functionId:e.functionId},a={maxOutputTokens:e.maxOutputTokens,temperature:e.temperature,topP:e.topP,topK:e.topK,presencePenalty:e.presencePenalty,frequencyPenalty:e.frequencyPenalty,stopSequences:e.stopSequences,seed:e.seed,maxRetries:e.maxRetries},o=s(e.provider),u=c(e.operationId),d=e.runtimeContext,f=A(t,this.supplementalAttributes,{runtimeContext:E(d),headers:O(e.headers)}),m=C(t,{"gen_ai.operation.name":u,"gen_ai.provider.name":o,"gen_ai.request.model":e.modelId,"gen_ai.agent.name":t.functionId,"gen_ai.request.frequency_penalty":e.frequencyPenalty,"gen_ai.request.max_tokens":e.maxOutputTokens,"gen_ai.request.presence_penalty":e.presencePenalty,"gen_ai.request.temperature":e.temperature??void 0,"gen_ai.request.top_k":e.topK,"gen_ai.request.top_p":e.topP,"gen_ai.request.stop_sequences":e.stopSequences,"gen_ai.request.seed":e.seed,"gen_ai.system_instructions":e.instructions==null?void 0:{input:()=>JSON.stringify(l(e.instructions))},"gen_ai.input.messages":{input:()=>JSON.stringify(p({prompt:void 0,messages:e.messages}))},...f}),h=`${u} ${e.modelId}`,g=this.tracer.startSpan(h,{attributes:this.getSpanAttributes({attributes:m,spanType:`operation`,operationId:e.operationId,callId:e.callId,runtimeContext:d}),kind:i.INTERNAL}),_=n.setSpan(r.active(),g);this.callStates.set(e.callId,{operationId:e.operationId,telemetry:t,rootSpan:g,rootContext:_,stepSpan:void 0,stepContext:void 0,inferenceSpan:void 0,inferenceContext:void 0,embedSpans:new Map,rerankSpan:void 0,toolSpans:new Map,settings:a,provider:e.provider,modelId:e.modelId,runtimeContext:d,baseSupplementalAttributes:f})}onObjectOperationStart(e){let t={recordInputs:e.recordInputs,recordOutputs:e.recordOutputs,functionId:e.functionId},a={maxOutputTokens:e.maxOutputTokens,temperature:e.temperature,topP:e.topP,topK:e.topK,presencePenalty:e.presencePenalty,frequencyPenalty:e.frequencyPenalty,seed:e.seed,maxRetries:e.maxRetries},o=s(e.provider),u=c(e.operationId),d=A(t,this.supplementalAttributes,{headers:O(e.headers)}),f=C(t,{"gen_ai.operation.name":u,"gen_ai.provider.name":o,"gen_ai.request.model":e.modelId,"gen_ai.agent.name":t.functionId,"gen_ai.output.type":`json`,"gen_ai.request.frequency_penalty":e.frequencyPenalty,"gen_ai.request.max_tokens":e.maxOutputTokens,"gen_ai.request.presence_penalty":e.presencePenalty,"gen_ai.request.temperature":e.temperature??void 0,"gen_ai.request.top_k":e.topK,"gen_ai.request.top_p":e.topP,"gen_ai.request.seed":e.seed,"gen_ai.system_instructions":e.system?{input:()=>JSON.stringify(l(e.system))}:void 0,"gen_ai.input.messages":{input:()=>JSON.stringify(p({prompt:e.prompt,messages:e.messages}))},...d,...A(t,this.supplementalAttributes,{schema:{"ai.schema":e.schema?{input:()=>JSON.stringify(e.schema)}:void 0,"ai.schema.name":e.schemaName,"ai.schema.description":e.schemaDescription,"ai.settings.output":e.output}})}),m=`${u} ${e.modelId}`,h=this.tracer.startSpan(m,{attributes:this.getSpanAttributes({attributes:f,spanType:`operation`,operationId:e.operationId,callId:e.callId,runtimeContext:void 0}),kind:i.INTERNAL}),g=n.setSpan(r.active(),h);this.callStates.set(e.callId,{operationId:e.operationId,telemetry:t,rootSpan:h,rootContext:g,stepSpan:void 0,stepContext:void 0,inferenceSpan:void 0,inferenceContext:void 0,embedSpans:new Map,rerankSpan:void 0,toolSpans:new Map,settings:a,provider:e.provider,modelId:e.modelId,runtimeContext:void 0,baseSupplementalAttributes:d,objectSystemInstructions:e.system})}onObjectStepStart(e){let t=this.getCallState(e.callId);if(!t?.rootSpan||!t.rootContext)return;let{telemetry:r}=t,a=s(e.provider),o=t.objectSystemInstructions==null?0:l(t.objectSystemInstructions).length,c=e.promptMessages?.slice(o),u=C(r,{"gen_ai.operation.name":`chat`,"gen_ai.provider.name":a,"gen_ai.request.model":e.modelId,"gen_ai.output.type":`json`,"gen_ai.request.frequency_penalty":t.settings.frequencyPenalty,"gen_ai.request.max_tokens":t.settings.maxOutputTokens,"gen_ai.request.presence_penalty":t.settings.presencePenalty,"gen_ai.request.temperature":t.settings.temperature??void 0,"gen_ai.request.top_k":t.settings.topK,"gen_ai.request.top_p":t.settings.topP,"gen_ai.system_instructions":t.objectSystemInstructions==null?void 0:{input:()=>JSON.stringify(l(t.objectSystemInstructions))},"gen_ai.input.messages":{input:()=>c?JSON.stringify(f(c)):void 0},...t.baseSupplementalAttributes}),d=`chat ${e.modelId}`;t.inferenceSpan=this.tracer.startSpan(d,{attributes:this.getSpanAttributes({attributes:u,spanType:`languageModel`,operationId:t.operationId,callId:e.callId,runtimeContext:t.runtimeContext}),kind:i.CLIENT},t.rootContext),t.inferenceContext=n.setSpan(t.rootContext,t.inferenceSpan)}onObjectStepEnd(e){let t=this.getCallState(e.callId);if(!t?.inferenceSpan)return;let{telemetry:n}=t;t.inferenceSpan.setAttributes(C(n,{"gen_ai.response.finish_reasons":[e.finishReason],"gen_ai.response.id":e.response.id,"gen_ai.response.model":e.response.modelId,"gen_ai.usage.input_tokens":e.usage.inputTokens,"gen_ai.usage.output_tokens":e.usage.outputTokens,"gen_ai.usage.cache_read.input_tokens":e.usage.inputTokenDetails?.cacheReadTokens,"gen_ai.output.messages":{output:()=>{try{return JSON.stringify(g({objectText:e.objectText,finishReason:e.finishReason}))}catch{return e.objectText}}},...A(n,this.supplementalAttributes,{providerMetadata:{"ai.response.providerMetadata":e.providerMetadata?JSON.stringify(e.providerMetadata):void 0},usage:k(e.usage)})})),t.inferenceSpan.end(),t.inferenceSpan=void 0,t.inferenceContext=void 0}onEmbedOperationStart(e){let t={recordInputs:e.recordInputs,recordOutputs:e.recordOutputs,functionId:e.functionId},a=e.runtimeContext,o=s(e.provider),l=A(t,this.supplementalAttributes,{runtimeContext:E(a),headers:O(e.headers)}),u=e.value,d=e.operationId===`ai.embedMany`,f=c(e.operationId),p=C(t,{"gen_ai.operation.name":f,"gen_ai.provider.name":o,"gen_ai.request.model":e.modelId,...l,...A(t,this.supplementalAttributes,{embedding:d?{"ai.values":{input:()=>u.map(e=>JSON.stringify(e))}}:{"ai.value":{input:()=>JSON.stringify(u)}}})}),m=`${f} ${e.modelId}`,h=this.tracer.startSpan(m,{attributes:this.getSpanAttributes({attributes:p,spanType:`operation`,operationId:e.operationId,callId:e.callId,runtimeContext:a}),kind:i.CLIENT}),g=n.setSpan(r.active(),h);this.callStates.set(e.callId,{operationId:e.operationId,telemetry:t,rootSpan:h,rootContext:g,stepSpan:void 0,stepContext:void 0,inferenceSpan:void 0,inferenceContext:void 0,embedSpans:new Map,rerankSpan:void 0,toolSpans:new Map,settings:{maxRetries:e.maxRetries},provider:e.provider,modelId:e.modelId,runtimeContext:a,baseSupplementalAttributes:l})}onStepStart(e){let t=this.getCallState(e.callId);if(!t?.rootSpan||!t.rootContext)return;let{telemetry:r}=t;t.runtimeContext=e.runtimeContext;let a=C(r,{"gen_ai.operation.name":`agent_step`,...t.baseSupplementalAttributes,...A(r,this.supplementalAttributes,{toolChoice:{"ai.prompt.toolChoice":{input:()=>e.stepToolChoice==null?void 0:JSON.stringify(e.stepToolChoice)}}})});t.stepSpan=this.tracer.startSpan(`step ${e.steps.length+1}`,{attributes:this.getSpanAttributes({attributes:a,spanType:`step`,operationId:t.operationId,callId:e.callId,runtimeContext:t.runtimeContext}),kind:i.INTERNAL},t.rootContext),t.stepContext=n.setSpan(t.rootContext,t.stepSpan)}onLanguageModelCallStart(e){let t=this.getCallState(e.callId);if(!t?.stepContext)return;let{telemetry:r}=t,a=s(e.provider);t.inferenceToolDefinitions=e.tools;let o=C(r,{"gen_ai.operation.name":`chat`,"gen_ai.provider.name":a,"gen_ai.request.model":e.modelId,"gen_ai.request.frequency_penalty":t.settings.frequencyPenalty,"gen_ai.request.max_tokens":t.settings.maxOutputTokens,"gen_ai.request.presence_penalty":t.settings.presencePenalty,"gen_ai.request.stop_sequences":t.settings.stopSequences,"gen_ai.request.temperature":t.settings.temperature??void 0,"gen_ai.request.top_k":t.settings.topK,"gen_ai.request.top_p":t.settings.topP,"gen_ai.system_instructions":e.instructions==null?void 0:{input:()=>JSON.stringify(l(e.instructions))},"gen_ai.input.messages":{input:()=>{let t=p({prompt:void 0,messages:e.messages});return t.length>0?JSON.stringify(t):void 0}},"gen_ai.tool.definitions":{input:()=>e.tools?JSON.stringify(e.tools):void 0}});t.inferenceSpan=this.tracer.startSpan(`chat ${e.modelId}`,{attributes:this.getSpanAttributes({attributes:o,spanType:`languageModel`,operationId:t.operationId,callId:e.callId,runtimeContext:t.runtimeContext}),kind:i.CLIENT},t.stepContext),t.inferenceContext=n.setSpan(t.stepContext,t.inferenceSpan)}onLanguageModelCallEnd(e){let t=this.getCallState(e.callId);if(!t?.inferenceSpan)return;let{telemetry:n}=t,r=s(e.provider),a=[...t.inferenceToolDefinitions??[]],o=new Set(a.flatMap(e=>typeof e.name==`string`?[e.name]:[])),c=!1;for(let t of e.content)t.type===`tool-call`&&t.providerExecuted&&!o.has(t.toolName)&&(a.push({type:`extension`,name:t.toolName}),o.add(t.toolName),c=!0);t.inferenceSpan.setAttributes(C(n,{...M(e.performance),"gen_ai.provider.name":r,"gen_ai.response.finish_reasons":[e.finishReason],"gen_ai.response.id":e.responseId,"gen_ai.response.model":e.modelId,"gen_ai.usage.input_tokens":e.usage.inputTokens,"gen_ai.usage.output_tokens":e.usage.outputTokens,"gen_ai.usage.cache_read.input_tokens":e.usage.inputTokenDetails?.cacheReadTokens,"gen_ai.usage.cache_creation.input_tokens":e.usage.inputTokenDetails?.cacheWriteTokens,"gen_ai.output.messages":{output:()=>JSON.stringify(h({text:e.content.filter(e=>e.type===`text`).map(e=>e.text).join(``)||void 0,reasoning:e.content.filter(e=>e.type===`reasoning`),toolCalls:e.content.filter(e=>e.type===`tool-call`),toolResults:e.content.filter(e=>e.type===`tool-result`),files:e.content.filter(e=>e.type===`file`).map(e=>e.file),finishReason:e.finishReason}))},"gen_ai.tool.definitions":c?{input:()=>JSON.stringify(a)}:void 0,...A(n,this.supplementalAttributes,{providerMetadata:{"ai.response.providerMetadata":e.providerMetadata?JSON.stringify(e.providerMetadata):void 0},usage:k(e.usage)})}));let l=new Map;for(let t of e.content)(t.type===`tool-error`||t.type===`tool-result`&&t.preliminary!==!0)&&l.set(t.toolCallId,t);let u=new Set;for(let r of e.content){if(r.type!==`tool-call`||!r.providerExecuted||u.has(r.toolCallId))continue;u.add(r.toolCallId);let a=this.tracer.startSpan(`execute_tool ${r.toolName}`,{attributes:this.getSpanAttributes({attributes:C(n,{"gen_ai.operation.name":`execute_tool`,"gen_ai.tool.name":r.toolName,"gen_ai.tool.call.id":r.toolCallId,"gen_ai.tool.type":`extension`,"gen_ai.tool.call.arguments":{input:()=>JSON.stringify(r.input)}}),spanType:`tool`,operationId:t.operationId,callId:e.callId,runtimeContext:t.runtimeContext}),kind:i.INTERNAL},t.inferenceContext),o=l.get(r.toolCallId);if(o?.type===`tool-result`)try{a.setAttributes(C(n,{"gen_ai.tool.call.result":{output:()=>JSON.stringify(o.output)}}))}catch{}else o?.type===`tool-error`&&v(a,o.error);a.end()}t.inferenceSpan.end(),t.inferenceSpan=void 0,t.inferenceContext=void 0,t.inferenceToolDefinitions=void 0}onToolExecutionStart(e){let t=this.getCallState(e.callId),r=t?.stepContext??t?.rootContext;if(!t||!r)return;let{telemetry:a}=t,{toolCall:o}=e,s=C(a,{"gen_ai.operation.name":`execute_tool`,"gen_ai.tool.name":o.toolName,"gen_ai.tool.call.id":o.toolCallId,"gen_ai.tool.type":o.providerExecuted?`extension`:`function`,"gen_ai.tool.call.arguments":{input:()=>JSON.stringify(o.input)}}),c=`execute_tool ${o.toolName}`,l=this.tracer.startSpan(c,{attributes:this.getSpanAttributes({attributes:s,spanType:`tool`,operationId:t.operationId,callId:e.callId,runtimeContext:t.runtimeContext}),kind:i.INTERNAL},r),u=n.setSpan(r,l);t.toolSpans.set(o.toolCallId,{span:l,context:u})}onToolExecutionEnd(e){let t=this.getCallState(e.callId);if(!t)return;let n=t.toolSpans.get(e.toolCall.toolCallId);if(!n)return;let{span:r}=n,{telemetry:i}=t,{toolOutput:a}=e;if(r.setAttributes(C(i,{"gen_ai.execute_tool.duration":j(e.toolExecutionMs)})),a.type===`tool-result`)try{r.setAttributes(C(i,{"gen_ai.tool.call.result":{output:()=>JSON.stringify(a.output)}}))}catch{}else v(r,a.error);r.end(),t.toolSpans.delete(e.toolCall.toolCallId)}onStepEnd(e){let t=this.getCallState(e.callId);if(!t?.stepSpan)return;let{telemetry:n}=t;t.stepSpan.setAttributes(A(n,this.supplementalAttributes,{providerMetadata:{"ai.response.providerMetadata":e.providerMetadata?JSON.stringify(e.providerMetadata):void 0},usage:k(e.usage)})),t.stepSpan.end(),t.stepSpan=void 0,t.stepContext=void 0}onStepFinish(e){this.onStepEnd(e)}onEnd(e){let t=this.getCallState(e.callId);if(t?.rootSpan){if(t.operationId===`ai.embed`||t.operationId===`ai.embedMany`){this.onEmbedOperationEnd(e);return}if(t.operationId===`ai.rerank`){this.onRerankOperationEnd(e);return}if(t.operationId===`ai.generateObject`||t.operationId===`ai.streamObject`){this.onObjectOperationEnd(e);return}this.onGenerateEnd(e)}}onGenerateEnd(e){let t=this.getCallState(e.callId);if(!t?.rootSpan)return;let{telemetry:n}=t;t.rootSpan.setAttributes(C(n,{"gen_ai.response.finish_reasons":[e.finishReason],"gen_ai.usage.input_tokens":e.usage.inputTokens,"gen_ai.usage.output_tokens":e.usage.outputTokens,"gen_ai.usage.cache_read.input_tokens":e.usage.inputTokenDetails?.cacheReadTokens,"gen_ai.usage.cache_creation.input_tokens":e.usage.inputTokenDetails?.cacheWriteTokens,"gen_ai.output.messages":{output:()=>JSON.stringify(h({text:e.text??void 0,reasoning:e.finalStep.reasoning,toolCalls:e.toolCalls,toolResults:e.toolResults,files:e.files,finishReason:e.finishReason}))},...A(n,this.supplementalAttributes,{providerMetadata:{"ai.response.providerMetadata":e.finalStep.providerMetadata?JSON.stringify(e.finalStep.providerMetadata):void 0},usage:k(e.usage)})})),t.rootSpan.end(),this.cleanupCallState(e.callId)}onObjectOperationEnd(e){let t=this.getCallState(e.callId);if(!t?.rootSpan)return;let{telemetry:n}=t;t.rootSpan.setAttributes(C(n,{"gen_ai.response.finish_reasons":[e.finishReason],"gen_ai.usage.input_tokens":e.usage.inputTokens,"gen_ai.usage.output_tokens":e.usage.outputTokens,"gen_ai.usage.cache_read.input_tokens":e.usage.inputTokenDetails?.cacheReadTokens,"gen_ai.output.messages":{output:()=>e.object==null?void 0:JSON.stringify(g({objectText:JSON.stringify(e.object),finishReason:e.finishReason}))},...A(n,this.supplementalAttributes,{providerMetadata:{"ai.response.providerMetadata":e.providerMetadata?JSON.stringify(e.providerMetadata):void 0},usage:k(e.usage)})})),t.rootSpan.end(),this.cleanupCallState(e.callId)}onEmbedOperationEnd(e){let t=this.getCallState(e.callId);if(!t?.rootSpan)return;let{telemetry:n}=t,r=t.operationId===`ai.embedMany`;t.rootSpan.setAttributes(C(n,{...A(n,this.supplementalAttributes,{embedding:r?{"ai.embeddings":{output:()=>e.embedding.map(e=>JSON.stringify(e))}}:{"ai.embedding":{output:()=>JSON.stringify(e.embedding)}}})})),t.rootSpan.end(),this.cleanupCallState(e.callId)}onEmbedStart(e){let t=this.getCallState(e.callId);if(!t?.rootSpan||!t.rootContext)return;let{telemetry:r}=t,a=C(r,{"gen_ai.operation.name":`embeddings`,"gen_ai.provider.name":s(t.provider),"gen_ai.request.model":t.modelId,...t.baseSupplementalAttributes,...A(r,this.supplementalAttributes,{embedding:{"ai.values":{input:()=>e.values.map(e=>JSON.stringify(e))}}})}),o=`embeddings ${t.modelId}`,c=this.tracer.startSpan(o,{attributes:this.getSpanAttributes({attributes:a,spanType:`embedding`,operationId:t.operationId,callId:e.callId,runtimeContext:t.runtimeContext}),kind:i.CLIENT},t.rootContext),l=n.setSpan(t.rootContext,c);t.embedSpans.set(e.embedCallId,{span:c,context:l})}onEmbedEnd(e){let t=this.getCallState(e.callId);if(!t)return;let n=t.embedSpans.get(e.embedCallId);if(!n)return;let{span:r}=n,{telemetry:i}=t;r.setAttributes(C(i,{"gen_ai.usage.input_tokens":e.usage.tokens,...A(i,this.supplementalAttributes,{embedding:{"ai.embeddings":{output:()=>e.embeddings.map(e=>JSON.stringify(e))}}})})),r.end(),t.embedSpans.delete(e.embedCallId)}onRerankOperationStart(e){let t={recordInputs:e.recordInputs,recordOutputs:e.recordOutputs,functionId:e.functionId},a=e.runtimeContext,o=s(e.provider),c=A(t,this.supplementalAttributes,{runtimeContext:E(a),headers:O(e.headers)}),l=C(t,{"gen_ai.operation.name":`rerank`,"gen_ai.provider.name":o,"gen_ai.request.model":e.modelId,...c,...A(t,this.supplementalAttributes,{reranking:{"ai.documents":{input:()=>e.documents.map(e=>JSON.stringify(e))}}})}),u=`rerank ${e.modelId}`,d=this.tracer.startSpan(u,{attributes:this.getSpanAttributes({attributes:l,spanType:`operation`,operationId:e.operationId,callId:e.callId,runtimeContext:a}),kind:i.CLIENT}),f=n.setSpan(r.active(),d);this.callStates.set(e.callId,{operationId:e.operationId,telemetry:t,rootSpan:d,rootContext:f,stepSpan:void 0,stepContext:void 0,inferenceSpan:void 0,inferenceContext:void 0,embedSpans:new Map,rerankSpan:void 0,toolSpans:new Map,settings:{maxRetries:e.maxRetries},provider:e.provider,modelId:e.modelId,runtimeContext:a,baseSupplementalAttributes:c})}onRerankOperationEnd(e){let t=this.getCallState(e.callId);t?.rootSpan&&(t.rootSpan.end(),this.cleanupCallState(e.callId))}onRerankStart(e){let t=this.getCallState(e.callId);if(!t?.rootSpan||!t.rootContext)return;let{telemetry:r}=t,a=C(r,{"gen_ai.operation.name":`rerank`,"gen_ai.provider.name":s(t.provider),"gen_ai.request.model":t.modelId,...t.baseSupplementalAttributes,...A(r,this.supplementalAttributes,{reranking:{"ai.documents":{input:()=>e.documents.map(e=>JSON.stringify(e))}}})}),o=`rerank ${t.modelId}`,c=this.tracer.startSpan(o,{attributes:this.getSpanAttributes({attributes:a,spanType:`reranking`,operationId:t.operationId,callId:e.callId,runtimeContext:t.runtimeContext}),kind:i.CLIENT},t.rootContext);t.rerankSpan={span:c,context:n.setSpan(t.rootContext,c)}}onRerankEnd(e){let t=this.getCallState(e.callId);if(!t?.rerankSpan)return;let{span:n}=t.rerankSpan,{telemetry:r}=t;n.setAttributes(A(r,this.supplementalAttributes,{reranking:{"ai.ranking.type":e.documentsType,"ai.ranking":{output:()=>e.ranking.map(e=>JSON.stringify(e))}}})),n.end(),t.rerankSpan=void 0}onAbort(e){let t=this.getCallState(e.callId);if(t?.rootSpan){for(let{span:e}of t.toolSpans.values())e.end();t.toolSpans.clear(),t.inferenceSpan&&(t.inferenceSpan.end(),t.inferenceSpan=void 0,t.inferenceContext=void 0),t.stepSpan&&(t.stepSpan.end(),t.stepSpan=void 0,t.stepContext=void 0);for(let{span:e}of t.embedSpans.values())e.end();t.embedSpans.clear(),t.rerankSpan&&=(t.rerankSpan.span.end(),void 0),t.rootSpan.end(),this.cleanupCallState(e.callId)}}onError(e){let t=e;if(!t?.callId)return;let n=this.getCallState(t.callId);if(!n?.rootSpan)return;let r=t.error??e;for(let{span:e}of n.toolSpans.values())v(e,r),e.end();n.toolSpans.clear(),n.inferenceSpan&&(v(n.inferenceSpan,r),n.inferenceSpan.end(),n.inferenceSpan=void 0,n.inferenceContext=void 0),n.stepSpan&&(v(n.stepSpan,r),n.stepSpan.end(),n.stepSpan=void 0,n.stepContext=void 0);for(let{span:e}of n.embedSpans.values())v(e,r),e.end();n.embedSpans.clear(),n.rerankSpan&&=(v(n.rerankSpan.span,r),n.rerankSpan.span.end(),void 0),v(n.rootSpan,r),n.rootSpan.end(),this.cleanupCallState(t.callId)}};function P({operationId:e,telemetry:t}){return{"operation.name":`${e}${t?.functionId==null?``:` ${t.functionId}`}`,"resource.name":t?.functionId,"ai.operationId":e,"ai.telemetry.functionId":t?.functionId}}function F({model:e,settings:t,headers:n,context:r}){return{"ai.model.provider":e.provider,"ai.model.id":e.modelId,...Object.entries(t).reduce((e,[t,n])=>(e[`ai.settings.${t}`]=n,e),{}),...E(r),...Object.entries(n??{}).reduce((e,[t,n])=>(n!==void 0&&(e[`ai.request.headers.${t}`]=n),e),{})}}function I(e){return JSON.stringify(e.map(e=>({...e,content:typeof e.content==`string`?e.content:e.content.map(e=>e.type===`file`?{...e,data:L(e.data)}:e)})))}function L(e){switch(e.type){case`data`:return e.data instanceof Uint8Array?o(e.data):e.data;case`url`:return e.url.toString();case`reference`:return e.reference;case`text`:return e.text}}function R(e,n){n instanceof Error?(e.recordException({name:n.name,message:n.message,stack:n.stack}),e.setStatus({code:t.ERROR,message:n.message})):e.setStatus({code:t.ERROR})}function z(e){return e?.isEnabled!==!1}function B(e,t){if(!z(e))return{};let n={};for(let[r,i]of Object.entries(t)){if(i==null)continue;if(typeof i==`object`&&`input`in i&&typeof i.input==`function`){if(e?.recordInputs===!1)continue;let t=i.input();if(t!=null){let e=b(t);e!=null&&(n[r]=e)}continue}if(typeof i==`object`&&`output`in i&&typeof i.output==`function`){if(e?.recordOutputs===!1)continue;let t=i.output();if(t!=null){let e=b(t);e!=null&&(n[r]=e)}continue}let t=b(i);t!=null&&(n[r]=t)}return n}var V=class{constructor(e={}){this.callStates=new Map,this.tracer=e.tracer??n.getTracer(`ai`)}getCallState(e){return this.callStates.get(e)}cleanupCallState(e){this.callStates.delete(e)}executeTool({callId:e,toolCallId:t,execute:n}){let i=this.getCallState(e)?.toolSpans.get(t);return i==null?n():r.with(i.context,n)}executeLanguageModelCall({callId:e,execute:t}){let n=this.getCallState(e)?.stepContext;return n==null?t():r.with(n,t)}onStart(e){if(e.operationId===`ai.embed`||e.operationId===`ai.embedMany`){this.onEmbedOperationStart(e);return}if(e.operationId===`ai.rerank`){this.onRerankOperationStart(e);return}if(e.operationId===`ai.generateObject`||e.operationId===`ai.streamObject`){this.onObjectOperationStart(e);return}this.onGenerateStart(e)}onGenerateStart(e){let t={recordInputs:e.recordInputs,recordOutputs:e.recordOutputs,functionId:e.functionId},i={maxOutputTokens:e.maxOutputTokens,temperature:e.temperature,topP:e.topP,topK:e.topK,presencePenalty:e.presencePenalty,frequencyPenalty:e.frequencyPenalty,stopSequences:e.stopSequences,seed:e.seed,maxRetries:e.maxRetries},a=F({model:{provider:e.provider,modelId:e.modelId},headers:e.headers,settings:i,context:e.runtimeContext}),o=B(t,{...P({operationId:e.operationId,telemetry:t}),...a,"ai.model.provider":e.provider,"ai.model.id":e.modelId,"ai.prompt":{input:()=>JSON.stringify({system:e.instructions,messages:e.messages})}}),s=this.tracer.startSpan(e.operationId,{attributes:o}),c=n.setSpan(r.active(),s);this.callStates.set(e.callId,{operationId:e.operationId,telemetry:t,rootSpan:s,rootContext:c,stepSpan:void 0,stepContext:void 0,embedSpans:new Map,rerankSpan:void 0,toolSpans:new Map,baseTelemetryAttributes:a,settings:i})}onObjectOperationStart(e){let t={recordInputs:e.recordInputs,recordOutputs:e.recordOutputs,functionId:e.functionId},i={maxOutputTokens:e.maxOutputTokens,temperature:e.temperature,topP:e.topP,topK:e.topK,presencePenalty:e.presencePenalty,frequencyPenalty:e.frequencyPenalty,seed:e.seed,maxRetries:e.maxRetries},a=F({model:{provider:e.provider,modelId:e.modelId},headers:e.headers,settings:i,context:void 0}),o=B(t,{...P({operationId:e.operationId,telemetry:t}),...a,"ai.prompt":{input:()=>JSON.stringify({system:e.system,prompt:e.prompt,messages:e.messages})},"ai.schema":e.schema?{input:()=>JSON.stringify(e.schema)}:void 0,"ai.schema.name":e.schemaName,"ai.schema.description":e.schemaDescription,"ai.settings.output":e.output}),s=this.tracer.startSpan(e.operationId,{attributes:o}),c=n.setSpan(r.active(),s);this.callStates.set(e.callId,{operationId:e.operationId,telemetry:t,rootSpan:s,rootContext:c,stepSpan:void 0,stepContext:void 0,embedSpans:new Map,rerankSpan:void 0,toolSpans:new Map,baseTelemetryAttributes:a,settings:i})}onObjectStepStart(e){let t=this.getCallState(e.callId);if(!t?.rootSpan||!t.rootContext)return;let{telemetry:r}=t,i=t.operationId===`ai.streamObject`?`ai.streamObject.doStream`:`ai.generateObject.doGenerate`,a=B(r,{...P({operationId:i,telemetry:r}),...t.baseTelemetryAttributes,"ai.prompt.messages":{input:()=>e.promptMessages?I(e.promptMessages):void 0},"gen_ai.system":e.provider,"gen_ai.request.model":e.modelId,"gen_ai.request.frequency_penalty":t.settings.frequencyPenalty,"gen_ai.request.max_tokens":t.settings.maxOutputTokens,"gen_ai.request.presence_penalty":t.settings.presencePenalty,"gen_ai.request.temperature":t.settings.temperature??void 0,"gen_ai.request.top_k":t.settings.topK,"gen_ai.request.top_p":t.settings.topP});t.stepSpan=this.tracer.startSpan(i,{attributes:a},t.rootContext),t.stepContext=n.setSpan(t.rootContext,t.stepSpan)}onObjectStepEnd(e){let t=this.getCallState(e.callId);if(!t?.stepSpan)return;let{telemetry:n}=t;t.stepSpan.setAttributes(B(n,{"ai.response.finishReason":e.finishReason,"ai.response.object":{output:()=>{try{return JSON.stringify(JSON.parse(e.objectText))}catch{return e.objectText}}},"ai.response.id":e.response.id,"ai.response.model":e.response.modelId,"ai.response.timestamp":e.response.timestamp.toISOString(),"ai.response.providerMetadata":e.providerMetadata?JSON.stringify(e.providerMetadata):void 0,"ai.usage.inputTokens":e.usage.inputTokens,"ai.usage.outputTokens":e.usage.outputTokens,"ai.usage.totalTokens":e.usage.totalTokens,"ai.usage.reasoningTokens":e.usage.outputTokenDetails?.reasoningTokens,"ai.usage.cachedInputTokens":e.usage.inputTokenDetails?.cacheReadTokens,"gen_ai.response.finish_reasons":[e.finishReason],"gen_ai.response.id":e.response.id,"gen_ai.response.model":e.response.modelId,"gen_ai.usage.input_tokens":e.usage.inputTokens,"gen_ai.usage.output_tokens":e.usage.outputTokens})),e.msToFirstChunk!=null&&(t.stepSpan.addEvent(`ai.stream.firstChunk`,{"ai.stream.msToFirstChunk":e.msToFirstChunk}),t.stepSpan.setAttributes({"ai.stream.msToFirstChunk":e.msToFirstChunk})),t.stepSpan.end(),t.stepSpan=void 0,t.stepContext=void 0}onEmbedOperationStart(e){let t={recordInputs:e.recordInputs,recordOutputs:e.recordOutputs,functionId:e.functionId},i={maxRetries:e.maxRetries},a=F({model:{provider:e.provider,modelId:e.modelId},headers:e.headers,settings:i,context:e.runtimeContext}),o=e.value,s=e.operationId===`ai.embedMany`,c=B(t,{...P({operationId:e.operationId,telemetry:t}),...a,...s?{"ai.values":{input:()=>o.map(e=>JSON.stringify(e))}}:{"ai.value":{input:()=>JSON.stringify(o)}}}),l=this.tracer.startSpan(e.operationId,{attributes:c}),u=n.setSpan(r.active(),l);this.callStates.set(e.callId,{operationId:e.operationId,telemetry:t,rootSpan:l,rootContext:u,stepSpan:void 0,stepContext:void 0,embedSpans:new Map,rerankSpan:void 0,toolSpans:new Map,baseTelemetryAttributes:a,settings:i})}onStepStart(e){let t=this.getCallState(e.callId);if(!t?.rootSpan||!t.rootContext)return;let{telemetry:r}=t,i=t.operationId===`ai.streamText`?`ai.streamText.doStream`:`ai.generateText.doGenerate`,a=B(r,{...P({operationId:i,telemetry:r}),...t.baseTelemetryAttributes,"ai.model.provider":e.provider,"ai.model.id":e.modelId,"ai.prompt.messages":{input:()=>e.promptMessages?I(e.promptMessages):void 0},"ai.prompt.tools":{input:()=>e.stepTools?.map(e=>JSON.stringify(e))},"ai.prompt.toolChoice":{input:()=>e.stepToolChoice==null?void 0:JSON.stringify(e.stepToolChoice)},"gen_ai.system":e.provider,"gen_ai.request.model":e.modelId,"gen_ai.request.frequency_penalty":t.settings.frequencyPenalty,"gen_ai.request.max_tokens":t.settings.maxOutputTokens,"gen_ai.request.presence_penalty":t.settings.presencePenalty,"gen_ai.request.stop_sequences":t.settings.stopSequences,"gen_ai.request.temperature":t.settings.temperature??void 0,"gen_ai.request.top_k":t.settings.topK,"gen_ai.request.top_p":t.settings.topP});t.stepSpan=this.tracer.startSpan(i,{attributes:a},t.rootContext),t.stepContext=n.setSpan(t.rootContext,t.stepSpan)}onToolExecutionStart(e){let t=this.getCallState(e.callId);if(!t?.stepContext)return;let{telemetry:r}=t,{toolCall:i}=e,a=B(r,{...P({operationId:`ai.toolCall`,telemetry:r}),...Object.fromEntries(Object.entries(t.baseTelemetryAttributes).filter(([e])=>e.startsWith(`ai.settings.context.`))),"ai.toolCall.name":i.toolName,"ai.toolCall.id":i.toolCallId,"ai.toolCall.args":{output:()=>JSON.stringify(i.input)}}),o=this.tracer.startSpan(`ai.toolCall`,{attributes:a},t.stepContext),s=n.setSpan(t.stepContext,o);t.toolSpans.set(i.toolCallId,{span:o,context:s})}onToolExecutionEnd(e){let t=this.getCallState(e.callId);if(!t)return;let n=t.toolSpans.get(e.toolCall.toolCallId);if(!n)return;let{span:r}=n,{telemetry:i}=t,{toolOutput:a}=e;if(a.type===`tool-result`)try{r.setAttributes(B(i,{"ai.toolCall.result":{output:()=>JSON.stringify(a.output)}}))}catch{}else R(r,a.error);r.end(),t.toolSpans.delete(e.toolCall.toolCallId)}onStepEnd(e){let t=this.getCallState(e.callId);if(!t?.stepSpan)return;let{telemetry:n}=t,r=t.operationId===`ai.streamText`;t.stepSpan.setAttributes(B(n,{"ai.response.finishReason":e.finishReason,"ai.response.text":{output:()=>e.text??void 0},"ai.response.reasoning":{output:()=>e.reasoning.length>0?e.reasoning.filter(e=>`text`in e).map(e=>e.text).join(`
2
- `):void 0},"ai.response.toolCalls":{output:()=>e.toolCalls.length>0?JSON.stringify(e.toolCalls.map(e=>({toolCallId:e.toolCallId,toolName:e.toolName,input:e.input}))):void 0},"ai.response.files":{output:()=>e.files.length>0?JSON.stringify(e.files.map(e=>({type:`file`,mediaType:e.mediaType,data:e.base64}))):void 0},"ai.response.id":e.response.id,"ai.response.model":e.response.modelId,"ai.response.timestamp":e.response.timestamp.toISOString(),"ai.response.providerMetadata":e.providerMetadata?JSON.stringify(e.providerMetadata):void 0,"ai.response.msToFirstChunk":r?e.performance.timeToFirstOutputMs:void 0,"ai.response.msToFinish":r?e.performance.responseTimeMs:void 0,"ai.response.avgOutputTokensPerSecond":r?e.performance.effectiveOutputTokensPerSecond:void 0,"ai.usage.inputTokens":e.usage.inputTokens,"ai.usage.outputTokens":e.usage.outputTokens,"ai.usage.totalTokens":e.usage.totalTokens,"ai.usage.reasoningTokens":e.usage.outputTokenDetails?.reasoningTokens,"ai.usage.cachedInputTokens":e.usage.inputTokenDetails?.cacheReadTokens,"ai.usage.inputTokenDetails.noCacheTokens":e.usage.inputTokenDetails?.noCacheTokens,"ai.usage.inputTokenDetails.cacheReadTokens":e.usage.inputTokenDetails?.cacheReadTokens,"ai.usage.inputTokenDetails.cacheWriteTokens":e.usage.inputTokenDetails?.cacheWriteTokens,"ai.usage.outputTokenDetails.textTokens":e.usage.outputTokenDetails?.textTokens,"ai.usage.outputTokenDetails.reasoningTokens":e.usage.outputTokenDetails?.reasoningTokens,"gen_ai.response.finish_reasons":[e.finishReason],"gen_ai.response.id":e.response.id,"gen_ai.response.model":e.response.modelId,"gen_ai.usage.input_tokens":e.usage.inputTokens,"gen_ai.usage.output_tokens":e.usage.outputTokens})),r&&e.performance.timeToFirstOutputMs!=null&&t.stepSpan.addEvent(`ai.stream.firstChunk`,{"ai.response.msToFirstChunk":e.performance.timeToFirstOutputMs}),r&&t.stepSpan.addEvent(`ai.stream.finish`,{"ai.response.msToFinish":e.performance.responseTimeMs,"ai.response.avgOutputTokensPerSecond":e.performance.effectiveOutputTokensPerSecond}),t.stepSpan.end(),t.stepSpan=void 0,t.stepContext=void 0}onStepFinish(e){this.onStepEnd(e)}onEnd(e){let t=this.getCallState(e.callId);if(t?.rootSpan){if(t.operationId===`ai.embed`||t.operationId===`ai.embedMany`){this.onEmbedOperationEnd(e);return}if(t.operationId===`ai.rerank`){this.onRerankOperationEnd(e);return}if(t.operationId===`ai.generateObject`||t.operationId===`ai.streamObject`){this.onObjectOperationEnd(e);return}this.onGenerateEnd(e)}}onGenerateEnd(e){let t=this.getCallState(e.callId);if(!t?.rootSpan)return;let{telemetry:n}=t;t.rootSpan.setAttributes(B(n,{"ai.response.finishReason":e.finishReason,"ai.response.text":{output:()=>e.text??void 0},"ai.response.reasoning":{output:()=>e.finalStep.reasoning.length>0?e.finalStep.reasoning.filter(e=>`text`in e).map(e=>e.text).join(`
3
- `):void 0},"ai.response.toolCalls":{output:()=>e.toolCalls.length>0?JSON.stringify(e.toolCalls.map(e=>({toolCallId:e.toolCallId,toolName:e.toolName,input:e.input}))):void 0},"ai.response.files":{output:()=>e.files.length>0?JSON.stringify(e.files.map(e=>({type:`file`,mediaType:e.mediaType,data:e.base64}))):void 0},"ai.response.providerMetadata":e.finalStep.providerMetadata?JSON.stringify(e.finalStep.providerMetadata):void 0,"ai.usage.inputTokens":e.usage.inputTokens,"ai.usage.outputTokens":e.usage.outputTokens,"ai.usage.totalTokens":e.usage.totalTokens,"ai.usage.reasoningTokens":e.usage.outputTokenDetails?.reasoningTokens,"ai.usage.cachedInputTokens":e.usage.inputTokenDetails?.cacheReadTokens,"ai.usage.inputTokenDetails.noCacheTokens":e.usage.inputTokenDetails?.noCacheTokens,"ai.usage.inputTokenDetails.cacheReadTokens":e.usage.inputTokenDetails?.cacheReadTokens,"ai.usage.inputTokenDetails.cacheWriteTokens":e.usage.inputTokenDetails?.cacheWriteTokens,"ai.usage.outputTokenDetails.textTokens":e.usage.outputTokenDetails?.textTokens,"ai.usage.outputTokenDetails.reasoningTokens":e.usage.outputTokenDetails?.reasoningTokens})),t.rootSpan.end(),this.cleanupCallState(e.callId)}onObjectOperationEnd(e){let t=this.getCallState(e.callId);if(!t?.rootSpan)return;let{telemetry:n}=t;t.rootSpan.setAttributes(B(n,{"ai.response.finishReason":e.finishReason,"ai.response.object":{output:()=>e.object==null?void 0:JSON.stringify(e.object)},"ai.response.providerMetadata":e.providerMetadata?JSON.stringify(e.providerMetadata):void 0,"ai.usage.inputTokens":e.usage.inputTokens,"ai.usage.outputTokens":e.usage.outputTokens,"ai.usage.totalTokens":e.usage.totalTokens,"ai.usage.reasoningTokens":e.usage.outputTokenDetails?.reasoningTokens,"ai.usage.cachedInputTokens":e.usage.inputTokenDetails?.cacheReadTokens})),t.rootSpan.end(),this.cleanupCallState(e.callId)}onEmbedOperationEnd(e){let t=this.getCallState(e.callId);if(!t?.rootSpan)return;let{telemetry:n}=t,r=t.operationId===`ai.embedMany`;t.rootSpan.setAttributes(B(n,{...r?{"ai.embeddings":{output:()=>e.embedding.map(e=>JSON.stringify(e))}}:{"ai.embedding":{output:()=>JSON.stringify(e.embedding)}},"ai.usage.tokens":e.usage.tokens})),t.rootSpan.end(),this.cleanupCallState(e.callId)}onEmbedStart(e){let t=this.getCallState(e.callId);if(!t?.rootSpan||!t.rootContext)return;let{telemetry:r}=t,i=B(r,{...P({operationId:e.operationId,telemetry:r}),...t.baseTelemetryAttributes,"ai.values":{input:()=>e.values.map(e=>JSON.stringify(e))}}),a=this.tracer.startSpan(e.operationId,{attributes:i},t.rootContext),o=n.setSpan(t.rootContext,a);t.embedSpans.set(e.embedCallId,{span:a,context:o})}onEmbedEnd(e){let t=this.getCallState(e.callId);if(!t)return;let n=t.embedSpans.get(e.embedCallId);if(!n)return;let{span:r}=n,{telemetry:i}=t;r.setAttributes(B(i,{"ai.embeddings":{output:()=>e.embeddings.map(e=>JSON.stringify(e))},"ai.usage.tokens":e.usage.tokens})),r.end(),t.embedSpans.delete(e.embedCallId)}onRerankOperationStart(e){let t={recordInputs:e.recordInputs,recordOutputs:e.recordOutputs,functionId:e.functionId},i={maxRetries:e.maxRetries},a=F({model:{provider:e.provider,modelId:e.modelId},headers:e.headers,settings:i,context:e.runtimeContext}),o=B(t,{...P({operationId:e.operationId,telemetry:t}),...a,"ai.documents":{input:()=>e.documents.map(e=>JSON.stringify(e))}}),s=this.tracer.startSpan(e.operationId,{attributes:o}),c=n.setSpan(r.active(),s);this.callStates.set(e.callId,{operationId:e.operationId,telemetry:t,rootSpan:s,rootContext:c,stepSpan:void 0,stepContext:void 0,embedSpans:new Map,rerankSpan:void 0,toolSpans:new Map,baseTelemetryAttributes:a,settings:i})}onRerankOperationEnd(e){let t=this.getCallState(e.callId);t?.rootSpan&&(t.rootSpan.end(),this.cleanupCallState(e.callId))}onRerankStart(e){let t=this.getCallState(e.callId);if(!t?.rootSpan||!t.rootContext)return;let{telemetry:r}=t,i=B(r,{...P({operationId:e.operationId,telemetry:r}),...t.baseTelemetryAttributes,"ai.documents":{input:()=>e.documents.map(e=>JSON.stringify(e))}}),a=this.tracer.startSpan(e.operationId,{attributes:i},t.rootContext);t.rerankSpan={span:a,context:n.setSpan(t.rootContext,a)}}onRerankEnd(e){let t=this.getCallState(e.callId);if(!t?.rerankSpan)return;let{span:n}=t.rerankSpan,{telemetry:r}=t;n.setAttributes(B(r,{"ai.ranking.type":e.documentsType,"ai.ranking":{output:()=>e.ranking.map(e=>JSON.stringify(e))}})),n.end(),t.rerankSpan=void 0}onAbort(e){let t=this.getCallState(e.callId);if(t?.rootSpan){for(let{span:e}of t.toolSpans.values())e.end();t.toolSpans.clear(),t.stepSpan&&(t.stepSpan.end(),t.stepSpan=void 0,t.stepContext=void 0);for(let{span:e}of t.embedSpans.values())e.end();t.embedSpans.clear(),t.rerankSpan&&=(t.rerankSpan.span.end(),void 0),t.rootSpan.end(),this.cleanupCallState(e.callId)}}onError(e){let t=e;if(!t?.callId)return;let n=this.getCallState(t.callId);if(!n?.rootSpan)return;let r=t.error??e;n.stepSpan&&(R(n.stepSpan,r),n.stepSpan.end());for(let{span:e}of n.embedSpans.values())R(e,r),e.end();n.embedSpans.clear(),n.rerankSpan&&=(R(n.rerankSpan.span,r),n.rerankSpan.span.end(),void 0),R(n.rootSpan,r),n.rootSpan.end(),this.cleanupCallState(t.callId)}};export{V as LegacyOpenTelemetry,N as OpenTelemetry};
1
+ import{APICallError as e}from"../provider/index.js";import{l as t,r as n,s as r,u as i}from"../../_chunks/workflow/esm-DtrPCf49.js";import{RetryError as a,convertDataContentToBase64String as o}from"ai";function s(e){let t=e.toLowerCase();for(let[e,n]of[[`google.vertex`,`gcp.vertex_ai`],[`google.generative-ai`,`gcp.gemini`],[`google-vertex`,`gcp.vertex_ai`],[`amazon-bedrock`,`aws.bedrock`],[`azure-openai`,`azure.ai.openai`],[`anthropic`,`anthropic`],[`openai`,`openai`],[`azure`,`azure.ai.inference`],[`google`,`gcp.gemini`],[`mistral`,`mistral_ai`],[`cohere`,`cohere`],[`bedrock`,`aws.bedrock`],[`groq`,`groq`],[`deepseek`,`deepseek`],[`perplexity`,`perplexity`],[`xai`,`x_ai`]])if(t===e||t.startsWith(e+`.`)||t.startsWith(e+`-`))return n;return e}function c(e){return{"ai.generateText":`invoke_agent`,"ai.streamText":`invoke_agent`,"ai.generateObject":`invoke_agent`,"ai.streamObject":`invoke_agent`,"ai.embed":`embeddings`,"ai.embedMany":`embeddings`,"ai.rerank":`rerank`,"ai.generateSpeech":`ai.generateSpeech`,"ai.transcribe":`ai.transcribe`,"ai.streamTranscribe":`ai.streamTranscribe`}[e]??e}function l(e){return typeof e==`string`?[{type:`text`,content:e}]:Array.isArray(e)?e.map(e=>({type:`text`,content:e.content})):[{type:`text`,content:e.content}]}function u(e){switch(e.type){case`text`:return{type:`text`,content:e.text};case`reasoning`:return{type:`reasoning`,content:e.text};case`tool-call`:return{type:`tool_call`,id:e.toolCallId??null,name:e.toolName,arguments:e.input};case`tool-result`:{let t=e.output,n;return t&&(n=t.type===`text`||t.type===`error-text`||t.type===`json`||t.type===`error-json`?t.value:t.type===`execution-denied`?{denied:!0,reason:t.reason}:t),{type:`tool_call_response`,id:e.toolCallId??null,response:n}}case`file`:{let t=e.data,n=(()=>{if(typeof t==`object`&&t&&!(t instanceof URL)&&!(t instanceof Uint8Array)&&!(t instanceof ArrayBuffer)&&`type`in t)switch(t.type){case`data`:return t.data;case`url`:return t.url;case`text`:return t.text;default:return``}return t})(),r;if(n instanceof Uint8Array)r=o(n);else if(typeof n==`string`){if(n.startsWith(`http://`)||n.startsWith(`https://`))return{type:`uri`,modality:d(e.mediaType),mime_type:e.mediaType??null,uri:n};r=n}else if(n instanceof URL)return{type:`uri`,modality:d(e.mediaType),mime_type:e.mediaType??null,uri:n.toString()};else r=String(n);return{type:`blob`,modality:d(e.mediaType),mime_type:e.mediaType??null,content:r}}case`tool-approval-response`:return{type:`tool_approval_response`,approval_id:e.approvalId,approved:e.approved,reason:e.reason};case`custom`:return{type:`custom`,kind:e.kind};case`reasoning-file`:return{type:String(e.type)};default:return{type:String(e.type)}}}function d(e){return!e||e.startsWith(`image/`)?`image`:e.startsWith(`video/`)?`video`:e.startsWith(`audio/`)?`audio`:`image`}function f(e){return e.map(e=>{if(e.role===`system`)return{role:`system`,parts:[{type:`text`,content:e.content}]};let t=e.content.map(u);return{role:e.role,parts:t}})}function p({prompt:e,messages:t}){let n=[];if(typeof e==`string`)n.push({role:`user`,parts:[{type:`text`,content:e}]});else if(Array.isArray(e))for(let t of e){let e=m(t);e&&n.push(e)}if(t)for(let e of t){let t=m(e);t&&n.push(t)}return n}function m(e){return e.role===`system`?{role:`system`,parts:[{type:`text`,content:e.content}]}:e.role===`user`?typeof e.content==`string`?{role:`user`,parts:[{type:`text`,content:e.content}]}:{role:`user`,parts:e.content.map(e=>{switch(e.type){case`text`:return{type:`text`,content:e.text};case`image`:{let t=e.image;return t instanceof URL?{type:`uri`,modality:`image`,mime_type:e.mediaType??null,uri:t.toString()}:typeof t==`string`?t.startsWith(`http://`)||t.startsWith(`https://`)?{type:`uri`,modality:`image`,mime_type:e.mediaType??null,uri:t}:{type:`blob`,modality:`image`,mime_type:e.mediaType??null,content:t}:{type:`blob`,modality:`image`,mime_type:e.mediaType??null,content:o(t)}}case`file`:{let t=e.data,n=(()=>{if(typeof t==`object`&&t&&!(t instanceof URL)&&!(t instanceof Uint8Array)&&!(t instanceof ArrayBuffer)&&`type`in t)switch(t.type){case`data`:return t.data;case`url`:return t.url;case`text`:return t.text;default:return``}return t})();return n instanceof URL?{type:`uri`,modality:d(e.mediaType),mime_type:e.mediaType??null,uri:n.toString()}:typeof n==`string`?n.startsWith(`http://`)||n.startsWith(`https://`)?{type:`uri`,modality:d(e.mediaType),mime_type:e.mediaType??null,uri:n}:{type:`blob`,modality:d(e.mediaType),mime_type:e.mediaType??null,content:n}:{type:`blob`,modality:d(e.mediaType),mime_type:e.mediaType??null,content:o(n)}}default:return{type:String(e.type)}}})}:e.role===`assistant`?typeof e.content==`string`?{role:`assistant`,parts:[{type:`text`,content:e.content}]}:{role:`assistant`,parts:e.content.map(e=>{switch(e.type){case`text`:return{type:`text`,content:e.text};case`reasoning`:return{type:`reasoning`,content:e.text};case`tool-call`:return{type:`tool_call`,id:e.toolCallId??null,name:e.toolName,arguments:e.input};case`tool-result`:{let t=e.output,n;return t&&(n=t.type===`text`||t.type===`error-text`||t.type===`json`||t.type===`error-json`?t.value:t.type===`execution-denied`?{denied:!0,reason:t.reason}:t),{type:`tool_call_response`,id:e.toolCallId??null,response:n}}default:return{type:String(e.type)}}})}:e.role===`tool`?{role:`tool`,parts:e.content.map(e=>{if(e.type===`tool-result`){let t=e.output,n;return t&&(n=t.type===`text`||t.type===`error-text`||t.type===`json`||t.type===`error-json`?t.value:t.type===`execution-denied`?{denied:!0,reason:t.reason}:t),{type:`tool_call_response`,id:e.toolCallId??null,response:n}}return{type:String(e.type)}})}:e}function h({text:e,reasoning:t,toolCalls:n,toolResults:r,files:i,finishReason:a}){let o=[];if(t)for(let e of t)`text`in e&&e.text&&o.push({type:`reasoning`,content:e.text});if(e!=null&&e.length>0&&o.push({type:`text`,content:e}),n)for(let e of n)o.push({type:`tool_call`,id:e.toolCallId,name:e.toolName,arguments:e.input});if(r)for(let e of r)o.push({type:`tool_call_response`,id:e.toolCallId,response:e.output});if(i)for(let e of i)o.push({type:`blob`,modality:d(e.mediaType),mime_type:e.mediaType,content:e.base64});return[{role:`assistant`,parts:o,finish_reason:_(a)}]}function g({objectText:e,finishReason:t}){return[{role:`assistant`,parts:[{type:`text`,content:e}],finish_reason:_(t)}]}function _(e){return{stop:`stop`,length:`length`,"content-filter":`content_filter`,"tool-calls":`tool_call`,error:`error`,other:`stop`,unknown:`stop`}[e]??e}function v(n,r){let i=a.isInstance(r)?r.lastError:r;e.isInstance(i)&&i.statusCode!=null&&n.setAttribute(`http.response.status_code`,i.statusCode),r instanceof Error?(n.recordException({name:r.name,message:r.message,stack:r.stack}),n.setStatus({code:t.ERROR,message:r.message})):n.setStatus({code:t.ERROR})}const y={inputtokens:`input_tokens`,prompttokens:`input_tokens`,prompttokencount:`input_tokens`,totalinputtokens:`input_tokens`,outputtokens:`output_tokens`,completiontokens:`output_tokens`,completiontokencount:`output_tokens`,candidatestokencount:`output_tokens`,totaltokens:`total_tokens`,totaltokencount:`total_tokens`};function b(e){let t=e.replace(/[^a-zA-Z0-9]/g,``).toLowerCase();return y[t]??e.replace(/([a-z0-9])([A-Z])/g,`$1_$2`).replace(/[^a-zA-Z0-9]+/g,`_`).replace(/^_+|_+$/g,``).toLowerCase()}function x({usage:e,prefix:t}){let n={},r=(e,i)=>{if(typeof e==`number`){Number.isFinite(e)&&i.length>0&&(n[`${t}.${i.join(`.`)}`]=e);return}if(typeof e==`object`&&e&&!Array.isArray(e))for(let[t,n]of Object.entries(e)){let e=b(t);e!==``&&r(n,[...i,e])}};return r(e,[]),n}function S(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`}function C(e){if(!Array.isArray(e))return typeof e==`number`&&!Number.isFinite(e)?void 0:e;let t=new Set(e.filter(S).map(e=>typeof e));if(t.size!==1)return;let[n]=t;if(n===`string`)return e.filter(e=>typeof e==`string`);if(n===`number`){let t=e.filter(e=>typeof e==`number`);return t.every(Number.isFinite)?t:void 0}return e.filter(e=>typeof e==`boolean`)}function w(e){let t={};for(let[n,r]of Object.entries(e??{})){if(r==null)continue;let e=C(r);e!=null&&(t[n]=e)}return t}function T(e){return e?.isEnabled!==!1}function E(e,t){if(!T(e))return{};let n={};for(let[r,i]of Object.entries(t)){if(i==null)continue;if(typeof i==`object`&&`input`in i&&typeof i.input==`function`){if(e?.recordInputs===!1)continue;let t=i.input();if(t!=null){let e=C(t);e!=null&&(n[r]=e)}continue}if(typeof i==`object`&&`output`in i&&typeof i.output==`function`){if(e?.recordOutputs===!1)continue;let t=i.output();if(t!=null){let e=C(t);e!=null&&(n[r]=e)}continue}let t=C(i);t!=null&&(n[r]=t)}return n}const D={usage:!1,providerMetadata:!1,embedding:!1,reranking:!1,experimental_decision:!1,runtimeContext:!1,headers:!1,toolChoice:!1,schema:!1};function O(e){return{...D,usage:e.usage??!1,providerMetadata:e.providerMetadata??!1,embedding:e.embedding??!1,reranking:e.reranking??!1,experimental_decision:e.experimental_decision??e.experimental_evaluation??!1,runtimeContext:e.runtimeContext??!1,headers:e.headers??!1,toolChoice:e.toolChoice??!1,schema:e.schema??!1}}function k(e){let t={};for(let[n,r]of Object.entries(e??{}))A(t,`ai.settings.context.${n}`,r);return t}function A(e,t,n){if(n!=null){if(Array.isArray(n)||typeof n!=`object`){e[t]=n;return}for(let[r,i]of Object.entries(n))A(e,`${t}.${r}`,i)}}function j(e){return Object.fromEntries(Object.entries(e??{}).filter(([,e])=>e!=null).map(([e,t])=>[`ai.request.headers.${e}`,t]))}function M(e){return{"ai.usage.inputTokenDetails.noCacheTokens":e.inputTokenDetails?.noCacheTokens,"ai.usage.outputTokenDetails.textTokens":e.outputTokenDetails?.textTokens,"ai.usage.outputTokenDetails.reasoningTokens":e.outputTokenDetails?.reasoningTokens}}function N(e,t,n){let r={};for(let[i,a]of Object.entries(n))t[i]&&a!=null&&Object.assign(r,E(e,a));return r}function P(e){return e==null?void 0:e/1e3}function F(e){return{"gen_ai.client.operation.duration":P(e.responseTimeMs),"gen_ai.client.operation.time_to_first_chunk":P(e.timeToFirstOutputMs),"gen_ai.client.operation.time_per_output_chunk":P(e.timeBetweenOutputChunksMs?.avg)}}var I=class{constructor(e={}){this.callStates=new Map,this.tracer=e.tracer??n.getTracer(`gen_ai`),this.supplementalAttributes=O(e),this.enrichSpan=e.enrichSpan}getCallState(e){return this.callStates.get(e)}cleanupCallState(e){this.callStates.delete(e)}getSpanAttributes({attributes:e,spanType:t,operationId:n,callId:r,runtimeContext:i}){let a;try{a=this.enrichSpan?.({spanType:t,operationId:n,callId:r,runtimeContext:i})}catch{a=void 0}return{...w(a),...e}}executeTool({callId:e,toolCallId:t,execute:n}){let i=this.getCallState(e)?.toolSpans.get(t);return i==null?n():r.with(i.context,n)}executeLanguageModelCall({callId:e,execute:t}){let n=this.getCallState(e),i=n?.inferenceContext??n?.stepContext;return i==null?t():r.with(i,t)}onStart(e){if(e.operationId===`ai.generateSpeech`){this.onAudioOperationStart(e);return}if(e.operationId===`ai.transcribe`){this.onAudioOperationStart(e);return}if(e.operationId===`ai.embed`||e.operationId===`ai.embedMany`){this.onEmbedOperationStart(e);return}if(e.operationId===`ai.rerank`){this.onRerankOperationStart(e);return}if(e.operationId===`ai.generateObject`||e.operationId===`ai.streamObject`){this.onObjectOperationStart(e);return}this.onGenerateStart(e)}experimental_onStreamTranscriptionStart(e){this.onAudioOperationStart(e)}onAudioOperationStart(e){let t={recordInputs:e.recordInputs,recordOutputs:e.recordOutputs,functionId:e.functionId},a=s(e.provider),o=c(e.operationId),l=`audio`in e?e.audio:void 0,u=`text`in e?e.text:void 0,d=N(t,this.supplementalAttributes,{headers:j(e.headers)}),f=E(t,{"gen_ai.operation.name":o,"gen_ai.provider.name":a,"gen_ai.request.model":e.modelId,"gen_ai.agent.name":t.functionId,"gen_ai.output.type":e.operationId===`ai.generateSpeech`?`speech`:`text`,"gen_ai.request.stream":e.operationId===`ai.streamTranscribe`,"gen_ai.input.messages":u==null?void 0:{input:()=>JSON.stringify([{role:`user`,parts:[{type:`text`,content:u}]}])},"ai.request.text":u==null?void 0:{input:()=>u},"ai.request.audio.size":l?.byteLength==null?void 0:{input:()=>l.byteLength},"ai.request.audio.media_type":l==null?void 0:{input:()=>l.mediaType},...d}),p=this.tracer.startSpan(`${o} ${e.modelId}`,{attributes:this.getSpanAttributes({attributes:f,spanType:`operation`,operationId:e.operationId,callId:e.callId,runtimeContext:void 0}),kind:i.CLIENT}),m=n.setSpan(r.active(),p);this.callStates.set(e.callId,{operationId:e.operationId,telemetry:t,rootSpan:p,rootContext:m,stepSpan:void 0,stepContext:void 0,inferenceSpan:void 0,inferenceContext:void 0,embedSpans:new Map,rerankSpan:void 0,decisionSpan:void 0,toolSpans:new Map,settings:{},provider:e.provider,modelId:e.modelId,runtimeContext:void 0,baseSupplementalAttributes:d})}onGenerateStart(e){let t={recordInputs:e.recordInputs,recordOutputs:e.recordOutputs,functionId:e.functionId},a={maxOutputTokens:e.maxOutputTokens,temperature:e.temperature,topP:e.topP,topK:e.topK,presencePenalty:e.presencePenalty,frequencyPenalty:e.frequencyPenalty,stopSequences:e.stopSequences,seed:e.seed,maxRetries:e.maxRetries},o=s(e.provider),u=c(e.operationId),d=e.runtimeContext,f=N(t,this.supplementalAttributes,{runtimeContext:k(d),headers:j(e.headers)}),m=E(t,{"gen_ai.operation.name":u,"gen_ai.provider.name":o,"gen_ai.request.model":e.modelId,"gen_ai.agent.name":t.functionId,"gen_ai.request.frequency_penalty":e.frequencyPenalty,"gen_ai.request.max_tokens":e.maxOutputTokens,"gen_ai.request.presence_penalty":e.presencePenalty,"gen_ai.request.temperature":e.temperature??void 0,"gen_ai.request.top_k":e.topK,"gen_ai.request.top_p":e.topP,"gen_ai.request.stop_sequences":e.stopSequences,"gen_ai.request.seed":e.seed,"gen_ai.system_instructions":e.instructions==null?void 0:{input:()=>JSON.stringify(l(e.instructions))},"gen_ai.input.messages":{input:()=>JSON.stringify(p({prompt:void 0,messages:e.messages}))},...f}),h=`${u} ${e.modelId}`,g=this.tracer.startSpan(h,{attributes:this.getSpanAttributes({attributes:m,spanType:`operation`,operationId:e.operationId,callId:e.callId,runtimeContext:d}),kind:i.INTERNAL}),_=n.setSpan(r.active(),g);this.callStates.set(e.callId,{operationId:e.operationId,telemetry:t,rootSpan:g,rootContext:_,stepSpan:void 0,stepContext:void 0,inferenceSpan:void 0,inferenceContext:void 0,embedSpans:new Map,rerankSpan:void 0,decisionSpan:void 0,toolSpans:new Map,settings:a,provider:e.provider,modelId:e.modelId,runtimeContext:d,baseSupplementalAttributes:f})}onObjectOperationStart(e){let t={recordInputs:e.recordInputs,recordOutputs:e.recordOutputs,functionId:e.functionId},a={maxOutputTokens:e.maxOutputTokens,temperature:e.temperature,topP:e.topP,topK:e.topK,presencePenalty:e.presencePenalty,frequencyPenalty:e.frequencyPenalty,seed:e.seed,maxRetries:e.maxRetries},o=s(e.provider),u=c(e.operationId),d=N(t,this.supplementalAttributes,{headers:j(e.headers)}),f=E(t,{"gen_ai.operation.name":u,"gen_ai.provider.name":o,"gen_ai.request.model":e.modelId,"gen_ai.agent.name":t.functionId,"gen_ai.output.type":`json`,"gen_ai.request.frequency_penalty":e.frequencyPenalty,"gen_ai.request.max_tokens":e.maxOutputTokens,"gen_ai.request.presence_penalty":e.presencePenalty,"gen_ai.request.temperature":e.temperature??void 0,"gen_ai.request.top_k":e.topK,"gen_ai.request.top_p":e.topP,"gen_ai.request.seed":e.seed,"gen_ai.system_instructions":e.system?{input:()=>JSON.stringify(l(e.system))}:void 0,"gen_ai.input.messages":{input:()=>JSON.stringify(p({prompt:e.prompt,messages:e.messages}))},...d,...N(t,this.supplementalAttributes,{schema:{"ai.schema":e.schema?{input:()=>JSON.stringify(e.schema)}:void 0,"ai.schema.name":e.schemaName,"ai.schema.description":e.schemaDescription,"ai.settings.output":e.output}})}),m=`${u} ${e.modelId}`,h=this.tracer.startSpan(m,{attributes:this.getSpanAttributes({attributes:f,spanType:`operation`,operationId:e.operationId,callId:e.callId,runtimeContext:void 0}),kind:i.INTERNAL}),g=n.setSpan(r.active(),h);this.callStates.set(e.callId,{operationId:e.operationId,telemetry:t,rootSpan:h,rootContext:g,stepSpan:void 0,stepContext:void 0,inferenceSpan:void 0,inferenceContext:void 0,embedSpans:new Map,rerankSpan:void 0,decisionSpan:void 0,toolSpans:new Map,settings:a,provider:e.provider,modelId:e.modelId,runtimeContext:void 0,baseSupplementalAttributes:d,objectSystemInstructions:e.system})}onObjectStepStart(e){let t=this.getCallState(e.callId);if(!t?.rootSpan||!t.rootContext)return;let{telemetry:r}=t,a=s(e.provider),o=t.objectSystemInstructions==null?0:l(t.objectSystemInstructions).length,c=e.promptMessages?.slice(o),u=E(r,{"gen_ai.operation.name":`chat`,"gen_ai.provider.name":a,"gen_ai.request.model":e.modelId,"gen_ai.output.type":`json`,"gen_ai.request.frequency_penalty":t.settings.frequencyPenalty,"gen_ai.request.max_tokens":t.settings.maxOutputTokens,"gen_ai.request.presence_penalty":t.settings.presencePenalty,"gen_ai.request.temperature":t.settings.temperature??void 0,"gen_ai.request.top_k":t.settings.topK,"gen_ai.request.top_p":t.settings.topP,"gen_ai.system_instructions":t.objectSystemInstructions==null?void 0:{input:()=>JSON.stringify(l(t.objectSystemInstructions))},"gen_ai.input.messages":{input:()=>c?JSON.stringify(f(c)):void 0},...t.baseSupplementalAttributes}),d=`chat ${e.modelId}`;t.inferenceSpan=this.tracer.startSpan(d,{attributes:this.getSpanAttributes({attributes:u,spanType:`languageModel`,operationId:t.operationId,callId:e.callId,runtimeContext:t.runtimeContext}),kind:i.CLIENT},t.rootContext),t.inferenceContext=n.setSpan(t.rootContext,t.inferenceSpan)}onObjectStepEnd(e){let n=this.getCallState(e.callId);if(!n?.inferenceSpan)return;e.finishReason===`error`&&n.inferenceSpan.setStatus({code:t.ERROR});let{telemetry:r}=n;n.inferenceSpan.setAttributes(E(r,{"gen_ai.response.finish_reasons":[e.finishReason],"gen_ai.response.id":e.response.id,"gen_ai.response.model":e.response.modelId,"gen_ai.usage.input_tokens":e.usage.inputTokens,"gen_ai.usage.output_tokens":e.usage.outputTokens,"gen_ai.usage.cache_read.input_tokens":e.usage.inputTokenDetails?.cacheReadTokens,"gen_ai.output.messages":{output:()=>{try{return JSON.stringify(g({objectText:e.objectText,finishReason:e.finishReason}))}catch{return e.objectText}}},...N(r,this.supplementalAttributes,{providerMetadata:{"ai.response.providerMetadata":e.providerMetadata?JSON.stringify(e.providerMetadata):void 0},usage:M(e.usage)})})),n.inferenceSpan.end(),n.inferenceSpan=void 0,n.inferenceContext=void 0}onEmbedOperationStart(e){let t={recordInputs:e.recordInputs,recordOutputs:e.recordOutputs,functionId:e.functionId},a=e.runtimeContext,o=s(e.provider),l=N(t,this.supplementalAttributes,{runtimeContext:k(a),headers:j(e.headers)}),u=e.value,d=e.operationId===`ai.embedMany`,f=c(e.operationId),p=E(t,{"gen_ai.operation.name":f,"gen_ai.provider.name":o,"gen_ai.request.model":e.modelId,...l,...N(t,this.supplementalAttributes,{embedding:d?{"ai.values":{input:()=>u.map(e=>JSON.stringify(e))}}:{"ai.value":{input:()=>JSON.stringify(u)}}})}),m=`${f} ${e.modelId}`,h=this.tracer.startSpan(m,{attributes:this.getSpanAttributes({attributes:p,spanType:`operation`,operationId:e.operationId,callId:e.callId,runtimeContext:a}),kind:i.CLIENT}),g=n.setSpan(r.active(),h);this.callStates.set(e.callId,{operationId:e.operationId,telemetry:t,rootSpan:h,rootContext:g,stepSpan:void 0,stepContext:void 0,inferenceSpan:void 0,inferenceContext:void 0,embedSpans:new Map,rerankSpan:void 0,decisionSpan:void 0,toolSpans:new Map,settings:{maxRetries:e.maxRetries},provider:e.provider,modelId:e.modelId,runtimeContext:a,baseSupplementalAttributes:l})}onStepStart(e){let t=this.getCallState(e.callId);if(!t?.rootSpan||!t.rootContext)return;let{telemetry:r}=t;t.runtimeContext=e.runtimeContext;let a=E(r,{"gen_ai.operation.name":`agent_step`,...t.baseSupplementalAttributes,...N(r,this.supplementalAttributes,{toolChoice:{"ai.prompt.toolChoice":{input:()=>e.stepToolChoice==null?void 0:JSON.stringify(e.stepToolChoice)}}})});t.stepSpan=this.tracer.startSpan(`step ${e.steps.length+1}`,{attributes:this.getSpanAttributes({attributes:a,spanType:`step`,operationId:t.operationId,callId:e.callId,runtimeContext:t.runtimeContext}),kind:i.INTERNAL},t.rootContext),t.stepContext=n.setSpan(t.rootContext,t.stepSpan)}onLanguageModelCallStart(e){let t=this.getCallState(e.callId);if(!t?.stepContext)return;let{telemetry:r}=t,a=s(e.provider);t.inferenceToolDefinitions=e.tools;let o=E(r,{"gen_ai.operation.name":`chat`,"gen_ai.provider.name":a,"gen_ai.request.model":e.modelId,"gen_ai.request.frequency_penalty":t.settings.frequencyPenalty,"gen_ai.request.max_tokens":t.settings.maxOutputTokens,"gen_ai.request.presence_penalty":t.settings.presencePenalty,"gen_ai.request.stop_sequences":t.settings.stopSequences,"gen_ai.request.temperature":t.settings.temperature??void 0,"gen_ai.request.top_k":t.settings.topK,"gen_ai.request.top_p":t.settings.topP,"gen_ai.system_instructions":e.instructions==null?void 0:{input:()=>JSON.stringify(l(e.instructions))},"gen_ai.input.messages":{input:()=>{let t=p({prompt:void 0,messages:e.messages});return t.length>0?JSON.stringify(t):void 0}},"gen_ai.tool.definitions":{input:()=>e.tools?JSON.stringify(e.tools):void 0}});t.inferenceSpan=this.tracer.startSpan(`chat ${e.modelId}`,{attributes:this.getSpanAttributes({attributes:o,spanType:`languageModel`,operationId:t.operationId,callId:e.callId,runtimeContext:t.runtimeContext}),kind:i.CLIENT},t.stepContext),t.inferenceContext=n.setSpan(t.stepContext,t.inferenceSpan)}onLanguageModelCallEnd(e){let n=this.getCallState(e.callId);if(!n?.inferenceSpan)return;e.finishReason===`error`&&n.inferenceSpan.setStatus({code:t.ERROR});let{telemetry:r}=n,a=s(e.provider),o=[...n.inferenceToolDefinitions??[]],c=new Set(o.flatMap(e=>typeof e.name==`string`?[e.name]:[])),l=!1;for(let t of e.content)t.type===`tool-call`&&t.providerExecuted&&!c.has(t.toolName)&&(o.push({type:`extension`,name:t.toolName}),c.add(t.toolName),l=!0);n.inferenceSpan.setAttributes(E(r,{...F(e.performance),"gen_ai.provider.name":a,"gen_ai.response.finish_reasons":[e.finishReason],"gen_ai.response.id":e.responseId,"gen_ai.response.model":e.modelId,"gen_ai.usage.input_tokens":e.usage.inputTokens,"gen_ai.usage.output_tokens":e.usage.outputTokens,"gen_ai.usage.cache_read.input_tokens":e.usage.inputTokenDetails?.cacheReadTokens,"gen_ai.usage.cache_creation.input_tokens":e.usage.inputTokenDetails?.cacheWriteTokens,"gen_ai.output.messages":{output:()=>JSON.stringify(h({text:e.content.filter(e=>e.type===`text`).map(e=>e.text).join(``)||void 0,reasoning:e.content.filter(e=>e.type===`reasoning`),toolCalls:e.content.filter(e=>e.type===`tool-call`),toolResults:e.content.filter(e=>e.type===`tool-result`),files:e.content.filter(e=>e.type===`file`).map(e=>e.file),finishReason:e.finishReason}))},"gen_ai.tool.definitions":l?{input:()=>JSON.stringify(o)}:void 0,...N(r,this.supplementalAttributes,{providerMetadata:{"ai.response.providerMetadata":e.providerMetadata?JSON.stringify(e.providerMetadata):void 0},usage:M(e.usage)})}));let u=new Map;for(let t of e.content)(t.type===`tool-error`||t.type===`tool-result`&&t.preliminary!==!0)&&u.set(t.toolCallId,t);let d=new Set;for(let t of e.content){if(t.type!==`tool-call`||!t.providerExecuted||d.has(t.toolCallId))continue;d.add(t.toolCallId);let a=this.tracer.startSpan(`execute_tool ${t.toolName}`,{attributes:this.getSpanAttributes({attributes:E(r,{"gen_ai.operation.name":`execute_tool`,"gen_ai.tool.name":t.toolName,"gen_ai.tool.call.id":t.toolCallId,"gen_ai.tool.type":`extension`,"gen_ai.tool.call.arguments":{input:()=>JSON.stringify(t.input)}}),spanType:`tool`,operationId:n.operationId,callId:e.callId,runtimeContext:n.runtimeContext}),kind:i.INTERNAL},n.inferenceContext),o=u.get(t.toolCallId);if(o?.type===`tool-result`)try{a.setAttributes(E(r,{"gen_ai.tool.call.result":{output:()=>JSON.stringify(o.output)}}))}catch{}else o?.type===`tool-error`&&v(a,o.error);a.end()}n.inferenceSpan.end(),n.inferenceSpan=void 0,n.inferenceContext=void 0,n.inferenceToolDefinitions=void 0}onToolExecutionStart(e){let t=this.getCallState(e.callId),r=t?.stepContext??t?.rootContext;if(!t||!r)return;let{telemetry:a}=t,{toolCall:o}=e,s=E(a,{"gen_ai.operation.name":`execute_tool`,"gen_ai.tool.name":o.toolName,"gen_ai.tool.call.id":o.toolCallId,"gen_ai.tool.type":o.providerExecuted?`extension`:`function`,"gen_ai.tool.call.arguments":{input:()=>JSON.stringify(o.input)}}),c=`execute_tool ${o.toolName}`,l=this.tracer.startSpan(c,{attributes:this.getSpanAttributes({attributes:s,spanType:`tool`,operationId:t.operationId,callId:e.callId,runtimeContext:t.runtimeContext}),kind:i.INTERNAL},r),u=n.setSpan(r,l);t.toolSpans.set(o.toolCallId,{span:l,context:u})}onToolExecutionEnd(e){let t=this.getCallState(e.callId);if(!t)return;let n=t.toolSpans.get(e.toolCall.toolCallId);if(!n)return;let{span:r}=n,{telemetry:i}=t,{toolOutput:a}=e;if(r.setAttributes(E(i,{"gen_ai.execute_tool.duration":P(e.toolExecutionMs)})),a.type===`tool-result`)try{r.setAttributes(E(i,{"gen_ai.tool.call.result":{output:()=>JSON.stringify(a.output)}}))}catch{}else v(r,a.error);r.end(),t.toolSpans.delete(e.toolCall.toolCallId)}onStepEnd(e){let n=this.getCallState(e.callId);if(!n?.stepSpan)return;e.finishReason===`error`&&n.stepSpan.setStatus({code:t.ERROR});let{telemetry:r}=n;n.stepSpan.setAttributes(N(r,this.supplementalAttributes,{providerMetadata:{"ai.response.providerMetadata":e.providerMetadata?JSON.stringify(e.providerMetadata):void 0},usage:M(e.usage)})),n.stepSpan.end(),n.stepSpan=void 0,n.stepContext=void 0}onStepFinish(e){this.onStepEnd(e)}onEnd(e){let t=this.getCallState(e.callId);if(t?.rootSpan){if(t.operationId===`ai.embed`||t.operationId===`ai.embedMany`){this.onEmbedOperationEnd(e);return}if(t.operationId===`ai.rerank`){this.onRerankOperationEnd(e);return}if(t.operationId===`ai.generateSpeech`||t.operationId===`ai.transcribe`){this.onAudioOperationEnd(e);return}if(t.operationId===`ai.generateObject`||t.operationId===`ai.streamObject`){this.onObjectOperationEnd(e);return}this.onGenerateEnd(e)}}experimental_onStreamTranscriptionEnd(e){this.onAudioOperationEnd(e)}onAudioOperationEnd(e){let t=this.getCallState(e.callId);if(!t?.rootSpan)return;let n=e.operationId===`ai.generateSpeech`?e.audio:void 0,r=e.operationId===`ai.generateSpeech`?void 0:e.audio,i=`segments`in e?e.text:void 0;t.rootSpan.setAttributes(E(t.telemetry,{"ai.request.audio.size":r==null?void 0:{input:()=>r.byteLength},"ai.request.audio.media_type":r==null?void 0:{input:()=>r.mediaType},"ai.response.text":i==null?void 0:{output:()=>i},"gen_ai.output.messages":i==null?void 0:{output:()=>JSON.stringify([{role:`assistant`,parts:[{type:`text`,content:i}]}])},"ai.response.audio.size":n==null?void 0:{output:()=>n.byteLength},"ai.response.audio.media_type":n==null?void 0:{output:()=>n.mediaType},"ai.response.audio.format":n==null||!(`format`in n)?void 0:{output:()=>String(n.format)},...x({usage:e.usage,prefix:`gen_ai.usage`}),...N(t.telemetry,this.supplementalAttributes,{usage:{"ai.response.usage":e.usage==null?void 0:JSON.stringify(e.usage)},providerMetadata:{"ai.response.providerMetadata":e.providerMetadata==null?void 0:JSON.stringify(e.providerMetadata)}})})),t.rootSpan.end(),this.cleanupCallState(e.callId)}onGenerateEnd(e){let n=this.getCallState(e.callId);if(!n?.rootSpan)return;e.finishReason===`error`&&n.rootSpan.setStatus({code:t.ERROR});let{telemetry:r}=n;n.rootSpan.setAttributes(E(r,{"gen_ai.response.finish_reasons":[e.finishReason],"gen_ai.usage.input_tokens":e.usage.inputTokens,"gen_ai.usage.output_tokens":e.usage.outputTokens,"gen_ai.usage.cache_read.input_tokens":e.usage.inputTokenDetails?.cacheReadTokens,"gen_ai.usage.cache_creation.input_tokens":e.usage.inputTokenDetails?.cacheWriteTokens,"gen_ai.output.messages":{output:()=>JSON.stringify(h({text:e.text??void 0,reasoning:e.finalStep.reasoning,toolCalls:e.toolCalls,toolResults:e.toolResults,files:e.files,finishReason:e.finishReason}))},...N(r,this.supplementalAttributes,{providerMetadata:{"ai.response.providerMetadata":e.finalStep.providerMetadata?JSON.stringify(e.finalStep.providerMetadata):void 0},usage:M(e.usage)})})),n.rootSpan.end(),this.cleanupCallState(e.callId)}onObjectOperationEnd(e){let n=this.getCallState(e.callId);if(!n?.rootSpan)return;e.finishReason===`error`&&n.rootSpan.setStatus({code:t.ERROR});let{telemetry:r}=n;n.rootSpan.setAttributes(E(r,{"gen_ai.response.finish_reasons":[e.finishReason],"gen_ai.usage.input_tokens":e.usage.inputTokens,"gen_ai.usage.output_tokens":e.usage.outputTokens,"gen_ai.usage.cache_read.input_tokens":e.usage.inputTokenDetails?.cacheReadTokens,"gen_ai.output.messages":{output:()=>e.object==null?void 0:JSON.stringify(g({objectText:JSON.stringify(e.object),finishReason:e.finishReason}))},...N(r,this.supplementalAttributes,{providerMetadata:{"ai.response.providerMetadata":e.providerMetadata?JSON.stringify(e.providerMetadata):void 0},usage:M(e.usage)})})),n.rootSpan.end(),this.cleanupCallState(e.callId)}onEmbedOperationEnd(e){let t=this.getCallState(e.callId);if(!t?.rootSpan)return;let{telemetry:n}=t,r=t.operationId===`ai.embedMany`;t.rootSpan.setAttributes(E(n,{...N(n,this.supplementalAttributes,{embedding:r?{"ai.embeddings":{output:()=>e.embedding.map(e=>JSON.stringify(e))}}:{"ai.embedding":{output:()=>JSON.stringify(e.embedding)}}})})),t.rootSpan.end(),this.cleanupCallState(e.callId)}onEmbedStart(e){let t=this.getCallState(e.callId);if(!t?.rootSpan||!t.rootContext)return;let{telemetry:r}=t,a=E(r,{"gen_ai.operation.name":`embeddings`,"gen_ai.provider.name":s(t.provider),"gen_ai.request.model":t.modelId,...t.baseSupplementalAttributes,...N(r,this.supplementalAttributes,{embedding:{"ai.values":{input:()=>e.values.map(e=>JSON.stringify(e))}}})}),o=`embeddings ${t.modelId}`,c=this.tracer.startSpan(o,{attributes:this.getSpanAttributes({attributes:a,spanType:`embedding`,operationId:t.operationId,callId:e.callId,runtimeContext:t.runtimeContext}),kind:i.CLIENT},t.rootContext),l=n.setSpan(t.rootContext,c);t.embedSpans.set(e.embedCallId,{span:c,context:l})}onEmbedEnd(e){let t=this.getCallState(e.callId);if(!t)return;let n=t.embedSpans.get(e.embedCallId);if(!n)return;let{span:r}=n,{telemetry:i}=t;r.setAttributes(E(i,{"gen_ai.usage.input_tokens":e.usage.tokens,...N(i,this.supplementalAttributes,{embedding:{"ai.embeddings":{output:()=>e.embeddings.map(e=>JSON.stringify(e))}}})})),r.end(),t.embedSpans.delete(e.embedCallId)}onRerankOperationStart(e){let t={recordInputs:e.recordInputs,recordOutputs:e.recordOutputs,functionId:e.functionId},a=e.runtimeContext,o=s(e.provider),c=N(t,this.supplementalAttributes,{runtimeContext:k(a),headers:j(e.headers)}),l=E(t,{"gen_ai.operation.name":`rerank`,"gen_ai.provider.name":o,"gen_ai.request.model":e.modelId,...c,...N(t,this.supplementalAttributes,{reranking:{"ai.documents":{input:()=>e.documents.map(e=>JSON.stringify(e))}}})}),u=`rerank ${e.modelId}`,d=this.tracer.startSpan(u,{attributes:this.getSpanAttributes({attributes:l,spanType:`operation`,operationId:e.operationId,callId:e.callId,runtimeContext:a}),kind:i.CLIENT}),f=n.setSpan(r.active(),d);this.callStates.set(e.callId,{operationId:e.operationId,telemetry:t,rootSpan:d,rootContext:f,stepSpan:void 0,stepContext:void 0,inferenceSpan:void 0,inferenceContext:void 0,embedSpans:new Map,rerankSpan:void 0,decisionSpan:void 0,toolSpans:new Map,settings:{maxRetries:e.maxRetries},provider:e.provider,modelId:e.modelId,runtimeContext:a,baseSupplementalAttributes:c})}onRerankOperationEnd(e){let t=this.getCallState(e.callId);t?.rootSpan&&(t.rootSpan.end(),this.cleanupCallState(e.callId))}onRerankStart(e){let t=this.getCallState(e.callId);if(!t?.rootSpan||!t.rootContext)return;let{telemetry:r}=t,a=E(r,{"gen_ai.operation.name":`rerank`,"gen_ai.provider.name":s(t.provider),"gen_ai.request.model":t.modelId,...t.baseSupplementalAttributes,...N(r,this.supplementalAttributes,{reranking:{"ai.documents":{input:()=>e.documents.map(e=>JSON.stringify(e))}}})}),o=`rerank ${t.modelId}`,c=this.tracer.startSpan(o,{attributes:this.getSpanAttributes({attributes:a,spanType:`reranking`,operationId:t.operationId,callId:e.callId,runtimeContext:t.runtimeContext}),kind:i.CLIENT},t.rootContext);t.rerankSpan={span:c,context:n.setSpan(t.rootContext,c)}}onRerankEnd(e){let t=this.getCallState(e.callId);if(!t?.rerankSpan)return;let{span:n}=t.rerankSpan,{telemetry:r}=t;n.setAttributes(N(r,this.supplementalAttributes,{reranking:{"ai.ranking.type":e.documentsType,"ai.ranking":{output:()=>e.ranking.map(e=>JSON.stringify(e))}}})),n.end(),t.rerankSpan=void 0}onDecideOperationStart(e){let t={recordInputs:e.recordInputs,recordOutputs:e.recordOutputs,functionId:e.functionId},a=e.runtimeContext,o=N(t,this.supplementalAttributes,{runtimeContext:k(a),headers:j(e.headers)}),c=E(t,{"gen_ai.operation.name":`decide`,"gen_ai.provider.name":s(e.provider),"gen_ai.request.model":e.modelId,...o,...N(t,this.supplementalAttributes,{experimental_decision:{"ai.decision.state":{input:()=>JSON.stringify(e.state)},"ai.decision.questions":{input:()=>JSON.stringify(e.questions)}}})}),l=this.tracer.startSpan(`decide ${e.modelId}`,{attributes:this.getSpanAttributes({attributes:c,spanType:`operation`,operationId:e.operationId,callId:e.callId,runtimeContext:a}),kind:i.CLIENT}),u=n.setSpan(r.active(),l);this.callStates.set(e.callId,{operationId:e.operationId,telemetry:t,rootSpan:l,rootContext:u,stepSpan:void 0,stepContext:void 0,inferenceSpan:void 0,inferenceContext:void 0,embedSpans:new Map,rerankSpan:void 0,decisionSpan:void 0,toolSpans:new Map,settings:{maxRetries:e.maxRetries},provider:e.provider,modelId:e.modelId,runtimeContext:a,baseSupplementalAttributes:o})}onDecideOperationEnd(e){let t=this.getCallState(e.callId);t?.rootSpan&&(t.rootSpan.setAttributes(N(t.telemetry,this.supplementalAttributes,{experimental_decision:{"ai.decision.answers":{output:()=>JSON.stringify(e.answers)}}})),t.rootSpan.end(),this.cleanupCallState(e.callId))}experimental_onDecideStart(e){this.experimental_onEvaluateStart(e)}experimental_onDecideEnd(e){this.experimental_onEvaluateEnd(e)}experimental_onDecisionModelCallStart(e){this.experimental_onEvaluationModelCallStart(e)}experimental_onDecisionModelCallEnd(e){this.experimental_onEvaluationModelCallEnd(e)}experimental_onEvaluateStart(e){this.onDecideOperationStart(e)}experimental_onEvaluateEnd(e){this.onDecideOperationEnd(e)}experimental_onEvaluationModelCallStart(e){let t=this.getCallState(e.callId);if(!t?.rootSpan||!t.rootContext)return;let r=E(t.telemetry,{"gen_ai.operation.name":`decide`,"gen_ai.provider.name":s(t.provider),"gen_ai.request.model":t.modelId,...t.baseSupplementalAttributes,...N(t.telemetry,this.supplementalAttributes,{experimental_decision:{"ai.decision.state":{input:()=>JSON.stringify(e.state)},"ai.decision.questions":{input:()=>JSON.stringify(e.questions)}}})}),a=this.tracer.startSpan(`decide ${t.modelId}`,{attributes:this.getSpanAttributes({attributes:r,spanType:`experimental_decision`,operationId:e.operationId,callId:e.callId,runtimeContext:t.runtimeContext}),kind:i.CLIENT},t.rootContext);t.decisionSpan={span:a,context:n.setSpan(t.rootContext,a)}}experimental_onEvaluationModelCallEnd(e){let t=this.getCallState(e.callId);t?.decisionSpan&&(t.decisionSpan.span.setAttributes(E(t.telemetry,{"gen_ai.usage.input_tokens":e.usage?.inputTokens,"gen_ai.usage.output_tokens":e.usage?.outputTokens,...N(t.telemetry,this.supplementalAttributes,{experimental_decision:{"ai.decision.answers":{output:()=>JSON.stringify(e.answers)}},providerMetadata:{"ai.response.providerMetadata":e.providerMetadata?JSON.stringify(e.providerMetadata):void 0}})})),t.decisionSpan.span.end(),t.decisionSpan=void 0)}onAbort(e){let t=this.getCallState(e.callId);if(t?.rootSpan){for(let{span:e}of t.toolSpans.values())e.end();t.toolSpans.clear(),t.inferenceSpan&&(t.inferenceSpan.end(),t.inferenceSpan=void 0,t.inferenceContext=void 0),t.stepSpan&&(t.stepSpan.end(),t.stepSpan=void 0,t.stepContext=void 0);for(let{span:e}of t.embedSpans.values())e.end();t.embedSpans.clear(),t.rerankSpan&&=(t.rerankSpan.span.end(),void 0),t.decisionSpan&&=(t.decisionSpan.span.end(),void 0),t.rootSpan.end(),this.cleanupCallState(e.callId)}}onError(e){let t=e;if(!t?.callId)return;let n=this.getCallState(t.callId);if(!n?.rootSpan)return;let r=t.error??e;for(let{span:e}of n.toolSpans.values())v(e,r),e.end();n.toolSpans.clear(),n.inferenceSpan&&(v(n.inferenceSpan,r),n.inferenceSpan.end(),n.inferenceSpan=void 0,n.inferenceContext=void 0),n.stepSpan&&(v(n.stepSpan,r),n.stepSpan.end(),n.stepSpan=void 0,n.stepContext=void 0);for(let{span:e}of n.embedSpans.values())v(e,r),e.end();n.embedSpans.clear(),n.rerankSpan&&=(v(n.rerankSpan.span,r),n.rerankSpan.span.end(),void 0),n.decisionSpan&&=(v(n.decisionSpan.span,r),n.decisionSpan.span.end(),void 0),v(n.rootSpan,r),n.rootSpan.end(),this.cleanupCallState(t.callId)}};function L({operationId:e,telemetry:t}){return{"operation.name":`${e}${t?.functionId==null?``:` ${t.functionId}`}`,"resource.name":t?.functionId,"ai.operationId":e,"ai.telemetry.functionId":t?.functionId}}function R({model:e,settings:t,headers:n,context:r}){return{"ai.model.provider":e.provider,"ai.model.id":e.modelId,...Object.entries(t).reduce((e,[t,n])=>(e[`ai.settings.${t}`]=n,e),{}),...k(r),...Object.entries(n??{}).reduce((e,[t,n])=>(n!==void 0&&(e[`ai.request.headers.${t}`]=n),e),{})}}function z(e){return JSON.stringify(e.map(e=>({...e,content:typeof e.content==`string`?e.content:e.content.map(e=>e.type===`file`?{...e,data:B(e.data)}:e)})))}function B(e){switch(e.type){case`data`:return e.data instanceof Uint8Array?o(e.data):e.data;case`url`:return e.url.toString();case`reference`:return e.reference;case`text`:return e.text}}function V(e,n){n instanceof Error?(e.recordException({name:n.name,message:n.message,stack:n.stack}),e.setStatus({code:t.ERROR,message:n.message})):e.setStatus({code:t.ERROR})}function H(e){return e?.isEnabled!==!1}function U(e,t){if(!H(e))return{};let n={};for(let[r,i]of Object.entries(t)){if(i==null)continue;if(typeof i==`object`&&`input`in i&&typeof i.input==`function`){if(e?.recordInputs===!1)continue;let t=i.input();if(t!=null){let e=C(t);e!=null&&(n[r]=e)}continue}if(typeof i==`object`&&`output`in i&&typeof i.output==`function`){if(e?.recordOutputs===!1)continue;let t=i.output();if(t!=null){let e=C(t);e!=null&&(n[r]=e)}continue}let t=C(i);t!=null&&(n[r]=t)}return n}var W=class{constructor(e={}){this.callStates=new Map,this.tracer=e.tracer??n.getTracer(`ai`)}getCallState(e){return this.callStates.get(e)}cleanupCallState(e){this.callStates.delete(e)}executeTool({callId:e,toolCallId:t,execute:n}){let i=this.getCallState(e)?.toolSpans.get(t);return i==null?n():r.with(i.context,n)}executeLanguageModelCall({callId:e,execute:t}){let n=this.getCallState(e)?.stepContext;return n==null?t():r.with(n,t)}onStart(e){if(e.operationId===`ai.generateSpeech`){this.onAudioOperationStart(e);return}if(e.operationId===`ai.transcribe`){this.onAudioOperationStart(e);return}if(e.operationId===`ai.embed`||e.operationId===`ai.embedMany`){this.onEmbedOperationStart(e);return}if(e.operationId===`ai.rerank`){this.onRerankOperationStart(e);return}if(e.operationId===`ai.generateObject`||e.operationId===`ai.streamObject`){this.onObjectOperationStart(e);return}this.onGenerateStart(e)}experimental_onStreamTranscriptionStart(e){this.onAudioOperationStart(e)}onAudioOperationStart(e){let t={recordInputs:e.recordInputs,recordOutputs:e.recordOutputs,functionId:e.functionId},i=`audio`in e?e.audio:void 0,a=`text`in e?e.text:void 0,o={"ai.model.provider":e.provider,"ai.model.id":e.modelId,...Object.fromEntries(Object.entries(e.headers??{}).map(([e,t])=>[`ai.request.headers.${e}`,t]))},s=U(t,{...L({operationId:e.operationId,telemetry:t}),...o,"ai.request.text":a==null?void 0:{input:()=>a},"ai.request.audio.size":i?.byteLength==null?void 0:{input:()=>i.byteLength},"ai.request.audio.mediaType":i==null?void 0:{input:()=>i.mediaType}}),c=this.tracer.startSpan(e.operationId,{attributes:s}),l=n.setSpan(r.active(),c);this.callStates.set(e.callId,{operationId:e.operationId,telemetry:t,rootSpan:c,rootContext:l,stepSpan:void 0,stepContext:void 0,embedSpans:new Map,rerankSpan:void 0,decisionSpan:void 0,toolSpans:new Map,baseTelemetryAttributes:o,settings:{}})}onGenerateStart(e){let t={recordInputs:e.recordInputs,recordOutputs:e.recordOutputs,functionId:e.functionId},i={maxOutputTokens:e.maxOutputTokens,temperature:e.temperature,topP:e.topP,topK:e.topK,presencePenalty:e.presencePenalty,frequencyPenalty:e.frequencyPenalty,stopSequences:e.stopSequences,seed:e.seed,maxRetries:e.maxRetries},a=R({model:{provider:e.provider,modelId:e.modelId},headers:e.headers,settings:i,context:e.runtimeContext}),o=U(t,{...L({operationId:e.operationId,telemetry:t}),...a,"ai.model.provider":e.provider,"ai.model.id":e.modelId,"ai.prompt":{input:()=>JSON.stringify({system:e.instructions,messages:e.messages})}}),s=this.tracer.startSpan(e.operationId,{attributes:o}),c=n.setSpan(r.active(),s);this.callStates.set(e.callId,{operationId:e.operationId,telemetry:t,rootSpan:s,rootContext:c,stepSpan:void 0,stepContext:void 0,embedSpans:new Map,rerankSpan:void 0,decisionSpan:void 0,toolSpans:new Map,baseTelemetryAttributes:a,settings:i})}onObjectOperationStart(e){let t={recordInputs:e.recordInputs,recordOutputs:e.recordOutputs,functionId:e.functionId},i={maxOutputTokens:e.maxOutputTokens,temperature:e.temperature,topP:e.topP,topK:e.topK,presencePenalty:e.presencePenalty,frequencyPenalty:e.frequencyPenalty,seed:e.seed,maxRetries:e.maxRetries},a=R({model:{provider:e.provider,modelId:e.modelId},headers:e.headers,settings:i,context:void 0}),o=U(t,{...L({operationId:e.operationId,telemetry:t}),...a,"ai.prompt":{input:()=>JSON.stringify({system:e.system,prompt:e.prompt,messages:e.messages})},"ai.schema":e.schema?{input:()=>JSON.stringify(e.schema)}:void 0,"ai.schema.name":e.schemaName,"ai.schema.description":e.schemaDescription,"ai.settings.output":e.output}),s=this.tracer.startSpan(e.operationId,{attributes:o}),c=n.setSpan(r.active(),s);this.callStates.set(e.callId,{operationId:e.operationId,telemetry:t,rootSpan:s,rootContext:c,stepSpan:void 0,stepContext:void 0,embedSpans:new Map,rerankSpan:void 0,decisionSpan:void 0,toolSpans:new Map,baseTelemetryAttributes:a,settings:i})}onObjectStepStart(e){let t=this.getCallState(e.callId);if(!t?.rootSpan||!t.rootContext)return;let{telemetry:r}=t,i=t.operationId===`ai.streamObject`?`ai.streamObject.doStream`:`ai.generateObject.doGenerate`,a=U(r,{...L({operationId:i,telemetry:r}),...t.baseTelemetryAttributes,"ai.prompt.messages":{input:()=>e.promptMessages?z(e.promptMessages):void 0},"gen_ai.system":e.provider,"gen_ai.request.model":e.modelId,"gen_ai.request.frequency_penalty":t.settings.frequencyPenalty,"gen_ai.request.max_tokens":t.settings.maxOutputTokens,"gen_ai.request.presence_penalty":t.settings.presencePenalty,"gen_ai.request.temperature":t.settings.temperature??void 0,"gen_ai.request.top_k":t.settings.topK,"gen_ai.request.top_p":t.settings.topP});t.stepSpan=this.tracer.startSpan(i,{attributes:a},t.rootContext),t.stepContext=n.setSpan(t.rootContext,t.stepSpan)}onObjectStepEnd(e){let n=this.getCallState(e.callId);if(!n?.stepSpan)return;e.finishReason===`error`&&n.stepSpan.setStatus({code:t.ERROR});let{telemetry:r}=n;n.stepSpan.setAttributes(U(r,{"ai.response.finishReason":e.finishReason,"ai.response.object":{output:()=>{try{return JSON.stringify(JSON.parse(e.objectText))}catch{return e.objectText}}},"ai.response.id":e.response.id,"ai.response.model":e.response.modelId,"ai.response.timestamp":e.response.timestamp.toISOString(),"ai.response.providerMetadata":e.providerMetadata?JSON.stringify(e.providerMetadata):void 0,"ai.usage.inputTokens":e.usage.inputTokens,"ai.usage.outputTokens":e.usage.outputTokens,"ai.usage.totalTokens":e.usage.totalTokens,"ai.usage.reasoningTokens":e.usage.outputTokenDetails?.reasoningTokens,"ai.usage.cachedInputTokens":e.usage.inputTokenDetails?.cacheReadTokens,"gen_ai.response.finish_reasons":[e.finishReason],"gen_ai.response.id":e.response.id,"gen_ai.response.model":e.response.modelId,"gen_ai.usage.input_tokens":e.usage.inputTokens,"gen_ai.usage.output_tokens":e.usage.outputTokens})),e.msToFirstChunk!=null&&(n.stepSpan.addEvent(`ai.stream.firstChunk`,{"ai.stream.msToFirstChunk":e.msToFirstChunk}),n.stepSpan.setAttributes({"ai.stream.msToFirstChunk":e.msToFirstChunk})),n.stepSpan.end(),n.stepSpan=void 0,n.stepContext=void 0}onEmbedOperationStart(e){let t={recordInputs:e.recordInputs,recordOutputs:e.recordOutputs,functionId:e.functionId},i={maxRetries:e.maxRetries},a=R({model:{provider:e.provider,modelId:e.modelId},headers:e.headers,settings:i,context:e.runtimeContext}),o=e.value,s=e.operationId===`ai.embedMany`,c=U(t,{...L({operationId:e.operationId,telemetry:t}),...a,...s?{"ai.values":{input:()=>o.map(e=>JSON.stringify(e))}}:{"ai.value":{input:()=>JSON.stringify(o)}}}),l=this.tracer.startSpan(e.operationId,{attributes:c}),u=n.setSpan(r.active(),l);this.callStates.set(e.callId,{operationId:e.operationId,telemetry:t,rootSpan:l,rootContext:u,stepSpan:void 0,stepContext:void 0,embedSpans:new Map,rerankSpan:void 0,decisionSpan:void 0,toolSpans:new Map,baseTelemetryAttributes:a,settings:i})}onStepStart(e){let t=this.getCallState(e.callId);if(!t?.rootSpan||!t.rootContext)return;let{telemetry:r}=t,i=t.operationId===`ai.streamText`?`ai.streamText.doStream`:`ai.generateText.doGenerate`,a=U(r,{...L({operationId:i,telemetry:r}),...t.baseTelemetryAttributes,"ai.model.provider":e.provider,"ai.model.id":e.modelId,"ai.prompt.messages":{input:()=>e.promptMessages?z(e.promptMessages):void 0},"ai.prompt.tools":{input:()=>e.stepTools?.map(e=>JSON.stringify(e))},"ai.prompt.toolChoice":{input:()=>e.stepToolChoice==null?void 0:JSON.stringify(e.stepToolChoice)},"gen_ai.system":e.provider,"gen_ai.request.model":e.modelId,"gen_ai.request.frequency_penalty":t.settings.frequencyPenalty,"gen_ai.request.max_tokens":t.settings.maxOutputTokens,"gen_ai.request.presence_penalty":t.settings.presencePenalty,"gen_ai.request.stop_sequences":t.settings.stopSequences,"gen_ai.request.temperature":t.settings.temperature??void 0,"gen_ai.request.top_k":t.settings.topK,"gen_ai.request.top_p":t.settings.topP});t.stepSpan=this.tracer.startSpan(i,{attributes:a},t.rootContext),t.stepContext=n.setSpan(t.rootContext,t.stepSpan)}onToolExecutionStart(e){let t=this.getCallState(e.callId);if(!t?.stepContext)return;let{telemetry:r}=t,{toolCall:i}=e,a=U(r,{...L({operationId:`ai.toolCall`,telemetry:r}),...Object.fromEntries(Object.entries(t.baseTelemetryAttributes).filter(([e])=>e.startsWith(`ai.settings.context.`))),"ai.toolCall.name":i.toolName,"ai.toolCall.id":i.toolCallId,"ai.toolCall.args":{output:()=>JSON.stringify(i.input)}}),o=this.tracer.startSpan(`ai.toolCall`,{attributes:a},t.stepContext),s=n.setSpan(t.stepContext,o);t.toolSpans.set(i.toolCallId,{span:o,context:s})}onToolExecutionEnd(e){let t=this.getCallState(e.callId);if(!t)return;let n=t.toolSpans.get(e.toolCall.toolCallId);if(!n)return;let{span:r}=n,{telemetry:i}=t,{toolOutput:a}=e;if(a.type===`tool-result`)try{r.setAttributes(U(i,{"ai.toolCall.result":{output:()=>JSON.stringify(a.output)}}))}catch{}else V(r,a.error);r.end(),t.toolSpans.delete(e.toolCall.toolCallId)}onStepEnd(e){let n=this.getCallState(e.callId);if(!n?.stepSpan)return;e.finishReason===`error`&&n.stepSpan.setStatus({code:t.ERROR});let{telemetry:r}=n,i=n.operationId===`ai.streamText`;n.stepSpan.setAttributes(U(r,{"ai.response.finishReason":e.finishReason,"ai.response.text":{output:()=>e.text??void 0},"ai.response.reasoning":{output:()=>e.reasoning.length>0?e.reasoning.filter(e=>`text`in e).map(e=>e.text).join(`
2
+ `):void 0},"ai.response.toolCalls":{output:()=>e.toolCalls.length>0?JSON.stringify(e.toolCalls.map(e=>({toolCallId:e.toolCallId,toolName:e.toolName,input:e.input}))):void 0},"ai.response.files":{output:()=>e.files.length>0?JSON.stringify(e.files.map(e=>({type:`file`,mediaType:e.mediaType,data:e.base64}))):void 0},"ai.response.id":e.response.id,"ai.response.model":e.response.modelId,"ai.response.timestamp":e.response.timestamp.toISOString(),"ai.response.providerMetadata":e.providerMetadata?JSON.stringify(e.providerMetadata):void 0,"ai.response.msToFirstChunk":i?e.performance.timeToFirstOutputMs:void 0,"ai.response.msToFinish":i?e.performance.responseTimeMs:void 0,"ai.response.avgOutputTokensPerSecond":i?e.performance.effectiveOutputTokensPerSecond:void 0,"ai.usage.inputTokens":e.usage.inputTokens,"ai.usage.outputTokens":e.usage.outputTokens,"ai.usage.totalTokens":e.usage.totalTokens,"ai.usage.reasoningTokens":e.usage.outputTokenDetails?.reasoningTokens,"ai.usage.cachedInputTokens":e.usage.inputTokenDetails?.cacheReadTokens,"ai.usage.inputTokenDetails.noCacheTokens":e.usage.inputTokenDetails?.noCacheTokens,"ai.usage.inputTokenDetails.cacheReadTokens":e.usage.inputTokenDetails?.cacheReadTokens,"ai.usage.inputTokenDetails.cacheWriteTokens":e.usage.inputTokenDetails?.cacheWriteTokens,"ai.usage.outputTokenDetails.textTokens":e.usage.outputTokenDetails?.textTokens,"ai.usage.outputTokenDetails.reasoningTokens":e.usage.outputTokenDetails?.reasoningTokens,"gen_ai.response.finish_reasons":[e.finishReason],"gen_ai.response.id":e.response.id,"gen_ai.response.model":e.response.modelId,"gen_ai.usage.input_tokens":e.usage.inputTokens,"gen_ai.usage.output_tokens":e.usage.outputTokens})),i&&e.performance.timeToFirstOutputMs!=null&&n.stepSpan.addEvent(`ai.stream.firstChunk`,{"ai.response.msToFirstChunk":e.performance.timeToFirstOutputMs}),i&&n.stepSpan.addEvent(`ai.stream.finish`,{"ai.response.msToFinish":e.performance.responseTimeMs,"ai.response.avgOutputTokensPerSecond":e.performance.effectiveOutputTokensPerSecond}),n.stepSpan.end(),n.stepSpan=void 0,n.stepContext=void 0}onStepFinish(e){this.onStepEnd(e)}onEnd(e){let t=this.getCallState(e.callId);if(t?.rootSpan){if(t.operationId===`ai.embed`||t.operationId===`ai.embedMany`){this.onEmbedOperationEnd(e);return}if(t.operationId===`ai.rerank`){this.onRerankOperationEnd(e);return}if(t.operationId===`ai.generateSpeech`||t.operationId===`ai.transcribe`){this.onAudioOperationEnd(e);return}if(t.operationId===`ai.generateObject`||t.operationId===`ai.streamObject`){this.onObjectOperationEnd(e);return}this.onGenerateEnd(e)}}experimental_onStreamTranscriptionEnd(e){this.onAudioOperationEnd(e)}onAudioOperationEnd(e){let t=this.getCallState(e.callId);if(!t?.rootSpan)return;let n=e.operationId===`ai.generateSpeech`,r=e.audio;t.rootSpan.setAttributes(U(t.telemetry,{"ai.request.audio.size":n?void 0:{input:()=>r.byteLength},"ai.request.audio.mediaType":n?void 0:{input:()=>r.mediaType},"ai.response.text":`segments`in e?{output:()=>e.text}:void 0,"ai.response.audio.size":n?{output:()=>r.byteLength}:void 0,"ai.response.audio.mediaType":n?{output:()=>r.mediaType}:void 0,"ai.response.audio.format":n&&`format`in r?{output:()=>r.format}:void 0,...x({usage:e.usage,prefix:`ai.usage`}),"ai.response.usage":e.usage==null?void 0:JSON.stringify(e.usage),"ai.response.providerMetadata":e.providerMetadata==null?void 0:JSON.stringify(e.providerMetadata)})),t.rootSpan.end(),this.cleanupCallState(e.callId)}onGenerateEnd(e){let n=this.getCallState(e.callId);if(!n?.rootSpan)return;e.finishReason===`error`&&n.rootSpan.setStatus({code:t.ERROR});let{telemetry:r}=n;n.rootSpan.setAttributes(U(r,{"ai.response.finishReason":e.finishReason,"ai.response.text":{output:()=>e.text??void 0},"ai.response.reasoning":{output:()=>e.finalStep.reasoning.length>0?e.finalStep.reasoning.filter(e=>`text`in e).map(e=>e.text).join(`
3
+ `):void 0},"ai.response.toolCalls":{output:()=>e.toolCalls.length>0?JSON.stringify(e.toolCalls.map(e=>({toolCallId:e.toolCallId,toolName:e.toolName,input:e.input}))):void 0},"ai.response.files":{output:()=>e.files.length>0?JSON.stringify(e.files.map(e=>({type:`file`,mediaType:e.mediaType,data:e.base64}))):void 0},"ai.response.providerMetadata":e.finalStep.providerMetadata?JSON.stringify(e.finalStep.providerMetadata):void 0,"ai.usage.inputTokens":e.usage.inputTokens,"ai.usage.outputTokens":e.usage.outputTokens,"ai.usage.totalTokens":e.usage.totalTokens,"ai.usage.reasoningTokens":e.usage.outputTokenDetails?.reasoningTokens,"ai.usage.cachedInputTokens":e.usage.inputTokenDetails?.cacheReadTokens,"ai.usage.inputTokenDetails.noCacheTokens":e.usage.inputTokenDetails?.noCacheTokens,"ai.usage.inputTokenDetails.cacheReadTokens":e.usage.inputTokenDetails?.cacheReadTokens,"ai.usage.inputTokenDetails.cacheWriteTokens":e.usage.inputTokenDetails?.cacheWriteTokens,"ai.usage.outputTokenDetails.textTokens":e.usage.outputTokenDetails?.textTokens,"ai.usage.outputTokenDetails.reasoningTokens":e.usage.outputTokenDetails?.reasoningTokens})),n.rootSpan.end(),this.cleanupCallState(e.callId)}onObjectOperationEnd(e){let n=this.getCallState(e.callId);if(!n?.rootSpan)return;e.finishReason===`error`&&n.rootSpan.setStatus({code:t.ERROR});let{telemetry:r}=n;n.rootSpan.setAttributes(U(r,{"ai.response.finishReason":e.finishReason,"ai.response.object":{output:()=>e.object==null?void 0:JSON.stringify(e.object)},"ai.response.providerMetadata":e.providerMetadata?JSON.stringify(e.providerMetadata):void 0,"ai.usage.inputTokens":e.usage.inputTokens,"ai.usage.outputTokens":e.usage.outputTokens,"ai.usage.totalTokens":e.usage.totalTokens,"ai.usage.reasoningTokens":e.usage.outputTokenDetails?.reasoningTokens,"ai.usage.cachedInputTokens":e.usage.inputTokenDetails?.cacheReadTokens})),n.rootSpan.end(),this.cleanupCallState(e.callId)}onEmbedOperationEnd(e){let t=this.getCallState(e.callId);if(!t?.rootSpan)return;let{telemetry:n}=t,r=t.operationId===`ai.embedMany`;t.rootSpan.setAttributes(U(n,{...r?{"ai.embeddings":{output:()=>e.embedding.map(e=>JSON.stringify(e))}}:{"ai.embedding":{output:()=>JSON.stringify(e.embedding)}},"ai.usage.tokens":e.usage.tokens})),t.rootSpan.end(),this.cleanupCallState(e.callId)}onEmbedStart(e){let t=this.getCallState(e.callId);if(!t?.rootSpan||!t.rootContext)return;let{telemetry:r}=t,i=U(r,{...L({operationId:e.operationId,telemetry:r}),...t.baseTelemetryAttributes,"ai.values":{input:()=>e.values.map(e=>JSON.stringify(e))}}),a=this.tracer.startSpan(e.operationId,{attributes:i},t.rootContext),o=n.setSpan(t.rootContext,a);t.embedSpans.set(e.embedCallId,{span:a,context:o})}onEmbedEnd(e){let t=this.getCallState(e.callId);if(!t)return;let n=t.embedSpans.get(e.embedCallId);if(!n)return;let{span:r}=n,{telemetry:i}=t;r.setAttributes(U(i,{"ai.embeddings":{output:()=>e.embeddings.map(e=>JSON.stringify(e))},"ai.usage.tokens":e.usage.tokens})),r.end(),t.embedSpans.delete(e.embedCallId)}onRerankOperationStart(e){let t={recordInputs:e.recordInputs,recordOutputs:e.recordOutputs,functionId:e.functionId},i={maxRetries:e.maxRetries},a=R({model:{provider:e.provider,modelId:e.modelId},headers:e.headers,settings:i,context:e.runtimeContext}),o=U(t,{...L({operationId:e.operationId,telemetry:t}),...a,"ai.documents":{input:()=>e.documents.map(e=>JSON.stringify(e))}}),s=this.tracer.startSpan(e.operationId,{attributes:o}),c=n.setSpan(r.active(),s);this.callStates.set(e.callId,{operationId:e.operationId,telemetry:t,rootSpan:s,rootContext:c,stepSpan:void 0,stepContext:void 0,embedSpans:new Map,rerankSpan:void 0,decisionSpan:void 0,toolSpans:new Map,baseTelemetryAttributes:a,settings:i})}onRerankOperationEnd(e){let t=this.getCallState(e.callId);t?.rootSpan&&(t.rootSpan.end(),this.cleanupCallState(e.callId))}onRerankStart(e){let t=this.getCallState(e.callId);if(!t?.rootSpan||!t.rootContext)return;let{telemetry:r}=t,i=U(r,{...L({operationId:e.operationId,telemetry:r}),...t.baseTelemetryAttributes,"ai.documents":{input:()=>e.documents.map(e=>JSON.stringify(e))}}),a=this.tracer.startSpan(e.operationId,{attributes:i},t.rootContext);t.rerankSpan={span:a,context:n.setSpan(t.rootContext,a)}}onRerankEnd(e){let t=this.getCallState(e.callId);if(!t?.rerankSpan)return;let{span:n}=t.rerankSpan,{telemetry:r}=t;n.setAttributes(U(r,{"ai.ranking.type":e.documentsType,"ai.ranking":{output:()=>e.ranking.map(e=>JSON.stringify(e))}})),n.end(),t.rerankSpan=void 0}onDecideOperationStart(e){let t={recordInputs:e.recordInputs,recordOutputs:e.recordOutputs,functionId:e.functionId},i={maxRetries:e.maxRetries},a=R({model:{provider:e.provider,modelId:e.modelId},headers:e.headers,settings:i,context:e.runtimeContext}),o=U(t,{...L({operationId:e.operationId,telemetry:t}),...a,"ai.decision.state":{input:()=>JSON.stringify(e.state)},"ai.decision.questions":{input:()=>JSON.stringify(e.questions)}}),s=this.tracer.startSpan(e.operationId,{attributes:o}),c=n.setSpan(r.active(),s);this.callStates.set(e.callId,{operationId:e.operationId,telemetry:t,rootSpan:s,rootContext:c,stepSpan:void 0,stepContext:void 0,embedSpans:new Map,rerankSpan:void 0,decisionSpan:void 0,toolSpans:new Map,baseTelemetryAttributes:a,settings:i})}onDecideOperationEnd(e){let t=this.getCallState(e.callId);t?.rootSpan&&(t.rootSpan.setAttributes(U(t.telemetry,{"ai.decision.answers":{output:()=>JSON.stringify(e.answers)}})),t.rootSpan.end(),this.cleanupCallState(e.callId))}experimental_onDecideStart(e){this.experimental_onEvaluateStart(e)}experimental_onDecideEnd(e){this.experimental_onEvaluateEnd(e)}experimental_onDecisionModelCallStart(e){this.experimental_onEvaluationModelCallStart(e)}experimental_onDecisionModelCallEnd(e){this.experimental_onEvaluationModelCallEnd(e)}experimental_onEvaluateStart(e){this.onDecideOperationStart(e)}experimental_onEvaluateEnd(e){this.onDecideOperationEnd(e)}experimental_onEvaluationModelCallStart(e){let t=this.getCallState(e.callId);if(!t?.rootSpan||!t.rootContext)return;let r=U(t.telemetry,{...L({operationId:e.operationId,telemetry:t.telemetry}),...t.baseTelemetryAttributes,"ai.decision.state":{input:()=>JSON.stringify(e.state)},"ai.decision.questions":{input:()=>JSON.stringify(e.questions)}}),i=this.tracer.startSpan(e.operationId,{attributes:r},t.rootContext);t.decisionSpan={span:i,context:n.setSpan(t.rootContext,i)}}experimental_onEvaluationModelCallEnd(e){let t=this.getCallState(e.callId);t?.decisionSpan&&(t.decisionSpan.span.setAttributes(U(t.telemetry,{"ai.decision.answers":{output:()=>JSON.stringify(e.answers)},"ai.usage.inputTokens":e.usage?.inputTokens,"ai.usage.outputTokens":e.usage?.outputTokens,"ai.response.providerMetadata":e.providerMetadata?JSON.stringify(e.providerMetadata):void 0})),t.decisionSpan.span.end(),t.decisionSpan=void 0)}onAbort(e){let t=this.getCallState(e.callId);if(t?.rootSpan){for(let{span:e}of t.toolSpans.values())e.end();t.toolSpans.clear(),t.stepSpan&&(t.stepSpan.end(),t.stepSpan=void 0,t.stepContext=void 0);for(let{span:e}of t.embedSpans.values())e.end();t.embedSpans.clear(),t.rerankSpan&&=(t.rerankSpan.span.end(),void 0),t.decisionSpan&&=(t.decisionSpan.span.end(),void 0),t.rootSpan.end(),this.cleanupCallState(e.callId)}}onError(e){let t=e;if(!t?.callId)return;let n=this.getCallState(t.callId);if(!n?.rootSpan)return;let r=t.error??e;n.stepSpan&&(V(n.stepSpan,r),n.stepSpan.end());for(let{span:e}of n.embedSpans.values())V(e,r),e.end();n.embedSpans.clear(),n.rerankSpan&&=(V(n.rerankSpan.span,r),n.rerankSpan.span.end(),void 0),n.decisionSpan&&=(V(n.decisionSpan.span,r),n.decisionSpan.span.end(),void 0),V(n.rootSpan,r),n.rootSpan.end(),this.cleanupCallState(t.callId)}};export{W as LegacyOpenTelemetry,I as OpenTelemetry};