eve 0.37.1 → 0.38.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 (215) hide show
  1. package/CHANGELOG.md +16 -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 +10 -0
  84. package/dist/src/compiler/extension-compatibility.js +1 -1
  85. package/dist/src/compiler/normalize-extension.d.ts +8 -5
  86. package/dist/src/compiler/normalize-extension.js +1 -1
  87. package/dist/src/compiler/normalize-manifest.js +1 -1
  88. package/dist/src/discover/discover-agent.js +1 -1
  89. package/dist/src/discover/extensions.d.ts +0 -6
  90. package/dist/src/discover/extensions.js +1 -1
  91. package/dist/src/evals/cli/eval.d.ts +1 -1
  92. package/dist/src/evals/cli/eval.js +1 -1
  93. package/dist/src/execution/sandbox/bindings/docker-templates.js +1 -1
  94. package/dist/src/execution/sandbox/bindings/just-bash.js +1 -1
  95. package/dist/src/execution/sandbox/bindings/microsandbox-templates.js +1 -1
  96. package/dist/src/execution/sandbox/prewarm.js +1 -1
  97. package/dist/src/harness/instrumentation/providers.js +1 -1
  98. package/dist/src/harness/instrumentation/runtime-context.d.ts +2 -0
  99. package/dist/src/harness/instrumentation/runtime-context.js +1 -1
  100. package/dist/src/harness/instrumentation/runtime.d.ts +3 -1
  101. package/dist/src/harness/tool-loop.js +1 -1
  102. package/dist/src/internal/application/cache-metadata.js +1 -1
  103. package/dist/src/internal/application/compiled-artifacts.js +2 -2
  104. package/dist/src/internal/application/optional-package-install.js +1 -1
  105. package/dist/src/internal/application/output-publication-lock.js +1 -1
  106. package/dist/src/internal/application/package.js +1 -1
  107. package/dist/src/internal/application/paths.js +1 -1
  108. package/dist/src/internal/application/tsconfig-dependencies.js +1 -1
  109. package/dist/src/internal/authored-module-evaluation-error.js +4 -4
  110. package/dist/src/internal/authored-module-loader.js +3 -3
  111. package/dist/src/internal/authored-package-boundary.js +1 -1
  112. package/dist/src/internal/authored-relative-extension-resolver.js +1 -1
  113. package/dist/src/internal/bundler/extension-scope-plugin.js +1 -1
  114. package/dist/src/internal/bundler/nitro-rolldown.js +1 -1
  115. package/dist/src/internal/instrumentation-layout.js +1 -1
  116. package/dist/src/internal/materialized-authored-modules.js +1 -1
  117. package/dist/src/internal/nitro/dev-runtime-artifacts-retention.js +1 -1
  118. package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
  119. package/dist/src/internal/nitro/dev-runtime-source-snapshot-copy.js +1 -1
  120. package/dist/src/internal/nitro/dev-runtime-source-snapshot-local-roots.js +1 -1
  121. package/dist/src/internal/nitro/dev-runtime-source-snapshot.js +1 -1
  122. package/dist/src/internal/nitro/host/application-route-registry.d.ts +88 -0
  123. package/dist/src/internal/nitro/host/application-route-registry.js +1 -0
  124. package/dist/src/internal/nitro/host/build-application.js +1 -1
  125. package/dist/src/internal/nitro/host/build-extension.js +1 -1
  126. package/dist/src/internal/nitro/host/build-vercel-agent-summary.js +1 -1
  127. package/dist/src/internal/nitro/host/channel-routes.d.ts +4 -11
  128. package/dist/src/internal/nitro/host/channel-routes.js +3 -3
  129. package/dist/src/internal/nitro/host/configure-nitro-routes.js +3 -3
  130. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  131. package/dist/src/internal/nitro/host/dev-authored-source-watcher.js +1 -1
  132. package/dist/src/internal/nitro/host/dev-runner.js +1 -1
  133. package/dist/src/internal/nitro/host/dev-workspace-extensions.js +1 -1
  134. package/dist/src/internal/nitro/host/extension-capability-requirements.js +1 -1
  135. package/dist/src/internal/nitro/host/local-tracing-runtime-plugin.js +1 -1
  136. package/dist/src/internal/nitro/host/nitro-bundler-config.js +1 -1
  137. package/dist/src/internal/nitro/host/start-development-server.js +2 -2
  138. package/dist/src/internal/nitro/host/start-production-server.js +2 -2
  139. package/dist/src/internal/nitro/host/vercel-build-output-config.js +1 -1
  140. package/dist/src/internal/process/pnpm.js +1 -1
  141. package/dist/src/internal/workflow/development-world-client.js +1 -1
  142. package/dist/src/internal/workflow/development-world-server.js +1 -1
  143. package/dist/src/internal/workflow-bundle/builder-support.d.ts +12 -8
  144. package/dist/src/internal/workflow-bundle/builder-support.js +8 -7
  145. package/dist/src/internal/workflow-bundle/builder.d.ts +1 -1
  146. package/dist/src/internal/workflow-bundle/builder.js +2 -3
  147. package/dist/src/internal/workflow-bundle/workflow-builders.js +1 -1
  148. package/dist/src/public/channels/discord/discordChannel.d.ts +2 -0
  149. package/dist/src/public/channels/discord/discordChannel.js +1 -1
  150. package/dist/src/public/channels/eve.d.ts +2 -0
  151. package/dist/src/public/channels/eve.js +1 -1
  152. package/dist/src/public/channels/github/dispatch.js +1 -1
  153. package/dist/src/public/channels/github/githubChannel.d.ts +2 -0
  154. package/dist/src/public/channels/linear/linearChannel.d.ts +2 -0
  155. package/dist/src/public/channels/linear/linearChannel.js +1 -1
  156. package/dist/src/public/channels/photon/photonIMessageChannel.d.ts +2 -0
  157. package/dist/src/public/channels/photon/photonIMessageChannel.js +1 -1
  158. package/dist/src/public/channels/slack/slackChannel.d.ts +3 -1
  159. package/dist/src/public/channels/slack/slackChannel.js +1 -1
  160. package/dist/src/public/channels/teams/teamsChannel.d.ts +2 -0
  161. package/dist/src/public/channels/teams/teamsChannel.js +1 -1
  162. package/dist/src/public/channels/telegram/telegramChannel.d.ts +2 -0
  163. package/dist/src/public/channels/telegram/telegramChannel.js +1 -1
  164. package/dist/src/public/channels/twilio/twilioChannel.d.ts +2 -0
  165. package/dist/src/public/channels/twilio/twilioChannel.js +1 -1
  166. package/dist/src/public/instrumentation/index.d.ts +9 -3
  167. package/dist/src/public/next/server.js +1 -1
  168. package/dist/src/public/nuxt/dev-server.js +1 -1
  169. package/dist/src/public/sveltekit/dev-server.js +1 -1
  170. package/dist/src/react/use-eve-agent.d.ts +4 -4
  171. package/dist/src/react/use-eve-agent.js +1 -1
  172. package/dist/src/services/inspect-application.js +1 -1
  173. package/dist/src/setup/primitives/pm/pnpm.js +2 -2
  174. package/dist/src/setup/primitives/run-vercel.js +1 -1
  175. package/dist/src/setup/scaffold/create/extension.js +1 -1
  176. package/dist/src/setup/scaffold/create/project.js +1 -1
  177. package/dist/src/setup/scaffold/create/web-template.d.ts +1 -1
  178. package/dist/src/setup/scaffold/create/web-template.js +8 -86
  179. package/dist/src/setup/scaffold/version-tokens.js +1 -1
  180. package/dist/src/setup/scaffold/workspace-root.js +1 -1
  181. package/dist/src/svelte/index.js +1 -1
  182. package/dist/src/svelte/use-eve-agent.d.ts +3 -3
  183. package/dist/src/svelte/use-eve-agent.js +1 -1
  184. package/dist/src/tracing/install-instrumentation-runtime.d.ts +2 -1
  185. package/dist/src/tracing/install-instrumentation-runtime.js +1 -1
  186. package/dist/src/tracing/otel-declaration.d.ts +32 -3
  187. package/dist/src/tracing/otel-declaration.js +1 -1
  188. package/dist/src/tracing/otel-registration.js +1 -1
  189. package/dist/src/vue/index.js +1 -1
  190. package/dist/src/vue/use-eve-agent.d.ts +3 -3
  191. package/dist/src/vue/use-eve-agent.js +1 -1
  192. package/docs/channels/custom.mdx +1 -1
  193. package/docs/channels/discord.mdx +1 -1
  194. package/docs/channels/eve.mdx +1 -2
  195. package/docs/channels/github.mdx +1 -1
  196. package/docs/channels/linear.mdx +1 -1
  197. package/docs/channels/overview.mdx +1 -1
  198. package/docs/channels/photon.mdx +1 -1
  199. package/docs/channels/slack.mdx +1 -1
  200. package/docs/channels/teams.mdx +1 -1
  201. package/docs/channels/telegram.mdx +1 -1
  202. package/docs/channels/twilio.mdx +1 -1
  203. package/docs/extensions.md +10 -6
  204. package/docs/guides/client/streaming.mdx +6 -5
  205. package/docs/guides/frontend/overview.mdx +10 -8
  206. package/docs/guides/frontend/use-eve-agent-svelte.mdx +10 -10
  207. package/docs/guides/frontend/use-eve-agent-vue.mdx +10 -10
  208. package/docs/install-integrations.mdx +4 -0
  209. package/docs/reference/cli.md +1 -1
  210. package/docs/schedules.mdx +2 -2
  211. package/package.json +1 -1
  212. package/dist/src/compiled/_chunks/workflow/chunk-5MU5Z6L3-CaJgXkVg.js +0 -1
  213. package/dist/src/compiled/_chunks/workflow/sleep-CzdoBiqy.js +0 -1
  214. package/dist/src/compiled/_chunks/workflow/src-Cj3P1ChQ.js +0 -1
  215. package/dist/src/compiled/_chunks/workflow/token-util-DNwIAn_u.js +0 -27
