eve 0.51.0 → 0.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (462) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/src/channel/session.d.ts +2 -1
  3. package/dist/src/channel/session.js +1 -1
  4. package/dist/src/channel/types.d.ts +4 -1
  5. package/dist/src/chunks/{use-eve-agent-C3vUG5g2.js → use-eve-agent-3DZuvuWE.js} +17 -6
  6. package/dist/src/chunks/{use-eve-agent-B4xN7-fK.js → use-eve-agent-D7apPojZ.js} +17 -6
  7. package/dist/src/cli/agent-command.js +1 -1
  8. package/dist/src/cli/commands/agent-instructions.d.ts +3 -1
  9. package/dist/src/cli/commands/agent-instructions.js +1 -1
  10. package/dist/src/cli/commands/build.js +1 -1
  11. package/dist/src/cli/commands/deploy.js +1 -1
  12. package/dist/src/cli/commands/init-agent-workspace.js +1 -1
  13. package/dist/src/cli/commands/init-repl.js +1 -1
  14. package/dist/src/cli/commands/init.js +1 -1
  15. package/dist/src/cli/commands/integration-connect.js +1 -1
  16. package/dist/src/cli/commands/link.js +1 -1
  17. package/dist/src/cli/commands/preconditions.js +1 -1
  18. package/dist/src/cli/commands/register-project-commands.d.ts +1 -1
  19. package/dist/src/cli/commands/register-project-commands.js +1 -1
  20. package/dist/src/cli/commands/registry.js +1 -1
  21. package/dist/src/cli/dev/boot-progress.d.ts +3 -0
  22. package/dist/src/cli/dev/boot-progress.js +1 -0
  23. package/dist/src/cli/dev/environment.js +1 -1
  24. package/dist/src/cli/dev/run-interactive-ui.js +1 -1
  25. package/dist/src/cli/dev/tui/prompt-command-handler.js +1 -1
  26. package/dist/src/cli/dev/tui/setup-commands.d.ts +3 -1
  27. package/dist/src/cli/dev/tui/setup-commands.js +1 -1
  28. package/dist/src/cli/run.d.ts +4 -0
  29. package/dist/src/cli/run.js +3 -3
  30. package/dist/src/cli/telemetry/command.d.ts +9 -0
  31. package/dist/src/cli/telemetry/command.js +1 -0
  32. package/dist/src/cli/telemetry/flush.d.ts +2 -0
  33. package/dist/src/cli/telemetry/flush.js +1 -0
  34. package/dist/src/cli/telemetry/identity.d.ts +13 -0
  35. package/dist/src/cli/telemetry/identity.js +1 -0
  36. package/dist/src/cli/telemetry/index.d.ts +25 -0
  37. package/dist/src/cli/telemetry/index.js +3 -0
  38. package/dist/src/cli/telemetry/preference.d.ts +9 -0
  39. package/dist/src/cli/telemetry/preference.js +1 -0
  40. package/dist/src/client/open-stream.js +1 -1
  41. package/dist/src/client/session-controls.d.ts +3 -0
  42. package/dist/src/client/session-controls.js +1 -1
  43. package/dist/src/client/session.d.ts +4 -1
  44. package/dist/src/client/types.d.ts +3 -2
  45. package/dist/src/compiled/.vendor-stamp.json +11 -11
  46. package/dist/src/compiled/@clack/core/LICENSE +9 -0
  47. package/dist/src/compiled/@clack/core/index.d.ts +363 -0
  48. package/dist/src/compiled/@clack/core/index.js +20 -0
  49. package/dist/src/compiled/@eve/catalog/index.js +1 -1
  50. package/dist/src/compiled/@modelcontextprotocol/server/index.d.ts +1 -0
  51. package/dist/src/compiled/@vercel/sandbox/api-client/api-client.d.ts +34 -92
  52. package/dist/src/compiled/@vercel/sandbox/api-client/base-client.d.ts +1 -1
  53. package/dist/src/compiled/@vercel/sandbox/api-client/index.d.ts +1 -1
  54. package/dist/src/compiled/@vercel/sandbox/api-client/validators.d.ts +13 -29
  55. package/dist/src/compiled/@vercel/sandbox/constants.d.ts +11 -1
  56. package/dist/src/compiled/@vercel/sandbox/index.d.ts +3 -3
  57. package/dist/src/compiled/@vercel/sandbox/index.js +9 -9
  58. package/dist/src/compiled/@vercel/sandbox/sandbox-user.d.ts +5 -6
  59. package/dist/src/compiled/@vercel/sandbox/sandbox.d.ts +79 -67
  60. package/dist/src/compiled/@vercel/sandbox/session.d.ts +5 -3
  61. package/dist/src/compiled/@vercel/sandbox/snapshot.d.ts +9 -0
  62. package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/api-client/api-client.d.ts +86 -1
  63. package/dist/src/compiled/@vercel/sandbox-drives/api-client/index.d.ts +2 -0
  64. package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/api-client/validators.d.ts +26 -1
  65. package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/constants.d.ts +2 -2
  66. package/dist/src/compiled/@vercel/{sandbox → sandbox-drives}/drive.d.ts +10 -0
  67. package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/index.d.ts +3 -2
  68. package/dist/src/compiled/@vercel/sandbox-drives/index.js +9 -0
  69. package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/sandbox.d.ts +35 -6
  70. package/dist/src/compiled/@workflow/core/index.js +1 -1
  71. package/dist/src/compiled/@workflow/core/private.d.ts +2 -4
  72. package/dist/src/compiled/@workflow/core/private.js +1 -1
  73. package/dist/src/compiled/@workflow/core/runtime/constants.d.ts +9 -7
  74. package/dist/src/compiled/@workflow/core/runtime/helpers.d.ts +13 -0
  75. package/dist/src/compiled/@workflow/core/runtime/suspension-handler.d.ts +54 -1
  76. package/dist/src/compiled/@workflow/core/runtime.js +3 -3
  77. package/dist/src/compiled/@workflow/core/serialization/types.d.ts +7 -0
  78. package/dist/src/compiled/@workflow/core/serialization.d.ts +24 -2
  79. package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
  80. package/dist/src/compiled/@workflow/core/workflow.js +1 -1
  81. package/dist/src/compiled/@workflow/errors/error-codes.d.ts +2 -0
  82. package/dist/src/compiled/@workflow/errors/index.d.ts +19 -0
  83. package/dist/src/compiled/@workflow/errors/index.js +1 -1
  84. package/dist/src/compiled/@workflow/world/analytics.d.ts +46 -2
  85. package/dist/src/compiled/@workflow/world/events.d.ts +26 -1
  86. package/dist/src/compiled/@workflow/world/index.d.ts +1 -1
  87. package/dist/src/compiled/@workflow/world/runs.d.ts +2 -2
  88. package/dist/src/compiled/@workflow/world-local/index.js +3 -3
  89. package/dist/src/compiled/@workflow/world-vercel/index.js +12 -12
  90. package/dist/src/compiled/_chunks/node/{auth-BSKyPAEP.js → auth-Bx1Aoyfo.js} +1 -1
  91. package/dist/src/compiled/_chunks/node/{auth-YpKlwhP1.js → auth-CA8ZMfB8.js} +1 -1
  92. package/dist/src/compiled/_chunks/node/esm-CE0tAvRh.js +7 -0
  93. package/dist/src/compiled/_chunks/node/version-BC6t2Txc.js +1 -0
  94. package/dist/src/compiled/_chunks/node/version-DSQqVZ5T.js +1 -0
  95. package/dist/src/compiled/_chunks/workflow/{attribute-changes-BwAadFfB.js → attribute-changes-03lzo29R.js} +1 -1
  96. package/dist/src/compiled/_chunks/workflow/dist-BIdMK5N8.js +40 -0
  97. package/dist/src/compiled/_chunks/workflow/dist-DMQ3CtWt.js +3 -0
  98. package/dist/src/compiled/_chunks/workflow/frames-Boesh7kU.js +3 -0
  99. package/dist/src/compiled/_chunks/workflow/{private-CZFMABEf.js → private-CKx3PkSS.js} +1 -1
  100. package/dist/src/compiled/_chunks/workflow/{resume-hook-BToMtPbH.js → resume-hook-C6eL-S_T.js} +1 -1
  101. package/dist/src/compiled/_chunks/workflow/run-BV0S6Zc2.js +1 -0
  102. package/dist/src/compiled/_chunks/workflow/sleep-Bh3jP9ii.js +1 -0
  103. package/dist/src/compiled/_chunks/workflow/wait-until-l-cwfJvm.js +15 -0
  104. package/dist/src/compiled/_chunks/workflow/{ws-transport-PnVVxT0R.js → ws-transport-BagXNxCE.js} +1 -1
  105. package/dist/src/compiler/compile-from-memory.d.ts +1 -0
  106. package/dist/src/compiler/extension-compatibility.d.ts +38 -20
  107. package/dist/src/compiler/extension-compatibility.js +1 -1
  108. package/dist/src/compiler/manifest.d.ts +2 -2
  109. package/dist/src/compiler/manifest.js +1 -1
  110. package/dist/src/compiler/normalize-agent-config.js +1 -1
  111. package/dist/src/compiler/normalize-channel.js +1 -1
  112. package/dist/src/compiler/normalize-schedule.js +1 -1
  113. package/dist/src/compiler/normalize-tool.js +1 -1
  114. package/dist/src/context/dynamic-tool-lifecycle.js +1 -1
  115. package/dist/src/discover/extensions.d.ts +2 -0
  116. package/dist/src/discover/extensions.js +1 -1
  117. package/dist/src/discover/filesystem.d.ts +1 -0
  118. package/dist/src/discover/filesystem.js +1 -1
  119. package/dist/src/discover/project.js +1 -1
  120. package/dist/src/evals/runner/execute-task.js +1 -1
  121. package/dist/src/evals/session-cleanup.d.ts +7 -0
  122. package/dist/src/evals/session-cleanup.js +1 -0
  123. package/dist/src/evals/session.d.ts +4 -0
  124. package/dist/src/evals/session.js +1 -1
  125. package/dist/src/eve-channel/index.js +1 -1
  126. package/dist/src/eve-channel/request.d.ts +1 -0
  127. package/dist/src/eve-channel/request.js +1 -1
  128. package/dist/src/execution/activity-collector.js +1 -1
  129. package/dist/src/execution/activity-work.d.ts +8 -0
  130. package/dist/src/execution/activity-work.js +1 -1
  131. package/dist/src/execution/cancel-indexed-session-tasks-step.d.ts +6 -0
  132. package/dist/src/execution/cancel-indexed-session-tasks-step.js +1 -0
  133. package/dist/src/execution/continuation-conflict-step.js +1 -1
  134. package/dist/src/execution/coordination-dispatch-shared.d.ts +2 -2
  135. package/dist/src/execution/coordination-dispatch-shared.js +1 -1
  136. package/dist/src/execution/coordination-dispatch-step.js +1 -1
  137. package/dist/src/execution/create-session-step.js +1 -1
  138. package/dist/src/execution/durable-session-migrations/turn-workflow.d.ts +1 -1
  139. package/dist/src/execution/inline-turn.d.ts +4 -2
  140. package/dist/src/execution/inline-turn.js +1 -1
  141. package/dist/src/execution/next-driver-action.d.ts +0 -3
  142. package/dist/src/execution/parked-delivery-wait.js +1 -1
  143. package/dist/src/execution/proxied-deliver-step.js +1 -1
  144. package/dist/src/execution/run-session-limits.d.ts +5 -5
  145. package/dist/src/execution/sandbox/bindings/vercel-create-sdk.js +1 -1
  146. package/dist/src/execution/sandbox/bindings/vercel-sdk-types.d.ts +4 -4
  147. package/dist/src/execution/sandbox/bindings/vercel.js +1 -1
  148. package/dist/src/execution/session-activity-projection.js +1 -1
  149. package/dist/src/execution/session-activity.js +1 -1
  150. package/dist/src/execution/session-timeout-workflow.js +1 -1
  151. package/dist/src/execution/session.d.ts +1 -0
  152. package/dist/src/execution/session.js +1 -1
  153. package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
  154. package/dist/src/execution/tasks/child/steps.d.ts +19 -1
  155. package/dist/src/execution/tasks/child/steps.js +1 -1
  156. package/dist/src/execution/tasks/child/workflow.d.ts +2 -0
  157. package/dist/src/execution/tasks/child/workflow.js +1 -1
  158. package/dist/src/execution/tasks/parent/control-shared.js +1 -1
  159. package/dist/src/execution/tasks/parent/delegate.d.ts +2 -0
  160. package/dist/src/execution/tasks/parent/delegate.js +1 -1
  161. package/dist/src/execution/tasks/parent/hitl-proxy-steps.js +1 -1
  162. package/dist/src/execution/tasks/parent/subagent-task-projection.d.ts +26 -0
  163. package/dist/src/execution/tasks/parent/subagent-task-projection.js +1 -0
  164. package/dist/src/execution/tasks/parent/tool-execution.js +1 -1
  165. package/dist/src/execution/terminate-child-sessions-step.js +1 -1
  166. package/dist/src/execution/tools/sleep-workflow.d.ts +3 -0
  167. package/dist/src/execution/tools/sleep-workflow.js +1 -0
  168. package/dist/src/execution/tools/sleep.d.ts +1 -5
  169. package/dist/src/execution/tools/sleep.js +1 -1
  170. package/dist/src/execution/tools/subagent/accept-event-step.js +1 -1
  171. package/dist/src/execution/tools/subagent/invoke-agent.d.ts +1 -7
  172. package/dist/src/execution/tools/subagent/invoke-agent.js +1 -1
  173. package/dist/src/execution/tools/subagent/invoke-step.js +1 -1
  174. package/dist/src/execution/tools/workflow/ask.d.ts +1 -2
  175. package/dist/src/execution/tools/workflow/ask.js +1 -1
  176. package/dist/src/execution/tools/workflow/body.d.ts +6 -1
  177. package/dist/src/execution/tools/workflow/body.js +1 -1
  178. package/dist/src/execution/tools/workflow/cancel.js +1 -1
  179. package/dist/src/execution/tools/workflow/messages.d.ts +9 -8
  180. package/dist/src/execution/tools/workflow/messages.js +1 -1
  181. package/dist/src/execution/tools/workflow/owner-inbox.d.ts +2 -2
  182. package/dist/src/execution/tools/workflow/owner-inbox.js +1 -1
  183. package/dist/src/execution/tools/workflow/owner.d.ts +5 -11
  184. package/dist/src/execution/tools/workflow/owner.js +1 -1
  185. package/dist/src/execution/tools/workflow/run-control.d.ts +0 -4
  186. package/dist/src/execution/tools/workflow/run-control.js +1 -1
  187. package/dist/src/execution/tools/workflow/start.d.ts +5 -14
  188. package/dist/src/execution/tools/workflow/start.js +1 -1
  189. package/dist/src/execution/tools/workflow/workflow.d.ts +1 -1
  190. package/dist/src/execution/tools/workflow/workflow.js +1 -1
  191. package/dist/src/execution/turn-cancellation-control.d.ts +1 -0
  192. package/dist/src/execution/turn-cancellation-control.js +1 -1
  193. package/dist/src/execution/turn-cancellation-token.d.ts +1 -0
  194. package/dist/src/execution/turn-control-receiver.d.ts +3 -0
  195. package/dist/src/execution/turn-control-receiver.js +1 -1
  196. package/dist/src/execution/turn-dispatch.d.ts +2 -0
  197. package/dist/src/execution/turn-dispatch.js +1 -1
  198. package/dist/src/execution/turn-workflow-tool-run.d.ts +2 -8
  199. package/dist/src/execution/turn-workflow-tool-run.js +1 -1
  200. package/dist/src/execution/turn-workflow.d.ts +1 -0
  201. package/dist/src/execution/turn-workflow.js +1 -1
  202. package/dist/src/execution/wire/session-inbox-contract.d.ts +2 -2
  203. package/dist/src/execution/wire/session-inbox-contract.js +1 -1
  204. package/dist/src/execution/wire/session-inbox-encoder.d.ts +10 -2
  205. package/dist/src/execution/wire/session-inbox-encoder.js +1 -1
  206. package/dist/src/execution/wire/session-inbox-resume.js +1 -1
  207. package/dist/src/execution/wire/session-inbox-wire.js +1 -1
  208. package/dist/src/execution/wire/session-inbox-wire.v5.d.ts +341 -0
  209. package/dist/src/execution/wire/session-inbox-wire.v5.js +1 -0
  210. package/dist/src/execution/wire/session-inbox-wire.v5.migration.d.ts +3 -0
  211. package/dist/src/execution/wire/session-inbox-wire.v5.migration.js +1 -0
  212. package/dist/src/execution/wire/session-inbox-wire.v6.d.ts +341 -0
  213. package/dist/src/execution/wire/session-inbox-wire.v6.js +1 -0
  214. package/dist/src/execution/workflow-entry.js +1 -1
  215. package/dist/src/execution/workflow-runtime.js +1 -1
  216. package/dist/src/execution/workflow-steps.js +1 -1
  217. package/dist/src/harness/emission-state.js +1 -1
  218. package/dist/src/harness/session-limit-continuation.d.ts +5 -5
  219. package/dist/src/harness/session-limit-continuation.js +1 -1
  220. package/dist/src/harness/session-limit-enforcement.d.ts +4 -4
  221. package/dist/src/harness/session-limit-enforcement.js +1 -1
  222. package/dist/src/harness/session-usage-limits.d.ts +48 -0
  223. package/dist/src/harness/session-usage-limits.js +1 -0
  224. package/dist/src/harness/tool-loop.js +2 -2
  225. package/dist/src/harness/turn-client-context.d.ts +9 -0
  226. package/dist/src/harness/turn-client-context.js +1 -0
  227. package/dist/src/harness/turn-tag-state.d.ts +17 -20
  228. package/dist/src/harness/turn-tag-state.js +1 -1
  229. package/dist/src/harness/types.d.ts +5 -0
  230. package/dist/src/harness/workflow-tool-runs.d.ts +0 -1
  231. package/dist/src/harness/workflow-tool-runs.js +1 -1
  232. package/dist/src/internal/application/build-output-environment.d.ts +1 -0
  233. package/dist/src/internal/application/build-output-environment.js +1 -1
  234. package/dist/src/internal/application/package.js +1 -1
  235. package/dist/src/internal/application/paths.js +1 -1
  236. package/dist/src/internal/authored-definition/core.js +1 -1
  237. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  238. package/dist/src/internal/eve-project-root.d.ts +8 -0
  239. package/dist/src/internal/eve-project-root.js +1 -0
  240. package/dist/src/internal/invocation/workflow-execution.js +1 -1
  241. package/dist/src/internal/mcp/streamable-http-server.d.ts +29 -1
  242. package/dist/src/internal/mcp/streamable-http-server.js +1 -1
  243. package/dist/src/internal/nitro/host/build-application.js +1 -1
  244. package/dist/src/internal/nitro/host/create-application-nitro.d.ts +1 -0
  245. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  246. package/dist/src/internal/nitro/host/types.d.ts +2 -0
  247. package/dist/src/internal/nitro/host/vercel-build-output-config.d.ts +1 -0
  248. package/dist/src/internal/nitro/host/vercel-build-output-config.js +1 -1
  249. package/dist/src/internal/project-context.d.ts +13 -8
  250. package/dist/src/internal/project-context.js +1 -1
  251. package/dist/src/internal/vercel/build-agent-workspace.d.ts +1 -1
  252. package/dist/src/internal/vercel/build-agent-workspace.js +1 -1
  253. package/dist/src/internal/vercel/eve-service-contribution.d.ts +1 -0
  254. package/dist/src/internal/vercel/eve-service-contribution.js +1 -1
  255. package/dist/src/internal/workflow/reference.d.ts +2 -0
  256. package/dist/src/internal/workflow/reference.js +1 -0
  257. package/dist/src/internal/workflow/runtime.d.ts +6 -0
  258. package/dist/src/internal/workflow/runtime.js +1 -1
  259. package/dist/src/internal/workflow-bundle/authored-workflow-directives.d.ts +1 -3
  260. package/dist/src/internal/workflow-bundle/authored-workflow-directives.js +1 -1
  261. package/dist/src/internal/workflow-bundle/authored-workflow-modules.d.ts +1 -11
  262. package/dist/src/internal/workflow-bundle/authored-workflow-modules.js +1 -1
  263. package/dist/src/internal/workflow-bundle/builder.js +1 -1
  264. package/dist/src/internal/workflow-bundle/dynamic-tool-transform.js +1 -1
  265. package/dist/src/internal/workflow-bundle/workflow-builders.d.ts +1 -3
  266. package/dist/src/internal/workflow-bundle/workflow-builders.js +1 -1
  267. package/dist/src/internal/workflow-bundle/workflow-transformer.d.ts +1 -1
  268. package/dist/src/internal/workflow-bundle/workflow-transformer.js +2 -2
  269. package/dist/src/protocol/message.d.ts +3 -2
  270. package/dist/src/public/channels/mcp.js +1 -1
  271. package/dist/src/public/channels/slack/activity-plan.d.ts +4 -0
  272. package/dist/src/public/channels/slack/activity-plan.js +1 -0
  273. package/dist/src/public/channels/slack/activity.d.ts +45 -2
  274. package/dist/src/public/channels/slack/activity.js +2 -1
  275. package/dist/src/public/channels/slack/index.d.ts +1 -1
  276. package/dist/src/public/channels/slack/index.js +1 -1
  277. package/dist/src/public/channels/slack/slackChannel.js +1 -1
  278. package/dist/src/public/memory/index.js +1 -1
  279. package/dist/src/public/models/openai/chatgpt/model.js +2 -2
  280. package/dist/src/public/models/openai/chatgpt/transport.js +1 -1
  281. package/dist/src/public/nuxt/index.js +1 -1
  282. package/dist/src/public/nuxt/module.d.ts +3 -2
  283. package/dist/src/public/nuxt/module.js +1 -1
  284. package/dist/src/public/sandbox/vercel-sandbox.d.ts +9 -5
  285. package/dist/src/public/sandbox/vercel.d.ts +1 -1
  286. package/dist/src/public/sandbox/vercel.js +1 -1
  287. package/dist/src/public/tools/index.d.ts +3 -1
  288. package/dist/src/public/tools/index.js +1 -1
  289. package/dist/src/runtime/resolve-agent.js +1 -1
  290. package/dist/src/runtime/subagents/workflow.js +1 -1
  291. package/dist/src/self-modification/agent.d.ts +22 -0
  292. package/dist/src/self-modification/agent.js +1 -0
  293. package/dist/src/self-modification/extension/classify-registry-item.d.ts +19 -0
  294. package/dist/src/self-modification/extension/classify-registry-item.js +1 -0
  295. package/dist/src/self-modification/extension/eve-add.d.ts +56 -0
  296. package/dist/src/self-modification/extension/eve-add.js +2 -0
  297. package/dist/src/self-modification/extension/extension.d.ts +2 -0
  298. package/dist/src/self-modification/extension/extension.js +1 -0
  299. package/dist/src/self-modification/extension/instructions.d.ts +4 -0
  300. package/dist/src/self-modification/extension/instructions.js +23 -0
  301. package/dist/src/self-modification/extension/source-lock.d.ts +2 -0
  302. package/dist/src/self-modification/extension/source-lock.js +1 -0
  303. package/dist/src/self-modification/extension/tools/edit_file.d.ts +16 -0
  304. package/dist/src/self-modification/extension/tools/edit_file.js +1 -0
  305. package/dist/src/self-modification/extension/tools/registry_add.d.ts +52 -0
  306. package/dist/src/self-modification/extension/tools/registry_add.js +1 -0
  307. package/dist/src/self-modification/extension/tools/search_models.d.ts +22 -0
  308. package/dist/src/self-modification/extension/tools/search_models.js +1 -0
  309. package/dist/src/self-modification/extension/tools/search_registry.d.ts +103 -0
  310. package/dist/src/self-modification/extension/tools/search_registry.js +1 -0
  311. package/dist/src/self-modification/filesystem.d.ts +6 -0
  312. package/dist/src/self-modification/filesystem.js +1 -0
  313. package/dist/src/self-modification/sandbox.d.ts +2 -0
  314. package/dist/src/self-modification/sandbox.js +1 -0
  315. package/dist/src/services/dev-client/target.d.ts +3 -1
  316. package/dist/src/setup/boxes/select-model.d.ts +3 -21
  317. package/dist/src/setup/boxes/select-model.js +1 -1
  318. package/dist/src/setup/cli/prompt-ui.js +4 -4
  319. package/dist/src/setup/cli/select-component.d.ts +1 -1
  320. package/dist/src/setup/cli/select-component.js +1 -1
  321. package/dist/src/setup/flows/model.d.ts +3 -0
  322. package/dist/src/setup/flows/model.js +1 -1
  323. package/dist/src/setup/prompter.js +1 -1
  324. package/dist/src/setup/scaffold/create/project.js +1 -1
  325. package/dist/src/setup/scaffold/update/web-options.js +1 -1
  326. package/dist/src/shared/action-types.d.ts +35 -22
  327. package/dist/src/shared/action-types.js +1 -1
  328. package/dist/src/shared/agent-definition.d.ts +13 -0
  329. package/dist/src/shared/agent-turn-outcome.d.ts +2 -0
  330. package/dist/src/shared/agent-turn-outcome.js +1 -1
  331. package/dist/src/shared/extension-package-contract.d.ts +2 -0
  332. package/dist/src/shared/extension-package-contract.js +1 -1
  333. package/dist/src/shared/gateway-model-catalog.d.ts +21 -0
  334. package/dist/src/shared/gateway-model-catalog.js +1 -0
  335. package/dist/src/shared/sandbox-network-policy.d.ts +1 -1
  336. package/dist/src/shared/token-usage.d.ts +11 -15
  337. package/dist/src/shared/token-usage.js +1 -1
  338. package/dist/src/shared/workflow-tool-context.d.ts +2 -0
  339. package/dist/src/shared/workflow-tool-context.js +1 -0
  340. package/dist/src/subagents/callback-route.js +1 -1
  341. package/dist/src/subagents/event-proxy-step.js +1 -1
  342. package/dist/src/subagents/start-remote.js +1 -1
  343. package/dist/src/subagents/token-budget.js +1 -1
  344. package/dist/src/svelte/index.js +1 -1
  345. package/dist/src/svelte/use-eve-agent.js +1 -1
  346. package/dist/src/tasks/types.d.ts +18 -1
  347. package/dist/src/tasks/types.js +1 -1
  348. package/dist/src/tools/behavior.d.ts +5 -0
  349. package/dist/src/tools/definition.d.ts +16 -12
  350. package/dist/src/tools/definition.js +1 -1
  351. package/dist/src/tools/dynamic.d.ts +2 -2
  352. package/dist/src/tools/provided/sleep.d.ts +4 -4
  353. package/dist/src/tools/provided/sleep.js +1 -1
  354. package/dist/src/tools/task.d.ts +28 -80
  355. package/dist/src/tools/task.js +1 -1
  356. package/dist/src/tools/workflow-definition.d.ts +60 -0
  357. package/dist/src/tools/workflow-definition.js +1 -0
  358. package/dist/src/vue/index.js +1 -1
  359. package/dist/src/vue/use-eve-agent.js +1 -1
  360. package/docs/agent-config.md +24 -19
  361. package/docs/channels/eve.mdx +1 -1
  362. package/docs/channels/mcp.mdx +25 -3
  363. package/docs/concepts/built-in-tools.md +1 -1
  364. package/docs/concepts/execution-model-and-durability.mdx +13 -2
  365. package/docs/concepts/sessions-runs-and-streaming.md +9 -1
  366. package/docs/guides/client/messages.mdx +1 -1
  367. package/docs/guides/client/streaming.mdx +1 -1
  368. package/docs/guides/deployment/vercel.mdx +3 -1
  369. package/docs/guides/frontend/overview.mdx +1 -1
  370. package/docs/memory/overview.mdx +41 -12
  371. package/docs/reference/cli.md +31 -33
  372. package/docs/reference/meta.json +1 -4
  373. package/docs/reference/telemetry.md +56 -0
  374. package/docs/reference/typescript-api.md +38 -35
  375. package/docs/sandbox.mdx +1 -1
  376. package/docs/tools/overview.mdx +59 -18
  377. package/docs/tools/workflows.mdx +146 -70
  378. package/package.json +38 -19
  379. package/dist/src/compiled/@vercel/sandbox-delete/api-client/index.d.ts +0 -2
  380. package/dist/src/compiled/@vercel/sandbox-delete/index.js +0 -9
  381. package/dist/src/compiled/@vercel/sandbox-stable/LICENSE +0 -201
  382. package/dist/src/compiled/@vercel/sandbox-stable/_async-retry.d.ts +0 -8
  383. package/dist/src/compiled/@vercel/sandbox-stable/_workflow-serde.d.ts +0 -5
  384. package/dist/src/compiled/@vercel/sandbox-stable/api-client/api-client.d.ts +0 -1456
  385. package/dist/src/compiled/@vercel/sandbox-stable/api-client/api-error.d.ts +0 -29
  386. package/dist/src/compiled/@vercel/sandbox-stable/api-client/base-client.d.ts +0 -39
  387. package/dist/src/compiled/@vercel/sandbox-stable/api-client/file-writer.d.ts +0 -66
  388. package/dist/src/compiled/@vercel/sandbox-stable/api-client/index.d.ts +0 -2
  389. package/dist/src/compiled/@vercel/sandbox-stable/api-client/validators.d.ts +0 -899
  390. package/dist/src/compiled/@vercel/sandbox-stable/api-client/with-retry.d.ts +0 -10
  391. package/dist/src/compiled/@vercel/sandbox-stable/auth/error.d.ts +0 -15
  392. package/dist/src/compiled/@vercel/sandbox-stable/auth/file.d.ts +0 -18
  393. package/dist/src/compiled/@vercel/sandbox-stable/auth/index.d.ts +0 -6
  394. package/dist/src/compiled/@vercel/sandbox-stable/auth/oauth.d.ts +0 -111
  395. package/dist/src/compiled/@vercel/sandbox-stable/auth/poll-for-token.d.ts +0 -28
  396. package/dist/src/compiled/@vercel/sandbox-stable/auth/project.d.ts +0 -40
  397. package/dist/src/compiled/@vercel/sandbox-stable/command.d.ts +0 -292
  398. package/dist/src/compiled/@vercel/sandbox-stable/constants.d.ts +0 -5
  399. package/dist/src/compiled/@vercel/sandbox-stable/execution-context.d.ts +0 -116
  400. package/dist/src/compiled/@vercel/sandbox-stable/filesystem.d.ts +0 -258
  401. package/dist/src/compiled/@vercel/sandbox-stable/index.d.ts +0 -12
  402. package/dist/src/compiled/@vercel/sandbox-stable/index.js +0 -1
  403. package/dist/src/compiled/@vercel/sandbox-stable/network-policy.d.ts +0 -169
  404. package/dist/src/compiled/@vercel/sandbox-stable/proxy.d.ts +0 -55
  405. package/dist/src/compiled/@vercel/sandbox-stable/sandbox-user.d.ts +0 -212
  406. package/dist/src/compiled/@vercel/sandbox-stable/sandbox.d.ts +0 -1216
  407. package/dist/src/compiled/@vercel/sandbox-stable/session.d.ts +0 -433
  408. package/dist/src/compiled/@vercel/sandbox-stable/snapshot.d.ts +0 -229
  409. package/dist/src/compiled/@vercel/sandbox-stable/utils/get-credentials.d.ts +0 -21
  410. package/dist/src/compiled/@vercel/sandbox-stable/utils/paginator.d.ts +0 -16
  411. package/dist/src/compiled/@vercel/sandbox-stable/utils/resolveSignal.d.ts +0 -15
  412. package/dist/src/compiled/@vercel/sandbox-stable/utils/sandbox-snapshot.d.ts +0 -11
  413. package/dist/src/compiled/@vercel/sandbox-stable/utils/types.d.ts +0 -11
  414. package/dist/src/compiled/_chunks/node/decode_jwt-Col8JOnf.js +0 -7
  415. package/dist/src/compiled/_chunks/node/version-BYHw-SDY.js +0 -1
  416. package/dist/src/compiled/_chunks/node/version-DH6yRy-M.js +0 -1
  417. package/dist/src/compiled/_chunks/workflow/dist-CgbVZs5l.js +0 -40
  418. package/dist/src/compiled/_chunks/workflow/dist-DjojkP5e.js +0 -3
  419. package/dist/src/compiled/_chunks/workflow/frames-CZ9eHShe.js +0 -3
  420. package/dist/src/compiled/_chunks/workflow/run-DzyAoGh4.js +0 -1
  421. package/dist/src/compiled/_chunks/workflow/sleep-3_A5uOp-.js +0 -1
  422. package/dist/src/compiled/_chunks/workflow/wait-until-BtySPYD0.js +0 -15
  423. package/dist/src/harness/session-token-limits.d.ts +0 -41
  424. package/dist/src/harness/session-token-limits.js +0 -1
  425. package/dist/src/harness/turn-sleep.d.ts +0 -12
  426. package/dist/src/harness/turn-sleep.js +0 -1
  427. package/dist/src/internal/agent-workspace.d.ts +0 -15
  428. package/dist/src/internal/agent-workspace.js +0 -1
  429. package/dist/src/node_modules/.pnpm/@clack_core@1.3.1/node_modules/@clack/core/dist/index.js +0 -16
  430. package/dist/src/node_modules/.pnpm/fast-string-truncated-width@3.0.3/node_modules/fast-string-truncated-width/dist/index.js +0 -1
  431. package/dist/src/node_modules/.pnpm/fast-string-truncated-width@3.0.3/node_modules/fast-string-truncated-width/dist/utils.js +0 -1
  432. package/dist/src/node_modules/.pnpm/fast-string-width@3.0.2/node_modules/fast-string-width/dist/index.js +0 -1
  433. package/dist/src/node_modules/.pnpm/fast-wrap-ansi@0.2.2/node_modules/fast-wrap-ansi/lib/main.js +0 -5
  434. package/dist/src/node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js +0 -1
  435. package/dist/src/public/workflow/index.d.ts +0 -5
  436. package/dist/src/public/workflow/index.js +0 -1
  437. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/LICENSE +0 -0
  438. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/_async-retry.d.ts +0 -0
  439. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/_workflow-serde.d.ts +0 -0
  440. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/api-client/api-error.d.ts +0 -0
  441. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/api-client/base-client.d.ts +0 -0
  442. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/api-client/file-writer.d.ts +0 -0
  443. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/api-client/with-retry.d.ts +0 -0
  444. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/auth/error.d.ts +0 -0
  445. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/auth/file.d.ts +0 -0
  446. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/auth/index.d.ts +0 -0
  447. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/auth/oauth.d.ts +0 -0
  448. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/auth/poll-for-token.d.ts +0 -0
  449. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/auth/project.d.ts +0 -0
  450. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/command.d.ts +0 -0
  451. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/execution-context.d.ts +0 -0
  452. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/filesystem.d.ts +0 -0
  453. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/network-policy.d.ts +0 -0
  454. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/proxy.d.ts +0 -0
  455. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/sandbox-user.d.ts +0 -0
  456. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/session.d.ts +0 -0
  457. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/snapshot.d.ts +0 -0
  458. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/utils/get-credentials.d.ts +0 -0
  459. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/utils/paginator.d.ts +0 -0
  460. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/utils/resolveSignal.d.ts +0 -0
  461. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/utils/sandbox-snapshot.d.ts +0 -0
  462. /package/dist/src/compiled/@vercel/{sandbox-delete → sandbox-drives}/utils/types.d.ts +0 -0
