eve 0.67.0 → 0.67.2

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 (673) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/src/channel/channel-address.d.ts +2 -2
  3. package/dist/src/channel/compiled-channel.d.ts +3 -2
  4. package/dist/src/channel/cross-channel-receive.d.ts +1 -18
  5. package/dist/src/channel/cross-channel-receive.js +1 -1
  6. package/dist/src/channel/forwarded-principal.d.ts +3 -2
  7. package/dist/src/channel/resolve-text.d.ts +2 -1
  8. package/dist/src/channel/schedule-auth.d.ts +0 -2
  9. package/dist/src/channel/schedule-auth.js +1 -1
  10. package/dist/src/channel/schedule.d.ts +2 -2
  11. package/dist/src/channel/session-callback.d.ts +2 -1
  12. package/dist/src/channel/types.d.ts +0 -7
  13. package/dist/src/chunks/{use-eve-agent-OCHP4s0z.js → use-eve-agent-D4HVZBjn.js} +1 -1
  14. package/dist/src/chunks/{use-eve-agent-DzdyI97Z.js → use-eve-agent-DXcE_8Ja.js} +1 -1
  15. package/dist/src/cli/acp/command.d.ts +2 -1
  16. package/dist/src/cli/agent-command.d.ts +2 -1
  17. package/dist/src/cli/agent-detection.d.ts +0 -1
  18. package/dist/src/cli/agent-detection.js +1 -1
  19. package/dist/src/cli/application-command.d.ts +2 -1
  20. package/dist/src/cli/application-root.d.ts +3 -8
  21. package/dist/src/cli/application-root.js +1 -1
  22. package/dist/src/cli/commands/agent-instructions.d.ts +0 -4
  23. package/dist/src/cli/commands/agent-instructions.js +3 -3
  24. package/dist/src/cli/commands/extension-init.js +1 -1
  25. package/dist/src/cli/commands/init-agent-workspace.js +1 -1
  26. package/dist/src/cli/commands/init-project.d.ts +0 -1
  27. package/dist/src/cli/commands/init-project.js +1 -1
  28. package/dist/src/cli/commands/init-target.d.ts +1 -1
  29. package/dist/src/cli/commands/init-telemetry.d.ts +2 -1
  30. package/dist/src/cli/commands/init.js +1 -1
  31. package/dist/src/cli/commands/registry-declared-setups.d.ts +2 -1
  32. package/dist/src/cli/commands/registry-install-transaction.d.ts +0 -13
  33. package/dist/src/cli/commands/registry-install-transaction.js +1 -1
  34. package/dist/src/cli/commands/registry-pnpm-build-policy-flow.d.ts +1 -1
  35. package/dist/src/cli/commands/registry-presentation.d.ts +0 -1
  36. package/dist/src/cli/commands/registry-presentation.js +1 -1
  37. package/dist/src/cli/commands/registry-project.d.ts +2 -1
  38. package/dist/src/cli/commands/registry.d.ts +0 -4
  39. package/dist/src/cli/commands/registry.js +1 -1
  40. package/dist/src/cli/commands/setup-headless.d.ts +2 -1
  41. package/dist/src/cli/commands/vercel-non-interactive.d.ts +2 -1
  42. package/dist/src/cli/dev/diagnostic-dump.d.ts +0 -2
  43. package/dist/src/cli/dev/diagnostic-dump.js +1 -1
  44. package/dist/src/cli/dev/diagnostic-sink.d.ts +3 -2
  45. package/dist/src/cli/dev/environment.js +1 -1
  46. package/dist/src/cli/dev/tui/agent-header.d.ts +2 -1
  47. package/dist/src/cli/dev/tui/argument-typeahead.d.ts +2 -1
  48. package/dist/src/cli/dev/tui/dev-rebuild-status.d.ts +2 -1
  49. package/dist/src/cli/dev/tui/diagnostic-presentation.d.ts +2 -1
  50. package/dist/src/cli/dev/tui/errors.d.ts +2 -7
  51. package/dist/src/cli/dev/tui/errors.js +1 -1
  52. package/dist/src/cli/dev/tui/flow-drawer.d.ts +2 -1
  53. package/dist/src/cli/dev/tui/line-editor.d.ts +1 -1
  54. package/dist/src/cli/dev/tui/mcp-connection-status.d.ts +2 -1
  55. package/dist/src/cli/dev/tui/message-queue.d.ts +4 -3
  56. package/dist/src/cli/dev/tui/prompt-command-handler.d.ts +2 -1
  57. package/dist/src/cli/dev/tui/provider-picker.d.ts +3 -2
  58. package/dist/src/cli/dev/tui/question-panel.d.ts +2 -1
  59. package/dist/src/cli/dev/tui/registry-result-message.d.ts +3 -4
  60. package/dist/src/cli/dev/tui/registry-result-message.js +1 -1
  61. package/dist/src/cli/dev/tui/remote-connection-probe.d.ts +3 -2
  62. package/dist/src/cli/dev/tui/runner.d.ts +0 -1
  63. package/dist/src/cli/dev/tui/runner.js +1 -1
  64. package/dist/src/cli/dev/tui/setup-panel.d.ts +2 -2
  65. package/dist/src/cli/dev/tui/setup-selection-input.d.ts +2 -2
  66. package/dist/src/cli/dev/tui/status-line.d.ts +2 -1
  67. package/dist/src/cli/dev/tui/stream-format.d.ts +3 -2
  68. package/dist/src/cli/dev/tui/terminal-renderer.d.ts +3 -2
  69. package/dist/src/cli/dev/tui/theme.d.ts +1 -1
  70. package/dist/src/cli/dev/tui/tool-block-groups.d.ts +3 -2
  71. package/dist/src/cli/dev/tui/tool-presentation.d.ts +2 -1
  72. package/dist/src/cli/dev/tui/traces/trace-content.d.ts +0 -9
  73. package/dist/src/cli/dev/tui/traces/trace-content.js +1 -1
  74. package/dist/src/cli/dev/tui/traces/trace-view.d.ts +3 -2
  75. package/dist/src/cli/dev/tui/traces/trace-viewer-session.d.ts +2 -1
  76. package/dist/src/cli/dev/tui/traces/trace-viewer-state.d.ts +2 -3
  77. package/dist/src/cli/dev/tui/traces/trace-viewer-state.js +1 -1
  78. package/dist/src/cli/dev/ui-options.d.ts +3 -2
  79. package/dist/src/cli/dev/url-target.d.ts +2 -1
  80. package/dist/src/cli/invoke/command.d.ts +0 -11
  81. package/dist/src/cli/invoke/command.js +1 -1
  82. package/dist/src/cli/invoke/result.d.ts +1 -1
  83. package/dist/src/cli/telemetry/index.d.ts +0 -6
  84. package/dist/src/cli/telemetry/preference.d.ts +2 -1
  85. package/dist/src/cli/ui/alt-screen.d.ts +3 -2
  86. package/dist/src/cli/ui/live-region.d.ts +3 -2
  87. package/dist/src/cli/ui/output.d.ts +1 -16
  88. package/dist/src/cli/ui/output.js +2 -5
  89. package/dist/src/client/eve-agent-store-helpers.d.ts +0 -1
  90. package/dist/src/client/eve-agent-store-helpers.js +1 -1
  91. package/dist/src/client/eve-agent-store.js +1 -1
  92. package/dist/src/client/message-action-parts.d.ts +2 -1
  93. package/dist/src/client/session-utils.d.ts +3 -2
  94. package/dist/src/compiled/.vendor-stamp.json +6 -6
  95. package/dist/src/compiled/@workflow/core/index.js +2 -2
  96. package/dist/src/compiled/@workflow/core/private.js +1 -1
  97. package/dist/src/compiled/@workflow/core/runtime/constants.d.ts +4 -3
  98. package/dist/src/compiled/@workflow/core/runtime/helpers.d.ts +23 -0
  99. package/dist/src/compiled/@workflow/core/runtime/helpers.js +1 -1
  100. package/dist/src/compiled/@workflow/core/runtime/hook-wake.d.ts +69 -36
  101. package/dist/src/compiled/@workflow/core/runtime/lifecycle-hooks.d.ts +25 -22
  102. package/dist/src/compiled/@workflow/core/runtime/run-spec-version.d.ts +16 -0
  103. package/dist/src/compiled/@workflow/core/runtime/start.d.ts +59 -1
  104. package/dist/src/compiled/@workflow/core/runtime/step-latency.d.ts +3 -2
  105. package/dist/src/compiled/@workflow/core/runtime/suspension-handler.d.ts +34 -12
  106. package/dist/src/compiled/@workflow/core/runtime.js +4 -4
  107. package/dist/src/compiled/@workflow/core/serialization.d.ts +7 -2
  108. package/dist/src/compiled/@workflow/core/serialization.js +1 -1
  109. package/dist/src/compiled/@workflow/core/telemetry/semantic-conventions.d.ts +29 -0
  110. package/dist/src/compiled/@workflow/core/types.d.ts +1 -0
  111. package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
  112. package/dist/src/compiled/@workflow/core/workflow.js +1 -1
  113. package/dist/src/compiled/@workflow/errors/index.d.ts +13 -0
  114. package/dist/src/compiled/@workflow/errors/index.js +1 -1
  115. package/dist/src/compiled/@workflow/world/events.d.ts +14 -4
  116. package/dist/src/compiled/@workflow/world/index.d.ts +2 -2
  117. package/dist/src/compiled/@workflow/world/interfaces.d.ts +2 -1
  118. package/dist/src/compiled/@workflow/world/shared.d.ts +24 -0
  119. package/dist/src/compiled/@workflow/world/spec-version.d.ts +23 -0
  120. package/dist/src/compiled/@workflow/world-local/index.js +5 -5
  121. package/dist/src/compiled/@workflow/world-vercel/index.js +16 -16
  122. package/dist/src/compiled/_chunks/workflow/{attribute-changes-DzJovO_f.js → attribute-changes-D721NpZv.js} +3 -3
  123. package/dist/src/compiled/_chunks/workflow/{dist-BQSf8Hax.js → dist-BUFGAKRb.js} +1 -1
  124. package/dist/src/compiled/_chunks/workflow/dist-CaNNONeg.js +3 -0
  125. package/dist/src/compiled/_chunks/workflow/{frames-qKc30rjg.js → frames-Dr9fHWdo.js} +2 -2
  126. package/dist/src/compiled/_chunks/workflow/{global-BQnKzRXo.js → global-DKbOgrts.js} +1 -1
  127. package/dist/src/compiled/_chunks/workflow/helpers-DkKxg_yn.js +1 -0
  128. package/dist/src/compiled/_chunks/workflow/logger-D4GJNTk4.js +14 -0
  129. package/dist/src/compiled/_chunks/workflow/resume-hook-uTW-jBYz.js +1 -0
  130. package/dist/src/compiled/_chunks/workflow/run-5DmiMN9b.js +1 -0
  131. package/dist/src/compiled/_chunks/workflow/serialization-CNIYl1D3.js +3 -0
  132. package/dist/src/compiled/_chunks/workflow/sleep-DFKgN7UG.js +1 -0
  133. package/dist/src/compiled/_chunks/workflow/wait-until-3_1djUuL.js +1 -0
  134. package/dist/src/compiled/_chunks/workflow/{ws-transport-BrsMYqJg.js → ws-transport--rYOVIaf.js} +1 -1
  135. package/dist/src/compiler/artifacts.d.ts +4 -27
  136. package/dist/src/compiler/artifacts.js +1 -1
  137. package/dist/src/compiler/compile-agent.d.ts +2 -1
  138. package/dist/src/compiler/compile-agent.js +1 -1
  139. package/dist/src/compiler/diagnostics.d.ts +0 -11
  140. package/dist/src/compiler/diagnostics.js +1 -1
  141. package/dist/src/compiler/manifest.d.ts +0 -4
  142. package/dist/src/compiler/module-map.d.ts +1 -5
  143. package/dist/src/compiler/module-map.js +1 -1
  144. package/dist/src/compiler/normalize-agent-config.js +1 -1
  145. package/dist/src/compiler/normalize-connection.d.ts +2 -1
  146. package/dist/src/compiler/normalize-instructions.d.ts +2 -6
  147. package/dist/src/compiler/normalize-instructions.js +1 -1
  148. package/dist/src/compiler/normalize-manifest-helpers.d.ts +0 -1
  149. package/dist/src/compiler/normalize-manifest-helpers.js +1 -1
  150. package/dist/src/compiler/normalize-manifest.js +1 -1
  151. package/dist/src/compiler/normalize-skill.d.ts +2 -1
  152. package/dist/src/compiler/project-sources.d.ts +0 -14
  153. package/dist/src/compiler/project-sources.js +1 -1
  154. package/dist/src/compiler/resolve-workspace-subagent.js +1 -1
  155. package/dist/src/compiler/source-graph.d.ts +1 -2
  156. package/dist/src/compiler/source-graph.js +1 -1
  157. package/dist/src/context/build-base-tool-context.d.ts +2 -1
  158. package/dist/src/context/dynamic-tool-lifecycle.d.ts +0 -4
  159. package/dist/src/context/dynamic-tool-lifecycle.js +1 -1
  160. package/dist/src/context/dynamic-tool-metadata.d.ts +0 -1
  161. package/dist/src/context/dynamic-tool-metadata.js +1 -1
  162. package/dist/src/context/memory-lifecycle.d.ts +0 -8
  163. package/dist/src/context/memory-lifecycle.js +1 -1
  164. package/dist/src/discover/connections.d.ts +0 -15
  165. package/dist/src/discover/connections.js +1 -1
  166. package/dist/src/discover/diagnostics.d.ts +0 -12
  167. package/dist/src/discover/diagnostics.js +1 -1
  168. package/dist/src/discover/discover-agent.js +1 -1
  169. package/dist/src/discover/discover-subagent.d.ts +0 -1
  170. package/dist/src/discover/discover-subagent.js +1 -1
  171. package/dist/src/discover/extensions.d.ts +3 -10
  172. package/dist/src/discover/extensions.js +1 -1
  173. package/dist/src/discover/filesystem.d.ts +5 -9
  174. package/dist/src/discover/filesystem.js +1 -1
  175. package/dist/src/discover/grammar.d.ts +0 -46
  176. package/dist/src/discover/grammar.js +1 -1
  177. package/dist/src/discover/manifest.d.ts +5 -4
  178. package/dist/src/discover/memory.d.ts +0 -1
  179. package/dist/src/discover/memory.js +1 -1
  180. package/dist/src/discover/named-source-directory.js +1 -1
  181. package/dist/src/discover/project-source.d.ts +2 -1
  182. package/dist/src/discover/project.js +1 -1
  183. package/dist/src/discover/sandbox.js +1 -1
  184. package/dist/src/discover/skills.d.ts +0 -4
  185. package/dist/src/discover/skills.js +1 -1
  186. package/dist/src/evals/cli/eval-client.d.ts +2 -1
  187. package/dist/src/evals/judge.d.ts +2 -1
  188. package/dist/src/evals/runner/execute-task.d.ts +1 -1
  189. package/dist/src/evals/types.d.ts +1 -1
  190. package/dist/src/eve-channel/support.d.ts +1 -3
  191. package/dist/src/eve-channel/support.js +1 -1
  192. package/dist/src/execution/dynamic-workflow/schema.d.ts +2 -1
  193. package/dist/src/execution/dynamic-workflow/tool.js +1 -1
  194. package/dist/src/execution/effective-agent-config.d.ts +2 -1
  195. package/dist/src/execution/eve-workflow-attributes.d.ts +3 -5
  196. package/dist/src/execution/eve-workflow-attributes.js +1 -1
  197. package/dist/src/execution/history-view.d.ts +2 -1
  198. package/dist/src/execution/node-step.d.ts +3 -2
  199. package/dist/src/execution/runtime-context.js +1 -1
  200. package/dist/src/execution/sandbox/active-handles.d.ts +2 -4
  201. package/dist/src/execution/sandbox/active-handles.js +1 -1
  202. package/dist/src/execution/sandbox/bash.d.ts +2 -1
  203. package/dist/src/execution/sandbox/bindings/docker-templates.js +1 -1
  204. package/dist/src/execution/sandbox/bindings/docker.js +1 -1
  205. package/dist/src/execution/sandbox/bindings/immutable-resources.d.ts +0 -6
  206. package/dist/src/execution/sandbox/bindings/immutable-resources.js +1 -1
  207. package/dist/src/execution/sandbox/bindings/just-bash.js +1 -1
  208. package/dist/src/execution/sandbox/bindings/local-provider-utils.d.ts +3 -2
  209. package/dist/src/execution/sandbox/bindings/microsandbox-lifecycle.d.ts +0 -1
  210. package/dist/src/execution/sandbox/bindings/microsandbox-lifecycle.js +1 -1
  211. package/dist/src/execution/sandbox/bindings/microsandbox-network.d.ts +1 -1
  212. package/dist/src/execution/sandbox/bindings/microsandbox-options.d.ts +0 -3
  213. package/dist/src/execution/sandbox/bindings/microsandbox-options.js +1 -1
  214. package/dist/src/execution/sandbox/bindings/microsandbox-templates.d.ts +0 -1
  215. package/dist/src/execution/sandbox/bindings/microsandbox-templates.js +1 -1
  216. package/dist/src/execution/sandbox/bindings/vercel.d.ts +1 -1
  217. package/dist/src/execution/sandbox/dockerfile.d.ts +0 -1
  218. package/dist/src/execution/sandbox/dockerfile.js +1 -1
  219. package/dist/src/execution/sandbox/ensure.d.ts +2 -1
  220. package/dist/src/execution/sandbox/ensure.js +1 -1
  221. package/dist/src/execution/sandbox/prewarm.d.ts +1 -18
  222. package/dist/src/execution/sandbox/prewarm.js +1 -1
  223. package/dist/src/execution/sandbox/require-sandbox.d.ts +0 -11
  224. package/dist/src/execution/sandbox/require-sandbox.js +1 -1
  225. package/dist/src/execution/sandbox/truncate-output.d.ts +2 -5
  226. package/dist/src/execution/sandbox/truncate-output.js +2 -2
  227. package/dist/src/execution/session/admission.d.ts +3 -2
  228. package/dist/src/execution/session/event-sink.d.ts +2 -1
  229. package/dist/src/execution/session/finalization.d.ts +2 -1
  230. package/dist/src/execution/session/handoff.d.ts +3 -2
  231. package/dist/src/execution/session/route-selected-delivery.d.ts +2 -1
  232. package/dist/src/execution/session/timeout-control.d.ts +2 -1
  233. package/dist/src/execution/session-activity.d.ts +0 -3
  234. package/dist/src/execution/session-activity.js +1 -1
  235. package/dist/src/execution/session-inbox/protocol.d.ts +2 -1
  236. package/dist/src/execution/session.d.ts +3 -2
  237. package/dist/src/execution/stable-workflow-names.d.ts +0 -6
  238. package/dist/src/execution/stable-workflow-names.js +1 -1
  239. package/dist/src/execution/tools/agent-router-workflow.js +1 -1
  240. package/dist/src/execution/tools/ask-question-workflow.js +1 -1
  241. package/dist/src/execution/tools/connection-search.js +1 -1
  242. package/dist/src/execution/tools/sleep-workflow.js +1 -1
  243. package/dist/src/execution/tools/subagent/invoke-preparation.d.ts +2 -1
  244. package/dist/src/execution/tools/subagent/start.js +1 -1
  245. package/dist/src/execution/tools/subagent/task-agent-requests.d.ts +4 -3
  246. package/dist/src/execution/tools/workflow/background.d.ts +2 -6
  247. package/dist/src/execution/tools/workflow/background.js +1 -1
  248. package/dist/src/execution/tools/workflow/owner-channels.d.ts +1 -1
  249. package/dist/src/execution/tools/workflow/workflow-owner-background.d.ts +2 -1
  250. package/dist/src/execution/web-fetch/execute.d.ts +2 -2
  251. package/dist/src/execution/web-fetch/request.d.ts +2 -1
  252. package/dist/src/extensions/code/extension/lib/computer-use-driver-source.d.ts +0 -2
  253. package/dist/src/extensions/code/extension/lib/computer-use-driver-source.js +57 -57
  254. package/dist/src/extensions/code/extension/lib/computer-use.d.ts +1 -1
  255. package/dist/src/extensions/code/extension/lib/generated-paths.d.ts +2 -1
  256. package/dist/src/extensions/code/extension/lib/grep-search.d.ts +5 -5
  257. package/dist/src/extensions/code/extension/lib/grep-search.js +2 -2
  258. package/dist/src/extensions/code/extension/lib/guidelines.d.ts +2 -1
  259. package/dist/src/extensions/code/extension/lib/patch.d.ts +3 -2
  260. package/dist/src/extensions/code/extension/lib/prwatch-github.d.ts +1 -2
  261. package/dist/src/extensions/code/extension/lib/prwatch-github.js +1 -1
  262. package/dist/src/extensions/code/extension/lib/prwatch-registry.d.ts +2 -1
  263. package/dist/src/framework/host-inventory.d.ts +3 -2
  264. package/dist/src/harness/approval-candidates.d.ts +4 -3
  265. package/dist/src/harness/approval-delivery-coordinator.d.ts +2 -1
  266. package/dist/src/harness/authorization.d.ts +0 -9
  267. package/dist/src/harness/authorization.js +1 -1
  268. package/dist/src/harness/compaction-prompt.d.ts +2 -1
  269. package/dist/src/harness/coordination.d.ts +0 -4
  270. package/dist/src/harness/coordination.js +1 -1
  271. package/dist/src/harness/input-requests.d.ts +1 -10
  272. package/dist/src/harness/input-requests.js +1 -1
  273. package/dist/src/harness/pending-input-batches.d.ts +0 -5
  274. package/dist/src/harness/pending-input-batches.js +1 -1
  275. package/dist/src/harness/provider-safety.d.ts +9 -0
  276. package/dist/src/harness/provider-safety.js +1 -1
  277. package/dist/src/harness/provider-tools.d.ts +2 -1
  278. package/dist/src/harness/session-limit-continuation.d.ts +0 -4
  279. package/dist/src/harness/session-limit-continuation.js +1 -1
  280. package/dist/src/harness/session-usage-limits.d.ts +2 -1
  281. package/dist/src/harness/step-hooks.js +1 -1
  282. package/dist/src/harness/tool-loop.js +2 -2
  283. package/dist/src/harness/tool-model-output.d.ts +2 -1
  284. package/dist/src/harness/turn-cancellation.d.ts +2 -7
  285. package/dist/src/harness/turn-cancellation.js +1 -1
  286. package/dist/src/harness/turn-client-context.d.ts +2 -1
  287. package/dist/src/harness/workflow-stream-error.d.ts +0 -7
  288. package/dist/src/harness/workflow-stream-error.js +1 -1
  289. package/dist/src/instrumentation/runtime.js +1 -1
  290. package/dist/src/instrumentation/state.d.ts +2 -2
  291. package/dist/src/internal/agent-name.d.ts +0 -2
  292. package/dist/src/internal/agent-name.js +1 -1
  293. package/dist/src/internal/application/build-profile.d.ts +2 -2
  294. package/dist/src/internal/application/cache-metadata.js +1 -1
  295. package/dist/src/internal/application/compiled-artifacts.js +1 -1
  296. package/dist/src/internal/application/dev-environment.d.ts +2 -8
  297. package/dist/src/internal/application/dev-environment.js +1 -1
  298. package/dist/src/internal/application/optional-package-import.js +1 -1
  299. package/dist/src/internal/application/optional-package-install.js +1 -1
  300. package/dist/src/internal/application/output-publication-lock.js +1 -1
  301. package/dist/src/internal/application/output-publication.d.ts +1 -1
  302. package/dist/src/internal/application/package.js +1 -1
  303. package/dist/src/internal/application/paths.d.ts +0 -5
  304. package/dist/src/internal/application/paths.js +1 -1
  305. package/dist/src/internal/application/tsconfig-dependencies.d.ts +0 -16
  306. package/dist/src/internal/application/tsconfig-dependencies.js +1 -1
  307. package/dist/src/internal/authored-asset-import-plugin.js +1 -1
  308. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  309. package/dist/src/internal/authored-definition/source-identity.d.ts +1 -1
  310. package/dist/src/internal/authored-module-evaluation-error.js +1 -1
  311. package/dist/src/internal/authored-module-loader.js +1 -1
  312. package/dist/src/internal/authored-module-map-loader.js +1 -1
  313. package/dist/src/internal/authored-package-boundary.js +1 -1
  314. package/dist/src/internal/authored-relative-extension-resolver.js +1 -1
  315. package/dist/src/internal/bundler/extension-scope-plugin.d.ts +2 -1
  316. package/dist/src/internal/bundler/extension-scope-plugin.js +1 -1
  317. package/dist/src/internal/bundler/nitro-rolldown.d.ts +3 -12
  318. package/dist/src/internal/bundler/nitro-rolldown.js +1 -1
  319. package/dist/src/internal/bundler/vendored-dependency-log.d.ts +7 -0
  320. package/dist/src/internal/bundler/vendored-dependency-log.js +1 -0
  321. package/dist/src/internal/eve-project-root.d.ts +0 -3
  322. package/dist/src/internal/eve-project-root.js +1 -1
  323. package/dist/src/internal/external-resources-snapshot.d.ts +1 -1
  324. package/dist/src/internal/external-resources.d.ts +0 -1
  325. package/dist/src/internal/external-resources.js +1 -1
  326. package/dist/src/internal/gateway.d.ts +2 -0
  327. package/dist/src/internal/gateway.js +1 -1
  328. package/dist/src/internal/helpers/markdown.js +1 -1
  329. package/dist/src/internal/instrumentation-layout.js +1 -1
  330. package/dist/src/internal/invocation/metadata.d.ts +1 -1
  331. package/dist/src/internal/materialized-authored-modules.d.ts +2 -1
  332. package/dist/src/internal/materialized-authored-modules.js +1 -1
  333. package/dist/src/internal/mcp/protected-resource.d.ts +2 -1
  334. package/dist/src/internal/mcp/streamable-http-server.d.ts +4 -5
  335. package/dist/src/internal/mcp/streamable-http-server.js +1 -1
  336. package/dist/src/internal/model-catalog.d.ts +2 -1
  337. package/dist/src/internal/nitro/dev-runtime-artifacts-retention.js +1 -1
  338. package/dist/src/internal/nitro/dev-runtime-artifacts.d.ts +0 -4
  339. package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
  340. package/dist/src/internal/nitro/dev-runtime-source-snapshot-copy.js +1 -1
  341. package/dist/src/internal/nitro/dev-runtime-source-snapshot-local-roots.js +1 -1
  342. package/dist/src/internal/nitro/dev-runtime-source-snapshot.d.ts +0 -1
  343. package/dist/src/internal/nitro/dev-runtime-source-snapshot.js +1 -1
  344. package/dist/src/internal/nitro/development-generation.d.ts +0 -1
  345. package/dist/src/internal/nitro/development-generation.js +1 -1
  346. package/dist/src/internal/nitro/host/build-application.js +1 -1
  347. package/dist/src/internal/nitro/host/build-extension.js +1 -1
  348. package/dist/src/internal/nitro/host/build-vercel-agent-summary.js +1 -1
  349. package/dist/src/internal/nitro/host/channel-routes.d.ts +1 -1
  350. package/dist/src/internal/nitro/host/configure-nitro-routes.js +1 -1
  351. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  352. package/dist/src/internal/nitro/host/dev-authored-rebuild-coordinator.d.ts +2 -1
  353. package/dist/src/internal/nitro/host/dev-authored-source-watcher.js +1 -1
  354. package/dist/src/internal/nitro/host/dev-host-candidate.d.ts +2 -1
  355. package/dist/src/internal/nitro/host/drained-nitro-dev-server.d.ts +1 -1
  356. package/dist/src/internal/nitro/host/extension-capability-requirements.js +1 -1
  357. package/dist/src/internal/nitro/host/extension-external-dependency-plugin.js +1 -1
  358. package/dist/src/internal/nitro/host/local-tracing-runtime-plugin.js +1 -1
  359. package/dist/src/internal/nitro/host/nitro-bundler-config.js +1 -1
  360. package/dist/src/internal/nitro/host/schedule-task-routes.d.ts +2 -26
  361. package/dist/src/internal/nitro/host/schedule-task-routes.js +2 -2
  362. package/dist/src/internal/nitro/host/start-production-server.js +1 -1
  363. package/dist/src/internal/nitro/host/workspace-extensions.js +1 -1
  364. package/dist/src/internal/nitro/routes/channel-request-instrumentation.d.ts +2 -1
  365. package/dist/src/internal/nitro/routes/channel-route-context.d.ts +1 -1
  366. package/dist/src/internal/nitro/routes/runtime-stack.d.ts +2 -1
  367. package/dist/src/internal/resolve-model-endpoint-status.d.ts +2 -1
  368. package/dist/src/internal/vercel/assemble-eve-services.d.ts +3 -2
  369. package/dist/src/internal/vercel/build-agent-workspace.js +1 -1
  370. package/dist/src/internal/vercel/eve-service-contribution.d.ts +2 -3
  371. package/dist/src/internal/vercel/eve-service-contribution.js +1 -1
  372. package/dist/src/internal/vercel/project-link.d.ts +2 -1
  373. package/dist/src/internal/vercel/project-link.js +1 -1
  374. package/dist/src/internal/workflow/development-world-client.js +1 -1
  375. package/dist/src/internal/workflow/development-world-codec.d.ts +2 -1
  376. package/dist/src/internal/workflow/development-world-server.js +1 -1
  377. package/dist/src/internal/workflow/world-compatibility.d.ts +2 -1
  378. package/dist/src/internal/workflow-bundle/builder-support.d.ts +0 -9
  379. package/dist/src/internal/workflow-bundle/builder-support.js +2 -3
  380. package/dist/src/internal/workflow-bundle/builder.js +2 -2
  381. package/dist/src/internal/workflow-bundle/dynamic-tool-transform.d.ts +0 -1
  382. package/dist/src/internal/workflow-bundle/dynamic-tool-transform.js +1 -1
  383. package/dist/src/internal/workflow-bundle/workflow-builders.js +1 -1
  384. package/dist/src/protocol/activity.d.ts +3 -3
  385. package/dist/src/protocol/activity.js +1 -1
  386. package/dist/src/protocol/baggage.d.ts +2 -2
  387. package/dist/src/protocol/cancel-turn.d.ts +0 -2
  388. package/dist/src/protocol/event-dedupe.d.ts +2 -1
  389. package/dist/src/protocol/event-id.d.ts +0 -6
  390. package/dist/src/protocol/event-id.js +1 -1
  391. package/dist/src/protocol/traceparent.d.ts +2 -1
  392. package/dist/src/public/channels/chat-sdk/audience.d.ts +2 -4
  393. package/dist/src/public/channels/chat-sdk/audience.js +1 -1
  394. package/dist/src/public/channels/discord/discordChannel.d.ts +1 -1
  395. package/dist/src/public/channels/github/api.d.ts +2 -22
  396. package/dist/src/public/channels/github/api.js +1 -1
  397. package/dist/src/public/channels/github/auth.d.ts +0 -9
  398. package/dist/src/public/channels/github/auth.js +1 -1
  399. package/dist/src/public/channels/github/binding.d.ts +3 -2
  400. package/dist/src/public/channels/github/checkout.d.ts +3 -3
  401. package/dist/src/public/channels/github/defaults.d.ts +3 -2
  402. package/dist/src/public/channels/github/githubChannel.d.ts +1 -1
  403. package/dist/src/public/channels/github/limits.d.ts +0 -2
  404. package/dist/src/public/channels/github/limits.js +2 -2
  405. package/dist/src/public/channels/github/pr-context.d.ts +2 -3
  406. package/dist/src/public/channels/github/pr-context.js +1 -1
  407. package/dist/src/public/channels/github/state.d.ts +2 -1
  408. package/dist/src/public/channels/github/verify.d.ts +2 -1
  409. package/dist/src/public/channels/linear/defaults.d.ts +2 -1
  410. package/dist/src/public/channels/linear/inbound-images.d.ts +2 -1
  411. package/dist/src/public/channels/slack/app-manifest.d.ts +3 -4
  412. package/dist/src/public/channels/slack/app-manifest.js +1 -1
  413. package/dist/src/public/channels/slack/hitl.d.ts +0 -4
  414. package/dist/src/public/channels/slack/hitl.js +2 -2
  415. package/dist/src/public/channels/slack/inbound.d.ts +2 -1
  416. package/dist/src/public/channels/slack/model-context.d.ts +0 -18
  417. package/dist/src/public/channels/slack/model-context.js +1 -1
  418. package/dist/src/public/channels/slack/mrkdwn.d.ts +0 -2
  419. package/dist/src/public/channels/slack/mrkdwn.js +1 -1
  420. package/dist/src/public/channels/slack/privacy.d.ts +2 -1
  421. package/dist/src/public/channels/slack/verify.d.ts +1 -1
  422. package/dist/src/public/channels/teams/teamsChannel.d.ts +1 -1
  423. package/dist/src/public/channels/telegram/audience.d.ts +2 -3
  424. package/dist/src/public/channels/telegram/audience.js +1 -1
  425. package/dist/src/public/channels/telegram/telegramChannel.d.ts +1 -1
  426. package/dist/src/public/channels/twilio/defaults.d.ts +0 -7
  427. package/dist/src/public/channels/twilio/defaults.js +1 -1
  428. package/dist/src/public/channels/twilio/routing.d.ts +2 -1
  429. package/dist/src/public/channels/twilio/twilioChannel.d.ts +1 -1
  430. package/dist/src/public/channels/upload-policy.d.ts +0 -11
  431. package/dist/src/public/channels/upload-policy.js +1 -1
  432. package/dist/src/public/definitions/channel.d.ts +1 -1
  433. package/dist/src/public/index.js +1 -1
  434. package/dist/src/public/memory/file/provider.js +1 -1
  435. package/dist/src/public/models/openai/chatgpt/model.d.ts +2 -1
  436. package/dist/src/public/models/openai/chatgpt/token-broker.d.ts +1 -1
  437. package/dist/src/public/next/server.js +1 -1
  438. package/dist/src/public/nuxt/dev-server.d.ts +3 -2
  439. package/dist/src/public/nuxt/dev-server.js +1 -1
  440. package/dist/src/public/skills/index.js +1 -1
  441. package/dist/src/public/sveltekit/dev-server.d.ts +3 -2
  442. package/dist/src/public/sveltekit/dev-server.js +1 -1
  443. package/dist/src/public/tools/index.js +1 -1
  444. package/dist/src/runtime/compiled-artifacts-source.d.ts +0 -4
  445. package/dist/src/runtime/compiled-artifacts-source.js +1 -1
  446. package/dist/src/runtime/connections/instance-identity.d.ts +0 -3
  447. package/dist/src/runtime/connections/instance-identity.js +1 -1
  448. package/dist/src/runtime/connections/mcp-tracing.d.ts +1 -6
  449. package/dist/src/runtime/connections/mcp-tracing.js +1 -1
  450. package/dist/src/runtime/connections/openapi-client.d.ts +1 -1
  451. package/dist/src/runtime/connections/scoped-authorization.d.ts +0 -9
  452. package/dist/src/runtime/connections/scoped-authorization.js +1 -1
  453. package/dist/src/runtime/hooks/registry.d.ts +0 -7
  454. package/dist/src/runtime/hooks/registry.js +1 -1
  455. package/dist/src/runtime/loaders/artifact-paths.d.ts +2 -1
  456. package/dist/src/runtime/loaders/bundled-artifacts.d.ts +0 -1
  457. package/dist/src/runtime/loaders/bundled-artifacts.js +1 -1
  458. package/dist/src/runtime/resolve-agent.d.ts +2 -2
  459. package/dist/src/runtime/resolve-agent.js +1 -1
  460. package/dist/src/runtime/resolve-dynamic-tool.d.ts +0 -16
  461. package/dist/src/runtime/resolve-dynamic-tool.js +1 -1
  462. package/dist/src/runtime/sandbox/prepared-artifacts.d.ts +1 -2
  463. package/dist/src/runtime/sandbox/prepared-artifacts.js +1 -1
  464. package/dist/src/runtime/schedules/register.d.ts +0 -4
  465. package/dist/src/runtime/schedules/register.js +1 -1
  466. package/dist/src/self-modification/credentials.d.ts +1 -4
  467. package/dist/src/self-modification/credentials.js +1 -1
  468. package/dist/src/self-modification/extension/subagents/agent/tools/search_traces.js +1 -1
  469. package/dist/src/self-modification/filesystem.d.ts +0 -1
  470. package/dist/src/self-modification/filesystem.js +1 -1
  471. package/dist/src/self-modification/git-workspace.d.ts +0 -3
  472. package/dist/src/self-modification/git-workspace.js +1 -1
  473. package/dist/src/self-modification/github-publisher.d.ts +2 -1
  474. package/dist/src/self-modification/migration.d.ts +0 -1
  475. package/dist/src/self-modification/migration.js +1 -1
  476. package/dist/src/self-modification/mode.d.ts +2 -1
  477. package/dist/src/self-modification/proposal.d.ts +0 -2
  478. package/dist/src/self-modification/proposal.js +2 -2
  479. package/dist/src/self-modification/setup.js +1 -1
  480. package/dist/src/services/dev-client/agent-info-probe.d.ts +2 -1
  481. package/dist/src/services/dev-client/request-headers.d.ts +1 -1
  482. package/dist/src/services/dev-client/vercel-auth-error.d.ts +0 -8
  483. package/dist/src/services/dev-client/vercel-auth-error.js +2 -3
  484. package/dist/src/setup/ai-gateway-api-key.d.ts +2 -1
  485. package/dist/src/setup/append-env.d.ts +3 -2
  486. package/dist/src/setup/ask.d.ts +3 -3
  487. package/dist/src/setup/boxes/apply-ai-gateway-credential.d.ts +2 -1
  488. package/dist/src/setup/boxes/deploy-project.d.ts +4 -3
  489. package/dist/src/setup/boxes/link-project.d.ts +2 -1
  490. package/dist/src/setup/boxes/resolve-provisioning.d.ts +2 -1
  491. package/dist/src/setup/boxes/select-model.d.ts +2 -37
  492. package/dist/src/setup/boxes/select-model.js +1 -1
  493. package/dist/src/setup/cli/option-row.d.ts +1 -1
  494. package/dist/src/setup/cli/prompt-ui.d.ts +0 -10
  495. package/dist/src/setup/cli/prompt-ui.js +1 -1
  496. package/dist/src/setup/cli/rail-log.d.ts +0 -2
  497. package/dist/src/setup/cli/rail-log.js +2 -2
  498. package/dist/src/setup/connect-provisioning.d.ts +2 -1
  499. package/dist/src/setup/connection-connector.d.ts +2 -1
  500. package/dist/src/setup/flows/link.d.ts +2 -1
  501. package/dist/src/setup/flows/model-login.d.ts +1 -1
  502. package/dist/src/setup/flows/model-source-change.js +1 -1
  503. package/dist/src/setup/flows/provider.d.ts +2 -45
  504. package/dist/src/setup/flows/provider.js +1 -4
  505. package/dist/src/setup/flows/registry-session.d.ts +3 -2
  506. package/dist/src/setup/integrations/discord/api.d.ts +2 -1
  507. package/dist/src/setup/integrations/discord/connect.d.ts +3 -3
  508. package/dist/src/setup/integrations/discord/connect.js +1 -1
  509. package/dist/src/setup/integrations/discord/setup.d.ts +2 -1
  510. package/dist/src/setup/integrations/file-memory/vercel.d.ts +1 -1
  511. package/dist/src/setup/integrations/github/connect.d.ts +3 -3
  512. package/dist/src/setup/integrations/github/connect.js +1 -1
  513. package/dist/src/setup/integrations/github/setup.d.ts +1 -1
  514. package/dist/src/setup/integrations/linear/connect.d.ts +2 -2
  515. package/dist/src/setup/integrations/linear/connect.js +1 -1
  516. package/dist/src/setup/integrations/linear/setup.d.ts +1 -1
  517. package/dist/src/setup/integrations/linq/connect.d.ts +3 -4
  518. package/dist/src/setup/integrations/linq/connect.js +1 -1
  519. package/dist/src/setup/integrations/linq/management.d.ts +2 -1
  520. package/dist/src/setup/integrations/linq/setup.d.ts +1 -9
  521. package/dist/src/setup/integrations/linq/setup.js +1 -1
  522. package/dist/src/setup/integrations/photon/connect.d.ts +5 -7
  523. package/dist/src/setup/integrations/photon/connect.js +1 -1
  524. package/dist/src/setup/integrations/photon/management.d.ts +5 -4
  525. package/dist/src/setup/integrations/photon/setup-flow.d.ts +2 -1
  526. package/dist/src/setup/integrations/registry.d.ts +0 -2
  527. package/dist/src/setup/integrations/registry.js +1 -1
  528. package/dist/src/setup/integrations/runner.d.ts +3 -2
  529. package/dist/src/setup/integrations/shared/scaffold.d.ts +2 -1
  530. package/dist/src/setup/integrations/shared/vercel-project.d.ts +2 -1
  531. package/dist/src/setup/integrations/shopify/setup.d.ts +2 -1
  532. package/dist/src/setup/integrations/teams/connect.d.ts +3 -3
  533. package/dist/src/setup/integrations/teams/connect.js +1 -1
  534. package/dist/src/setup/integrations/teams/setup.d.ts +2 -1
  535. package/dist/src/setup/integrations/web/setup.d.ts +2 -1
  536. package/dist/src/setup/primitives/pm/pnpm.js +1 -1
  537. package/dist/src/setup/primitives/pm/process-result.d.ts +2 -1
  538. package/dist/src/setup/primitives/pm/shared.d.ts +2 -1
  539. package/dist/src/setup/primitives/process-output.d.ts +2 -1
  540. package/dist/src/setup/primitives/run-vercel.js +1 -1
  541. package/dist/src/setup/project-resolution.d.ts +0 -2
  542. package/dist/src/setup/project-resolution.js +1 -1
  543. package/dist/src/setup/provider-settings.js +1 -1
  544. package/dist/src/setup/quit-guard.d.ts +3 -2
  545. package/dist/src/setup/scaffold/connections/catalog.d.ts +0 -13
  546. package/dist/src/setup/scaffold/connections/catalog.js +1 -1
  547. package/dist/src/setup/scaffold/create/add-to-project.d.ts +2 -1
  548. package/dist/src/setup/scaffold/create/project.js +1 -1
  549. package/dist/src/setup/scaffold/files.d.ts +2 -1
  550. package/dist/src/setup/scaffold/update/channels.d.ts +0 -1
  551. package/dist/src/setup/scaffold/version-tokens.js +1 -1
  552. package/dist/src/setup/scaffold/workspace-glob.d.ts +0 -1
  553. package/dist/src/setup/scaffold/workspace-glob.js +1 -1
  554. package/dist/src/setup/scaffold/workspace-root.d.ts +2 -1
  555. package/dist/src/setup/scaffold/workspace-root.js +1 -1
  556. package/dist/src/setup/slack-connect-create.d.ts +1 -1
  557. package/dist/src/setup/slack-connect-lifecycle.d.ts +5 -5
  558. package/dist/src/setup/slack-connect.d.ts +0 -4
  559. package/dist/src/setup/slack-connect.js +1 -1
  560. package/dist/src/setup/slackbot.d.ts +3 -3
  561. package/dist/src/setup/slackbot.js +1 -1
  562. package/dist/src/setup/vercel-api-failure.d.ts +0 -2
  563. package/dist/src/setup/vercel-api-failure.js +1 -1
  564. package/dist/src/setup/vercel-project-api.d.ts +1 -1
  565. package/dist/src/setup/vercel-project.d.ts +4 -38
  566. package/dist/src/setup/vercel-project.js +0 -0
  567. package/dist/src/shared/action-types.d.ts +1 -58
  568. package/dist/src/shared/action-types.js +1 -1
  569. package/dist/src/shared/agent-definition.d.ts +0 -3
  570. package/dist/src/shared/agent-turn-outcome.d.ts +1 -3
  571. package/dist/src/shared/agent-turn-outcome.js +1 -1
  572. package/dist/src/shared/chatgpt-model.d.ts +0 -1
  573. package/dist/src/shared/chatgpt-model.js +1 -1
  574. package/dist/src/shared/conversation-context.d.ts +2 -1
  575. package/dist/src/shared/conversation-identity.d.ts +2 -0
  576. package/dist/src/shared/conversation-identity.js +1 -0
  577. package/dist/src/shared/extension-package-contract.d.ts +2 -1
  578. package/dist/src/shared/forwarded-trace-policy.d.ts +3 -2
  579. package/dist/src/shared/gateway-service-tier.d.ts +2 -1
  580. package/dist/src/shared/memory-state.d.ts +0 -8
  581. package/dist/src/shared/memory-state.js +1 -1
  582. package/dist/src/shared/sandbox-environment.d.ts +0 -1
  583. package/dist/src/shared/sandbox-environment.js +1 -1
  584. package/dist/src/shared/skill-package.d.ts +0 -5
  585. package/dist/src/shared/skill-package.js +1 -1
  586. package/dist/src/shared/skill-paths.d.ts +0 -13
  587. package/dist/src/shared/skill-paths.js +2 -2
  588. package/dist/src/shared/token-usage.d.ts +0 -7
  589. package/dist/src/shared/token-usage.js +1 -1
  590. package/dist/src/shared/ulid.d.ts +2 -8
  591. package/dist/src/shared/ulid.js +1 -1
  592. package/dist/src/shared/vercel-project.d.ts +2 -1
  593. package/dist/src/shared/vercel-services.d.ts +2 -2
  594. package/dist/src/shared/workflow-sandbox.d.ts +0 -7
  595. package/dist/src/source-change/agent-config-ast.d.ts +2 -1
  596. package/dist/src/source-change/agent-config-string-path.d.ts +2 -2
  597. package/dist/src/source-change/apply-agent-model-settings.d.ts +2 -1
  598. package/dist/src/source-change/apply-model-selection.d.ts +2 -1
  599. package/dist/src/source-change/static-source-change.d.ts +4 -3
  600. package/dist/src/subagents/invocation.d.ts +1 -1
  601. package/dist/src/subagents/tool.d.ts +2 -1
  602. package/dist/src/svelte/index.js +1 -1
  603. package/dist/src/svelte/use-eve-agent.js +1 -1
  604. package/dist/src/tools/definition.d.ts +0 -3
  605. package/dist/src/tools/durable-callbacks.d.ts +1 -2
  606. package/dist/src/tools/durable-callbacks.js +1 -1
  607. package/dist/src/tools/framework/agent.js +1 -1
  608. package/dist/src/tools/framework/task-cancel.d.ts +1 -1
  609. package/dist/src/tools/native-definition.d.ts +2 -1
  610. package/dist/src/tracing/agent-action-instrumentation.d.ts +2 -1
  611. package/dist/src/tracing/agent-invocation-coordinator.js +1 -1
  612. package/dist/src/tracing/agent-memory-instrumentation.d.ts +2 -1
  613. package/dist/src/tracing/agent-otel-attributes.js +1 -1
  614. package/dist/src/tracing/agent-otel-provider.d.ts +2 -1
  615. package/dist/src/tracing/agent-span-id-generator.d.ts +0 -1
  616. package/dist/src/tracing/agent-span-id-generator.js +1 -1
  617. package/dist/src/tracing/agent-tool-instrumentation.d.ts +2 -1
  618. package/dist/src/tracing/agent-tool-span-context.d.ts +3 -2
  619. package/dist/src/tracing/agent-trace-context-store.d.ts +0 -2
  620. package/dist/src/tracing/agent-trace-context-store.js +1 -1
  621. package/dist/src/tracing/agent-trace-state.d.ts +0 -24
  622. package/dist/src/tracing/agent-trace-state.js +1 -1
  623. package/dist/src/tracing/batch-span-processor.d.ts +2 -1
  624. package/dist/src/tracing/conversation-context.d.ts +0 -2
  625. package/dist/src/tracing/conversation-context.js +1 -1
  626. package/dist/src/tracing/install-instrumentation-runtime.js +1 -1
  627. package/dist/src/tracing/local-trace-analysis.d.ts +4 -3
  628. package/dist/src/tracing/local-trace-discovery-index.d.ts +0 -2
  629. package/dist/src/tracing/local-trace-discovery-index.js +1 -1
  630. package/dist/src/tracing/local-trace-query.d.ts +2 -1
  631. package/dist/src/tracing/local-trace-retention.d.ts +4 -4
  632. package/dist/src/tracing/telemetry-budget.d.ts +0 -1
  633. package/dist/src/tracing/telemetry-budget.js +1 -1
  634. package/dist/src/vue/index.js +1 -1
  635. package/dist/src/vue/use-eve-agent.js +1 -1
  636. package/docs/agent-config.md +7 -0
  637. package/package.json +8 -8
  638. package/dist/src/cli/commands/channel-add-conflicts.d.ts +0 -21
  639. package/dist/src/cli/commands/channel-add-conflicts.js +0 -1
  640. package/dist/src/cli/commands/init-confirm.d.ts +0 -12
  641. package/dist/src/cli/commands/init-confirm.js +0 -1
  642. package/dist/src/cli/commands/registry-search-presentation.d.ts +0 -16
  643. package/dist/src/cli/commands/registry-search-presentation.js +0 -6
  644. package/dist/src/compiled/_chunks/workflow/dist-BfMqXLK3.js +0 -3
  645. package/dist/src/compiled/_chunks/workflow/helpers-CNMO7zB1.js +0 -1
  646. package/dist/src/compiled/_chunks/workflow/logger-BCEj9caG.js +0 -14
  647. package/dist/src/compiled/_chunks/workflow/resume-hook-QS_cMwHn.js +0 -1
  648. package/dist/src/compiled/_chunks/workflow/run-CA5wWV2S.js +0 -1
  649. package/dist/src/compiled/_chunks/workflow/serialization-CJ265vSe.js +0 -3
  650. package/dist/src/compiled/_chunks/workflow/sleep-CBn94Ayv.js +0 -1
  651. package/dist/src/compiled/_chunks/workflow/wait-until-Bo2U6ON9.js +0 -1
  652. package/dist/src/compiler/compile-from-memory.d.ts +0 -44
  653. package/dist/src/compiler/compile-from-memory.js +0 -1
  654. package/dist/src/execution/connection-auth-tool-result.d.ts +0 -2
  655. package/dist/src/execution/connection-auth-tool-result.js +0 -1
  656. package/dist/src/internal/process/pnpm.d.ts +0 -28
  657. package/dist/src/internal/process/pnpm.js +0 -1
  658. package/dist/src/public/channels/slack/api-encoding.d.ts +0 -5
  659. package/dist/src/public/channels/slack/api-encoding.js +0 -1
  660. package/dist/src/public/definitions/instrumentation.d.ts +0 -1
  661. package/dist/src/public/definitions/instrumentation.js +0 -1
  662. package/dist/src/public/models/openai/chatgpt/unsigned-jwt.d.ts +0 -5
  663. package/dist/src/public/models/openai/chatgpt/unsigned-jwt.js +0 -1
  664. package/dist/src/sandbox/backends/probes.d.ts +0 -7
  665. package/dist/src/sandbox/backends/probes.js +0 -1
  666. package/dist/src/setup/channel-add-conflicts.d.ts +0 -28
  667. package/dist/src/setup/channel-add-conflicts.js +0 -1
  668. package/dist/src/setup/gateway-models.d.ts +0 -10
  669. package/dist/src/setup/gateway-models.js +0 -1
  670. package/dist/src/setup/primitives/run-pnpm.d.ts +0 -1
  671. package/dist/src/setup/primitives/run-pnpm.js +0 -1
  672. package/dist/src/shared/dispatch-action.d.ts +0 -30
  673. package/dist/src/shared/dispatch-action.js +0 -1
