eve 0.27.5 → 0.27.7

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 (311) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/src/channel/forwarded-principal.d.ts +74 -0
  3. package/dist/src/channel/forwarded-principal.js +1 -0
  4. package/dist/src/channel/routes.d.ts +7 -0
  5. package/dist/src/channel/send.js +1 -1
  6. package/dist/src/channel/session.d.ts +5 -0
  7. package/dist/src/channel/session.js +1 -1
  8. package/dist/src/channel/types.d.ts +7 -0
  9. package/dist/src/chunks/{use-eve-agent-BtkhbY2I.js → use-eve-agent-JPfBHZJr.js} +37 -7
  10. package/dist/src/chunks/{use-eve-agent-NUjD28Iu.js → use-eve-agent-r5tkzjmt.js} +37 -7
  11. package/dist/src/cli/commands/channels.d.ts +5 -2
  12. package/dist/src/cli/commands/channels.js +1 -1
  13. package/dist/src/cli/dev/local-server-child.d.ts +1 -0
  14. package/dist/src/cli/dev/local-server-child.js +1 -0
  15. package/dist/src/cli/dev/local-server-cleanup.d.ts +5 -0
  16. package/dist/src/cli/dev/local-server-cleanup.js +1 -0
  17. package/dist/src/cli/dev/local-server-process.d.ts +35 -0
  18. package/dist/src/cli/dev/local-server-process.js +1 -0
  19. package/dist/src/cli/dev/tui/remote-auth.js +1 -1
  20. package/dist/src/cli/dev/tui/runner.d.ts +4 -0
  21. package/dist/src/cli/dev/tui/runner.js +1 -1
  22. package/dist/src/cli/dev/tui/terminal-renderer.d.ts +3 -0
  23. package/dist/src/cli/dev/tui/terminal-renderer.js +12 -12
  24. package/dist/src/cli/dev/tui/tui.d.ts +2 -0
  25. package/dist/src/cli/dev/tui/tui.js +1 -1
  26. package/dist/src/cli/dev/wait-for-ui.d.ts +13 -0
  27. package/dist/src/cli/dev/wait-for-ui.js +1 -0
  28. package/dist/src/cli/run.js +2 -2
  29. package/dist/src/cli/shutdown.d.ts +23 -0
  30. package/dist/src/cli/shutdown.js +1 -0
  31. package/dist/src/client/client.js +1 -1
  32. package/dist/src/client/open-stream.d.ts +17 -2
  33. package/dist/src/client/open-stream.js +1 -1
  34. package/dist/src/client/session.d.ts +5 -1
  35. package/dist/src/client/session.js +1 -1
  36. package/dist/src/client/types.d.ts +9 -1
  37. package/dist/src/compiled/@workflow/core/index.js +1 -1
  38. package/dist/src/compiled/@workflow/core/runtime.js +1 -1
  39. package/dist/src/compiled/@workflow/core/workflow.js +1 -1
  40. package/dist/src/compiled/_chunks/workflow/{attribute-changes-Dk1fP6vt.js → attribute-changes-CB7nRYoY.js} +1 -1
  41. package/dist/src/compiled/_chunks/workflow/{functions-Dv8dc_-I.js → functions-DareOZz_.js} +1 -1
  42. package/dist/src/compiled/_chunks/workflow/{resume-hook-czpG5xnP.js → resume-hook-g1vh0WRC.js} +1 -1
  43. package/dist/src/compiled/_chunks/workflow/{run-6zaMjFY6.js → run-lsS-QDok.js} +1 -1
  44. package/dist/src/compiled/_chunks/workflow/{sleep-B2u06FWc.js → sleep-BXg5I9l2.js} +1 -1
  45. package/dist/src/compiled/_chunks/workflow/wrapper-DnoQohyD.js +8 -0
  46. package/dist/src/compiler/normalize-subagent.js +1 -1
  47. package/dist/src/evals/autoevals-client.js +1 -1
  48. package/dist/src/evals/cli/eval.js +2 -2
  49. package/dist/src/evals/expect/index.js +1 -1
  50. package/dist/src/evals/judge.js +1 -1
  51. package/dist/src/execution/dispatch-runtime-actions-step.js +1 -1
  52. package/dist/src/execution/remote-agent-dispatch.d.ts +5 -1
  53. package/dist/src/execution/remote-agent-dispatch.js +1 -1
  54. package/dist/src/execution/sandbox/bash-tool.js +1 -1
  55. package/dist/src/execution/sandbox/bindings/docker-container.js +1 -1
  56. package/dist/src/execution/sandbox/bindings/microsandbox-lifecycle.js +1 -1
  57. package/dist/src/execution/sandbox/bindings/microsandbox-runtime.js +1 -1
  58. package/dist/src/execution/sandbox/development-cleanup.js +1 -1
  59. package/dist/src/execution/sandbox/ensure.js +1 -1
  60. package/dist/src/execution/subagent-invocation.d.ts +10 -0
  61. package/dist/src/execution/subagent-invocation.js +2 -2
  62. package/dist/src/execution/subagent-tool.js +1 -1
  63. package/dist/src/execution/workflow-runtime.js +1 -1
  64. package/dist/src/harness/emission.js +1 -1
  65. package/dist/src/harness/input-requests.js +1 -1
  66. package/dist/src/harness/runtime-actions.d.ts +4 -0
  67. package/dist/src/harness/runtime-actions.js +1 -1
  68. package/dist/src/harness/tool-call-input-errors.d.ts +20 -0
  69. package/dist/src/harness/tool-call-input-errors.js +1 -1
  70. package/dist/src/internal/application/build-workspace.d.ts +0 -1
  71. package/dist/src/internal/application/build-workspace.js +1 -1
  72. package/dist/src/internal/application/optional-package-install.js +1 -1
  73. package/dist/src/internal/application/package.js +1 -1
  74. package/dist/src/internal/application/paths.d.ts +1 -6
  75. package/dist/src/internal/application/paths.js +1 -1
  76. package/dist/src/internal/authored-module-map-loader.js +1 -1
  77. package/dist/src/internal/nitro/host/build-application.js +1 -1
  78. package/dist/src/internal/nitro/host/configure-nitro-routes.d.ts +4 -4
  79. package/dist/src/internal/nitro/host/configure-nitro-routes.js +2 -2
  80. package/dist/src/internal/nitro/host/create-application-nitro.d.ts +11 -7
  81. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  82. package/dist/src/internal/nitro/host/dev-authored-source-watcher.js +1 -1
  83. package/dist/src/internal/nitro/host/sandbox-shutdown-plugin.js +1 -1
  84. package/dist/src/internal/nitro/host/start-development-server.js +2 -2
  85. package/dist/src/internal/nitro/host/types.d.ts +0 -4
  86. package/dist/src/internal/nitro/host/vercel-build-output-config.d.ts +29 -1
  87. package/dist/src/internal/nitro/host/vercel-build-output-config.js +1 -1
  88. package/dist/src/internal/workflow/queue-namespace.d.ts +8 -0
  89. package/dist/src/internal/workflow/queue-namespace.js +1 -1
  90. package/dist/src/internal/workflow-bundle/builder-support.d.ts +0 -5
  91. package/dist/src/internal/workflow-bundle/builder.d.ts +0 -5
  92. package/dist/src/internal/workflow-bundle/builder.js +2 -2
  93. package/dist/src/internal/workflow-bundle/vercel-workflow-output.d.ts +0 -51
  94. package/dist/src/internal/workflow-bundle/vercel-workflow-output.js +1 -3
  95. package/dist/src/internal/workflow-bundle/workflow-builders.d.ts +0 -7
  96. package/dist/src/internal/workflow-bundle/workflow-builders.js +1 -1
  97. package/dist/src/node_modules/.pnpm/{autoevals@0.0.132_ws@8.21.1 → autoevals@0.0.132_ws@8.21.1_bufferutil@4.1.0_}/node_modules/autoevals/jsdist/index.js +1 -1
  98. package/dist/src/packages/eve-catalog/src/index.js +1 -1
  99. package/dist/src/protocol/message.d.ts +1 -0
  100. package/dist/src/protocol/message.js +2 -2
  101. package/dist/src/public/channels/eve.d.ts +20 -0
  102. package/dist/src/public/channels/eve.js +2 -2
  103. package/dist/src/public/definitions/remote-agent.d.ts +15 -0
  104. package/dist/src/public/sandbox/backends/default.js +1 -1
  105. package/dist/src/runtime/resolve-agent-graph.js +1 -1
  106. package/dist/src/runtime/sessions/compiled-agent-cache.js +1 -1
  107. package/dist/src/runtime/types.d.ts +1 -0
  108. package/dist/src/setup/boxes/add-channels.d.ts +9 -7
  109. package/dist/src/setup/boxes/add-channels.js +2 -2
  110. package/dist/src/setup/boxes/select-channels.d.ts +4 -5
  111. package/dist/src/setup/channel-setup-deployment.d.ts +11 -0
  112. package/dist/src/setup/channel-setup-deployment.js +1 -0
  113. package/dist/src/setup/channel-setup-environment.d.ts +16 -0
  114. package/dist/src/setup/channel-setup-environment.js +1 -0
  115. package/dist/src/setup/channel-setup-integration.d.ts +31 -0
  116. package/dist/src/setup/channel-setup-integration.js +1 -0
  117. package/dist/src/setup/channel-setup-integrations.d.ts +7 -0
  118. package/dist/src/setup/channel-setup-integrations.js +1 -0
  119. package/dist/src/setup/channel-setup-runner.d.ts +7 -0
  120. package/dist/src/setup/channel-setup-runner.js +1 -0
  121. package/dist/src/setup/channel-setup-slack.d.ts +3 -0
  122. package/dist/src/setup/channel-setup-slack.js +1 -0
  123. package/dist/src/setup/channel-setup-ui.d.ts +18 -0
  124. package/dist/src/setup/channel-setup-ui.js +2 -0
  125. package/dist/src/setup/channel-setup-web.d.ts +3 -0
  126. package/dist/src/setup/channel-setup-web.js +1 -0
  127. package/dist/src/setup/flows/channels.d.ts +5 -10
  128. package/dist/src/setup/flows/channels.js +1 -1
  129. package/dist/src/setup/flows/install-vercel-cli.js +1 -1
  130. package/dist/src/setup/flows/login.js +1 -1
  131. package/dist/src/setup/index.js +1 -1
  132. package/dist/src/setup/scaffold/channels-catalog.d.ts +0 -2
  133. package/dist/src/setup/scaffold/channels-catalog.js +1 -1
  134. package/dist/src/setup/scaffold/create/project.js +1 -1
  135. package/dist/src/setup/scaffold/update/channels.d.ts +5 -3
  136. package/dist/src/setup/scaffold/update/channels.js +5 -2
  137. package/dist/src/setup/slack-connect-lifecycle.d.ts +3 -2
  138. package/dist/src/setup/slack-connect-lifecycle.js +1 -1
  139. package/dist/src/setup/slack-connect.d.ts +2 -0
  140. package/dist/src/setup/slack-connect.js +1 -1
  141. package/dist/src/setup/slackbot.d.ts +4 -0
  142. package/dist/src/setup/slackbot.js +1 -1
  143. package/dist/src/svelte/index.js +1 -1
  144. package/dist/src/svelte/use-eve-agent.js +1 -1
  145. package/dist/src/vue/index.js +1 -1
  146. package/dist/src/vue/use-eve-agent.js +1 -1
  147. package/docs/README.md +21 -20
  148. package/docs/channels/custom.mdx +1 -1
  149. package/docs/channels/overview.mdx +2 -0
  150. package/docs/channels/slack.mdx +2 -0
  151. package/docs/concepts/{execution-model-and-durability.md → execution-model-and-durability.mdx} +16 -0
  152. package/docs/concepts/security-model.md +2 -0
  153. package/docs/concepts/sessions-runs-and-streaming.md +9 -0
  154. package/docs/getting-started.mdx +13 -196
  155. package/docs/guides/auth-and-route-protection.md +20 -0
  156. package/docs/guides/client/overview.mdx +2 -0
  157. package/docs/guides/client/streaming.mdx +15 -0
  158. package/docs/guides/remote-agents.md +31 -8
  159. package/docs/installation.mdx +60 -0
  160. package/docs/meta.json +7 -6
  161. package/docs/project-structure.mdx +53 -0
  162. package/docs/reference/cli.md +1 -1
  163. package/docs/tutorial/meta.json +1 -1
  164. package/package.json +1 -1
  165. package/dist/src/compiled/_chunks/workflow/wrapper-Cc2otuUR.js +0 -6
  166. package/docs/introduction.mdx +0 -103
  167. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/_vendor/partial-json-parser/parser.js +0 -0
  168. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/auth/workload-identity-auth.js +0 -0
  169. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/azure.js +0 -0
  170. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/client.js +0 -0
  171. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/core/api-promise.js +0 -0
  172. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/core/error.js +0 -0
  173. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/core/pagination.js +0 -0
  174. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/core/resource.js +0 -0
  175. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/core/streaming.js +0 -0
  176. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/core/uploads.js +0 -0
  177. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/error.js +0 -0
  178. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/index.js +0 -0
  179. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/decoders/line.js +0 -0
  180. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/detect-platform.js +0 -0
  181. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/errors.js +0 -0
  182. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/headers.js +0 -0
  183. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/parse.js +0 -0
  184. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/qs/formats.js +0 -0
  185. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/qs/stringify.js +0 -0
  186. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/qs/utils.js +0 -0
  187. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/request-options.js +0 -0
  188. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/shims.js +0 -0
  189. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/to-file.js +0 -0
  190. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/tslib.js +0 -0
  191. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/uploads.js +0 -0
  192. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/utils/base64.js +0 -0
  193. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/utils/bytes.js +0 -0
  194. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/utils/env.js +0 -0
  195. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/utils/log.js +0 -0
  196. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/utils/path.js +0 -0
  197. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/utils/query.js +0 -0
  198. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/utils/sleep.js +0 -0
  199. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/utils/uuid.js +0 -0
  200. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/utils/values.js +0 -0
  201. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/internal/utils.js +0 -0
  202. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/lib/AbstractChatCompletionRunner.js +0 -0
  203. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/lib/AssistantStream.js +0 -0
  204. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/lib/ChatCompletionRunner.js +0 -0
  205. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/lib/ChatCompletionStream.js +0 -0
  206. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/lib/ChatCompletionStreamingRunner.js +0 -0
  207. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/lib/EventStream.js +0 -0
  208. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/lib/ResponsesParser.js +0 -0
  209. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/lib/RunnableFunction.js +0 -0
  210. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/lib/Util.js +0 -0
  211. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/lib/chatCompletionUtils.js +0 -0
  212. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/lib/parser.js +0 -0
  213. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/lib/responses/ResponseStream.js +0 -0
  214. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/admin.js +0 -0
  215. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/admin-api-keys.js +0 -0
  216. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/audit-logs.js +0 -0
  217. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/certificates.js +0 -0
  218. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/data-retention.js +0 -0
  219. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/groups/groups.js +0 -0
  220. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/groups/roles.js +0 -0
  221. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/groups/users.js +0 -0
  222. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/invites.js +0 -0
  223. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/organization.js +0 -0
  224. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/api-keys.js +0 -0
  225. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/certificates.js +0 -0
  226. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/data-retention.js +0 -0
  227. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/groups/groups.js +0 -0
  228. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/groups/roles.js +0 -0
  229. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.js +0 -0
  230. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/model-permissions.js +0 -0
  231. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/projects.js +0 -0
  232. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/rate-limits.js +0 -0
  233. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/roles.js +0 -0
  234. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/service-accounts.js +0 -0
  235. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/spend-alerts.js +0 -0
  236. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/users/roles.js +0 -0
  237. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/users/users.js +0 -0
  238. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/roles.js +0 -0
  239. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/spend-alerts.js +0 -0
  240. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/usage.js +0 -0
  241. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/users/roles.js +0 -0
  242. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/admin/organization/users/users.js +0 -0
  243. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/audio/audio.js +0 -0
  244. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/audio/speech.js +0 -0
  245. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/audio/transcriptions.js +0 -0
  246. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/audio/translations.js +0 -0
  247. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/batches.js +0 -0
  248. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/beta/assistants.js +0 -0
  249. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/beta/beta.js +0 -0
  250. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/beta/chatkit/chatkit.js +0 -0
  251. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/beta/chatkit/sessions.js +0 -0
  252. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/beta/chatkit/threads.js +0 -0
  253. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/beta/realtime/realtime.js +0 -0
  254. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/beta/realtime/sessions.js +0 -0
  255. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/beta/realtime/transcription-sessions.js +0 -0
  256. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/beta/threads/messages.js +0 -0
  257. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/beta/threads/runs/runs.js +0 -0
  258. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/beta/threads/runs/steps.js +0 -0
  259. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/beta/threads/threads.js +0 -0
  260. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/chat/chat.js +0 -0
  261. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/chat/completions/completions.js +0 -0
  262. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/chat/completions/index.js +0 -0
  263. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/chat/completions/messages.js +0 -0
  264. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/chat/index.js +0 -0
  265. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/completions.js +0 -0
  266. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/containers/containers.js +0 -0
  267. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/containers/files/content.js +0 -0
  268. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/containers/files/files.js +0 -0
  269. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/conversations/conversations.js +0 -0
  270. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/conversations/items.js +0 -0
  271. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/embeddings.js +0 -0
  272. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/evals/evals.js +0 -0
  273. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/evals/runs/output-items.js +0 -0
  274. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/evals/runs/runs.js +0 -0
  275. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/files.js +0 -0
  276. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/fine-tuning/alpha/alpha.js +0 -0
  277. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/fine-tuning/alpha/graders.js +0 -0
  278. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.js +0 -0
  279. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/fine-tuning/checkpoints/permissions.js +0 -0
  280. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/fine-tuning/fine-tuning.js +0 -0
  281. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/fine-tuning/jobs/checkpoints.js +0 -0
  282. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/fine-tuning/jobs/jobs.js +0 -0
  283. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/fine-tuning/methods.js +0 -0
  284. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/graders/grader-models.js +0 -0
  285. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/graders/graders.js +0 -0
  286. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/images.js +0 -0
  287. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/index.js +0 -0
  288. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/models.js +0 -0
  289. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/moderations.js +0 -0
  290. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/realtime/calls.js +0 -0
  291. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/realtime/client-secrets.js +0 -0
  292. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/realtime/realtime.js +0 -0
  293. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/responses/input-items.js +0 -0
  294. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/responses/input-tokens.js +0 -0
  295. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/responses/responses.js +0 -0
  296. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/shared.js +0 -0
  297. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/skills/content.js +0 -0
  298. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/skills/skills.js +0 -0
  299. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/skills/versions/content.js +0 -0
  300. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/skills/versions/versions.js +0 -0
  301. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/uploads/parts.js +0 -0
  302. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/uploads/uploads.js +0 -0
  303. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/vector-stores/file-batches.js +0 -0
  304. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/vector-stores/files.js +0 -0
  305. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/vector-stores/vector-stores.js +0 -0
  306. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/videos.js +0 -0
  307. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/webhooks/index.js +0 -0
  308. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/webhooks/webhooks.js +0 -0
  309. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/resources/webhooks.js +0 -0
  310. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/streaming.js +0 -0
  311. /package/dist/src/node_modules/.pnpm/{openai@6.39.1_ws@8.21.1_zod@3.25.76 → openai@6.39.1_ws@8.21.1_bufferutil@4.1.0__zod@3.25.76}/node_modules/openai/version.js +0 -0
