eve 0.66.2 → 0.67.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 (398) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/src/channel/channel-address.d.ts +0 -2
  3. package/dist/src/channel/channel-address.js +1 -1
  4. package/dist/src/channel/channel-operations.d.ts +0 -5
  5. package/dist/src/channel/channel-operations.js +1 -1
  6. package/dist/src/channel/compiled-channel.d.ts +8 -0
  7. package/dist/src/channel/compiled-channel.js +2 -2
  8. package/dist/src/channel/conversation-context.js +1 -1
  9. package/dist/src/channel/routes.d.ts +1 -2
  10. package/dist/src/channel/schedule.d.ts +2 -2
  11. package/dist/src/channel/schedule.js +1 -1
  12. package/dist/src/channel/types.d.ts +8 -13
  13. package/dist/src/chunks/{use-eve-agent-PbSMyJ6e.js → use-eve-agent-DzdyI97Z.js} +0 -5
  14. package/dist/src/chunks/{use-eve-agent-Di1u2zKu.js → use-eve-agent-OCHP4s0z.js} +0 -5
  15. package/dist/src/cli/acp/command.js +3 -3
  16. package/dist/src/cli/commands/logs.d.ts +3 -3
  17. package/dist/src/cli/commands/logs.js +1 -1
  18. package/dist/src/cli/commands/register-integration-commands.js +1 -1
  19. package/dist/src/cli/commands/registry-declared-setups.d.ts +0 -1
  20. package/dist/src/cli/commands/registry-declared-setups.js +1 -1
  21. package/dist/src/cli/commands/registry.d.ts +5 -1
  22. package/dist/src/cli/commands/registry.js +1 -1
  23. package/dist/src/cli/commands/trace.js +1 -1
  24. package/dist/src/cli/dev/command.d.ts +9 -5
  25. package/dist/src/cli/dev/command.js +1 -3
  26. package/dist/src/cli/dev/run-interactive-ui.d.ts +0 -1
  27. package/dist/src/cli/dev/run-interactive-ui.js +1 -1
  28. package/dist/src/cli/dev/tui/argument-typeahead.d.ts +1 -2
  29. package/dist/src/cli/dev/tui/argument-typeahead.js +2 -2
  30. package/dist/src/cli/dev/tui/blocks.d.ts +5 -1
  31. package/dist/src/cli/dev/tui/blocks.js +4 -4
  32. package/dist/src/cli/dev/tui/flow-drawer.d.ts +11 -0
  33. package/dist/src/cli/dev/tui/flow-drawer.js +1 -0
  34. package/dist/src/cli/dev/tui/prompt-command-handler.js +1 -1
  35. package/dist/src/cli/dev/tui/prompt-commands.d.ts +199 -0
  36. package/dist/src/cli/dev/tui/prompt-commands.js +2 -2
  37. package/dist/src/cli/dev/tui/question-panel.d.ts +4 -4
  38. package/dist/src/cli/dev/tui/question-panel.js +1 -1
  39. package/dist/src/cli/dev/tui/registry-result-message.d.ts +15 -4
  40. package/dist/src/cli/dev/tui/registry-result-message.js +4 -4
  41. package/dist/src/cli/dev/tui/runner.d.ts +18 -6
  42. package/dist/src/cli/dev/tui/runner.js +3 -2
  43. package/dist/src/cli/dev/tui/setup-commands.d.ts +5 -22
  44. package/dist/src/cli/dev/tui/setup-commands.js +2 -1
  45. package/dist/src/cli/dev/tui/setup-flow.d.ts +2 -10
  46. package/dist/src/cli/dev/tui/setup-panel.d.ts +4 -23
  47. package/dist/src/cli/dev/tui/setup-panel.js +3 -3
  48. package/dist/src/cli/dev/tui/terminal-renderer.d.ts +11 -7
  49. package/dist/src/cli/dev/tui/terminal-renderer.js +11 -11
  50. package/dist/src/cli/dev/tui/theme.d.ts +1 -1
  51. package/dist/src/cli/dev/tui/tui-prompter.js +1 -1
  52. package/dist/src/cli/dev/tui/tui.js +1 -1
  53. package/dist/src/cli/dev/url-target.js +1 -1
  54. package/dist/src/cli/invoke/command.d.ts +2 -5
  55. package/dist/src/cli/invoke/command.js +1 -1
  56. package/dist/src/cli/invoke/invoke.d.ts +2 -2
  57. package/dist/src/cli/invoke/invoke.js +1 -1
  58. package/dist/src/cli/invoke/result.d.ts +14 -194
  59. package/dist/src/cli/invoke/result.js +1 -1
  60. package/dist/src/cli/run.d.ts +0 -4
  61. package/dist/src/cli/run.js +2 -2
  62. package/dist/src/cli/telemetry/index.js +1 -1
  63. package/dist/src/client/message-reducer.js +1 -1
  64. package/dist/src/compiled/.vendor-stamp.json +6 -6
  65. package/dist/src/compiled/@workflow/core/create-hook.d.ts +38 -1
  66. package/dist/src/compiled/@workflow/core/global.d.ts +2 -0
  67. package/dist/src/compiled/@workflow/core/index.js +2 -2
  68. package/dist/src/compiled/@workflow/core/private.js +1 -1
  69. package/dist/src/compiled/@workflow/core/runtime/constants.d.ts +9 -0
  70. package/dist/src/compiled/@workflow/core/runtime/helpers.js +1 -1
  71. package/dist/src/compiled/@workflow/core/runtime/hook-wake.d.ts +89 -0
  72. package/dist/src/compiled/@workflow/core/runtime/open-hook-wait-state.d.ts +55 -0
  73. package/dist/src/compiled/@workflow/core/runtime/quickjs-runtime.d.ts +2 -0
  74. package/dist/src/compiled/@workflow/core/runtime/suspension-handler.d.ts +8 -1
  75. package/dist/src/compiled/@workflow/core/runtime.js +4 -4
  76. package/dist/src/compiled/@workflow/core/serialization/types.d.ts +8 -0
  77. package/dist/src/compiled/@workflow/core/serialization.d.ts +8 -0
  78. package/dist/src/compiled/@workflow/core/serialization.js +1 -1
  79. package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
  80. package/dist/src/compiled/@workflow/core/workflow.js +1 -1
  81. package/dist/src/compiled/@workflow/errors/index.d.ts +23 -0
  82. package/dist/src/compiled/@workflow/errors/index.js +1 -1
  83. package/dist/src/compiled/@workflow/world/events.d.ts +34 -0
  84. package/dist/src/compiled/@workflow/world/hooks.d.ts +27 -0
  85. package/dist/src/compiled/@workflow/world/index.d.ts +2 -2
  86. package/dist/src/compiled/@workflow/world/interfaces.d.ts +24 -0
  87. package/dist/src/compiled/@workflow/world/spec-version.d.ts +32 -11
  88. package/dist/src/compiled/@workflow/world-local/index.js +3 -3
  89. package/dist/src/compiled/@workflow/world-vercel/index.js +17 -17
  90. package/dist/src/compiled/_chunks/workflow/{attribute-changes-89Nwz7XW.js → attribute-changes-DzJovO_f.js} +1 -1
  91. package/dist/src/compiled/_chunks/workflow/dist-BQSf8Hax.js +1 -0
  92. package/dist/src/compiled/_chunks/workflow/dist-BfMqXLK3.js +3 -0
  93. package/dist/src/compiled/_chunks/workflow/frames-qKc30rjg.js +3 -0
  94. package/dist/src/compiled/_chunks/workflow/{global-DIlFoH2w.js → global-BQnKzRXo.js} +1 -1
  95. package/dist/src/compiled/_chunks/workflow/{helpers-k3zcudWr.js → helpers-CNMO7zB1.js} +1 -1
  96. package/dist/src/compiled/_chunks/workflow/{logger-Bzc8jWWj.js → logger-BCEj9caG.js} +1 -1
  97. package/dist/src/compiled/_chunks/workflow/resume-hook-QS_cMwHn.js +1 -0
  98. package/dist/src/compiled/_chunks/workflow/run-CA5wWV2S.js +1 -0
  99. package/dist/src/compiled/_chunks/workflow/serialization-CJ265vSe.js +3 -0
  100. package/dist/src/compiled/_chunks/workflow/sleep-CBn94Ayv.js +1 -0
  101. package/dist/src/compiled/_chunks/workflow/{wait-until-DXLZx3tU.js → wait-until-Bo2U6ON9.js} +1 -1
  102. package/dist/src/compiled/_chunks/workflow/{ws-transport-BSM_Cl7a.js → ws-transport-BrsMYqJg.js} +1 -1
  103. package/dist/src/compiler/compile-from-memory.d.ts +0 -1
  104. package/dist/src/compiler/compile-from-memory.js +1 -1
  105. package/dist/src/compiler/extension-compatibility.d.ts +25 -18
  106. package/dist/src/compiler/extension-compatibility.js +1 -1
  107. package/dist/src/compiler/manifest.d.ts +48 -14
  108. package/dist/src/compiler/manifest.js +1 -1
  109. package/dist/src/compiler/normalize-agent-config.js +1 -1
  110. package/dist/src/compiler/normalize-channel.js +1 -1
  111. package/dist/src/compiler/normalize-connection.js +1 -1
  112. package/dist/src/compiler/normalize-manifest-helpers.js +1 -1
  113. package/dist/src/compiler/normalize-subagent.d.ts +0 -2
  114. package/dist/src/compiler/normalize-subagent.js +1 -1
  115. package/dist/src/compiler/remote-agent-node.d.ts +0 -2
  116. package/dist/src/compiler/remote-agent-node.js +1 -1
  117. package/dist/src/compiler/workspace-resources.js +1 -1
  118. package/dist/src/context/dynamic-subagent-lifecycle.js +1 -1
  119. package/dist/src/context/keys.d.ts +0 -3
  120. package/dist/src/context/keys.js +1 -1
  121. package/dist/src/context/memory-lifecycle.d.ts +1 -0
  122. package/dist/src/context/memory-lifecycle.js +1 -1
  123. package/dist/src/discover/project.js +1 -1
  124. package/dist/src/eve-channel/create-request.d.ts +0 -3
  125. package/dist/src/eve-channel/create-request.js +1 -1
  126. package/dist/src/eve-channel/index.js +1 -1
  127. package/dist/src/eve-channel/request.js +1 -1
  128. package/dist/src/eve-channel/types.d.ts +1 -1
  129. package/dist/src/execution/delegated-session-context.d.ts +2 -0
  130. package/dist/src/execution/delegated-session-context.js +1 -0
  131. package/dist/src/execution/dynamic-connections.d.ts +4 -1
  132. package/dist/src/execution/dynamic-connections.js +1 -1
  133. package/dist/src/execution/dynamic-workflow/tool.js +1 -1
  134. package/dist/src/execution/effective-agent-config.js +1 -1
  135. package/dist/src/execution/legacy-session/input.d.ts +0 -2
  136. package/dist/src/execution/legacy-session/input.js +1 -1
  137. package/dist/src/execution/legacy-session/prepare-step.d.ts +0 -1
  138. package/dist/src/execution/legacy-session/turn-workflow.js +1 -1
  139. package/dist/src/execution/node-step.d.ts +4 -2
  140. package/dist/src/execution/node-step.js +1 -1
  141. package/dist/src/execution/proxied-deliver-step.js +1 -1
  142. package/dist/src/execution/publish-channel-event.d.ts +23 -0
  143. package/dist/src/execution/publish-channel-event.js +1 -0
  144. package/dist/src/execution/runtime-context.js +1 -1
  145. package/dist/src/execution/session/entry-input.d.ts +4 -0
  146. package/dist/src/execution/session/entry-input.js +1 -1
  147. package/dist/src/execution/session/entry.js +1 -1
  148. package/dist/src/execution/session/event-sink.d.ts +1 -1
  149. package/dist/src/execution/session/event-sink.js +1 -1
  150. package/dist/src/execution/session/finalization.d.ts +1 -4
  151. package/dist/src/execution/session/finalization.js +1 -1
  152. package/dist/src/execution/session/handoff.d.ts +1 -3
  153. package/dist/src/execution/session/handoff.js +1 -1
  154. package/dist/src/execution/session/input-queue.d.ts +0 -1
  155. package/dist/src/execution/session/input-queue.js +1 -1
  156. package/dist/src/execution/session/next-input.d.ts +0 -1
  157. package/dist/src/execution/session/next-input.js +1 -1
  158. package/dist/src/execution/session/program.d.ts +0 -3
  159. package/dist/src/execution/session/program.js +1 -1
  160. package/dist/src/execution/session/turn-step-result.d.ts +1 -2
  161. package/dist/src/execution/session/turn-step-result.js +1 -1
  162. package/dist/src/execution/session/turn-step.js +1 -1
  163. package/dist/src/execution/session/turn.d.ts +2 -2
  164. package/dist/src/execution/session/turn.js +1 -1
  165. package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
  166. package/dist/src/execution/tasks/parent/hitl-proxy-steps.js +1 -1
  167. package/dist/src/execution/tools/agent-router-workflow.js +1 -1
  168. package/dist/src/execution/tools/agent-router.d.ts +0 -2
  169. package/dist/src/execution/tools/agent-router.js +1 -1
  170. package/dist/src/execution/tools/ask-question-workflow.js +1 -1
  171. package/dist/src/execution/tools/connection-search.d.ts +1 -0
  172. package/dist/src/execution/tools/connection-search.js +1 -1
  173. package/dist/src/execution/tools/sleep-workflow.js +1 -1
  174. package/dist/src/execution/tools/subagent/invoke-preparation.js +1 -1
  175. package/dist/src/execution/workflow-runtime.js +1 -1
  176. package/dist/src/extensions/code/extension/lib/connect-authentication.js +1 -1
  177. package/dist/src/extensions/code/extension/lib/github-shell.js +1 -1
  178. package/dist/src/extensions/code/extension/lib/prwatch-github.js +1 -1
  179. package/dist/src/framework/sources/registry.js +1 -1
  180. package/dist/src/harness/approval-delivery-coordinator.d.ts +3 -13
  181. package/dist/src/harness/approval-delivery-coordinator.js +1 -1
  182. package/dist/src/harness/emission.d.ts +2 -3
  183. package/dist/src/harness/emission.js +1 -1
  184. package/dist/src/harness/input-request-resolution.d.ts +2 -0
  185. package/dist/src/harness/input-request-resolution.js +1 -1
  186. package/dist/src/harness/input-requests.d.ts +3 -3
  187. package/dist/src/harness/input-requests.js +1 -1
  188. package/dist/src/harness/pending-input-batches.d.ts +3 -3
  189. package/dist/src/harness/pending-input-batches.js +1 -1
  190. package/dist/src/harness/proxy-input-requests.d.ts +2 -0
  191. package/dist/src/harness/proxy-input-requests.js +1 -1
  192. package/dist/src/harness/session-limit-enforcement.d.ts +2 -3
  193. package/dist/src/harness/session-limit-enforcement.js +1 -1
  194. package/dist/src/harness/tool-loop.js +2 -2
  195. package/dist/src/harness/tools.js +1 -1
  196. package/dist/src/harness/types.d.ts +11 -13
  197. package/dist/src/instrumentation/session-context.js +1 -1
  198. package/dist/src/instrumentation/session-init.js +1 -1
  199. package/dist/src/internal/application/package.js +1 -1
  200. package/dist/src/internal/authored-definition/core.js +1 -1
  201. package/dist/src/internal/authored-module-loader.js +1 -2
  202. package/dist/src/internal/authored-package-boundary.d.ts +0 -1
  203. package/dist/src/internal/authored-package-boundary.js +1 -1
  204. package/dist/src/internal/authored-relative-extension-resolver.js +1 -1
  205. package/dist/src/internal/external-resources-snapshot.d.ts +46 -0
  206. package/dist/src/internal/external-resources-snapshot.js +1 -0
  207. package/dist/src/internal/external-resources.d.ts +20 -0
  208. package/dist/src/internal/external-resources.js +1 -0
  209. package/dist/src/internal/invocation/workflow-execution.d.ts +0 -2
  210. package/dist/src/internal/invocation/workflow-execution.js +1 -1
  211. package/dist/src/internal/nitro/host/build-application.js +1 -1
  212. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  213. package/dist/src/internal/nitro/host/instrumentation-entry.d.ts +3 -0
  214. package/dist/src/internal/nitro/host/instrumentation-entry.js +2 -0
  215. package/dist/src/internal/nitro/host/start-development-server.d.ts +0 -8
  216. package/dist/src/internal/nitro/host/start-development-server.js +2 -2
  217. package/dist/src/internal/nitro/host.d.ts +1 -1
  218. package/dist/src/internal/nitro/host.js +1 -1
  219. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
  220. package/dist/src/internal/nitro/routes/index.js +72 -3
  221. package/dist/src/internal/workflow/development-world-client.js +1 -1
  222. package/dist/src/node_modules/.pnpm/{@vercel_cli-config@0.2.7 → @vercel_cli-config@0.3.0}/node_modules/@vercel/cli-config/dist/index.js +1 -1
  223. package/dist/src/node_modules/.pnpm/{@vercel_connect@2.2.0_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_37d5e4f23f0f03cba2e0819e67e81b38 → @vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494}/node_modules/@vercel/connect/dist/authorization.js +1 -1
  224. package/dist/src/node_modules/.pnpm/@vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494/node_modules/@vercel/connect/dist/connector.js +1 -0
  225. package/dist/src/node_modules/.pnpm/{@vercel_connect@2.2.0_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_37d5e4f23f0f03cba2e0819e67e81b38 → @vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494}/node_modules/@vercel/connect/dist/installation.js +1 -1
  226. package/dist/src/node_modules/.pnpm/{@vercel_connect@2.2.0_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_37d5e4f23f0f03cba2e0819e67e81b38 → @vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494}/node_modules/@vercel/connect/dist/token.js +1 -1
  227. package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/token-util.js +1 -1
  228. package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/token.js +1 -1
  229. package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/version.js +1 -1
  230. package/dist/src/protocol/message.d.ts +4 -0
  231. package/dist/src/protocol/message.js +1 -1
  232. package/dist/src/public/channels/chat-sdk/chatSdkChannel.d.ts +0 -1
  233. package/dist/src/public/channels/chat-sdk/chatSdkChannel.js +1 -1
  234. package/dist/src/public/channels/mcp.js +1 -1
  235. package/dist/src/public/channels/slack/activity-plan.d.ts +2 -1
  236. package/dist/src/public/channels/slack/activity-plan.js +1 -1
  237. package/dist/src/public/channels/slack/activity.d.ts +2 -0
  238. package/dist/src/public/channels/slack/activity.js +1 -1
  239. package/dist/src/public/channels/slack/api.d.ts +7 -0
  240. package/dist/src/public/channels/slack/api.js +1 -1
  241. package/dist/src/public/channels/slack/app-manifest.d.ts +9 -0
  242. package/dist/src/public/channels/slack/app-manifest.js +1 -0
  243. package/dist/src/public/channels/slack/attachments.d.ts +5 -2
  244. package/dist/src/public/channels/slack/attachments.js +1 -1
  245. package/dist/src/public/channels/slack/inbound-content.js +6 -3
  246. package/dist/src/public/channels/slack/index.d.ts +1 -0
  247. package/dist/src/public/channels/slack/input-response.d.ts +2 -0
  248. package/dist/src/public/channels/slack/input-response.js +1 -1
  249. package/dist/src/public/channels/slack/interaction-cards.js +1 -1
  250. package/dist/src/public/channels/slack/interactions.d.ts +2 -0
  251. package/dist/src/public/channels/slack/interactions.js +1 -1
  252. package/dist/src/public/channels/slack/slackChannel.d.ts +7 -1
  253. package/dist/src/public/channels/slack/slackChannel.js +1 -1
  254. package/dist/src/public/channels/slack/slash-command.d.ts +5 -1
  255. package/dist/src/public/channels/slack/slash-command.js +1 -1
  256. package/dist/src/public/channels/slack/transport.d.ts +76 -0
  257. package/dist/src/public/channels/slack/transport.js +1 -0
  258. package/dist/src/public/definitions/remote-agent.d.ts +0 -9
  259. package/dist/src/public/definitions/workspace-agent.d.ts +0 -3
  260. package/dist/src/public/definitions/workspace-agent.js +1 -1
  261. package/dist/src/runtime/agent/bootstrap.d.ts +0 -1
  262. package/dist/src/runtime/agent/bootstrap.js +1 -1
  263. package/dist/src/runtime/connections/mcp-client.js +1 -1
  264. package/dist/src/runtime/connections/mcp-tracing.d.ts +27 -0
  265. package/dist/src/runtime/connections/mcp-tracing.js +1 -0
  266. package/dist/src/runtime/resolve-agent-graph.js +1 -1
  267. package/dist/src/runtime/resolve-agent.js +1 -1
  268. package/dist/src/runtime/subagents/dynamic-agent-config.d.ts +0 -2
  269. package/dist/src/runtime/subagents/dynamic-agent-config.js +1 -1
  270. package/dist/src/runtime/subagents/dynamic-remote-agent-config.d.ts +0 -2
  271. package/dist/src/runtime/subagents/dynamic-remote-agent-config.js +1 -1
  272. package/dist/src/runtime/types.d.ts +1 -2
  273. package/dist/src/services/dev-client/vercel-auth-error.d.ts +1 -1
  274. package/dist/src/setup/cli/channel-setup-prompter.d.ts +2 -9
  275. package/dist/src/setup/cli/channel-setup-prompter.js +1 -1
  276. package/dist/src/setup/cli/index.d.ts +1 -1
  277. package/dist/src/setup/connection-connector.js +1 -1
  278. package/dist/src/setup/flows/model-login-connection.d.ts +0 -16
  279. package/dist/src/setup/flows/model-login-connection.js +1 -1
  280. package/dist/src/setup/flows/model-login-options.d.ts +59 -0
  281. package/dist/src/setup/flows/model-login-options.js +1 -0
  282. package/dist/src/setup/flows/model-login.js +1 -1
  283. package/dist/src/setup/flows/model-source-change.d.ts +0 -2
  284. package/dist/src/setup/flows/model-source-change.js +1 -1
  285. package/dist/src/setup/flows/registry-session.d.ts +15 -13
  286. package/dist/src/setup/flows/registry-session.js +1 -1
  287. package/dist/src/setup/flows/registry.js +1 -1
  288. package/dist/src/setup/flows/vercel-model-login.js +1 -1
  289. package/dist/src/setup/integrations/photon/setup-flow.js +1 -1
  290. package/dist/src/setup/prompter.d.ts +2 -2
  291. package/dist/src/setup/registry-setup-client.js +1 -1
  292. package/dist/src/setup/registry-setup-protocol.d.ts +0 -4
  293. package/dist/src/setup/scaffold/create/project.js +1 -1
  294. package/dist/src/setup/slack-connect-lifecycle.js +1 -1
  295. package/dist/src/setup/verified-remote-agent.d.ts +1 -0
  296. package/dist/src/setup/verified-remote-agent.js +1 -1
  297. package/dist/src/shared/action-types.d.ts +2 -2
  298. package/dist/src/shared/agent-definition.d.ts +0 -9
  299. package/dist/src/shared/agent-turn-outcome.d.ts +1 -1
  300. package/dist/src/shared/channel-definition.d.ts +2 -2
  301. package/dist/src/shared/conversation-context.d.ts +0 -4
  302. package/dist/src/shared/conversation-context.js +1 -1
  303. package/dist/src/shared/validate-authorization.js +1 -1
  304. package/dist/src/shared/vercel-connect-metadata.d.ts +12 -0
  305. package/dist/src/shared/vercel-connect-metadata.js +1 -0
  306. package/dist/src/subagents/agent-handle-errors.d.ts +0 -4
  307. package/dist/src/subagents/agent-handle-errors.js +1 -1
  308. package/dist/src/subagents/callback-route.js +1 -1
  309. package/dist/src/subagents/callback-step.d.ts +0 -22
  310. package/dist/src/subagents/callback-step.js +1 -1
  311. package/dist/src/subagents/event-proxy-step.js +1 -1
  312. package/dist/src/subagents/hitl-proxy.d.ts +3 -5
  313. package/dist/src/subagents/hitl-proxy.js +1 -1
  314. package/dist/src/subagents/invocation.d.ts +5 -6
  315. package/dist/src/subagents/parent-notification.d.ts +1 -18
  316. package/dist/src/subagents/parent-notification.js +1 -1
  317. package/dist/src/subagents/remote-dispatch.js +1 -1
  318. package/dist/src/subagents/tool.d.ts +0 -3
  319. package/dist/src/subagents/tool.js +1 -1
  320. package/dist/src/svelte/index.js +1 -1
  321. package/dist/src/svelte/use-eve-agent.js +1 -1
  322. package/dist/src/tools/framework/agent-contract.d.ts +0 -2
  323. package/dist/src/tools/framework/agent-contract.js +1 -1
  324. package/dist/src/tracing/agent-action-instrumentation.js +1 -1
  325. package/dist/src/tracing/agent-approval-instrumentation.js +1 -1
  326. package/dist/src/tracing/agent-memory-instrumentation.js +1 -1
  327. package/dist/src/tracing/agent-otel-provider.js +2 -2
  328. package/dist/src/tracing/agent-otel-session-context.js +1 -1
  329. package/dist/src/tracing/agent-tool-instrumentation.js +1 -1
  330. package/dist/src/tracing/agent-tool-span-context.d.ts +15 -0
  331. package/dist/src/tracing/agent-tool-span-context.js +1 -0
  332. package/dist/src/tracing/otel-declaration.d.ts +4 -9
  333. package/dist/src/vue/index.js +1 -1
  334. package/dist/src/vue/use-eve-agent.js +1 -1
  335. package/docs/agent-config.md +12 -13
  336. package/docs/channels/chat-sdk.mdx +1 -1
  337. package/docs/channels/custom.mdx +1 -1
  338. package/docs/channels/eve.mdx +4 -4
  339. package/docs/channels/mcp.mdx +10 -10
  340. package/docs/channels/slack.mdx +32 -3
  341. package/docs/concepts/sessions-runs-and-streaming.md +5 -6
  342. package/docs/connections/overview.mdx +22 -0
  343. package/docs/guides/deployment/overview.md +1 -1
  344. package/docs/guides/deployment/self-hosting.md +1 -1
  345. package/docs/guides/deployment/vercel.mdx +2 -2
  346. package/docs/guides/dev-tui.md +7 -7
  347. package/docs/guides/dynamic-capabilities.md +2 -2
  348. package/docs/guides/frontend/overview.mdx +5 -3
  349. package/docs/guides/hooks.md +4 -2
  350. package/docs/guides/instrumentation/agent-runs.mdx +7 -7
  351. package/docs/guides/instrumentation/instrumentation.mdx +22 -5
  352. package/docs/guides/instrumentation/otel.mdx +30 -0
  353. package/docs/guides/remote-agents.md +3 -4
  354. package/docs/guides/self-modification.md +1 -1
  355. package/docs/memory/custom-provider.md +1 -1
  356. package/docs/protocols/acp.md +1 -1
  357. package/docs/reference/cli.md +91 -97
  358. package/docs/schedules.mdx +4 -5
  359. package/docs/subagents/index.mdx +5 -7
  360. package/docs/tools/human-in-the-loop.md +4 -0
  361. package/docs/tools/overview.mdx +2 -0
  362. package/docs/tools/workflows.mdx +1 -1
  363. package/docs/tutorial/remember-definitions.mdx +1 -1
  364. package/docs/tutorial/ship-it.mdx +1 -1
  365. package/package.json +8 -7
  366. package/dist/src/cli/commands/channels.d.ts +0 -9
  367. package/dist/src/cli/commands/channels.js +0 -1
  368. package/dist/src/compiled/_chunks/workflow/dist-CNT2vjZ4.js +0 -1
  369. package/dist/src/compiled/_chunks/workflow/dist-DtXwQbZr.js +0 -3
  370. package/dist/src/compiled/_chunks/workflow/frames-DnrfSd1P.js +0 -3
  371. package/dist/src/compiled/_chunks/workflow/resume-hook-BmJ263ZR.js +0 -1
  372. package/dist/src/compiled/_chunks/workflow/run-NLvREued.js +0 -1
  373. package/dist/src/compiled/_chunks/workflow/serialization-HCDeQWcR.js +0 -3
  374. package/dist/src/compiled/_chunks/workflow/sleep-Bi508qmg.js +0 -1
  375. package/dist/src/execution/effective-output-schema.d.ts +0 -22
  376. package/dist/src/execution/effective-output-schema.js +0 -1
  377. package/dist/src/node_modules/.pnpm/@vercel_connect@2.2.0_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_37d5e4f23f0f03cba2e0819e67e81b38/node_modules/@vercel/connect/dist/connector.js +0 -1
  378. package/dist/src/public/channels/slack/api-errors.d.ts +0 -33
  379. package/dist/src/public/channels/slack/api-errors.js +0 -1
  380. package/dist/src/shared/run-mode.d.ts +0 -7
  381. package/dist/src/shared/run-mode.js +0 -1
  382. package/dist/src/subagents/parent-result.d.ts +0 -14
  383. package/dist/src/subagents/parent-result.js +0 -1
  384. /package/dist/src/node_modules/.pnpm/{@vercel_connect@2.2.0_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_37d5e4f23f0f03cba2e0819e67e81b38 → @vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494}/node_modules/@vercel/connect/dist/index.js +0 -0
  385. /package/dist/src/node_modules/.pnpm/{@vercel_connect@2.2.0_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_37d5e4f23f0f03cba2e0819e67e81b38 → @vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494}/node_modules/@vercel/connect/dist/internal/base-url.js +0 -0
  386. /package/dist/src/node_modules/.pnpm/{@vercel_connect@2.2.0_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_37d5e4f23f0f03cba2e0819e67e81b38 → @vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494}/node_modules/@vercel/connect/dist/internal/default-scopes.js +0 -0
  387. /package/dist/src/node_modules/.pnpm/{@vercel_connect@2.2.0_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_37d5e4f23f0f03cba2e0819e67e81b38 → @vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494}/node_modules/@vercel/connect/dist/internal/env.js +0 -0
  388. /package/dist/src/node_modules/.pnpm/{@vercel_connect@2.2.0_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_37d5e4f23f0f03cba2e0819e67e81b38 → @vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494}/node_modules/@vercel/connect/dist/internal/url-validation.js +0 -0
  389. /package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/auth-errors.js +0 -0
  390. /package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/exchange-vercel-oidc-token.js +0 -0
  391. /package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/get-context.js +0 -0
  392. /package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/get-vercel-oidc-token-sync.js +0 -0
  393. /package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/get-vercel-oidc-token-with-refresh.js +0 -0
  394. /package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/index.js +0 -0
  395. /package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/oauth.js +0 -0
  396. /package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/token-error.js +0 -0
  397. /package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/token-io.js +0 -0
  398. /package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/verify-vercel-oidc-token.js +0 -0
