eve 0.37.1 → 0.38.1

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 (222) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/src/chunks/{use-eve-agent-DbKUBhl-.js → use-eve-agent-BbSsu99c.js} +70 -31
  3. package/dist/src/chunks/{use-eve-agent-Bi5fRxcZ.js → use-eve-agent-Dt8Y5QtW.js} +69 -30
  4. package/dist/src/cli/acp/command.d.ts +2 -1
  5. package/dist/src/cli/acp/command.js +2 -2
  6. package/dist/src/cli/application-command.d.ts +8 -0
  7. package/dist/src/cli/application-command.js +1 -0
  8. package/dist/src/cli/application-root.d.ts +8 -0
  9. package/dist/src/cli/application-root.js +1 -0
  10. package/dist/src/cli/commands/build.d.ts +2 -1
  11. package/dist/src/cli/commands/build.js +1 -1
  12. package/dist/src/cli/commands/init-repl.js +1 -1
  13. package/dist/src/cli/commands/register-integration-commands.d.ts +2 -1
  14. package/dist/src/cli/commands/register-integration-commands.js +1 -1
  15. package/dist/src/cli/commands/register-project-commands.d.ts +2 -1
  16. package/dist/src/cli/commands/register-project-commands.js +1 -1
  17. package/dist/src/cli/commands/register-registry-commands.d.ts +2 -1
  18. package/dist/src/cli/commands/register-registry-commands.js +4 -1
  19. package/dist/src/cli/commands/registry-recovery.d.ts +14 -0
  20. package/dist/src/cli/commands/registry-recovery.js +1 -0
  21. package/dist/src/cli/commands/registry.d.ts +2 -5
  22. package/dist/src/cli/commands/registry.js +1 -1
  23. package/dist/src/cli/dev/diagnostic-dump.js +1 -1
  24. package/dist/src/cli/dev/environment.js +1 -1
  25. package/dist/src/cli/invoke/command.d.ts +3 -2
  26. package/dist/src/cli/invoke/command.js +1 -1
  27. package/dist/src/cli/run.d.ts +3 -2
  28. package/dist/src/cli/run.js +3 -3
  29. package/dist/src/client/eve-agent-store.d.ts +15 -3
  30. package/dist/src/client/eve-agent-store.js +2 -2
  31. package/dist/src/client/message-response.d.ts +10 -2
  32. package/dist/src/client/message-response.js +1 -1
  33. package/dist/src/client/session.js +1 -1
  34. package/dist/src/compiled/.vendor-stamp.json +4 -1
  35. package/dist/src/compiled/@ai-sdk/otel/index.js +3 -3
  36. package/dist/src/compiled/@chat-adapter/slack/index.js +25 -25
  37. package/dist/src/compiled/@opentelemetry/api/index.js +1 -1
  38. package/dist/src/compiled/@opentelemetry/otlp-transformer/index.js +1 -1
  39. package/dist/src/compiled/@photon-ai/chat-adapter-imessage/index.js +61 -61
  40. package/dist/src/compiled/@vercel/oidc/index.js +14 -14
  41. package/dist/src/compiled/@vercel/otel/index.js +1 -1
  42. package/dist/src/compiled/@vercel/sandbox/index.js +1 -1
  43. package/dist/src/compiled/@workflow/core/index.js +1 -1
  44. package/dist/src/compiled/@workflow/core/private.js +1 -1
  45. package/dist/src/compiled/@workflow/core/runtime.js +2 -2
  46. package/dist/src/compiled/@workflow/core/workflow.js +1 -1
  47. package/dist/src/compiled/@workflow/errors/index.js +1 -1
  48. package/dist/src/compiled/@workflow/world-local/index.js +5 -5
  49. package/dist/src/compiled/@workflow/world-vercel/index.js +13 -13
  50. package/dist/src/compiled/_chunks/workflow/{attribute-changes-BoH7JsWp.js → attribute-changes-DZtQkszH.js} +1 -1
  51. package/dist/src/compiled/_chunks/workflow/chunk-5MU5Z6L3-B_3nkJFi.js +1 -0
  52. package/dist/src/compiled/_chunks/workflow/{chunk-NWCAEW5Y-Oxw40oRR.js → chunk-NWCAEW5Y-BgbcH0OK.js} +1 -1
  53. package/dist/src/compiled/_chunks/workflow/{dist-DlFv0aHY.js → dist-CPlyFOVo.js} +1 -1
  54. package/dist/src/compiled/_chunks/workflow/{dist-tJoQXAF6.js → dist-DpYyXbJv.js} +1 -1
  55. package/dist/src/compiled/_chunks/workflow/{dist-CRTn4Sg8.js → dist-xQXN70ED.js} +1 -1
  56. package/dist/src/compiled/_chunks/workflow/esm-seIr7a6j.js +1 -0
  57. package/dist/src/compiled/_chunks/workflow/{frames-CTpeJYEQ.js → frames-BBs-9k1d.js} +2 -2
  58. package/dist/src/compiled/_chunks/workflow/{functions-CeeNvKsq.js → functions-DAYiHNti.js} +1 -1
  59. package/dist/src/compiled/_chunks/workflow/{getMachineId-bsd-WEBNKY2R-CEYkx6Nv.js → getMachineId-bsd-WEBNKY2R-BTaxrQ52.js} +1 -1
  60. package/dist/src/compiled/_chunks/workflow/{getMachineId-darwin-LT47KAXP-DPwWlhif.js → getMachineId-darwin-LT47KAXP-DhYmwE_R.js} +1 -1
  61. package/dist/src/compiled/_chunks/workflow/{getMachineId-linux-LTVQO6VW-DAFXHwZp.js → getMachineId-linux-LTVQO6VW-Dru_L5ru.js} +1 -1
  62. package/dist/src/compiled/_chunks/workflow/{getMachineId-unsupported-UKWBA27G-BZKOI8mG.js → getMachineId-unsupported-UKWBA27G-DGfoqVW1.js} +1 -1
  63. package/dist/src/compiled/_chunks/workflow/{getMachineId-win-NLJKOPY6-r7_CJB5o.js → getMachineId-win-NLJKOPY6-CLM98q4X.js} +1 -1
  64. package/dist/src/compiled/_chunks/workflow/{private-tvMBynnC.js → private-UQtz8ZcW.js} +1 -1
  65. package/dist/src/compiled/_chunks/workflow/{resume-hook-BPQHjeY5.js → resume-hook-CYtSorp6.js} +1 -1
  66. package/dist/src/compiled/_chunks/workflow/{rolldown-runtime-DaDcL9Zw.js → rolldown-runtime-8V8biNmG.js} +1 -1
  67. package/dist/src/compiled/_chunks/workflow/{run-DQ5dOyjm.js → run-Cjo0A3NO.js} +1 -1
  68. package/dist/src/compiled/_chunks/workflow/{signal-exit-C8vsI6zj.js → signal-exit-o3IPQwwv.js} +1 -1
  69. package/dist/src/compiled/_chunks/workflow/sleep-C1P0OWBm.js +1 -0
  70. package/dist/src/compiled/_chunks/workflow/{token-DHD-q-fS.js → token-DGzfw-Vb.js} +1 -1
  71. package/dist/src/compiled/_chunks/workflow/{token-DtCUEpJs.js → token-DNbxVpeq.js} +1 -1
  72. package/dist/src/compiled/_chunks/workflow/token-util-BneBe0g5.js +27 -0
  73. package/dist/src/compiled/_chunks/workflow/{token-util-Ldar52H7.js → token-util-DjMgNdXS.js} +1 -1
  74. package/dist/src/compiled/_chunks/workflow/{undici-CUIybhQ2.js → undici-BBG5cZTy.js} +1 -1
  75. package/dist/src/compiled/_chunks/workflow/{wait-until-DK2lnH6U.js → wait-until-CT1ve8qB.js} +3 -3
  76. package/dist/src/compiled/_chunks/workflow/{wrapper-CMGju7QA.js → wrapper-CQNxP9mU.js} +3 -3
  77. package/dist/src/compiled/_chunks/workflow/{ws-transport-Csi6Cydc.js → ws-transport-beXxD0s_.js} +1 -1
  78. package/dist/src/compiled/env-runner/node-worker.js +1 -1
  79. package/dist/src/compiled/jose/index.js +1 -1
  80. package/dist/src/compiled/shadcn-registry/index.js +403 -403
  81. package/dist/src/compiler/artifacts.js +1 -1
  82. package/dist/src/compiler/compile-agent.js +2 -2
  83. package/dist/src/compiler/extension-compatibility.d.ts +15 -0
  84. package/dist/src/compiler/extension-compatibility.js +1 -1
  85. package/dist/src/compiler/normalize-extension.d.ts +18 -6
  86. package/dist/src/compiler/normalize-extension.js +1 -1
  87. package/dist/src/compiler/normalize-manifest.js +1 -1
  88. package/dist/src/compiler/normalize-subagent.d.ts +1 -0
  89. package/dist/src/compiler/normalize-subagent.js +1 -1
  90. package/dist/src/discover/discover-agent.js +1 -1
  91. package/dist/src/discover/discover-subagent.js +1 -1
  92. package/dist/src/discover/extensions.d.ts +0 -6
  93. package/dist/src/discover/extensions.js +1 -1
  94. package/dist/src/evals/cli/eval.d.ts +1 -1
  95. package/dist/src/evals/cli/eval.js +1 -1
  96. package/dist/src/execution/sandbox/bindings/docker-templates.js +1 -1
  97. package/dist/src/execution/sandbox/bindings/just-bash.js +1 -1
  98. package/dist/src/execution/sandbox/bindings/microsandbox-templates.js +1 -1
  99. package/dist/src/execution/sandbox/prewarm.js +1 -1
  100. package/dist/src/harness/instrumentation/providers.js +1 -1
  101. package/dist/src/harness/instrumentation/runtime-context.d.ts +2 -0
  102. package/dist/src/harness/instrumentation/runtime-context.js +1 -1
  103. package/dist/src/harness/instrumentation/runtime.d.ts +3 -1
  104. package/dist/src/harness/tool-loop.js +1 -1
  105. package/dist/src/internal/application/cache-metadata.js +1 -1
  106. package/dist/src/internal/application/compiled-artifacts.js +2 -2
  107. package/dist/src/internal/application/optional-package-install.js +1 -1
  108. package/dist/src/internal/application/output-publication-lock.js +1 -1
  109. package/dist/src/internal/application/package.js +1 -1
  110. package/dist/src/internal/application/paths.js +1 -1
  111. package/dist/src/internal/application/tsconfig-dependencies.js +1 -1
  112. package/dist/src/internal/authored-module-evaluation-error.js +4 -4
  113. package/dist/src/internal/authored-module-loader.js +3 -3
  114. package/dist/src/internal/authored-module-map-loader.js +1 -1
  115. package/dist/src/internal/authored-package-boundary.js +1 -1
  116. package/dist/src/internal/authored-relative-extension-resolver.js +1 -1
  117. package/dist/src/internal/bundler/extension-scope-plugin.js +1 -1
  118. package/dist/src/internal/bundler/nitro-rolldown.js +1 -1
  119. package/dist/src/internal/instrumentation-layout.js +1 -1
  120. package/dist/src/internal/materialized-authored-modules.js +1 -1
  121. package/dist/src/internal/nitro/dev-runtime-artifacts-retention.js +1 -1
  122. package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
  123. package/dist/src/internal/nitro/dev-runtime-source-snapshot-copy.js +1 -1
  124. package/dist/src/internal/nitro/dev-runtime-source-snapshot-local-roots.js +1 -1
  125. package/dist/src/internal/nitro/dev-runtime-source-snapshot.js +1 -1
  126. package/dist/src/internal/nitro/host/application-route-registry.d.ts +88 -0
  127. package/dist/src/internal/nitro/host/application-route-registry.js +1 -0
  128. package/dist/src/internal/nitro/host/build-application.js +1 -1
  129. package/dist/src/internal/nitro/host/build-extension.js +1 -1
  130. package/dist/src/internal/nitro/host/build-vercel-agent-summary.js +1 -1
  131. package/dist/src/internal/nitro/host/channel-routes.d.ts +4 -11
  132. package/dist/src/internal/nitro/host/channel-routes.js +3 -3
  133. package/dist/src/internal/nitro/host/configure-nitro-routes.js +3 -3
  134. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  135. package/dist/src/internal/nitro/host/dev-authored-source-watcher.js +1 -1
  136. package/dist/src/internal/nitro/host/dev-runner.js +1 -1
  137. package/dist/src/internal/nitro/host/dev-workspace-extensions.js +1 -1
  138. package/dist/src/internal/nitro/host/extension-capability-requirements.js +1 -1
  139. package/dist/src/internal/nitro/host/local-tracing-runtime-plugin.js +1 -1
  140. package/dist/src/internal/nitro/host/nitro-bundler-config.js +1 -1
  141. package/dist/src/internal/nitro/host/start-development-server.js +2 -2
  142. package/dist/src/internal/nitro/host/start-production-server.js +2 -2
  143. package/dist/src/internal/nitro/host/vercel-build-output-config.js +1 -1
  144. package/dist/src/internal/process/pnpm.js +1 -1
  145. package/dist/src/internal/workflow/development-world-client.js +1 -1
  146. package/dist/src/internal/workflow/development-world-server.js +1 -1
  147. package/dist/src/internal/workflow-bundle/builder-support.d.ts +12 -8
  148. package/dist/src/internal/workflow-bundle/builder-support.js +8 -7
  149. package/dist/src/internal/workflow-bundle/builder.d.ts +1 -1
  150. package/dist/src/internal/workflow-bundle/builder.js +2 -3
  151. package/dist/src/internal/workflow-bundle/workflow-builders.js +1 -1
  152. package/dist/src/public/channels/discord/discordChannel.d.ts +2 -0
  153. package/dist/src/public/channels/discord/discordChannel.js +1 -1
  154. package/dist/src/public/channels/eve.d.ts +2 -0
  155. package/dist/src/public/channels/eve.js +1 -1
  156. package/dist/src/public/channels/github/dispatch.js +1 -1
  157. package/dist/src/public/channels/github/githubChannel.d.ts +2 -0
  158. package/dist/src/public/channels/linear/linearChannel.d.ts +2 -0
  159. package/dist/src/public/channels/linear/linearChannel.js +1 -1
  160. package/dist/src/public/channels/mcp.d.ts +2 -2
  161. package/dist/src/public/channels/mcp.js +1 -1
  162. package/dist/src/public/channels/photon/photonIMessageChannel.d.ts +2 -0
  163. package/dist/src/public/channels/photon/photonIMessageChannel.js +1 -1
  164. package/dist/src/public/channels/slack/slackChannel.d.ts +3 -1
  165. package/dist/src/public/channels/slack/slackChannel.js +1 -1
  166. package/dist/src/public/channels/teams/teamsChannel.d.ts +2 -0
  167. package/dist/src/public/channels/teams/teamsChannel.js +1 -1
  168. package/dist/src/public/channels/telegram/telegramChannel.d.ts +2 -0
  169. package/dist/src/public/channels/telegram/telegramChannel.js +1 -1
  170. package/dist/src/public/channels/twilio/twilioChannel.d.ts +2 -0
  171. package/dist/src/public/channels/twilio/twilioChannel.js +1 -1
  172. package/dist/src/public/instrumentation/index.d.ts +9 -3
  173. package/dist/src/public/next/server.js +1 -1
  174. package/dist/src/public/nuxt/dev-server.js +1 -1
  175. package/dist/src/public/sveltekit/dev-server.js +1 -1
  176. package/dist/src/react/use-eve-agent.d.ts +4 -4
  177. package/dist/src/react/use-eve-agent.js +1 -1
  178. package/dist/src/services/inspect-application.js +1 -1
  179. package/dist/src/setup/primitives/pm/pnpm.js +2 -2
  180. package/dist/src/setup/primitives/run-vercel.js +1 -1
  181. package/dist/src/setup/scaffold/create/extension.js +1 -1
  182. package/dist/src/setup/scaffold/create/project.js +1 -1
  183. package/dist/src/setup/scaffold/create/web-template.d.ts +1 -1
  184. package/dist/src/setup/scaffold/create/web-template.js +8 -86
  185. package/dist/src/setup/scaffold/version-tokens.js +1 -1
  186. package/dist/src/setup/scaffold/workspace-root.js +1 -1
  187. package/dist/src/svelte/index.js +1 -1
  188. package/dist/src/svelte/use-eve-agent.d.ts +3 -3
  189. package/dist/src/svelte/use-eve-agent.js +1 -1
  190. package/dist/src/tracing/install-instrumentation-runtime.d.ts +2 -1
  191. package/dist/src/tracing/install-instrumentation-runtime.js +1 -1
  192. package/dist/src/tracing/otel-declaration.d.ts +32 -3
  193. package/dist/src/tracing/otel-declaration.js +1 -1
  194. package/dist/src/tracing/otel-registration.js +1 -1
  195. package/dist/src/vue/index.js +1 -1
  196. package/dist/src/vue/use-eve-agent.d.ts +3 -3
  197. package/dist/src/vue/use-eve-agent.js +1 -1
  198. package/docs/channels/custom.mdx +1 -1
  199. package/docs/channels/discord.mdx +1 -1
  200. package/docs/channels/eve.mdx +1 -2
  201. package/docs/channels/github.mdx +1 -1
  202. package/docs/channels/linear.mdx +1 -1
  203. package/docs/channels/overview.mdx +1 -1
  204. package/docs/channels/photon.mdx +1 -1
  205. package/docs/channels/slack.mdx +1 -1
  206. package/docs/channels/teams.mdx +1 -1
  207. package/docs/channels/telegram.mdx +1 -1
  208. package/docs/channels/twilio.mdx +1 -1
  209. package/docs/extensions.md +19 -7
  210. package/docs/guides/client/streaming.mdx +6 -5
  211. package/docs/guides/frontend/overview.mdx +10 -8
  212. package/docs/guides/frontend/use-eve-agent-svelte.mdx +10 -10
  213. package/docs/guides/frontend/use-eve-agent-vue.mdx +10 -10
  214. package/docs/install-integrations.mdx +4 -0
  215. package/docs/reference/cli.md +1 -1
  216. package/docs/schedules.mdx +2 -2
  217. package/docs/subagents/index.mdx +3 -1
  218. package/package.json +1 -1
  219. package/dist/src/compiled/_chunks/workflow/chunk-5MU5Z6L3-CaJgXkVg.js +0 -1
  220. package/dist/src/compiled/_chunks/workflow/sleep-CzdoBiqy.js +0 -1
  221. package/dist/src/compiled/_chunks/workflow/src-Cj3P1ChQ.js +0 -1
  222. package/dist/src/compiled/_chunks/workflow/token-util-DNwIAn_u.js +0 -27