@@ -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, 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,10 @@ 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
34
36
  instructions.md
35
37
  hooks/audit.ts
36
38
  lib/http.ts
@@ -38,9 +40,9 @@ An extension uses the same file conventions as an agent for its contributions:
38
40
 
39
41
  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
42
 
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/`.
43
+ 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 and schedule IDs, while channel route paths and schedule cron expressions stay unchanged. Keep shared code in `extension/lib/`.
42
44
 
43
- Keep agent configuration, sandboxes, schedules, and nested extensions in the consumer's agent.
45
+ Keep agent configuration, sandboxes, and nested extensions in the consumer's agent.
44
46
 
45
47
  ### Add configuration and contributions
46
48
 
@@ -58,7 +60,7 @@ export default defineExtension({
58
60
  });
59
61
  ```
60
62
 
61
- Contributions import that handle to read the validated configuration. Defaults have already been applied:
63
+ Contributions, including schedule handlers, can import that handle to read the validated configuration. Defaults have already been applied:
62
64
 
63
65
  ```ts title="extension/tools/search.ts"
64
66
  import { defineTool } from "eve/tools";
@@ -168,7 +170,7 @@ export default crm({ apiKey: process.env.CRM_API_KEY! });
168
170
 
169
171
  Set `CRM_API_KEY` in the consumer's environment, such as `.env.local` for local development.
170
172
 
171
- The mount adds `crm__` to named contributions: `tools/search.ts` becomes `crm__search`, and `connections/api.ts` becomes `crm__api`.
173
+ 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`, and `connections/api.ts` becomes `crm__api`. Channels keep their declared route paths, and schedules keep their cron expressions.
172
174
 
173
175
  For an extension with no configuration, mount its default export directly:
174
176
 
@@ -274,7 +276,7 @@ import crm from "@acme/crm";
274
276
  export default crm({ apiKey: process.env.CRM_API_KEY! });
275
277
  ```
276
278
 
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:
279
+ A same-named consumer channel, tool, connection, skill, or schedule wins. To adjust an extension tool, import it from the package's `./tools` export and define it again:
278
280
 
279
281
  ```ts title="agent/extensions/crm/tools/search.ts"
280
282
  import { search } from "@acme/crm/tools";
@@ -329,4 +331,6 @@ At build time, eve checks the extension's generated capability metadata. If the
329
331
  - [Instructions](/docs/instructions): static and TypeScript instructions
330
332
  - [Skills](/docs/skills): package procedures and supporting files
331
333
  - [Connections](/docs/connections): integrate external services
334
+ - [Channels](/docs/channels/overview): receive messages and expose routes
335
+ - [Schedules](/docs/schedules): run the agent on a cron cadence
332
336
  - [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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eve",
3
- "version": "0.37.1",
3
+ "version": "0.38.0",
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};