@@ -2,8 +2,8 @@ import { Paginator } from "./utils/paginator.js";
2
2
  import { SandboxMetaData, SandboxRouteData, SessionMetaData, SnapshotMetadata } from "./api-client/validators.js";
3
3
  import { NetworkPolicy, NetworkPolicyKeyValueMatcher, NetworkPolicyMatch, NetworkPolicyMatcher } from "./network-policy.js";
4
4
  import { WithPrivate } from "./utils/types.js";
5
- import { RUNTIMES } from "./constants.js";
6
- import { APIClient, WithFetchOptions } from "./api-client/api-client.js";
5
+ import { ManagedImage, RUNTIMES, SandboxRegion } from "./constants.js";
6
+ import { APIClient, SingleTagFilter, WithFetchOptions } from "./api-client/api-client.js";
7
7
  import "./api-client/index.js";
8
8
  import { Credentials } from "./utils/get-credentials.js";
9
9
  import { Command, CommandFinished } from "./command.js";
@@ -49,7 +49,7 @@ interface BaseCreateSandboxParams {
49
49
  };
50
50
  /**
51
51
  * Array of port numbers to expose from the sandbox. Sandboxes can
52
- * expose up to 4 ports.
52
+ * expose up to 15 ports.
53
53
  */
54
54
  ports?: number[];