@@ -38,6 +38,22 @@ export default defineAgent({
38
38
 
39
39
  The world package backs workflow state, queues, hooks, and streams. Keep secrets and deployment-specific options in runtime environment variables read by that package, not in `agent.ts`. Custom worlds must implement the runtime protocol expected by eve's vendored `@workflow/*` packages (currently the `5.0.0-beta` line); the Workflow SDK rejects incompatible protocol versions during initialization. See [Self-host eve](../guides/deployment/self-hosting#persist-workflow-state), [agent.ts](../agent-config#workflow-world), and [Workflow Worlds](https://workflow-sdk.dev/worlds).
40
40
 
41
+ ## Agent loop and sandbox
42
+
43
+ An eve agent spans two execution environments with different responsibilities:
44
+
45
+ <AgentRuntimeDiagram />
46
+
47
+ The agent loop runs as a durable workflow in the app runtime. Model calls, tool executors, hooks, instrumentation, and connection clients also run there with full Node.js access.
48
+
49
+ App-side code reaches the sandbox through `ctx.getSandbox()`. The built-in `bash`, `read_file`, `write_file`, `glob`, and `grep` tools use it, and authored tools can use it when they need isolated filesystem or process access.
50
+
51
+ The [sandbox](../sandbox) owns the per-session filesystem and processes. Authored skills are materialized under `$HOME/.agents/skills`, and `agent/sandbox/workspace/**` seeds `/workspace`. The loop and sandbox have decoupled lifetimes: the durable workflow can park or restart independently, while the app runtime opens or reuses sandbox compute only when code needs it.
52
+
53
+ This split gives the agent a real filesystem and process environment without putting credentials or trusted integration code in model-controlled compute. The workflow can park without holding sandbox compute, while sandbox capacity and backends can change independently of durable orchestration. Because access flows through app-side tools, sandbox work gets the same approval and instrumentation path as any other tool call.
54
+
55
+ Provider keys, tool secrets, and MCP, OpenAPI, and connection credentials stay in the app runtime. When a sandbox process needs authenticated network access, [credential brokering](./security-model#credential-brokering) handles the request without exposing the credential to the process.
56
+
41
57
  ## Resuming after a crash
42
58
 
43
59
  Crash the process, hit a timeout, or redeploy mid-turn, and the run picks up from the last completed step rather than replaying the whole turn. Completed steps never re-run; eve replays the recorded result. A step interrupted mid-execution re-runs, so make non-idempotent side effects like charges or emails idempotent, or gate them with approval.
@@ -20,6 +20,8 @@ The sandbox is the isolated side. The model runs shell commands there through th
20
20
 
21
21
  A concrete trace makes the boundary clear. When the model calls a custom `charge_card` tool, its `execute` runs in the app runtime, reads `process.env.STRIPE_KEY`, calls Stripe, and returns `{ ok: true }`. The model sees only `{ ok: true }`: the key never leaves the app runtime, and nothing about the call touches the sandbox. The built-in `write_file` is the mirror image, running in the app runtime and proxying the write into the sandbox `/workspace`. Either way the model drives the work through tool calls and their results, never by holding a credential or reaching the runtime directly.
22
22
 
23
+ See [Agent loop and sandbox](./execution-model-and-durability#agent-loop-and-sandbox) for how eve connects these contexts while keeping their state and lifetimes separate.
24
+
23
25
  ## Data flow at a glance
24
26
 
25
27
  ```mermaid
@@ -124,6 +124,15 @@ curl "http://127.0.0.1:2000/eve/v1/session/<sessionId>/stream?startIndex=-1"
124
124
 
125
125
  This gives a consumer that only persisted `sessionId` a lightweight way to recover the current `continuationToken`. Because a tail-relative position does not resolve to an absolute consumed-event count, client tail reads do not automatically reconnect or advance the stored cursor.
126
126
 
127
+ For a catch-up read that stops instead of following the live stream, pass `includeTailIndex=1`. The response then carries the `x-eve-stream-tail-index` header: the zero-based index of the last durably recorded event, or `-1` before the first. Read from your cursor until it passes that tail, then disconnect — reconnecting from the updated cursor if the connection drops first:
128
+
129
+ ```bash
130
+ curl -i "http://127.0.0.1:2000/eve/v1/session/<sessionId>/stream?startIndex=<count>&includeTailIndex=1"
131
+ # x-eve-stream-tail-index: <tail>
132
+ ```
133
+
134
+ The lookup is opt-in; requests without the parameter get no header. The TypeScript client wraps this into `stream({ follow: false })`.
135
+
127
136
  ## Use the client from TypeScript
128
137
 
129
138
  For scripts, server-to-server calls, tests, evals, and custom UIs, `eve/client` wraps these routes in a typed client so you don't hand-roll the POST and NDJSON stream loop.
@@ -1,206 +1,23 @@
1
1
  ---
2
2
  title: "Getting Started"
3
- description: "Install eve, scaffold your first agent, give it a tool, and run it locally."
3
+ description: "Create an eve project, learn its filesystem layout, and start adding capabilities."
4
+ contentType: "Landing"
4
5
  ---
5
6
 
6
- eve is a filesystem-first framework for durable agents. You write capabilities under `agent/`, and eve runs the model loop, persists every session, and serves the agent over HTTP and platform channels. You'll scaffold an app, add a tool, run it locally, then create, stream, and continue a session over HTTP.
7
+ eve agents are TypeScript projects. You describe an agent with files under `agent/`, then eve runs it as a durable service.
7
8
 
8
- ## Prerequisites
9
+ ## Start in order
9
10
 
10
- - Node 24 or newer
11
- - npm (bundled with Node)
12
- - A model credential (see below)
11
+ 1. [Install eve](/docs/installation): create a project, configure a model credential, and run it locally
12
+ 2. [Learn the project structure](/docs/project-structure): see which files eve discovers and where each capability belongs
13
+ 3. [Build your first agent](/docs/tutorial/first-agent): add tools, state, and an interface for a useful workflow
13
14
 
14
- The scaffold's default model is `anthropic/claude-sonnet-5`, which routes through the Vercel AI Gateway. Set one of these before you run the agent:
15
+ ## What you need
15
16
 
16
- - A gateway model id needs `AI_GATEWAY_API_KEY`, or a `VERCEL_OIDC_TOKEN` pulled with `vercel link`.
17
- - A direct provider model uses that provider's AI SDK package and API key. For example, `anthropic("claude-...")` from `@ai-sdk/anthropic` needs `ANTHROPIC_API_KEY`.
17
+ - Node.js 24 or newer
18
+ - npm, which Node.js includes
19
+ - A model credential for the model your agent uses
18
20
 
19
- You are responsible for selecting a model, provider, and channel appropriate for your data and use case, and for complying with each provider's terms (as listed per model) and data-processing requirements.
21
+ ## Choose your next step
20
22
 
21
- If you skip this, the dev TUI flags the missing credential and its `/model` command walks you through pasting a key or linking a project.
22
-
23
- ## Quick start
24
-
25
- `npx` runs `eve init` without installing eve first:
26
-
27
- ```bash
28
- npx eve@latest init my-agent
29
- ```
30
-
31
- The command:
32
-
33
- - Creates a child directory using the current workspace or launcher package manager, and uses eve's default model
34
- - Installs dependencies and initializes Git
35
- - When a supported coding-agent REPL (Claude Code, Codex, Cursor, Droid, Gemini CLI, opencode, or Pi) is on `PATH`, asks whether to open an available REPL or start the development server; otherwise starts the server and opens the interactive [terminal UI](./guides/dev-tui)
36
-
37
- Type a message and watch the model loop run. Pass `--channel-web-nextjs` to add the Web Chat application. Every app ships the built-in HTTP channel (`agent/channels/eve.ts`) regardless.
38
-
39
- When you choose one of those REPLs, eve starts it with a project-specific
40
- prompt that guides the setup. The prompt distinguishes `eve dev`, which starts
41
- eve's HMR server and the agent's terminal REPL, from `eve dev --no-ui`, which is
42
- the controllable background mode for verification.
43
-
44
- `eve init` holds the terminal, so stop it with Ctrl+C to get your shell back before editing the generated agent. The command does not create a Vercel project or deploy.
45
-
46
- To add eve to an existing project, run `eve init .` from a directory that already has a `package.json` and no `agent/` files yet. eve adds the missing `eve`, `ai`, and `zod` dependencies without touching anything else the project owns. The eve dependency and the Node engine come from the same release. eve pins `engines.node` to the lowest major that release supports (for example `24.x`). It keeps an existing range only when every version that range allows stays within that major; otherwise it replaces the range and prints a warning.
47
-
48
- ## Manual installation
49
-
50
- To wire eve into an existing app by hand instead of using `eve init`, first declare a compatible Node runtime in `package.json`:
51
-
52
- ```json
53
- {
54
- "engines": {
55
- "node": "24.x"
56
- }
57
- }
58
- ```
59
-
60
- Then install the dependencies and author the two files the runtime needs. The `eve init` scaffold adds `ai` and `zod` for you; by hand you install all three:
61
-
62
- ```bash
63
- npm install eve@latest ai zod
64
- ```
65
-
66
- ### Project files
67
-
68
- A minimal agent is two files; you add tools as you need them.
69
-
70
- `agent/instructions.md` is the always-on system prompt:
71
-
72
- ```md
73
- You are a concise assistant. Use tools when they are available.
74
- ```
75
-
76
- `agent/agent.ts` holds runtime config:
77
-
78
- ```ts
79
- import { defineAgent } from "eve";
80
-
81
- export default defineAgent({
82
- model: "anthropic/claude-sonnet-5",
83
- });
84
- ```
85
-
86
- Before using real customer data, confirm the selected model provider's terms, routing path, and retention settings are appropriate for that data.
87
-
88
- Even at this size the agent can already do real work. The default harness gives it file, shell, web, and delegation tools out of the box. See [Default harness](./concepts/default-harness) for the full set and how to override or disable any of them.
89
-
90
- ### Add your first tool
91
-
92
- The filename becomes the tool name the model sees, and it must be snake_case ASCII. Create `agent/tools/get_weather.ts`:
93
-
94
- ```ts
95
- import { defineTool } from "eve/tools";
96
- import { z } from "zod";
97
-
98
- // The model sees this tool as `get_weather`, from the filename.
99
- export default defineTool({
100
- description: "Get the current weather for a city.",
101
- inputSchema: z.object({ city: z.string().min(1) }),
102
- async execute({ city }) {
103
- return { city, condition: "Sunny", temperatureF: 72 };
104
- },
105
- });
106
- ```
107
-
108
- Tools run in your app runtime with full `process.env`, not inside the [sandbox](./sandbox). More in [Tools](./tools).
109
-
110
- ## Run the app
111
-
112
- A scaffolded app has a `dev` script, so from the app root run:
113
-
114
- ```bash
115
- npm run dev
116
- ```
117
-
118
- The manual path authors no `dev` script. Run the binary through `npx` instead:
119
-
120
- ```bash
121
- npx eve dev
122
- ```
123
-
124
- Other commands the eve binary provides (prefix each with `npx`, or add a matching package.json script):
125
-
126
- - `eve info`: show the active routes and compiled artifacts
127
- - `eve build`: compile the agent into `.eve/` and build the host output
128
- - `eve start`: serve the built output
129
- - `eve dev`: start the local runtime and open the interactive [terminal UI](./guides/dev-tui)
130
-
131
- In the dev TUI, type a message and watch it happen in order. First the `get_weather` call, then its result, then the reply.
132
-
133
- The same CLI can point at a deployment. `npx eve dev https://your-app.vercel.app` drives a deployed app, which is handy for preview and production smoke tests. See [Deployment](./guides/deployment/overview).
134
-
135
- ## Send a message
136
-
137
- Every eve app exposes the same stable HTTP API. Start a durable session:
138
-
139
- ```bash
140
- curl -X POST http://127.0.0.1:2000/eve/v1/session \
141
- -H 'content-type: application/json' \
142
- -d '{"message":"What is the weather in Brooklyn?"}'
143
- ```
144
-
145
- The response comes back with two things you'll reuse:
146
-
147
- - a `continuationToken` in the JSON body, to resume this conversation
148
- - an `x-eve-session-id` header that identifies the run to stream
149
-
150
- ## Stream the session
151
-
152
- Attach to the session stream:
153
-
154
- ```bash
155
- curl http://127.0.0.1:2000/eve/v1/session/<sessionId>/stream
156
- ```
157
-
158
- The stream is NDJSON, served as `application/x-ndjson; charset=utf-8`. For this run you'll see a handful of lifecycle events:
159
-
160
- - `session.started`
161
- - `actions.requested` (the `get_weather` call)
162
- - `action.result`
163
- - `message.completed` (the reply)
164
- - `session.completed`
165
-
166
- `reasoning.appended` and `message.appended` are optional live-streaming events. Clients that can't surface incremental output can ignore them and rely on `reasoning.completed` and `message.completed`.
167
-
168
- Note: consider the privacy, confidentiality, and user-experience implications for displaying, storing, or transmitting reasoning events in your application.
169
-
170
- The full set covers more lifecycle, human-in-the-loop, and authorization events, including `input.requested`, `turn.failed`, `authorization.required`, and `authorization.completed`. See [Sessions, runs and streaming](./concepts/sessions-runs-and-streaming) for every event and its data shape.
171
-
172
- ## Send a follow-up message
173
-
174
- When the session is waiting for the next user message, post a follow-up with the token:
175
-
176
- ```bash
177
- curl -X POST http://127.0.0.1:2000/eve/v1/session/<sessionId> \
178
- -H 'content-type: application/json' \
179
- -d '{"continuationToken":"<token>","message":"Now do Queens."}'
180
- ```
181
-
182
- See [Sessions, runs and streaming](./concepts/sessions-runs-and-streaming) for the full contract.
183
-
184
- ## Setting up with a coding agent
185
-
186
- If a coding agent (Claude Code, Cursor, and the like) is doing the setup, hand it this prompt:
187
-
188
- <CopyPrompt text="Set up an eve agent for the user. eve is a filesystem-first TypeScript framework for durable agents, published as the npm package eve. Read its docs: once eve is installed they are bundled in the package at node_modules/eve/docs; before eve is installed, read the published Introduction and Getting Started pages. If the project has no eve app, scaffold one with `npx eve@latest init <name>`; add `--channel-web-nextjs` only when the user wants Web Chat. In a coding-agent launch, init installs dependencies and prints the project-specific dev command instead of starting the interactive terminal UI. A fresh project also initializes Git; an existing app keeps its repository and scripts. To add eve to an existing app, run `eve init .`, or install the dependencies by hand with `npm install eve@latest ai zod` (init adds ai and zod; the by-hand path needs all three). Make sure agent/agent.ts and agent/instructions.md exist, then add a first typed tool at agent/tools/get_weather.ts using defineTool from eve/tools with a Zod inputSchema and an inline execute. Start eve in a controllable background process with `npx eve dev --no-ui`, wait for the server URL, then exercise the HTTP API: create a session with POST /eve/v1/session, attach to GET /eve/v1/session/:id/stream, and send a follow-up with the returned continuationToken. Stop the dev process after verification. Verify with the project's typecheck, adapt model and provider choices to the project, and do not commit unless the user asks.">
189
- Set up an eve agent: read the eve docs (bundled at node_modules/eve/docs once eve is
190
- installed), scaffold with `npx eve@latest init <name>` (or `npm install eve@latest ai zod` in an existing app), add
191
- a typed tool at agent/tools/get_weather.ts, run it with `npx eve dev --no-ui`, then create a session, stream
192
- it, and send a follow-up.
193
- </CopyPrompt>
194
-
195
- Once `eve` is a dependency, the package bundles the full docs, so the agent can read them locally at `node_modules/eve/docs/` without fetching anything.
196
-
197
- To add a platform channel after setup, run `eve channels add slack` from an interactive terminal. The init flags are covered in [Quick start](#quick-start).
198
-
199
- ## What to read next
200
-
201
- - [Instructions](./instructions) and [Tools](./tools): the core building blocks
202
- - [Channels](./channels/overview): reach the agent from Slack, Discord, or a web UI
203
- - [Frontend](./guides/frontend/overview): browser chat with `useEveAgent`
204
- - [TypeScript SDK](./guides/client/overview): call the agent from scripts or server-side code
205
- - [Sessions, runs and streaming](./concepts/sessions-runs-and-streaming): the durable session model
206
- - [Build an agent](./tutorial/first-agent): the full end-to-end walkthrough
23
+ Start with [Installation](/docs/installation) when you need a new project. Read [Project structure](/docs/project-structure) when you already have an eve project or want to add a capability.
@@ -220,6 +220,26 @@ You do not have to keep `vercelOidc()` in the final policy. For a self-hosted ap
220
220
 
221
221
  Keep secret values (`ROUTE_AUTH_BASIC_PASSWORD`, signing keys) in environment variables. Route-auth secrets never land in compiled artifacts. The runtime re-materializes them from the authored channel definition at boot.
222
222
 
223
+ ## Accepting forwarded identity from another deployment
224
+
225
+ A `defineRemoteAgent({ forwardPrincipal: true })` caller (see [Remote agents](./remote-agents#forwarding-the-caller-identity)) asserts its end user's principal on the create-session request as a `forwardedPrincipal` body field. By default every such assertion is rejected with `403` — accepting someone else's word for who the user is requires naming exactly which forwarders you trust. Do that with `trustedForwarders` on `eveChannel`:
226
+
227
+ ```ts title="agent/channels/eve.ts"
228
+ import { eveChannel } from "eve/channels/eve";
229
+ import { vercelOidc, vercelSubject } from "eve/channels/auth";
230
+
231
+ export default eveChannel({
232
+ auth: [vercelOidc()],
233
+ // Only the router deployment may assert a forwarded principal.
234
+ trustedForwarders: (forwarder) =>
235
+ forwarder.subject === vercelSubject({ teamSlug: "acme", projectName: "router" }),
236
+ });
237
+ ```
238
+
239
+ The predicate authorizes the _forwarder_ (the verified route-auth principal — who is asserting), not the forwarded principal (what is asserted). Match it precisely: a permissive predicate like `() => true` lets any caller that passes route auth assert any principal, including preview deployments of your own project when `vercelOidc()` is in the walk. `trustedForwarders` exists only on your authored channel — the framework default channel never accepts a forwarded principal, so a receiving deployment must author `agent/channels/eve.ts`.
240
+
241
+ When the predicate accepts, the forwarded principal replaces the session principal: `ctx.session.auth.current` and `.initiator` carry the forwarded user exactly as if they had called your deployment directly, so user-scoped connections, local subagents, and further `forwardPrincipal` hops all see that user. The forwarder is recorded on the accepted contexts as the `eve:forwarded-by` attribute (always overwritten by the receiver, so a forwarder cannot falsify it). Rejections fail loud: a forwarded body without `trustedForwarders` configured or with a forwarder the predicate refuses is a `403`, and a malformed payload is a `400`. Only principal metadata is ever accepted — tokens and credentials never cross the hop.
242
+
223
243
  ## What reaches `ctx.session.auth`
224
244
 
225
245
  Inside runtime code, `ctx.session.auth` carries the result of the channel's route auth (the walk above) forward as the caller snapshot:
@@ -108,6 +108,8 @@ const response = await session.send({
108
108
  await response.result();
109
109
  ```
110
110
 
111
+ Per-request headers override client-level values with the same name. For example, a turn can set its application user's `Authorization` header while `vercelOidc` continues to send the deployment-protection credential in `x-vercel-trusted-oidc-idp-token`.
112
+
111
113
  ## Sessions
112
114
 
113
115
  Create a `ClientSession` for each conversation:
@@ -157,6 +157,21 @@ for await (const event of session.stream({ startIndex: -1 })) {
157
157
 
158
158
  Tail-relative attachments do not automatically reconnect or advance the session's stored absolute `streamIndex`. Break after the event you need when using one as a tail lookup.
159
159
 
160
+ ## Bounded catch-up reads
161
+
162
+ Pass `follow: false` to read from the cursor to the durable tail and then stop, instead of following the live stream (the default):
163
+
164
+ ```ts
165
+ for await (const event of session.stream({ follow: false })) {
166
+ console.log(event.type);
167
+ }
168
+ // Returns once every event recorded before the stream opened is consumed.
169
+ ```
170
+
171
+ The first connection pins the bound to the tail the server reports at open time; events recorded afterward are not part of the read. Reconnects during the read keep that original bound, and the session's stored `streamIndex` still advances past the consumed events, so a follow-up `stream()` or `send()` picks up exactly where the bounded read ended. When the cursor is already at or past the tail, the iterator returns immediately without yielding.
172
+
173
+ Because a tail-relative cursor cannot be bounded, `follow: false` throws when combined with a negative `startIndex`. It also fails if the server does not report the durable tail (an agent running an older eve version).
174
+
160
175
  `stream()` throws if the session has no `sessionId`, because there's no stream to attach to before the first send.
161
176
 
162
177
  ## Abort a request
@@ -20,14 +20,15 @@ export default defineRemoteAgent({
20
20
 
21
21
  `defineRemoteAgent` accepts:
22
22
 
23
- | Parameter | Type | Required | Default | Description |
24
- | -------------- | --------------------------------------------- | -------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
25
- | `url` | `string \| (() => string \| Promise<string>)` | Yes | n/a | Base URL of the remote eve deployment to call. A string is baked at compile time; a function is resolved at runtime (see [Runtime URLs](#runtime-urls)). |
26
- | `description` | `string` | Yes | n/a | Model-visible delegation description. |
27
- | `auth` | `OutboundAuthFn` | No | none | Outbound auth hook from `eve/agents/auth`. |
28
- | `headers` | `HeadersValue` | No | none | Static or lazily resolved request headers. |
29
- | `path` | `string` | No | `/eve/v1/session` | Route appended to `url` for the create-session request. |
30
- | `outputSchema` | `StandardSchema \| JSON Schema` | No | none | Structured return type the caller requires. Lowered to JSON Schema at compile time and enforced by the remote like any task-mode output schema. |
23
+ | Parameter | Type | Required | Default | Description |
24
+ | ------------------ | --------------------------------------------- | -------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
25
+ | `url` | `string \| (() => string \| Promise<string>)` | Yes | n/a | Base URL of the remote eve deployment to call. A string is baked at compile time; a function is resolved at runtime (see [Runtime URLs](#runtime-urls)). |
26
+ | `description` | `string` | Yes | n/a | Model-visible delegation description. |
27
+ | `auth` | `OutboundAuthFn` | No | none | Outbound auth hook from `eve/agents/auth`. |
28
+ | `forwardPrincipal` | `boolean` | No | `false` | Forward the dispatching turn's session principal to the remote deployment (see [Forwarding the caller identity](#forwarding-the-caller-identity)). |
29
+ | `headers` | `HeadersValue` | No | none | Static or lazily resolved request headers. |
30
+ | `path` | `string` | No | `/eve/v1/session` | Route appended to `url` for the create-session request. |
31
+ | `outputSchema` | `StandardSchema \| JSON Schema` | No | none | Structured return type the caller requires. Lowered to JSON Schema at compile time and enforced by the remote like any task-mode output schema. |
31
32
 
32
33
  ## Runtime URLs
33
34
 
@@ -60,6 +61,28 @@ A remote agent lowers to the same `{ message, outputSchema? }` tool shape as a l
60
61
 
61
62
  If you are calling another Vercel-deployed eve agent, reach for `vercelOidc()`. The remote verifies the OIDC token to authorize the caller. See [Auth & route protection](./auth-and-route-protection) for the receiving side.
62
63
 
64
+ ## Forwarding the caller identity
65
+
66
+ Outbound auth authenticates your _deployment_ to the remote, so by default the remote session runs as your calling app — not as the end user who is talking to your agent. That breaks per-user workloads on the remote deployment, most directly per-user [Vercel Connect](./auth-and-route-protection#tool-and-connection-auth), which requires an authenticated `user` principal on the session.
67
+
68
+ Set `forwardPrincipal: true` to forward the dispatching turn's session principal across the hop:
69
+
70
+ ```ts title="agent/subagents/site-ops.ts"
71
+ import { defineRemoteAgent } from "eve";
72
+ import { vercelOidc } from "eve/agents/auth";
73
+
74
+ export default defineRemoteAgent({
75
+ url: "https://site-ops.example.com",
76
+ description: "Executes site operations as the requesting user.",
77
+ auth: vercelOidc(), // transport trust: authenticates *this* deployment
78
+ forwardPrincipal: true, // identity: asserts the current session principal
79
+ });
80
+ ```
81
+
82
+ The create-session request then carries the parent turn's `session.auth.current` and `session.auth.initiator` as a `forwardedPrincipal` body field (`initiator` is optional on the wire; when absent, the receiver seeds both from `current`). Only principal metadata crosses the wire — never tokens or credentials. The receiving deployment mints its own per-user credentials through its own connections.
83
+
84
+ Forwarding is explicit on both sides. The receiver names which forwarders it trusts with `eveChannel({ trustedForwarders })` (see [Auth & route protection](./auth-and-route-protection#accepting-forwarded-identity-from-another-deployment)); a receiver that refuses the forwarder — or has no `trustedForwarders` at all — rejects with a 403 and the dispatch fails. One caveat: a receiver on an eve version that predates principal forwarding drops the unknown field and runs the session as your app's service identity (per-user connections there fail with `principal_required`), so upgrade both deployments together when enabling forwarding. When the dispatching turn has no auth at all, the field is omitted and the call proceeds on transport trust alone.
85
+
63
86
  ## How remote dispatch and callbacks work
64
87
 
65
88
  A local subagent runs inline. A remote one runs in its own deployment, so dispatch is asynchronous:
@@ -0,0 +1,60 @@
1
+ ---
2
+ title: "Installation"
3
+ description: "Create an eve project, configure a model credential, and run it locally."
4
+ contentType: "How-to"
5
+ ---
6
+
7
+ Create an eve project with `eve init`. The scaffold installs dependencies, creates the agent files, and starts the local development server.
8
+
9
+ ## Configure a model credential
10
+
11
+ The default scaffolded model routes through the Vercel AI Gateway. Set `AI_GATEWAY_API_KEY`, or link a Vercel project to use `VERCEL_OIDC_TOKEN`.
12
+
13
+ You can also use a direct provider model. Install its AI SDK provider package and set that provider's API key before you run the agent.
14
+
15
+ Choose a model, provider, and channel that meet your data-processing and compliance requirements.
16
+
17
+ ## Create a project
18
+
19
+ Run `eve init` with a project name:
20
+
21
+ ```bash
22
+ npx eve@latest init my-agent
23
+ ```
24
+
25
+ The command creates `my-agent/`, installs dependencies, initializes Git, and starts eve's development server. If a supported coding-agent REPL is available, eve offers to open it instead.
26
+
27
+ ## Run the agent
28
+
29
+ From the project root, run the generated development command:
30
+
31
+ ```bash
32
+ cd my-agent
33
+ npm run dev
34
+ ```
35
+
36
+ The terminal UI sends messages to your agent. Stop the server with Ctrl+C when you need your shell for another command.
37
+
38
+ ## Add eve to an existing project
39
+
40
+ Run `eve init .` from a project with a `package.json` and no existing `agent/` files:
41
+
42
+ ```bash
43
+ npx eve@latest init .
44
+ ```
45
+
46
+ eve adds the missing `eve`, `ai`, and `zod` dependencies without changing files the project already owns.
47
+
48
+ ## Install manually
49
+
50
+ Install the runtime dependencies when you do not want to use the scaffold:
51
+
52
+ ```bash
53
+ npm install eve@latest ai zod
54
+ ```
55
+
56
+ Declare Node.js 24 in `package.json`, then create `agent/agent.ts` and `agent/instructions.md`. [Project structure](/docs/project-structure) shows the required layout, and [`agent.ts`](./agent-config) documents the runtime configuration.
57
+
58
+ ## Continue building
59
+
60
+ Read [Project structure](/docs/project-structure) before adding instructions, tools, connections, or channels.
package/docs/meta.json CHANGED
@@ -1,8 +1,10 @@
1
1
  {
2
2
  "pages": [
3
- "introduction",
3
+ "---Getting Started---",
4
4
  "getting-started",
5
- "---",
5
+ "installation",
6
+ "project-structure",
7
+ "---Build Your Agent---",
6
8
  "agent-config",
7
9
  "instructions",
8
10
  "tools",
@@ -14,12 +16,11 @@
14
16
  "subagents",
15
17
  "schedules",
16
18
  "evals",
17
- "---",
19
+ "---Learn More---",
20
+ "tutorial",
18
21
  "guides",
19
22
  "concepts",
20
23
  "patterns",
21
- "---",
22
- "reference",
23
- "tutorial"
24
+ "reference"
24
25
  ]
25
26
  }
@@ -0,0 +1,53 @@
1
+ ---
2
+ title: "Project Structure"
3
+ description: "Learn the files eve discovers and how their paths define agent capabilities."
4
+ contentType: "Conceptual"
5
+ ---
6
+
7
+ eve builds an agent from files under `agent/`. A file's location determines what eve loads, and most paths also determine the capability's name.
8
+
9
+ ## Start with two files
10
+
11
+ A minimal agent needs an instructions file and optional runtime configuration:
12
+
13
+ ```text
14
+ my-agent/
15
+ ├── package.json
16
+ ├── agent/
17
+ │ ├── agent.ts
18
+ │ └── instructions.md
19
+ └── evals/
20
+ ```
21
+
22
+ `agent/instructions.md` is the agent's always-on system prompt. `agent/agent.ts` selects the model and configures runtime behavior. Omit `agent.ts` when the defaults are sufficient.
23
+
24
+ ## Add capabilities as directories
25
+
26
+ Add a directory when the agent needs that capability:
27
+
28
+ | Path | Purpose |
29
+ | ----------------------------------- | --------------------------------------------- |
30
+ | [`tools/`](./tools) | Typed functions the model can call |
31
+ | [`skills/`](./skills) | Procedures the model loads when useful |
32
+ | [`channels/`](./channels/overview) | HTTP and messaging entry points |
33
+ | [`connections/`](/docs/connections) | MCP and OpenAPI services |
34
+ | [`sandbox/`](./sandbox) | Controlled workspace files and commands |
35
+ | [`subagents/`](./subagents) | Specialist agents the root agent delegates to |
36
+ | [`schedules/`](./schedules) | Recurring work |
37
+ | `lib/` | Shared code imported by agent files |
38
+
39
+ The `evals/` directory sits beside `agent/`. It holds the checks that measure whether the agent completes its tasks. See [Evals](./evals/overview).
40
+
41
+ ## Let paths name capabilities
42
+
43
+ The path supplies the name. This tool file becomes the `get_weather` tool:
44
+
45
+ ```text
46
+ agent/tools/get_weather.ts
47
+ ```
48
+
49
+ The same rule applies to connections, skills, and subagents. You do not add a duplicate `name` or `id` field to the definition.
50
+
51
+ ## Use the full layout reference
52
+
53
+ [Project layout](./reference/project-layout) lists every supported slot, the root and subagent boundaries, and the file-discovery rules.
@@ -240,7 +240,7 @@ See [Evals](../evals/overview) for authoring evals.
240
240
  eve channels add [kind] [-f] [-y]
241
241
  ```
242
242
 
243
- Scaffolds a channel into `agent/channels/`. With no `kind` it prompts interactively; pass a `kind` (`slack` \| `web`) to scaffold one directly.
243
+ Scaffolds a channel into `agent/channels/`. With no `kind` it prompts interactively; pass a `kind` (`slack` \| `web`) to scaffold one directly. When the Vercel CLI has an authenticated session, eve scaffolds the Vercel-integrated variant and asks whether to deploy after setup. Without one, Slack setup asks whether to set up Vercel Connect or use portable credentials. The portable variant reads `SLACK_BOT_TOKEN` and `SLACK_SIGNING_SECRET` and adds both names to `.env.example`.
244
244
 
245
245
  | Flag | Type | Default | Description |
246
246
  | ------------- | ---- | ------- | --------------------------------------------------------- |
@@ -1,5 +1,5 @@
1
1
  {
2
- "title": "Build an Agent",
2
+ "title": "Tutorial",
3
3
  "pages": [
4
4
  "first-agent",
5
5
  "how-it-runs",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eve",
3
- "version": "0.27.5",
3
+ "version": "0.27.7",
4
4
  "private": false,
5
5
  "description": "Filesystem-first framework for durable backend AI agents that run anywhere.",
6
6
  "keywords": [