@@ -6,12 +6,10 @@ declare const invokeResumeSchema: z.ZodObject<{
6
6
  sessionId: z.ZodString;
7
7
  streamIndex: z.ZodNumber;
8
8
  }, z.core.$strict>;
9
- target: z.ZodDiscriminatedUnion<[z.ZodObject<{
10
- kind: z.ZodLiteral<"local">;
11
- }, z.core.$strict>, z.ZodObject<{
9
+ target: z.ZodObject<{
12
10
  kind: z.ZodLiteral<"remote">;
13
11
  serverUrl: z.ZodURL;
14
- }, z.core.$strict>], "kind">;
12
+ }, z.core.$strict>;
15
13
  }, z.core.$strict>;
16
14
  declare const invocationInputRequestSchema: z.ZodObject<{
17
15
  allowFreeform: z.ZodOptional<z.ZodBoolean>;
@@ -34,12 +32,10 @@ declare const invokeResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
34
32
  sessionId: z.ZodString;
35
33
  streamIndex: z.ZodNumber;
36
34
  }, z.core.$strict>;
37
- target: z.ZodDiscriminatedUnion<[z.ZodObject<{
38
- kind: z.ZodLiteral<"local">;
39
- }, z.core.$strict>, z.ZodObject<{
35
+ target: z.ZodObject<{
40
36
  kind: z.ZodLiteral<"remote">;
41
37
  serverUrl: z.ZodURL;
42
- }, z.core.$strict>], "kind">;
38
+ }, z.core.$strict>;
43
39
  }, z.core.$strict>;
44
40
  status: z.ZodLiteral<"running">;
45
41
  }, z.core.$strict>, z.ZodObject<{
@@ -63,12 +59,10 @@ declare const invokeResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
63
59
  sessionId: z.ZodString;
64
60
  streamIndex: z.ZodNumber;
65
61
  }, z.core.$strict>;
66
- target: z.ZodDiscriminatedUnion<[z.ZodObject<{
67
- kind: z.ZodLiteral<"local">;
68
- }, z.core.$strict>, z.ZodObject<{
62
+ target: z.ZodObject<{
69
63
  kind: z.ZodLiteral<"remote">;
70
64
  serverUrl: z.ZodURL;
71
- }, z.core.$strict>], "kind">;
65
+ }, z.core.$strict>;
72
66
  }, z.core.$strict>;
73
67
  status: z.ZodLiteral<"input-required">;
74
68
  }, z.core.$strict>, z.ZodObject<{
@@ -83,12 +77,10 @@ declare const invokeResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
83
77
  sessionId: z.ZodString;
84
78
  streamIndex: z.ZodNumber;
85
79
  }, z.core.$strict>;