@@ -1,3 +1,3 @@
1
- import{createConnection,createServer}from"node:net";import{loadDevelopmentEnvironmentFiles}from"#cli/dev/environment.js";import{join,resolve}from"node:path";import{existsSync}from"node:fs";import{spawn}from"node:child_process";import{setTimeout}from"node:timers/promises";const HEALTH_TIMEOUT_MS=6e4,LOCAL_SERVER_URL_PATTERN=/https?:\/\/(?:\[[^\]\s]+\]|[^\s/:[\]]+)(?::\d+)?/,WILDCARD_LISTEN_HOSTNAMES=new Set([`[::]`,`::`,`0.0.0.0`]);function resolveOutputServerEntry(e){return join(resolve(e),`.output`,`server`,`index.mjs`)}function readEnvironmentPort(){let e=process.env.PORT;if(e===void 0||e.trim()===``)return;let t=Number(e);if(!Number.isInteger(t)||t<0||t>65535)throw Error(`Invalid PORT environment variable "${e}". Expected an integer between 0 and 65535.`);return t}function normalizeServerClientUrl(e){let t=new URL(e);return WILDCARD_LISTEN_HOSTNAMES.has(t.hostname)&&(t.hostname=`127.0.0.1`),t.toString()}function formatClientHost(e){return WILDCARD_LISTEN_HOSTNAMES.has(e)?`127.0.0.1`:e.includes(`:`)&&!e.startsWith(`[`)?`[${e}]`:e}function createKnownPortUrl(e){return`http://${formatClientHost(e.host)}:${String(e.port)}/`}async function resolveListenPort(e){if(e.port!==0)return e.port;let t=createServer();return await new Promise((n,r)=>{t.once(`error`,r),t.listen(0,e.host,()=>{let e=t.address();t.close(t=>{if(t){r(t);return}if(e===null||typeof e==`string`){r(Error(`Failed to resolve an available port for eve start.`));return}n(e.port)})})})}function parseServerUrlFromOutput(e){let t=LOCAL_SERVER_URL_PATTERN.exec(e);if(t!==null)return normalizeServerClientUrl(t[0])}async function isListening(e){let t=new URL(e),n=Number(t.port||(t.protocol===`https:`?443:80));return await new Promise(e=>{let r=createConnection({host:t.hostname,port:n}),finish=t=>{r.destroy(),e(t)};r.setTimeout(2e3,()=>finish(!1)),r.once(`connect`,()=>finish(!0)),r.once(`error`,()=>finish(!1))})}async function waitForReady(e){let t=Date.now()+HEALTH_TIMEOUT_MS;for(;Date.now()<t;){let t=e.getStartError();if(t!==void 0)throw t;let n=parseServerUrlFromOutput(e.getOutput()),r=n??e.knownUrl;if(r!==void 0&&(n!==void 0||await isListening(r)))return new URL(r).toString();if(e.child.exitCode!==null||e.child.signalCode!==null)throw Error(`Built server process exited (code=${String(e.child.exitCode)}, signal=${String(e.child.signalCode)}) before printing its URL.`);await setTimeout(250)}throw Error([`Built server did not become ready within ${HEALTH_TIMEOUT_MS/1e3}s.`,`Output:`,e.getOutput()].join(`
1
+ import{createConnection,createServer}from"node:net";import{loadDevelopmentEnvironmentFiles}from"#cli/dev/environment.js";import{existsSync}from"node:fs";import{join,resolve}from"node:path";import{spawn}from"node:child_process";import{setTimeout}from"node:timers/promises";const HEALTH_TIMEOUT_MS=6e4,LOCAL_SERVER_URL_PATTERN=/https?:\/\/(?:\[[^\]\s]+\]|[^\s/:[\]]+)(?::\d+)?/,WILDCARD_LISTEN_HOSTNAMES=new Set([`[::]`,`::`,`0.0.0.0`]);function resolveOutputServerEntry(e){return join(resolve(e),`.output`,`server`,`index.mjs`)}function readEnvironmentPort(){let e=process.env.PORT;if(e===void 0||e.trim()===``)return;let t=Number(e);if(!Number.isInteger(t)||t<0||t>65535)throw Error(`Invalid PORT environment variable "${e}". Expected an integer between 0 and 65535.`);return t}function normalizeServerClientUrl(e){let t=new URL(e);return WILDCARD_LISTEN_HOSTNAMES.has(t.hostname)&&(t.hostname=`127.0.0.1`),t.toString()}function formatClientHost(e){return WILDCARD_LISTEN_HOSTNAMES.has(e)?`127.0.0.1`:e.includes(`:`)&&!e.startsWith(`[`)?`[${e}]`:e}function createKnownPortUrl(e){return`http://${formatClientHost(e.host)}:${String(e.port)}/`}async function resolveListenPort(e){if(e.port!==0)return e.port;let t=createServer();return await new Promise((n,r)=>{t.once(`error`,r),t.listen(0,e.host,()=>{let e=t.address();t.close(t=>{if(t){r(t);return}if(e===null||typeof e==`string`){r(Error(`Failed to resolve an available port for eve start.`));return}n(e.port)})})})}function parseServerUrlFromOutput(e){let t=LOCAL_SERVER_URL_PATTERN.exec(e);if(t!==null)return normalizeServerClientUrl(t[0])}async function isListening(e){let t=new URL(e),n=Number(t.port||(t.protocol===`https:`?443:80));return await new Promise(e=>{let r=createConnection({host:t.hostname,port:n}),finish=t=>{r.destroy(),e(t)};r.setTimeout(2e3,()=>finish(!1)),r.once(`connect`,()=>finish(!0)),r.once(`error`,()=>finish(!1))})}async function waitForReady(e){let t=Date.now()+HEALTH_TIMEOUT_MS;for(;Date.now()<t;){let t=e.getStartError();if(t!==void 0)throw t;let n=parseServerUrlFromOutput(e.getOutput()),r=n??e.knownUrl;if(r!==void 0&&(n!==void 0||await isListening(r)))return new URL(r).toString();if(e.child.exitCode!==null||e.child.signalCode!==null)throw Error(`Built server process exited (code=${String(e.child.exitCode)}, signal=${String(e.child.signalCode)}) before printing its URL.`);await setTimeout(250)}throw Error([`Built server did not become ready within ${HEALTH_TIMEOUT_MS/1e3}s.`,`Output:`,e.getOutput()].join(`
2
2
  `))}async function terminate(e){e.exitCode!==null||e.killed||(e.kill(`SIGTERM`),await Promise.race([once(e,`exit`),setTimeout(2e4).then(()=>`timeout`)])===`timeout`&&e.exitCode===null&&(e.kill(`SIGKILL`),await once(e,`exit`)),e.stdout?.destroy(),e.stderr?.destroy())}function once(e,t){return new Promise(n=>{e.once(t,()=>n())})}async function startProductionServer(e,t={}){let n=resolve(e),r=resolveOutputServerEntry(n);if(!existsSync(r))throw Error(`Missing eve build output at ${r}. Run "eve build" before "eve start".`);await loadDevelopmentEnvironmentFiles(n);let i=t.host??`0.0.0.0`,a=await resolveListenPort({host:i,port:t.port??readEnvironmentPort()??3e3}),o=createKnownPortUrl({host:i,port:a}),s=``,c=!1,l,u=spawn(process.execPath,[r],{cwd:n,env:{...process.env,HOST:i,NITRO_HOST:i,NITRO_PORT:String(a),PORT:String(a)},stdio:[`ignore`,`pipe`,`pipe`]});u.stdout?.on(`data`,e=>{s+=e.toString(`utf8`),process.stdout.write(e)}),u.stderr?.on(`data`,e=>{s+=e.toString(`utf8`),process.stderr.write(e)});let d=new Promise((e,t)=>{u.once(`error`,e=>{l=e,t(e)}),u.once(`exit`,(n,r)=>{if(c||n===0){e();return}t(Error([`Built server process exited unexpectedly (code=${String(n)}, signal=${String(r)}).`,s].join(`
3
3
  `)))})});d.catch(()=>void 0);try{return{async close(){c=!0,await terminate(u)},url:await waitForReady({child:u,getStartError:()=>l,getOutput:()=>s,knownUrl:o}),async wait(){await d}}}catch(e){throw c=!0,await terminate(u),e instanceof Error&&e.name===`AbortError`?Error(`Timed out waiting for built eve server to respond.`,{cause:e}):e}}export{startProductionServer};
@@ -1 +1 @@
1
- import{readdir,realpath,stat}from"node:fs/promises";import{basename,dirname,join,resolve,sep}from"node:path";import{resolveDiscoveryProject}from"#discover/project.js";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{discoverExtensionMountDeclarations}from"#discover/discover-agent.js";import{buildExtensionPackage,tryReadExtensionBuildConfig}from"#internal/nitro/host/build-extension.js";import{withExtensionBuildLock}from"#internal/nitro/host/extension-build-lock.js";import{toErrorMessage}from"#shared/errors.js";import{locateExtensionMountPackage}from"#discover/extensions.js";import{createDiskProjectSource}from"#discover/project-source.js";import{EXTENSION_COMPATIBILITY_MANIFEST_FILENAME,readExtensionCompatibilityManifest}from"#compiler/extension-compatibility.js";import{isAuthoredSourcePath,resolveDevelopmentSourceRoot}from"#internal/nitro/dev-runtime-source-snapshot.js";import{resolveTsConfigDependencyPaths}from"#internal/application/tsconfig-dependencies.js";async function prepareDevelopmentWorkspaceExtensions(e){let t=await discoverWorkspaceExtensions(e.appRoot),n=new Map(e.previousExtensions?.map(e=>[e.packageRoot,e])),r=e.changedPaths===void 0?void 0:await Promise.all(e.changedPaths.map(async e=>await toCanonicalPath(e))),i=e.previousExtensions===void 0||r?.length===0;return await Promise.all(t.map(async e=>{let t=n.get(e.packageRoot);(i===!0||t===void 0||!sameBuildInputs(t,e)||r?.some(t=>affectsExtensionBuild(t,e))===!0)&&await withExtensionBuildLock(e.packageRoot,async()=>{await buildExtensionPackage(e.packageRoot,e.config)})})),t}async function buildWorkspaceExtensions(e){let t=await discoverWorkspaceExtensions(e);await Promise.all(t.map(async e=>{if(!await isExtensionDistributionCurrent(e))try{await withExtensionBuildLock(e.packageRoot,async()=>{await isExtensionDistributionCurrent(e)||await buildExtensionPackage(e.packageRoot,e.config)})}catch(t){throw Error(`Failed to build workspace extension "${e.config.packageName}" at ${e.packageRoot}. Fix the error below, then rebuild the agent, or run \`eve extension build\` in that package directory to build it on its own.\n${toErrorMessage(t)}`)}}))}async function discoverWorkspaceExtensions(e){let t=resolve(e),n=await resolveDiscoveryProject(t),r=createDiskProjectSource(),i=await discoverExtensionMountGraph({agentRoot:n.agentRoot,source:r}),a=await toCanonicalPath(resolveDevelopmentSourceRoot(t)),o=new Map;for(let e of i){let n=await resolveWorkspaceExtension({appRoot:t,agentRoot:e.agentRoot,mount:e.mount,source:r,workspaceSourceRoot:a});n!==void 0&&o.set(n.packageRoot,n)}return[...o.values()].sort((e,t)=>e.packageRoot.localeCompare(t.packageRoot))}async function isExtensionDistributionCurrent(e){let t=join(e.config.distRoot,EXTENSION_COMPATIBILITY_MANIFEST_FILENAME),n;try{if((await readExtensionCompatibilityManifest(t)).builtWithEve!==resolveInstalledPackageInfo().version)return!1;n=(await stat(t)).mtimeMs}catch{return!1}let r=await readdir(e.config.sourceRoot,{recursive:!0}),i=[e.config.sourceRoot,...r.map(t=>join(e.config.sourceRoot,t)),...e.buildConfigPaths];return(await Promise.all(i.map(async e=>(await stat(e).catch(()=>void 0))?.mtimeMs??0))).every(e=>e<=n)}async function discoverExtensionMountGraph(e){let t=(await discoverExtensionMountDeclarations(e)).mounts.map(t=>({agentRoot:e.agentRoot,mount:t})),n=join(e.agentRoot,`subagents`);if(await e.source.stat(n)!==`directory`)return t;let r=await e.source.readDirectory(n),i=await Promise.all(r.filter(e=>e.isDirectory()).map(async t=>await discoverExtensionMountGraph({agentRoot:join(n,t.name),source:e.source})));return[...t,...i.flat()]}async function resolveWorkspaceExtension(e){let t=(await locateExtensionMountPackage({source:e.source,agentRoot:e.agentRoot,appRoot:e.appRoot,mount:e.mount.mountRef,namespace:e.mount.namespace})).location;if(t?.authoredSourceRoot===void 0)return;let n=await realpath(t.packageRoot).catch(()=>void 0);if(n===void 0||!isAuthoredSourcePath(n,e.workspaceSourceRoot)||(await stat(t.authoredSourceRoot).catch(()=>void 0))?.isDirectory()!==!0)return;let r=await tryReadExtensionBuildConfig(n);if(r===null)return;let i=[join(n,`package.json`),join(n,`tsconfig.json`),...await resolveTsConfigDependencyPaths(n)];return{config:r,packageRoot:n,buildConfigPaths:[...new Set(i.map(e=>resolve(e)))].sort((e,t)=>e.localeCompare(t))}}function affectsExtensionBuild(e,t){return isPathInsideOrEqual(e,t.config.sourceRoot)||t.buildConfigPaths.includes(e)}function sameBuildConfig(e,t){return e.sourceRoot===t.sourceRoot&&e.distRoot===t.distRoot&&e.outDir===t.outDir&&e.packageName===t.packageName&&e.shortName===t.shortName&&e.runtimeDependencies.length===t.runtimeDependencies.length&&e.runtimeDependencies.every((e,n)=>e===t.runtimeDependencies[n])}function sameBuildInputs(e,t){return sameBuildConfig(e.config,t.config)&&e.buildConfigPaths.length===t.buildConfigPaths.length&&e.buildConfigPaths.every((e,n)=>e===t.buildConfigPaths[n])}function isPathInsideOrEqual(e,t){let n=resolve(e),r=resolve(t);return n===r||n.startsWith(`${r}${sep}`)}async function toCanonicalPath(e){let t=resolve(e),n=[];for(;;)try{return join(await realpath(t),...n.reverse())}catch{let r=dirname(t);if(r===t)return resolve(e);n.push(basename(t)),t=r}}export{buildWorkspaceExtensions,prepareDevelopmentWorkspaceExtensions};
1
+ import{readdir,realpath,stat}from"node:fs/promises";import{resolveDiscoveryProject}from"#discover/project.js";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{basename,dirname,join,resolve,sep}from"node:path";import{buildExtensionPackage,tryReadExtensionBuildConfig}from"#internal/nitro/host/build-extension.js";import{withExtensionBuildLock}from"#internal/nitro/host/extension-build-lock.js";import{toErrorMessage}from"#shared/errors.js";import{locateExtensionMountPackage}from"#discover/extensions.js";import{discoverExtensionMountDeclarations}from"#discover/discover-agent.js";import{createDiskProjectSource}from"#discover/project-source.js";import{EXTENSION_COMPATIBILITY_MANIFEST_FILENAME,readExtensionCompatibilityManifest}from"#compiler/extension-compatibility.js";import{isAuthoredSourcePath,resolveDevelopmentSourceRoot}from"#internal/nitro/dev-runtime-source-snapshot.js";import{resolveTsConfigDependencyPaths}from"#internal/application/tsconfig-dependencies.js";async function prepareDevelopmentWorkspaceExtensions(e){let t=await discoverWorkspaceExtensions(e.appRoot),n=new Map(e.previousExtensions?.map(e=>[e.packageRoot,e])),r=e.changedPaths===void 0?void 0:await Promise.all(e.changedPaths.map(async e=>await toCanonicalPath(e))),i=e.previousExtensions===void 0||r?.length===0;return await Promise.all(t.map(async e=>{let t=n.get(e.packageRoot);(i===!0||t===void 0||!sameBuildInputs(t,e)||r?.some(t=>affectsExtensionBuild(t,e))===!0)&&await withExtensionBuildLock(e.packageRoot,async()=>{await buildExtensionPackage(e.packageRoot,e.config)})})),t}async function buildWorkspaceExtensions(e){let t=await discoverWorkspaceExtensions(e);await Promise.all(t.map(async e=>{if(!await isExtensionDistributionCurrent(e))try{await withExtensionBuildLock(e.packageRoot,async()=>{await isExtensionDistributionCurrent(e)||await buildExtensionPackage(e.packageRoot,e.config)})}catch(t){throw Error(`Failed to build workspace extension "${e.config.packageName}" at ${e.packageRoot}. Fix the error below, then rebuild the agent, or run \`eve extension build\` in that package directory to build it on its own.\n${toErrorMessage(t)}`)}}))}async function discoverWorkspaceExtensions(e){let t=resolve(e),n=await resolveDiscoveryProject(t),r=createDiskProjectSource(),i=await discoverExtensionMountGraph({agentRoot:n.agentRoot,source:r}),a=await toCanonicalPath(resolveDevelopmentSourceRoot(t)),o=new Map;for(let e of i){let n=await resolveWorkspaceExtension({appRoot:t,agentRoot:e.agentRoot,mount:e.mount,source:r,workspaceSourceRoot:a});n!==void 0&&o.set(n.packageRoot,n)}return[...o.values()].sort((e,t)=>e.packageRoot.localeCompare(t.packageRoot))}async function isExtensionDistributionCurrent(e){let t=join(e.config.distRoot,EXTENSION_COMPATIBILITY_MANIFEST_FILENAME),n;try{if((await readExtensionCompatibilityManifest(t)).builtWithEve!==resolveInstalledPackageInfo().version)return!1;n=(await stat(t)).mtimeMs}catch{return!1}let r=await readdir(e.config.sourceRoot,{recursive:!0}),i=[e.config.sourceRoot,...r.map(t=>join(e.config.sourceRoot,t)),...e.buildConfigPaths];return(await Promise.all(i.map(async e=>(await stat(e).catch(()=>void 0))?.mtimeMs??0))).every(e=>e<=n)}async function discoverExtensionMountGraph(e){let t=(await discoverExtensionMountDeclarations(e)).mounts.map(t=>({agentRoot:e.agentRoot,mount:t})),n=join(e.agentRoot,`subagents`);if(await e.source.stat(n)!==`directory`)return t;let r=await e.source.readDirectory(n),i=await Promise.all(r.filter(e=>e.isDirectory()).map(async t=>await discoverExtensionMountGraph({agentRoot:join(n,t.name),source:e.source})));return[...t,...i.flat()]}async function resolveWorkspaceExtension(e){let t=(await locateExtensionMountPackage({source:e.source,agentRoot:e.agentRoot,appRoot:e.appRoot,mount:e.mount.mountRef,namespace:e.mount.namespace})).location;if(t?.authoredSourceRoot===void 0)return;let n=await realpath(t.packageRoot).catch(()=>void 0);if(n===void 0||!isAuthoredSourcePath(n,e.workspaceSourceRoot)||(await stat(t.authoredSourceRoot).catch(()=>void 0))?.isDirectory()!==!0)return;let r=await tryReadExtensionBuildConfig(n);if(r===null)return;let i=[join(n,`package.json`),join(n,`tsconfig.json`),...await resolveTsConfigDependencyPaths(n)];return{config:r,packageRoot:n,buildConfigPaths:[...new Set(i.map(e=>resolve(e)))].sort((e,t)=>e.localeCompare(t))}}function affectsExtensionBuild(e,t){return isPathInsideOrEqual(e,t.config.sourceRoot)||t.buildConfigPaths.includes(e)}function sameBuildConfig(e,t){return e.sourceRoot===t.sourceRoot&&e.distRoot===t.distRoot&&e.outDir===t.outDir&&e.packageName===t.packageName&&e.shortName===t.shortName&&e.runtimeDependencies.length===t.runtimeDependencies.length&&e.runtimeDependencies.every((e,n)=>e===t.runtimeDependencies[n])}function sameBuildInputs(e,t){return sameBuildConfig(e.config,t.config)&&e.buildConfigPaths.length===t.buildConfigPaths.length&&e.buildConfigPaths.every((e,n)=>e===t.buildConfigPaths[n])}function isPathInsideOrEqual(e,t){let n=resolve(e),r=resolve(t);return n===r||n.startsWith(`${r}${sep}`)}async function toCanonicalPath(e){let t=resolve(e),n=[];for(;;)try{return join(await realpath(t),...n.reverse())}catch{let r=dirname(t);if(r===t)return resolve(e);n.push(basename(t)),t=r}}export{buildWorkspaceExtensions,prepareDevelopmentWorkspaceExtensions};
@@ -1,6 +1,6 @@
1
1
  import { type Span } from "#compiled/@opentelemetry/api/index.js";