@@ -36,7 +36,7 @@ Each channel has its own provider terms, data flow, auth model, and user-consent
36
36
 
37
37
  ## Where channels live
38
38
 
39
- Channel files live under `agent/channels/` in the root agent. The file stem is the channel id: `agent/channels/intake.ts` is addressed as `intake`. Export the channel as the module's default export. Local subagents do not declare channels.
39
+ Channel files live under `agent/channels/` in the root agent or come from an [extension](../extensions) mounted there. The file stem is the channel id: `agent/channels/intake.ts` is addressed as `intake`. An extension mount prefixes its contributed channel IDs but does not change their route paths. Local subagents do not declare channels.
40
40
 
41
41
  ```text
42
42
  agent/
@@ -29,7 +29,7 @@ steers its replacement turn.
29
29
 
30
30
  Set `turnPolicy: "queue"` when every response should finish before Photon starts the next message.
31
31
 
32
- Customize inbound dispatch with `onMessage`. Return `null` to ignore a message:
32
+ Customize inbound dispatch with `onMessage`. Return `null` to ignore a message, or return `title` alongside `auth` to set the title when the dispatch starts a run:
33
33
 
34
34
  ```ts
35
35
  export default photonIMessageChannel({
@@ -125,7 +125,7 @@ Check the delivery path in order so you can identify where a Slack event stops:
125
125
 
126
126
  ### Message hooks
127
127
 
128
- Message hooks return `{ auth }` to dispatch, `null` to drop, or `{ auth, context }` to inject background into history.
128
+ Message hooks return `{ auth }` to dispatch, `null` to drop, or `{ auth, context }` to inject background into history. Return `title` alongside `auth` to set the title when the dispatch starts a run. When omitted, the title continues to use the triggering message text.
129
129
 
130
130
  - `onMessage(ctx, message)` handles Slack `message` events. eve drops messages authored by the installed app before this hook runs, preventing self-reply loops. Messages from other bots remain visible; check `message.author?.isBot` when those should also be ignored. `ctx.isBotMentioned()` and `ctx.isSubscribed()` support mention and active-thread policies.
131
131
  - `onAppMention(ctx, message)` handles only `app_mention` and takes precedence over `onMessage`. Its default derives workspace-scoped auth and posts `Thinking…`.
@@ -26,7 +26,7 @@ By default the channel mounts at `POST /eve/v1/teams`. Point your Azure Bot or T
26
26
 
27
27
  ### Dispatch
28
28
 
29
- The default `onMessage` handles two cases: personal-chat messages, and channel or group-chat messages that mention the bot directly. Ambient resource-specific-consent messages are dropped unless you override it. Before dispatch, eve strips the mention, adds a `<teams_context>` block, and scopes channel and group threads by root activity id (`replyToId ?? id`).
29
+ The default `onMessage` handles two cases: personal-chat messages, and channel or group-chat messages that mention the bot directly. Ambient resource-specific-consent messages are dropped unless you override it. Return `title` alongside `auth` to set the title when the dispatch starts a run. Before dispatch, eve strips the mention, adds a `<teams_context>` block, and scopes channel and group threads by root activity id (`replyToId ?? id`).
30
30
 
31
31
  For example, use the contextual `isSubscribed()` helper to continue active threads without requiring another mention:
32
32
 
@@ -39,7 +39,7 @@ In a private chat, text, captions, photos, and documents all go through. Groups
39
39
 
40
40
  Forum topics carry `message_thread_id` in the continuation token, so each topic stays on its own thread.
41
41
 
42
- To customize auth or filtering, override `onMessage`. Group privacy mode itself lives in BotFather, not here.
42
+ To customize auth or filtering, override `onMessage`. Return `title` alongside `auth` to set the title when the dispatch starts a run. Group privacy mode itself lives in BotFather, not here.
43
43
 
44
44
  ### Delivery
45
45
 
@@ -40,7 +40,7 @@ Point your Twilio number's Messaging webhook at `/messages` and Voice webhook at
40
40
  export default twilioChannel({ allowFrom: ["+15551234567", "+15557654321"] });
41
41
  ```
42
42
 
43
- `onText` and `onVoiceTranscription` decide dispatch and `auth`. Return `{ auth }` to proceed, or `null` to drop the message. `onVoice` fires the moment a call comes in. Return `null` to reject it, or return an object to override the spoken prompt, language, `<Say voice>`, and speech-recognition options.
43
+ `onText` and `onVoiceTranscription` decide dispatch and `auth`. Return `{ auth }` to proceed, `null` to drop the message, or `title` alongside `auth` to set the title when the dispatch starts a run. `onVoice` fires the moment a call comes in. Return `null` to reject it, or return an object to override the spoken prompt, language, `<Say voice>`, and speech-recognition options.
44
44
 
45
45
  ```ts
46
46
  export default twilioChannel({
@@ -3,7 +3,7 @@ title: "Extensions"
3
3
  description: "Package reusable eve capabilities and mount them from npm or a monorepo workspace."
4
4
  ---
5
5
 
6
- Extensions package eve tools, connections, skills, instruction fragments, and hooks. An author builds an extension package; each agent that uses it declares the package as a dependency and mounts it. The package can be published to a package registry or kept private inside a monorepo workspace.
6
+ Extensions package eve tools, channels, connections, skills, schedules, subagents, instruction fragments, and hooks. An author builds an extension package; each agent that uses it declares the package as a dependency and mounts it. The package can be published to a package registry or kept private inside a monorepo workspace.
7
7
 
8
8
  Ready-made extensions can also be distributed through an eve integration registry. See [Add Integrations](./install-integrations) to discover and add one with `eve add`; this page explains how extension packages are authored, mounted, configured, and overridden.
9
9
 
@@ -29,8 +29,11 @@ An extension uses the same file conventions as an agent for its contributions:
29
29
  extension/
30
30
  extension.ts
31
31
  tools/search.ts
32
+ channels/webhook.ts
32
33
  connections/api.ts
33
34
  skills/triage/SKILL.md
35
+ schedules/sync.ts
36
+ subagents/reviewer/agent.ts
34
37
  instructions.md
35
38
  hooks/audit.ts
36
39
  lib/http.ts
@@ -38,9 +41,9 @@ An extension uses the same file conventions as an agent for its contributions:
38
41
 
39
42
  Each listed slot accepts the same authored forms as its agent counterpart. Static and dynamic tools, skills, and instructions all work in an extension: `extension/instructions.ts` is as valid as `extension/instructions.md`, and `extension/tools/` can contain `defineDynamic(...)`.
40
43
 
41
- Names come from paths, so call the tool `search`, not `crm_search`; the consumer's mount adds the `crm__` prefix. Keep shared code in `extension/lib/`.
44
+ Names come from paths, so call the tool `search`, not `crm_search`; the consumer's mount adds the `crm__` prefix. The same prefix applies to channel, schedule, and parent-visible subagent IDs, while channel route paths and schedule cron expressions stay unchanged. Keep shared code in `extension/lib/`.
42
45
 
43
- Keep agent configuration, sandboxes, schedules, and nested extensions in the consumer's agent.
46
+ The extension root cannot declare agent configuration, a sandbox, or nested extensions. A subagent contributed under `extension/subagents/` owns its own agent configuration and sandbox like any other [declared subagent](./subagents).
44
47
 
45
48
  ### Add configuration and contributions
46
49
 
@@ -58,7 +61,7 @@ export default defineExtension({
58
61
  });
59
62
  ```
60
63
 
61
- Contributions import that handle to read the validated configuration. Defaults have already been applied:
64
+ Contributions, including schedule handlers, can import that handle to read the validated configuration. Defaults have already been applied:
62
65
 
63
66
  ```ts title="extension/tools/search.ts"
64
67
  import { defineTool } from "eve/tools";
@@ -80,6 +83,12 @@ If no configuration is needed, export `defineExtension()` and let consumers re-e
80
83
 
81
84
  `defineState` is automatically scoped to the extension package, so the same state name does not collide with the consumer or another extension.
82
85
 
86
+ ### Add a subagent
87
+
88
+ Author a subagent under `extension/subagents/<id>/` using the same files as a subagent declared by an agent. Mounting the extension as `crm` exposes `extension/subagents/reviewer/` to the consuming agent node as `crm__reviewer`. The subagent's own tools, connections, skills, hooks, instructions, sandbox, and nested subagents remain isolated inside its node and keep their path-derived names.
89
+
90
+ Modules inside the contributed subagent can import the extension handle. For example, a tool under `extension/subagents/reviewer/tools/` can read the configuration bound by the consumer's `agent/extensions/crm.ts` mount.
91
+
83
92
  ### Build and optionally publish
84
93
 
85
94
  The scaffold's `package.json` declares separate source and distribution roots:
@@ -168,7 +177,7 @@ export default crm({ apiKey: process.env.CRM_API_KEY! });
168
177
 
169
178
  Set `CRM_API_KEY` in the consumer's environment, such as `.env.local` for local development.
170
179
 
171
- The mount adds `crm__` to named contributions: `tools/search.ts` becomes `crm__search`, and `connections/api.ts` becomes `crm__api`.
180
+ The mount adds `crm__` to named contributions: `tools/search.ts` becomes `crm__search`, `channels/webhook.ts` becomes `crm__webhook`, `schedules/sync.ts` becomes `crm__sync`, `connections/api.ts` becomes `crm__api`, and `subagents/reviewer/` becomes `crm__reviewer`. Channels keep their declared route paths, and schedules keep their cron expressions.
172
181
 
173
182
  For an extension with no configuration, mount its default export directly:
174
183
 
@@ -274,7 +283,7 @@ import crm from "@acme/crm";
274
283
  export default crm({ apiKey: process.env.CRM_API_KEY! });
275
284
  ```
276
285
 
277
- A same-named consumer tool, connection, or skill wins. To adjust an extension tool, import it from the package's `./tools` export and define it again:
286
+ A same-named consumer channel, tool, connection, skill, schedule, or subagent wins. To adjust an extension tool, import it from the package's `./tools` export and define it again:
278
287
 
279
288
  ```ts title="agent/extensions/crm/tools/search.ts"
280
289
  import { search } from "@acme/crm/tools";
@@ -294,7 +303,7 @@ export default disableTool();
294
303
 
295
304
  Hooks and instruction fragments are additive, so they cannot be replaced. To replace a dynamic tool, use a dynamic definition in the same slot; dynamic tools win over same-named static tools at runtime. `disableTool()` removes either kind.
296
305
 
297
- The `crm__` prefix is reserved for this directory mount. A consumer cannot override the extension from `agent/tools/`, `agent/connections/`, or another agent-root slot.
306
+ The `crm__` prefix is reserved for this directory mount. A consumer cannot override the extension from `agent/tools/`, `agent/connections/`, `agent/subagents/`, or another agent-root slot.
298
307
 
299
308
  ### Use an extension tool result in a hook
300
309
 
@@ -329,4 +338,7 @@ At build time, eve checks the extension's generated capability metadata. If the
329
338
  - [Instructions](/docs/instructions): static and TypeScript instructions
330
339
  - [Skills](/docs/skills): package procedures and supporting files
331
340
  - [Connections](/docs/connections): integrate external services
341
+ - [Channels](/docs/channels/overview): receive messages and expose routes
342
+ - [Schedules](/docs/schedules): run the agent on a cron cadence
343
+ - [Subagents](/docs/subagents): delegate to declared specialists
332
344
  - [Hooks](/docs/guides/hooks): observe agent events
@@ -5,23 +5,24 @@ description: "Consume eve client stream events live, reconnect by event index, a
5
5
 
6
6
  Every `ClientSession.send()` call posts the turn, then reads the session's NDJSON (newline-delimited JSON) event stream. `MessageResponse` gives you two ways to consume that stream, aggregating it with `result()` or iterating it live.
7
7
 
8
- Once `send()` is accepted, the session exposes its assigned `sessionId` and can request cooperative cancellation with `session.cancel()`, even while the response stream is still running. The result status is `accepted` when the live session durably queued the command, including when a parked session consumes it as a no-op. An unknown or terminal session returns `no_active_turn`:
8
+ Once `send()` is accepted, `response.cancel()` requests cooperative cancellation of that exact turn. Start consuming the response first; cancellation waits for the stream to identify the turn, guards the request with its ID, and never targets a later turn. The result status is `accepted` when the live session durably queues the command. A response that settles before a turn starts returns `no_active_turn`:
9
9
 
10
10
  ```ts
11
- const { session, response } = await client.sessions.create({ message: "Run the long operation." });
11
+ const { response } = await client.sessions.create({ message: "Run the long operation." });
12
12
 
13
- const cancellation = await session.cancel();
13
+ const resultPromise = response.result();
14
+ const cancellation = await response.cancel();
14
15
  if (cancellation.status === "accepted") {
15
16
  console.log(cancellation.sessionId);
16
17
  }
17
18
 
18
- const result = await response.result();
19
+ const result = await resultPromise;
19
20
  ```
20
21
 
21
22
  The cancellation result is discriminated by `status`: only `accepted` includes
22
23
  `sessionId`; `no_active_turn` has no session identity field.
23
24
 
24
- Cancellation does not replace stream consumption. Continue reading the response to observe its terminal `turn.cancelled` and `session.waiting` boundary and to advance the client session cursor normally.
25
+ Cancellation does not replace stream consumption. Continue reading the response to observe its terminal `turn.cancelled` and `session.waiting` boundary and to advance the client session cursor normally. Use `session.cancel({ turnId })` instead when you have only a fixed session handle and an observed turn ID.
25
26
 
26
27
  Between turns, `session.compact()` queues context compaction without sending model input. An accepted request reports the session id; consume the durable stream through the following `session.waiting` boundary before sending the next turn. `compaction.completed` confirms that summarization succeeded; without it, eve preserves the previous history. A never-started session returns `no_active_session` as a successful no-op.
27
28
 
@@ -78,7 +78,7 @@ export function Chat() {
78
78
  | `session` | Serializable fixed session cursor (`sessionId`, `streamIndex`). |
79
79
  | `send` | Send text or a multi-part message, with per-turn options. |
80
80
  | `respond` | Answer pending HITL input requests, with per-turn options. |
81
- | `stop` | Abort the client's in-flight stream. The server-side turn keeps running. |
81
+ | `cancel` | Request durable cancellation of the active turn. |
82
82
  | `reset` | Clear local events, data, errors, and the local session cursor. |
83
83
 
84
84
  Most chat UIs only need `data.messages` and `status`. Drop down to `events` when you need the authoritative wire events directly, for example to persist an audit log or build a custom projection.
@@ -105,15 +105,17 @@ await agent.send([
105
105
  ]);
106
106
  ```
107
107
 
108
- Assistant text, reasoning, tool calls, and tool results stream into `data` as they arrive, and `status` moves from `ready` to `submitted` to `streaming` and back. Call `stop()` to abort the client's in-flight stream, and `reset()` to clear local state so the next send starts a fresh durable session.
108
+ Assistant text, reasoning, tool calls, and tool results stream into `data` as they arrive, and `status` moves from `ready` to `submitted` to `streaming` and back. Call `cancel()` to stop the durable server-side turn, and `reset()` to clear local state so the next send starts a fresh durable session.
109
109
 
110
- `stop()` is local: turns are resumable across disconnects, so detaching the stream never cancels the work — the turn keeps running and billing on the server. To stop the turn itself, POST the session's [cancel route](../../channels/eve#routes); the turn then settles on the stream as `turn.cancelled` followed by `session.waiting`.
110
+ `cancel()` can be called as soon as `status` is `"submitted"`; the hook waits for the active response to identify its turn when necessary, sends one guarded cancellation request, and keeps the event stream attached. The promise resolves when eve accepts the request or reports that no turn is active, and rejects if the cancellation request fails. The turn then settles on the same stream as `turn.cancelled` followed by `session.waiting`, so the session is safe to continue.
111
111
 
112
- A chat UI with a server-side Cancel button can use the `sessionId` exposed by the
113
- hook, attach a fixed `ClientSession`, and call `session.cancel({ turnId })` after
114
- observing that turn's `turn.started` event. The `turnId` guard makes a late click
115
- a harmless no-op instead of cancelling a newer turn. Keep the stream open until
116
- the cancellation boundary arrives; do not use `stop()` for this interaction.
112
+ ```tsx
113
+ if (agent.status === "submitted" || agent.status === "streaming") {
114
+ await agent.cancel();
115
+ }
116
+ ```
117
+
118
+ Unmounting the component or closing the page disconnects the local stream but does not cancel server execution. Call `cancel()` before detaching when the user intends to stop the durable turn.
117
119
 
118
120
  After eve confirms an attachment turn with `message.received`, the default reducer projects each
119
121
  received attachment as a `file` part on the user message. The part includes `mediaType`, optional
@@ -44,14 +44,14 @@ Call the binding once for a conversation and read its reactive getters directly.
44
44
 
45
45
  The state fields are reactive getters; the commands are ordinary methods:
46
46
 
47
- | Property | Svelte shape |
48
- | ---------------------------------- | --------------------------------- |
49
- | `data` | `TData` |
50
- | `status` | `UseEveAgentStatus` |
51
- | `error` | `Error \| undefined` |
52
- | `events` | `readonly MessageStreamEvent[]` |
53
- | `session` | `ClientSessionState \| undefined` |
54
- | `send`, `respond`, `stop`, `reset` | Methods |
47
+ | Property | Svelte shape |
48
+ | ------------------------------------ | --------------------------------- |
49
+ | `data` | `TData` |
50
+ | `status` | `UseEveAgentStatus` |
51
+ | `error` | `Error \| undefined` |
52
+ | `events` | `readonly MessageStreamEvent[]` |
53
+ | `session` | `ClientSessionState \| undefined` |
54
+ | `send`, `respond`, `cancel`, `reset` | Methods |
55
55
 
56
56
  Read the getters directly in templates, `$derived`, or `$effect`. The [shared returned-state reference](./overview#returned-state) describes what each value and command does.
57
57
 
@@ -104,9 +104,9 @@ Pending requests appear in `agent.data.messages`. Use the Svelte exports when na
104
104
 
105
105
  See [Human-in-the-loop prompts](./overview#human-in-the-loop-prompts) for request semantics and rendering guidance.
106
106
 
107
- ## Stop, reset, and resume
107
+ ## Cancel, reset, and resume
108
108
 
109
- Call `agent.stop()` to detach the browser stream without cancelling server-side work, and `agent.reset()` to clear local state and start a new session. Pass `initialSession` and `initialEvents` to restore a saved conversation. See [Resumable sessions](./overview#resumable-sessions) for the persistence contract and [Sending and streaming](./overview#sending-and-streaming) for cancellation behavior.
109
+ Call `agent.cancel()` to stop the durable server-side turn while the binding remains attached through settlement. Destroying the component only disconnects its local stream; it does not cancel server execution. Call `agent.reset()` to clear local state and start a new session. Pass `initialSession` and `initialEvents` to restore a saved conversation. See [Resumable sessions](./overview#resumable-sessions) for the persistence contract and [Sending and streaming](./overview#sending-and-streaming) for cancellation behavior.
110
110
 
111
111
  ## Custom host and credentials
112
112
 
@@ -43,14 +43,14 @@ async function handleSubmit() {
43
43
 
44
44
  The state fields are computed refs; the commands are ordinary methods:
45
45
 
46
- | Property | Vue shape |
47
- | ---------------------------------- | ---------------------------------------------- |
48
- | `data` | `ComputedRef<TData>` |
49
- | `status` | `ComputedRef<UseEveAgentStatus>` |
50
- | `error` | `ComputedRef<Error \| undefined>` |
51
- | `events` | `ComputedRef<readonly MessageStreamEvent[]>` |
52
- | `session` | `ComputedRef<ClientSessionState \| undefined>` |
53
- | `send`, `respond`, `stop`, `reset` | Methods |
46
+ | Property | Vue shape |
47
+ | ------------------------------------ | ---------------------------------------------- |
48
+ | `data` | `ComputedRef<TData>` |
49
+ | `status` | `ComputedRef<UseEveAgentStatus>` |
50
+ | `error` | `ComputedRef<Error \| undefined>` |
51
+ | `events` | `ComputedRef<readonly MessageStreamEvent[]>` |
52
+ | `session` | `ComputedRef<ClientSessionState \| undefined>` |
53
+ | `send`, `respond`, `cancel`, `reset` | Methods |
54
54
 
55
55
  Destructuring preserves reactivity because each state value remains a ref. Read refs with `.value` in `<script>` and without `.value` in a template. The [shared returned-state reference](./overview#returned-state) describes what each value and command does.
56
56
 
@@ -106,9 +106,9 @@ const pendingRequests = computed(() =>
106
106
 
107
107
  See [Human-in-the-loop prompts](./overview#human-in-the-loop-prompts) for request semantics and rendering guidance.
108
108
 
109
- ## Stop, reset, and resume
109
+ ## Cancel, reset, and resume
110
110
 
111
- Call `stop()` to detach the browser stream without cancelling server-side work, and `reset()` to clear local state and start a new session. Pass `initialSession` and `initialEvents` to restore a saved conversation. See [Resumable sessions](./overview#resumable-sessions) for the persistence contract and [Sending and streaming](./overview#sending-and-streaming) for cancellation behavior.
111
+ Call `cancel()` to stop the durable server-side turn while the composable remains attached through settlement. Disposing the component only disconnects its local stream; it does not cancel server execution. Call `reset()` to clear local state and start a new session. Pass `initialSession` and `initialEvents` to restore a saved conversation. See [Resumable sessions](./overview#resumable-sessions) for the persistence contract and [Sending and streaming](./overview#sending-and-streaming) for cancellation behavior.
112
112
 
113
113
  ## Custom host and credentials
114
114
 
@@ -16,6 +16,10 @@ eve add linear
16
16
  eve add instrumentation/braintrust
17
17
  ```
18
18
 
19
+ If an item is not found, `eve add` searches the available catalogs and prints close matches without installing anything.
20
+
21
+ If you do not know an item name yet, run `eve add` without an argument. Its help output shows how to search the registry with `eve registry search <query>`.
22
+
19
23
  Extensions may create a mount under `agent/extensions/`. Connections write their initial definition under `agent/connections/` and install `@vercel/connect` when required. Instrumentation providers write `agent/instrumentation.ts`; because an agent has one instrumentation file, compose multiple exporters there by hand. Configure generated files and required environment variables before running your agent.
20
24
 
21
25
  Some integrations package several independently installable components. For example, `eve add linear` lets you choose the Linear Channel, Linear MCP, or both; both are selected by default. The specific `eve add channel/linear-agent` and `eve add connection/linear` commands remain available.
@@ -3,7 +3,7 @@ title: "CLI"
3
3
  description: "Reference for every eve CLI command: init, set, info, build, start, dev, logs, trace, link, deploy, eval, channels, and extension."
4
4
  ---
5
5
 
6
- The `eve` binary (`bin: eve`) runs from your app root. Every command first loads `.env`/`.env.local` from that root. Running `eve` with no command runs `eve init` when the current directory is not an eve project, or `eve dev` when it is.
6
+ Relevant `eve` commands can run from the application root or any directory beneath it. Running `eve` with no command runs `eve init` when the current directory is not an eve project, or `eve dev` when it is.
7
7
 
8
8
  ## Commands
9
9
 
@@ -3,9 +3,9 @@ title: "Schedules"
3
3
  description: "Run an agent on a cron cadence, either a fire-and-forget prompt or a handler that hands work off to a channel."
4
4
  ---
5
5
 
6
- A schedule starts the agent on its own clock instead of waiting for an inbound message. Use one for daily digests, data syncs, cleanup sweeps, heartbeats, or anything that should fire on a cadence. Each one is a single file under `agent/schedules/` carrying a cron expression. Schedules are root-only, so declared subagents cannot have a `schedules/` directory.
6
+ A schedule starts the agent on its own clock instead of waiting for an inbound message. Use one for daily digests, data syncs, cleanup sweeps, heartbeats, or anything that should fire on a cadence. Root-authored schedules are single files under `agent/schedules/`, and mounted extensions can contribute them from `extension/schedules/`. Declared subagents cannot have a `schedules/` directory.
7
7
 
8
- The name comes from the path under `schedules/` (`agent/schedules/billing/sweep.ts` → `"billing/sweep"`), and nested directories are fine.
8
+ The name comes from the path under `schedules/` (`agent/schedules/billing/sweep.ts` → `"billing/sweep"`), and nested directories are fine. An extension mount prefixes that name (`extension/schedules/sweep.ts` mounted as `crm` → `"crm__sweep"`) without changing its cron expression.
9
9
 
10
10
  ## `defineSchedule`
11
11
 
@@ -50,6 +50,8 @@ export default defineAgent({
50
50
 
51
51
  `description` is required. The parent reads it to decide whether to delegate, so the compiler rejects any subagent whose `agent.ts` leaves it out.
52
52
 
53
+ A mounted extension can also contribute declared subagents from `extension/subagents/`. The mount namespace prefixes the subagent visible to the consuming agent node: mounting an extension as `crm` exposes its `reviewer` subagent as `crm__reviewer`. The contributed subagent keeps its own isolated tools, connections, skills, hooks, instructions, sandbox, and nested subagents, and its modules can read configuration from the extension handle. See [Extensions](./extensions#add-a-subagent) for the authoring and override behavior.
54
+
53
55
  ### Conditional availability
54
56
 
55
57
  To expose a declared subagent only for certain sessions or turns, export
@@ -153,7 +155,7 @@ Declared subagents can call nested subagents defined under their own directories
153
155
 
154
156
  `Workflow` is also root-only. Child sessions can still call their own declared or remote subagents, but they receive neither `Workflow` nor the built-in `agent`. The Workflow tool's `maxSubagents` option caps the number of calls made by one program (default 100); see [Workflow Tool](./subagents/workflow-tool).
155
157
 
156
- A declared subagent's tool name is the bare path-derived name, with no prefix. `agent/subagents/researcher/` registers as the tool `researcher`. Unlike connection tools (`<connection>__<tool>`), it carries no namespace, so the model, approvals, logs, and evals all reference it by that name. Its input schema is:
158
+ A directly declared subagent's tool name is the bare path-derived name, with no prefix. `agent/subagents/researcher/` registers as the tool `researcher`. A subagent supplied by a mounted extension includes the mount namespace, such as `crm__reviewer`. The model, approvals, logs, and evals reference the resulting name. Its input schema is:
157
159
 
158
160
  ```ts
159
161
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eve",
3
- "version": "0.37.1",
3
+ "version": "0.38.1",
4
4
  "private": false,
5
5
  "description": "Filesystem-first framework for durable backend AI agents that run anywhere.",
6
6
  "keywords": [
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-DaDcL9Zw.js";import{t}from"./src-Cj3P1ChQ.js";import{fileURLToPath as n}from"url";import{createRequire as r}from"module";import i from"path";var a=e(t(),1);const o=r(import.meta.url),s=n(import.meta.url);i.dirname(s);var c=Object.create,l=Object.defineProperty,u=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,f=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty,m=(e=>typeof o<`u`?o:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof o<`u`?o:e)[t]}):e)(function(e){if(typeof o<`u`)return o.apply(this,arguments);throw Error(`Dynamic require of "`+e+`" is not supported`)}),h=(e,t)=>()=>(e&&(t=e(e=0)),t),g=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),_=(e,t)=>{for(var n in t)l(e,n,{get:t[n],enumerable:!0})},v=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let i of d(t))!p.call(e,i)&&i!==n&&l(e,i,{get:()=>t[i],enumerable:!(r=u(t,i))||r.enumerable});return e},y=(e,t,n)=>(v(e,t,`default`),n&&v(n,t,`default`)),b=(e,t,n)=>(n=e==null?{}:c(f(e)),v(t||!e||!e.__esModule?l(n,`default`,{value:e,enumerable:!0}):n,e)),x=e=>v(l({},`__esModule`,{value:!0}),e),S={},C=h(()=>{y(S,a)});export{_ as a,S as c,g as i,y as l,C as n,b as o,m as r,x as s,h as t};
@@ -1 +0,0 @@
1
- import{ar as e}from"./wait-until-DK2lnH6U.js";import{i as t}from"./attribute-changes-BoH7JsWp.js";async function n(r){let i=globalThis[e];return i||t(`sleep()`,`https://workflow-sdk.dev/docs/api-reference/workflow/sleep`,n),i(r)}export{n as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./rolldown-runtime-DaDcL9Zw.js";var t=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.VERSION=void 0,e.VERSION=`1.9.1`})),n=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.isCompatible=e._makeCompatibilityCheck=void 0;let n=t(),r=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function i(e){let t=new Set([e]),n=new Set,i=e.match(r);if(!i)return()=>!1;let a={major:+i[1],minor:+i[2],patch:+i[3],prerelease:i[4]};if(a.prerelease!=null)return function(t){return t===e};function o(e){return n.add(e),!1}function s(e){return t.add(e),!0}return function(e){if(t.has(e))return!0;if(n.has(e))return!1;let i=e.match(r);if(!i)return o(e);let c={major:+i[1],minor:+i[2],patch:+i[3],prerelease:i[4]};return c.prerelease!=null||a.major!==c.major?o(e):a.major===0?a.minor===c.minor&&a.patch<=c.patch?s(e):o(e):a.minor<=c.minor?s(e):o(e)}}e._makeCompatibilityCheck=i,e.isCompatible=i(n.VERSION)})),r=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.unregisterGlobal=e.getGlobal=e.registerGlobal=void 0;let r=t(),i=n(),a=r.VERSION.split(`.`)[0],o=Symbol.for(`opentelemetry.js.api.${a}`),s=typeof globalThis==`object`?globalThis:typeof self==`object`?self:typeof window==`object`?window:typeof global==`object`?global:{};function c(e,t,n,i=!1){let a=s[o]=s[o]??{version:r.VERSION};if(!i&&a[e]){let t=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);return n.error(t.stack||t.message),!1}if(a.version!==r.VERSION){let t=Error(`@opentelemetry/api: Registration of version v${a.version} for ${e} does not match previously registered API v${r.VERSION}`);return n.error(t.stack||t.message),!1}return a[e]=t,n.debug(`@opentelemetry/api: Registered a global for ${e} v${r.VERSION}.`),!0}e.registerGlobal=c;function l(e){let t=s[o]?.version;if(!(!t||!(0,i.isCompatible)(t)))return s[o]?.[e]}e.getGlobal=l;function u(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${r.VERSION}.`);let n=s[o];n&&delete n[e]}e.unregisterGlobal=u})),i=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.DiagComponentLogger=void 0;let t=r();e.DiagComponentLogger=class{constructor(e){this._namespace=e.namespace||`DiagComponentLogger`}debug(...e){return n(`debug`,this._namespace,e)}error(...e){return n(`error`,this._namespace,e)}info(...e){return n(`info`,this._namespace,e)}warn(...e){return n(`warn`,this._namespace,e)}verbose(...e){return n(`verbose`,this._namespace,e)}};function n(e,n,r){let i=(0,t.getGlobal)(`diag`);if(i)return i[e](n,...r)}})),a=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.DiagLogLevel=void 0,(function(e){e[e.NONE=0]=`NONE`,e[e.ERROR=30]=`ERROR`,e[e.WARN=50]=`WARN`,e[e.INFO=60]=`INFO`,e[e.DEBUG=70]=`DEBUG`,e[e.VERBOSE=80]=`VERBOSE`,e[e.ALL=9999]=`ALL`})(e.DiagLogLevel||={})})),o=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.createLogLevelDiagLogger=void 0;let t=a();function n(e,n){e<t.DiagLogLevel.NONE?e=t.DiagLogLevel.NONE:e>t.DiagLogLevel.ALL&&(e=t.DiagLogLevel.ALL),n||={};function r(t,r){let i=n[t];return typeof i==`function`&&e>=r?i.bind(n):function(){}}return{error:r(`error`,t.DiagLogLevel.ERROR),warn:r(`warn`,t.DiagLogLevel.WARN),info:r(`info`,t.DiagLogLevel.INFO),debug:r(`debug`,t.DiagLogLevel.DEBUG),verbose:r(`verbose`,t.DiagLogLevel.VERBOSE)}}e.createLogLevelDiagLogger=n})),s=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.DiagAPI=void 0;let t=i(),n=o(),s=a(),c=r();e.DiagAPI=class e{static instance(){return this._instance||=new e,this._instance}constructor(){function e(e){return function(...t){let n=(0,c.getGlobal)(`diag`);if(n)return n[e](...t)}}let r=this;r.setLogger=(e,t={logLevel:s.DiagLogLevel.INFO})=>{if(e===r){let e=Error(`Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation`);return r.error(e.stack??e.message),!1}typeof t==`number`&&(t={logLevel:t});let i=(0,c.getGlobal)(`diag`),a=(0,n.createLogLevelDiagLogger)(t.logLevel??s.DiagLogLevel.INFO,e);if(i&&!t.suppressOverrideMessage){let e=Error().stack??`<failed to generate stacktrace>`;i.warn(`Current logger will be overwritten from ${e}`),a.warn(`Current logger will overwrite one already registered from ${e}`)}return(0,c.registerGlobal)(`diag`,a,r,!0)},r.disable=()=>{(0,c.unregisterGlobal)(`diag`,r)},r.createComponentLogger=e=>new t.DiagComponentLogger(e),r.verbose=e(`verbose`),r.debug=e(`debug`),r.info=e(`info`),r.warn=e(`warn`),r.error=e(`error`)}}})),c=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.BaggageImpl=void 0,e.BaggageImpl=class e{constructor(e){this._entries=e?new Map(e):new Map}getEntry(e){let t=this._entries.get(e);if(t)return Object.assign({},t)}getAllEntries(){return Array.from(this._entries.entries())}setEntry(t,n){let r=new e(this._entries);return r._entries.set(t,n),r}removeEntry(t){let n=new e(this._entries);return n._entries.delete(t),n}removeEntries(...t){let n=new e(this._entries);for(let e of t)n._entries.delete(e);return n}clear(){return new e}}})),l=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.baggageEntryMetadataSymbol=void 0,e.baggageEntryMetadataSymbol=Symbol(`BaggageEntryMetadata`)})),u=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.baggageEntryMetadataFromString=e.createBaggage=void 0;let t=s(),n=c(),r=l(),i=t.DiagAPI.instance();function a(e={}){return new n.BaggageImpl(new Map(Object.entries(e)))}e.createBaggage=a;function o(e){return typeof e!=`string`&&(i.error(`Cannot create baggage metadata from unknown type: ${typeof e}`),e=``),{__TYPE__:r.baggageEntryMetadataSymbol,toString(){return e}}}e.baggageEntryMetadataFromString=o})),d=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ROOT_CONTEXT=e.createContextKey=void 0;function t(e){return Symbol.for(e)}e.createContextKey=t,e.ROOT_CONTEXT=new class e{constructor(t){let n=this;n._currentContext=t?new Map(t):new Map,n.getValue=e=>n._currentContext.get(e),n.setValue=(t,r)=>{let i=new e(n._currentContext);return i._currentContext.set(t,r),i},n.deleteValue=t=>{let r=new e(n._currentContext);return r._currentContext.delete(t),r}}}})),f=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.DiagConsoleLogger=e._originalConsoleMethods=void 0;let t=[{n:`error`,c:`error`},{n:`warn`,c:`warn`},{n:`info`,c:`info`},{n:`debug`,c:`debug`},{n:`verbose`,c:`trace`}];if(e._originalConsoleMethods={},typeof console<`u`)for(let t of[`error`,`warn`,`info`,`debug`,`trace`,`log`])typeof console[t]==`function`&&(e._originalConsoleMethods[t]=console[t]);e.DiagConsoleLogger=class{constructor(){function n(t){return function(...n){let r=e._originalConsoleMethods[t];if(typeof r!=`function`&&(r=e._originalConsoleMethods.log),typeof r!=`function`&&console&&(r=console[t],typeof r!=`function`&&(r=console.log)),typeof r==`function`)return r.apply(console,n)}}for(let e=0;e<t.length;e++)this[t[e].n]=n(t[e].c)}}})),p=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.createNoopMeter=e.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=e.NOOP_OBSERVABLE_GAUGE_METRIC=e.NOOP_OBSERVABLE_COUNTER_METRIC=e.NOOP_UP_DOWN_COUNTER_METRIC=e.NOOP_HISTOGRAM_METRIC=e.NOOP_GAUGE_METRIC=e.NOOP_COUNTER_METRIC=e.NOOP_METER=e.NoopObservableUpDownCounterMetric=e.NoopObservableGaugeMetric=e.NoopObservableCounterMetric=e.NoopObservableMetric=e.NoopHistogramMetric=e.NoopGaugeMetric=e.NoopUpDownCounterMetric=e.NoopCounterMetric=e.NoopMetric=e.NoopMeter=void 0;var t=class{constructor(){}createGauge(t,n){return e.NOOP_GAUGE_METRIC}createHistogram(t,n){return e.NOOP_HISTOGRAM_METRIC}createCounter(t,n){return e.NOOP_COUNTER_METRIC}createUpDownCounter(t,n){return e.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(t,n){return e.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(t,n){return e.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(t,n){return e.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(e,t){}removeBatchObservableCallback(e){}};e.NoopMeter=t;var n=class{};e.NoopMetric=n;var r=class extends n{add(e,t){}};e.NoopCounterMetric=r;var i=class extends n{add(e,t){}};e.NoopUpDownCounterMetric=i;var a=class extends n{record(e,t){}};e.NoopGaugeMetric=a;var o=class extends n{record(e,t){}};e.NoopHistogramMetric=o;var s=class{addCallback(e){}removeCallback(e){}};e.NoopObservableMetric=s;var c=class extends s{};e.NoopObservableCounterMetric=c;var l=class extends s{};e.NoopObservableGaugeMetric=l;var u=class extends s{};e.NoopObservableUpDownCounterMetric=u,e.NOOP_METER=new t,e.NOOP_COUNTER_METRIC=new r,e.NOOP_GAUGE_METRIC=new a,e.NOOP_HISTOGRAM_METRIC=new o,e.NOOP_UP_DOWN_COUNTER_METRIC=new i,e.NOOP_OBSERVABLE_COUNTER_METRIC=new c,e.NOOP_OBSERVABLE_GAUGE_METRIC=new l,e.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new u;function d(){return e.NOOP_METER}e.createNoopMeter=d})),m=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ValueType=void 0,(function(e){e[e.INT=0]=`INT`,e[e.DOUBLE=1]=`DOUBLE`})(e.ValueType||={})})),h=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.defaultTextMapSetter=e.defaultTextMapGetter=void 0,e.defaultTextMapGetter={get(e,t){if(e!=null)return e[t]},keys(e){return e==null?[]:Object.keys(e)}},e.defaultTextMapSetter={set(e,t,n){e!=null&&(e[t]=n)}}})),g=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.NoopContextManager=void 0;let t=d();e.NoopContextManager=class{active(){return t.ROOT_CONTEXT}with(e,t,n,...r){return t.call(n,...r)}bind(e,t){return t}enable(){return this}disable(){return this}}})),_=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ContextAPI=void 0;let t=g(),n=r(),i=s(),a=`context`,o=new t.NoopContextManager;e.ContextAPI=class e{constructor(){}static getInstance(){return this._instance||=new e,this._instance}setGlobalContextManager(e){return(0,n.registerGlobal)(a,e,i.DiagAPI.instance())}active(){return this._getContextManager().active()}with(e,t,n,...r){return this._getContextManager().with(e,t,n,...r)}bind(e,t){return this._getContextManager().bind(e,t)}_getContextManager(){return(0,n.getGlobal)(a)||o}disable(){this._getContextManager().disable(),(0,n.unregisterGlobal)(a,i.DiagAPI.instance())}}})),v=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.TraceFlags=void 0,(function(e){e[e.NONE=0]=`NONE`,e[e.SAMPLED=1]=`SAMPLED`})(e.TraceFlags||={})})),y=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.INVALID_SPAN_CONTEXT=e.INVALID_TRACEID=e.INVALID_SPANID=void 0;let t=v();e.INVALID_SPANID=`0000000000000000`,e.INVALID_TRACEID=`00000000000000000000000000000000`,e.INVALID_SPAN_CONTEXT={traceId:e.INVALID_TRACEID,spanId:e.INVALID_SPANID,traceFlags:t.TraceFlags.NONE}})),b=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.NonRecordingSpan=void 0;let t=y();e.NonRecordingSpan=class{constructor(e=t.INVALID_SPAN_CONTEXT){this._spanContext=e}spanContext(){return this._spanContext}setAttribute(e,t){return this}setAttributes(e){return this}addEvent(e,t){return this}addLink(e){return this}addLinks(e){return this}setStatus(e){return this}updateName(e){return this}end(e){}isRecording(){return!1}recordException(e,t){}}})),x=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getSpanContext=e.setSpanContext=e.deleteSpan=e.setSpan=e.getActiveSpan=e.getSpan=void 0;let t=d(),n=b(),r=_(),i=(0,t.createContextKey)(`OpenTelemetry Context Key SPAN`);function a(e){return e.getValue(i)||void 0}e.getSpan=a;function o(){return a(r.ContextAPI.getInstance().active())}e.getActiveSpan=o;function s(e,t){return e.setValue(i,t)}e.setSpan=s;function c(e){return e.deleteValue(i)}e.deleteSpan=c;function l(e,t){return s(e,new n.NonRecordingSpan(t))}e.setSpanContext=l;function u(e){return a(e)?.spanContext()}e.getSpanContext=u})),S=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.wrapSpanContext=e.isSpanContextValid=e.isValidSpanId=e.isValidTraceId=void 0;let t=y(),n=b(),r=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1]);function i(e,t){if(typeof e!=`string`||e.length!==t)return!1;let n=0;for(let t=0;t<e.length;t+=4)n+=(r[e.charCodeAt(t)]|0)+(r[e.charCodeAt(t+1)]|0)+(r[e.charCodeAt(t+2)]|0)+(r[e.charCodeAt(t+3)]|0);return n===t}function a(e){return i(e,32)&&e!==t.INVALID_TRACEID}e.isValidTraceId=a;function o(e){return i(e,16)&&e!==t.INVALID_SPANID}e.isValidSpanId=o;function s(e){return a(e.traceId)&&o(e.spanId)}e.isSpanContextValid=s;function c(e){return new n.NonRecordingSpan(e)}e.wrapSpanContext=c})),C=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.NoopTracer=void 0;let t=_(),n=x(),r=b(),i=S(),a=t.ContextAPI.getInstance();e.NoopTracer=class{startSpan(e,t,s=a.active()){if(t?.root)return new r.NonRecordingSpan;let c=s&&(0,n.getSpanContext)(s);return o(c)&&(0,i.isSpanContextValid)(c)?new r.NonRecordingSpan(c):new r.NonRecordingSpan}startActiveSpan(e,t,r,i){let o,s,c;if(arguments.length<2)return;arguments.length===2?c=t:arguments.length===3?(o=t,c=r):(o=t,s=r,c=i);let l=s??a.active(),u=this.startSpan(e,o,l),d=(0,n.setSpan)(l,u);return a.with(d,c,void 0,u)}};function o(e){return typeof e==`object`&&!!e&&`spanId`in e&&typeof e.spanId==`string`&&`traceId`in e&&typeof e.traceId==`string`&&`traceFlags`in e&&typeof e.traceFlags==`number`}})),w=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ProxyTracer=void 0;let t=new(C()).NoopTracer;e.ProxyTracer=class{constructor(e,t,n,r){this._provider=e,this.name=t,this.version=n,this.options=r}startSpan(e,t,n){return this._getTracer().startSpan(e,t,n)}startActiveSpan(e,t,n,r){let i=this._getTracer();return Reflect.apply(i.startActiveSpan,i,arguments)}_getTracer(){if(this._delegate)return this._delegate;let e=this._provider.getDelegateTracer(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):t}}})),T=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.NoopTracerProvider=void 0;let t=C();e.NoopTracerProvider=class{getTracer(e,n,r){return new t.NoopTracer}}})),E=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ProxyTracerProvider=void 0;let t=w(),n=new(T()).NoopTracerProvider;e.ProxyTracerProvider=class{getTracer(e,n,r){return this.getDelegateTracer(e,n,r)??new t.ProxyTracer(this,e,n,r)}getDelegate(){return this._delegate??n}setDelegate(e){this._delegate=e}getDelegateTracer(e,t,n){return this._delegate?.getTracer(e,t,n)}}})),D=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.SamplingDecision=void 0,(function(e){e[e.NOT_RECORD=0]=`NOT_RECORD`,e[e.RECORD=1]=`RECORD`,e[e.RECORD_AND_SAMPLED=2]=`RECORD_AND_SAMPLED`})(e.SamplingDecision||={})})),O=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.SpanKind=void 0,(function(e){e[e.INTERNAL=0]=`INTERNAL`,e[e.SERVER=1]=`SERVER`,e[e.CLIENT=2]=`CLIENT`,e[e.PRODUCER=3]=`PRODUCER`,e[e.CONSUMER=4]=`CONSUMER`})(e.SpanKind||={})})),k=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.SpanStatusCode=void 0,(function(e){e[e.UNSET=0]=`UNSET`,e[e.OK=1]=`OK`,e[e.ERROR=2]=`ERROR`})(e.SpanStatusCode||={})})),A=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateValue=e.validateKey=void 0;let t=`[_0-9a-z-*/]`,n=RegExp(`^(?:${`[a-z]${t}{0,255}`}|${`[a-z0-9]${t}{0,240}@[a-z]${t}{0,13}`})$`),r=/^[ -~]{0,255}[!-~]$/,i=/,|=/;function a(e){return n.test(e)}e.validateKey=a;function o(e){return r.test(e)&&!i.test(e)}e.validateValue=o})),j=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.TraceStateImpl=void 0;let t=A();e.TraceStateImpl=class e{constructor(e){this._internalState=new Map,e&&this._parse(e)}set(e,t){let n=this._clone();return n._internalState.has(e)&&n._internalState.delete(e),n._internalState.set(e,t),n}unset(e){let t=this._clone();return t._internalState.delete(e),t}get(e){return this._internalState.get(e)}serialize(){return Array.from(this._internalState.keys()).reduceRight((e,t)=>(e.push(t+`=`+this.get(t)),e),[]).join(`,`)}_parse(e){e.length>512||(this._internalState=e.split(`,`).reduceRight((e,n)=>{let r=n.trim(),i=r.indexOf(`=`);if(i!==-1){let a=r.slice(0,i),o=r.slice(i+1,n.length);(0,t.validateKey)(a)&&(0,t.validateValue)(o)&&e.set(a,o)}return e},new Map),this._internalState.size>32&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,32))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}}})),M=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.createTraceState=void 0;let t=j();function n(e){return new t.TraceStateImpl(e)}e.createTraceState=n})),N=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.context=void 0,e.context=_().ContextAPI.getInstance()})),P=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.diag=void 0,e.diag=s().DiagAPI.instance()})),F=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.NOOP_METER_PROVIDER=e.NoopMeterProvider=void 0;let t=p();var n=class{getMeter(e,n,r){return t.NOOP_METER}};e.NoopMeterProvider=n,e.NOOP_METER_PROVIDER=new n})),I=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.MetricsAPI=void 0;let t=F(),n=r(),i=s(),a=`metrics`;e.MetricsAPI=class e{constructor(){}static getInstance(){return this._instance||=new e,this._instance}setGlobalMeterProvider(e){return(0,n.registerGlobal)(a,e,i.DiagAPI.instance())}getMeterProvider(){return(0,n.getGlobal)(a)||t.NOOP_METER_PROVIDER}getMeter(e,t,n){return this.getMeterProvider().getMeter(e,t,n)}disable(){(0,n.unregisterGlobal)(a,i.DiagAPI.instance())}}})),L=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.metrics=void 0,e.metrics=I().MetricsAPI.getInstance()})),R=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.NoopTextMapPropagator=void 0,e.NoopTextMapPropagator=class{inject(e,t){}extract(e,t){return e}fields(){return[]}}})),z=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.deleteBaggage=e.setBaggage=e.getActiveBaggage=e.getBaggage=void 0;let t=_(),n=(0,d().createContextKey)(`OpenTelemetry Baggage Key`);function r(e){return e.getValue(n)||void 0}e.getBaggage=r;function i(){return r(t.ContextAPI.getInstance().active())}e.getActiveBaggage=i;function a(e,t){return e.setValue(n,t)}e.setBaggage=a;function o(e){return e.deleteValue(n)}e.deleteBaggage=o})),B=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.PropagationAPI=void 0;let t=r(),n=R(),i=h(),a=z(),o=u(),c=s(),l=`propagation`,d=new n.NoopTextMapPropagator;e.PropagationAPI=class e{constructor(){this.createBaggage=o.createBaggage,this.getBaggage=a.getBaggage,this.getActiveBaggage=a.getActiveBaggage,this.setBaggage=a.setBaggage,this.deleteBaggage=a.deleteBaggage}static getInstance(){return this._instance||=new e,this._instance}setGlobalPropagator(e){return(0,t.registerGlobal)(l,e,c.DiagAPI.instance())}inject(e,t,n=i.defaultTextMapSetter){return this._getGlobalPropagator().inject(e,t,n)}extract(e,t,n=i.defaultTextMapGetter){return this._getGlobalPropagator().extract(e,t,n)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,t.unregisterGlobal)(l,c.DiagAPI.instance())}_getGlobalPropagator(){return(0,t.getGlobal)(l)||d}}})),V=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.propagation=void 0,e.propagation=B().PropagationAPI.getInstance()})),H=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.TraceAPI=void 0;let t=r(),n=E(),i=S(),a=x(),o=s(),c=`trace`;e.TraceAPI=class e{constructor(){this._proxyTracerProvider=new n.ProxyTracerProvider,this.wrapSpanContext=i.wrapSpanContext,this.isSpanContextValid=i.isSpanContextValid,this.deleteSpan=a.deleteSpan,this.getSpan=a.getSpan,this.getActiveSpan=a.getActiveSpan,this.getSpanContext=a.getSpanContext,this.setSpan=a.setSpan,this.setSpanContext=a.setSpanContext}static getInstance(){return this._instance||=new e,this._instance}setGlobalTracerProvider(e){let n=(0,t.registerGlobal)(c,this._proxyTracerProvider,o.DiagAPI.instance());return n&&this._proxyTracerProvider.setDelegate(e),n}getTracerProvider(){return(0,t.getGlobal)(c)||this._proxyTracerProvider}getTracer(e,t){return this.getTracerProvider().getTracer(e,t)}disable(){(0,t.unregisterGlobal)(c,o.DiagAPI.instance()),this._proxyTracerProvider=new n.ProxyTracerProvider}}})),U=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.trace=void 0,e.trace=H().TraceAPI.getInstance()})),W=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.trace=e.propagation=e.metrics=e.diag=e.context=e.INVALID_SPAN_CONTEXT=e.INVALID_TRACEID=e.INVALID_SPANID=e.isValidSpanId=e.isValidTraceId=e.isSpanContextValid=e.createTraceState=e.TraceFlags=e.SpanStatusCode=e.SpanKind=e.SamplingDecision=e.ProxyTracerProvider=e.ProxyTracer=e.defaultTextMapSetter=e.defaultTextMapGetter=e.ValueType=e.createNoopMeter=e.DiagLogLevel=e.DiagConsoleLogger=e.ROOT_CONTEXT=e.createContextKey=e.baggageEntryMetadataFromString=void 0;var t=u();Object.defineProperty(e,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return t.baggageEntryMetadataFromString}});var n=d();Object.defineProperty(e,"createContextKey",{enumerable:!0,get:function(){return n.createContextKey}}),Object.defineProperty(e,"ROOT_CONTEXT",{enumerable:!0,get:function(){return n.ROOT_CONTEXT}});var r=f();Object.defineProperty(e,"DiagConsoleLogger",{enumerable:!0,get:function(){return r.DiagConsoleLogger}});var i=a();Object.defineProperty(e,"DiagLogLevel",{enumerable:!0,get:function(){return i.DiagLogLevel}});var o=p();Object.defineProperty(e,"createNoopMeter",{enumerable:!0,get:function(){return o.createNoopMeter}});var s=m();Object.defineProperty(e,"ValueType",{enumerable:!0,get:function(){return s.ValueType}});var c=h();Object.defineProperty(e,"defaultTextMapGetter",{enumerable:!0,get:function(){return c.defaultTextMapGetter}}),Object.defineProperty(e,"defaultTextMapSetter",{enumerable:!0,get:function(){return c.defaultTextMapSetter}});var l=w();Object.defineProperty(e,"ProxyTracer",{enumerable:!0,get:function(){return l.ProxyTracer}});var g=E();Object.defineProperty(e,"ProxyTracerProvider",{enumerable:!0,get:function(){return g.ProxyTracerProvider}});var _=D();Object.defineProperty(e,"SamplingDecision",{enumerable:!0,get:function(){return _.SamplingDecision}});var b=O();Object.defineProperty(e,"SpanKind",{enumerable:!0,get:function(){return b.SpanKind}});var x=k();Object.defineProperty(e,"SpanStatusCode",{enumerable:!0,get:function(){return x.SpanStatusCode}});var C=v();Object.defineProperty(e,"TraceFlags",{enumerable:!0,get:function(){return C.TraceFlags}});var T=M();Object.defineProperty(e,"createTraceState",{enumerable:!0,get:function(){return T.createTraceState}});var A=S();Object.defineProperty(e,"isSpanContextValid",{enumerable:!0,get:function(){return A.isSpanContextValid}}),Object.defineProperty(e,"isValidTraceId",{enumerable:!0,get:function(){return A.isValidTraceId}}),Object.defineProperty(e,"isValidSpanId",{enumerable:!0,get:function(){return A.isValidSpanId}});var j=y();Object.defineProperty(e,"INVALID_SPANID",{enumerable:!0,get:function(){return j.INVALID_SPANID}}),Object.defineProperty(e,"INVALID_TRACEID",{enumerable:!0,get:function(){return j.INVALID_TRACEID}}),Object.defineProperty(e,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return j.INVALID_SPAN_CONTEXT}});let F=N();Object.defineProperty(e,"context",{enumerable:!0,get:function(){return F.context}});let I=P();Object.defineProperty(e,"diag",{enumerable:!0,get:function(){return I.diag}});let R=L();Object.defineProperty(e,"metrics",{enumerable:!0,get:function(){return R.metrics}});let z=V();Object.defineProperty(e,"propagation",{enumerable:!0,get:function(){return z.propagation}});let B=U();Object.defineProperty(e,"trace",{enumerable:!0,get:function(){return B.trace}}),e.default={context:F.context,diag:I.diag,metrics:R.metrics,propagation:z.propagation,trace:B.trace}}));export{W as t};