86
- target: z.ZodDiscriminatedUnion<[z.ZodObject<{
87
- kind: z.ZodLiteral<"local">;
88
- }, z.core.$strict>, z.ZodObject<{
80
+ target: z.ZodObject<{
89
81
  kind: z.ZodLiteral<"remote">;
90
82
  serverUrl: z.ZodURL;
91
- }, z.core.$strict>], "kind">;
83
+ }, z.core.$strict>;
92
84
  }, z.core.$strict>;
93
85
  status: z.ZodLiteral<"authorization-required">;
94
86
  }, z.core.$strict>, z.ZodObject<{
@@ -104,12 +96,10 @@ declare const invokeResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
104
96
  sessionId: z.ZodString;
105
97
  streamIndex: z.ZodNumber;
106
98
  }, z.core.$strict>;
107
- target: z.ZodDiscriminatedUnion<[z.ZodObject<{
108
- kind: z.ZodLiteral<"local">;
109
- }, z.core.$strict>, z.ZodObject<{
99
+ target: z.ZodObject<{
110
100
  kind: z.ZodLiteral<"remote">;
111
101
  serverUrl: z.ZodURL;
112
- }, z.core.$strict>], "kind">;
102
+ }, z.core.$strict>;
113
103
  }, z.core.$strict>;
114
104
  status: z.ZodLiteral<"ready">;
115
105
  }, z.core.$strict>, z.ZodObject<{
@@ -123,16 +113,14 @@ declare const invokeResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
123
113
  sessionId: z.ZodString;
124
114
  streamIndex: z.ZodNumber;
125
115
  }, z.core.$strict>;
126
- target: z.ZodDiscriminatedUnion<[z.ZodObject<{
127
- kind: z.ZodLiteral<"local">;
128
- }, z.core.$strict>, z.ZodObject<{
116
+ target: z.ZodObject<{
129
117
  kind: z.ZodLiteral<"remote">;
130
118
  serverUrl: z.ZodURL;
131
- }, z.core.$strict>], "kind">;
119
+ }, z.core.$strict>;
132
120
  }, z.core.$strict>>;
133
121
  status: z.ZodLiteral<"authentication-required">;
134
122
  }, z.core.$strict>], "status">;
135
- /** Durable session coordinates emitted by `eve invoke`. Credentials are deliberately excluded. */
123
+ /** Durable session coordinates emitted by `eve remote invoke`. Credentials are deliberately excluded. */
136
124
  export type InvokeResume = z.infer<typeof invokeResumeSchema>;
137
125
  export type InvocationInputRequest = z.infer<typeof invocationInputRequestSchema>;
138
126
  /** Result emitted by one non-interactive agent invocation. */
@@ -142,176 +130,8 @@ export type InvokeAuthenticationFailure = Extract<InvokeResult, {
142
130
  }>;
143
131
  /** Projects a runtime input request to the stable invocation-facing contract. */
144
132
  export declare function projectInvocationInputRequest(request: InputRequest): InvocationInputRequest;
145
- /** Parses a complete, resumable result from a previous `eve invoke` command. */
133
+ /** Parses a complete, resumable result from a previous `eve remote invoke` command. */
146
134
  export declare function parseInvokeResumeInput(value: unknown): InvokeResult & {
147
135
  resume: InvokeResume;
148
136
  };
149
- /** JSON Schema generated from the canonical invoke result runtime schema. */
150
- export declare const invokeResultJsonSchema: {
151
- $schema?: "https://json-schema.org/draft/2020-12/schema" | "http://json-schema.org/draft-07/schema#" | "http://json-schema.org/draft-04/schema#";
152
- $anchor?: string;
153
- $ref?: string;
154
- $dynamicRef?: string;
155
- $dynamicAnchor?: string;
156
- $vocabulary?: Record<string, boolean>;
157
- $comment?: string;
158
- $defs?: Record<string, z.core.JSONSchema.JSONSchema>;
159
- type?: z.core.JSONSchema.SchemaType | z.core.JSONSchema.SchemaType[];
160
- additionalItems?: z.core.JSONSchema._JSONSchema;
161
- unevaluatedItems?: z.core.JSONSchema._JSONSchema;
162
- prefixItems?: z.core.JSONSchema._JSONSchema[];
163
- items?: z.core.JSONSchema._JSONSchema | z.core.JSONSchema._JSONSchema[];
164
- contains?: z.core.JSONSchema._JSONSchema;
165
- additionalProperties?: z.core.JSONSchema._JSONSchema;
166
- unevaluatedProperties?: z.core.JSONSchema._JSONSchema;
167
- properties?: Record<string, z.core.JSONSchema._JSONSchema>;
168
- patternProperties?: Record<string, z.core.JSONSchema._JSONSchema>;
169
- dependentSchemas?: Record<string, z.core.JSONSchema._JSONSchema>;
170
- propertyNames?: z.core.JSONSchema._JSONSchema;
171
- if?: z.core.JSONSchema._JSONSchema;
172
- then?: z.core.JSONSchema._JSONSchema;
173
- else?: z.core.JSONSchema._JSONSchema;
174
- allOf?: z.core.JSONSchema.JSONSchema[];
175
- anyOf?: z.core.JSONSchema.JSONSchema[];
176
- oneOf?: z.core.JSONSchema.JSONSchema[];
177
- not?: z.core.JSONSchema._JSONSchema;
178
- multipleOf?: number;
179
- maximum?: number;
180
- exclusiveMaximum?: number | boolean;
181
- minimum?: number;
182
- exclusiveMinimum?: number | boolean;
183
- maxLength?: number;
184
- minLength?: number;
185
- pattern?: string;
186
- maxItems?: number;
187
- minItems?: number;
188
- uniqueItems?: boolean;
189
- maxContains?: number;
190
- minContains?: number;
191
- maxProperties?: number;
192
- minProperties?: number;
193
- required?: string[];
194
- dependentRequired?: Record<string, string[]>;
195
- enum?: Array<string | number | boolean | null>;
196
- const?: string | number | boolean | null;
197
- id?: string;
198
- description?: string;
199
- default?: unknown;
200
- deprecated?: boolean;
201
- readOnly?: boolean;
202
- writeOnly?: boolean;
203
- nullable?: boolean;
204
- examples?: unknown[];
205
- format?: string;
206
- contentMediaType?: string;
207
- contentEncoding?: string;
208
- contentSchema?: z.core.JSONSchema.JSONSchema;
209
- _prefault?: unknown;
210
- "~standard": z.core.ZodStandardSchemaWithJSON<z.ZodDiscriminatedUnion<[z.ZodObject<{
211
- resume: z.ZodObject<{
212
- session: z.ZodObject<{
213
- sessionId: z.ZodString;
214
- streamIndex: z.ZodNumber;
215
- }, z.core.$strict>;
216
- target: z.ZodDiscriminatedUnion<[z.ZodObject<{
217
- kind: z.ZodLiteral<"local">;
218
- }, z.core.$strict>, z.ZodObject<{
219
- kind: z.ZodLiteral<"remote">;
220
- serverUrl: z.ZodURL;
221
- }, z.core.$strict>], "kind">;
222
- }, z.core.$strict>;
223
- status: z.ZodLiteral<"running">;
224
- }, z.core.$strict>, z.ZodObject<{
225
- requests: z.ZodReadonly<z.ZodArray<z.ZodObject<{
226
- allowFreeform: z.ZodOptional<z.ZodBoolean>;
227
- kind: z.ZodEnum<{
228
- question: "question";
229
- "session-limit": "session-limit";
230
- "tool-approval": "tool-approval";
231
- }>;
232
- prompt: z.ZodString;
233
- requestId: z.ZodString;
234
- options: z.ZodOptional<z.ZodArray<z.ZodObject<{
235
- description: z.ZodOptional<z.ZodString>;
236
- id: z.ZodString;
237
- label: z.ZodString;
238
- }, z.core.$strict>>>;
239
- }, z.core.$strict>>>;
240
- resume: z.ZodObject<{
241
- session: z.ZodObject<{
242
- sessionId: z.ZodString;
243
- streamIndex: z.ZodNumber;
244
- }, z.core.$strict>;
245
- target: z.ZodDiscriminatedUnion<[z.ZodObject<{
246
- kind: z.ZodLiteral<"local">;
247
- }, z.core.$strict>, z.ZodObject<{
248
- kind: z.ZodLiteral<"remote">;
249
- serverUrl: z.ZodURL;
250
- }, z.core.$strict>], "kind">;
251
- }, z.core.$strict>;
252
- status: z.ZodLiteral<"input-required">;
253
- }, z.core.$strict>, z.ZodObject<{
254
- authorizations: z.ZodReadonly<z.ZodArray<z.ZodObject<{
255
- authorization: z.ZodOptional<z.ZodType<ConnectionAuthorizationChallenge, unknown, z.core.$ZodTypeInternals<ConnectionAuthorizationChallenge, unknown>>>;
256
- description: z.ZodString;
257
- name: z.ZodString;
258
- webhookUrl: z.ZodOptional<z.ZodString>;
259
- }, z.core.$strict>>>;
260
- resume: z.ZodObject<{
261
- session: z.ZodObject<{
262
- sessionId: z.ZodString;
263
- streamIndex: z.ZodNumber;
264
- }, z.core.$strict>;
265
- target: z.ZodDiscriminatedUnion<[z.ZodObject<{
266
- kind: z.ZodLiteral<"local">;
267
- }, z.core.$strict>, z.ZodObject<{
268
- kind: z.ZodLiteral<"remote">;
269
- serverUrl: z.ZodURL;
270
- }, z.core.$strict>], "kind">;
271
- }, z.core.$strict>;
272
- status: z.ZodLiteral<"authorization-required">;
273
- }, z.core.$strict>, z.ZodObject<{
274
- outcome: z.ZodDiscriminatedUnion<[z.ZodObject<{
275
- message: z.ZodOptional<z.ZodString>;
276
- status: z.ZodLiteral<"completed">;
277
- }, z.core.$strict>, z.ZodObject<{
278
- message: z.ZodString;
279
- status: z.ZodLiteral<"failed">;
280
- }, z.core.$strict>], "status">;
281
- resume: z.ZodObject<{
282
- session: z.ZodObject<{
283
- sessionId: z.ZodString;
284
- streamIndex: z.ZodNumber;
285
- }, z.core.$strict>;
286
- target: z.ZodDiscriminatedUnion<[z.ZodObject<{
287
- kind: z.ZodLiteral<"local">;
288
- }, z.core.$strict>, z.ZodObject<{
289
- kind: z.ZodLiteral<"remote">;
290
- serverUrl: z.ZodURL;
291
- }, z.core.$strict>], "kind">;
292
- }, z.core.$strict>;
293
- status: z.ZodLiteral<"ready">;
294
- }, z.core.$strict>, z.ZodObject<{
295
- message: z.ZodString;
296
- status: z.ZodLiteral<"failed">;
297
- }, z.core.$strict>, z.ZodObject<{
298
- code: z.ZodOptional<z.ZodString>;
299
- message: z.ZodString;
300
- resume: z.ZodOptional<z.ZodObject<{
301
- session: z.ZodObject<{
302
- sessionId: z.ZodString;
303
- streamIndex: z.ZodNumber;
304
- }, z.core.$strict>;
305
- target: z.ZodDiscriminatedUnion<[z.ZodObject<{
306
- kind: z.ZodLiteral<"local">;
307
- }, z.core.$strict>, z.ZodObject<{
308
- kind: z.ZodLiteral<"remote">;
309
- serverUrl: z.ZodURL;
310
- }, z.core.$strict>], "kind">;
311
- }, z.core.$strict>>;
312
- status: z.ZodLiteral<"authentication-required">;
313
- }, z.core.$strict>], "status">>;
314
- $id: string;
315
- title: string;
316
- };
317
137
  export {};