2
2
  /** Inputs for {@link traceChannelRequest}. */
3
- export interface TraceChannelRequestInput {
3
+ interface TraceChannelRequestInput {
4
4
  readonly request: Request;
5
5
  readonly routeKey: string;
6
6
  }
@@ -30,3 +30,4 @@ export interface TraceChannelRequestInput {
30
30
  * tracing overhead.
31
31
  */
32
32
  export declare function traceChannelRequest<T extends Response>(input: TraceChannelRequestInput, handler: (span: Span | undefined) => Promise<T>): Promise<T>;
33
+ export {};
@@ -1,7 +1,7 @@
1
1
  import type { RouteHandlerArgs } from "#channel/routes.js";
2
2
  import type { RunHandle, RunInput } from "#channel/types.js";
3
3
  type AgentInfoRouteResponse = () => Promise<Response>;
4
- export interface HomeRouteMetadata {
4
+ interface HomeRouteMetadata {
5
5
  readonly agentName: string;
6
6
  }
7
7
  /**
@@ -11,7 +11,7 @@ import { type NitroArtifactsConfig } from "#internal/nitro/routes/runtime-artifa
11
11
  * against a registered URL pattern, then calls the matched channel's
12
12
  * `fetch` with a `RouteContext` built from `runtime`.
13
13
  */
14
- export interface NitroChannelRuntimeBundle {
14
+ interface NitroChannelRuntimeBundle {
15
15
  readonly agentName: string;
16
16
  readonly channels: readonly ResolvedChannelDefinition[];
17
17
  readonly resolveRemoteAgentStreamHeaders?: RemoteAgentStreamHeadersResolver;
@@ -26,3 +26,4 @@ export interface NitroChannelRuntimeBundle {
26
26
  * compiled bundle on each request.
27
27
  */
28
28
  export declare function resolveNitroChannelRuntimeBundle(config: NitroArtifactsConfig): Promise<NitroChannelRuntimeBundle>;
29
+ export {};
@@ -27,7 +27,7 @@ export type GatewayCredentialSource = {
27
27
  * whatever their vantage point can see — env files on disk, the process
28
28
  * environment, an SDK token lookup — and the resolver ranks it.
29
29
  */
30
- export interface GatewayCredentialEvidence {
30
+ interface GatewayCredentialEvidence {
31
31
  /** `AI_GATEWAY_API_KEY` found in an app env file (the file's name). */
32
32
  readonly apiKeyFile?: string;
33
33
  /** `AI_GATEWAY_API_KEY` present in the process environment. */
@@ -58,3 +58,4 @@ export declare function resolveModelEndpointStatus(routing: ModelRouting, creden
58
58
  readonly state: ChatGptEndpointState;
59
59
  readonly accountLabel?: string;
60
60
  }): ModelEndpointStatus;
61
+ export {};
@@ -1,10 +1,10 @@
1
1
  import { type EveVercelAgentTarget, type EveVercelBuildTarget } from "#internal/vercel/eve-service-contribution.js";
2
2
  import type { VercelRouteConfig, VercelServiceConfig } from "#internal/vercel/vercel-services-config.js";
3
- export interface EveVercelServiceTarget {
3
+ interface EveVercelServiceTarget {
4
4
  readonly agent: EveVercelAgentTarget;
5
5
  readonly target: EveVercelBuildTarget;
6
6
  }
7
- export interface AssembledEveVercelServices {
7
+ interface AssembledEveVercelServices {
8
8
  readonly rootDirectories: readonly string[];
9
9
  readonly routes: readonly VercelRouteConfig[];
10
10
  readonly services: Readonly<Record<string, VercelServiceConfig>>;
@@ -15,3 +15,4 @@ export declare function assembleEveVercelServices(input: {
15
15
  readonly routes?: readonly VercelRouteConfig[];
16
16
  readonly services?: Readonly<Record<string, VercelServiceConfig>>;
17
17
  }): AssembledEveVercelServices;
18
+ export {};
@@ -1 +1 @@
1
- import{mkdir,rm,writeFile}from"node:fs/promises";import{join,relative}from"node:path";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{VERCEL_EVE_AGENT_SUMMARY_OUTPUT_PATH,VERCEL_EVE_MULTI_AGENT_SUMMARY_KIND,VERCEL_EVE_MULTI_AGENT_SUMMARY_VERSION}from"#internal/vercel-agent-summary.js";import{readVercelJsonFile}from"#internal/vercel/vercel-services-config.js";import{assembleEveVercelServices}from"#internal/vercel/assemble-eve-services.js";import{buildMultiAgentLandingPage}from"#internal/vercel/build-multi-agent-landing-page.js";import{quoteVercelShellArgument,toVercelRelativePath}from"#internal/vercel/build-command.js";import{resolveEveBinaryPath}from"#shared/resolve-eve-binary.js";function createMultiAgentSummary(e){return{agents:e.members.map(t=>({name:t.name,routePrefix:`/eve/${t.name}`,summaryPath:relative(e.root,join(t.appRoot,VERCEL_EVE_AGENT_SUMMARY_OUTPUT_PATH)).replaceAll(`\\`,`/`)})),generatorVersion:resolveInstalledPackageInfo().version,kind:VERCEL_EVE_MULTI_AGENT_SUMMARY_KIND,schemaVersion:VERCEL_EVE_MULTI_AGENT_SUMMARY_VERSION}}async function buildAgentWorkspace(e,t={}){let n=await readVercelJsonFile(join(e.root,`vercel.json`));if(n.services!==void 0||n.experimentalServices!==void 0||n.experimentalServicesV2!==void 0)throw Error("This project defines its Vercel service graph in vercel.json. Compose generated workspace agents from a programmatic vercel.ts with `withEve` from `eve/vercel`, manually define every service and run `vercel build`, or run `eve build` from an individual agent directory.");let r=e.members.map(n=>({agent:{appRoot:n.appRoot,buildCommand:`node ${quoteVercelShellArgument(toVercelRelativePath(n.appRoot,resolveEveBinaryPath(n.appRoot)))} build${t.skipSandboxPrewarm===!0?` --skip-sandbox-prewarm`:``}`,devCommand:`node ${quoteVercelShellArgument(toVercelRelativePath(n.appRoot,resolveEveBinaryPath(n.appRoot)))} dev --no-ui`,name:n.name,publicRoutePrefix:`/eve/${n.name}`,workspaceMember:!0},target:{hostOutputDirectory:join(e.root,`.vercel`,`output`),projectRoot:e.root}})),i=assembleEveVercelServices({agents:r}),a=join(e.root,`.vercel`,`output`);await rm(a,{force:!0,recursive:!0}),await mkdir(a,{recursive:!0}),await Promise.all(i.rootDirectories.map(e=>mkdir(e,{recursive:!0}))),await mkdir(join(e.root,`.eve`),{recursive:!0}),await writeFile(join(e.root,VERCEL_EVE_AGENT_SUMMARY_OUTPUT_PATH),`${JSON.stringify(createMultiAgentSummary(e),null,2)}\n`);let o=join(a,`static`);return await mkdir(o,{recursive:!0}),await writeFile(join(o,`index.html`),buildMultiAgentLandingPage(e)),await writeFile(join(a,`config.json`),`${JSON.stringify({version:3,routes:[...i.routes,{handle:`filesystem`}],services:i.services},null,2)}\n`),a}export{buildAgentWorkspace};
1
+ import{mkdir,rm,writeFile}from"node:fs/promises";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{join,relative}from"node:path";import{VERCEL_EVE_AGENT_SUMMARY_OUTPUT_PATH,VERCEL_EVE_MULTI_AGENT_SUMMARY_KIND,VERCEL_EVE_MULTI_AGENT_SUMMARY_VERSION}from"#internal/vercel-agent-summary.js";import{readVercelJsonFile}from"#internal/vercel/vercel-services-config.js";import{assembleEveVercelServices}from"#internal/vercel/assemble-eve-services.js";import{buildMultiAgentLandingPage}from"#internal/vercel/build-multi-agent-landing-page.js";import{quoteVercelShellArgument,toVercelRelativePath}from"#internal/vercel/build-command.js";import{resolveEveBinaryPath}from"#shared/resolve-eve-binary.js";function createMultiAgentSummary(e){return{agents:e.members.map(t=>({name:t.name,routePrefix:`/eve/${t.name}`,summaryPath:relative(e.root,join(t.appRoot,VERCEL_EVE_AGENT_SUMMARY_OUTPUT_PATH)).replaceAll(`\\`,`/`)})),generatorVersion:resolveInstalledPackageInfo().version,kind:VERCEL_EVE_MULTI_AGENT_SUMMARY_KIND,schemaVersion:VERCEL_EVE_MULTI_AGENT_SUMMARY_VERSION}}async function buildAgentWorkspace(e,t={}){let n=await readVercelJsonFile(join(e.root,`vercel.json`));if(n.services!==void 0||n.experimentalServices!==void 0||n.experimentalServicesV2!==void 0)throw Error("This project defines its Vercel service graph in vercel.json. Compose generated workspace agents from a programmatic vercel.ts with `withEve` from `eve/vercel`, manually define every service and run `vercel build`, or run `eve build` from an individual agent directory.");let r=e.members.map(n=>({agent:{appRoot:n.appRoot,buildCommand:`node ${quoteVercelShellArgument(toVercelRelativePath(n.appRoot,resolveEveBinaryPath(n.appRoot)))} build${t.skipSandboxPrewarm===!0?` --skip-sandbox-prewarm`:``}`,devCommand:`node ${quoteVercelShellArgument(toVercelRelativePath(n.appRoot,resolveEveBinaryPath(n.appRoot)))} dev --no-ui`,name:n.name,publicRoutePrefix:`/eve/${n.name}`,workspaceMember:!0},target:{hostOutputDirectory:join(e.root,`.vercel`,`output`),projectRoot:e.root}})),i=assembleEveVercelServices({agents:r}),a=join(e.root,`.vercel`,`output`);await rm(a,{force:!0,recursive:!0}),await mkdir(a,{recursive:!0}),await Promise.all(i.rootDirectories.map(e=>mkdir(e,{recursive:!0}))),await mkdir(join(e.root,`.eve`),{recursive:!0}),await writeFile(join(e.root,VERCEL_EVE_AGENT_SUMMARY_OUTPUT_PATH),`${JSON.stringify(createMultiAgentSummary(e),null,2)}\n`);let o=join(a,`static`);return await mkdir(o,{recursive:!0}),await writeFile(join(o,`index.html`),buildMultiAgentLandingPage(e)),await writeFile(join(a,`config.json`),`${JSON.stringify({version:3,routes:[...i.routes,{handle:`filesystem`}],services:i.services},null,2)}\n`),a}export{buildAgentWorkspace};
@@ -11,7 +11,7 @@ export interface EveVercelBuildTarget {
11
11
  readonly hostOutputDirectory: string;
12
12
  readonly projectRoot: string;
13
13
  }
14
- export interface EveVercelServiceContribution {
14
+ interface EveVercelServiceContribution {
15
15
  readonly homeRouteSrc: string | undefined;
16
16
  readonly rootDirectory: string;
17
17
  readonly routeSrc: string;
@@ -23,11 +23,10 @@ export declare function createEveServiceName(name: string | undefined): string;
23
23
  export declare function createEveServiceRouteSrc(publicRoutePrefix: string): string;
24
24
  export declare function createEveRequestPathRoute(routeSrc: string): VercelRouteConfig;
25
25
  export declare function createEveHomeRouteSrc(publicRoutePrefix: string): string | undefined;
26
- /** Route a member's public base path to its package-owned home channel. */
27
- export declare function createEveHomePathRoute(publicRoutePrefix: string): VercelRouteConfig | undefined;
28
26
  export declare function createEvePublicRoute(serviceName: string, routeSrc: string): VercelRouteConfig;
29
27
  /** Compile one eve agent into its complete Vercel service and ingress contribution. */
30
28
  export declare function compileEveVercelService(input: {
31
29
  readonly agent: EveVercelAgentTarget;
32
30
  readonly target: EveVercelBuildTarget;
33
31
  }): EveVercelServiceContribution;
32
+ export {};
@@ -1 +1 @@
1
- import{createHash}from"node:crypto";import{EVE_ROUTE_PREFIX}from"#protocol/routes.js";import{joinEveRoutePath}from"#shared/eve-route-path.js";import{join}from"node:path";import{EVE_INTERNAL_AGENT_WORKSPACE_MEMBER_ENV,EVE_INTERNAL_BUILD_OUTPUT_DIRECTORY_ENV,EVE_INTERNAL_HOST_BUILD_OUTPUT_DIRECTORY_ENV}from"#internal/application/build-output-environment.js";import{EVE_PUBLIC_ROUTE_PREFIX_ENV,normalizePublicRoutePrefix}from"#shared/public-route-prefix.js";import{quoteVercelShellArgument,toVercelRelativePath}from"#internal/vercel/build-command.js";import{MAX_VERCEL_SERVICE_NAME_LENGTH,assertValidVercelServiceName,isValidVercelServiceName}from"#internal/vercel/vercel-service-name.js";function createServiceNameHash(e){return[...createHash(`sha256`).update(e).digest().subarray(0,10)].map(e=>String.fromCharCode(97+e%26)).join(``)}function createEveServiceName(e){if(e===void 0)return`eve`;let t=`eve-${e}`;if(isValidVercelServiceName(t))return t;let n=createServiceNameHash(e),r=e.replace(/[^a-z_-]+/g,`-`).replace(/^[^a-z]+|[^a-z]+$/g,``)||`agent`,i=MAX_VERCEL_SERVICE_NAME_LENGTH-5-n.length,a=`eve-${r.slice(0,i).replace(/[^a-z]+$/g,``)||`agent`}-${n}`;return assertValidVercelServiceName(a,`Generated eve service name`),a}function escapeVercelRouteLiteral(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function createEveServiceRouteSrc(e){if(e.length===0)return`^${EVE_ROUTE_PREFIX}/(.*)$`;let t=e.startsWith(`/`)?e:`/${e}`;return`^${escapeVercelRouteLiteral(joinEveRoutePath(t,EVE_ROUTE_PREFIX))}/(.*)$`}function createEveRequestPathRoute(e){return{src:e,transforms:[{args:`${EVE_ROUTE_PREFIX}/$1`,op:`set`,type:`request.path`}]}}function createEveHomeRouteSrc(e){return e.length===0?void 0:`^${escapeVercelRouteLiteral(e.startsWith(`/`)?e:`/${e}`)}/?$`}function createEveHomePathRoute(e){let t=createEveHomeRouteSrc(e);return t===void 0?void 0:{src:t,transforms:[{args:`/`,op:`set`,type:`request.path`}]}}function createEvePublicRoute(e,t){return{destination:{service:e,type:`service`},src:t}}function createIsolatedService(e){let t=join(e.projectRoot,`.eve/vercel-services`,e.serviceName),n=join(t,`.vercel`,`output`),r=normalizePublicRoutePrefix(e.agent.publicRoutePrefix),i=r===void 0?``:` && export ${EVE_PUBLIC_ROUTE_PREFIX_ENV}=${quoteVercelShellArgument(r)}`,a=e.agent.workspaceMember===!0?` && export ${EVE_INTERNAL_AGENT_WORKSPACE_MEMBER_ENV}=1`:``,o=quoteVercelShellArgument(toVercelRelativePath(t,e.agent.appRoot));return{buildCommand:`cd ${o} && export ${EVE_INTERNAL_BUILD_OUTPUT_DIRECTORY_ENV}=${quoteVercelShellArgument(toVercelRelativePath(e.agent.appRoot,n))} && export ${EVE_INTERNAL_HOST_BUILD_OUTPUT_DIRECTORY_ENV}=${quoteVercelShellArgument(toVercelRelativePath(e.agent.appRoot,e.hostOutputDirectory))}${i}${a} && ${e.agent.buildCommand}`,...e.agent.devCommand===void 0?{}:{devCommand:`cd ${o}${i}${a} && ${e.agent.devCommand}`},root:toVercelRelativePath(e.projectRoot,t),rootDirectory:t}}function compileEveVercelService(e){let t=createEveServiceName(e.agent.name),n=createEveServiceRouteSrc(e.agent.publicRoutePrefix),r=e.agent.workspaceMember===!0?createEveHomeRouteSrc(e.agent.publicRoutePrefix):void 0,i=e.agent.workspaceMember===!0?createEveHomePathRoute(e.agent.publicRoutePrefix):void 0,a=createIsolatedService({agent:e.agent,hostOutputDirectory:e.target.hostOutputDirectory,projectRoot:e.target.projectRoot,serviceName:t});return{homeRouteSrc:r,rootDirectory:a.rootDirectory,routeSrc:n,service:{buildCommand:a.buildCommand,devCommand:a.devCommand,framework:`eve`,outputDirectory:`.vercel/output`,root:a.root,routes:[...i===void 0?[]:[i],createEveRequestPathRoute(n)],...e.agent.publicRoutePrefix.length>0?{routePrefix:e.agent.publicRoutePrefix}:{}},serviceName:t}}export{compileEveVercelService,createEveHomePathRoute,createEveHomeRouteSrc,createEvePublicRoute,createEveRequestPathRoute,createEveServiceName,createEveServiceRouteSrc};
1
+ import{createHash}from"node:crypto";import{EVE_ROUTE_PREFIX}from"#protocol/routes.js";import{joinEveRoutePath}from"#shared/eve-route-path.js";import{join}from"node:path";import{EVE_INTERNAL_AGENT_WORKSPACE_MEMBER_ENV,EVE_INTERNAL_BUILD_OUTPUT_DIRECTORY_ENV,EVE_INTERNAL_HOST_BUILD_OUTPUT_DIRECTORY_ENV}from"#internal/application/build-output-environment.js";import{EVE_PUBLIC_ROUTE_PREFIX_ENV,normalizePublicRoutePrefix}from"#shared/public-route-prefix.js";import{quoteVercelShellArgument,toVercelRelativePath}from"#internal/vercel/build-command.js";import{MAX_VERCEL_SERVICE_NAME_LENGTH,assertValidVercelServiceName,isValidVercelServiceName}from"#internal/vercel/vercel-service-name.js";function createServiceNameHash(e){return[...createHash(`sha256`).update(e).digest().subarray(0,10)].map(e=>String.fromCharCode(97+e%26)).join(``)}function createEveServiceName(e){if(e===void 0)return`eve`;let t=`eve-${e}`;if(isValidVercelServiceName(t))return t;let n=createServiceNameHash(e),r=e.replace(/[^a-z_-]+/g,`-`).replace(/^[^a-z]+|[^a-z]+$/g,``)||`agent`,i=MAX_VERCEL_SERVICE_NAME_LENGTH-5-n.length,a=`eve-${r.slice(0,i).replace(/[^a-z]+$/g,``)||`agent`}-${n}`;return assertValidVercelServiceName(a,`Generated eve service name`),a}function escapeVercelRouteLiteral(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function createEveServiceRouteSrc(e){if(e.length===0)return`^${EVE_ROUTE_PREFIX}/(.*)$`;let t=e.startsWith(`/`)?e:`/${e}`;return`^${escapeVercelRouteLiteral(joinEveRoutePath(t,EVE_ROUTE_PREFIX))}/(.*)$`}function createEveRequestPathRoute(e){return{src:e,transforms:[{args:`${EVE_ROUTE_PREFIX}/$1`,op:`set`,type:`request.path`}]}}function createEveHomeRouteSrc(e){return e.length===0?void 0:`^${escapeVercelRouteLiteral(e.startsWith(`/`)?e:`/${e}`)}/?$`}function createEveHomePathRoute(e){let t=createEveHomeRouteSrc(e);return t===void 0?void 0:{src:t,transforms:[{args:`/`,op:`set`,type:`request.path`}]}}function createEvePublicRoute(e,t){return{destination:{service:e,type:`service`},src:t}}function createIsolatedService(e){let t=join(e.projectRoot,`.eve/vercel-services`,e.serviceName),n=join(t,`.vercel`,`output`),r=normalizePublicRoutePrefix(e.agent.publicRoutePrefix),i=r===void 0?``:` && export ${EVE_PUBLIC_ROUTE_PREFIX_ENV}=${quoteVercelShellArgument(r)}`,a=e.agent.workspaceMember===!0?` && export ${EVE_INTERNAL_AGENT_WORKSPACE_MEMBER_ENV}=1`:``,o=quoteVercelShellArgument(toVercelRelativePath(t,e.agent.appRoot));return{buildCommand:`cd ${o} && export ${EVE_INTERNAL_BUILD_OUTPUT_DIRECTORY_ENV}=${quoteVercelShellArgument(toVercelRelativePath(e.agent.appRoot,n))} && export ${EVE_INTERNAL_HOST_BUILD_OUTPUT_DIRECTORY_ENV}=${quoteVercelShellArgument(toVercelRelativePath(e.agent.appRoot,e.hostOutputDirectory))}${i}${a} && ${e.agent.buildCommand}`,...e.agent.devCommand===void 0?{}:{devCommand:`cd ${o}${i}${a} && ${e.agent.devCommand}`},root:toVercelRelativePath(e.projectRoot,t),rootDirectory:t}}function compileEveVercelService(e){let t=createEveServiceName(e.agent.name),n=createEveServiceRouteSrc(e.agent.publicRoutePrefix),r=e.agent.workspaceMember===!0?createEveHomeRouteSrc(e.agent.publicRoutePrefix):void 0,i=e.agent.workspaceMember===!0?createEveHomePathRoute(e.agent.publicRoutePrefix):void 0,a=createIsolatedService({agent:e.agent,hostOutputDirectory:e.target.hostOutputDirectory,projectRoot:e.target.projectRoot,serviceName:t});return{homeRouteSrc:r,rootDirectory:a.rootDirectory,routeSrc:n,service:{buildCommand:a.buildCommand,devCommand:a.devCommand,framework:`eve`,outputDirectory:`.vercel/output`,root:a.root,routes:[...i===void 0?[]:[i],createEveRequestPathRoute(n)],...e.agent.publicRoutePrefix.length>0?{routePrefix:e.agent.publicRoutePrefix}:{}},serviceName:t}}export{compileEveVercelService,createEveHomeRouteSrc,createEvePublicRoute,createEveRequestPathRoute,createEveServiceName,createEveServiceRouteSrc};
@@ -1,5 +1,5 @@
1
1
  import { z } from "#compiled/zod/index.js";
2
- export declare const VercelProjectLinkSchema: z.ZodObject<{
2
+ declare const VercelProjectLinkSchema: z.ZodObject<{
3
3
  projectId: z.ZodString;
4
4
  orgId: z.ZodString;
5
5
  projectName: z.ZodOptional<z.ZodString>;
@@ -8,3 +8,4 @@ export declare const VercelProjectLinkSchema: z.ZodObject<{
8
8
  export type VercelProjectLink = z.infer<typeof VercelProjectLinkSchema>;
9
9
  /** Reads a validated Vercel project link without mutating local project state. */
10
10
  export declare function readVercelProjectLink(projectPath: string): Promise<VercelProjectLink | undefined>;
11
+ export {};
@@ -1 +1 @@
1
- import{readFile}from"node:fs/promises";import{z}from"#compiled/zod/index.js";import{dirname,join,relative}from"node:path";const VercelProjectLinkSchema=z.object({projectId:z.string().min(1),orgId:z.string().min(1),projectName:z.string().min(1).optional()}),VercelRepoProjectSchema=z.object({directory:z.string().min(1),id:z.string().min(1),name:z.string().min(1),orgId:z.string().min(1).optional()}),VercelRepoLinkSchema=z.object({orgId:z.string().min(1).optional(),projects:z.array(VercelRepoProjectSchema)});function normalizeDirectory(e){return e===`.`?e:e.replaceAll(`\\`,`/`).replace(/\/+$/,``)}function containsDirectory(e,t){return e===`.`||t===e||t.startsWith(`${e}/`)}function resolveRepoProject(e,t,n){let r=normalizeDirectory(relative(t,n)),i=e.projects.filter(e=>containsDirectory(normalizeDirectory(e.directory),r)),a=Math.max(...i.map(e=>e.directory.length)),o=i.filter(e=>e.directory.length===a),s=o.length===1?o[0]:void 0;if(s===void 0)return;let c=s.orgId??e.orgId;return c===void 0?void 0:{orgId:c,projectId:s.id,projectName:s.name}}async function readProjectFile(e){try{let t=await readFile(join(e,`.vercel`,`project.json`),`utf8`),n=VercelProjectLinkSchema.safeParse(JSON.parse(t));return n.success?n.data:void 0}catch{return}}async function readRepoFile(e){try{let t=await readFile(join(e,`.vercel`,`repo.json`),`utf8`),n=VercelRepoLinkSchema.safeParse(JSON.parse(t));return n.success?n.data:void 0}catch{return}}async function readRepoProjectLink(e){let t=e;for(;;){let n=await readRepoFile(t);if(n!==void 0)return resolveRepoProject(n,t,e);let r=dirname(t);if(r===t)return;t=r}}async function readVercelProjectLink(e){return await readProjectFile(e)??await readRepoProjectLink(e)}export{VercelProjectLinkSchema,readVercelProjectLink};
1
+ import{readFile}from"node:fs/promises";import{z}from"#compiled/zod/index.js";import{dirname,join,relative}from"node:path";const VercelProjectLinkSchema=z.object({projectId:z.string().min(1),orgId:z.string().min(1),projectName:z.string().min(1).optional()}),VercelRepoProjectSchema=z.object({directory:z.string().min(1),id:z.string().min(1),name:z.string().min(1),orgId:z.string().min(1).optional()}),VercelRepoLinkSchema=z.object({orgId:z.string().min(1).optional(),projects:z.array(VercelRepoProjectSchema)});function normalizeDirectory(e){return e===`.`?e:e.replaceAll(`\\`,`/`).replace(/\/+$/,``)}function containsDirectory(e,t){return e===`.`||t===e||t.startsWith(`${e}/`)}function resolveRepoProject(e,t,n){let r=normalizeDirectory(relative(t,n)),i=e.projects.filter(e=>containsDirectory(normalizeDirectory(e.directory),r)),a=Math.max(...i.map(e=>e.directory.length)),o=i.filter(e=>e.directory.length===a),s=o.length===1?o[0]:void 0;if(s===void 0)return;let c=s.orgId??e.orgId;return c===void 0?void 0:{orgId:c,projectId:s.id,projectName:s.name}}async function readProjectFile(e){try{let t=await readFile(join(e,`.vercel`,`project.json`),`utf8`),n=VercelProjectLinkSchema.safeParse(JSON.parse(t));return n.success?n.data:void 0}catch{return}}async function readRepoFile(e){try{let t=await readFile(join(e,`.vercel`,`repo.json`),`utf8`),n=VercelRepoLinkSchema.safeParse(JSON.parse(t));return n.success?n.data:void 0}catch{return}}async function readRepoProjectLink(e){let t=e;for(;;){let n=await readRepoFile(t);if(n!==void 0)return resolveRepoProject(n,t,e);let r=dirname(t);if(r===t)return;t=r}}async function readVercelProjectLink(e){return await readProjectFile(e)??await readRepoProjectLink(e)}export{readVercelProjectLink};
@@ -1 +1 @@
1
- import{readFile}from"node:fs/promises";import{basename,join}from"node:path";import{resolvePackageSourceFilePath}from"#internal/application/package.js";import{LOCAL_WORKFLOW_WORLD_DATA_DIRECTORY_RELATIVE_PATH}from"#internal/workflow/local-world-data-directory.js";import{createDiskRuntimeCompiledArtifactsSource}from"#runtime/compiled-artifacts-source.js";import{DEVELOPMENT_WORKER_APP_ROOT_ENV,DEVELOPMENT_WORKFLOW_DELIVERY_HEADER,DEVELOPMENT_WORKFLOW_SECRET_ENV,DEVELOPMENT_WORKFLOW_STREAM_ROUTE,DEVELOPMENT_WORKFLOW_TRANSPORT_HEADER,DEVELOPMENT_WORKFLOW_WORLD_ROUTE,DEVELOPMENT_WORLD_OPERATIONS}from"#internal/workflow/development-world-protocol.js";import{timingSafeEqualStrings}from"#internal/nitro/dev-client-address.js";import{decodeDevelopmentWorldJson,decodeDevelopmentWorldValue,deserializeDevelopmentWorldError,encodeDevelopmentWorldValue}from"#internal/workflow/development-world-codec.js";import{getDevelopmentWorkflowGeneration,withDevelopmentWorkflowGeneration}from"#internal/workflow/development-generation-context.js";var MissingDevelopmentGenerationError=class extends Error{constructor(e,t){super(`Workflow run references missing development generation "${e}". Remove "${LOCAL_WORKFLOW_WORLD_DATA_DIRECTORY_RELATIVE_PATH}" to discard the app's active local Workflow runs.`,t===void 0?void 0:{cause:t}),this.name=`MissingDevelopmentGenerationError`}};async function call(e,t=[]){let n=await fetchDevelopmentWorld(DEVELOPMENT_WORKFLOW_WORLD_ROUTE,{body:encodeDevelopmentWorldValue({arguments:t,operation:e}),method:`POST`});return decodeDevelopmentWorldValue(await n.text())}function createDevelopmentWorkflowWorld(){let e=buildForwardedOperations();return{specVersion:8,async getDeploymentId(){return getDevelopmentWorkflowGeneration()?.generationId??await call(`getDeploymentId`)},resolveLatestDeploymentId:e.topLevel.resolveLatestDeploymentId,queue:e.topLevel.queue,createQueueHandler,runs:e.groups.runs,steps:e.groups.steps,events:e.groups.events,hooks:e.groups.hooks,streams:{...e.groups.streams,get:async(e,t,n)=>{let r=new URL(resolveDevelopmentWorldBaseUrl());r.pathname=DEVELOPMENT_WORKFLOW_STREAM_ROUTE,r.searchParams.set(`runId`,e),r.searchParams.set(`name`,t),n!==void 0&&r.searchParams.set(`startIndex`,String(n));let i=await fetchDevelopmentWorld(r,{method:`GET`});if(i.body===null)throw Error(`Development Workflow stream response had no body.`);return i.body}},async start(){},async close(){}}}function buildForwardedOperations(){let e={},t={};for(let n of DEVELOPMENT_WORLD_OPERATIONS){let forward=async(...e)=>await call(n,e),r=n.indexOf(`.`);r===-1?t[n]=forward:(e[n.slice(0,r)]??={})[n.slice(r+1)]=forward}return{groups:e,topLevel:t}}function createQueueHandler(e,t){return async n=>{let r=readRequiredEnvironment(DEVELOPMENT_WORKFLOW_SECRET_ENV),i=n.headers.get(DEVELOPMENT_WORKFLOW_DELIVERY_HEADER);if(i===null||!timingSafeEqualStrings(i,r))return Response.json({error:`Workflow delivery is not trusted.`},{status:401});let a=n.headers.get(`x-vqs-queue-name`),o=n.headers.get(`x-vqs-message-id`),s=Number(n.headers.get(`x-vqs-message-attempt`));if(a===null||!a.startsWith(e)||o===null||!Number.isInteger(s)||s<1||n.body===null)return Response.json({error:`Workflow delivery is malformed.`},{status:400});let c=decodeDevelopmentWorldJson(await n.text());try{let e=readRequiredEnvironment(DEVELOPMENT_WORKER_APP_ROOT_ENV),n=await resolveDeliveryGenerationId(c),r=await readGenerationRuntimeAppRoot(e,n),i=await withDevelopmentWorkflowGeneration({generationId:n,source:createDiskRuntimeCompiledArtifactsSource(r,{durableReference:`development-generation`,moduleMapLoaderPath:resolvePackageSourceFilePath(`src/internal/authored-module-map-loader.ts`),sandboxAppRoot:e})},async()=>await t(c,{attempt:s,messageId:o,queueName:a}));return Response.json(i===void 0?{ok:!0}:{timeoutSeconds:i.timeoutSeconds})}catch(e){return e instanceof MissingDevelopmentGenerationError?(console.error(`[eve:dev] ${e.message}`),Response.json({ok:!0})):Response.json(String(e),{status:500})}}}async function resolveDeliveryGenerationId(e){if(!isRecord(e)||e.__healthCheck===!0)return await call(`resolveLatestDeploymentId`);let t=isRecord(e.runInput)?e.runInput:void 0;if(t!==void 0)return typeof t.deploymentId==`string`?t.deploymentId:await call(`resolveLatestDeploymentId`);let n=typeof e.runId==`string`?e.runId:typeof e.workflowRunId==`string`?e.workflowRunId:void 0;return n===void 0?await call(`resolveLatestDeploymentId`):(await call(`runs.get`,[n,{resolveData:`none`}])).deploymentId}async function readGenerationRuntimeAppRoot(e,t){if(t.length===0||t===`.`||t===`..`||basename(t)!==t)throw Error(`Workflow run references invalid development generation "${t}".`);let n=join(e,`.eve`,`dev-runtime`,`snapshots`,t,`generation.json`),r;try{r=await readFile(n,`utf8`)}catch(e){throw isFileNotFoundError(e)?new MissingDevelopmentGenerationError(t,e):e}let i;try{i=JSON.parse(r)}catch(e){throw Error(`Development generation "${t}" has invalid metadata.`,{cause:e})}if(!isRecord(i)||typeof i.runtimeAppRoot!=`string`)throw Error(`Development generation "${t}" has invalid metadata.`);return i.runtimeAppRoot}function isFileNotFoundError(e){return e instanceof Error&&`code`in e&&e.code===`ENOENT`}function isRecord(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function fetchDevelopmentWorld(e,t){let n=e instanceof URL?e:new URL(e,resolveDevelopmentWorldBaseUrl()),r=new Headers(t.headers);r.set(DEVELOPMENT_WORKFLOW_TRANSPORT_HEADER,readRequiredEnvironment(DEVELOPMENT_WORKFLOW_SECRET_ENV));let i=await fetch(n,{...t,headers:r});if(!i.ok){let e=await i.text(),t=readDevelopmentWorldError(e);throw t===void 0?Error(`Development Workflow World request failed (${String(i.status)}): ${e}`):t}return i}function readDevelopmentWorldError(e){try{return deserializeDevelopmentWorldError(decodeDevelopmentWorldValue(e))}catch{return}}function resolveDevelopmentWorldBaseUrl(){return readRequiredEnvironment(`WORKFLOW_LOCAL_BASE_URL`)}function readRequiredEnvironment(e){let t=process.env[e];if(t===void 0||t.length===0)throw Error(`Development Workflow transport is missing ${e}.`);return t}export{MissingDevelopmentGenerationError,createDevelopmentWorkflowWorld};
1
+ import{readFile}from"node:fs/promises";import{resolvePackageSourceFilePath}from"#internal/application/package.js";import{basename,join}from"node:path";import{LOCAL_WORKFLOW_WORLD_DATA_DIRECTORY_RELATIVE_PATH}from"#internal/workflow/local-world-data-directory.js";import{createDiskRuntimeCompiledArtifactsSource}from"#runtime/compiled-artifacts-source.js";import{DEVELOPMENT_WORKER_APP_ROOT_ENV,DEVELOPMENT_WORKFLOW_DELIVERY_HEADER,DEVELOPMENT_WORKFLOW_SECRET_ENV,DEVELOPMENT_WORKFLOW_STREAM_ROUTE,DEVELOPMENT_WORKFLOW_TRANSPORT_HEADER,DEVELOPMENT_WORKFLOW_WORLD_ROUTE,DEVELOPMENT_WORLD_OPERATIONS}from"#internal/workflow/development-world-protocol.js";import{timingSafeEqualStrings}from"#internal/nitro/dev-client-address.js";import{decodeDevelopmentWorldJson,decodeDevelopmentWorldValue,deserializeDevelopmentWorldError,encodeDevelopmentWorldValue}from"#internal/workflow/development-world-codec.js";import{getDevelopmentWorkflowGeneration,withDevelopmentWorkflowGeneration}from"#internal/workflow/development-generation-context.js";var MissingDevelopmentGenerationError=class extends Error{constructor(e,t){super(`Workflow run references missing development generation "${e}". Remove "${LOCAL_WORKFLOW_WORLD_DATA_DIRECTORY_RELATIVE_PATH}" to discard the app's active local Workflow runs.`,t===void 0?void 0:{cause:t}),this.name=`MissingDevelopmentGenerationError`}};async function call(e,t=[]){let n=await fetchDevelopmentWorld(DEVELOPMENT_WORKFLOW_WORLD_ROUTE,{body:encodeDevelopmentWorldValue({arguments:t,operation:e}),method:`POST`});return decodeDevelopmentWorldValue(await n.text())}function createDevelopmentWorkflowWorld(){let e=buildForwardedOperations();return{specVersion:8,async getDeploymentId(){return getDevelopmentWorkflowGeneration()?.generationId??await call(`getDeploymentId`)},resolveLatestDeploymentId:e.topLevel.resolveLatestDeploymentId,queue:e.topLevel.queue,createQueueHandler,runs:e.groups.runs,steps:e.groups.steps,events:e.groups.events,hooks:e.groups.hooks,streams:{...e.groups.streams,get:async(e,t,n)=>{let r=new URL(resolveDevelopmentWorldBaseUrl());r.pathname=DEVELOPMENT_WORKFLOW_STREAM_ROUTE,r.searchParams.set(`runId`,e),r.searchParams.set(`name`,t),n!==void 0&&r.searchParams.set(`startIndex`,String(n));let i=await fetchDevelopmentWorld(r,{method:`GET`});if(i.body===null)throw Error(`Development Workflow stream response had no body.`);return i.body}},async start(){},async close(){}}}function buildForwardedOperations(){let e={},t={};for(let n of DEVELOPMENT_WORLD_OPERATIONS){let forward=async(...e)=>await call(n,e),r=n.indexOf(`.`);r===-1?t[n]=forward:(e[n.slice(0,r)]??={})[n.slice(r+1)]=forward}return{groups:e,topLevel:t}}function createQueueHandler(e,t){return async n=>{let r=readRequiredEnvironment(DEVELOPMENT_WORKFLOW_SECRET_ENV),i=n.headers.get(DEVELOPMENT_WORKFLOW_DELIVERY_HEADER);if(i===null||!timingSafeEqualStrings(i,r))return Response.json({error:`Workflow delivery is not trusted.`},{status:401});let a=n.headers.get(`x-vqs-queue-name`),o=n.headers.get(`x-vqs-message-id`),s=Number(n.headers.get(`x-vqs-message-attempt`));if(a===null||!a.startsWith(e)||o===null||!Number.isInteger(s)||s<1||n.body===null)return Response.json({error:`Workflow delivery is malformed.`},{status:400});let c=decodeDevelopmentWorldJson(await n.text());try{let e=readRequiredEnvironment(DEVELOPMENT_WORKER_APP_ROOT_ENV),n=await resolveDeliveryGenerationId(c),r=await readGenerationRuntimeAppRoot(e,n),i=await withDevelopmentWorkflowGeneration({generationId:n,source:createDiskRuntimeCompiledArtifactsSource(r,{durableReference:`development-generation`,moduleMapLoaderPath:resolvePackageSourceFilePath(`src/internal/authored-module-map-loader.ts`),sandboxAppRoot:e})},async()=>await t(c,{attempt:s,messageId:o,queueName:a}));return Response.json(i===void 0?{ok:!0}:{timeoutSeconds:i.timeoutSeconds})}catch(e){return e instanceof MissingDevelopmentGenerationError?(console.error(`[eve:dev] ${e.message}`),Response.json({ok:!0})):Response.json(String(e),{status:500})}}}async function resolveDeliveryGenerationId(e){if(!isRecord(e)||e.__healthCheck===!0)return await call(`resolveLatestDeploymentId`);let t=isRecord(e.runInput)?e.runInput:void 0;if(t!==void 0)return typeof t.deploymentId==`string`?t.deploymentId:await call(`resolveLatestDeploymentId`);let n=typeof e.runId==`string`?e.runId:typeof e.workflowRunId==`string`?e.workflowRunId:void 0;return n===void 0?await call(`resolveLatestDeploymentId`):(await call(`runs.get`,[n,{resolveData:`none`}])).deploymentId}async function readGenerationRuntimeAppRoot(e,t){if(t.length===0||t===`.`||t===`..`||basename(t)!==t)throw Error(`Workflow run references invalid development generation "${t}".`);let n=join(e,`.eve`,`dev-runtime`,`snapshots`,t,`generation.json`),r;try{r=await readFile(n,`utf8`)}catch(e){throw isFileNotFoundError(e)?new MissingDevelopmentGenerationError(t,e):e}let i;try{i=JSON.parse(r)}catch(e){throw Error(`Development generation "${t}" has invalid metadata.`,{cause:e})}if(!isRecord(i)||typeof i.runtimeAppRoot!=`string`)throw Error(`Development generation "${t}" has invalid metadata.`);return i.runtimeAppRoot}function isFileNotFoundError(e){return e instanceof Error&&`code`in e&&e.code===`ENOENT`}function isRecord(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function fetchDevelopmentWorld(e,t){let n=e instanceof URL?e:new URL(e,resolveDevelopmentWorldBaseUrl()),r=new Headers(t.headers);r.set(DEVELOPMENT_WORKFLOW_TRANSPORT_HEADER,readRequiredEnvironment(DEVELOPMENT_WORKFLOW_SECRET_ENV));let i=await fetch(n,{...t,headers:r});if(!i.ok){let e=await i.text(),t=readDevelopmentWorldError(e);throw t===void 0?Error(`Development Workflow World request failed (${String(i.status)}): ${e}`):t}return i}function readDevelopmentWorldError(e){try{return deserializeDevelopmentWorldError(decodeDevelopmentWorldValue(e))}catch{return}}function resolveDevelopmentWorldBaseUrl(){return readRequiredEnvironment(`WORKFLOW_LOCAL_BASE_URL`)}function readRequiredEnvironment(e){let t=process.env[e];if(t===void 0||t.length===0)throw Error(`Development Workflow transport is missing ${e}.`);return t}export{MissingDevelopmentGenerationError,createDevelopmentWorkflowWorld};
@@ -1,4 +1,4 @@
1
- export interface SerializedDevelopmentWorldError {
1
+ interface SerializedDevelopmentWorldError {
2
2
  readonly details: Readonly<Record<string, unknown>>;
3
3
  readonly message: string;
4
4
  readonly name: string;
@@ -9,3 +9,4 @@ export declare function decodeDevelopmentWorldValue(source: string): unknown;
9
9
  export declare function decodeDevelopmentWorldJson(source: string): unknown;
10
10
  export declare function serializeDevelopmentWorldError(error: unknown): SerializedDevelopmentWorldError;
11
11
  export declare function deserializeDevelopmentWorldError(value: unknown): Error | undefined;
12
+ export {};
@@ -1 +1 @@
1
- import{basename,join}from"node:path";import{existsSync}from"node:fs";import{LOCAL_WORKFLOW_WORLD_DATA_DIRECTORY_RELATIVE_PATH,resolveLocalWorkflowWorldDataDirectory}from"#internal/workflow/local-world-data-directory.js";import{DEVELOPMENT_WORKFLOW_DELIVERY_HEADER,DEVELOPMENT_WORKFLOW_STREAM_ROUTE,DEVELOPMENT_WORKFLOW_TRANSPORT_HEADER,DEVELOPMENT_WORKFLOW_WORLD_ROUTE,DEVELOPMENT_WORLD_OPERATIONS}from"#internal/workflow/development-world-protocol.js";import{timingSafeEqualStrings}from"#internal/nitro/dev-client-address.js";import{deriveEveWorkflowQueuePrefix}from"#internal/workflow/queue-namespace.js";import{decodeDevelopmentWorldValue,encodeDevelopmentWorldValue,serializeDevelopmentWorldError}from"#internal/workflow/development-world-codec.js";import{createWorld}from"#compiled/@workflow/world-local/index.js";import{applyLocalWorkflowWorldDeliveryTimeoutDefaults}from"#internal/workflow/local-world-delivery-timeouts.js";function createParentDevelopmentWorkflowWorld(e){return new LocalParentDevelopmentWorkflowWorld(e)}var LocalParentDevelopmentWorkflowWorld=class{#e;#t;#n;#r;#i;#a=!1;#o=!1;constructor(e){if(e.transportSecret.length<16)throw Error(`Development Workflow transport secret is too short to be trusted.`);this.#e=e.agentName,this.#t=e.appRoot,this.#n=e.resolveActiveGenerationId,this.#r=e.transportSecret,applyLocalWorkflowWorldDeliveryTimeoutDefaults(),this.#i=createWorld({dataDir:resolveLocalWorkflowWorldDataDirectory(e.appRoot),recoverActiveRuns:!1})}async start(){if(this.#o)return;let e=await this.#s(),t=new Set;for(let n of e)this.#p(n)||t.add(n);t.size>0&&console.error(`[eve:dev] ${String(t.size)} active local Workflow run(s) reference development generations that no longer exist (${[...t].join(`, `)}). Their deliveries are quarantined; remove "${LOCAL_WORKFLOW_WORLD_DATA_DIRECTORY_RELATIVE_PATH}" to discard the app's active local Workflow runs.`),await this.#i.start?.(),this.#o=!0,await reenqueueActiveDevelopmentRuns({enqueue:this.#u.bind(this),prefix:deriveEveWorkflowQueuePrefix(this.#e),quarantinedGenerationIds:t,world:this.#i})}async close(){this.#a||(this.#a=!0,this.#o=!1,await this.#i.close?.())}async handleRequest(e){let t=new URL(e.url);if(t.pathname===DEVELOPMENT_WORKFLOW_WORLD_ROUTE)return await this.#c(e);if(t.pathname===DEVELOPMENT_WORKFLOW_STREAM_ROUTE)return await this.#l(e,t)}async#s(){let e=new Set;for(let t of[`pending`,`running`]){let n;do{let r;try{r=await this.#i.runs.list({pagination:{cursor:n,limit:1e3},resolveData:`none`,status:t})}catch(e){throw Error(`Failed to read the app's active local Workflow runs. Remove "${LOCAL_WORKFLOW_WORLD_DATA_DIRECTORY_RELATIVE_PATH}" to discard them.`,{cause:e})}for(let t of r.data)e.add(t.deploymentId);n=r.hasMore?r.cursor??void 0:void 0}while(n!==void 0)}return e}async#c(e){if(!this.#f(e)||e.method!==`POST`)return Response.json({error:`Workflow World request is not trusted.`},{status:401});try{let t=decodeDevelopmentWorldValue(await e.text()),n=await this.#d(t);return new Response(encodeDevelopmentWorldValue(n))}catch(e){return new Response(encodeDevelopmentWorldValue(serializeDevelopmentWorldError(e)),{status:500})}}async#l(e,t){if(!this.#f(e)||e.method!==`GET`)return Response.json({error:`Workflow World request is not trusted.`},{status:401});let n=t.searchParams.get(`runId`),r=t.searchParams.get(`name`),i=t.searchParams.get(`startIndex`);if(n===null||r===null)return Response.json({error:`Workflow stream request is malformed.`},{status:400});let a=i===null||i===``?void 0:Number(i);if(i===``||a!==void 0&&!Number.isInteger(a))return Response.json({error:`Workflow stream start index is invalid.`},{status:400});try{return new Response(await this.#i.streams.get(n,r,a))}catch(e){return new Response(encodeDevelopmentWorldValue(serializeDevelopmentWorldError(e)),{status:500})}}async#u(...e){let[t,n,r]=e;return await this.#i.queue(t,n,{...r,headers:{...r?.headers,[DEVELOPMENT_WORKFLOW_DELIVERY_HEADER]:this.#r}})}async#d(e){if(!isDevelopmentWorldCall(e))throw Error(`Development Workflow World call is malformed.`);let t=[...e.arguments];if(e.operation===`getDeploymentId`||e.operation===`resolveLatestDeploymentId`)return this.#n();if(e.operation===`queue`)return await this.#u(...t);if(e.operation===`streams.writeMulti`&&this.#i.streams.writeMulti===void 0){for(let e of t[2])await this.#i.streams.write(t[0],t[1],e);return}let n=e.operation.indexOf(`.`),r=this.#i[e.operation.slice(0,n)],i=typeof r==`object`&&r?r[e.operation.slice(n+1)]:void 0;if(typeof i==`function`)return await Reflect.apply(i,r,t)}#f(e){let t=e.headers.get(DEVELOPMENT_WORKFLOW_TRANSPORT_HEADER);return t!==null&&timingSafeEqualStrings(t,this.#r)}#p(e){return isValidGenerationId(e)?existsSync(join(this.#t,`.eve`,`dev-runtime`,`snapshots`,e,`generation.json`)):!1}};function isValidGenerationId(e){return e.length>0&&e!==`.`&&e!==`..`&&basename(e)===e}const DEVELOPMENT_WORLD_OPERATION_SET=new Set(DEVELOPMENT_WORLD_OPERATIONS);function isDevelopmentWorldCall(e){return isObject(e)&&typeof e.operation==`string`&&DEVELOPMENT_WORLD_OPERATION_SET.has(e.operation)&&Array.isArray(e.arguments)}function isObject(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function reenqueueActiveDevelopmentRuns(e){for(let t of[`pending`,`running`]){let n;do{let r;try{r=await e.world.runs.list({pagination:{cursor:n},resolveData:`none`,status:t})}catch(e){throw Error(`Failed to read the app's active local Workflow runs. Remove "${LOCAL_WORKFLOW_WORLD_DATA_DIRECTORY_RELATIVE_PATH}" to discard them.`,{cause:e})}for(let t of r.data)e.quarantinedGenerationIds.has(t.deploymentId)||await e.enqueue(`${e.prefix}${t.workflowName}`,{runId:t.runId});n=r.hasMore?r.cursor??void 0:void 0}while(n!==void 0)}}export{createParentDevelopmentWorkflowWorld};
1
+ import{existsSync}from"node:fs";import{basename,join}from"node:path";import{LOCAL_WORKFLOW_WORLD_DATA_DIRECTORY_RELATIVE_PATH,resolveLocalWorkflowWorldDataDirectory}from"#internal/workflow/local-world-data-directory.js";import{DEVELOPMENT_WORKFLOW_DELIVERY_HEADER,DEVELOPMENT_WORKFLOW_STREAM_ROUTE,DEVELOPMENT_WORKFLOW_TRANSPORT_HEADER,DEVELOPMENT_WORKFLOW_WORLD_ROUTE,DEVELOPMENT_WORLD_OPERATIONS}from"#internal/workflow/development-world-protocol.js";import{timingSafeEqualStrings}from"#internal/nitro/dev-client-address.js";import{deriveEveWorkflowQueuePrefix}from"#internal/workflow/queue-namespace.js";import{decodeDevelopmentWorldValue,encodeDevelopmentWorldValue,serializeDevelopmentWorldError}from"#internal/workflow/development-world-codec.js";import{createWorld}from"#compiled/@workflow/world-local/index.js";import{applyLocalWorkflowWorldDeliveryTimeoutDefaults}from"#internal/workflow/local-world-delivery-timeouts.js";function createParentDevelopmentWorkflowWorld(e){return new LocalParentDevelopmentWorkflowWorld(e)}var LocalParentDevelopmentWorkflowWorld=class{#e;#t;#n;#r;#i;#a=!1;#o=!1;constructor(e){if(e.transportSecret.length<16)throw Error(`Development Workflow transport secret is too short to be trusted.`);this.#e=e.agentName,this.#t=e.appRoot,this.#n=e.resolveActiveGenerationId,this.#r=e.transportSecret,applyLocalWorkflowWorldDeliveryTimeoutDefaults(),this.#i=createWorld({dataDir:resolveLocalWorkflowWorldDataDirectory(e.appRoot),recoverActiveRuns:!1})}async start(){if(this.#o)return;let e=await this.#s(),t=new Set;for(let n of e)this.#p(n)||t.add(n);t.size>0&&console.error(`[eve:dev] ${String(t.size)} active local Workflow run(s) reference development generations that no longer exist (${[...t].join(`, `)}). Their deliveries are quarantined; remove "${LOCAL_WORKFLOW_WORLD_DATA_DIRECTORY_RELATIVE_PATH}" to discard the app's active local Workflow runs.`),await this.#i.start?.(),this.#o=!0,await reenqueueActiveDevelopmentRuns({enqueue:this.#u.bind(this),prefix:deriveEveWorkflowQueuePrefix(this.#e),quarantinedGenerationIds:t,world:this.#i})}async close(){this.#a||(this.#a=!0,this.#o=!1,await this.#i.close?.())}async handleRequest(e){let t=new URL(e.url);if(t.pathname===DEVELOPMENT_WORKFLOW_WORLD_ROUTE)return await this.#c(e);if(t.pathname===DEVELOPMENT_WORKFLOW_STREAM_ROUTE)return await this.#l(e,t)}async#s(){let e=new Set;for(let t of[`pending`,`running`]){let n;do{let r;try{r=await this.#i.runs.list({pagination:{cursor:n,limit:1e3},resolveData:`none`,status:t})}catch(e){throw Error(`Failed to read the app's active local Workflow runs. Remove "${LOCAL_WORKFLOW_WORLD_DATA_DIRECTORY_RELATIVE_PATH}" to discard them.`,{cause:e})}for(let t of r.data)e.add(t.deploymentId);n=r.hasMore?r.cursor??void 0:void 0}while(n!==void 0)}return e}async#c(e){if(!this.#f(e)||e.method!==`POST`)return Response.json({error:`Workflow World request is not trusted.`},{status:401});try{let t=decodeDevelopmentWorldValue(await e.text()),n=await this.#d(t);return new Response(encodeDevelopmentWorldValue(n))}catch(e){return new Response(encodeDevelopmentWorldValue(serializeDevelopmentWorldError(e)),{status:500})}}async#l(e,t){if(!this.#f(e)||e.method!==`GET`)return Response.json({error:`Workflow World request is not trusted.`},{status:401});let n=t.searchParams.get(`runId`),r=t.searchParams.get(`name`),i=t.searchParams.get(`startIndex`);if(n===null||r===null)return Response.json({error:`Workflow stream request is malformed.`},{status:400});let a=i===null||i===``?void 0:Number(i);if(i===``||a!==void 0&&!Number.isInteger(a))return Response.json({error:`Workflow stream start index is invalid.`},{status:400});try{return new Response(await this.#i.streams.get(n,r,a))}catch(e){return new Response(encodeDevelopmentWorldValue(serializeDevelopmentWorldError(e)),{status:500})}}async#u(...e){let[t,n,r]=e;return await this.#i.queue(t,n,{...r,headers:{...r?.headers,[DEVELOPMENT_WORKFLOW_DELIVERY_HEADER]:this.#r}})}async#d(e){if(!isDevelopmentWorldCall(e))throw Error(`Development Workflow World call is malformed.`);let t=[...e.arguments];if(e.operation===`getDeploymentId`||e.operation===`resolveLatestDeploymentId`)return this.#n();if(e.operation===`queue`)return await this.#u(...t);if(e.operation===`streams.writeMulti`&&this.#i.streams.writeMulti===void 0){for(let e of t[2])await this.#i.streams.write(t[0],t[1],e);return}let n=e.operation.indexOf(`.`),r=this.#i[e.operation.slice(0,n)],i=typeof r==`object`&&r?r[e.operation.slice(n+1)]:void 0;if(typeof i==`function`)return await Reflect.apply(i,r,t)}#f(e){let t=e.headers.get(DEVELOPMENT_WORKFLOW_TRANSPORT_HEADER);return t!==null&&timingSafeEqualStrings(t,this.#r)}#p(e){return isValidGenerationId(e)?existsSync(join(this.#t,`.eve`,`dev-runtime`,`snapshots`,e,`generation.json`)):!1}};function isValidGenerationId(e){return e.length>0&&e!==`.`&&e!==`..`&&basename(e)===e}const DEVELOPMENT_WORLD_OPERATION_SET=new Set(DEVELOPMENT_WORLD_OPERATIONS);function isDevelopmentWorldCall(e){return isObject(e)&&typeof e.operation==`string`&&DEVELOPMENT_WORLD_OPERATION_SET.has(e.operation)&&Array.isArray(e.arguments)}function isObject(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function reenqueueActiveDevelopmentRuns(e){for(let t of[`pending`,`running`]){let n;do{let r;try{r=await e.world.runs.list({pagination:{cursor:n},resolveData:`none`,status:t})}catch(e){throw Error(`Failed to read the app's active local Workflow runs. Remove "${LOCAL_WORKFLOW_WORLD_DATA_DIRECTORY_RELATIVE_PATH}" to discard them.`,{cause:e})}for(let t of r.data)e.quarantinedGenerationIds.has(t.deploymentId)||await e.enqueue(`${e.prefix}${t.workflowName}`,{runId:t.runId});n=r.hasMore?r.cursor??void 0:void 0}while(n!==void 0)}}export{createParentDevelopmentWorkflowWorld};
@@ -6,7 +6,7 @@ export interface WorkflowWorldManifest {
6
6
  readonly dependencies?: Readonly<Record<string, string>>;
7
7
  readonly peerDependencies?: Readonly<Record<string, string>>;
8
8
  }
9
- export interface AssertWorkflowWorldCompatibilityInput {
9
+ interface AssertWorkflowWorldCompatibilityInput {
10
10
  /** Package name of the configured world, used only for the error message. */
11
11
  readonly worldPackageName: string;
12
12
  /** Parsed `package.json` of the installed configured world. */
@@ -19,3 +19,4 @@ export interface AssertWorkflowWorldCompatibilityInput {
19
19
  * prerelease line that is incompatible with the line this eve release bundles.
20
20
  */
21
21
  export declare function assertWorkflowWorldCompatibility(input: AssertWorkflowWorldCompatibilityInput): void;
22
+ export {};
@@ -56,7 +56,6 @@ export declare function collectWorkflowInputFiles(root: string): Promise<string[
56
56
  export declare function createWorkflowImport(filePath: string, workingDir: string): string;
57
57
  export declare function createWorkflowVirtualEntryPlugin(source: string): WorkflowRolldownPlugin;
58
58
  export declare function createWorkflowPseudoPackagePlugin(): WorkflowRolldownPlugin;
59
- export declare function createWorkflowRuntimeAliasPlugin(): WorkflowRolldownPlugin;
60
59
  /**
61
60
  * `workflow` resolves to the body-side shim. A `workflow/api` import still live
62
61
  * after step bodies were stubbed means a body calls the runtime API; fail the
@@ -73,14 +72,6 @@ export declare function createWorkflowTransformPlugin(input: {
73
72
  sideEffectFiles?: readonly string[];
74
73
  workingDir: string;
75
74
  }): WorkflowRolldownPlugin;
76
- export declare function bundleWorkflowStepRegistrations(input: {
77
- builtinsPath: string;
78
- discoveredEntries: WorkflowBundleDiscoveredEntries;
79
- outfile: string;
80
- projectRoot: string;
81
- tsconfigPath?: string;
82
- workingDir: string;
83
- }): Promise<void>;
84
75
  export declare function createWorkflowNodeBuiltinGuardPlugin(): WorkflowRolldownPlugin;
85
76
  export declare function bundleFinalWorkflowOutput(input: {
86
77
  code: string;
@@ -1,5 +1,4 @@
1
- import{builtinModules}from"node:module";import{mkdir,readFile,readdir}from"node:fs/promises";import{dirname,extname,join,relative,resolve}from"node:path";import{resolvePackageRoot,resolveWorkflowModulePath}from"#internal/application/package.js";import{existsSync}from"node:fs";import{normalizeEsmImportSpecifier}from"#internal/application/import-specifier.js";import{WORKFLOW_REGISTRY_GLOBAL}from"#execution/workflow-registry.js";import{atomicWriteFile}from"#shared/atomic-write-file.js";import{buildSingleRolldownChunk}from"#internal/bundler/nitro-rolldown.js";import{applyWorkflowTransform,getImportPath}from"#internal/workflow-bundle/workflow-builders.js";import{WORKFLOW_STEP_EXTERNAL_PACKAGES}from"#internal/workflow-bundle/vercel-workflow-output.js";const WORKFLOW_VIRTUAL_ENTRY_ID=`\0eve-workflow-entry`,PSEUDO_PACKAGES=new Set([`server-only`,`client-only`,`next/dist/compiled/server-only`,`next/dist/compiled/client-only`]),NODE_BUILTIN_MODULES=new Set([...builtinModules,...builtinModules.map(e=>`node:${e}`)]),WORKFLOW_SOURCE_EXTENSIONS=[`.ts`,`.tsx`,`.mts`,`.cts`,`.js`,`.jsx`,`.mjs`,`.cjs`];function isWorkflowSourceFile(e){return WORKFLOW_SOURCE_EXTENSIONS.includes(extname(e))}const IGNORED_INPUT_DIRECTORIES=new Set([`node_modules`,`.git`,`.next`,`.nuxt`,`.output`,`.vercel`,`.workflow-vitest`,`.well-known`,`.svelte-kit`,`.turbo`,`.cache`,`.yarn`,`.pnpm-store`]);async function collectWorkflowInputFiles(e){let t=[];async function visit(e){let n;try{n=await readdir(e,{withFileTypes:!0})}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return;throw e}for(let r of n){if(r.isDirectory()){IGNORED_INPUT_DIRECTORIES.has(r.name)||await visit(join(e,r.name));continue}r.isFile()&&isWorkflowSourceFile(r.name)&&t.push(join(e,r.name))}}return await visit(e),t}function createWorkflowImport(e,t){let{importPath:n,isPackage:r}=getImportPath(e,t);return r?`import ${JSON.stringify(n)};`:`import ${JSON.stringify(toRelativeImportSpecifier(t,e))};`}function createWorkflowVirtualEntryPlugin(e){return{name:`eve-workflow-virtual-entry`,resolveId(e){if(e===`\0eve-workflow-entry`)return{id:e}},load(t){if(t===`\0eve-workflow-entry`)return{code:e,moduleSideEffects:!0,moduleType:`js`}}}}function createWorkflowPseudoPackagePlugin(){return{name:`eve-workflow-pseudo-packages`,resolveId(e){if(PSEUDO_PACKAGES.has(e))return{id:`\0eve-workflow-pseudo-package:${e}`}},load(e){if(e.startsWith(`\0eve-workflow-pseudo-package:`))return{code:``,moduleType:`js`}}}}function createWorkflowRuntimeAliasPlugin(){return{name:`eve-workflow-runtime-aliases`,resolveId(e){if(e===`workflow`||e.startsWith(`workflow/`))return resolveWorkflowModulePath(e)}}}function createWorkflowDriverAliasPlugin(e){return{name:`eve-workflow-driver-aliases`,resolveId(t,n){if(t===`workflow/errors`)return resolveWorkflowModulePath(t);if(t===`workflow/api`||t===`workflow/runtime`){let e=n?` (imported by "${n}")`:``;throw Error(`Workflow bundle cannot import "${t}"${e}: the runtime API is not available inside a workflow body. Call it from a "use step" function and await that step from the body.`)}if(t===`workflow`)return resolveFirstExistingPath([join(e,`src`,`internal`,`workflow-bundle`,`workflow-core-shim.ts`),join(e,`dist`,`src`,`internal`,`workflow-bundle`,`workflow-core-shim.js`)])}}}function createEvePackageImportsPlugin(e,t={}){let n=[...new Set([e,resolvePackageRoot()])];return{name:`eve-package-imports`,resolveId(e){let r=e.match(/^#compiled\/(.+)$/)?.[1];if(r!==void 0)return t.workflowCondition===!0&&r===`@workflow/core/index.js`?resolveFirstExistingPath(n.flatMap(e=>[join(e,`src`,`internal`,`workflow-bundle`,`workflow-core-shim.ts`),join(e,`dist`,`src`,`internal`,`workflow-bundle`,`workflow-core-shim.js`)])):resolveFirstExistingPath(n.flatMap(e=>[join(e,`.generated`,`compiled`,r),join(e,`dist`,`src`,`compiled`,r)]));let i=e.match(/^#(.+)\.js$/)?.[1];if(i!==void 0)return resolveFirstExistingPath(n.flatMap(e=>WORKFLOW_SOURCE_EXTENSIONS.flatMap(t=>[join(e,`src`,`${i}${t}`),join(e,`dist`,`src`,`${i}${t}`)])))}}}function createWorkflowTransformPlugin(e){let t=new Set(e.sideEffectFiles?.map(e=>e.replaceAll(`\\`,`/`))??[]);return{name:`eve-workflow-transform`,async load(n){if(!isJavaScriptLikePath(n))return;let r=await readFile(n,`utf8`),i=createManifestRelativeFilepath(e.workingDir,n),a=await applyWorkflowTransform(i,r.replace(/require\(\s*(['"])server-only\1\s*\)/g,`void 0`).replace(/require\(\s*(['"])client-only\1\s*\)/g,`void 0`),e.mode??`workflow`,n,e.projectRoot);return mergeWorkflowManifest(e.manifest,a.workflowManifest),{code:a.code,map:null,moduleSideEffects:t.has(n.replaceAll(`\\`,`/`))||void 0}}}}async function bundleWorkflowStepRegistrations(e){let t=[...e.discoveredEntries.discoveredSteps].sort(),n=new Set(t),r=[...e.discoveredEntries.discoveredSerdeFiles].sort().filter(e=>!n.has(e)),i={},a=[createWorkflowImport(e.builtinsPath,e.workingDir),...t.map(t=>createWorkflowImport(t,e.workingDir)),...r.map(t=>createWorkflowImport(t,e.workingDir)),`export const __steps_registered = true;`].join(`
2
- `),o=await buildSingleRolldownChunk(`step registrations bundle for "${e.outfile}"`,{cwd:e.workingDir,input:WORKFLOW_VIRTUAL_ENTRY_ID,external:isWorkflowStepExternalPackage,platform:`node`,plugins:[createWorkflowVirtualEntryPlugin(a),createWorkflowPseudoPackagePlugin(),createWorkflowRuntimeAliasPlugin(),createEvePackageImportsPlugin(e.workingDir),createWorkflowTransformPlugin({manifest:i,mode:`step`,projectRoot:e.projectRoot,sideEffectFiles:[...t,...r],workingDir:e.workingDir})],resolve:{conditionNames:[`eve-source`],extensions:WORKFLOW_SOURCE_EXTENSIONS,mainFields:[`module`,`main`]},tsconfig:e.tsconfigPath??!1,output:{comments:!1,format:`esm`,sourcemap:`inline`}});await writeWorkflowBundleAtomically(e.outfile,o.code)}function isWorkflowStepExternalPackage(e){return WORKFLOW_STEP_EXTERNAL_PACKAGES.some(t=>e===t||e.startsWith(`${t}/`))}function createWorkflowNodeBuiltinGuardPlugin(){return{name:`eve-workflow-node-builtins`,resolveId(e,t){let n=e.startsWith(`node:`)?e.slice(5):e;if(!NODE_BUILTIN_MODULES.has(e)&&!NODE_BUILTIN_MODULES.has(n))return;let r=t?` (imported by "${t}")`:``;throw Error(`Workflow bundle cannot import Node.js builtin "${e}"${r}. Move Node.js APIs behind a "use step" function, or keep the importing module out of the workflow driver body (only reachable through a "use step").`)}}}async function bundleFinalWorkflowOutput(e){let t=createWorkflowEntrypointSource({code:e.code,queueNamespace:e.queueNamespace,stepRegistrationsImport:e.stepRegistrationsPath===void 0?void 0:toRelativeImportSpecifier(dirname(e.outfile),e.stepRegistrationsPath)});await writeWorkflowBundleAtomically(e.outfile,t)}const WORKFLOW_REGISTRY_BANNER=`globalThis.${WORKFLOW_REGISTRY_GLOBAL} = new Map();`;function composeWorkflowDriverCode(e){let t=e.map(e=>e.trim()).filter(e=>e.length>0).map(e=>`(function () {\n${e}\n})();`);return[WORKFLOW_REGISTRY_BANNER,...t].join(`
1
+ import{builtinModules}from"node:module";import{mkdir,readFile,readdir}from"node:fs/promises";import{resolvePackageRoot,resolveWorkflowModulePath}from"#internal/application/package.js";import{existsSync}from"node:fs";import{dirname,extname,join,relative,resolve}from"node:path";import{normalizeEsmImportSpecifier}from"#internal/application/import-specifier.js";import{WORKFLOW_REGISTRY_GLOBAL}from"#execution/workflow-registry.js";import{atomicWriteFile}from"#shared/atomic-write-file.js";import{applyWorkflowTransform,getImportPath}from"#internal/workflow-bundle/workflow-builders.js";const WORKFLOW_VIRTUAL_ENTRY_ID=`\0eve-workflow-entry`,PSEUDO_PACKAGES=new Set([`server-only`,`client-only`,`next/dist/compiled/server-only`,`next/dist/compiled/client-only`]),NODE_BUILTIN_MODULES=new Set([...builtinModules,...builtinModules.map(e=>`node:${e}`)]),WORKFLOW_SOURCE_EXTENSIONS=[`.ts`,`.tsx`,`.mts`,`.cts`,`.js`,`.jsx`,`.mjs`,`.cjs`];function isWorkflowSourceFile(e){return WORKFLOW_SOURCE_EXTENSIONS.includes(extname(e))}const IGNORED_INPUT_DIRECTORIES=new Set([`node_modules`,`.git`,`.next`,`.nuxt`,`.output`,`.vercel`,`.workflow-vitest`,`.well-known`,`.svelte-kit`,`.turbo`,`.cache`,`.yarn`,`.pnpm-store`]);async function collectWorkflowInputFiles(e){let t=[];async function visit(e){let n;try{n=await readdir(e,{withFileTypes:!0})}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return;throw e}for(let r of n){if(r.isDirectory()){IGNORED_INPUT_DIRECTORIES.has(r.name)||await visit(join(e,r.name));continue}r.isFile()&&isWorkflowSourceFile(r.name)&&t.push(join(e,r.name))}}return await visit(e),t}function createWorkflowImport(e,t){let{importPath:n,isPackage:r}=getImportPath(e,t);return r?`import ${JSON.stringify(n)};`:`import ${JSON.stringify(toRelativeImportSpecifier(t,e))};`}function createWorkflowVirtualEntryPlugin(e){return{name:`eve-workflow-virtual-entry`,resolveId(e){if(e===`\0eve-workflow-entry`)return{id:e}},load(t){if(t===`\0eve-workflow-entry`)return{code:e,moduleSideEffects:!0,moduleType:`js`}}}}function createWorkflowPseudoPackagePlugin(){return{name:`eve-workflow-pseudo-packages`,resolveId(e){if(PSEUDO_PACKAGES.has(e))return{id:`\0eve-workflow-pseudo-package:${e}`}},load(e){if(e.startsWith(`\0eve-workflow-pseudo-package:`))return{code:``,moduleType:`js`}}}}function createWorkflowDriverAliasPlugin(e){return{name:`eve-workflow-driver-aliases`,resolveId(t,n){if(t===`workflow/errors`)return resolveWorkflowModulePath(t);if(t===`workflow/api`||t===`workflow/runtime`){let e=n?` (imported by "${n}")`:``;throw Error(`Workflow bundle cannot import "${t}"${e}: the runtime API is not available inside a workflow body. Call it from a "use step" function and await that step from the body.`)}if(t===`workflow`)return resolveFirstExistingPath([join(e,`src`,`internal`,`workflow-bundle`,`workflow-core-shim.ts`),join(e,`dist`,`src`,`internal`,`workflow-bundle`,`workflow-core-shim.js`)])}}}function createEvePackageImportsPlugin(e,t={}){let n=[...new Set([e,resolvePackageRoot()])];return{name:`eve-package-imports`,resolveId(e){let r=e.match(/^#compiled\/(.+)$/)?.[1];if(r!==void 0)return t.workflowCondition===!0&&r===`@workflow/core/index.js`?resolveFirstExistingPath(n.flatMap(e=>[join(e,`src`,`internal`,`workflow-bundle`,`workflow-core-shim.ts`),join(e,`dist`,`src`,`internal`,`workflow-bundle`,`workflow-core-shim.js`)])):resolveFirstExistingPath(n.flatMap(e=>[join(e,`.generated`,`compiled`,r),join(e,`dist`,`src`,`compiled`,r)]));let i=e.match(/^#(.+)\.js$/)?.[1];if(i!==void 0)return resolveFirstExistingPath(n.flatMap(e=>WORKFLOW_SOURCE_EXTENSIONS.flatMap(t=>[join(e,`src`,`${i}${t}`),join(e,`dist`,`src`,`${i}${t}`)])))}}}function createWorkflowTransformPlugin(e){let t=new Set(e.sideEffectFiles?.map(e=>e.replaceAll(`\\`,`/`))??[]);return{name:`eve-workflow-transform`,async load(n){if(!isJavaScriptLikePath(n))return;let r=await readFile(n,`utf8`),i=createManifestRelativeFilepath(e.workingDir,n),a=await applyWorkflowTransform(i,r.replace(/require\(\s*(['"])server-only\1\s*\)/g,`void 0`).replace(/require\(\s*(['"])client-only\1\s*\)/g,`void 0`),e.mode??`workflow`,n,e.projectRoot);return mergeWorkflowManifest(e.manifest,a.workflowManifest),{code:a.code,map:null,moduleSideEffects:t.has(n.replaceAll(`\\`,`/`))||void 0}}}}function createWorkflowNodeBuiltinGuardPlugin(){return{name:`eve-workflow-node-builtins`,resolveId(e,t){let n=e.startsWith(`node:`)?e.slice(5):e;if(!NODE_BUILTIN_MODULES.has(e)&&!NODE_BUILTIN_MODULES.has(n))return;let r=t?` (imported by "${t}")`:``;throw Error(`Workflow bundle cannot import Node.js builtin "${e}"${r}. Move Node.js APIs behind a "use step" function, or keep the importing module out of the workflow driver body (only reachable through a "use step").`)}}}async function bundleFinalWorkflowOutput(e){let t=createWorkflowEntrypointSource({code:e.code,queueNamespace:e.queueNamespace,stepRegistrationsImport:e.stepRegistrationsPath===void 0?void 0:toRelativeImportSpecifier(dirname(e.outfile),e.stepRegistrationsPath)});await writeWorkflowBundleAtomically(e.outfile,t)}const WORKFLOW_REGISTRY_BANNER=`globalThis.${WORKFLOW_REGISTRY_GLOBAL} = new Map();`;function composeWorkflowDriverCode(e){let t=e.map(e=>e.trim()).filter(e=>e.length>0).map(e=>`(function () {\n${e}\n})();`);return[WORKFLOW_REGISTRY_BANNER,...t].join(`
3
2
  `)}function createWorkflowEntrypointSource(e){let t=normalizeEsmImportSpecifier(resolveWorkflowModulePath(`workflow/runtime`)),n=Buffer.from(e.code.endsWith(`
4
3
  `)?e.code:`${e.code}\n`,`utf8`).toString(`base64`).match(/.{1,16384}/gu)??[``],r=e.stepRegistrationsImport===void 0?``:`import { __steps_registered as __eveWorkflowStepsRegistered } from ${JSON.stringify(e.stepRegistrationsImport)};\nvoid __eveWorkflowStepsRegistered;`;return`// Generated by eve. Do not edit by hand.
5
4
  import { workflowEntrypoint } from ${JSON.stringify(t)};
@@ -8,4 +7,4 @@ ${r}
8
7
  const workflowCode = Buffer.from(${JSON.stringify(n)}.join(""), "base64").toString("utf8");
9
8
 
10
9
  export const POST = workflowEntrypoint(workflowCode, { namespace: ${JSON.stringify(e.queueNamespace)} });
11
- `}function convertStepsManifest(e){let t={};for(let[n,r]of Object.entries(e??{})){t[n]={};for(let[e,i]of Object.entries(r))t[n][e]={stepId:i.stepId}}return t}function convertWorkflowsManifest(e){let t={};for(let[n,r]of Object.entries(e??{})){t[n]={};for(let[e,i]of Object.entries(r))t[n][e]={graph:{edges:[],nodes:[]},workflowId:i.workflowId}}return t}function convertClassesManifest(e){let t={};for(let[n,r]of Object.entries(e??{})){t[n]={};for(let[e,i]of Object.entries(r))t[n][e]={classId:i.classId}}return t}function toRelativeImportSpecifier(e,t){let n=relative(e,t).replaceAll(`\\`,`/`);return n.startsWith(`./`)||n.startsWith(`../`)?n:`./${n}`}function resolveFirstExistingPath(e){for(let t of e)if(existsSync(t))return{id:resolve(t)}}async function writeWorkflowBundleAtomically(e,t){await mkdir(dirname(e),{recursive:!0}),await atomicWriteFile(e,t)}function mergeWorkflowManifest(e,t){e.steps=mergeWorkflowManifestSection(e.steps,t.steps),e.workflows=mergeWorkflowManifestSection(e.workflows,t.workflows),e.classes=mergeWorkflowManifestSection(e.classes,t.classes)}function mergeWorkflowManifestSection(e,t){if(t===void 0)return e;let n={...e};for(let[e,r]of Object.entries(t))n[e]={...n[e],...r};return n}function createManifestRelativeFilepath(e,t){let n=t.replaceAll(`\\`,`/`),r=e.replaceAll(`\\`,`/`),i=relative(r,n).replaceAll(`\\`,`/`);return i.startsWith(`../`)&&(i=i.split(`/`).filter(e=>e!==`..`).join(`/`)),i}function isJavaScriptLikePath(e){return/\.(?:[cm]?[jt]sx?)$/.test(e)}export{WORKFLOW_SOURCE_EXTENSIONS,WORKFLOW_VIRTUAL_ENTRY_ID,bundleFinalWorkflowOutput,bundleWorkflowStepRegistrations,collectWorkflowInputFiles,composeWorkflowDriverCode,convertClassesManifest,convertStepsManifest,convertWorkflowsManifest,createEvePackageImportsPlugin,createWorkflowDriverAliasPlugin,createWorkflowEntrypointSource,createWorkflowImport,createWorkflowNodeBuiltinGuardPlugin,createWorkflowPseudoPackagePlugin,createWorkflowRuntimeAliasPlugin,createWorkflowTransformPlugin,createWorkflowVirtualEntryPlugin,isWorkflowSourceFile,mergeWorkflowManifest};
10
+ `}function convertStepsManifest(e){let t={};for(let[n,r]of Object.entries(e??{})){t[n]={};for(let[e,i]of Object.entries(r))t[n][e]={stepId:i.stepId}}return t}function convertWorkflowsManifest(e){let t={};for(let[n,r]of Object.entries(e??{})){t[n]={};for(let[e,i]of Object.entries(r))t[n][e]={graph:{edges:[],nodes:[]},workflowId:i.workflowId}}return t}function convertClassesManifest(e){let t={};for(let[n,r]of Object.entries(e??{})){t[n]={};for(let[e,i]of Object.entries(r))t[n][e]={classId:i.classId}}return t}function toRelativeImportSpecifier(e,t){let n=relative(e,t).replaceAll(`\\`,`/`);return n.startsWith(`./`)||n.startsWith(`../`)?n:`./${n}`}function resolveFirstExistingPath(e){for(let t of e)if(existsSync(t))return{id:resolve(t)}}async function writeWorkflowBundleAtomically(e,t){await mkdir(dirname(e),{recursive:!0}),await atomicWriteFile(e,t)}function mergeWorkflowManifest(e,t){e.steps=mergeWorkflowManifestSection(e.steps,t.steps),e.workflows=mergeWorkflowManifestSection(e.workflows,t.workflows),e.classes=mergeWorkflowManifestSection(e.classes,t.classes)}function mergeWorkflowManifestSection(e,t){if(t===void 0)return e;let n={...e};for(let[e,r]of Object.entries(t))n[e]={...n[e],...r};return n}function createManifestRelativeFilepath(e,t){let n=t.replaceAll(`\\`,`/`),r=e.replaceAll(`\\`,`/`),i=relative(r,n).replaceAll(`\\`,`/`);return i.startsWith(`../`)&&(i=i.split(`/`).filter(e=>e!==`..`).join(`/`)),i}function isJavaScriptLikePath(e){return/\.(?:[cm]?[jt]sx?)$/.test(e)}export{WORKFLOW_SOURCE_EXTENSIONS,WORKFLOW_VIRTUAL_ENTRY_ID,bundleFinalWorkflowOutput,collectWorkflowInputFiles,composeWorkflowDriverCode,convertClassesManifest,convertStepsManifest,convertWorkflowsManifest,createEvePackageImportsPlugin,createWorkflowDriverAliasPlugin,createWorkflowEntrypointSource,createWorkflowImport,createWorkflowNodeBuiltinGuardPlugin,createWorkflowPseudoPackagePlugin,createWorkflowTransformPlugin,createWorkflowVirtualEntryPlugin,isWorkflowSourceFile,mergeWorkflowManifest};
@@ -1,2 +1,2 @@
1
- import{mkdir,readFile,writeFile}from"node:fs/promises";import{dirname,join,resolve}from"node:path";import{resolvePackageSourceDirectoryPath,resolveWorkflowModulePath}from"#internal/application/package.js";import{buildSingleRolldownChunk}from"#internal/bundler/nitro-rolldown.js";import{createAuthoredPackageTsConfigPathsPlugin}from"#internal/authored-package-tsconfig-paths.js";import{createAuthoredRelativeExtensionResolverPlugin}from"#internal/authored-relative-extension-resolver.js";import{findWorkflowPatterns}from"#internal/workflow-bundle/workflow-builders.js";import{mapConcurrent}from"#shared/map-concurrent.js";import{prepareEveVersionedCacheDirectory,writeEveVersionedCacheMetadata}from"#internal/application/cache-metadata.js";import{WORKFLOW_BUILDER_DEFERRED_PACKAGES,WORKFLOW_STEP_EXTERNAL_PACKAGES}from"#internal/workflow-bundle/vercel-workflow-output.js";import{deriveEveWorkflowQueueNamespace}from"#internal/workflow/queue-namespace.js";import{runQueuedWorkflowBuild}from"#internal/workflow-bundle/build-queue.js";import{WORKFLOW_SOURCE_EXTENSIONS,WORKFLOW_VIRTUAL_ENTRY_ID,bundleFinalWorkflowOutput,collectWorkflowInputFiles,composeWorkflowDriverCode,convertClassesManifest,convertStepsManifest,convertWorkflowsManifest,createEvePackageImportsPlugin,createWorkflowDriverAliasPlugin,createWorkflowImport,createWorkflowNodeBuiltinGuardPlugin,createWorkflowPseudoPackagePlugin,createWorkflowTransformPlugin,createWorkflowVirtualEntryPlugin,mergeWorkflowManifest}from"#internal/workflow-bundle/builder-support.js";import{writeNitroStepEntrypoint}from"#internal/workflow-bundle/nitro-step-entry.js";var WorkflowBundleBuilder=class{#e;#t;#n;#r;config;constructor(e){let t=[resolvePackageSourceDirectoryPath(`src/execution`),resolvePackageSourceDirectoryPath(`src/runtime/subagents`),resolvePackageSourceDirectoryPath(`src/subagents`)];e.includeTestFixtures===!0&&t.push(resolvePackageSourceDirectoryPath(`src/internal/testing`)),this.config={buildTarget:`standalone`,dirs:t,externalPackages:[...WORKFLOW_STEP_EXTERNAL_PACKAGES,...WORKFLOW_BUILDER_DEFERRED_PACKAGES],projectRoot:e.appRoot,watch:e.watch,workingDir:e.rootDir},this.#e=e.authoredWorkflowModules??{directiveModules:[],workflowModules:[]},this.#t=e.compiledArtifactsBootstrapPath,this.#n=e.outDir,this.#r=deriveEveWorkflowQueueNamespace(e.agentName)}async build(e={}){await runQueuedWorkflowBuild(this.#n,async()=>this.#i(e))}async#i(e){await prepareEveVersionedCacheDirectory(this.#n);let t=await this.#o();if(t.length===0)throw Error(`Expected framework workflow source files under eve's execution, runtime/subagents, or subagents source directories.`);let n=await this.findTsConfigPath();await mkdir(this.#n,{recursive:!0});let r=await this.discoverEntries(t),i=this.#e,a=mergeStepEntries(r,i),o=join(this.#n,`steps.mjs`),s=join(this.#n,`workflows.mjs`),c=e.nitroStepOutfile,l=e.nitroWorkflowOutfile,writeStepEntry=(e,t)=>writeNitroStepEntrypoint({builtinsPath:resolveWorkflowModulePath(`workflow/internal/builtins`),discoveredEntries:a,outfile:e,precomputedManifest:t,preferAbsoluteFileImports:!0,projectRoot:this.config.projectRoot??this.config.workingDir,sideEffectFiles:[this.#t],workingDir:this.config.workingDir}),u=await writeStepEntry(o);c!==void 0&&c!==o&&await writeStepEntry(c,u);let{manifest:d}=await this.createWorkflowsBundle({additionalOutputs:l===void 0||l===s?[]:[{outfile:l,stepRegistrationsPath:c??o}],appWorkflowFiles:i.workflowModules,frameworkSerdeFiles:r.discoveredSerdeFiles,frameworkWorkflowFiles:r.discoveredWorkflows,outfile:s,stepRegistrationsPath:o,tsconfigPath:n});await this.createManifest({workflowBundlePath:join(this.#n,`workflows.mjs`),manifestDir:this.#n,manifest:{steps:{...u.steps,...d.steps},workflows:{...u.workflows,...d.workflows},classes:{...u.classes,...d.classes}}}),await writeEveVersionedCacheMetadata(this.#n)}get transformProjectRoot(){return this.config.projectRoot??this.config.workingDir}async findTsConfigPath(){let e=this.transformProjectRoot;for(;;){for(let t of[`tsconfig.json`,`jsconfig.json`]){let n=join(e,t);try{return await readFile(n),n}catch(e){if(!(e instanceof Error&&`code`in e&&e.code===`ENOENT`))throw e}}let t=dirname(e);if(t===e)return;e=t}}async getInputFiles(){let e=this.config.dirs.map(e=>resolve(this.config.workingDir,e));return(await Promise.all(e.map(e=>collectWorkflowInputFiles(e)))).flat()}async discoverEntries(e){let t={discoveredSerdeFiles:[],discoveredSteps:[],discoveredWorkflows:[]},n=await mapConcurrent(e,async e=>{let t=await readFile(e,`utf8`);return{filePath:e,patterns:await findWorkflowPatterns(e,t)}});for(let{filePath:e,patterns:r}of n)r.hasUseStep&&t.discoveredSteps.push(e),r.hasUseWorkflow&&t.discoveredWorkflows.push(e),r.hasSerde&&t.discoveredSerdeFiles.push(e);return t}async createWorkflowsBundle({additionalOutputs:e=[],appWorkflowFiles:t,frameworkSerdeFiles:n,frameworkWorkflowFiles:r,outfile:i,stepRegistrationsPath:a,tsconfigPath:o}){let s={},c=await mapConcurrent([{label:`framework`,serdeFiles:n,workflowFiles:r},{label:`app`,serdeFiles:[],workflowFiles:t}],async e=>{let t={};return{code:await this.#a({...e,manifest:t,tsconfigPath:o}),manifest:t}});for(let e of c)mergeWorkflowManifest(s,e.manifest);let l=composeWorkflowDriverCode(c.map(e=>e.code));return await Promise.all([{outfile:i,stepRegistrationsPath:a},...e].map(e=>bundleFinalWorkflowOutput({code:l,outfile:e.outfile,queueNamespace:this.#r,stepRegistrationsPath:e.stepRegistrationsPath}))),{manifest:s}}async#a(e){let t=[...e.workflowFiles].sort(),n=new Set(t),r=[...e.serdeFiles].sort().filter(e=>!n.has(e));if(t.length===0&&r.length===0)return``;let i=[...t.map(e=>createWorkflowImport(e,this.config.workingDir)),...r.map(e=>createWorkflowImport(e,this.config.workingDir))].join(`
2
- `);return(await buildSingleRolldownChunk(`${e.label} workflow driver chunk`,{cwd:this.config.workingDir,onwarn(e,t){if(e.code===`UNRESOLVED_IMPORT`)throw Error(`Cannot build workflow bundle: ${e.message}`);t(e)},input:WORKFLOW_VIRTUAL_ENTRY_ID,platform:`neutral`,plugins:[createWorkflowVirtualEntryPlugin(i),createWorkflowPseudoPackagePlugin(),createWorkflowDriverAliasPlugin(this.config.workingDir),createAuthoredRelativeExtensionResolverPlugin({extensions:WORKFLOW_SOURCE_EXTENSIONS}),createAuthoredPackageTsConfigPathsPlugin({appPackageRoot:this.transformProjectRoot,extensions:WORKFLOW_SOURCE_EXTENSIONS}),createEvePackageImportsPlugin(this.config.workingDir,{workflowCondition:!0}),createWorkflowTransformPlugin({manifest:e.manifest,projectRoot:this.transformProjectRoot,sideEffectFiles:[...t,...r],workingDir:this.config.workingDir}),createWorkflowNodeBuiltinGuardPlugin()],resolve:{conditionNames:[`eve-source`,`workflow`],extensions:WORKFLOW_SOURCE_EXTENSIONS,mainFields:[`module`,`main`]},tsconfig:e.tsconfigPath??!1,output:{comments:!1,format:`cjs`,sourcemap:`inline`}})).code}async createManifest({manifest:e,manifestDir:t}){let n={version:`1.0.0`,steps:convertStepsManifest(e.steps),workflows:convertWorkflowsManifest(e.workflows),classes:convertClassesManifest(e.classes)},r=JSON.stringify(n,null,2);return await mkdir(t,{recursive:!0}),await writeFile(join(t,`manifest.json`),r),r}async#o(){return await this.getInputFiles()}};function mergeStepEntries(e,t){return{discoveredSerdeFiles:e.discoveredSerdeFiles,discoveredSteps:[...new Set([...e.discoveredSteps,...t.directiveModules])]}}export{WorkflowBundleBuilder};
1
+ import{mkdir,readFile,writeFile}from"node:fs/promises";import{resolvePackageSourceDirectoryPath,resolveWorkflowModulePath}from"#internal/application/package.js";import{dirname,join,resolve}from"node:path";import{buildSingleRolldownChunk}from"#internal/bundler/nitro-rolldown.js";import{createAuthoredPackageTsConfigPathsPlugin}from"#internal/authored-package-tsconfig-paths.js";import{createAuthoredRelativeExtensionResolverPlugin}from"#internal/authored-relative-extension-resolver.js";import{findWorkflowPatterns}from"#internal/workflow-bundle/workflow-builders.js";import{mapConcurrent}from"#shared/map-concurrent.js";import{onVendoredDependencyLog}from"#internal/bundler/vendored-dependency-log.js";import{prepareEveVersionedCacheDirectory,writeEveVersionedCacheMetadata}from"#internal/application/cache-metadata.js";import{WORKFLOW_BUILDER_DEFERRED_PACKAGES,WORKFLOW_STEP_EXTERNAL_PACKAGES}from"#internal/workflow-bundle/vercel-workflow-output.js";import{deriveEveWorkflowQueueNamespace}from"#internal/workflow/queue-namespace.js";import{runQueuedWorkflowBuild}from"#internal/workflow-bundle/build-queue.js";import{WORKFLOW_SOURCE_EXTENSIONS,WORKFLOW_VIRTUAL_ENTRY_ID,bundleFinalWorkflowOutput,collectWorkflowInputFiles,composeWorkflowDriverCode,convertClassesManifest,convertStepsManifest,convertWorkflowsManifest,createEvePackageImportsPlugin,createWorkflowDriverAliasPlugin,createWorkflowImport,createWorkflowNodeBuiltinGuardPlugin,createWorkflowPseudoPackagePlugin,createWorkflowTransformPlugin,createWorkflowVirtualEntryPlugin,mergeWorkflowManifest}from"#internal/workflow-bundle/builder-support.js";import{writeNitroStepEntrypoint}from"#internal/workflow-bundle/nitro-step-entry.js";var WorkflowBundleBuilder=class{#e;#t;#n;#r;config;constructor(e){let t=[resolvePackageSourceDirectoryPath(`src/execution`),resolvePackageSourceDirectoryPath(`src/runtime/subagents`),resolvePackageSourceDirectoryPath(`src/subagents`)];e.includeTestFixtures===!0&&t.push(resolvePackageSourceDirectoryPath(`src/internal/testing`)),this.config={buildTarget:`standalone`,dirs:t,externalPackages:[...WORKFLOW_STEP_EXTERNAL_PACKAGES,...WORKFLOW_BUILDER_DEFERRED_PACKAGES],projectRoot:e.appRoot,watch:e.watch,workingDir:e.rootDir},this.#e=e.authoredWorkflowModules??{directiveModules:[],workflowModules:[]},this.#t=e.compiledArtifactsBootstrapPath,this.#n=e.outDir,this.#r=deriveEveWorkflowQueueNamespace(e.agentName)}async build(e={}){await runQueuedWorkflowBuild(this.#n,async()=>this.#i(e))}async#i(e){await prepareEveVersionedCacheDirectory(this.#n);let t=await this.#o();if(t.length===0)throw Error(`Expected framework workflow source files under eve's execution, runtime/subagents, or subagents source directories.`);let n=await this.findTsConfigPath();await mkdir(this.#n,{recursive:!0});let r=await this.discoverEntries(t),i=this.#e,a=mergeStepEntries(r,i),o=join(this.#n,`steps.mjs`),s=join(this.#n,`workflows.mjs`),c=e.nitroStepOutfile,l=e.nitroWorkflowOutfile,writeStepEntry=(e,t)=>writeNitroStepEntrypoint({builtinsPath:resolveWorkflowModulePath(`workflow/internal/builtins`),discoveredEntries:a,outfile:e,precomputedManifest:t,preferAbsoluteFileImports:!0,projectRoot:this.config.projectRoot??this.config.workingDir,sideEffectFiles:[this.#t],workingDir:this.config.workingDir}),u=await writeStepEntry(o);c!==void 0&&c!==o&&await writeStepEntry(c,u);let{manifest:d}=await this.createWorkflowsBundle({additionalOutputs:l===void 0||l===s?[]:[{outfile:l,stepRegistrationsPath:c??o}],appWorkflowFiles:i.workflowModules,frameworkSerdeFiles:r.discoveredSerdeFiles,frameworkWorkflowFiles:r.discoveredWorkflows,outfile:s,stepRegistrationsPath:o,tsconfigPath:n});await this.createManifest({workflowBundlePath:join(this.#n,`workflows.mjs`),manifestDir:this.#n,manifest:{steps:{...u.steps,...d.steps},workflows:{...u.workflows,...d.workflows},classes:{...u.classes,...d.classes}}}),await writeEveVersionedCacheMetadata(this.#n)}get transformProjectRoot(){return this.config.projectRoot??this.config.workingDir}async findTsConfigPath(){let e=this.transformProjectRoot;for(;;){for(let t of[`tsconfig.json`,`jsconfig.json`]){let n=join(e,t);try{return await readFile(n),n}catch(e){if(!(e instanceof Error&&`code`in e&&e.code===`ENOENT`))throw e}}let t=dirname(e);if(t===e)return;e=t}}async getInputFiles(){let e=this.config.dirs.map(e=>resolve(this.config.workingDir,e));return(await Promise.all(e.map(e=>collectWorkflowInputFiles(e)))).flat()}async discoverEntries(e){let t={discoveredSerdeFiles:[],discoveredSteps:[],discoveredWorkflows:[]},n=await mapConcurrent(e,async e=>{let t=await readFile(e,`utf8`);return{filePath:e,patterns:await findWorkflowPatterns(e,t)}});for(let{filePath:e,patterns:r}of n)r.hasUseStep&&t.discoveredSteps.push(e),r.hasUseWorkflow&&t.discoveredWorkflows.push(e),r.hasSerde&&t.discoveredSerdeFiles.push(e);return t}async createWorkflowsBundle({additionalOutputs:e=[],appWorkflowFiles:t,frameworkSerdeFiles:n,frameworkWorkflowFiles:r,outfile:i,stepRegistrationsPath:a,tsconfigPath:o}){let s={},c=await mapConcurrent([{label:`framework`,serdeFiles:n,workflowFiles:r},{label:`app`,serdeFiles:[],workflowFiles:t}],async e=>{let t={};return{code:await this.#a({...e,manifest:t,tsconfigPath:o}),manifest:t}});for(let e of c)mergeWorkflowManifest(s,e.manifest);let l=composeWorkflowDriverCode(c.map(e=>e.code));return await Promise.all([{outfile:i,stepRegistrationsPath:a},...e].map(e=>bundleFinalWorkflowOutput({code:l,outfile:e.outfile,queueNamespace:this.#r,stepRegistrationsPath:e.stepRegistrationsPath}))),{manifest:s}}async#a(e){let t=[...e.workflowFiles].sort(),n=new Set(t),r=[...e.serdeFiles].sort().filter(e=>!n.has(e));if(t.length===0&&r.length===0)return``;let i=[...t.map(e=>createWorkflowImport(e,this.config.workingDir)),...r.map(e=>createWorkflowImport(e,this.config.workingDir))].join(`
2
+ `);return(await buildSingleRolldownChunk(`${e.label} workflow driver chunk`,{cwd:this.config.workingDir,onLog(e,t,n){if(e===`warn`&&t.code===`UNRESOLVED_IMPORT`)throw Error(`Cannot build workflow bundle: ${t.message}`);onVendoredDependencyLog(e,t,n)},input:WORKFLOW_VIRTUAL_ENTRY_ID,platform:`neutral`,plugins:[createWorkflowVirtualEntryPlugin(i),createWorkflowPseudoPackagePlugin(),createWorkflowDriverAliasPlugin(this.config.workingDir),createAuthoredRelativeExtensionResolverPlugin({extensions:WORKFLOW_SOURCE_EXTENSIONS}),createAuthoredPackageTsConfigPathsPlugin({appPackageRoot:this.transformProjectRoot,extensions:WORKFLOW_SOURCE_EXTENSIONS}),createEvePackageImportsPlugin(this.config.workingDir,{workflowCondition:!0}),createWorkflowTransformPlugin({manifest:e.manifest,projectRoot:this.transformProjectRoot,sideEffectFiles:[...t,...r],workingDir:this.config.workingDir}),createWorkflowNodeBuiltinGuardPlugin()],resolve:{conditionNames:[`eve-source`,`workflow`],extensions:WORKFLOW_SOURCE_EXTENSIONS,mainFields:[`module`,`main`]},tsconfig:e.tsconfigPath??!1,output:{comments:!1,format:`cjs`,sourcemap:`inline`}})).code}async createManifest({manifest:e,manifestDir:t}){let n={version:`1.0.0`,steps:convertStepsManifest(e.steps),workflows:convertWorkflowsManifest(e.workflows),classes:convertClassesManifest(e.classes)},r=JSON.stringify(n,null,2);return await mkdir(t,{recursive:!0}),await writeFile(join(t,`manifest.json`),r),r}async#o(){return await this.getInputFiles()}};function mergeStepEntries(e,t){return{discoveredSerdeFiles:e.discoveredSerdeFiles,discoveredSteps:[...new Set([...e.discoveredSteps,...t.directiveModules])]}}export{WorkflowBundleBuilder};
@@ -12,4 +12,3 @@
12
12
  export declare function transformDynamicToolExecute(filename: string, source: string, workflowFunctions?: ReadonlySet<string>): Promise<{
13
13
  code: string;
14
14
  } | null>;
15
- export { transformDynamicToolExecute as transformDynamicToolAwait };
@@ -1,3 +1,3 @@
1
1
  import{parseWithNitroRolldownAst}from"#internal/bundler/nitro-rolldown.js";import{collectReferencedIdentifierNames,findProperty,walkNode}from"#internal/workflow-bundle/dynamic-tool-ast-references.js";async function transformDynamicToolExecute(e,t,n=NO_WORKFLOW_FUNCTIONS){if(!t.includes(`defineTool`)&&!t.includes(`defineWorkflowTool`))return null;let r=await parseWithNitroRolldownAst(e,t),i=findDefineToolAliases(r);if(i.size===0)return null;let a=[];return walkForCallbacks(t,r,a,[],{defineToolAliases:i,workflowFunctions:n,durableSchemaAliases:findDefineToolAliases(r,[`defineDurableSchema`])}),a.length===0?null:applyTransform(t,a)}const NO_WORKFLOW_FUNCTIONS=new Set;function findDefineToolAliases(e,t=[`defineTool`,`defineWorkflowTool`]){let n=new Set;return walkNode(e,e=>{if(e.type!==`ImportDeclaration`)return!0;let r=e.source?.value;if(typeof r!=`string`||r!==`eve`&&!r.startsWith(`eve/`))return!1;for(let r of e.specifiers??[]){if(r.type===`ImportNamespaceSpecifier`&&r.local?.name)for(let e of t)n.add(`${r.local.name}.${e}`);r.type===`ImportSpecifier`&&t.includes(String(r.imported?.name??r.imported?.value))&&r.local?.name&&n.add(r.local.name)}return!1}),n}function readDefinerName(e){if(e?.type===`Identifier`)return e.name;if(e?.type!==`MemberExpression`||e.object?.type!==`Identifier`)return;let t=e.computed?e.property?.value:e.property?.name;return typeof t==`string`?`${e.object.name}.${t}`:void 0}function walkForCallbacks(e,t,n,r,i){if(t){if(isFunction(t)){let a=t.body;if(!a)return;walkForCallbacks(e,a,n,[...r,{params:extractParamNames(t),vars:collectScopeVarDeclarations(a)}],i);return}if(t.type===`CallExpression`&&i.defineToolAliases.has(readDefinerName(t.callee)??``)&&t.arguments?.length===1&&t.arguments[0]?.type===`ObjectExpression`){collectToolCallbacks(e,t.arguments[0],n,r,i);return}for(let a of Object.values(t))if(Array.isArray(a))for(let t of a)isAstNode(t)&&walkForCallbacks(e,t,n,r,i);else isAstNode(a)&&walkForCallbacks(e,a,n,r,i)}}function isWorkflowExecute(e,t){let n=e?.value;return n?.type===`Identifier`&&n.name!==void 0&&t.workflowFunctions.has(n.name)}function collectToolCallbacks(e,t,n,r,i){let a=findProperty(t,`execute`);isWorkflowExecute(a,i)||collectCallbackProperty(e,a,`execute`,`execute`,n,r),collectCallbackProperty(e,findProperty(t,`approvalKey`),`approvalKey`,`approvalKey`,n,r);let o=findProperty(t,`label`)?.value;o?.type===`ObjectExpression`&&(collectCallbackProperty(e,findProperty(o,`start`),`labelStart`,`start`,n,r),collectCallbackProperty(e,findProperty(o,`complete`),`labelComplete`,`complete`,n,r),collectCallbackProperty(e,findProperty(o,`delta`),`labelDelta`,`delta`,n,r)),collectCallbackProperty(e,findProperty(t,`toModelOutput`),`toModelOutput`,`toModelOutput`,n,r);for(let a of[`inputSchema`,`outputSchema`]){let o=findProperty(t,a),s=o?.value;o?.start!==void 0&&o.end!==void 0&&s?.start!==void 0&&s.end!==void 0&&(s.type!==`ObjectExpression`||findProperty(s,`~standard`))&&(s.type!==`CallExpression`||s.callee?.name!==`__eveDefineDurableSchema`&&!i.durableSchemaAliases.has(readDefinerName(s.callee)??``))&&n.push({body:`{ return ${e.slice(s.start,s.end)}; }`,bodyNode:s,isAsync:!1,isGenerator:!1,isReference:!1,nestedScopes:r,params:``,phase:a,propertyName:a,propEnd:o.end,propStart:o.start})}let s=findProperty(t,`approval`),c=s?.value;c?.type===`ObjectExpression`?(collectCallbackProperty(e,findProperty(c,`request`),`approvalRequest`,`request`,n,r),collectCallbackProperty(e,findProperty(c,`response`),`approvalResponse`,`response`,n,r)):collectCallbackProperty(e,s,`approvalRequest`,`approval`,n,r)}function collectCallbackProperty(e,t,n,r,i,a){if(t?.type!==`Property`||t.start===void 0||t.end===void 0)return;let o=t.value;if(o&&o.start!==void 0&&o.end!==void 0){if(isFunction(o)||t.method===!0){let s=o.body;if(!s)return;i.push({body:extractFnBody(e,o),bodyNode:s,isAsync:o.async===!0,isGenerator:o.generator===!0,isReference:!1,nestedScopes:a,params:extractFnParams(e,o),phase:n,propertyName:r,propEnd:t.end,propStart:t.start});return}o.type===`Identifier`&&i.push({body:`{ return ${e.slice(o.start,o.end)}(...__args); }`,bodyNode:o,isAsync:!1,isGenerator:!1,isReference:!0,nestedScopes:a,params:`...__args`,phase:n,propertyName:r,propEnd:t.end,propStart:t.start})}}function applyTransform(e,t){let n=[],r=[];for(let[e,i]of t.entries()){let t=collectReferencedIdentifierNames(i.bodyNode),a=i.nestedScopes.flatMap(e=>[...e.params,...e.vars]),o=extractCallbackParamNames(i.params),s=dedupeShadowed(a).filter(e=>!o.has(e)&&t.has(e)),c=s.length>0?`{ ${s.join(`, `)} }`:`{}`,l=i.phase.replace(/[A-Z]/g,e=>`_${e.toLowerCase()}`),u=i.phase===`execute`?`__eve_dynamic_exec_${e}`:`__eve_dynamic_${l}_${e}`,d=i.params,f=d?`__vars, ${d}`:`__vars`,p=s.length>0?`const ${c} = __vars;\n `:``,m=i.body.slice(1,-1).trim(),h=i.isAsync?`async `:``,g=i.isGenerator?`*`:``;r.push(`${h}function${g} ${u}(${f}) {\n ${p}${m}\n}`);let _=createLiveWrapper(i,u,c),v=i.phase===`inputSchema`||i.phase===`outputSchema`?`__eveDefineDurableSchema({ schema: ${u}, closure: ${c} })`:`__eveStampDynamicCallback(${_}, ${u}, ${c})`;n.push({end:i.propEnd,start:i.propStart,text:`${i.propertyName}: ${v}`})}let i=e;for(let e of n.sort((e,t)=>t.start-e.start))i=i.slice(0,e.start)+e.text+i.slice(e.end);return{code:`${[...t.some(e=>e.phase===`inputSchema`||e.phase===`outputSchema`)?[`import { defineDurableSchema as __eveDefineDurableSchema } from "eve/tools";`]:[],`var __eveDurableCallbackSym = Symbol.for("eve:durable-dynamic-callback");`,`function __eveStampDynamicCallback(callback, impl, closure) {`,` Object.defineProperty(callback, __eveDurableCallbackSym, { configurable: true, value: { callback: impl, closure } });`,` return callback;`,`}`].join(`
2
2
  `)}\n${i}\n\n${r.join(`
3
- `)}\n`}}function createLiveWrapper(e,t,n){if(e.isReference)return`(...__args) => ${t}(${n}, ...__args)`;let r=e.isAsync?`async `:``;return e.isGenerator?`${r}function* (...__args) { yield* ${t}(${n}, ...__args); }`:`${r}(...__args) => ${e.isAsync?`await `:``}${t}(${n}, ...__args)`}function dedupeShadowed(e){let t=new Set,n=[];for(let r=e.length-1;r>=0;r--){let i=e[r];t.has(i)||(t.add(i),n.unshift(i))}return n}function collectScopeVarDeclarations(e){let t=[];return walkNode(e,n=>n!==e&&isFunction(n)?!1:(n.type===`VariableDeclarator`&&collectPatternNames(n.id,t),n.type===`FunctionDeclaration`&&n.id?.name&&t.push(n.id.name),!0)),t}function collectPatternNames(e,t){if(e){if(e.type===`Identifier`&&e.name){t.push(e.name);return}if(e.type===`ObjectPattern`)for(let n of e.properties??[])collectPatternNames(n.type===`RestElement`?n.argument:n.value,t);if(e.type===`ArrayPattern`)for(let n of e.elements??[])collectPatternNames(n,t);e.type===`AssignmentPattern`&&collectPatternNames(e.left,t)}}function extractParamNames(e){let t=[];for(let n of e.params??[])collectPatternNames(n,t);return t}function extractFnParams(e,t){if(!t.params||t.params.length===0)return``;let n=t.params[0],r=t.params[t.params.length-1];return n.start===void 0||r.end===void 0?``:e.slice(n.start,r.end)}function extractFnBody(e,t){let n=t.body;if(!n||n.start===void 0||n.end===void 0)return`{}`;let r=e.slice(n.start,n.end);return t.type===`ArrowFunctionExpression`&&n.type!==`BlockStatement`?`{ return ${r}; }`:r}function splitParamsTopLevel(e){let t=[],n=0,r=0;for(let i=0;i<e.length;i++){let a=e[i];a===`<`||a===`(`||a===`[`||a===`{`?n++:a===`>`||a===`)`||a===`]`||a===`}`?n--:a===`,`&&n===0&&(t.push(e.slice(r,i)),r=i+1)}return t.push(e.slice(r)),t}function extractParamBindingName(e){let t=e.trim(),n=0;for(let e=0;e<t.length;e++){let r=t[e];if(r===`<`||r===`(`||r===`[`||r===`{`)n++;else if(r===`>`||r===`)`||r===`]`||r===`}`)n--;else if(n===0&&(r===`:`||r===`=`))return t.slice(0,e).trim()}return t}function extractCallbackParamNames(e){let t=[];if(!e)return new Set;for(let n of splitParamsTopLevel(e)){let e=extractParamBindingName(n);e.startsWith(`...`)?t.push(e.slice(3)):t.push(e)}return new Set(t)}function isFunction(e){return e.type===`ArrowFunctionExpression`||e.type===`FunctionDeclaration`||e.type===`FunctionExpression`}function isAstNode(e){return typeof e==`object`&&!!e&&typeof e.type==`string`}export{transformDynamicToolExecute as transformDynamicToolAwait,transformDynamicToolExecute};
3
+ `)}\n`}}function createLiveWrapper(e,t,n){if(e.isReference)return`(...__args) => ${t}(${n}, ...__args)`;let r=e.isAsync?`async `:``;return e.isGenerator?`${r}function* (...__args) { yield* ${t}(${n}, ...__args); }`:`${r}(...__args) => ${e.isAsync?`await `:``}${t}(${n}, ...__args)`}function dedupeShadowed(e){let t=new Set,n=[];for(let r=e.length-1;r>=0;r--){let i=e[r];t.has(i)||(t.add(i),n.unshift(i))}return n}function collectScopeVarDeclarations(e){let t=[];return walkNode(e,n=>n!==e&&isFunction(n)?!1:(n.type===`VariableDeclarator`&&collectPatternNames(n.id,t),n.type===`FunctionDeclaration`&&n.id?.name&&t.push(n.id.name),!0)),t}function collectPatternNames(e,t){if(e){if(e.type===`Identifier`&&e.name){t.push(e.name);return}if(e.type===`ObjectPattern`)for(let n of e.properties??[])collectPatternNames(n.type===`RestElement`?n.argument:n.value,t);if(e.type===`ArrayPattern`)for(let n of e.elements??[])collectPatternNames(n,t);e.type===`AssignmentPattern`&&collectPatternNames(e.left,t)}}function extractParamNames(e){let t=[];for(let n of e.params??[])collectPatternNames(n,t);return t}function extractFnParams(e,t){if(!t.params||t.params.length===0)return``;let n=t.params[0],r=t.params[t.params.length-1];return n.start===void 0||r.end===void 0?``:e.slice(n.start,r.end)}function extractFnBody(e,t){let n=t.body;if(!n||n.start===void 0||n.end===void 0)return`{}`;let r=e.slice(n.start,n.end);return t.type===`ArrowFunctionExpression`&&n.type!==`BlockStatement`?`{ return ${r}; }`:r}function splitParamsTopLevel(e){let t=[],n=0,r=0;for(let i=0;i<e.length;i++){let a=e[i];a===`<`||a===`(`||a===`[`||a===`{`?n++:a===`>`||a===`)`||a===`]`||a===`}`?n--:a===`,`&&n===0&&(t.push(e.slice(r,i)),r=i+1)}return t.push(e.slice(r)),t}function extractParamBindingName(e){let t=e.trim(),n=0;for(let e=0;e<t.length;e++){let r=t[e];if(r===`<`||r===`(`||r===`[`||r===`{`)n++;else if(r===`>`||r===`)`||r===`]`||r===`}`)n--;else if(n===0&&(r===`:`||r===`=`))return t.slice(0,e).trim()}return t}function extractCallbackParamNames(e){let t=[];if(!e)return new Set;for(let n of splitParamsTopLevel(e)){let e=extractParamBindingName(n);e.startsWith(`...`)?t.push(e.slice(3)):t.push(e)}return new Set(t)}function isFunction(e){return e.type===`ArrowFunctionExpression`||e.type===`FunctionDeclaration`||e.type===`FunctionExpression`}function isAstNode(e){return typeof e==`object`&&!!e&&typeof e.type==`string`}export{transformDynamicToolExecute};
@@ -1 +1 @@
1
- import{dirname,isAbsolute,join,relative,resolve,sep}from"node:path";import{existsSync,readFileSync,realpathSync}from"node:fs";import{EVE_PACKAGE_NAME}from"#internal/package-name.js";import{STABLE_WORKFLOW_NAMES}from"#execution/stable-workflow-names.js";import{prepareAuthoredWorkflowDirectives}from"#internal/workflow-bundle/authored-workflow-directives.js";import{SUBAGENT_TOOL_EXECUTE_WORKFLOW_NAME}from"#runtime/subagents/workflow-reference.js";import{findWorkflowDirectiveFunctions,stripJavaScriptExtension,transformWorkflowDirectives}from"#internal/workflow-bundle/workflow-transformer.js";const packageJsonCache=new Map,projectDepsCache=new Map;async function applyWorkflowTransform(e,t,n,r,i,a=new Set([...STABLE_WORKFLOW_NAMES,SUBAGENT_TOOL_EXECUTE_WORKFLOW_NAME])){let o=i??process.cwd(),s=r===void 0?isAbsolute(e)?e:join(o,e):r,{moduleSpecifier:c,stableModuleSpecifier:l}=resolveModuleSpecifier(s,o,n===`metadata`);if(r!==void 0&&isAuthoredApplicationModule(r,o)){let e=n===!1?void 0:await prepareAuthoredWorkflowDirectives({filePath:r,source:t});return transformWorkflowDirectives({authored:!0,authorizeSteps:!0,filename:authoredRelativePath(r,o),mode:e?.hasDirectives===!0&&n,moduleSpecifier:authoredModuleIdBase(r,o),source:e?.source??t,stableModuleSpecifier:void 0,stableWorkflowNames:a})}return transformWorkflowDirectives({authorizeSteps:isPackageTestFixtureModule(s),filename:e,mode:n,moduleSpecifier:c,source:t,stableModuleSpecifier:l,stableWorkflowNames:a})}function isPackageTestFixtureModule(e){return e.replace(/\\/g,`/`).includes(`/src/internal/testing/`)}function isAuthoredApplicationModule(e,t){let n=toRealPath(t).replace(/\\/g,`/`).replace(/\/$/,``),r=toRealPath(e).replace(/\\/g,`/`);return!r.startsWith(`${n}/`)||isInNodeModules(r)?!1:findPackageJson(r)?.name!==EVE_PACKAGE_NAME}function authoredRelativePath(e,t){return toRelativeImportPath(toRealPath(e),toRealPath(t)).replace(/^\.\//,``)}function authoredModuleIdBase(e,t){return`./${stripJavaScriptExtension(authoredRelativePath(e,t))}`}function toRealPath(e){try{return realpathSync(e)}catch{return resolve(e)}}async function findWorkflowPatterns(e,t){let n=await findWorkflowDirectiveFunctions(e,t);return{hasSerde:t.includes(`workflow.serde`)||t.includes(`@serde`)||t.includes(`workflowSerde`)||t.includes(`__workflow_serde`),hasUseStep:n.some(e=>e.directive===`use step`),hasUseWorkflow:n.some(e=>e.directive===`use workflow`)}}function getImportPath(e,t){let n=isInNodeModules(e),r=!n&&isWorkspacePackage(e,t);if(n||r){let n=findPackageJson(e);if(n!==null){let i=getProjectDependencies(t).has(n.name);if(!(r||i))return{importPath:toRelativeImportPath(e,t),isPackage:!1};let a=resolveExportSubpath(e,n);return a?{importPath:`${n.name}${a}`,isPackage:!0}:isRootEntrypointFile(e,n)?{importPath:n.name,isPackage:!0}:{importPath:toRelativeImportPath(e,t),isPackage:!1}}}return{importPath:toRelativeImportPath(e,t),isPackage:!1}}function resolveModuleSpecifier(e,t,n=!1){let r=isInNodeModules(e),i=!r&&isWorkspacePackage(e,t),a=findPackageJson(e);if(n&&a!==null)return{moduleSpecifier:`${a.name}@${a.version}`,stableModuleSpecifier:a.name};if(!r&&!i)return{moduleSpecifier:void 0,stableModuleSpecifier:a?.name===EVE_PACKAGE_NAME?EVE_PACKAGE_NAME:void 0};if(a===null)return{moduleSpecifier:void 0,stableModuleSpecifier:void 0};let o=resolveExportSubpath(e,a),s=o?`${a.name}${o}`:a.name;return{moduleSpecifier:`${s}@${a.version}`,stableModuleSpecifier:s}}function findPackageJson(e){let t=dirname(e),n=[];for(;t!==dirname(t);){let e=packageJsonCache.get(t);if(e!==void 0){for(let t of n)packageJsonCache.set(t,e);return e}n.push(t);let r=join(t,`package.json`);if(existsSync(r))try{let e=JSON.parse(readFileSync(r,`utf8`));if(typeof e.name==`string`&&typeof e.version==`string`){let r={dir:t,exports:e.exports,main:e.main,module:e.module,name:e.name,version:e.version};packageJsonCache.set(t,r);for(let e of n)packageJsonCache.set(e,r);return r}}catch{}t=dirname(t)}for(let e of n)packageJsonCache.set(e,null);return null}function resolveExportSubpath(e,t){if(t.exports===null||typeof t.exports!=`object`||Array.isArray(t.exports))return``;let n=e.replace(/\\/g,`/`),r=t.dir.replace(/\\/g,`/`),i=n.startsWith(`${r}/`)?`./${n.substring(r.length+1)}`:null;if(i===null)return``;for(let[e,n]of Object.entries(t.exports)){let t=resolveExportTarget(n);if(t!==null&&normalizeExportPath(t)===i)return e===`.`?``:e.substring(1)}return``}function resolveExportTarget(e){if(typeof e==`string`)return e;if(Array.isArray(e)){for(let t of e){let e=resolveExportTarget(t);if(e!==null)return e}return null}if(typeof e==`object`&&e)for(let t of[`workflow`,`default`,`require`,`import`,`node`]){let n=e[t],r=resolveExportTarget(n);if(r!==null)return r}return null}function normalizeExportPath(e){return e.startsWith(`./`)?e:`./${e}`}function isInNodeModules(e){return e.split(sep).join(`/`).includes(`/node_modules/`)}function getProjectDependencies(e){let t=projectDepsCache.get(e);if(t!==void 0)return t;let n=new Set,r=join(e,`package.json`);if(existsSync(r))try{let e=JSON.parse(readFileSync(r,`utf8`));for(let t of[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`]){let r=e[t];if(typeof r==`object`&&r&&!Array.isArray(r))for(let e of Object.keys(r))n.add(e)}}catch{}return projectDepsCache.set(e,n),n}function isWorkspacePackage(e,t){if(isInNodeModules(e))return!1;let n=findPackageJson(e);return n===null||resolve(n.dir)===resolve(t)?!1:getProjectDependencies(t).has(n.name)}function toRelativeImportPath(e,t){let n=t.replace(/\\/g,`/`),r=e.replace(/\\/g,`/`),i=r.startsWith(`${n}/`)?r.substring(n.length+1):relative(t,e).replace(/\\/g,`/`);return i.startsWith(`.`)||(i=`./${i}`),i}function hasRootExport(e){if(typeof e==`string`||Array.isArray(e))return!0;if(typeof e!=`object`||!e)return!1;let t=Object.keys(e);return t.length>0&&t.every(e=>!e.startsWith(`.`))?!0:`.`in e}function normalizePackageTargetPath(e){let t=e.replace(/\\/g,`/`);return t.startsWith(`./`)?t.substring(2):t.startsWith(`/`)?t.substring(1):t}function isRootEntrypointFile(e,t){let n=e.replace(/\\/g,`/`),r=t.dir.replace(/\\/g,`/`);if(!n.startsWith(`${r}/`))return!1;let i=n.substring(r.length+1);if(t.exports!==void 0){let e;if(t.exports!==null&&typeof t.exports==`object`&&`.`in t.exports)e=t.exports[`.`];else if(hasRootExport(t.exports))e=t.exports;else return!1;let n=resolveExportTarget(e);return n!==null&&normalizePackageTargetPath(n)===i}return[t.module,t.main,`index.js`,`index.mjs`,`index.cjs`,`index.ts`,`index.mts`,`index.cts`].flatMap(e=>typeof e==`string`?[normalizePackageTargetPath(e)]:[]).includes(i)}export{applyWorkflowTransform,findWorkflowPatterns,getImportPath,isAuthoredApplicationModule};
1
+ import{existsSync,readFileSync,realpathSync}from"node:fs";import{dirname,isAbsolute,join,relative,resolve,sep}from"node:path";import{EVE_PACKAGE_NAME}from"#internal/package-name.js";import{STABLE_WORKFLOW_NAMES}from"#execution/stable-workflow-names.js";import{prepareAuthoredWorkflowDirectives}from"#internal/workflow-bundle/authored-workflow-directives.js";import{SUBAGENT_TOOL_EXECUTE_WORKFLOW_NAME}from"#runtime/subagents/workflow-reference.js";import{findWorkflowDirectiveFunctions,stripJavaScriptExtension,transformWorkflowDirectives}from"#internal/workflow-bundle/workflow-transformer.js";const packageJsonCache=new Map,projectDepsCache=new Map;async function applyWorkflowTransform(e,t,n,r,i,a=new Set([...STABLE_WORKFLOW_NAMES,SUBAGENT_TOOL_EXECUTE_WORKFLOW_NAME])){let o=i??process.cwd(),s=r===void 0?isAbsolute(e)?e:join(o,e):r,{moduleSpecifier:c,stableModuleSpecifier:l}=resolveModuleSpecifier(s,o,n===`metadata`);if(r!==void 0&&isAuthoredApplicationModule(r,o)){let e=n===!1?void 0:await prepareAuthoredWorkflowDirectives({filePath:r,source:t});return transformWorkflowDirectives({authored:!0,authorizeSteps:!0,filename:authoredRelativePath(r,o),mode:e?.hasDirectives===!0&&n,moduleSpecifier:authoredModuleIdBase(r,o),source:e?.source??t,stableModuleSpecifier:void 0,stableWorkflowNames:a})}return transformWorkflowDirectives({authorizeSteps:isPackageTestFixtureModule(s),filename:e,mode:n,moduleSpecifier:c,source:t,stableModuleSpecifier:l,stableWorkflowNames:a})}function isPackageTestFixtureModule(e){return e.replace(/\\/g,`/`).includes(`/src/internal/testing/`)}function isAuthoredApplicationModule(e,t){let n=toRealPath(t).replace(/\\/g,`/`).replace(/\/$/,``),r=toRealPath(e).replace(/\\/g,`/`);return!r.startsWith(`${n}/`)||isInNodeModules(r)?!1:findPackageJson(r)?.name!==EVE_PACKAGE_NAME}function authoredRelativePath(e,t){return toRelativeImportPath(toRealPath(e),toRealPath(t)).replace(/^\.\//,``)}function authoredModuleIdBase(e,t){return`./${stripJavaScriptExtension(authoredRelativePath(e,t))}`}function toRealPath(e){try{return realpathSync(e)}catch{return resolve(e)}}async function findWorkflowPatterns(e,t){let n=await findWorkflowDirectiveFunctions(e,t);return{hasSerde:t.includes(`workflow.serde`)||t.includes(`@serde`)||t.includes(`workflowSerde`)||t.includes(`__workflow_serde`),hasUseStep:n.some(e=>e.directive===`use step`),hasUseWorkflow:n.some(e=>e.directive===`use workflow`)}}function getImportPath(e,t){let n=isInNodeModules(e),r=!n&&isWorkspacePackage(e,t);if(n||r){let n=findPackageJson(e);if(n!==null){let i=getProjectDependencies(t).has(n.name);if(!(r||i))return{importPath:toRelativeImportPath(e,t),isPackage:!1};let a=resolveExportSubpath(e,n);return a?{importPath:`${n.name}${a}`,isPackage:!0}:isRootEntrypointFile(e,n)?{importPath:n.name,isPackage:!0}:{importPath:toRelativeImportPath(e,t),isPackage:!1}}}return{importPath:toRelativeImportPath(e,t),isPackage:!1}}function resolveModuleSpecifier(e,t,n=!1){let r=isInNodeModules(e),i=!r&&isWorkspacePackage(e,t),a=findPackageJson(e);if(n&&a!==null)return{moduleSpecifier:`${a.name}@${a.version}`,stableModuleSpecifier:a.name};if(!r&&!i)return{moduleSpecifier:void 0,stableModuleSpecifier:a?.name===EVE_PACKAGE_NAME?EVE_PACKAGE_NAME:void 0};if(a===null)return{moduleSpecifier:void 0,stableModuleSpecifier:void 0};let o=resolveExportSubpath(e,a),s=o?`${a.name}${o}`:a.name;return{moduleSpecifier:`${s}@${a.version}`,stableModuleSpecifier:s}}function findPackageJson(e){let t=dirname(e),n=[];for(;t!==dirname(t);){let e=packageJsonCache.get(t);if(e!==void 0){for(let t of n)packageJsonCache.set(t,e);return e}n.push(t);let r=join(t,`package.json`);if(existsSync(r))try{let e=JSON.parse(readFileSync(r,`utf8`));if(typeof e.name==`string`&&typeof e.version==`string`){let r={dir:t,exports:e.exports,main:e.main,module:e.module,name:e.name,version:e.version};packageJsonCache.set(t,r);for(let e of n)packageJsonCache.set(e,r);return r}}catch{}t=dirname(t)}for(let e of n)packageJsonCache.set(e,null);return null}function resolveExportSubpath(e,t){if(t.exports===null||typeof t.exports!=`object`||Array.isArray(t.exports))return``;let n=e.replace(/\\/g,`/`),r=t.dir.replace(/\\/g,`/`),i=n.startsWith(`${r}/`)?`./${n.substring(r.length+1)}`:null;if(i===null)return``;for(let[e,n]of Object.entries(t.exports)){let t=resolveExportTarget(n);if(t!==null&&normalizeExportPath(t)===i)return e===`.`?``:e.substring(1)}return``}function resolveExportTarget(e){if(typeof e==`string`)return e;if(Array.isArray(e)){for(let t of e){let e=resolveExportTarget(t);if(e!==null)return e}return null}if(typeof e==`object`&&e)for(let t of[`workflow`,`default`,`require`,`import`,`node`]){let n=e[t],r=resolveExportTarget(n);if(r!==null)return r}return null}function normalizeExportPath(e){return e.startsWith(`./`)?e:`./${e}`}function isInNodeModules(e){return e.split(sep).join(`/`).includes(`/node_modules/`)}function getProjectDependencies(e){let t=projectDepsCache.get(e);if(t!==void 0)return t;let n=new Set,r=join(e,`package.json`);if(existsSync(r))try{let e=JSON.parse(readFileSync(r,`utf8`));for(let t of[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`]){let r=e[t];if(typeof r==`object`&&r&&!Array.isArray(r))for(let e of Object.keys(r))n.add(e)}}catch{}return projectDepsCache.set(e,n),n}function isWorkspacePackage(e,t){if(isInNodeModules(e))return!1;let n=findPackageJson(e);return n===null||resolve(n.dir)===resolve(t)?!1:getProjectDependencies(t).has(n.name)}function toRelativeImportPath(e,t){let n=t.replace(/\\/g,`/`),r=e.replace(/\\/g,`/`),i=r.startsWith(`${n}/`)?r.substring(n.length+1):relative(t,e).replace(/\\/g,`/`);return i.startsWith(`.`)||(i=`./${i}`),i}function hasRootExport(e){if(typeof e==`string`||Array.isArray(e))return!0;if(typeof e!=`object`||!e)return!1;let t=Object.keys(e);return t.length>0&&t.every(e=>!e.startsWith(`.`))?!0:`.`in e}function normalizePackageTargetPath(e){let t=e.replace(/\\/g,`/`);return t.startsWith(`./`)?t.substring(2):t.startsWith(`/`)?t.substring(1):t}function isRootEntrypointFile(e,t){let n=e.replace(/\\/g,`/`),r=t.dir.replace(/\\/g,`/`);if(!n.startsWith(`${r}/`))return!1;let i=n.substring(r.length+1);if(t.exports!==void 0){let e;if(t.exports!==null&&typeof t.exports==`object`&&`.`in t.exports)e=t.exports[`.`];else if(hasRootExport(t.exports))e=t.exports;else return!1;let n=resolveExportTarget(e);return n!==null&&normalizePackageTargetPath(n)===i}return[t.module,t.main,`index.js`,`index.mjs`,`index.cjs`,`index.ts`,`index.mts`,`index.cts`].flatMap(e=>typeof e==`string`?[normalizePackageTargetPath(e)]:[]).includes(i)}export{applyWorkflowTransform,findWorkflowPatterns,getImportPath,isAuthoredApplicationModule};
@@ -1,9 +1,8 @@
1
- export declare const MAX_ACTIVITY_EVENTS_PER_BATCH = 100;
2
1
  export type ActivityWorkKind = "root-turn" | "subagent" | "remote-agent" | "task";
3
2
  export type ActivityWorkPhase = "running" | "completed" | "failed" | "cancelled";
4
- export type ActivityActionKind = "tool" | "skill";
3
+ type ActivityActionKind = "tool" | "skill";
5
4
  export type ActivityActionPhase = "running" | "completed" | "failed" | "rejected" | "cancelled";
6
- export type ActivityBlockerKind = "approval" | "authorization" | "input";
5
+ type ActivityBlockerKind = "approval" | "authorization" | "input";
7
6
  export type ActivityBlockerPhase = "blocked" | "completed" | "cancelled" | "failed";
8
7
  export interface ActivityWorkIdentityV1 {
9
8
  readonly callId?: string;
@@ -110,3 +109,4 @@ export interface ActivitySnapshotV1 {
110
109
  export declare function parseActivityWorkIdentityV1(value: unknown): ActivityWorkIdentityV1 | undefined;
111
110
  /** Parses known lifecycle events while ignoring additive unknown event kinds. */
112
111
  export declare function parseActivityBatchV1(value: unknown): ActivityBatchV1 | undefined;
112
+ export {};
@@ -1 +1 @@
1
- const MAX_ACTIVITY_EVENTS_PER_BATCH=100;function parseActivityWorkIdentityV1(e){if(!isRecord(e))return;let t=e.kind;if(isOneOf(t,[`root-turn`,`subagent`,`remote-agent`,`task`])&&isIdentity(e.id)&&isIdentity(e.rootSessionId)&&isIdentity(e.rootTurnId)&&isOptionalIdentity(e.callId)&&isOptionalBoundedString(e.label)&&isOptionalBoundedString(e.name)&&isOptionalIdentity(e.parentId)&&isOptionalIdentity(e.sessionId)&&isOptionalIdentity(e.turnId))return{...e,callId:e.callId,id:e.id,kind:t,label:e.label,name:e.name,parentId:e.parentId,rootSessionId:e.rootSessionId,rootTurnId:e.rootTurnId,sessionId:e.sessionId,turnId:e.turnId}}function parseActivityBatchV1(e){if(!isRecord(e)||!hasOnlyKeys(e,[`events`,`version`])||e.version!==1||!Array.isArray(e.events)||e.events.length>100)return;let t=[];for(let n of e.events){if(!isRecord(n)||!isBoundedString(n.kind))return;let e=parseKnownEvent(n);if(e!==null){if(e===void 0)return;t.push(e)}}return{events:t,version:1}}function parseKnownEvent(e){switch(e.kind){case`work.started`:{if(!hasOnlyKeys(e,[`eventId`,`kind`,`startedAt`,`work`]))return;let t=parseActivityWorkIdentityV1(e.work);return!isIdentity(e.eventId)||!isBoundedString(e.startedAt)||t===void 0?void 0:{eventId:e.eventId,kind:`work.started`,startedAt:e.startedAt,work:t}}case`work.settled`:return!hasOnlyKeys(e,[`eventId`,`kind`,`outcome`,`settledAt`,`workId`])||!isIdentity(e.eventId)||!isOneOf(e.outcome,[`completed`,`failed`,`cancelled`])||!isBoundedString(e.settledAt)||!isIdentity(e.workId)?void 0:{eventId:e.eventId,kind:`work.settled`,outcome:e.outcome,settledAt:e.settledAt,workId:e.workId};case`action.started`:{if(!hasOnlyKeys(e,[`action`,`eventId`,`kind`,`startedAt`]))return;let t=parseActionIdentity(e.action);return!isIdentity(e.eventId)||!isBoundedString(e.startedAt)||t===void 0?void 0:{action:t,eventId:e.eventId,kind:`action.started`,startedAt:e.startedAt}}case`action.settled`:return!hasOnlyKeys(e,[`actionId`,`eventId`,`kind`,`outcome`,`settledAt`])||!isIdentity(e.actionId)||!isIdentity(e.eventId)||!isOneOf(e.outcome,[`completed`,`failed`,`rejected`,`cancelled`])||!isBoundedString(e.settledAt)?void 0:{actionId:e.actionId,eventId:e.eventId,kind:`action.settled`,outcome:e.outcome,settledAt:e.settledAt};case`action.label.updated`:return!hasOnlyKeys(e,[`actionId`,`eventId`,`kind`,`label`])||!isIdentity(e.actionId)||!isIdentity(e.eventId)||!isBoundedString(e.label)?void 0:{actionId:e.actionId,eventId:e.eventId,kind:`action.label.updated`,label:e.label};case`blocker.started`:{if(!hasOnlyKeys(e,[`blocker`,`eventId`,`kind`,`startedAt`]))return;let t=parseBlockerIdentity(e.blocker);return!isIdentity(e.eventId)||!isBoundedString(e.startedAt)||t===void 0?void 0:{blocker:t,eventId:e.eventId,kind:`blocker.started`,startedAt:e.startedAt}}case`blocker.settled`:return!hasOnlyKeys(e,[`blockerId`,`eventId`,`kind`,`outcome`,`settledAt`])||!isIdentity(e.blockerId)||!isIdentity(e.eventId)||!isOneOf(e.outcome,[`completed`,`cancelled`,`failed`])||!isBoundedString(e.settledAt)?void 0:{blockerId:e.blockerId,eventId:e.eventId,kind:`blocker.settled`,outcome:e.outcome,settledAt:e.settledAt};default:return null}}function parseActionIdentity(e){if(isRecord(e)&&hasOnlyKeys(e,[`id`,`kind`,`name`,`parentWorkId`,`rootTurnId`,`stepIndex`])&&!(!isIdentity(e.id)||!isOneOf(e.kind,[`tool`,`skill`])||!isBoundedString(e.name)||!isIdentity(e.parentWorkId)||!isIdentity(e.rootTurnId)||!Number.isInteger(e.stepIndex)||e.stepIndex<0))return{id:e.id,kind:e.kind,name:e.name,parentWorkId:e.parentWorkId,rootTurnId:e.rootTurnId,stepIndex:e.stepIndex}}function parseBlockerIdentity(e){if(isRecord(e)&&hasOnlyKeys(e,[`id`,`kind`,`label`,`parentActionId`,`parentWorkId`,`rootTurnId`])&&isIdentity(e.id)&&isOneOf(e.kind,[`approval`,`authorization`,`input`])&&isOptionalBoundedString(e.label)&&isOptionalIdentity(e.parentActionId)&&isIdentity(e.parentWorkId)&&isIdentity(e.rootTurnId))return{id:e.id,kind:e.kind,label:e.label,parentActionId:e.parentActionId,parentWorkId:e.parentWorkId,rootTurnId:e.rootTurnId}}function isRecord(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function hasOnlyKeys(e,t){return Object.keys(e).every(e=>t.includes(e))}function isBoundedString(e){return typeof e==`string`&&e.length>0&&e.length<=500}function isIdentity(e){return typeof e==`string`&&e.length>0&&e.length<=1e3}function isOptionalIdentity(e){return e===void 0||isIdentity(e)}function isOptionalBoundedString(e){return e===void 0||isBoundedString(e)}function isOneOf(e,t){return typeof e==`string`&&t.includes(e)}export{MAX_ACTIVITY_EVENTS_PER_BATCH,parseActivityBatchV1,parseActivityWorkIdentityV1};
1
+ function parseActivityWorkIdentityV1(e){if(!isRecord(e))return;let t=e.kind;if(isOneOf(t,[`root-turn`,`subagent`,`remote-agent`,`task`])&&isIdentity(e.id)&&isIdentity(e.rootSessionId)&&isIdentity(e.rootTurnId)&&isOptionalIdentity(e.callId)&&isOptionalBoundedString(e.label)&&isOptionalBoundedString(e.name)&&isOptionalIdentity(e.parentId)&&isOptionalIdentity(e.sessionId)&&isOptionalIdentity(e.turnId))return{...e,callId:e.callId,id:e.id,kind:t,label:e.label,name:e.name,parentId:e.parentId,rootSessionId:e.rootSessionId,rootTurnId:e.rootTurnId,sessionId:e.sessionId,turnId:e.turnId}}function parseActivityBatchV1(e){if(!isRecord(e)||!hasOnlyKeys(e,[`events`,`version`])||e.version!==1||!Array.isArray(e.events)||e.events.length>100)return;let t=[];for(let n of e.events){if(!isRecord(n)||!isBoundedString(n.kind))return;let e=parseKnownEvent(n);if(e!==null){if(e===void 0)return;t.push(e)}}return{events:t,version:1}}function parseKnownEvent(e){switch(e.kind){case`work.started`:{if(!hasOnlyKeys(e,[`eventId`,`kind`,`startedAt`,`work`]))return;let t=parseActivityWorkIdentityV1(e.work);return!isIdentity(e.eventId)||!isBoundedString(e.startedAt)||t===void 0?void 0:{eventId:e.eventId,kind:`work.started`,startedAt:e.startedAt,work:t}}case`work.settled`:return!hasOnlyKeys(e,[`eventId`,`kind`,`outcome`,`settledAt`,`workId`])||!isIdentity(e.eventId)||!isOneOf(e.outcome,[`completed`,`failed`,`cancelled`])||!isBoundedString(e.settledAt)||!isIdentity(e.workId)?void 0:{eventId:e.eventId,kind:`work.settled`,outcome:e.outcome,settledAt:e.settledAt,workId:e.workId};case`action.started`:{if(!hasOnlyKeys(e,[`action`,`eventId`,`kind`,`startedAt`]))return;let t=parseActionIdentity(e.action);return!isIdentity(e.eventId)||!isBoundedString(e.startedAt)||t===void 0?void 0:{action:t,eventId:e.eventId,kind:`action.started`,startedAt:e.startedAt}}case`action.settled`:return!hasOnlyKeys(e,[`actionId`,`eventId`,`kind`,`outcome`,`settledAt`])||!isIdentity(e.actionId)||!isIdentity(e.eventId)||!isOneOf(e.outcome,[`completed`,`failed`,`rejected`,`cancelled`])||!isBoundedString(e.settledAt)?void 0:{actionId:e.actionId,eventId:e.eventId,kind:`action.settled`,outcome:e.outcome,settledAt:e.settledAt};case`action.label.updated`:return!hasOnlyKeys(e,[`actionId`,`eventId`,`kind`,`label`])||!isIdentity(e.actionId)||!isIdentity(e.eventId)||!isBoundedString(e.label)?void 0:{actionId:e.actionId,eventId:e.eventId,kind:`action.label.updated`,label:e.label};case`blocker.started`:{if(!hasOnlyKeys(e,[`blocker`,`eventId`,`kind`,`startedAt`]))return;let t=parseBlockerIdentity(e.blocker);return!isIdentity(e.eventId)||!isBoundedString(e.startedAt)||t===void 0?void 0:{blocker:t,eventId:e.eventId,kind:`blocker.started`,startedAt:e.startedAt}}case`blocker.settled`:return!hasOnlyKeys(e,[`blockerId`,`eventId`,`kind`,`outcome`,`settledAt`])||!isIdentity(e.blockerId)||!isIdentity(e.eventId)||!isOneOf(e.outcome,[`completed`,`cancelled`,`failed`])||!isBoundedString(e.settledAt)?void 0:{blockerId:e.blockerId,eventId:e.eventId,kind:`blocker.settled`,outcome:e.outcome,settledAt:e.settledAt};default:return null}}function parseActionIdentity(e){if(isRecord(e)&&hasOnlyKeys(e,[`id`,`kind`,`name`,`parentWorkId`,`rootTurnId`,`stepIndex`])&&!(!isIdentity(e.id)||!isOneOf(e.kind,[`tool`,`skill`])||!isBoundedString(e.name)||!isIdentity(e.parentWorkId)||!isIdentity(e.rootTurnId)||!Number.isInteger(e.stepIndex)||e.stepIndex<0))return{id:e.id,kind:e.kind,name:e.name,parentWorkId:e.parentWorkId,rootTurnId:e.rootTurnId,stepIndex:e.stepIndex}}function parseBlockerIdentity(e){if(isRecord(e)&&hasOnlyKeys(e,[`id`,`kind`,`label`,`parentActionId`,`parentWorkId`,`rootTurnId`])&&isIdentity(e.id)&&isOneOf(e.kind,[`approval`,`authorization`,`input`])&&isOptionalBoundedString(e.label)&&isOptionalIdentity(e.parentActionId)&&isIdentity(e.parentWorkId)&&isIdentity(e.rootTurnId))return{id:e.id,kind:e.kind,label:e.label,parentActionId:e.parentActionId,parentWorkId:e.parentWorkId,rootTurnId:e.rootTurnId}}function isRecord(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function hasOnlyKeys(e,t){return Object.keys(e).every(e=>t.includes(e))}function isBoundedString(e){return typeof e==`string`&&e.length>0&&e.length<=500}function isIdentity(e){return typeof e==`string`&&e.length>0&&e.length<=1e3}function isOptionalIdentity(e){return e===void 0||isIdentity(e)}function isOptionalBoundedString(e){return e===void 0||isBoundedString(e)}function isOneOf(e,t){return typeof e==`string`&&t.includes(e)}export{parseActivityBatchV1,parseActivityWorkIdentityV1};
@@ -8,8 +8,8 @@ interface BaggageMember {
8
8
  readonly value: string;
9
9
  readonly properties: readonly BaggageProperty[];
10
10
  }
11
- export type ForwardedTraceBaggage = "absent" | "malformed" | ForwardedTraceAssertion;
12
- export type ForwardedParentSessionBaggage = "absent" | "malformed" | SessionParent;
11
+ type ForwardedTraceBaggage = "absent" | "malformed" | ForwardedTraceAssertion;
12
+ type ForwardedParentSessionBaggage = "absent" | "malformed" | SessionParent;
13
13
  /** Reads remote parent lineage without trusting the caller that supplied it. */
14
14
  export declare function readForwardedParentSessionBaggage(value: string | null): ForwardedParentSessionBaggage;
15
15
  /** Replaces Eve's remote parent lineage while preserving unrelated baggage. */
@@ -1,6 +1,4 @@
1
1
  import { z } from "#compiled/zod/index.js";
2
- /** Outcome of requesting cooperative turn cancellation. */
3
- export type CancelTurnStatus = "accepted" | "no_active_turn";
4
2
  /** Transport-independent result of requesting cooperative turn cancellation. */
5
3
  export type CancelTurnResult = {
6
4
  readonly sessionId: string;
@@ -1,6 +1,6 @@
1
1
  import type { MessageStreamEvent } from "#protocol/message.js";
2
2
  /** Remembers which session-stream events have already been consumed. */
3
- export type EventDeduper = {
3
+ type EventDeduper = {
4
4
  /**
5
5
  * Records `event` and returns true when it is new — false when its id was
6
6
  * already admitted, so the caller should drop it.
@@ -23,3 +23,4 @@ export type EventDeduper = {
23
23
  * with the `startIndex` cursor instead.
24
24
  */
25
25
  export declare function createEventDeduper(): EventDeduper;
26
+ export {};
@@ -8,9 +8,3 @@ export declare const EVENT_ID_PREFIX = "evt_";
8
8
  * process, not across the separate steps of one session.
9
9
  */
10
10
  export declare function createEventId(): string;
11
- /**
12
- * Returns true when `value` has the shape {@link createEventId} produces.
13
- *
14
- * Shape-only: this does not prove eve minted the id.
15
- */
16
- export declare function isEventId(value: string): boolean;
@@ -1 +1 @@
1
- import{createUlid,isUlid}from"#shared/ulid.js";const EVENT_ID_PREFIX=`evt_`;function createEventId(){return`${EVENT_ID_PREFIX}${createUlid()}`}function isEventId(e){return e.startsWith(`evt_`)&&isUlid(e.slice(4))}export{EVENT_ID_PREFIX,createEventId,isEventId};
1
+ import{createUlid}from"#shared/ulid.js";const EVENT_ID_PREFIX=`evt_`;function createEventId(){return`${EVENT_ID_PREFIX}${createUlid()}`}export{EVENT_ID_PREFIX,createEventId};
@@ -1,4 +1,4 @@
1
- export interface TraceparentContext {
1
+ interface TraceparentContext {
2
2
  readonly isRemote?: boolean;
3
3
  readonly spanId: string;
4
4
  readonly traceFlags: number;
@@ -21,3 +21,4 @@ export declare function readAgentDispatchTraceContext(value: string | null, tran
21
21
  * `tracestate` members and W3C size limits.
22
22
  */
23
23
  export declare function writeAgentDispatchTracestate(value: string | undefined, context: TraceparentContext | undefined): string | undefined;
24
+ export {};