55
55
  /**
@@ -89,29 +89,15 @@ interface BaseCreateSandboxParams {
89
89
  */
90
90
  tags?: Record<string, string>;
91
91
  /**
92
- * List of drives to attach to the sandbox, keyed by the desired mount path.
93
- * The drive must be created beforehand with `Drive.getOrCreate`.
94
- *
95
- * The mount paths must be absolute and cannot overlap with each other.
96
- *
97
- * @example
98
- * const drive = await Drive.getOrCreate({ name: "my-drive" });
99
- * const sandbox = await Sandbox.create({
100
- * mounts: {
101
- * "/data": { drive: drive.name, mode: "read-write" },
102
- * },
103
- * });
92
+ * The region to create the sandbox in. Defaults to `iad1`.
93
+ * See the Vercel documentation for the available regions.
104
94
  */
105
- mounts?: Record<string, {
106
- /**
107
- * The drive name to mount.
108
- */
109
- drive: string;
110
- /**
111
- * Mount mode. Defaults to `read-write` if unspecified.
112
- */
113
- mode?: "read-only" | "read-write";
114
- }>;
95
+ region?: SandboxRegion;
96
+ /**
97
+ * Additional regions the sandbox can fail over to. Must not include
98
+ * `region`.
99
+ */
100
+ failoverRegions?: SandboxRegion[];
115
101
  /**
116
102
  * An AbortSignal to cancel sandbox creation.
117
103
  */