@@ -1 +1 @@
1
- import{z}from"#compiled/zod/index.js";import{inputOptionSchema,inputRequestSchema}from"#shared/input.js";const sessionCursorSchema=z.object({sessionId:z.string().min(1),streamIndex:z.number().int().nonnegative()}).strict(),targetSchema=z.discriminatedUnion(`kind`,[z.object({kind:z.literal(`local`)}).strict(),z.object({kind:z.literal(`remote`),serverUrl:z.url()}).strict()]),invokeResumeSchema=z.object({session:sessionCursorSchema,target:targetSchema}).strict(),invocationInputRequestSchema=inputRequestSchema.omit({action:!0,display:!0,options:!0}).extend({options:z.array(inputOptionSchema.omit({style:!0})).optional()}),authorizationChallengeSchema=z.object({displayName:z.string().optional(),expiresAt:z.string().optional(),instructions:z.string().optional(),url:z.string().optional(),userCode:z.string().optional()}).strict(),authorizationInterruptSchema=z.object({authorization:authorizationChallengeSchema.optional(),description:z.string(),name:z.string(),webhookUrl:z.string().optional()}).strict(),turnOutcomeSchema=z.discriminatedUnion(`status`,[z.object({message:z.string().optional(),status:z.literal(`completed`)}).strict(),z.object({message:z.string(),status:z.literal(`failed`)}).strict()]),invokeResultSchema=z.discriminatedUnion(`status`,[z.object({resume:invokeResumeSchema,status:z.literal(`running`)}).strict(),z.object({requests:z.array(invocationInputRequestSchema).readonly(),resume:invokeResumeSchema,status:z.literal(`input-required`)}).strict(),z.object({authorizations:z.array(authorizationInterruptSchema).min(1).readonly(),resume:invokeResumeSchema,status:z.literal(`authorization-required`)}).strict(),z.object({outcome:turnOutcomeSchema,resume:invokeResumeSchema,status:z.literal(`ready`)}).strict(),z.object({message:z.string(),status:z.literal(`failed`)}).strict(),z.object({code:z.string().optional(),message:z.string(),resume:invokeResumeSchema.optional(),status:z.literal(`authentication-required`)}).strict()]);function projectInvocationInputRequest(e){let{allowFreeform:t,kind:n,options:r,prompt:i,requestId:a}=e;return{allowFreeform:t,kind:n,options:r?.map(({description:e,id:t,label:n})=>({description:e,id:t,label:n})),prompt:i,requestId:a}}function parseInvokeResumeInput(e){let t=invokeResultSchema.safeParse(e);if(t.success&&`resume`in t.data&&t.data.resume!==void 0)return t.data;throw Error(`Resume JSON is not a valid resumable eve invoke result.`)}const invokeResultJsonSchema={...z.toJSONSchema(invokeResultSchema,{io:`input`,target:`draft-2020-12`,unrepresentable:`any`}),$id:`https://eve.dev/schemas/invoke-result.json`,title:`eve invoke result`};export{invokeResultJsonSchema,parseInvokeResumeInput,projectInvocationInputRequest};
1
+ import{z}from"#compiled/zod/index.js";import{inputOptionSchema,inputRequestSchema}from"#shared/input.js";const sessionCursorSchema=z.object({sessionId:z.string().min(1),streamIndex:z.number().int().nonnegative()}).strict(),targetSchema=z.object({kind:z.literal(`remote`),serverUrl:z.url()}).strict(),invokeResumeSchema=z.object({session:sessionCursorSchema,target:targetSchema}).strict(),invocationInputRequestSchema=inputRequestSchema.omit({action:!0,display:!0,options:!0}).extend({options:z.array(inputOptionSchema.omit({style:!0})).optional()}),authorizationChallengeSchema=z.object({displayName:z.string().optional(),expiresAt:z.string().optional(),instructions:z.string().optional(),url:z.string().optional(),userCode:z.string().optional()}).strict(),authorizationInterruptSchema=z.object({authorization:authorizationChallengeSchema.optional(),description:z.string(),name:z.string(),webhookUrl:z.string().optional()}).strict(),turnOutcomeSchema=z.discriminatedUnion(`status`,[z.object({message:z.string().optional(),status:z.literal(`completed`)}).strict(),z.object({message:z.string(),status:z.literal(`failed`)}).strict()]),invokeResultSchema=z.discriminatedUnion(`status`,[z.object({resume:invokeResumeSchema,status:z.literal(`running`)}).strict(),z.object({requests:z.array(invocationInputRequestSchema).readonly(),resume:invokeResumeSchema,status:z.literal(`input-required`)}).strict(),z.object({authorizations:z.array(authorizationInterruptSchema).min(1).readonly(),resume:invokeResumeSchema,status:z.literal(`authorization-required`)}).strict(),z.object({outcome:turnOutcomeSchema,resume:invokeResumeSchema,status:z.literal(`ready`)}).strict(),z.object({message:z.string(),status:z.literal(`failed`)}).strict(),z.object({code:z.string().optional(),message:z.string(),resume:invokeResumeSchema.optional(),status:z.literal(`authentication-required`)}).strict()]);function projectInvocationInputRequest(e){let{allowFreeform:t,kind:n,options:r,prompt:i,requestId:a}=e;return{allowFreeform:t,kind:n,options:r?.map(({description:e,id:t,label:n})=>({description:e,id:t,label:n})),prompt:i,requestId:a}}function parseInvokeResumeInput(e){let t=invokeResultSchema.safeParse(e);if(t.success&&`resume`in t.data&&t.data.resume!==void 0)return t.data;throw Error(`Resume JSON is not a valid resumable eve remote invoke result.`)}export{parseInvokeResumeInput,projectInvocationInputRequest};
@@ -17,10 +17,6 @@ interface CliLogger {
17
17
  interface CliRuntimeDependencies {
18
18
  isCodingAgentLaunch(): Promise<boolean>;
19
19
  findApplicationRoot(cwd: string): Promise<string | undefined>;
20
- isActiveDevelopmentServerForApp(input: {
21
- readonly appRoot: string;
22
- readonly serverUrl: string;
23
- }): Promise<boolean>;
24
20
  buildHost: BuildHost;
25
21
  resolveVerifiedRemoteDevelopmentClient: ResolveVerifiedRemoteDevelopmentClient;
26
22
  runAcpServer: RunAcpServer;
@@ -1,2 +1,2 @@
1
- import{Command,CommanderError}from"#compiled/commander/index.js";import{agentCommand}from"#cli/agent-command.js";import{parseDevelopmentServerUrl}from"#cli/dev/url.js";import{waitForShutdownSignal}from"#cli/shutdown.js";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{createCliTheme,renderCliTaggedLine}from"#cli/ui/output.js";import{findEveProjectContext,resolveEveProjectContext}from"#internal/project-context.js";import{isCodingAgentLaunch}from"#cli/agent-detection.js";import{eveCliBanner}from"#cli/banner.js";import{registerBuildCommand}from"#cli/commands/build.js";import{resolveApplicationRoot}from"#internal/application/paths.js";import{findCliApplicationRoot,resolveCliApplicationProject}from"#cli/application-root.js";import{registerIntegrationCommands}from"#cli/commands/register-integration-commands.js";import{registerProjectCommands}from"#cli/commands/register-project-commands.js";import{registerRegistryCommands}from"#cli/commands/register-registry-commands.js";import{registerDevelopmentCommand}from"#cli/dev/command.js";import{resolveDevUiMode,resolveTuiDisplayOptions}from"#cli/dev/ui-options.js";import{registerAcpCommand}from"#cli/acp/command.js";import{registerRuntimeInvokeCommand}from"#cli/invoke/command.js";import{parseAgentNamesOption,parsePortOption,parseReasoningOption}from"#cli/option-parsers.js";import{registerEveTelemetryCommands}from"#cli/telemetry/command.js";import{canonicalCommand,createEveCliTelemetry}from"#cli/telemetry/index.js";async function loadPrintApplicationInfo(){return(await import(`#cli/commands/info.js`)).printApplicationInfo}async function loadRunEvalCommand(){return(await import(`#evals/cli/eval.js`)).runEvalCommand}async function loadStartProductionHost(){return(await import(`#internal/nitro/host.js`)).startProductionServer}function createCliProgram(e,t,n,r){let i=resolveInstalledPackageInfo().version,a=new Command,o=createCliTheme();a.name(`eve`).description(`Build and run an eve application.`).version(i).showHelpAfterError().exitOverride().hook(`preAction`,(t,n)=>{let{json:r}=n.opts();!r&&(n.name()===`info`||n.name()===`init`&&n.parent!==a)&&e.log(eveCliBanner())}).configureOutput({writeErr:t=>{e.error(t.trimEnd())},writeOut:t=>{e.log(t.trimEnd())}}),agentCommand(a.command(`channels`).description(`Manage user-authored channels in the current project.`).command(`list`),n).description(`List user-authored channels in the current project.`).option(`--json`,`Output as JSON`).action(async t=>{let{runChannelsListCommand:r}=await import(`#cli/commands/channels.js`);await r(e,n.project,t)}),registerEveTelemetryCommands(a,e),registerIntegrationCommands({program:a,logger:e,applicationContext:n});let s=a.command(`extension`).description(`Create and build reusable eve extension packages.`);s.command(`init [target]`).description(`Create a new eve extension package.`).option(`-y, --yes`,`Accepted for compatibility; has no effect`).action(async(t,i)=>{i.yes&&e.error(`warning: --yes has no effect for eve extension init.`);let{runExtensionInitCommand:a}=await import(`#cli/commands/extension-init.js`);await a(e,n.root,t,void 0,e=>{r.trackSetupStep({flow:`extension_init`,step:e})})}),s.command(`build`).description(`Build the current package as an eve extension.`).action(async()=>{let{loadDevelopmentEnvironmentFiles:t}=await import(`#cli/dev/environment.js`);await t(n.root);let{runExtensionBuildCommand:r}=await import(`#cli/commands/extension-build.js`);await r(e,n.root)}),registerRegistryCommands({program:a,logger:e,applicationContext:n}),a.command(`init [target]`).description(`Create a new eve agent, or add one to an existing project directory.`).option(`--channel-web-nextjs`,`Add the Web Chat application (Next.js)`).option(`--agents <names>`,`Create an agents/ workspace with comma-separated agent names`,parseAgentNamesOption).option(`--model <model>`,`Set the agent model (provider/model-id)`).option(`-n, --non-interactive`,`Scaffold the agent without starting development`).option(`--reasoning <effort>`,`Set reasoning (provider-default|none|minimal|low|medium|high|xhigh)`,parseReasoningOption).option(`-y, --yes`,`Accepted for compatibility; has no effect`).action(async(t,i)=>{i.yes&&e.error(`warning: --yes has no effect for eve init.`);let{runInitCommand:a}=await import(`#cli/commands/init.js`);await a(e,n.root,t,{agents:i.agents,channelWebNextjs:i.channelWebNextjs,model:i.model,reasoning:i.reasoning,nonInteractive:i.nonInteractive},void 0,e=>{r.trackSetupStep({flow:`init`,step:e})},(e,t,n)=>{r.trackSetupTerminal({flow:`init`,step:e,result:t,failureCode:n})})}),agentCommand(a.command(`set`),n).description(`Change root agent model settings.`).option(`--model <model>`,`Set the agent model (provider/model-id)`).option(`--reasoning <effort>`,`Set reasoning (provider-default|none|minimal|low|medium|high|xhigh)`,parseReasoningOption).action(async t=>{let{runSetCommand:r}=await import(`#cli/commands/set.js`);await r(e,n.root,t)}),registerProjectCommands({program:a,logger:e,applicationContext:n}),registerBuildCommand({applicationContext:n,buildHost:t.buildHost,logger:e,program:a}),agentCommand(a.command(`start`),n).description(`Start a built eve application.`).option(`--host <host>`,`Host interface to bind`).option(`--port <port>`,`Port to listen on (defaults to $PORT, then 3000)`,parsePortOption).action(async r=>{let{loadDevelopmentEnvironmentFiles:i}=await import(`#cli/dev/environment.js`);await i(n.root);let a=await(t.startProductionHost??await loadStartProductionHost())(n.root,{host:r.host,port:r.port});e.log(renderCliTaggedLine(o,{message:`server listening at ${a.url}`,tag:`start`,tone:`success`})),await waitForShutdownSignal({close:()=>a.close(),wait:()=>a.wait()})}),registerRuntimeInvokeCommand({applicationContext:n,logger:e,program:a,runtime:t}),registerAcpCommand({applicationContext:n,eveVersion:i,program:a,resolveVerifiedRemoteDevelopmentClient:t.resolveVerifiedRemoteDevelopmentClient,runAcpServer:t.runAcpServer,startHost:t.startHost}),registerDevelopmentCommand({applicationContext:n,logger:e,program:a,runtime:t,telemetry:r});let c=a.command(`logs`).description("Inspect local `eve dev` diagnostic logs (.eve/logs).");return agentCommand(c.command(`show [logid]`,{isDefault:!0}),n).description(`Print a diagnostic log (the most recent when logid is omitted).`).option(`--dump`,`Prepend the log's environment dump (.dump sibling)`).option(`--events`,`Interleave session events from the local workflow store`).action(async(t,r)=>{let{runLogsShowCommand:i}=await import(`#cli/commands/logs.js`);await i(e,n.root,t,r)}),agentCommand(c.command(`ls`),n).description(`List diagnostic logs, most recent first.`).option(`--json`,`Output as JSON`).action(async t=>{let{runLogsListCommand:r}=await import(`#cli/commands/logs.js`);await r(e,n.root,t)}),agentCommand(a.command(`traces [trace]`),n).usage(`[options] [trace]
2
- eve traces ls [options]`).description("Show a local `eve dev` trace (the most recent when trace is omitted).").option(`--verbose`,`Expand every span with all attributes and events`).option(`--json`,`Output as JSON`).action(async(t,r)=>{let{runTraceShowCommand:i}=await import(`#cli/commands/trace.js`);await i(e,n.root,t,r)}).command(`ls`).description(`List local traces, most recent first.`).option(`--json`,`Output as JSON`).action(async t=>{let{runTraceListCommand:r}=await import(`#cli/commands/trace.js`);await r(e,n.root,t)}),agentCommand(a.command(`info`),n).description(`Print resolved application information.`).option(`--json`,`Output as JSON`).action(async r=>{await(t.printApplicationInfo??await loadPrintApplicationInfo())(e,n.root,r)}),agentCommand(a.command(`eval`),n,e=>e.opts().url===void 0).description(`Run evals against an eve agent.`).argument(`[evalIds...]`,`Eval ids (or directory prefixes) to run (all discovered evals when omitted)`).option(`--url <url>`,`Remote agent URL (skip local host startup)`,parseDevelopmentServerUrl).option(`--tag <tag...>`,`Run only evals carrying a tag`).option(`--exclude-tag <tag...>`,`Skip evals carrying a tag`).option(`--strict`,`Fail the exit code when any score falls below its threshold`).option(`--list`,`Print discovered evals without running them`).option(`--timeout <ms>`,`Per-eval timeout in milliseconds`).option(`--max-concurrency <n>`,`Max concurrent eval executions`).option(`--json`,`Output results as JSON`).option(`--junit <path>`,`Write JUnit XML results to a file`).option(`--skip-report`,`Skip eval-defined reporters (e.g. Braintrust)`).option(`--verbose`,`Stream per-eval logs and workflow run IDs to stdout`).action(async(r,i)=>{await(t.runEvalCommand??await loadRunEvalCommand())(r,i,e,n.root)}),a}async function runCli(e=process.argv.slice(2),t=console,n={}){let r={root:resolveApplicationRoot(),async resolve(){let e=await(n.resolveApplicationProject??resolveCliApplicationProject)(r.root);r.project=e,r.root=e.appRoot},async resolveAgent(){return resolveEveProjectContext(r.root)}},i=createEveCliTelemetry(resolveInstalledPackageInfo().version),a=createCliProgram(t,n,r,i),o=e;if(o.length===0){let e=await(n.findApplicationRoot??findCliApplicationRoot)(r.root);e===void 0?o=(await findEveProjectContext(r.root))?.kind===`workspace`?[`dev`]:[`init`]:(r.root=e,o=[`dev`])}let s=canonicalCommand(o);i.trackCommand(s),s!==`telemetry`&&await i.notify(t);try{await a.parseAsync(o,{from:`user`}),i.trackOutcome(`success`)}catch(e){if(e instanceof CommanderError&&e.exitCode===0){i.trackOutcome(`success`);return}if(i.trackOutcome(e instanceof CommanderError?`usage_error`:`error`),e instanceof CommanderError){let r=await(n.isCodingAgentLaunch??isCodingAgentLaunch)();if(o[0]===`init`&&r){let{initAgentInstructions:e}=await import(`#cli/commands/agent-instructions.js`);t.log(e())}throw Error(e.message)}throw e}finally{await i.flush()}}export{createCliProgram,resolveDevUiMode,resolveTuiDisplayOptions,runCli};
1
+ import{Command,CommanderError}from"#compiled/commander/index.js";import{agentCommand}from"#cli/agent-command.js";import{parseDevelopmentServerUrl}from"#cli/dev/url.js";import{waitForShutdownSignal}from"#cli/shutdown.js";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{createCliTheme,renderCliTaggedLine}from"#cli/ui/output.js";import{findEveProjectContext,resolveEveProjectContext}from"#internal/project-context.js";import{isCodingAgentLaunch}from"#cli/agent-detection.js";import{eveCliBanner}from"#cli/banner.js";import{registerBuildCommand}from"#cli/commands/build.js";import{resolveApplicationRoot}from"#internal/application/paths.js";import{findCliApplicationRoot,resolveCliApplicationProject}from"#cli/application-root.js";import{registerIntegrationCommands}from"#cli/commands/register-integration-commands.js";import{registerProjectCommands}from"#cli/commands/register-project-commands.js";import{registerRegistryCommands}from"#cli/commands/register-registry-commands.js";import{registerDevelopmentCommand,registerRemoteCommands}from"#cli/dev/command.js";import{resolveDevUiMode,resolveTuiDisplayOptions}from"#cli/dev/ui-options.js";import{registerAcpCommand}from"#cli/acp/command.js";import{registerRuntimeInvokeCommand}from"#cli/invoke/command.js";import{parseAgentNamesOption,parsePortOption,parseReasoningOption}from"#cli/option-parsers.js";import{registerEveTelemetryCommands}from"#cli/telemetry/command.js";import{canonicalCommand,createEveCliTelemetry}from"#cli/telemetry/index.js";async function loadPrintApplicationInfo(){return(await import(`#cli/commands/info.js`)).printApplicationInfo}async function loadRunEvalCommand(){return(await import(`#evals/cli/eval.js`)).runEvalCommand}async function loadStartProductionHost(){return(await import(`#internal/nitro/host.js`)).startProductionServer}function createCliProgram(e,t,n,r){let i=resolveInstalledPackageInfo().version,a=new Command,o=createCliTheme();a.name(`eve`).description(`Build and run an eve application.`).version(i).showHelpAfterError().exitOverride().hook(`preAction`,(t,n)=>{let{json:r}=n.opts();!r&&(n.name()===`info`||n.name()===`init`&&n.parent!==a)&&e.log(eveCliBanner())}).configureOutput({writeErr:t=>{e.error(t.trimEnd())},writeOut:t=>{e.log(t.trimEnd())}}),registerEveTelemetryCommands(a,e),registerIntegrationCommands({program:a,logger:e,applicationContext:n});let s=a.command(`extension`).description(`Create and build reusable eve extension packages.`);s.command(`init [target]`).description(`Create a new eve extension package.`).option(`-y, --yes`,`Accepted for compatibility; has no effect`).action(async(t,i)=>{i.yes&&e.error(`warning: --yes has no effect for eve extension init.`);let{runExtensionInitCommand:a}=await import(`#cli/commands/extension-init.js`);await a(e,n.root,t,void 0,e=>{r.trackSetupStep({flow:`extension_init`,step:e})})}),s.command(`build`).description(`Build the current package as an eve extension.`).action(async()=>{let{loadDevelopmentEnvironmentFiles:t}=await import(`#cli/dev/environment.js`);await t(n.root);let{runExtensionBuildCommand:r}=await import(`#cli/commands/extension-build.js`);await r(e,n.root)}),registerRegistryCommands({program:a,logger:e,applicationContext:n}),a.command(`init [target]`).description(`Create a new eve agent, or add one to an existing project directory.`).option(`--channel-web-nextjs`,`Add the Web Chat application (Next.js)`).option(`--agents <names>`,`Create an agents/ workspace with comma-separated agent names`,parseAgentNamesOption).option(`--model <model>`,`Set the agent model (provider/model-id)`).option(`-n, --non-interactive`,`Scaffold the agent without starting development`).option(`--reasoning <effort>`,`Set reasoning (provider-default|none|minimal|low|medium|high|xhigh)`,parseReasoningOption).option(`-y, --yes`,`Accepted for compatibility; has no effect`).action(async(t,i)=>{i.yes&&e.error(`warning: --yes has no effect for eve init.`);let{runInitCommand:a}=await import(`#cli/commands/init.js`);await a(e,n.root,t,{agents:i.agents,channelWebNextjs:i.channelWebNextjs,model:i.model,reasoning:i.reasoning,nonInteractive:i.nonInteractive},void 0,e=>{r.trackSetupStep({flow:`init`,step:e})},(e,t,n)=>{r.trackSetupTerminal({flow:`init`,step:e,result:t,failureCode:n})})});let c=a.command(`set`).description(`Change root agent model settings.`);agentCommand(c.command(`model [model]`),n).description(`Set the agent model and reasoning effort.`).option(`--reasoning <effort>`,`Set reasoning (provider-default|none|minimal|low|medium|high|xhigh)`,parseReasoningOption).action(async(t,r)=>{let{runSetCommand:i}=await import(`#cli/commands/set.js`);await i(e,n.root,{model:t,reasoning:r.reasoning})}),registerProjectCommands({program:a,logger:e,applicationContext:n}),registerBuildCommand({applicationContext:n,buildHost:t.buildHost,logger:e,program:a}),agentCommand(a.command(`start`),n).description(`Start a built eve application.`).option(`--host <host>`,`Host interface to bind`).option(`--port <port>`,`Port to listen on (defaults to $PORT, then 3000)`,parsePortOption).action(async r=>{let{loadDevelopmentEnvironmentFiles:i}=await import(`#cli/dev/environment.js`);await i(n.root);let a=await(t.startProductionHost??await loadStartProductionHost())(n.root,{host:r.host,port:r.port});e.log(renderCliTaggedLine(o,{message:`server listening at ${a.url}`,tag:`start`,tone:`success`})),await waitForShutdownSignal({close:()=>a.close(),wait:()=>a.wait()})});let l=a.command(`remote`).description(`Connect to an existing eve agent.`);registerRemoteCommands({applicationContext:n,logger:e,program:l,runtime:t,telemetry:r}),registerRuntimeInvokeCommand({applicationContext:n,logger:e,program:l,runtime:t}),registerAcpCommand({applicationContext:n,eveVersion:i,program:a,resolveVerifiedRemoteDevelopmentClient:t.resolveVerifiedRemoteDevelopmentClient,runAcpServer:t.runAcpServer,startHost:t.startHost}),registerDevelopmentCommand({applicationContext:n,logger:e,program:a,runtime:t,telemetry:r});let u=a.command(`logs`).description("Inspect local `eve dev` diagnostic logs (.eve/logs).");agentCommand(u.command(`show [logid]`,{isDefault:!0}),n).description(`Print a diagnostic log (the most recent when logid is omitted).`).option(`--dump`,`Prepend the log's environment dump (.dump sibling)`).option(`--events`,`Interleave session events from the local workflow store`).action(async(t,r)=>{let{runLogsShowCommand:i}=await import(`#cli/commands/logs.js`);await i(e,n.root,t,r)}),agentCommand(u.command(`list`).alias(`ls`),n).description(`List diagnostic logs, most recent first.`).option(`--json`,`Output as JSON`).action(async t=>{let{runLogsListCommand:r}=await import(`#cli/commands/logs.js`);await r(e,n.root,t)});let d=a.command(`traces`).usage(`[options] [trace]
2
+ eve traces list [options]`).description("Inspect local `eve dev` traces.");return agentCommand(d.command(`show [trace]`,{isDefault:!0}),n).description(`Show a local trace (the most recent when trace is omitted).`).option(`--verbose`,`Expand every span with all attributes and events`).option(`--json`,`Output as JSON`).action(async(t,r)=>{let{runTraceShowCommand:i}=await import(`#cli/commands/trace.js`);await i(e,n.root,t,r)}),agentCommand(d.command(`list`).alias(`ls`),n).description(`List local traces, most recent first.`).option(`--json`,`Output as JSON`).action(async t=>{let{runTraceListCommand:r}=await import(`#cli/commands/trace.js`);await r(e,n.root,t)}),agentCommand(a.command(`info`),n).description(`Print resolved application information.`).option(`--json`,`Output as JSON`).action(async r=>{await(t.printApplicationInfo??await loadPrintApplicationInfo())(e,n.root,r)}),agentCommand(a.command(`eval`),n,e=>e.opts().url===void 0).description(`Run evals against an eve agent.`).argument(`[evalIds...]`,`Eval ids (or directory prefixes) to run (all discovered evals when omitted)`).option(`--url <url>`,`Remote agent URL (skip local host startup)`,parseDevelopmentServerUrl).option(`--tag <tag...>`,`Run only evals carrying a tag`).option(`--exclude-tag <tag...>`,`Skip evals carrying a tag`).option(`--strict`,`Fail the exit code when any score falls below its threshold`).option(`--list`,`Print discovered evals without running them`).option(`--timeout <ms>`,`Per-eval timeout in milliseconds`).option(`--max-concurrency <n>`,`Max concurrent eval executions`).option(`--json`,`Output results as JSON`).option(`--junit <path>`,`Write JUnit XML results to a file`).option(`--skip-report`,`Skip eval-defined reporters (e.g. Braintrust)`).option(`--verbose`,`Stream per-eval logs and workflow run IDs to stdout`).action(async(r,i)=>{await(t.runEvalCommand??await loadRunEvalCommand())(r,i,e,n.root)}),a}async function runCli(e=process.argv.slice(2),t=console,n={}){let r={root:resolveApplicationRoot(),async resolve(){let e=await(n.resolveApplicationProject??resolveCliApplicationProject)(r.root);r.project=e,r.root=e.appRoot},async resolveAgent(){return resolveEveProjectContext(r.root)}},i=createEveCliTelemetry(resolveInstalledPackageInfo().version),a=createCliProgram(t,n,r,i),o=e;if(o.length===0){let e=await(n.findApplicationRoot??findCliApplicationRoot)(r.root);e===void 0?o=(await findEveProjectContext(r.root))?.kind===`workspace`?[`dev`]:[`init`]:(r.root=e,o=[`dev`])}let s=canonicalCommand(o);i.trackCommand(s),s!==`telemetry`&&await i.notify(t);try{await a.parseAsync(o,{from:`user`}),i.trackOutcome(`success`)}catch(e){if(e instanceof CommanderError&&e.exitCode===0){i.trackOutcome(`success`);return}if(i.trackOutcome(e instanceof CommanderError?`usage_error`:`error`),e instanceof CommanderError){let r=await(n.isCodingAgentLaunch??isCodingAgentLaunch)();if(o[0]===`init`&&r){let{initAgentInstructions:e}=await import(`#cli/commands/agent-instructions.js`);t.log(e())}throw Error(e.message)}throw e}finally{await i.flush()}}export{createCliProgram,resolveDevUiMode,resolveTuiDisplayOptions,runCli};
@@ -1,3 +1,3 @@
1
- import{randomUUID}from"node:crypto";import{spawn}from"node:child_process";import{markEveTelemetryNotified,readEveTelemetryPreference,readOrCreateEveTelemetryIdentity}from"#cli/telemetry/preference.js";import os from"node:os";import{createEveTelemetryIdentity,isEphemeralEveTelemetryEnvironment,resolveEveTelemetryProjectId}from"#cli/telemetry/identity.js";async function isEnabled(){return process.env.NODE_ENV!==`test`&&!process.env.EVE_TELEMETRY_DISABLED&&(await readEveTelemetryPreference()).enabled}function event(e,t){return{id:randomUUID(),event_time:Date.now(),key:e,value:t}}function setupFailureCode(e){switch(e){case`resolve_target`:return`target_resolution`;case`scaffold`:return`scaffolding`;case`install_dependencies`:case`registry_install`:return`dependency_installation`;case`initialize_git`:return`git_initialization`;case`handoff`:return`handoff`;case`connection_ready`:case`first_response`:case`model_provider`:case`model_settings`:case`registry_channels`:case`registry_integrations`:case`registry_review`:return`onboarding`}}const CLI_TELEMETRY_COMMANDS=new Map([[`acp`,`acp`],[`add`,`add`],[`build`,`build`],[`channels`,`channels`],[`channels:list`,`channels:list`],[`deploy`,`deploy`],[`dev`,`dev`],[`eval`,`eval`],[`extension`,`extension`],[`extension:build`,`extension:build`],[`extension:init`,`extension:init`],[`info`,`info`],[`init`,`init`],[`integration`,`integration`],[`integration:connect`,`integration:connect`],[`integration:setup`,`integration:setup`],[`invoke`,`invoke`],[`link`,`link`],[`logs`,`logs:show`],[`logs:ls`,`logs:ls`],[`logs:show`,`logs:show`],[`registry`,`registry`],[`registry:add`,`registry:add`],[`registry:list`,`registry:list`],[`registry:search`,`registry:search`],[`registry:view`,`registry:view`],[`set`,`set`],[`start`,`start`],[`telemetry`,`telemetry`],[`telemetry:disable`,`telemetry:disable`],[`telemetry:enable`,`telemetry:enable`],[`telemetry:status`,`telemetry:status`],[`traces`,`traces:show`],[`traces:ls`,`traces:ls`]]),cliTelemetryCommandPaths=new Set(CLI_TELEMETRY_COMMANDS.keys()),internalCliCommandPaths=new Set([`telemetry:flush`]);function canonicalCommand(e){let t=e[0];if(t===`--help`||t===`-h`)return`help`;if(t===`--version`||t===`-V`)return`version`;let n=e.findIndex(e=>!e.startsWith(`-`)),r=e[n];if(r===void 0||/^https?:\/\//.test(r))return`dev`;let i=e.slice(n+1).find(e=>!e.startsWith(`-`));if(i!==void 0){let e=CLI_TELEMETRY_COMMANDS.get(`${r}:${i}`);if(e!==void 0)return e}return CLI_TELEMETRY_COMMANDS.get(r)??`unknown`}function createEveCliTelemetry(e){let t=[event(`version`,e),event(`platform`,os.platform()),event(`arch`,os.arch()),event(`stdin_is_tty`,process.stdin.isTTY?`true`:`false`)],n=randomUUID(),r=[],i,a=!1;return{trackCommand(e){t.push(event(`command`,e))},trackDevContext(e){t.push(event(`target`,e.target),event(`ui`,e.ui))},trackSetupStep(e){i={flow:e.flow,step:e.step},r.push(event(`setup_flow`,e.flow),event(`setup_step`,e.step)),e.registrySelectedCount!==void 0&&r.push(event(`registry_selected_count`,String(e.registrySelectedCount)))},trackSetupTerminal(e){a=!0,r.push(event(`setup_flow`,e.flow),event(`setup_terminal_step`,e.step),event(`setup_terminal_result`,e.result)),e.result===`error`&&r.push(event(`setup_failure_code`,e.failureCode??setupFailureCode(e.step)))},trackOutcome(e){i!==void 0&&!a&&this.trackSetupTerminal({...i,result:e===`success`?`completed`:`error`}),t.push(event(`outcome`,e))},async notify(e){let t=await readEveTelemetryPreference();if(process.env.NODE_ENV!==`test`&&!process.env.EVE_TELEMETRY_DISABLED&&t.enabled&&!t.notified&&process.stderr.isTTY){e.error(`Attention: eve collects CLI telemetry to improve the command-line interface.
1
+ import{randomUUID}from"node:crypto";import{spawn}from"node:child_process";import{markEveTelemetryNotified,readEveTelemetryPreference,readOrCreateEveTelemetryIdentity}from"#cli/telemetry/preference.js";import os from"node:os";import{createEveTelemetryIdentity,isEphemeralEveTelemetryEnvironment,resolveEveTelemetryProjectId}from"#cli/telemetry/identity.js";async function isEnabled(){return process.env.NODE_ENV!==`test`&&!process.env.EVE_TELEMETRY_DISABLED&&(await readEveTelemetryPreference()).enabled}function event(e,t){return{id:randomUUID(),event_time:Date.now(),key:e,value:t}}function setupFailureCode(e){switch(e){case`resolve_target`:return`target_resolution`;case`scaffold`:return`scaffolding`;case`install_dependencies`:case`registry_install`:return`dependency_installation`;case`initialize_git`:return`git_initialization`;case`handoff`:return`handoff`;case`connection_ready`:case`first_response`:case`model_provider`:case`model_settings`:case`registry_channels`:case`registry_integrations`:case`registry_review`:return`onboarding`}}const CLI_TELEMETRY_COMMANDS=new Map([[`acp`,`acp`],[`add`,`add`],[`build`,`build`],[`deploy`,`deploy`],[`dev`,`dev`],[`eval`,`eval`],[`extension`,`extension`],[`extension:build`,`extension:build`],[`extension:init`,`extension:init`],[`info`,`info`],[`init`,`init`],[`integration`,`integration`],[`integration:connect`,`integration:connect`],[`integration:setup`,`integration:setup`],[`remote`,`remote`],[`remote:connect`,`remote:connect`],[`remote:info`,`remote:info`],[`remote:invoke`,`remote:invoke`],[`link`,`link`],[`logs`,`logs:show`],[`logs:list`,`logs:list`],[`logs:show`,`logs:show`],[`registry`,`registry`],[`registry:add`,`registry:add`],[`registry:list`,`registry:list`],[`registry:search`,`registry:search`],[`registry:view`,`registry:view`],[`set`,`set`],[`set:model`,`set:model`],[`start`,`start`],[`telemetry`,`telemetry`],[`telemetry:disable`,`telemetry:disable`],[`telemetry:enable`,`telemetry:enable`],[`telemetry:status`,`telemetry:status`],[`traces`,`traces`],[`traces:list`,`traces:list`],[`traces:show`,`traces:show`]]),cliTelemetryCommandPaths=new Set(CLI_TELEMETRY_COMMANDS.keys()),internalCliCommandPaths=new Set([`telemetry:flush`]);function canonicalCommand(e){let t=e[0];if(t===`--help`||t===`-h`)return`help`;if(t===`--version`||t===`-V`)return`version`;let n=e.findIndex(e=>!e.startsWith(`-`)),r=e[n];if(r===void 0||/^https?:\/\//.test(r))return`dev`;let i=e.slice(n+1).find(e=>!e.startsWith(`-`));if(i!==void 0){let e=i===`ls`?`list`:i,t=CLI_TELEMETRY_COMMANDS.get(`${r}:${e}`);if(t!==void 0)return t}return r===`logs`||r===`traces`?`${r}:show`:CLI_TELEMETRY_COMMANDS.get(r)??`unknown`}function createEveCliTelemetry(e){let t=[event(`version`,e),event(`platform`,os.platform()),event(`arch`,os.arch()),event(`stdin_is_tty`,process.stdin.isTTY?`true`:`false`)],n=randomUUID(),r=[],i,a=!1;return{trackCommand(e){t.push(event(`command`,e))},trackDevContext(e){t.push(event(`target`,e.target),event(`ui`,e.ui))},trackSetupStep(e){i={flow:e.flow,step:e.step},r.push(event(`setup_flow`,e.flow),event(`setup_step`,e.step)),e.registrySelectedCount!==void 0&&r.push(event(`registry_selected_count`,String(e.registrySelectedCount)))},trackSetupTerminal(e){a=!0,r.push(event(`setup_flow`,e.flow),event(`setup_terminal_step`,e.step),event(`setup_terminal_result`,e.result)),e.result===`error`&&r.push(event(`setup_failure_code`,e.failureCode??setupFailureCode(e.step)))},trackOutcome(e){i!==void 0&&!a&&this.trackSetupTerminal({...i,result:e===`success`?`completed`:`error`}),t.push(event(`outcome`,e))},async notify(e){let t=await readEveTelemetryPreference();if(process.env.NODE_ENV!==`test`&&!process.env.EVE_TELEMETRY_DISABLED&&t.enabled&&!t.notified&&process.stderr.isTTY){e.error(`Attention: eve collects CLI telemetry to improve the command-line interface.
2
2
  Disable it with \`eve telemetry disable\`, or for one command set EVE_TELEMETRY_DISABLED=1.
3
3
  Learn more: https://eve.dev/docs/reference/telemetry`);try{await markEveTelemetryNotified()}catch{}}},async flush(){if(await isEnabled()&&t.length!==0){try{let e=isEphemeralEveTelemetryEnvironment(),n=e?createEveTelemetryIdentity():await readOrCreateEveTelemetryIdentity();t.push(event(`identity_kind`,e?`ephemeral`:`persistent`),event(`installation_id`,n.installationId),event(`project_id`,await resolveEveTelemetryProjectId({identity:n}))),t.push(...r)}catch{return}if(process.env.EVE_TELEMETRY_DEBUG){process.stderr.write(`[eve telemetry] ${JSON.stringify(t)}\n`);return}try{let e=spawn(process.execPath,[process.argv[1]??``,`telemetry`,`flush`,JSON.stringify({events:t,sessionId:n})],{detached:!0,env:{...process.env,EVE_TELEMETRY_DISABLED:`1`},stdio:`ignore`,windowsHide:!0});e.on(`error`,()=>{}),e.unref()}catch{}}}}}export{canonicalCommand,cliTelemetryCommandPaths,createEveCliTelemetry,internalCliCommandPaths};
@@ -1 +1 @@
1
- import{createAuthorizationCompletedPart,createAuthorizationRequiredPart}from"#client/authorization-message-parts.js";import{approvedApproval,createToolMetadata,mergeToolMetadata,normalizeActionRequest,normalizeActionResult,stringifyUnknown,toMessageInputRequest}from"#client/message-action-parts.js";import{optimisticUserMessageId,partKey,projectReceivedParts,removeStreamingToolPartsForTurn,upsertMessage}from"#client/message-reducer-primitives.js";import{messageRun}from"#client/message-run-parts.js";function receivedMessageEventId(e){return e.meta.id??`${e.data.turnId}:${e.data.sequence}`}function defaultMessageReducer(){return{initial(){return{messages:[]}},reduce(e,t){return reduceMessageData(e,t)}}}function reduceMessageData(e,t){switch(t.type){case`client.message.submitted`:return upsertMessage(e,{id:optimisticUserMessageId(t.data.submissionId),metadata:{optimistic:!0,status:`submitted`},parts:[{type:`text`,text:t.data.message}],role:`user`});case`client.message.failed`:return upsertMessage(e,{id:optimisticUserMessageId(t.data.submissionId),metadata:{optimistic:!0,status:`failed`},parts:[{type:`text`,text:t.data.message}],role:`user`});case`client.input.responded`:{let n=e;for(let e of t.data.responses)n=respondToInputRequest(n,e);return n}case`input.resolved`:{let n=e;for(let e of t.data.resolutions)n=resolveInputRequest(n,e);return n}case`message.received`:return t.data.kind===`execution.background_task`?e:upsertMessage(e,{id:`${receivedMessageEventId(t)}:user`,metadata:{status:`complete`,turnId:t.data.turnId},parts:projectReceivedParts(t.data.parts,t.data.message),role:`user`});case`step.started`:return updateAssistantMessage(e,t.data.turnId,e=>ensureStepStartPart(e,t.data.stepIndex));case`reasoning.appended`:return updateAssistantMessage(e,t.data.turnId,e=>messageRun.append(ensureStepStartPart(e,t.data.stepIndex),{delta:t.data.reasoningDelta,stepIndex:t.data.stepIndex,type:`reasoning`}));case`reasoning.completed`:return updateAssistantMessage(e,t.data.turnId,e=>messageRun.upsert(ensureStepStartPart(e,t.data.stepIndex),{state:`done`,stepIndex:t.data.stepIndex,text:t.data.reasoning,type:`reasoning`}));case`action.input.appended`:{let n=findToolPart(e,t.data.callId);if(n!==void 0&&n.state!==`input-streaming`)return e;let r={input:void 0,inputText:(n?.state===`input-streaming`?n.inputText:``)+t.data.inputTextDelta,state:`input-streaming`,stepIndex:t.data.stepIndex,toolCallId:t.data.callId,toolMetadata:n?.toolMetadata??{eve:{kind:`unknown`,name:t.data.toolName}},toolName:t.data.toolName,type:`dynamic-tool`};return n===void 0?updateAssistantMessage(e,t.data.turnId,e=>upsertPart(ensureStepStartPart(e,t.data.stepIndex),r)):updateToolPart(e,t.data.callId,r)}case`actions.requested`:{let n=e;for(let e of t.data.actions){let r=normalizeActionRequest(e);n=updateAssistantMessage(n,t.data.turnId,n=>upsertPart(ensureStepStartPart(n,t.data.stepIndex),{input:`input`in e?e.input:void 0,state:`input-available`,stepIndex:t.data.stepIndex,toolCallId:e.callId,toolMetadata:createToolMetadata(r),toolName:r.toolName,type:`dynamic-tool`}))}return n}case`input.requested`:{let n=e;for(let e of t.data.requests){let r=normalizeActionRequest(e.action);n=updateAssistantMessage(n,t.data.turnId,n=>upsertPart(ensureStepStartPart(n,t.data.stepIndex),{approval:{id:e.requestId},input:e.action.input,state:`approval-requested`,stepIndex:t.data.stepIndex,toolCallId:e.action.callId,toolMetadata:createToolMetadata(r,{inputRequest:toMessageInputRequest(e)}),toolName:r.toolName,type:`dynamic-tool`}))}return n}case`approval.candidate`:return e;case`approval.settled`:{let n=findToolPartByApprovalId(e,t.data.requestId);return n===void 0?e:t.data.outcome===`approved`?updateToolPart(e,n.toolCallId,{approval:{approved:!0,id:t.data.requestId,reason:void 0},input:n.input,state:`approval-responded`,stepIndex:n.stepIndex,toolCallId:n.toolCallId,toolMetadata:n.toolMetadata,toolName:n.toolName,type:`dynamic-tool`}):updateToolPart(e,n.toolCallId,{approval:{approved:!1,id:t.data.requestId,reason:`Tool execution was cancelled.`},input:n.input,state:`output-denied`,stepIndex:n.stepIndex,toolCallId:n.toolCallId,toolMetadata:n.toolMetadata,toolName:n.toolName,type:`dynamic-tool`})}case`action.result`:{let n=normalizeActionResult(t.data.result),r=findToolPart(e,t.data.result.callId),i=t.data.error?.code===`TOOL_EXECUTION_DENIED`,a=t.data.status===`failed`&&!i,o=r?.approval?.id??t.data.result.callId,s=mergeToolMetadata(r?.toolMetadata,createToolMetadata(n)),c={input:r?.input,stepIndex:t.data.stepIndex,toolCallId:t.data.result.callId,toolMetadata:s,toolName:r?.toolName??n.toolName,type:`dynamic-tool`},l;return l=i?{...c,approval:{approved:!1,id:o,reason:t.data.error?.message},state:`output-denied`}:a?{...c,approval:approvedApproval(r),errorText:t.data.error?.message??stringifyUnknown(t.data.result.output),state:`output-error`}:{...c,approval:approvedApproval(r),output:t.data.result.output,state:`output-available`},r===void 0?updateAssistantMessage(e,t.data.turnId,e=>upsertPart(ensureStepStartPart(e,t.data.stepIndex),l)):updateToolPart(e,t.data.result.callId,l)}case`action.partial`:{let n=findToolPart(e,t.data.result.callId);if(n!==void 0&&isSettledToolPart(n))return e;let r=normalizeActionResult(t.data.result),i={approval:approvedApproval(n),input:n?.input,output:t.data.result.output,partial:!0,state:`output-available`,stepIndex:t.data.stepIndex,toolCallId:t.data.result.callId,toolMetadata:mergeToolMetadata(n?.toolMetadata,createToolMetadata(r)),toolName:n?.toolName??r.toolName,type:`dynamic-tool`};return n===void 0?updateAssistantMessage(e,t.data.turnId,e=>upsertPart(ensureStepStartPart(e,t.data.stepIndex),i)):updateToolPart(e,t.data.result.callId,i)}case`authorization.required`:return updateAssistantMessage(e,t.data.turnId,e=>upsertPart(ensureStepStartPart(e,t.data.stepIndex),createAuthorizationRequiredPart(t)));case`authorization.completed`:return completeAuthorization(e,t);case`message.appended`:return updateAssistantMessage(e,t.data.turnId,e=>messageRun.append(ensureStepStartPart(e,t.data.stepIndex),{delta:t.data.messageDelta,stepIndex:t.data.stepIndex,type:`text`}));case`message.completed`:return updateAssistantMessage(e,t.data.turnId,e=>t.data.message===null?removeTextPart(e,t.data.stepIndex):messageRun.upsert(ensureStepStartPart(e,t.data.stepIndex),{state:`done`,stepIndex:t.data.stepIndex,text:t.data.message,type:`text`}));case`result.completed`:return updateAssistantMetadata(e,t.data.turnId,{result:t.data.result});case`turn.completed`:return updateAssistantMessage(e,t.data.turnId,e=>({...e,metadata:{...e.metadata,status:`complete`},parts:removeStreamingToolParts(e.parts)}));case`turn.cancelled`:return updateAssistantMessage(e,t.data.turnId,e=>({...e,metadata:{...e.metadata,status:`complete`},parts:removeStreamingToolParts(e.parts.map(e=>(e.type===`text`||e.type===`reasoning`)&&e.state===`streaming`?{...e,state:`done`}:e))}));case`turn.failed`:return removeStreamingToolPartsForTurn(e,t.data.turnId);case`session.failed`:return e;default:return e}}function removeStreamingToolParts(e){return e.filter(e=>e.type!==`dynamic-tool`||e.state!==`input-streaming`)}function respondToInputRequest(e,t){let n=findToolPartByApprovalId(e,t.requestId);if(!n)return e;let r={id:t.requestId};return t.text!==void 0&&(r.reason=t.text),updateToolPart(e,n.toolCallId,{approval:r,input:n.input,state:`approval-responded`,stepIndex:n.stepIndex,toolCallId:n.toolCallId,toolMetadata:mergeToolMetadata(n.toolMetadata,{eve:{inputResponse:t,kind:n.toolMetadata?.eve?.kind??`unknown`,name:n.toolMetadata?.eve?.name??n.toolName}}),toolName:n.toolName,type:`dynamic-tool`})}function resolveInputRequest(e,t){if(t.response!==void 0)return respondToInputRequest(e,t.response);let n=findToolPartByApprovalId(e,t.requestId);return n?updateToolPart(e,n.toolCallId,{input:n.input,output:{status:t.outcome},state:`output-available`,stepIndex:n.stepIndex,toolCallId:n.toolCallId,toolMetadata:n.toolMetadata,toolName:n.toolName,type:`dynamic-tool`}):e}function updateAssistantMessage(e,t,n){let r=e.messages.find(e=>e.role===`assistant`&&e.metadata?.turnId===t)??createAssistantMessage(t);return upsertMessage(e,n(r))}function updateAssistantMetadata(e,t,n){return updateAssistantMessage(e,t,e=>({...e,metadata:{...e.metadata,...n}}))}function createAssistantMessage(e){return{id:`${e}:assistant`,metadata:{status:`streaming`,turnId:e},parts:[],role:`assistant`}}function ensureStepStartPart(e,t){let n=e.parts.filter(e=>e.type===`step-start`).length;if(n>t)return e;let r=t-n+1;return{...e,parts:[...e.parts,...Array.from({length:r},()=>({type:`step-start`}))]}}function upsertPart(e,t){let n=e.parts.findIndex(e=>partKey(e)===partKey(t)),r=n===-1?[...e.parts,t]:[...e.parts.slice(0,n),t,...e.parts.slice(n+1)];return{...e,metadata:{...e.metadata,status:t.type===`text`&&t.state===`done`?`complete`:`streaming`},parts:r}}function removeTextPart(e,t){let n=e.parts.filter(e=>e.type!==`text`||e.stepIndex!==t);return n.length===e.parts.length?e:{...e,metadata:{...e.metadata,status:`complete`},parts:n}}function updateToolPart(e,t,n){let r=e.messages.find(e=>e.role===`assistant`&&e.parts.some(e=>e.type===`dynamic-tool`&&e.toolCallId===t));return r?upsertMessage(e,upsertPart(r,n)):e}function completeAuthorization(e,t){let n=findLatestPendingAuthorizationPart(e,t.data.name),r=createAuthorizationCompletedPart(t,n);return n===void 0?updateAssistantMessage(e,t.data.turnId,e=>upsertPart(ensureStepStartPart(e,t.data.stepIndex),r)):updateAuthorizationPart(e,n,r)}function updateAuthorizationPart(e,t,n){let r=e.messages.find(e=>e.role===`assistant`&&e.parts.some(e=>e===t));return r?upsertMessage(e,upsertPart(r,n)):e}function findToolPart(e,t){for(let n of e.messages)for(let e of n.parts)if(e.type===`dynamic-tool`&&e.toolCallId===t)return e}function isSettledToolPart(e){return e.state===`output-denied`||e.state===`output-error`||e.state===`output-available`&&e.partial!==!0}function findLatestPendingAuthorizationPart(e,t){for(let n=e.messages.length-1;n>=0;--n){let r=e.messages[n];if(r?.role===`assistant`)for(let e=r.parts.length-1;e>=0;--e){let n=r.parts[e];if(n?.type===`authorization`&&n.state===`required`&&n.name===t)return n}}}function findToolPartByApprovalId(e,t){for(let n of e.messages)for(let e of n.parts)if(e.type===`dynamic-tool`&&e.approval?.id===t)return e}export{defaultMessageReducer};
1
+ import{createAuthorizationCompletedPart,createAuthorizationRequiredPart}from"#client/authorization-message-parts.js";import{approvedApproval,createToolMetadata,mergeToolMetadata,normalizeActionRequest,normalizeActionResult,stringifyUnknown,toMessageInputRequest}from"#client/message-action-parts.js";import{optimisticUserMessageId,partKey,projectReceivedParts,removeStreamingToolPartsForTurn,upsertMessage}from"#client/message-reducer-primitives.js";import{messageRun}from"#client/message-run-parts.js";function receivedMessageEventId(e){return e.meta.id??`${e.data.turnId}:${e.data.sequence}`}function defaultMessageReducer(){return{initial(){return{messages:[]}},reduce(e,t){return reduceMessageData(e,t)}}}function reduceMessageData(e,t){switch(t.type){case`client.message.submitted`:return upsertMessage(e,{id:optimisticUserMessageId(t.data.submissionId),metadata:{optimistic:!0,status:`submitted`},parts:[{type:`text`,text:t.data.message}],role:`user`});case`client.message.failed`:return upsertMessage(e,{id:optimisticUserMessageId(t.data.submissionId),metadata:{optimistic:!0,status:`failed`},parts:[{type:`text`,text:t.data.message}],role:`user`});case`input.resolved`:{let n=e;for(let e of t.data.resolutions)n=resolveInputRequest(n,e);return n}case`message.received`:return t.data.kind===`execution.background_task`?e:upsertMessage(e,{id:`${receivedMessageEventId(t)}:user`,metadata:{status:`complete`,turnId:t.data.turnId},parts:projectReceivedParts(t.data.parts,t.data.message),role:`user`});case`step.started`:return updateAssistantMessage(e,t.data.turnId,e=>ensureStepStartPart(e,t.data.stepIndex));case`reasoning.appended`:return updateAssistantMessage(e,t.data.turnId,e=>messageRun.append(ensureStepStartPart(e,t.data.stepIndex),{delta:t.data.reasoningDelta,stepIndex:t.data.stepIndex,type:`reasoning`}));case`reasoning.completed`:return updateAssistantMessage(e,t.data.turnId,e=>messageRun.upsert(ensureStepStartPart(e,t.data.stepIndex),{state:`done`,stepIndex:t.data.stepIndex,text:t.data.reasoning,type:`reasoning`}));case`action.input.appended`:{let n=findToolPart(e,t.data.callId);if(n!==void 0&&n.state!==`input-streaming`)return e;let r={input:void 0,inputText:(n?.state===`input-streaming`?n.inputText:``)+t.data.inputTextDelta,state:`input-streaming`,stepIndex:t.data.stepIndex,toolCallId:t.data.callId,toolMetadata:n?.toolMetadata??{eve:{kind:`unknown`,name:t.data.toolName}},toolName:t.data.toolName,type:`dynamic-tool`};return n===void 0?updateAssistantMessage(e,t.data.turnId,e=>upsertPart(ensureStepStartPart(e,t.data.stepIndex),r)):updateToolPart(e,t.data.callId,r)}case`actions.requested`:{let n=e;for(let e of t.data.actions){let r=normalizeActionRequest(e);n=updateAssistantMessage(n,t.data.turnId,n=>upsertPart(ensureStepStartPart(n,t.data.stepIndex),{input:`input`in e?e.input:void 0,state:`input-available`,stepIndex:t.data.stepIndex,toolCallId:e.callId,toolMetadata:createToolMetadata(r),toolName:r.toolName,type:`dynamic-tool`}))}return n}case`input.requested`:{let n=e;for(let e of t.data.requests){let r=normalizeActionRequest(e.action);n=updateAssistantMessage(n,t.data.turnId,n=>upsertPart(ensureStepStartPart(n,t.data.stepIndex),{approval:{id:e.requestId},input:e.action.input,state:`approval-requested`,stepIndex:t.data.stepIndex,toolCallId:e.action.callId,toolMetadata:createToolMetadata(r,{inputRequest:toMessageInputRequest(e)}),toolName:r.toolName,type:`dynamic-tool`}))}return n}case`approval.candidate`:return e;case`approval.settled`:{let n=findToolPartByApprovalId(e,t.data.requestId);return n===void 0?e:t.data.outcome===`approved`?updateToolPart(e,n.toolCallId,{approval:{approved:!0,id:t.data.requestId,reason:void 0},input:n.input,state:`approval-responded`,stepIndex:n.stepIndex,toolCallId:n.toolCallId,toolMetadata:n.toolMetadata,toolName:n.toolName,type:`dynamic-tool`}):updateToolPart(e,n.toolCallId,{approval:{approved:!1,id:t.data.requestId,reason:`Tool execution was cancelled.`},input:n.input,state:`output-denied`,stepIndex:n.stepIndex,toolCallId:n.toolCallId,toolMetadata:n.toolMetadata,toolName:n.toolName,type:`dynamic-tool`})}case`action.result`:{let n=normalizeActionResult(t.data.result),r=findToolPart(e,t.data.result.callId),i=t.data.error?.code===`TOOL_EXECUTION_DENIED`,a=t.data.status===`failed`&&!i,o=r?.approval?.id??t.data.result.callId,s=mergeToolMetadata(r?.toolMetadata,createToolMetadata(n)),c={input:r?.input,stepIndex:t.data.stepIndex,toolCallId:t.data.result.callId,toolMetadata:s,toolName:r?.toolName??n.toolName,type:`dynamic-tool`},l;return l=i?{...c,approval:{approved:!1,id:o,reason:t.data.error?.message},state:`output-denied`}:a?{...c,approval:approvedApproval(r),errorText:t.data.error?.message??stringifyUnknown(t.data.result.output),state:`output-error`}:{...c,approval:approvedApproval(r),output:t.data.result.output,state:`output-available`},r===void 0?updateAssistantMessage(e,t.data.turnId,e=>upsertPart(ensureStepStartPart(e,t.data.stepIndex),l)):updateToolPart(e,t.data.result.callId,l)}case`action.partial`:{let n=findToolPart(e,t.data.result.callId);if(n!==void 0&&isSettledToolPart(n))return e;let r=normalizeActionResult(t.data.result),i={approval:approvedApproval(n),input:n?.input,output:t.data.result.output,partial:!0,state:`output-available`,stepIndex:t.data.stepIndex,toolCallId:t.data.result.callId,toolMetadata:mergeToolMetadata(n?.toolMetadata,createToolMetadata(r)),toolName:n?.toolName??r.toolName,type:`dynamic-tool`};return n===void 0?updateAssistantMessage(e,t.data.turnId,e=>upsertPart(ensureStepStartPart(e,t.data.stepIndex),i)):updateToolPart(e,t.data.result.callId,i)}case`authorization.required`:return updateAssistantMessage(e,t.data.turnId,e=>upsertPart(ensureStepStartPart(e,t.data.stepIndex),createAuthorizationRequiredPart(t)));case`authorization.completed`:return completeAuthorization(e,t);case`message.appended`:return updateAssistantMessage(e,t.data.turnId,e=>messageRun.append(ensureStepStartPart(e,t.data.stepIndex),{delta:t.data.messageDelta,stepIndex:t.data.stepIndex,type:`text`}));case`message.completed`:return updateAssistantMessage(e,t.data.turnId,e=>t.data.message===null?removeTextPart(e,t.data.stepIndex):messageRun.upsert(ensureStepStartPart(e,t.data.stepIndex),{state:`done`,stepIndex:t.data.stepIndex,text:t.data.message,type:`text`}));case`result.completed`:return updateAssistantMetadata(e,t.data.turnId,{result:t.data.result});case`turn.completed`:return updateAssistantMessage(e,t.data.turnId,e=>({...e,metadata:{...e.metadata,status:`complete`},parts:removeStreamingToolParts(e.parts)}));case`turn.cancelled`:return updateAssistantMessage(e,t.data.turnId,e=>({...e,metadata:{...e.metadata,status:`complete`},parts:removeStreamingToolParts(e.parts.map(e=>(e.type===`text`||e.type===`reasoning`)&&e.state===`streaming`?{...e,state:`done`}:e))}));case`turn.failed`:return removeStreamingToolPartsForTurn(e,t.data.turnId);case`session.failed`:return e;default:return e}}function removeStreamingToolParts(e){return e.filter(e=>e.type!==`dynamic-tool`||e.state!==`input-streaming`)}function respondToInputRequest(e,t){let n=findToolPartByApprovalId(e,t.requestId);if(!n)return e;let r={id:t.requestId};return t.text!==void 0&&(r.reason=t.text),updateToolPart(e,n.toolCallId,{approval:r,input:n.input,state:`approval-responded`,stepIndex:n.stepIndex,toolCallId:n.toolCallId,toolMetadata:mergeToolMetadata(n.toolMetadata,{eve:{inputResponse:t,kind:n.toolMetadata?.eve?.kind??`unknown`,name:n.toolMetadata?.eve?.name??n.toolName}}),toolName:n.toolName,type:`dynamic-tool`})}function resolveInputRequest(e,t){if(t.response!==void 0)return respondToInputRequest(e,t.response);let n=findToolPartByApprovalId(e,t.requestId);return n?updateToolPart(e,n.toolCallId,{input:n.input,output:{status:t.outcome},state:`output-available`,stepIndex:n.stepIndex,toolCallId:n.toolCallId,toolMetadata:n.toolMetadata,toolName:n.toolName,type:`dynamic-tool`}):e}function updateAssistantMessage(e,t,n){let r=e.messages.find(e=>e.role===`assistant`&&e.metadata?.turnId===t)??createAssistantMessage(t);return upsertMessage(e,n(r))}function updateAssistantMetadata(e,t,n){return updateAssistantMessage(e,t,e=>({...e,metadata:{...e.metadata,...n}}))}function createAssistantMessage(e){return{id:`${e}:assistant`,metadata:{status:`streaming`,turnId:e},parts:[],role:`assistant`}}function ensureStepStartPart(e,t){let n=e.parts.filter(e=>e.type===`step-start`).length;if(n>t)return e;let r=t-n+1;return{...e,parts:[...e.parts,...Array.from({length:r},()=>({type:`step-start`}))]}}function upsertPart(e,t){let n=e.parts.findIndex(e=>partKey(e)===partKey(t)),r=n===-1?[...e.parts,t]:[...e.parts.slice(0,n),t,...e.parts.slice(n+1)];return{...e,metadata:{...e.metadata,status:t.type===`text`&&t.state===`done`?`complete`:`streaming`},parts:r}}function removeTextPart(e,t){let n=e.parts.filter(e=>e.type!==`text`||e.stepIndex!==t);return n.length===e.parts.length?e:{...e,metadata:{...e.metadata,status:`complete`},parts:n}}function updateToolPart(e,t,n){let r=e.messages.find(e=>e.role===`assistant`&&e.parts.some(e=>e.type===`dynamic-tool`&&e.toolCallId===t));return r?upsertMessage(e,upsertPart(r,n)):e}function completeAuthorization(e,t){let n=findLatestPendingAuthorizationPart(e,t.data.name),r=createAuthorizationCompletedPart(t,n);return n===void 0?updateAssistantMessage(e,t.data.turnId,e=>upsertPart(ensureStepStartPart(e,t.data.stepIndex),r)):updateAuthorizationPart(e,n,r)}function updateAuthorizationPart(e,t,n){let r=e.messages.find(e=>e.role===`assistant`&&e.parts.some(e=>e===t));return r?upsertMessage(e,upsertPart(r,n)):e}function findToolPart(e,t){for(let n of e.messages)for(let e of n.parts)if(e.type===`dynamic-tool`&&e.toolCallId===t)return e}function isSettledToolPart(e){return e.state===`output-denied`||e.state===`output-error`||e.state===`output-available`&&e.partial!==!0}function findLatestPendingAuthorizationPart(e,t){for(let n=e.messages.length-1;n>=0;--n){let r=e.messages[n];if(r?.role===`assistant`)for(let e=r.parts.length-1;e>=0;--e){let n=r.parts[e];if(n?.type===`authorization`&&n.state===`required`&&n.name===t)return n}}}function findToolPartByApprovalId(e,t){for(let n of e.messages)for(let e of n.parts)if(e.type===`dynamic-tool`&&e.approval?.id===t)return e}export{defaultMessageReducer};
@@ -47,16 +47,16 @@
47
47
  "@vercel/otel": "2.1.3",
48
48
  "@vercel/sandbox": "3.3.0",
49
49
  "@vercel/sdk": "1.28.8",
50
- "@workflow/core": "5.0.0-beta.55",
51
- "@workflow/errors": "5.0.0-beta.22",
50
+ "@workflow/core": "5.0.0-beta.56",
51
+ "@workflow/errors": "5.0.0-beta.23",
52
52
  "@workflow/serde": "5.0.0-beta.2",
53
- "@workflow/world": "5.0.0-beta.37",
54
- "@workflow/world-local": "5.0.0-beta.46",
55
- "@workflow/world-vercel": "5.0.0-beta.50",
53
+ "@workflow/world": "5.0.0-beta.38",
54
+ "@workflow/world-local": "5.0.0-beta.47",
55
+ "@workflow/world-vercel": "5.0.0-beta.51",
56
56
  "zod": "4.5.4",
57
57
  "zod-validation-error": "5.0.0"
58
58
  },
59
- "scriptHash": "dbf0ea1c3daf06959bc96021fbad02b134f0aff11b72cbb3f6bfdc73e9fa42a1",
59
+ "scriptHash": "7e3ab76d59e8c04280eeabfdbd3bb4c256c023e57a5092af734b947546841a3a",
60
60
  "toolVersions": {
61
61
  "rolldown": "1.2.9",
62
62
  "typescript": "7.0.2"
@@ -160,6 +160,43 @@ export interface HookOptions {
160
160
  * ```
161
161
  */
162
162
  experimental_minRetention?: StringValue | Date | number;
163
+ /**
164
+ * **Experimental.** Take the token over if another run currently holds it.
165
+ *
166
+ * Without this, a `token` that another active run already registered makes
167
+ * the hook reject with `HookConflictError`. With it, this run always ends
168
+ * up owning the token: the other run's hook is disposed and its awaiters
169
+ * reject with `HookForceClaimedError`, that run is woken so it can react,
170
+ * and every `resumeHook(token)` from then on reaches this run — including
171
+ * one that was already in flight when the takeover happened. Payloads the
172
+ * previous owner received before the takeover stay with it.
173
+ *
174
+ * Any number of runs forcing the same token converge on one owner; each
175
+ * run that loses it gets `HookForceClaimedError`, and none can get stuck.
176
+ * A finished run holding the token under `experimental_minRetention` is
177
+ * taken over silently. A run can also take over a token held by its own
178
+ * earlier hook.
179
+ *
180
+ * A token is only taken from a run whose runtime understands being taken
181
+ * from (started at spec version 8 or later). For an older run the World
182
+ * declines and the hook rejects with the ordinary `HookConflictError`,
183
+ * as if this option had not been set.
184
+ *
185
+ * Requires an explicit `token` (a generated token can never conflict) and
186
+ * is not available on `createWebhook()`. `createHook()` throws if the
187
+ * configured World does not support this experimental option.
188
+ *
189
+ * @example
190
+ *
191
+ * ```ts
192
+ * // Whichever run for this channel starts most recently owns its hook.
193
+ * const hook = createHook<SlackMessage>({
194
+ * token: `slack_webhook:${channelId}`,
195
+ * experimental_force: true,
196
+ * });
197
+ * ```
198
+ */
199
+ experimental_force?: boolean;
163
200
  /**
164
201
  * Additional user-defined data to include with the hook payload.
165
202
  *
@@ -192,7 +229,7 @@ export interface HookOptions {
192
229
  */
193
230
  isWebhook?: boolean;
194
231
  }
195
- export interface WebhookOptions extends Omit<HookOptions, 'token' | 'isWebhook' | 'experimental_minRetention'> {
232
+ export interface WebhookOptions extends Omit<HookOptions, 'token' | 'isWebhook' | 'experimental_minRetention' | 'experimental_force'> {
196
233
  /**
197
234
  * If set to a `Response` object, the webhook will automatically
198
235
  * respond with the specified response.
@@ -35,6 +35,8 @@ export interface HookInvocationQueueItem {
35
35
  token: string;
36
36
  /** Earliest time the token can be reused after the run ends. */
37
37
  tokenRetentionUntil?: Date;
38
+ /** `createHook({ experimental_force })`: take the token over if held. */
39
+ force?: boolean;
38
40
  metadata?: Serializable;
39
41
  hasCreatedEvent?: boolean;
40
42
  /** Whether the workflow is awaiting `hook.getConflict()` for this hook */
@@ -1,2 +1,2 @@
1
- import"../../_chunks/workflow/dist-CNT2vjZ4.js";import{An as e,Kn as t,Vn as n}from"../../_chunks/workflow/logger-Bzc8jWWj.js";import{i as r,u as i}from"../../_chunks/workflow/dist-DtXwQbZr.js";import{G as a,W as o,b as s,ct as c,i as l,it as u,lt as d,nt as f,rt as p,st as m,tt as h,ut as g,w as _}from"../../_chunks/workflow/serialization-HCDeQWcR.js";import{a as v,i as y,r as b,t as x}from"../../_chunks/workflow/attribute-changes-89Nwz7XW.js";import{n as S}from"../../_chunks/workflow/resume-hook-BmJ263ZR.js";import{t as C}from"../../_chunks/workflow/sleep-Bi508qmg.js";function w(e){y(`createHook()`,`https://workflow-sdk.dev/docs/api-reference/workflow/create-hook`,w)}function T(e){y(`createWebhook()`,`https://workflow-sdk.dev/docs/api-reference/workflow/create-webhook`,T)}function E({schema:e}={}){function t(e){y(`defineHook().create()`,`https://workflow-sdk.dev/docs/api-reference/workflow/define-hook`,t)}return{create:t,async resume(t,n){if(!e?.[`~standard`])return await S(t,n);let r=e[`~standard`].validate(n);if(r instanceof Promise&&(r=await r),r.issues){let e=r.issues.map(e=>{let t=e.path?.map(e=>String(typeof e==`object`&&e?e.key:e)).join(`.`);return t?` at "${t}": ${e.message}`:` ${e.message}`});throw Error(`Hook payload did not match the defined schema:\n${e.join(`
2
- `)}`)}return await S(t,r.value)}}}async function D(e,n={}){let i=a.getStore(),o=i?.workflowMetadata?.workflowRunId;if(!o)throw new r(`setAttributes() must be called from a 'use workflow' or 'use step' function. Calling it from plain host code is not supported.`);let s={type:`step`,stepId:i.stepMetadata.stepId,attempt:i.stepMetadata.attempt},c=x(e,n,s);if(c.length!==0){if(i.runReadyBarrier)try{await i.runReadyBarrier}catch{}await(await t()).events.create(o,{eventType:`attr_set`,specVersion:7,eventData:{changes:c,writer:s,...n.allowReservedAttributes===!0?{allowReservedAttributes:!0}:{}}})}}function O(){let e=a.getStore();return e||b(`getStepMetadata()`,`https://workflow-sdk.dev/docs/api-reference/workflow/get-step-metadata`,O),e.stepMetadata}function k(){let e=a.getStore();return e||v(`getWorkflowMetadata()`,`https://workflow-sdk.dev/docs/api-reference/workflow/get-workflow-metadata`,k),e.workflowMetadata}function A(t={}){let r=a.getStore();r||v(`getWritable()`,`https://workflow-sdk.dev/docs/api-reference/workflow/get-writable`,A);let{namespace:i}=t,y=r.workflowMetadata.workflowRunId,b=o(y,i);r.writables??=new Map;let x=r.writables,S=x.get(b);if(S)return S.writable;let C=h();C.deferReleaseSettlement=r.streamStates!==void 0;let w=_(s(globalThis,r.ops,y,r.encryptionKey,!0,r.runReadyBarrier),r.encryptionKey),T=new l(y,b,r.runReadyBarrier);r.streamStates??=[],r.streamStates.push(C),r.ops.push(C.promise),f(w.readable,T,C).catch(()=>{});let E=u(w.writable,C);return p(E,C),Object.defineProperty(E,m,{value:b,writable:!1}),Object.defineProperty(E,g,{value:y,writable:!1}),r.workflowDeploymentId&&Object.defineProperty(E,c,{value:r.workflowDeploymentId,writable:!1}),e(r.encryptionKey)&&Object.defineProperty(E,d,{value:n(r.encryptionKey.keyPair.publicKey),writable:!1}),x.set(b,{writable:E,state:C}),E}export{r as FatalError,i as RetryableError,w as createHook,T as createWebhook,E as defineHook,O as getStepMetadata,k as getWorkflowMetadata,A as getWritable,D as setAttributes,C as sleep};
1
+ import"../../_chunks/workflow/dist-BQSf8Hax.js";import{An as e,Kn as t,Vn as n}from"../../_chunks/workflow/logger-BCEj9caG.js";import{d as r,i}from"../../_chunks/workflow/dist-BfMqXLK3.js";import{G as a,W as o,b as s,ct as c,i as l,it as u,lt as d,nt as f,rt as p,st as m,tt as h,ut as g,w as _}from"../../_chunks/workflow/serialization-CJ265vSe.js";import{a as v,i as y,r as b,t as x}from"../../_chunks/workflow/attribute-changes-DzJovO_f.js";import{n as S}from"../../_chunks/workflow/resume-hook-QS_cMwHn.js";import{t as C}from"../../_chunks/workflow/sleep-CBn94Ayv.js";function w(e){y(`createHook()`,`https://workflow-sdk.dev/docs/api-reference/workflow/create-hook`,w)}function T(e){y(`createWebhook()`,`https://workflow-sdk.dev/docs/api-reference/workflow/create-webhook`,T)}function E({schema:e}={}){function t(e){y(`defineHook().create()`,`https://workflow-sdk.dev/docs/api-reference/workflow/define-hook`,t)}return{create:t,async resume(t,n){if(!e?.[`~standard`])return await S(t,n);let r=e[`~standard`].validate(n);if(r instanceof Promise&&(r=await r),r.issues){let e=r.issues.map(e=>{let t=e.path?.map(e=>String(typeof e==`object`&&e?e.key:e)).join(`.`);return t?` at "${t}": ${e.message}`:` ${e.message}`});throw Error(`Hook payload did not match the defined schema:\n${e.join(`
2
+ `)}`)}return await S(t,r.value)}}}async function D(e,n={}){let r=a.getStore(),o=r?.workflowMetadata?.workflowRunId;if(!o)throw new i(`setAttributes() must be called from a 'use workflow' or 'use step' function. Calling it from plain host code is not supported.`);let s={type:`step`,stepId:r.stepMetadata.stepId,attempt:r.stepMetadata.attempt},c=x(e,n,s);if(c.length!==0){if(r.runReadyBarrier)try{await r.runReadyBarrier}catch{}await(await t()).events.create(o,{eventType:`attr_set`,specVersion:8,eventData:{changes:c,writer:s,...n.allowReservedAttributes===!0?{allowReservedAttributes:!0}:{}}})}}function O(){let e=a.getStore();return e||b(`getStepMetadata()`,`https://workflow-sdk.dev/docs/api-reference/workflow/get-step-metadata`,O),e.stepMetadata}function k(){let e=a.getStore();return e||v(`getWorkflowMetadata()`,`https://workflow-sdk.dev/docs/api-reference/workflow/get-workflow-metadata`,k),e.workflowMetadata}function A(t={}){let r=a.getStore();r||v(`getWritable()`,`https://workflow-sdk.dev/docs/api-reference/workflow/get-writable`,A);let{namespace:i}=t,y=r.workflowMetadata.workflowRunId,b=o(y,i);r.writables??=new Map;let x=r.writables,S=x.get(b);if(S)return S.writable;let C=h();C.deferReleaseSettlement=r.streamStates!==void 0;let w=_(s(globalThis,r.ops,y,r.encryptionKey,!0,r.runReadyBarrier),r.encryptionKey),T=new l(y,b,r.runReadyBarrier);r.streamStates??=[],r.streamStates.push(C),r.ops.push(C.promise),f(w.readable,T,C).catch(()=>{});let E=u(w.writable,C);return p(E,C),Object.defineProperty(E,m,{value:b,writable:!1}),Object.defineProperty(E,g,{value:y,writable:!1}),r.workflowDeploymentId&&Object.defineProperty(E,c,{value:r.workflowDeploymentId,writable:!1}),e(r.encryptionKey)&&Object.defineProperty(E,d,{value:n(r.encryptionKey.keyPair.publicKey),writable:!1}),x.set(b,{writable:E,state:C}),E}export{i as FatalError,r as RetryableError,w as createHook,T as createWebhook,E as defineHook,O as getStepMetadata,k as getWorkflowMetadata,A as getWritable,D as setAttributes,C as sleep};
@@ -1 +1 @@
1
- import{k as e}from"../../_chunks/workflow/dist-DtXwQbZr.js";import{i as t,n}from"../../_chunks/workflow/global-DIlFoH2w.js";const r=Symbol.for(`@workflow/core//registeredSteps`),i=globalThis,a=i[r]??=new Map,o=new Set([`__builtin_response_array_buffer`,`__builtin_response_json`,`__builtin_response_text`]);function s(e){let t=e.split(`//`);if(t.length!==3||t[0]!==`step`)return[];let n=t[1],r=t[2],i=new Set,a=e=>{e!==n&&i.add(e)};if(n.startsWith(`./workflows/`)){let e=n.slice(2);a(`./example/${e}`),a(`./src/${e}`)}else if(n.startsWith(`./example/workflows/`)){let e=n.slice(10);a(`./${e}`),a(`./src/${e}`)}else if(n.startsWith(`./src/workflows/`)){let e=n.slice(6);a(`./${e}`),a(`./example/${e}`)}return Array.from(i,e=>`step//${e}//${r}`)}function c(e){if(o.has(e)){for(let[t,n]of a.entries())if(t.endsWith(`//${e}`))return n}}function l(e,t){a.set(e,t),t.stepId=e}function u(e){let t=a.get(e);if(t)return t;for(let t of s(e)){let e=a.get(t);if(e)return e}let n=c(e);if(n)return n}const d={hook:[`hook`,`wait`,`step`],wait:[`hook`,`step`],step:[`wait`,`hook`,`step`]};function f(e,t,n,r){return n>=t||!d[e].includes(r.kind)?!1:!(e===`step`&&!r.armed)}function p(e,t,n,r){let i=r.get(t);if(i!==void 0)return i;let a=m(e,t,n,r);return r.set(t,a),a}function m(e,t,n,r){if(!n.armed)return!1;for(let[i,a]of e)if(f(n.kind,t,i,a)&&!p(e,i,a,r))return!1;return!0}function h(){return process.env.WORKFLOW_LOG_ORDER_DRAWS!==`0`}function g(e){return e===0&&typeof setImmediate==`function`?new Promise(e=>setImmediate(e)):new Promise(t=>setTimeout(t,e))}async function _(e,t){for(;;){let n=e.mintCount??0,r=e.pendingDeliveries;if(await g(await e.promiseQueue.then(()=>!1,()=>!0)?50:0),(e.mintCount??0)!==n||r!==0||e.pendingDeliveries!==0)continue;let i=!1;for(let[n,r]of e.pendingDeliveryBarriers??[])if(n<t&&r.armed){i=!0;break}if(!i)return}}async function v(e,t,n){if(t===void 0||!e.pendingDeliveryBarriers)return;let r=e.pendingDeliveryBarriers,i=[];for(let[e,a]of r)f(n,t,e,a)&&i.push(a.released);if(i.length>0&&await Promise.all(i),h()){await _(e,t);return}i.length>0&&await new Promise(e=>setTimeout(e,0))}function y(n,r,i,a){let o=!1,s=()=>!o&&(o=!0,n.advanceClock?.(a.deliveredAt),!0),c=n.pendingDeliveryBarriers;if(!c||r===void 0)return{markDelivered:()=>{s()},arm:()=>{}};let l=a=>{if(c.has(r))throw new e(`Delivery barrier already registered at event index ${r}`);let{promise:o,resolve:s}=t(),l={kind:i,released:o,armed:a,retired:!1,retire:()=>{l.retired||(l.retired=!0,c.get(r)===l&&c.delete(r),s())}};return c.set(r,l),x(n),l},u=l(a.armed??!0);return{markDelivered:()=>{s()&&u.retire()},arm:()=>{if(!o){if(u.retired){u=l(!0);return}if(c.get(r)!==u)throw new e(`Delivery barrier lost ownership of event index ${r}`);u.armed=!0}}}}const b=new WeakSet;function x(e){let t=e.pendingDeliveryBarriers;if(!t||b.has(e))return;b.add(e);let n=()=>{setTimeout(i,0)},r=()=>{setTimeout(i,50)},i=()=>{if(t.size===0){b.delete(e);return}if(!S(e)){e.promiseQueue.then(n,r);return}for(;t.size>0&&S(e);){let e,n;for(let[r,i]of t)(e===void 0||r<e)&&(e=r,n=i);n?.retire()}setTimeout(i,0)};setTimeout(i,0)}function S(e){return e.pendingDeliveries===0&&!C(e)}function C(e){let t=e.pendingDeliveryBarriers;if(!t||t.size===0)return!1;let n=new Map;for(let[e,r]of t)if(p(t,e,r,n))return!0;return!1}function w(e){return e.pendingDeliveries===0&&(!e.pendingDeliveryBarriers||e.pendingDeliveryBarriers.size===0)}function T(e,t){let n=()=>{w(e)?t():e.promiseQueue.then(()=>{setTimeout(n,0)})};setTimeout(n,0)}function E(e){let t=e.suspensionGeneration;T(e,()=>{t===e.suspensionGeneration&&e.onWorkflowError(new n(e.invocationsQueue,e.globalThis))})}export{v as awaitEarlierDeliveries,u as getStepFunction,C as hasParkedCommittedDelivery,w as isDeliveryIdle,y as registerDeliveryBarrier,l as registerStepFunction,T as scheduleWhenIdle,E as scheduleWorkflowSuspension};
1
+ import{A as e}from"../../_chunks/workflow/dist-BfMqXLK3.js";import{i as t,n}from"../../_chunks/workflow/global-BQnKzRXo.js";const r=Symbol.for(`@workflow/core//registeredSteps`),i=globalThis,a=i[r]??=new Map,o=new Set([`__builtin_response_array_buffer`,`__builtin_response_json`,`__builtin_response_text`]);function s(e){let t=e.split(`//`);if(t.length!==3||t[0]!==`step`)return[];let n=t[1],r=t[2],i=new Set,a=e=>{e!==n&&i.add(e)};if(n.startsWith(`./workflows/`)){let e=n.slice(2);a(`./example/${e}`),a(`./src/${e}`)}else if(n.startsWith(`./example/workflows/`)){let e=n.slice(10);a(`./${e}`),a(`./src/${e}`)}else if(n.startsWith(`./src/workflows/`)){let e=n.slice(6);a(`./${e}`),a(`./example/${e}`)}return Array.from(i,e=>`step//${e}//${r}`)}function c(e){if(o.has(e)){for(let[t,n]of a.entries())if(t.endsWith(`//${e}`))return n}}function l(e,t){a.set(e,t),t.stepId=e}function u(e){let t=a.get(e);if(t)return t;for(let t of s(e)){let e=a.get(t);if(e)return e}let n=c(e);if(n)return n}const d={hook:[`hook`,`wait`,`step`],wait:[`hook`,`step`],step:[`wait`,`hook`,`step`]};function f(e,t,n,r){return n>=t||!d[e].includes(r.kind)?!1:!(e===`step`&&!r.armed)}function p(e,t,n,r){let i=r.get(t);if(i!==void 0)return i;let a=m(e,t,n,r);return r.set(t,a),a}function m(e,t,n,r){if(!n.armed)return!1;for(let[i,a]of e)if(f(n.kind,t,i,a)&&!p(e,i,a,r))return!1;return!0}function h(){return process.env.WORKFLOW_LOG_ORDER_DRAWS!==`0`}function g(e){return e===0&&typeof setImmediate==`function`?new Promise(e=>setImmediate(e)):new Promise(t=>setTimeout(t,e))}async function _(e,t){for(;;){let n=e.mintCount??0,r=e.pendingDeliveries;if(await g(await e.promiseQueue.then(()=>!1,()=>!0)?50:0),(e.mintCount??0)!==n||r!==0||e.pendingDeliveries!==0)continue;let i=!1;for(let[n,r]of e.pendingDeliveryBarriers??[])if(n<t&&r.armed){i=!0;break}if(!i)return}}async function v(e,t,n){if(t===void 0||!e.pendingDeliveryBarriers)return;let r=e.pendingDeliveryBarriers,i=[];for(let[e,a]of r)f(n,t,e,a)&&i.push(a.released);if(i.length>0&&await Promise.all(i),h()){await _(e,t);return}i.length>0&&await new Promise(e=>setTimeout(e,0))}function y(n,r,i,a){let o=!1,s=()=>!o&&(o=!0,n.advanceClock?.(a.deliveredAt),!0),c=n.pendingDeliveryBarriers;if(!c||r===void 0)return{markDelivered:()=>{s()},arm:()=>{}};let l=a=>{if(c.has(r))throw new e(`Delivery barrier already registered at event index ${r}`);let{promise:o,resolve:s}=t(),l={kind:i,released:o,armed:a,retired:!1,retire:()=>{l.retired||(l.retired=!0,c.get(r)===l&&c.delete(r),s())}};return c.set(r,l),x(n),l},u=l(a.armed??!0);return{markDelivered:()=>{s()&&u.retire()},arm:()=>{if(!o){if(u.retired){u=l(!0);return}if(c.get(r)!==u)throw new e(`Delivery barrier lost ownership of event index ${r}`);u.armed=!0}}}}const b=new WeakSet;function x(e){let t=e.pendingDeliveryBarriers;if(!t||b.has(e))return;b.add(e);let n=()=>{setTimeout(i,0)},r=()=>{setTimeout(i,50)},i=()=>{if(t.size===0){b.delete(e);return}if(!S(e)){e.promiseQueue.then(n,r);return}for(;t.size>0&&S(e);){let e,n;for(let[r,i]of t)(e===void 0||r<e)&&(e=r,n=i);n?.retire()}setTimeout(i,0)};setTimeout(i,0)}function S(e){return e.pendingDeliveries===0&&!C(e)}function C(e){let t=e.pendingDeliveryBarriers;if(!t||t.size===0)return!1;let n=new Map;for(let[e,r]of t)if(p(t,e,r,n))return!0;return!1}function w(e){return e.pendingDeliveries===0&&(!e.pendingDeliveryBarriers||e.pendingDeliveryBarriers.size===0)}function T(e,t){let n=()=>{w(e)?t():e.promiseQueue.then(()=>{setTimeout(n,0)})};setTimeout(n,0)}function E(e){let t=e.suspensionGeneration;T(e,()=>{t===e.suspensionGeneration&&e.onWorkflowError(new n(e.invocationsQueue,e.globalThis))})}export{v as awaitEarlierDeliveries,u as getStepFunction,C as hasParkedCommittedDelivery,w as isDeliveryIdle,y as registerDeliveryBarrier,l as registerStepFunction,T as scheduleWhenIdle,E as scheduleWorkflowSuspension};
@@ -291,6 +291,15 @@ export declare const REPLAY_DIVERGENCE_MAX_RETRIES = 3;
291
291
  * `WORKFLOW_REPLAY_DIVERGENCE_MAX_RETRIES`.