@@ -152,37 +138,39 @@ interface BaseCreateSandboxParams {
152
138
  */
153
139
  onResume?: (sandbox: Sandbox) => Promise<void>;
154
140
  }
155
- type SandboxMounts = NonNullable<BaseCreateSandboxParams["mounts"]>;
156
- type SandboxMountMode = NonNullable<SandboxMounts[string]["mode"]>;
157
141
  /**
158
- * `runtime` and `image` are mutually exclusive: a sandbox starts from either a
159
- * stock runtime or a custom VCR image, never both. The `never` counterpart in
160
- * each branch makes passing both a compile-time error.
142
+ * A VCR image reference.
143
+ */
144
+ type SandboxImage = `vercel/sandbox/${ManagedImage}` | (string & {});
145
+ /**
146
+ * Sandbox environment selection options.
161
147
  * @inline
162
148
  */
163
149
  type RuntimeOrImage = {
164
150
  /**
165
- * The runtime of the sandbox, currently only `node24`, `node22`, `node26`
166
- * and `python3.13` are supported.
167
- * If not specified, the default runtime `node24` will be used.
151
+ * A legacy Vercel-managed runtime.
152
+ *
153
+ * @deprecated Use `image` instead.
168
154
  */
169
155
  runtime?: RUNTIMES | (string & {});
170
156
  image?: never;
171
157
  } | {
158
+ runtime?: never;
172
159
  /**
173
160
  * A Vercel Container Registry (VCR) image to start the sandbox from,
174
161
  * scoped to the sandbox's project or a shared image from any project. Accepts a repository name, an
175
162
  * optional tag or digest, or a fully-qualified VCR URL. A bare
176
- * repository name resolves to the `latest` tag.
163
+ * repository name resolves to the `latest` tag. If omitted, the sandbox
164
+ * uses `vercel/sandbox/universal:latest`.
177
165
  *
166
+ * @example "vercel/sandbox/universal" // Vercel managed image, latest tag
178
167
  * @example "my-repo" // latest tag
179
168
  * @example "my-repo:v1" // specific tag
180
169
  * @example "my-repo@sha256:..." // specific digest
181
170
  * @example "other-team/other-project/repo:v1" // Shared image from another team
182
171
  * @example "vcr.vercel.com/my-team/my-project/repo:v1" // fully-qualified
183
172
  */
184
- image?: string;
185
- runtime?: never;
173
+ image?: SandboxImage;
186
174
  };