292
292
  */
293
293
  export declare function getReplayDivergenceMaxRetries(): number;
294
+ export declare const OPEN_WAIT_CLOCK_SKEW_MS = 30000;
295
+ /**
296
+ * Effective skew allowance added to the invocation's inline window when
297
+ * deciding whether a pending wait can fire during it. Override via
298
+ * `WORKFLOW_OPEN_WAIT_CLOCK_SKEW_MS`. Must be a finite integer: a value such
299
+ * as `31536000000` (one year) restores the unconditional gating of any
300
+ * pending wait, while `Infinity` is rejected and falls back to the default.
301
+ */
302
+ export declare function getOpenWaitClockSkewMs(): number;
294
303
  export declare const PRECONDITION_MAX_INPROCESS_RESTARTS = 3;
295
304
  /**
296
305
  * Effective in-process replay-restart budget for stale-snapshot rejections.
@@ -1 +1 @@
1
- import{C as e,E as t,S as n,T as r,_ as i,a,b as o,c as s,d as c,f as l,g as u,h as d,i as f,l as p,m,n as h,o as g,p as _,r as v,s as y,t as b,u as x,v as S,w as C,x as w,y as T}from"../../../_chunks/workflow/helpers-k3zcudWr.js";export{b as SLOT_GAP_RECHECK_ATTEMPTS,h as absorbSkippedSlotReport,v as appendEventLog,f as appendUniqueEvents,a as findEventSlotGap,g as getQueueOverhead,y as getWorkflowQueueName,s as handleHealthCheckMessage,p as healthCheck,x as insertEventByEventId,c as isSlotGapCheckEnabled,l as loadWorkflowRunEvents,_ as maxEventSlot,m as memoizeEncryptionKey,d as mergeReportedEvents,u as parseHealthCheckPayload,i as preconditionEventDelta,S as queueMessage,T as queueMessages,o as resolveRunEncryptionKey,w as rootRunIdFrom,n as runDispatchContext,e as settleEventSlotGap,C as slotSnapshotParams,r as stepDispatchIdempotencyKey,t as withHealthCheck};
1
+ import{C as e,E as t,S as n,T as r,_ as i,a,b as o,c as s,d as c,f as l,g as u,h as d,i as f,l as p,m,n as h,o as g,p as _,r as v,s as y,t as b,u as x,v as S,w as C,x as w,y as T}from"../../../_chunks/workflow/helpers-CNMO7zB1.js";export{b as SLOT_GAP_RECHECK_ATTEMPTS,h as absorbSkippedSlotReport,v as appendEventLog,f as appendUniqueEvents,a as findEventSlotGap,g as getQueueOverhead,y as getWorkflowQueueName,s as handleHealthCheckMessage,p as healthCheck,x as insertEventByEventId,c as isSlotGapCheckEnabled,l as loadWorkflowRunEvents,_ as maxEventSlot,m as memoizeEncryptionKey,d as mergeReportedEvents,u as parseHealthCheckPayload,i as preconditionEventDelta,S as queueMessage,T as queueMessages,o as resolveRunEncryptionKey,w as rootRunIdFrom,n as runDispatchContext,e as settleEventSlotGap,C as slotSnapshotParams,r as stepDispatchIdempotencyKey,t as withHealthCheck};