187
175
  type CreateSandboxParams = (BaseCreateSandboxParams & RuntimeOrImage) | (Omit<BaseCreateSandboxParams, "source"> & {
188
176
  source: {
@@ -198,12 +186,11 @@ type CreateSandboxParams = (BaseCreateSandboxParams & RuntimeOrImage) | (Omit<Ba
198
186
  * The fork inherits the source sandbox's current filesystem snapshot and the
199
187
  * server copies its config — resources, timeout, ports, tags, network policy,
200
188
  * image, persistence, snapshot settings, and environment variables. Any field
201
- * set here acts as an override of the copied value. `runtime` is not exposed:
202
- * when the source has a snapshot it is inherited, otherwise the source's
203
- * runtime/image is copied.
189
+ * set here acts as an override of the copied value. When the source has no
190
+ * snapshot, its base environment is copied.
204
191
  * @inline
205
192
  */
206
- type ForkSandboxParams = Omit<BaseCreateSandboxParams, "source" | "runtime"> & {
193
+ type ForkSandboxParams = Omit<BaseCreateSandboxParams, "source"> & {
207
194
  /**
208
195
  * Name of the source sandbox to fork from.
209
196
  */
@@ -212,7 +199,7 @@ type ForkSandboxParams = Omit<BaseCreateSandboxParams, "source" | "runtime"> & {
212
199
  * A Vercel Container Registry (VCR) image to start the fork from, overriding
213
200
  * the image copied from the source.
214
201
  */
215
- image?: string;
202
+ image?: SandboxImage;
216
203
  };
217
204
  /** @inline */
218
205
  interface GetSandboxParams {
@@ -221,7 +208,9 @@ interface GetSandboxParams {
221
208
  */
222
209
  name: string;
223
210
  /**
224
- * Whether to resume an existing session. Defaults to true.
211
+ * Whether to resume an existing session immediately. Defaults to false;
212
+ * a persistent sandbox still auto-resumes on the first SDK call that
213
+ * needs a running session (such as `runCommand`).
225
214
  */
226
215
  resume?: boolean;
227
216
  /**
@@ -241,7 +230,9 @@ interface GetSandboxParams {
241
230
  */
242
231
  type GetOrCreateSandboxParams = CreateSandboxParams & {
243
232
  /**
244
- * Whether to resume an existing session. Defaults to true.
233
+ * Whether to resume an existing session immediately. Defaults to false;
234
+ * a persistent sandbox still auto-resumes on the first SDK call that
235
+ * needs a running session (such as `runCommand`).
245
236
  */
246
237
  resume?: boolean;
247
238
  /**
@@ -321,9 +312,15 @@ declare class Sandbox implements ExecutionContext {
321
312
  */
322
313
  get persistent(): boolean;
323
314
  /**
324
- * The region this sandbox runs in.
315
+ * The region this sandbox is configured to run in. Where the running session
316
+ * actually landed is reported by {@link Session.region}.
325
317
  */
326
- get region(): string | undefined;
318
+ get region(): string;
319
+ /**
320
+ * The additional regions this sandbox can fail over to, in order. Empty when
321
+ * it does not fail over.
322
+ */
323
+ get failoverRegions(): string[];
327
324
  /**
328
325
  * Number of virtual CPUs allocated.
329
326
  */
@@ -333,14 +330,14 @@ declare class Sandbox implements ExecutionContext {
333
330
  */
334
331
  get memory(): number | undefined;
335
332
  /**
336
- * Runtime identifier (e.g. "node24", "python3.13").
337
- * Mutually exclusive with {@link Sandbox.image}.
333
+ * Legacy runtime identifier, when the sandbox was created with `runtime`.
334
+ *
335
+ * @deprecated Use {@link Sandbox.image} for image-backed sandboxes.
338
336
  */
339
337
  get runtime(): string | undefined;
340
338
  /**
341
339
  * Digest-pinned reference of the container image the sandbox was created
342
340
  * from, when it was created from an image (`"{repository}@{manifestDigest}"`).
343
- * Mutually exclusive with {@link Sandbox.runtime}.
344
341
  */
345
342
  get image(): string | undefined;
346
343
  /**
@@ -396,10 +393,6 @@ declare class Sandbox implements ExecutionContext {
396
393
  * Key-value tags attached to the sandbox.
397
394
  */
398
395
  get tags(): Record<string, string> | undefined;
399
- /**
400
- * Drives mounted on the sandbox, keyed by mount path.
401
- */
402
- get mounts(): SandboxMounts | undefined;
403
396
  /**
404
397
  * The default network policy of this sandbox.
405
398
  */
@@ -450,7 +443,14 @@ declare class Sandbox implements ExecutionContext {
450
443
  * // or: for await (const page of result.pages()) { ... }
451
444
  * ```
452
445
  */
453
- static list(params?: Partial<Parameters<APIClient["listSandboxes"]>[0]> & Partial<Credentials> & WithFetchOptions): Promise<Paginator<{
446
+ static list<Tags extends Record<string, string>>(params?: Partial<Omit<Parameters<APIClient["listSandboxes"]>[0], "tags">> & {
447
+ /**
448
+ * Filter sandboxes by tag. Only a single `{ key: value }` tag filter
449
+ * is currently supported.
450
+ * @example { env: "staging" }
451
+ */
452
+ tags?: Tags & SingleTagFilter<Tags>;
453
+ } & Partial<Credentials> & WithFetchOptions): Promise<Paginator<{
454
454
  sandboxes: {
455
455
  name: string;
456
456
  persistent: boolean;
@@ -459,6 +459,7 @@ declare class Sandbox implements ExecutionContext {
459
459
  currentSessionId: string;
460
460
  status: "pending" | "running" | "stopping" | "stopped" | "failed" | "aborted" | "snapshotting";
461
461
  region?: string | undefined;
462
+ failoverRegions?: string[] | undefined;
462
463
  vcpus?: number | undefined;
463
464
  memory?: number | undefined;
464
465
  runtime?: string | undefined;
@@ -559,10 +560,6 @@ declare class Sandbox implements ExecutionContext {
559
560
  statusUpdatedAt?: number | undefined;
560
561
  cwd?: string | undefined;
561
562
  tags?: Record<string, string> | undefined;
562
- mounts?: Record<string, {
563
- drive: string;
564
- mode?: "read-only" | "read-write" | undefined;
565
- }> | undefined;
566
563
  snapshotExpiration?: number | undefined;
567
564
  keepLastSnapshots?: {
568
565
  count: number;
@@ -595,6 +592,10 @@ declare class Sandbox implements ExecutionContext {
595
592
  /**
596
593
  * Create a new sandbox.
597
594
  *
595
+ * By default, the sandbox uses `vercel/sandbox/universal:latest`, an
596
+ * Ubuntu-based image with Node.js 24, Bun, Python 3.14, coding agents, and
597
+ * common development utilities.
598
+ *
598
599
  * @param params - Creation parameters and optional credentials.
599
600
  * @returns A promise resolving to the created {@link Sandbox}.
600
601
  * @example
@@ -612,8 +613,8 @@ declare class Sandbox implements ExecutionContext {
612
613
  /**
613
614
  * Fork an existing sandbox into a new one.
614
615
  *
615
- * The server restores the fork from the source's current snapshot (or the
616
- * source's runtime/image when it has none) and copies its config — resources,
616
+ * The server restores the fork from the source's current snapshot (or its
617
+ * base environment when it has none) and copies its config — resources,
617
618
  * timeout, ports, tags, network policy, image, persistence, snapshot
618
619
  * settings, and environment variables. Any field passed in `params` overrides
619
620
  * the copied value.
@@ -831,7 +832,7 @@ declare class Sandbox implements ExecutionContext {
831
832
  /**
832
833
  * Write files to the filesystem of this sandbox.
833
834
  * Defaults to writing to /vercel/sandbox unless an absolute path is specified.
834
- * Writes files using the `vercel-sandbox` user.
835
+ * Writes files using the sandbox's default user.
835
836
  *
836
837
  * @param files - Array of files with path, content, and optional mode (permissions)
837
838
  * @param opts - Optional parameters.
@@ -928,11 +929,10 @@ declare class Sandbox implements ExecutionContext {
928
929
  }): Promise<void>;
929
930
  /**
930
931
  * The user that non-`sudo` commands and the HTTP file API run as, together
931
- * with that user's primary group. This depends on the sandbox image: stock
932
- * runtimes default to `vercel-sandbox`, while Ubuntu-based images default to
933
- * `root`. The multi-user helpers group-own home and shared directories by
934
- * this user's group so the file API can traverse them, so we resolve it from
935
- * the running sandbox rather than assuming a fixed name.
932
+ * with that user's primary group. This depends on the sandbox image. The
933
+ * multi-user helpers group-own home and shared directories by this user's
934
+ * group so the file API can traverse them, so we resolve it from the running
935
+ * sandbox rather than assuming a fixed name.
936
936
  *
937
937
  * The result is memoized for the lifetime of this instance.
938
938
  *
@@ -1056,6 +1056,10 @@ declare class Sandbox implements ExecutionContext {
1056
1056
  * When `timeout` is increased and a session is currently running, the running
1057
1057
  * session's deadline is also extended.
1058
1058
  *
1059
+ * `region` and `failoverRegions` apply to the next session; the currently
1060
+ * running session keeps the region it started in. Pass an empty
1061
+ * `failoverRegions` array to remove all failover regions.
1062
+ *
1059
1063
  * @param params - Fields to update.
1060
1064
  * @param opts - Optional abort signal.
1061
1065
  */
@@ -1075,6 +1079,8 @@ declare class Sandbox implements ExecutionContext {
1075
1079
  deleteEvicted?: boolean;
1076
1080
  } | null;
1077
1081
  currentSnapshotId?: string;
1082
+ region?: SandboxRegion;
1083
+ failoverRegions?: SandboxRegion[];
1078
1084
  }, opts?: {
1079
1085
  signal?: AbortSignal;
1080
1086
  }): Promise<void>;
@@ -1083,8 +1089,13 @@ declare class Sandbox implements ExecutionContext {
1083
1089
  *
1084
1090
  * After deletion the instance becomes inert — all further API calls will
1085
1091
  * throw immediately.
1092
+ *
1093
+ * @param opts.deleteOrphanSnapshots - When true, the snapshots of this
1094
+ * sandbox that are not used by any other sandbox are deleted asynchronously
1095
+ * too. Defaults to false, which keeps them until they expire.
1086
1096
  */
1087
1097
  delete(opts?: {
1098
+ deleteOrphanSnapshots?: boolean;
1088
1099
  signal?: AbortSignal;
1089
1100
  }): Promise<void>;
1090
1101
  /**
@@ -1105,13 +1116,13 @@ declare class Sandbox implements ExecutionContext {
1105
1116
  memory: number;
1106
1117
  vcpus: number;
1107
1118
  region: string;
1108
- runtime: string;
1109
1119
  timeout: number;
1110
1120
  status: "pending" | "running" | "stopping" | "stopped" | "failed" | "aborted" | "snapshotting";
1111
1121
  requestedAt: number;
1112
1122
  createdAt: number;
1113
1123
  cwd: string;
1114
1124
  updatedAt: number;
1125
+ runtime?: string | undefined;
1115
1126
  startedAt?: number | undefined;
1116
1127
  requestedStopAt?: number | undefined;
1117
1128
  stoppedAt?: number | undefined;
@@ -1237,6 +1248,7 @@ declare class Sandbox implements ExecutionContext {
1237
1248
  sizeBytes: number;
1238
1249
  createdAt: number;
1239
1250
  updatedAt: number;
1251
+ regions?: string[] | undefined;
1240
1252
  expiresAt?: number | undefined;
1241
1253
  lastUsedAt?: number | undefined;
1242
1254
  creationMethod?: string | undefined;
@@ -1249,5 +1261,5 @@ declare class Sandbox implements ExecutionContext {
1249
1261
  }, "snapshots">>;
1250
1262
  }
1251
1263
  //#endregion
1252
- export { BaseCreateSandboxParams, Sandbox, SandboxMountMode, SandboxMounts, SerializedSandbox };
1264
+ export { Sandbox, SerializedSandbox };
1253
1265
  //# sourceMappingURL=sandbox.d.ts.map
@@ -127,9 +127,11 @@ declare class Session implements ExecutionContext {
127
127
  */
128
128
  get region(): string;
129
129
  /**
130
- * Runtime identifier (e.g. "node24", "python3.13").
130
+ * Legacy runtime identifier, when available.
131
+ *
132
+ * @deprecated Use the parent sandbox's image metadata instead.
131
133
  */
132
- get runtime(): string;
134
+ get runtime(): string | undefined;
133
135
  /**
134
136
  * The working directory of this session.
135
137
  */
@@ -316,7 +318,7 @@ declare class Session implements ExecutionContext {
316
318
  /**
317
319
  * Write files to the filesystem of this session.
318
320
  * Defaults to writing to /vercel/sandbox unless an absolute path is specified.
319
- * Writes files using the `vercel-sandbox` user.
321
+ * Writes files using the sandbox's default user.
320
322
  *
321
323
  * @param files - Array of files with path and stream/buffer contents
322
324
  * @param opts - Optional parameters.
@@ -43,6 +43,10 @@ declare class Snapshot {
43
43
  * The ID of the session from which this snapshot was created.
44
44
  */
45
45
  get sourceSessionId(): string;
46
+ /**
47
+ * All regions where this snapshot is available.
48
+ */
49
+ get regions(): string[];
46
50
  /**
47
51
  * The status of the snapshot.
48
52
  */
@@ -114,6 +118,7 @@ declare class Snapshot {
114
118
  sizeBytes: number;
115
119
  createdAt: number;
116
120
  updatedAt: number;
121
+ regions?: string[] | undefined;
117
122
  expiresAt?: number | undefined;
118
123
  lastUsedAt?: number | undefined;
119
124
  creationMethod?: string | undefined;
@@ -152,6 +157,7 @@ declare class Snapshot {
152
157
  sizeBytes: number;
153
158
  createdAt: number;
154
159
  updatedAt: number;
160
+ regions?: string[] | undefined;
155
161
  expiresAt?: number | undefined;
156
162
  lastUsedAt?: number | undefined;
157
163
  creationMethod?: string | undefined;
@@ -165,6 +171,7 @@ declare class Snapshot {
165
171
  sizeBytes: number;
166
172
  createdAt: number;
167
173
  updatedAt: number;
174
+ regions?: string[] | undefined;
168
175
  expiresAt?: number | undefined;
169
176
  lastUsedAt?: number | undefined;
170
177
  creationMethod?: string | undefined;
@@ -185,6 +192,7 @@ declare class Snapshot {
185
192
  sizeBytes: number;
186
193
  createdAt: number;
187
194
  updatedAt: number;
195
+ regions?: string[] | undefined;
188
196
  expiresAt?: number | undefined;
189
197
  lastUsedAt?: number | undefined;
190
198
  creationMethod?: string | undefined;
@@ -198,6 +206,7 @@ declare class Snapshot {
198
206
  sizeBytes: number;
199
207
  createdAt: number;
200
208
  updatedAt: number;
209
+ regions?: string[] | undefined;
201
210
  expiresAt?: number | undefined;
202
211
  lastUsedAt?: number | undefined;
203
212
  creationMethod?: string | undefined;
@@ -4,6 +4,7 @@ import { FileWriter } from "./file-writer.js";
4
4
  import { NetworkPolicy } from "../network-policy.js";
5
5
  import { WithPrivate } from "../utils/types.js";
6
6
  import { RUNTIMES, SandboxRegion } from "../constants.js";
7
+ import { BaseCreateSandboxParams } from "../sandbox.js";
7
8
  import { z } from "#compiled/zod/index.js";
8
9
  import { Readable } from "stream";
9
10
 
@@ -180,6 +181,7 @@ declare class APIClient extends BaseClient {
180
181
  expiration?: number;
181
182
  deleteEvicted?: boolean;
182
183
  };
184
+ mounts?: BaseCreateSandboxParams["mounts"];
183
185
  region?: SandboxRegion;
184
186
  failoverRegions?: SandboxRegion[];
185
187
  signal?: AbortSignal;
@@ -293,6 +295,10 @@ declare class APIClient extends BaseClient {
293
295
  statusUpdatedAt?: number | undefined;
294
296
  cwd?: string | undefined;
295
297
  tags?: Record<string, string> | undefined;
298
+ mounts?: Record<string, {
299
+ drive: string;
300
+ mode?: "read-only" | "read-write" | undefined;
301
+ }> | undefined;
296
302
  snapshotExpiration?: number | undefined;
297
303
  keepLastSnapshots?: {
298
304
  count: number;
@@ -553,6 +559,10 @@ declare class APIClient extends BaseClient {
553
559
  statusUpdatedAt?: number | undefined;
554
560
  cwd?: string | undefined;
555
561
  tags?: Record<string, string> | undefined;
562
+ mounts?: Record<string, {
563
+ drive: string;
564
+ mode?: "read-only" | "read-write" | undefined;
565
+ }> | undefined;
556
566
  snapshotExpiration?: number | undefined;
557
567
  keepLastSnapshots?: {
558
568
  count: number;
@@ -1010,6 +1020,50 @@ declare class APIClient extends BaseClient {
1010
1020
  count: string;
1011
1021
  } | undefined;
1012
1022
  }>>;
1023
+ listDrives(params: {
1024
+ projectId: string;
1025
+ limit?: number;
1026
+ cursor?: string | number;
1027
+ since?: number | string;
1028
+ until?: number | string;
1029
+ sortBy?: "createdAt" | "updatedAt" | "name";
1030
+ sortOrder?: "asc" | "desc";
1031
+ namePrefix?: string;
1032
+ signal?: AbortSignal;
1033
+ }): Promise<Parsed<{
1034
+ drives: {
1035
+ name: string;
1036
+ projectId: string;
1037
+ region: string;
1038
+ maxSizeBytes: number;
1039
+ createdAt: number;
1040
+ updatedAt: number;
1041
+ currentSessionId?: string | undefined;
1042
+ currentSandboxName?: string | undefined;
1043
+ }[];
1044
+ pagination: {
1045
+ count: number;
1046
+ next: string | null;
1047
+ };
1048
+ }>>;
1049
+ getOrCreateDrive(params: {
1050
+ projectId: string;
1051
+ name: string;
1052
+ region?: string;
1053
+ maxSizeBytes?: number;
1054
+ signal?: AbortSignal;
1055
+ }): Promise<Parsed<{
1056
+ drive: {
1057
+ name: string;
1058
+ projectId: string;
1059
+ region: string;
1060
+ maxSizeBytes: number;
1061
+ createdAt: number;
1062
+ updatedAt: number;
1063
+ currentSessionId?: string | undefined;
1064
+ currentSandboxName?: string | undefined;
1065
+ };
1066
+ }>>;
1013
1067
  writeFiles(params: {
1014
1068
  sessionId: string;
1015
1069
  cwd: string;
@@ -1193,6 +1247,10 @@ declare class APIClient extends BaseClient {
1193
1247
  statusUpdatedAt?: number | undefined;
1194
1248
  cwd?: string | undefined;
1195
1249
  tags?: Record<string, string> | undefined;
1250
+ mounts?: Record<string, {
1251
+ drive: string;
1252
+ mode?: "read-only" | "read-write" | undefined;
1253
+ }> | undefined;
1196
1254
  snapshotExpiration?: number | undefined;
1197
1255
  keepLastSnapshots?: {
1198
1256
  count: number;
@@ -1439,6 +1497,10 @@ declare class APIClient extends BaseClient {
1439
1497
  statusUpdatedAt?: number | undefined;
1440
1498
  cwd?: string | undefined;
1441
1499
  tags?: Record<string, string> | undefined;
1500
+ mounts?: Record<string, {
1501
+ drive: string;
1502
+ mode?: "read-only" | "read-write" | undefined;
1503
+ }> | undefined;
1442
1504
  snapshotExpiration?: number | undefined;
1443
1505
  keepLastSnapshots?: {
1444
1506
  count: number;
@@ -1451,6 +1513,22 @@ declare class APIClient extends BaseClient {
1451
1513
  next: string | null;
1452
1514
  };
1453
1515
  }>>;
1516
+ deleteDrive(params: {
1517
+ projectId: string;
1518
+ name: string;
1519
+ signal?: AbortSignal;
1520
+ }): Promise<Parsed<{
1521
+ drive: {
1522
+ name: string;
1523
+ projectId: string;
1524
+ region: string;
1525
+ maxSizeBytes: number;
1526
+ createdAt: number;
1527
+ updatedAt: number;
1528
+ currentSessionId?: string | undefined;
1529
+ currentSandboxName?: string | undefined;
1530
+ };
1531
+ }>>;
1454
1532
  updateSandbox(params: {
1455
1533
  name: string;
1456
1534
  projectId: string;
@@ -1583,6 +1661,10 @@ declare class APIClient extends BaseClient {
1583
1661
  statusUpdatedAt?: number | undefined;
1584
1662
  cwd?: string | undefined;
1585
1663
  tags?: Record<string, string> | undefined;
1664
+ mounts?: Record<string, {
1665
+ drive: string;
1666
+ mode?: "read-only" | "read-write" | undefined;
1667
+ }> | undefined;
1586
1668
  snapshotExpiration?: number | undefined;
1587
1669
  keepLastSnapshots?: {
1588
1670
  count: number;
@@ -1599,7 +1681,6 @@ declare class APIClient extends BaseClient {
1599
1681
  deleteSandbox(params: {
1600
1682
  name: string;
1601
1683
  projectId: string;
1602
- deleteOrphanSnapshots?: boolean;
1603
1684
  signal?: AbortSignal;
1604
1685
  }): Promise<Parsed<{
1605
1686
  sandbox: {
@@ -1711,6 +1792,10 @@ declare class APIClient extends BaseClient {
1711
1792
  statusUpdatedAt?: number | undefined;
1712
1793
  cwd?: string | undefined;
1713
1794
  tags?: Record<string, string> | undefined;
1795
+ mounts?: Record<string, {
1796
+ drive: string;
1797
+ mode?: "read-only" | "read-write" | undefined;
1798
+ }> | undefined;
1714
1799
  snapshotExpiration?: number | undefined;
1715
1800
  keepLastSnapshots?: {
1716
1801
  count: number;
@@ -0,0 +1,2 @@
1
+ import { Command, CommandData, CommandFinishedData, CommandFinishedResponse, CommandResponse, CreateSnapshotResponse, Drive, DriveMetadata, InteractiveSessionResponse, LogError, LogLine, LogLineData, LogOutputLine, Sandbox, SandboxMetaData, SandboxRoute, SandboxRouteData, Session, SessionMetaData, SessionResponse, Snapshot, SnapshotMetadata, SnapshotResponse, SnapshotTreeNode, SnapshotTreeNodeData, StopSessionResponse } from "./validators.js";
2
+ import { APIClient } from "./api-client.js";
@@ -522,6 +522,17 @@ declare const SnapshotResponse: z.ZodObject<{
522
522
  parentId: z.ZodOptional<z.ZodString>;
523
523
  }, z.core.$strip>;
524
524
  }, z.core.$strip>;
525
+ declare const Drive: z.ZodObject<{
526
+ name: z.ZodString;
527
+ projectId: z.ZodString;
528
+ region: z.ZodString;
529
+ maxSizeBytes: z.ZodNumber;
530
+ currentSessionId: z.ZodOptional<z.ZodString>;
531
+ currentSandboxName: z.ZodOptional<z.ZodString>;
532
+ createdAt: z.ZodNumber;
533
+ updatedAt: z.ZodNumber;
534
+ }, z.core.$strip>;
535
+ type DriveMetadata = z.infer<typeof Drive>;
525
536
  declare const Sandbox: z.ZodObject<{
526
537
  name: z.ZodString;
527
538
  persistent: z.ZodBoolean;
@@ -636,6 +647,13 @@ declare const Sandbox: z.ZodObject<{
636
647
  statusUpdatedAt: z.ZodOptional<z.ZodNumber>;
637
648
  cwd: z.ZodOptional<z.ZodString>;
638
649
  tags: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
650
+ mounts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
651
+ drive: z.ZodString;
652
+ mode: z.ZodOptional<z.ZodEnum<{
653
+ "read-only": "read-only";
654
+ "read-write": "read-write";
655
+ }>>;
656
+ }, z.core.$strip>>>;
639
657
  snapshotExpiration: z.ZodOptional<z.ZodNumber>;
640
658
  keepLastSnapshots: z.ZodOptional<z.ZodObject<{
641
659
  count: z.ZodNumber;
@@ -876,6 +894,13 @@ declare const StopSessionResponse: z.ZodObject<{
876
894
  statusUpdatedAt: z.ZodOptional<z.ZodNumber>;
877
895
  cwd: z.ZodOptional<z.ZodString>;
878
896
  tags: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
897
+ mounts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
898
+ drive: z.ZodString;
899
+ mode: z.ZodOptional<z.ZodEnum<{
900
+ "read-only": "read-only";
901
+ "read-write": "read-write";
902
+ }>>;
903
+ }, z.core.$strip>>>;
879
904
  snapshotExpiration: z.ZodOptional<z.ZodNumber>;
880
905
  keepLastSnapshots: z.ZodOptional<z.ZodObject<{
881
906
  count: z.ZodNumber;
@@ -903,5 +928,5 @@ declare const StopSessionResponse: z.ZodObject<{
903
928
  }, z.core.$strip>>;
904
929
  }, z.core.$strip>;
905
930
  //#endregion
906
- export { Command, CommandData, CommandFinishedData, CommandFinishedResponse, CommandResponse, CreateSnapshotResponse, InteractiveSessionResponse, LogError, LogLine, LogLineData, LogOutputLine, Sandbox, SandboxMetaData, SandboxRoute, SandboxRouteData, Session, SessionMetaData, SessionResponse, Snapshot, SnapshotMetadata, SnapshotResponse, SnapshotTreeNode, SnapshotTreeNodeData, StopSessionResponse };
931
+ export { Command, CommandData, CommandFinishedData, CommandFinishedResponse, CommandResponse, CreateSnapshotResponse, Drive, DriveMetadata, InteractiveSessionResponse, LogError, LogLine, LogLineData, LogOutputLine, Sandbox, SandboxMetaData, SandboxRoute, SandboxRouteData, Session, SessionMetaData, SessionResponse, Snapshot, SnapshotMetadata, SnapshotResponse, SnapshotTreeNode, SnapshotTreeNodeData, StopSessionResponse };
907
932
  //# sourceMappingURL=validators.d.ts.map
@@ -2,8 +2,8 @@
2
2
  type RUNTIMES = "node26" | "node24" | "node22" | "python3.13";
3
3
  type ManagedImage = "universal" | "node:22" | "node:24" | "node:26" | "python:3.14" | "ubuntu" | "arch";
4
4
  /**
5
- * Regions a sandbox can run in. More regions may become available, so any
6
- * other region string is accepted too.
5
+ * Regions a sandbox, snapshot, or drive can live in. More regions may
6
+ * become available, so any other region string is accepted too.
7
7
  */
8
8
  type SandboxRegion = "iad1" | "sfo1" | "cle1" | "cdg1" | (string & {});
9
9
  /**
@@ -1,5 +1,6 @@
1
1
  import { Paginator } from "./utils/paginator.js";
2
2
  import { DriveMetadata } from "./api-client/validators.js";
3
+ import { SandboxRegion } from "./constants.js";
3
4
  import { APIClient, WithFetchOptions } from "./api-client/api-client.js";
4
5
  import "./api-client/index.js";
5
6
  import { Credentials } from "./utils/get-credentials.js";
@@ -16,6 +17,11 @@ interface GetOrCreateDriveParams {
16
17
  * The name of the drive to get or create. Must be unique within the project.
17
18
  */
18
19
  name: string;
20
+ /**
21
+ * The region where the drive is created and stores its data. Defaults to `iad1`.
22
+ * See the Vercel documentation for the available regions.
23
+ */
24
+ region?: SandboxRegion;
19
25
  /**
20
26
  * Maximum drive size in bytes. If omitted, a default of 100 GiB is used.
21
27
  */
@@ -49,6 +55,10 @@ declare class Drive {
49
55
  * The project ID that owns the drive.
50
56
  */
51
57
  get projectId(): string;
58
+ /**
59
+ * The region where the drive data is stored.
60
+ */
61
+ get region(): string;
52
62
  /**
53
63
  * The maximum drive size in bytes.
54
64
  */