eve 0.6.0-beta.8 → 0.7.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 (588) hide show
  1. package/CHANGELOG.md +278 -0
  2. package/README.md +9 -6
  3. package/dist/docs/public/README.md +1 -1
  4. package/dist/docs/public/advanced/auth-and-route-protection.md +3 -1
  5. package/dist/docs/public/advanced/default-harness.md +2 -2
  6. package/dist/docs/public/advanced/dev-tui.md +9 -11
  7. package/dist/docs/public/advanced/instrumentation.md +1 -1
  8. package/dist/docs/public/advanced/meta.json +0 -1
  9. package/dist/docs/public/advanced/security-model.md +1 -1
  10. package/dist/docs/public/advanced/session-context.md +1 -1
  11. package/dist/docs/public/agent-config.md +6 -3
  12. package/dist/docs/public/channels/eve.mdx +1 -1
  13. package/dist/docs/public/channels/slack.mdx +14 -2
  14. package/dist/docs/public/connections.mdx +3 -1
  15. package/dist/docs/public/evals/assertions.mdx +108 -0
  16. package/dist/docs/public/evals/cases.mdx +143 -0
  17. package/dist/docs/public/evals/judge.mdx +94 -0
  18. package/dist/docs/public/evals/meta.json +4 -0
  19. package/dist/docs/public/evals/overview.mdx +118 -0
  20. package/dist/docs/public/evals/reporters.mdx +62 -0
  21. package/dist/docs/public/evals/running.mdx +63 -0
  22. package/dist/docs/public/evals/targets.mdx +54 -0
  23. package/dist/docs/public/frontend/nextjs.mdx +13 -4
  24. package/dist/docs/public/frontend/nuxt.mdx +4 -4
  25. package/dist/docs/public/frontend/sveltekit.mdx +2 -2
  26. package/dist/docs/public/getting-started.mdx +25 -13
  27. package/dist/docs/public/meta.json +1 -0
  28. package/dist/docs/public/reference/cli.md +31 -9
  29. package/dist/docs/public/reference/typescript-api.md +6 -2
  30. package/dist/docs/public/sandbox.mdx +3 -1
  31. package/dist/docs/public/tools.mdx +0 -4
  32. package/dist/docs/public/tutorial/connect-a-warehouse.mdx +1 -1
  33. package/dist/docs/public/tutorial/first-agent.mdx +5 -2
  34. package/dist/src/chunks/{use-eve-agent-DCZbkLG7.js → use-eve-agent-DErQj5hs.js} +125 -37
  35. package/dist/src/chunks/{use-eve-agent-DoheC4_o.js → use-eve-agent-DoR8C4i6.js} +125 -37
  36. package/dist/src/cli/banner.d.ts +7 -0
  37. package/dist/src/cli/banner.js +1 -0
  38. package/dist/src/cli/commands/channel-add-conflicts.d.ts +1 -1
  39. package/dist/src/cli/commands/channels.d.ts +9 -6
  40. package/dist/src/cli/commands/channels.js +1 -1
  41. package/dist/src/cli/commands/deploy.d.ts +21 -0
  42. package/dist/src/cli/commands/deploy.js +1 -0
  43. package/dist/src/cli/commands/init-git.d.ts +15 -0
  44. package/dist/src/cli/commands/init-git.js +1 -0
  45. package/dist/src/cli/commands/init.d.ts +29 -0
  46. package/dist/src/cli/commands/init.js +1 -0
  47. package/dist/src/cli/commands/link.d.ts +21 -0
  48. package/dist/src/cli/commands/link.js +1 -0
  49. package/dist/src/cli/commands/preconditions.d.ts +7 -0
  50. package/dist/src/cli/commands/preconditions.js +1 -0
  51. package/dist/src/cli/commands/register-project-commands.d.ts +12 -0
  52. package/dist/src/cli/commands/register-project-commands.js +1 -0
  53. package/dist/src/cli/dev/tui/agent-header.d.ts +15 -9
  54. package/dist/src/cli/dev/tui/agent-header.js +1 -1
  55. package/dist/src/cli/dev/tui/blocks.d.ts +1 -1
  56. package/dist/src/cli/dev/tui/blocks.js +3 -2
  57. package/dist/src/cli/dev/tui/command-typeahead.d.ts +47 -0
  58. package/dist/src/cli/dev/tui/command-typeahead.js +1 -0
  59. package/dist/src/cli/dev/tui/dev-rebuild-status.d.ts +21 -0
  60. package/dist/src/cli/dev/tui/dev-rebuild-status.js +1 -0
  61. package/dist/src/cli/dev/tui/errors.d.ts +18 -0
  62. package/dist/src/cli/dev/tui/errors.js +1 -1
  63. package/dist/src/cli/dev/tui/prompt-command-handler.d.ts +14 -0
  64. package/dist/src/cli/dev/tui/prompt-command-handler.js +1 -0
  65. package/dist/src/cli/dev/tui/prompt-commands.d.ts +54 -0
  66. package/dist/src/cli/dev/tui/prompt-commands.js +2 -0
  67. package/dist/src/cli/dev/tui/runner.d.ts +62 -5
  68. package/dist/src/cli/dev/tui/runner.js +1 -1
  69. package/dist/src/cli/dev/tui/setup-commands.d.ts +48 -0
  70. package/dist/src/cli/dev/tui/setup-commands.js +2 -0
  71. package/dist/src/cli/dev/tui/setup-flow.d.ts +35 -0
  72. package/dist/src/cli/dev/tui/setup-issues.d.ts +40 -0
  73. package/dist/src/cli/dev/tui/setup-issues.js +1 -0
  74. package/dist/src/cli/dev/tui/setup-panel.d.ts +103 -0
  75. package/dist/src/cli/dev/tui/setup-panel.js +1 -0
  76. package/dist/src/cli/dev/tui/status-line.d.ts +25 -0
  77. package/dist/src/cli/dev/tui/status-line.js +1 -0
  78. package/dist/src/cli/dev/tui/stream-format.d.ts +16 -1
  79. package/dist/src/cli/dev/tui/stream-format.js +1 -1
  80. package/dist/src/cli/dev/tui/terminal-renderer.d.ts +32 -3
  81. package/dist/src/cli/dev/tui/terminal-renderer.js +5 -2
  82. package/dist/src/cli/dev/tui/test/index.d.ts +3 -1
  83. package/dist/src/cli/dev/tui/test/index.js +1 -1
  84. package/dist/src/cli/dev/tui/test/mock-terminal.d.ts +1 -0
  85. package/dist/src/cli/dev/tui/test/mock-terminal.js +1 -1
  86. package/dist/src/cli/dev/tui/theme.d.ts +10 -0
  87. package/dist/src/cli/dev/tui/theme.js +1 -1
  88. package/dist/src/cli/dev/tui/tui-prompter.d.ts +20 -0
  89. package/dist/src/cli/dev/tui/tui-prompter.js +1 -0
  90. package/dist/src/cli/dev/tui/tui.d.ts +6 -8
  91. package/dist/src/cli/dev/tui/tui.js +1 -1
  92. package/dist/src/cli/dev/tui/types.d.ts +4 -3
  93. package/dist/src/cli/dev/tui/vercel-status.d.ts +47 -0
  94. package/dist/src/cli/dev/tui/vercel-status.js +1 -0
  95. package/dist/src/cli/run.d.ts +12 -19
  96. package/dist/src/cli/run.js +2 -2
  97. package/dist/src/client/client.d.ts +8 -0
  98. package/dist/src/client/client.js +1 -1
  99. package/dist/src/client/file-parts.d.ts +18 -0
  100. package/dist/src/client/file-parts.js +1 -0
  101. package/dist/src/client/index.d.ts +3 -2
  102. package/dist/src/client/index.js +1 -1
  103. package/dist/src/client/message-response.js +1 -1
  104. package/dist/src/client/open-stream.d.ts +6 -0
  105. package/dist/src/client/open-stream.js +1 -1
  106. package/dist/src/client/session-utils.d.ts +5 -0
  107. package/dist/src/client/session-utils.js +1 -1
  108. package/dist/src/client/session.js +1 -1
  109. package/dist/src/client/types.d.ts +9 -2
  110. package/dist/src/compiled/.vendor-stamp.json +8 -8
  111. package/dist/src/compiled/@ai-sdk/anthropic/index.d.ts +56 -31
  112. package/dist/src/compiled/@ai-sdk/anthropic/index.js +2 -2
  113. package/dist/src/compiled/@ai-sdk/google/index.js +1 -1
  114. package/dist/src/compiled/@ai-sdk/mcp/index.js +1 -1
  115. package/dist/src/compiled/@ai-sdk/openai/index.d.ts +16 -9
  116. package/dist/src/compiled/@ai-sdk/openai/index.js +2 -2
  117. package/dist/src/compiled/@ai-sdk/otel/index.js +2 -2
  118. package/dist/src/compiled/@vercel/sandbox/index.js +1 -1
  119. package/dist/src/compiled/@workflow/core/index.js +2 -2
  120. package/dist/src/compiled/@workflow/core/runtime/helpers.d.ts +4 -2
  121. package/dist/src/compiled/@workflow/core/runtime/wait-until.d.ts +18 -0
  122. package/dist/src/compiled/@workflow/core/runtime.d.ts +3 -1
  123. package/dist/src/compiled/@workflow/core/runtime.js +28 -28
  124. package/dist/src/compiled/@workflow/core/serialization.d.ts +41 -0
  125. package/dist/src/compiled/@workflow/core/util.d.ts +0 -5
  126. package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
  127. package/dist/src/compiled/@workflow/core/workflow.js +1 -1
  128. package/dist/src/compiled/@workflow/world/index.d.ts +2 -2
  129. package/dist/src/compiled/@workflow/world/queue.d.ts +28 -2
  130. package/dist/src/compiled/_chunks/workflow/{dist-gEXVSMPU.js → dist-CkMRLaRV.js} +1 -1
  131. package/dist/src/compiled/_chunks/workflow/functions-DuPjIvMH.js +1 -0
  132. package/dist/src/compiled/_chunks/workflow/resume-hook-CEAS3opc.js +12 -0
  133. package/dist/src/compiled/_chunks/workflow/sleep-Cup6vPoA.js +1 -0
  134. package/dist/src/compiled/_chunks/workflow/{symbols-BWCAoPHE.js → symbols-BUTtwS7j.js} +1 -1
  135. package/dist/src/compiled/just-bash/index.d.ts +27 -4
  136. package/dist/src/compiler/artifacts.js +1 -1
  137. package/dist/src/compiler/manifest.d.ts +8 -8
  138. package/dist/src/compiler/normalize-agent-config.d.ts +0 -10
  139. package/dist/src/compiler/normalize-agent-config.js +1 -1
  140. package/dist/src/compiler/normalize-channel.d.ts +2 -1
  141. package/dist/src/compiler/normalize-channel.js +1 -1
  142. package/dist/src/compiler/normalize-connection.d.ts +2 -1
  143. package/dist/src/compiler/normalize-connection.js +1 -1
  144. package/dist/src/compiler/normalize-helpers.d.ts +5 -0
  145. package/dist/src/compiler/normalize-helpers.js +1 -1
  146. package/dist/src/compiler/normalize-instructions.d.ts +3 -2
  147. package/dist/src/compiler/normalize-instructions.js +1 -1
  148. package/dist/src/compiler/normalize-manifest.js +2 -2
  149. package/dist/src/compiler/normalize-sandbox.d.ts +2 -1
  150. package/dist/src/compiler/normalize-sandbox.js +1 -1
  151. package/dist/src/compiler/normalize-schedule.d.ts +2 -1
  152. package/dist/src/compiler/normalize-schedule.js +1 -1
  153. package/dist/src/compiler/normalize-skill.d.ts +2 -1
  154. package/dist/src/compiler/normalize-skill.js +1 -1
  155. package/dist/src/compiler/normalize-subagent.d.ts +4 -1
  156. package/dist/src/compiler/normalize-subagent.js +1 -1
  157. package/dist/src/compiler/normalize-tool.d.ts +2 -1
  158. package/dist/src/compiler/normalize-tool.js +1 -1
  159. package/dist/src/compiler/workspace-resources.js +1 -1
  160. package/dist/src/context/node.d.ts +1 -1
  161. package/dist/src/evals/assertions/collector.d.ts +43 -0
  162. package/dist/src/evals/assertions/collector.js +1 -0
  163. package/dist/src/evals/assertions/run.d.ts +72 -0
  164. package/dist/src/evals/assertions/run.js +2 -0
  165. package/dist/src/evals/autoevals-client.js +2 -0
  166. package/dist/src/evals/cli/eval-client.d.ts +22 -0
  167. package/dist/src/evals/cli/eval-client.js +1 -0
  168. package/dist/src/evals/cli/eval.d.ts +12 -3
  169. package/dist/src/evals/cli/eval.js +1 -1
  170. package/dist/src/evals/context.d.ts +19 -0
  171. package/dist/src/evals/context.js +1 -0
  172. package/dist/src/evals/define-eval-config.d.ts +16 -0
  173. package/dist/src/evals/define-eval-config.js +1 -0
  174. package/dist/src/evals/define-eval.d.ts +20 -0
  175. package/dist/src/evals/define-eval.js +1 -0
  176. package/dist/src/evals/expect/index.d.ts +25 -0
  177. package/dist/src/evals/expect/index.js +1 -0
  178. package/dist/src/evals/index.d.ts +7 -2
  179. package/dist/src/evals/index.js +1 -1
  180. package/dist/src/evals/judge.d.ts +20 -0
  181. package/dist/src/evals/judge.js +1 -0
  182. package/dist/src/evals/match.d.ts +67 -0
  183. package/dist/src/evals/match.js +1 -0
  184. package/dist/src/evals/reporters/index.d.ts +1 -0
  185. package/dist/src/evals/reporters/index.js +1 -1
  186. package/dist/src/evals/requirements.d.ts +3 -0
  187. package/dist/src/evals/requirements.js +1 -0
  188. package/dist/src/evals/runner/artifacts.d.ts +7 -6
  189. package/dist/src/evals/runner/artifacts.js +3 -3
  190. package/dist/src/evals/runner/derive-run-facts.d.ts +17 -3
  191. package/dist/src/evals/runner/derive-run-facts.js +1 -1
  192. package/dist/src/evals/runner/discover.d.ts +31 -10
  193. package/dist/src/evals/runner/discover.js +1 -1
  194. package/dist/src/evals/runner/execute-eval.d.ts +25 -0
  195. package/dist/src/evals/runner/execute-eval.js +1 -0
  196. package/dist/src/evals/runner/execute-task.d.ts +31 -0
  197. package/dist/src/evals/runner/execute-task.js +1 -0
  198. package/dist/src/evals/runner/reporters/braintrust.d.ts +7 -5
  199. package/dist/src/evals/runner/reporters/braintrust.js +2 -2
  200. package/dist/src/evals/runner/reporters/console.d.ts +4 -4
  201. package/dist/src/evals/runner/reporters/console.js +1 -1
  202. package/dist/src/evals/runner/reporters/junit.d.ts +10 -0
  203. package/dist/src/evals/runner/reporters/junit.js +4 -0
  204. package/dist/src/evals/runner/reporters/types.d.ts +14 -8
  205. package/dist/src/evals/runner/run-evals.d.ts +38 -0
  206. package/dist/src/evals/runner/run-evals.js +1 -0
  207. package/dist/src/evals/runner/verdict.d.ts +13 -0
  208. package/dist/src/evals/runner/verdict.js +1 -0
  209. package/dist/src/evals/session.d.ts +52 -0
  210. package/dist/src/evals/session.js +1 -0
  211. package/dist/src/evals/target.d.ts +23 -0
  212. package/dist/src/evals/target.js +1 -0
  213. package/dist/src/evals/types.d.ts +353 -165
  214. package/dist/src/execution/compaction.d.ts +14 -0
  215. package/dist/src/execution/compaction.js +1 -0
  216. package/dist/src/execution/delegated-parent-notification.js +1 -1
  217. package/dist/src/execution/dispatch-runtime-actions-step.js +1 -1
  218. package/dist/src/execution/node-step.js +1 -1
  219. package/dist/src/execution/sandbox/bash-tool.d.ts +6 -6
  220. package/dist/src/execution/sandbox/bash-tool.js +1 -1
  221. package/dist/src/execution/sandbox/bindings/local.d.ts +11 -0
  222. package/dist/src/execution/sandbox/bindings/local.js +1 -1
  223. package/dist/src/execution/sandbox/glob-tool.js +3 -3
  224. package/dist/src/execution/sandbox/grep-tool.js +3 -3
  225. package/dist/src/execution/sandbox/read-file-tool.js +1 -1
  226. package/dist/src/execution/subagent-adapter.js +1 -1
  227. package/dist/src/execution/tool-auth.js +1 -1
  228. package/dist/src/execution/turn-workflow.js +1 -1
  229. package/dist/src/execution/workflow-runtime.d.ts +2 -2
  230. package/dist/src/execution/workflow-runtime.js +1 -1
  231. package/dist/src/execution/workflow-steps.js +1 -1
  232. package/dist/src/harness/action-result-helpers.js +1 -1
  233. package/dist/src/harness/authorization.d.ts +26 -0
  234. package/dist/src/harness/authorization.js +1 -1
  235. package/dist/src/harness/code-mode-lifecycle.js +1 -1
  236. package/dist/src/harness/emission.d.ts +12 -5
  237. package/dist/src/harness/emission.js +1 -1
  238. package/dist/src/harness/model-call-error.d.ts +35 -6
  239. package/dist/src/harness/model-call-error.js +1 -1
  240. package/dist/src/harness/step-hooks.d.ts +10 -4
  241. package/dist/src/harness/step-hooks.js +1 -1
  242. package/dist/src/harness/tool-loop.js +1 -1
  243. package/dist/src/harness/tools.d.ts +4 -6
  244. package/dist/src/harness/tools.js +1 -1
  245. package/dist/src/harness/turn-tag-state.d.ts +4 -0
  246. package/dist/src/harness/turn-tag-state.js +1 -1
  247. package/dist/src/harness/types.d.ts +4 -15
  248. package/dist/src/internal/application/cache-metadata.js +1 -1
  249. package/dist/src/internal/application/compiled-artifacts.js +1 -1
  250. package/dist/src/internal/application/package.js +1 -1
  251. package/dist/src/internal/application/paths.js +1 -1
  252. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  253. package/dist/src/internal/authored-module-loader.d.ts +4 -1
  254. package/dist/src/internal/authored-module-loader.js +2 -2
  255. package/dist/src/internal/authored-module-map-loader.js +1 -1
  256. package/dist/src/internal/nitro/dev-runtime-artifacts.d.ts +11 -0
  257. package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
  258. package/dist/src/internal/nitro/host/build-application.js +1 -1
  259. package/dist/src/internal/nitro/host/build-vercel-agent-summary.js +1 -1
  260. package/dist/src/internal/nitro/host/configure-nitro-routes.js +3 -3
  261. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  262. package/dist/src/internal/nitro/host/dev-authored-source-watcher.js +1 -1
  263. package/dist/src/internal/nitro/host/dev-watcher-log.d.ts +37 -0
  264. package/dist/src/internal/nitro/host/dev-watcher-log.js +1 -0
  265. package/dist/src/internal/nitro/host/ports.d.ts +8 -0
  266. package/dist/src/internal/nitro/host/ports.js +1 -0
  267. package/dist/src/internal/nitro/host/prepare-application-host.js +1 -1
  268. package/dist/src/internal/nitro/host/server-external-packages.d.ts +1 -1
  269. package/dist/src/internal/nitro/host/server-external-packages.js +1 -1
  270. package/dist/src/internal/nitro/host/start-development-server.js +1 -1
  271. package/dist/src/internal/nitro/host/start-production-server.js +1 -1
  272. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response-from-manifest.d.ts +5 -0
  273. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response-from-manifest.js +1 -0
  274. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.d.ts +31 -2
  275. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
  276. package/dist/src/internal/nitro/routes/agent-info/load-agent-info-data.d.ts +13 -0
  277. package/dist/src/internal/nitro/routes/agent-info/load-agent-info-data.js +1 -1
  278. package/dist/src/internal/nitro/routes/info.d.ts +2 -2
  279. package/dist/src/internal/nitro/routes/info.js +1 -1
  280. package/dist/src/internal/workflow/queue-namespace.d.ts +5 -0
  281. package/dist/src/internal/workflow/queue-namespace.js +1 -0
  282. package/dist/src/internal/workflow-bundle/builder-support.js +2 -2
  283. package/dist/src/internal/workflow-bundle/builder.js +3 -5
  284. package/dist/src/internal/workflow-bundle/vercel-workflow-output.js +1 -1
  285. package/dist/src/internal/workflow-bundle/workflow-builders.d.ts +1 -1
  286. package/dist/src/internal/workflow-bundle/workflow-builders.js +1 -1
  287. package/dist/src/node_modules/.pnpm/@clack_core@1.3.1/node_modules/@clack/core/dist/index.js +4 -4
  288. package/dist/src/protocol/message.d.ts +15 -0
  289. package/dist/src/protocol/message.js +2 -2
  290. package/dist/src/public/channels/slack/api.d.ts +8 -0
  291. package/dist/src/public/channels/slack/api.js +1 -1
  292. package/dist/src/public/channels/slack/connections.d.ts +26 -18
  293. package/dist/src/public/channels/slack/connections.js +1 -1
  294. package/dist/src/public/channels/slack/defaults.d.ts +5 -2
  295. package/dist/src/public/channels/slack/defaults.js +1 -1
  296. package/dist/src/public/channels/slack/index.d.ts +1 -1
  297. package/dist/src/public/channels/slack/slackChannel.d.ts +65 -5
  298. package/dist/src/public/channels/slack/slackChannel.js +1 -1
  299. package/dist/src/public/channels/teams/defaults.js +1 -1
  300. package/dist/src/public/connections/errors.d.ts +8 -0
  301. package/dist/src/public/definitions/tool.d.ts +0 -33
  302. package/dist/src/public/next/index.d.ts +7 -1
  303. package/dist/src/public/next/index.js +1 -1
  304. package/dist/src/public/next/server.d.ts +1 -0
  305. package/dist/src/public/next/server.js +1 -1
  306. package/dist/src/public/nuxt/dev-server.js +1 -1
  307. package/dist/src/public/sandbox/backends/local.d.ts +2 -3
  308. package/dist/src/public/sveltekit/dev-server.js +1 -1
  309. package/dist/src/public/sveltekit/index.d.ts +1 -1
  310. package/dist/src/public/tools/defaults.d.ts +2 -4
  311. package/dist/src/public/tools/defaults.js +1 -1
  312. package/dist/src/public/tools/define-bash-tool.d.ts +3 -3
  313. package/dist/src/public/tools/define-bash-tool.js +1 -1
  314. package/dist/src/public/tools/define-read-file-tool.d.ts +0 -6
  315. package/dist/src/public/tools/define-read-file-tool.js +1 -1
  316. package/dist/src/public/tools/index.d.ts +2 -2
  317. package/dist/src/public/tools/index.js +1 -1
  318. package/dist/src/public/tools/internal.js +1 -1
  319. package/dist/src/runtime/actions/types.d.ts +11 -11
  320. package/dist/src/runtime/agent/mock-model-adapter.js +1 -1
  321. package/dist/src/runtime/agent/mock-model-fixtures.js +3 -2
  322. package/dist/src/runtime/agent/mock-model-skill-selection.js +3 -4
  323. package/dist/src/runtime/connections/callback-route.js +1 -1
  324. package/dist/src/runtime/connections/mcp-client.js +1 -1
  325. package/dist/src/runtime/connections/scoped-authorization.d.ts +21 -5
  326. package/dist/src/runtime/connections/scoped-authorization.js +1 -1
  327. package/dist/src/runtime/connections/types.d.ts +33 -0
  328. package/dist/src/runtime/connections/validate-authorization.js +1 -1
  329. package/dist/src/runtime/framework-tools/bash.d.ts +3 -3
  330. package/dist/src/runtime/framework-tools/bash.js +1 -1
  331. package/dist/src/runtime/framework-tools/connection-search-dynamic.d.ts +1 -1
  332. package/dist/src/runtime/framework-tools/connection-search-dynamic.js +1 -1
  333. package/dist/src/runtime/framework-tools/file-state.d.ts +3 -3
  334. package/dist/src/runtime/framework-tools/index.js +1 -1
  335. package/dist/src/runtime/framework-tools/read-file.js +2 -2
  336. package/dist/src/runtime/framework-tools/todo.d.ts +7 -0
  337. package/dist/src/runtime/framework-tools/todo.js +2 -2
  338. package/dist/src/runtime/governance/auth/http-basic.js +1 -1
  339. package/dist/src/runtime/input/types.d.ts +1 -1
  340. package/dist/src/runtime/resolve-tool.d.ts +2 -2
  341. package/dist/src/runtime/resolve-tool.js +1 -1
  342. package/dist/src/runtime/sandbox/keys.js +1 -1
  343. package/dist/src/runtime/session-callback-route.js +1 -1
  344. package/dist/src/runtime/types.d.ts +1 -7
  345. package/dist/src/services/dev-client/client-options.d.ts +8 -0
  346. package/dist/src/services/dev-client/client-options.js +1 -0
  347. package/dist/src/services/dev-client/runtime-artifacts.d.ts +13 -0
  348. package/dist/src/services/dev-client/runtime-artifacts.js +1 -0
  349. package/dist/src/services/dev-client.d.ts +13 -46
  350. package/dist/src/services/dev-client.js +1 -1
  351. package/dist/src/services/inspect-application.js +1 -1
  352. package/dist/src/setup/ask.d.ts +205 -0
  353. package/dist/src/setup/ask.js +1 -0
  354. package/dist/src/setup/boxes/add-channels.d.ts +100 -16
  355. package/dist/src/setup/boxes/add-channels.js +2 -1
  356. package/dist/src/setup/boxes/add-connections.d.ts +13 -23
  357. package/dist/src/setup/boxes/add-connections.js +1 -1
  358. package/dist/src/setup/boxes/apply-ai-gateway-credential.d.ts +2 -2
  359. package/dist/src/setup/boxes/apply-ai-gateway-credential.js +1 -1
  360. package/dist/src/setup/boxes/deploy-project.d.ts +46 -14
  361. package/dist/src/setup/boxes/deploy-project.js +1 -1
  362. package/dist/src/setup/boxes/detect-ai-gateway.d.ts +10 -3
  363. package/dist/src/setup/boxes/detect-ai-gateway.js +1 -1
  364. package/dist/src/setup/boxes/link-project.d.ts +3 -3
  365. package/dist/src/setup/boxes/link-project.js +1 -1
  366. package/dist/src/setup/boxes/one-shot-next-steps.d.ts +18 -0
  367. package/dist/src/setup/boxes/one-shot-next-steps.js +2 -0
  368. package/dist/src/setup/boxes/preflight.d.ts +14 -6
  369. package/dist/src/setup/boxes/preflight.js +1 -1
  370. package/dist/src/setup/boxes/resolve-provisioning.d.ts +36 -8
  371. package/dist/src/setup/boxes/resolve-provisioning.js +1 -1
  372. package/dist/src/setup/boxes/resolve-target.d.ts +25 -8
  373. package/dist/src/setup/boxes/resolve-target.js +1 -1
  374. package/dist/src/setup/boxes/scaffold.d.ts +12 -6
  375. package/dist/src/setup/boxes/scaffold.js +1 -1
  376. package/dist/src/setup/boxes/select-channels.d.ts +38 -9
  377. package/dist/src/setup/boxes/select-channels.js +1 -1
  378. package/dist/src/setup/boxes/select-chat.d.ts +15 -11
  379. package/dist/src/setup/boxes/select-chat.js +1 -1
  380. package/dist/src/setup/boxes/select-connections.d.ts +30 -0
  381. package/dist/src/setup/boxes/select-connections.js +1 -0
  382. package/dist/src/setup/boxes/select-model.d.ts +18 -14
  383. package/dist/src/setup/boxes/select-model.js +1 -1
  384. package/dist/src/setup/boxes/select-setup-mode.d.ts +32 -0
  385. package/dist/src/setup/boxes/select-setup-mode.js +1 -0
  386. package/dist/src/setup/channel-add-conflicts.d.ts +28 -0
  387. package/dist/src/setup/channel-add-conflicts.js +1 -0
  388. package/dist/src/setup/cli/channel-setup-prompter.d.ts +23 -0
  389. package/dist/src/setup/cli/channel-setup-prompter.js +1 -0
  390. package/dist/src/setup/cli/connection-add-prompter.d.ts +8 -0
  391. package/dist/src/setup/cli/connection-add-prompter.js +1 -0
  392. package/dist/src/setup/{scaffold/cli → cli}/index.d.ts +4 -3
  393. package/dist/src/setup/cli/index.js +1 -0
  394. package/dist/src/setup/{scaffold/cli → cli}/prompt-ui.d.ts +39 -15
  395. package/dist/src/setup/cli/prompt-ui.js +5 -0
  396. package/dist/src/setup/{scaffold/cli → cli}/rail-log.d.ts +2 -0
  397. package/dist/src/setup/{scaffold/cli → cli}/rail-log.js +2 -2
  398. package/dist/src/setup/{scaffold/cli → cli}/select-component.d.ts +18 -3
  399. package/dist/src/setup/cli/select-component.js +1 -0
  400. package/dist/src/setup/cli/select-option-codec.d.ts +12 -0
  401. package/dist/src/setup/cli/select-option-codec.js +1 -0
  402. package/dist/src/setup/{scaffold/cli → cli}/select-state.d.ts +13 -1
  403. package/dist/src/setup/cli/select-state.js +1 -0
  404. package/dist/src/setup/cli/whimsy.d.ts +16 -0
  405. package/dist/src/setup/cli/whimsy.js +1 -0
  406. package/dist/src/setup/{scaffold/steps/setup-connection.d.ts → connection-connector.d.ts} +3 -2
  407. package/dist/src/setup/connection-connector.js +1 -0
  408. package/dist/src/setup/flows/channels.d.ts +43 -0
  409. package/dist/src/setup/flows/channels.js +1 -0
  410. package/dist/src/setup/flows/deploy.d.ts +40 -0
  411. package/dist/src/setup/flows/deploy.js +1 -0
  412. package/dist/src/setup/flows/in-project.d.ts +16 -0
  413. package/dist/src/setup/flows/in-project.js +1 -0
  414. package/dist/src/setup/flows/link.d.ts +43 -0
  415. package/dist/src/setup/flows/link.js +1 -0
  416. package/dist/src/setup/flows/model.d.ts +112 -0
  417. package/dist/src/setup/flows/model.js +1 -0
  418. package/dist/src/setup/flows/vercel.d.ts +31 -0
  419. package/dist/src/setup/flows/vercel.js +2 -0
  420. package/dist/src/setup/gateway-models.js +1 -1
  421. package/dist/src/setup/headless.d.ts +1 -1
  422. package/dist/src/setup/index.d.ts +10 -4
  423. package/dist/src/setup/index.js +1 -1
  424. package/dist/src/setup/onboarding.d.ts +7 -4
  425. package/dist/src/setup/onboarding.js +1 -1
  426. package/dist/src/setup/package-manager.d.ts +27 -0
  427. package/dist/src/setup/package-manager.js +1 -0
  428. package/dist/src/setup/primitives/index.d.ts +3 -0
  429. package/dist/src/setup/primitives/index.js +1 -0
  430. package/dist/src/setup/primitives/pm/bun.d.ts +10 -0
  431. package/dist/src/setup/primitives/pm/bun.js +1 -0
  432. package/dist/src/setup/primitives/pm/index.d.ts +11 -0
  433. package/dist/src/setup/primitives/pm/index.js +1 -0
  434. package/dist/src/setup/primitives/pm/npm.d.ts +10 -0
  435. package/dist/src/setup/primitives/pm/npm.js +1 -0
  436. package/dist/src/setup/primitives/pm/pnpm.d.ts +27 -0
  437. package/dist/src/setup/primitives/pm/pnpm.js +8 -0
  438. package/dist/src/setup/primitives/pm/run.d.ts +23 -0
  439. package/dist/src/setup/primitives/pm/run.js +1 -0
  440. package/dist/src/setup/primitives/pm/shared.d.ts +8 -0
  441. package/dist/src/setup/primitives/pm/shared.js +1 -0
  442. package/dist/src/setup/primitives/pm/types.d.ts +37 -0
  443. package/dist/src/setup/primitives/pm/types.js +1 -0
  444. package/dist/src/setup/primitives/pm/yarn.d.ts +10 -0
  445. package/dist/src/setup/primitives/pm/yarn.js +1 -0
  446. package/dist/src/setup/primitives/run-pnpm.d.ts +1 -0
  447. package/dist/src/setup/primitives/run-pnpm.js +1 -0
  448. package/dist/src/setup/{scaffold/primitives → primitives}/run-vercel.d.ts +7 -0
  449. package/dist/src/setup/primitives/run-vercel.js +1 -0
  450. package/dist/src/setup/project-name.d.ts +4 -0
  451. package/dist/src/setup/project-name.js +1 -0
  452. package/dist/src/setup/project-resolution.d.ts +54 -0
  453. package/dist/src/setup/project-resolution.js +1 -0
  454. package/dist/src/setup/prompter.d.ts +52 -4
  455. package/dist/src/setup/prompter.js +1 -1
  456. package/dist/src/setup/quit-guard.d.ts +1 -1
  457. package/dist/src/setup/run-vercel-link.d.ts +1 -1
  458. package/dist/src/setup/run-vercel-link.js +1 -1
  459. package/dist/src/setup/runner.d.ts +5 -4
  460. package/dist/src/setup/runner.js +1 -1
  461. package/dist/src/setup/scaffold/channels-catalog.d.ts +3 -3
  462. package/dist/src/setup/scaffold/channels-catalog.js +1 -1
  463. package/dist/src/setup/scaffold/create/add-to-project.d.ts +26 -0
  464. package/dist/src/setup/scaffold/create/add-to-project.js +1 -0
  465. package/dist/src/setup/scaffold/create/project.d.ts +54 -0
  466. package/dist/src/setup/scaffold/create/project.js +80 -0
  467. package/dist/src/setup/scaffold/index.d.ts +4 -4
  468. package/dist/src/setup/scaffold/index.js +1 -1
  469. package/dist/src/setup/scaffold/{channels.d.ts → update/channels.d.ts} +11 -0
  470. package/dist/src/setup/scaffold/update/channels.js +7 -0
  471. package/dist/src/setup/scaffold/{connections.d.ts → update/connections.d.ts} +1 -1
  472. package/dist/src/setup/scaffold/update/connections.js +21 -0
  473. package/dist/src/setup/scaffold/version-tokens.d.ts +11 -0
  474. package/dist/src/setup/scaffold/version-tokens.js +1 -0
  475. package/dist/src/setup/{scaffold/steps/setup-slackbot.d.ts → slackbot.d.ts} +24 -20
  476. package/dist/src/setup/slackbot.js +1 -0
  477. package/dist/src/setup/state.d.ts +62 -15
  478. package/dist/src/setup/state.js +1 -1
  479. package/dist/src/setup/step.d.ts +9 -18
  480. package/dist/src/setup/vercel-project.d.ts +15 -8
  481. package/dist/src/setup/vercel-project.js +1 -1
  482. package/dist/src/shared/agent-definition.d.ts +9 -3
  483. package/dist/src/shared/default-agent-model.d.ts +5 -0
  484. package/dist/src/shared/default-agent-model.js +1 -0
  485. package/dist/src/shared/sandbox-backend.d.ts +11 -11
  486. package/dist/src/source-change/apply-model-name.d.ts +25 -0
  487. package/dist/src/source-change/apply-model-name.js +2 -0
  488. package/dist/src/source-change/static-source-change.d.ts +36 -0
  489. package/dist/src/source-change/static-source-change.js +1 -0
  490. package/dist/src/svelte/index.js +1 -1
  491. package/dist/src/svelte/use-eve-agent.js +1 -1
  492. package/dist/src/vue/index.js +1 -1
  493. package/dist/src/vue/use-eve-agent.js +1 -1
  494. package/package.json +23 -38
  495. package/dist/docs/public/advanced/evals.md +0 -121
  496. package/dist/src/cli/commands/setup.d.ts +0 -55
  497. package/dist/src/cli/commands/setup.js +0 -1
  498. package/dist/src/cli/dev/repl/input-requests.d.ts +0 -38
  499. package/dist/src/cli/dev/repl/input-requests.js +0 -1
  500. package/dist/src/cli/dev/repl/input.d.ts +0 -19
  501. package/dist/src/cli/dev/repl/input.js +0 -1
  502. package/dist/src/cli/dev/repl/repl.d.ts +0 -62
  503. package/dist/src/cli/dev/repl/repl.js +0 -2
  504. package/dist/src/cli/dev/repl/terminal.d.ts +0 -21
  505. package/dist/src/cli/dev/repl/terminal.js +0 -5
  506. package/dist/src/compiled/_chunks/workflow/resume-hook-0Zk0zSvq.js +0 -12
  507. package/dist/src/compiled/_chunks/workflow/sleep-DXZr2BgM.js +0 -1
  508. package/dist/src/evals/define-eval-suite.d.ts +0 -16
  509. package/dist/src/evals/define-eval-suite.js +0 -1
  510. package/dist/src/evals/runner/execute-case.d.ts +0 -23
  511. package/dist/src/evals/runner/execute-case.js +0 -1
  512. package/dist/src/evals/runner/execute-suite.d.ts +0 -24
  513. package/dist/src/evals/runner/execute-suite.js +0 -1
  514. package/dist/src/evals/scorers/autoevals-client.js +0 -2
  515. package/dist/src/evals/scorers/autoevals.d.ts +0 -58
  516. package/dist/src/evals/scorers/autoevals.js +0 -1
  517. package/dist/src/evals/scorers/json.d.ts +0 -10
  518. package/dist/src/evals/scorers/json.js +0 -1
  519. package/dist/src/evals/scorers/run.d.ts +0 -18
  520. package/dist/src/evals/scorers/run.js +0 -1
  521. package/dist/src/evals/scorers/sql.d.ts +0 -9
  522. package/dist/src/evals/scorers/sql.js +0 -1
  523. package/dist/src/evals/scorers/text.d.ts +0 -18
  524. package/dist/src/evals/scorers/text.js +0 -1
  525. package/dist/src/evals/scores/index.d.ts +0 -72
  526. package/dist/src/evals/scores/index.js +0 -1
  527. package/dist/src/execution/tool-compaction.d.ts +0 -9
  528. package/dist/src/execution/tool-compaction.js +0 -1
  529. package/dist/src/services/dev-client/stream.d.ts +0 -5
  530. package/dist/src/services/dev-client/stream.js +0 -1
  531. package/dist/src/services/dev-client/url.d.ts +0 -11
  532. package/dist/src/services/dev-client/url.js +0 -1
  533. package/dist/src/setup/channel-setup-prompter.d.ts +0 -8
  534. package/dist/src/setup/channel-setup-prompter.js +0 -1
  535. package/dist/src/setup/scaffold/channels.js +0 -7
  536. package/dist/src/setup/scaffold/cli/channel-add-prompter.d.ts +0 -12
  537. package/dist/src/setup/scaffold/cli/channel-add-prompter.js +0 -1
  538. package/dist/src/setup/scaffold/cli/channel-setup-prompter.d.ts +0 -56
  539. package/dist/src/setup/scaffold/cli/connection-add-prompter.d.ts +0 -44
  540. package/dist/src/setup/scaffold/cli/connection-add-prompter.js +0 -1
  541. package/dist/src/setup/scaffold/cli/index.js +0 -1
  542. package/dist/src/setup/scaffold/cli/prompt-ui.js +0 -5
  543. package/dist/src/setup/scaffold/cli/select-component.js +0 -1
  544. package/dist/src/setup/scaffold/cli/select-state.js +0 -1
  545. package/dist/src/setup/scaffold/connections.js +0 -21
  546. package/dist/src/setup/scaffold/pnpm-workspace.d.ts +0 -3
  547. package/dist/src/setup/scaffold/pnpm-workspace.js +0 -11
  548. package/dist/src/setup/scaffold/primitives/detect-deployment.d.ts +0 -13
  549. package/dist/src/setup/scaffold/primitives/detect-deployment.js +0 -1
  550. package/dist/src/setup/scaffold/primitives/index.d.ts +0 -3
  551. package/dist/src/setup/scaffold/primitives/index.js +0 -1
  552. package/dist/src/setup/scaffold/primitives/pnpm-invocation.d.ts +0 -12
  553. package/dist/src/setup/scaffold/primitives/pnpm-invocation.js +0 -1
  554. package/dist/src/setup/scaffold/primitives/run-pnpm.d.ts +0 -17
  555. package/dist/src/setup/scaffold/primitives/run-pnpm.js +0 -1
  556. package/dist/src/setup/scaffold/primitives/run-vercel.js +0 -1
  557. package/dist/src/setup/scaffold/project.d.ts +0 -21
  558. package/dist/src/setup/scaffold/project.js +0 -80
  559. package/dist/src/setup/scaffold/steps/deploy-to-vercel.d.ts +0 -17
  560. package/dist/src/setup/scaffold/steps/deploy-to-vercel.js +0 -1
  561. package/dist/src/setup/scaffold/steps/index.d.ts +0 -4
  562. package/dist/src/setup/scaffold/steps/index.js +0 -1
  563. package/dist/src/setup/scaffold/steps/project-resolution.d.ts +0 -19
  564. package/dist/src/setup/scaffold/steps/project-resolution.js +0 -1
  565. package/dist/src/setup/scaffold/steps/run-add-connection.d.ts +0 -40
  566. package/dist/src/setup/scaffold/steps/run-add-connection.js +0 -1
  567. package/dist/src/setup/scaffold/steps/run-add-to-agent.d.ts +0 -81
  568. package/dist/src/setup/scaffold/steps/run-add-to-agent.js +0 -2
  569. package/dist/src/setup/scaffold/steps/setup-connection.js +0 -1
  570. package/dist/src/setup/scaffold/steps/setup-slackbot.js +0 -1
  571. /package/dist/src/{setup/scaffold/cli/channel-setup-prompter.js → cli/dev/tui/setup-flow.js} +0 -0
  572. /package/dist/src/evals/{scorers/autoevals-client.d.ts → autoevals-client.d.ts} +0 -0
  573. /package/dist/src/setup/{scaffold/cli → cli}/command-output.d.ts +0 -0
  574. /package/dist/src/setup/{scaffold/cli → cli}/command-output.js +0 -0
  575. /package/dist/src/setup/{scaffold/human-action.d.ts → human-action.d.ts} +0 -0
  576. /package/dist/src/setup/{scaffold/human-action.js → human-action.js} +0 -0
  577. /package/dist/src/setup/{scaffold/primitives → primitives}/process-output.d.ts +0 -0
  578. /package/dist/src/setup/{scaffold/primitives → primitives}/process-output.js +0 -0
  579. /package/dist/src/setup/scaffold/{web-template.d.ts → create/web-template.d.ts} +0 -0
  580. /package/dist/src/setup/scaffold/{web-template.js → create/web-template.js} +0 -0
  581. /package/dist/src/setup/scaffold/{module-files.d.ts → update/module-files.d.ts} +0 -0
  582. /package/dist/src/setup/scaffold/{module-files.js → update/module-files.js} +0 -0
  583. /package/dist/src/setup/scaffold/{package-json.d.ts → update/package-json.d.ts} +0 -0
  584. /package/dist/src/setup/scaffold/{package-json.js → update/package-json.js} +0 -0
  585. /package/dist/src/setup/scaffold/{primitives → update}/update-connection-connector.d.ts +0 -0
  586. /package/dist/src/setup/scaffold/{primitives → update}/update-connection-connector.js +0 -0
  587. /package/dist/src/setup/scaffold/{primitives → update}/update-slack-channel.d.ts +0 -0
  588. /package/dist/src/setup/scaffold/{primitives → update}/update-slack-channel.js +0 -0
@@ -1 +1 @@
1
- import{boolean,object,record,string,unknown}from"../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/schemas.js";import"../node_modules/.pnpm/zod@4.4.3/node_modules/zod/index.js";import{HumanActionRequiredError}from"#setup/scaffold/index.js";import{projectResolutionFromDeployment}from"#setup/scaffold/steps/index.js";import"#setup/scaffold/cli/index.js";import{captureVercel,detectDeployment,runVercel}from"#setup/scaffold/primitives/index.js";const JsonObjectSchema=record(string(),unknown()),VercelTeamListEntrySchema=object({name:string(),slug:string(),current:boolean()}),VercelProjectListEntrySchema=object({name:string(),id:string()}),VercelProjectReferenceSchema=object({id:string(),name:string()}),VercelApiErrorSchema=object({error:object({code:string().optional(),message:string().optional()}).optional()});function unresolvedProject(){return{kind:`unresolved`}}async function withNetworkSpinner(e,t,n){let r=e.log.spinner?.(t);try{return await n()}finally{r?.stop()}}function projectIdFromResolution(e){return e.kind===`unresolved`?void 0:e.projectId}function parseJson(e,t){try{return JSON.parse(e)}catch{throw Error(`Could not parse ${t} JSON from Vercel CLI output.`)}}function parseVercelJsonList(e,t,n){let r=parseJson(e,t),i=JsonObjectSchema.safeParse(r);if(!i.success)throw Error(`Could not read ${t} from Vercel CLI JSON output.`);let a=i.data[t];if(!Array.isArray(a))throw Error(`Vercel CLI JSON output did not include ${t}.`);let o=[];for(let e of a){let t=n.safeParse(e);t.success&&o.push(t.data)}return o}function parseTeamList(e){return e===void 0?[]:parseVercelJsonList(e,`teams`,VercelTeamListEntrySchema)}async function listTeams(e){let t=await captureVercel([`teams`,`ls`,`--format`,`json`],{cwd:e});if(!t.ok)throw Error(`Could not list Vercel teams. ${t.failure.message}`);return parseTeamList(t.stdout)}function parseProjectList(e){return e===void 0?[]:parseVercelJsonList(e,`projects`,VercelProjectListEntrySchema)}async function listProjects(e,t){let n=await captureVercel([`project`,`ls`,`--format`,`json`,`--scope`,t],{cwd:e});if(!n.ok)throw Error(`Could not list Vercel projects in ${t}. ${n.failure.message}`);return parseProjectList(n.stdout)}function isNotFoundApiFailure(e){if(e.code===404)return!0;let t=VercelApiErrorSchema.safeParse(safeParseJson(e.stdout)),n=t.success?t.data.error:void 0,r=`${n?.code??``} ${n?.message??``} ${e.stderr}`.toLowerCase();return r.includes(`not_found`)||r.includes(`not found`)||r.includes(`404`)}function isConflictApiFailure(e){let t=VercelApiErrorSchema.safeParse(safeParseJson(e.stdout)),n=t.success?t.data.error:void 0,r=`${n?.code??``} ${n?.message??``} ${e.stdout} ${e.stderr}`.toLowerCase();return r.includes(`409`)||r.includes(`conflict`)||r.includes(`already exists`)}function safeParseJson(e){try{return JSON.parse(e)}catch{return}}function parseProjectReference(e,t){let n=VercelProjectReferenceSchema.safeParse(parseJson(e,t));if(!n.success)throw Error(`Could not read Vercel project identity from ${t}.`);return n.data}async function resolveProjectByNameOrId(e,t,n){let r=await captureVercel([`api`,`/v9/projects/${encodeURIComponent(n)}`,`--scope`,t,`--raw`],{cwd:e});if(r.ok)return parseProjectReference(r.stdout,`project ${n}`);if(isNotFoundApiFailure(r.failure))return null;throw Error(`Could not resolve Vercel project "${n}" in ${t}. ${r.failure.message}`)}async function createProject(e,t,n,r){let i=await captureVercel([`api`,`/v10/projects`,`--scope`,t,`--method`,`POST`,`--raw-field`,`name=${n}`,`--raw`],{cwd:e,onOutput:r});if(i.ok)return parseProjectReference(i.stdout,`created project ${n}`);throw isConflictApiFailure(i.failure)?Error(projectNameCollisionMessage(n,t)):Error(`Could not create Vercel project "${n}" in ${t}. ${i.failure.message}`)}function projectNameCollisionMessage(e,t){return`Vercel project "${e}" already exists in ${t}. Pass --project ${e} to link it, or choose a different project name.`}async function assertNewProjectNameAvailable(e,t,n){if(await resolveProjectByNameOrId(e,t,n)!==null)throw Error(projectNameCollisionMessage(n,t))}function requireVercelLogin(e){let t=`Provisioning a Vercel project requires you to be logged in to Vercel.`,n=e?.stderr.trim();throw new HumanActionRequiredError({kind:`vercel-login`,command:`vercel login`,reason:e?`${t} The Vercel CLI check did not succeed: ${e.message}${n?` ${n}`:``}`:t})}async function requireAuth(e,t){let check=async()=>{let t=await captureVercel([`whoami`],{cwd:e});t.ok||requireVercelLogin(t.failure)};if(t===void 0){await check();return}await withNetworkSpinner(t,`Checking Vercel login...`,check)}async function whoamiScope(e){let t=await captureVercel([`whoami`],{cwd:e});return t.ok||requireVercelLogin(t.failure),t.stdout.trim()}async function resolveTeam(e,t){return t===void 0?(await listTeams(e)).find(e=>e.current)?.slug??await whoamiScope(e):t}async function validateTeam(e,t,n){if(n===void 0)return;let r=await listTeams(t);if(r.length>0&&!r.some(e=>e.slug===n))throw Error(`Team "${n}" was not found in \`vercel teams ls\`. Pass a valid team slug or omit --team.`)}async function pickTeam(e,t,n){if(n!==void 0)return await validateTeam(e,t,n),resolveTeam(t,n);let r=await withNetworkSpinner(e,`Loading Vercel teams...`,()=>listTeams(t));return r.length<=1?r.find(e=>e.current)?.slug??await whoamiScope(t):e.select({message:`Vercel team for the project`,search:!0,placeholder:`type to filter teams`,options:r.map(e=>({value:e.slug,label:e.current?`${e.name} (current)`:e.name})),initialValue:r.find(e=>e.current)?.slug})}async function pickProject(e,t,n){let r=await withNetworkSpinner(e,`Loading projects in ${n}...`,()=>listProjects(t,n));return r.length===0?{project:await e.text({message:`No projects found in ${n}. Enter a project name to create`,validate:e=>e.trim().length===0?`Project name cannot be empty.`:void 0}),exists:!1}:{project:await e.select({message:`Vercel project to link`,search:!0,placeholder:`type to filter projects`,options:r.map(e=>({value:e.name,label:e.name}))}),exists:!0}}async function pickNewProjectName(e,t,n,r){let i=await withNetworkSpinner(e,`Checking project name in ${n}...`,()=>resolveProjectByNameOrId(t,n,r.trim())),a=r.trim();for(;i!==null;)e.note(`Vercel project "${a}" already exists in ${n}. Choose a different project name.`,`Project name unavailable`),a=(await e.text({message:`New Vercel project name`,defaultValue:`${a}-2`,validate:e=>{if(e.trim().length===0)return`Project name cannot be empty.`}})).trim(),i=await resolveProjectByNameOrId(t,n,a);return a}async function detectProjectResolution(e){return projectResolutionFromDeployment(await detectDeployment(e))}async function linkProject(e,t,n,r){let i=[`--scope`,n.team],a;if(n.kind===`new`)await assertNewProjectNameAvailable(t,n.team,n.project),e.log.message(`Creating Vercel project "${n.project}" in ${n.team}...`),a=await createProject(t,n.team,n.project,r);else{let e=await resolveProjectByNameOrId(t,n.team,n.project);if(e===null)throw Error(`Vercel project "${n.project}" was not found in ${n.team}.`);a=e}return n.kind===`existing`&&e.log.message(`Linking existing Vercel project "${a.name}"...`),e.log.message(`Linking this directory to Vercel project "${a.name}"...`),runVercel([`link`,`--project`,a.id,...i,`--yes`],{cwd:t,onOutput:r})}export{assertNewProjectNameAvailable,detectProjectResolution,linkProject,listProjects,listTeams,pickNewProjectName,pickProject,pickTeam,projectIdFromResolution,requireAuth,requireVercelLogin,resolveProjectByNameOrId,resolveTeam,unresolvedProject,validateTeam};
1
+ import{boolean,object,record,string,unknown}from"../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/schemas.js";import"../node_modules/.pnpm/zod@4.4.3/node_modules/zod/index.js";import{captureVercel,runVercel}from"#setup/primitives/index.js";import{HumanActionRequiredError}from"#setup/human-action.js";import{whimsyFor}from"#setup/cli/index.js";const JsonObjectSchema=record(string(),unknown()),VercelTeamListEntrySchema=object({name:string(),slug:string(),current:boolean()}),VercelProjectListEntrySchema=object({name:string(),id:string()}),VercelProjectReferenceSchema=object({id:string(),name:string()}),VercelApiErrorSchema=object({error:object({code:string().optional(),message:string().optional()}).optional()});function unresolvedProject(){return{kind:`unresolved`}}async function withNetworkSpinner(e,t,n){let r=e.log.spinner?.(t);try{return await n()}finally{r?.stop()}}function projectIdFromResolution(e){return e.kind===`unresolved`?void 0:e.projectId}function parseJson(e,t){try{return JSON.parse(e)}catch{throw Error(`Could not parse ${t} JSON from Vercel CLI output.`)}}function parseVercelJsonList(e,t,n){let r=parseJson(e,t),i=JsonObjectSchema.safeParse(r);if(!i.success)throw Error(`Could not read ${t} from Vercel CLI JSON output.`);let a=i.data[t];if(!Array.isArray(a))throw Error(`Vercel CLI JSON output did not include ${t}.`);let o=[];for(let e of a){let t=n.safeParse(e);t.success&&o.push(t.data)}return o}function parseTeamList(e){return e===void 0?[]:parseVercelJsonList(e,`teams`,VercelTeamListEntrySchema)}async function listTeams(e){let t=await captureVercel([`teams`,`ls`,`--format`,`json`],{cwd:e});if(!t.ok)throw Error(`Could not list Vercel teams. ${t.failure.message}`);return parseTeamList(t.stdout)}function parseProjectList(e){return e===void 0?[]:parseVercelJsonList(e,`projects`,VercelProjectListEntrySchema)}async function listProjects(e,t){let n=await captureVercel([`project`,`ls`,`--format`,`json`,`--scope`,t],{cwd:e});if(!n.ok)throw Error(`Could not list Vercel projects in ${t}. ${n.failure.message}`);return parseProjectList(n.stdout)}function isNotFoundApiFailure(e){if(e.code===404)return!0;let t=VercelApiErrorSchema.safeParse(safeParseJson(e.stdout)),n=t.success?t.data.error:void 0,r=`${n?.code??``} ${n?.message??``} ${e.stderr}`.toLowerCase();return r.includes(`not_found`)||r.includes(`not found`)||r.includes(`404`)}function isConflictApiFailure(e){let t=VercelApiErrorSchema.safeParse(safeParseJson(e.stdout)),n=t.success?t.data.error:void 0,r=`${n?.code??``} ${n?.message??``} ${e.stdout} ${e.stderr}`.toLowerCase();return r.includes(`409`)||r.includes(`conflict`)||r.includes(`already exists`)}function safeParseJson(e){try{return JSON.parse(e)}catch{return}}function parseProjectReference(e,t){let n=VercelProjectReferenceSchema.safeParse(parseJson(e,t));if(!n.success)throw Error(`Could not read Vercel project identity from ${t}.`);return n.data}async function resolveProjectByNameOrId(e,t,n){let r=await captureVercel([`api`,`/v9/projects/${encodeURIComponent(n)}`,`--scope`,t,`--raw`],{cwd:e});if(r.ok)return parseProjectReference(r.stdout,`project ${n}`);if(isNotFoundApiFailure(r.failure))return null;throw Error(`Could not resolve project "${n}" in ${t}. ${r.failure.message}`)}async function createProject(e,t,n,r){let i=await captureVercel([`api`,`/v10/projects`,`--scope`,t,`--method`,`POST`,`--raw-field`,`name=${n}`,`--raw`],{cwd:e,onOutput:r});if(i.ok)return parseProjectReference(i.stdout,`created project ${n}`);throw isConflictApiFailure(i.failure)?Error(projectNameCollisionMessage(n,t)):Error(`Could not create Vercel project "${n}" in ${t}. ${i.failure.message}`)}function projectNameCollisionMessage(e,t){return`Vercel project "${e}" already exists in ${t}. Pass --project ${e} to link it, or choose a different project name.`}async function assertNewProjectNameAvailable(e,t,n){if(await resolveProjectByNameOrId(e,t,n)!==null)throw Error(projectNameCollisionMessage(n,t))}function requireVercelLogin(e){let t=`Provisioning a Vercel project requires you to be logged in to Vercel.`,n=e?.stderr.trim();throw new HumanActionRequiredError({kind:`vercel-login`,command:`vercel login`,reason:e?`${t} The Vercel CLI check did not succeed: ${e.message}${n?` ${n}`:``}`:t})}async function requireAuth(e,t){let check=async()=>{let t=await captureVercel([`whoami`],{cwd:e});t.ok||requireVercelLogin(t.failure)};if(t===void 0){await check();return}await withNetworkSpinner(t,whimsyFor(`auth`),check)}async function isVercelAuthenticated(e){return(await captureVercel([`whoami`],{cwd:e})).ok}async function whoamiScope(e){let t=await captureVercel([`whoami`],{cwd:e});return t.ok||requireVercelLogin(t.failure),t.stdout.trim()}async function resolveTeam(e,t){return t===void 0?(await listTeams(e)).find(e=>e.current)?.slug??await whoamiScope(e):t}async function validateTeam(e,t,n){if(n===void 0)return;let r=await listTeams(t);if(r.length>0&&!r.some(e=>e.slug===n))throw Error(`Team "${n}" was not found in \`vercel teams ls\`. Pass a valid team slug or omit --team.`)}async function pickTeam(e,t,n){if(n!==void 0)return await validateTeam(e,t,n),resolveTeam(t,n);let r=await withNetworkSpinner(e,whimsyFor(`teams`),()=>listTeams(t));return r.length<=1?r.find(e=>e.current)?.slug??await whoamiScope(t):e.select({message:`Select your team`,search:!0,placeholder:`type to filter teams`,options:r.map(e=>({value:e.slug,label:e.current?`${e.name} (current)`:e.name})),initialValue:r.find(e=>e.current)?.slug})}async function pickProject(e,t,n){let r=await withNetworkSpinner(e,whimsyFor(`projects`,n),()=>listProjects(t,n));return r.length===0?{project:await e.text({message:`No projects found in ${n}. Enter a project name to create`,validate:e=>e.trim().length===0?`Project name cannot be empty.`:void 0}),exists:!1}:{project:await e.select({message:`Project to link`,search:!0,placeholder:`type to filter projects`,options:r.map(e=>({value:e.name,label:e.name}))}),exists:!0}}async function pickNewProjectName(e,t,n,r){let i=await withNetworkSpinner(e,whimsyFor(`project-name`,n),()=>resolveProjectByNameOrId(t,n,r.trim())),a=r.trim();for(;i!==null;)e.note(`Vercel project "${a}" already exists in ${n}. Choose a different project name.`,`Project name unavailable`),a=(await e.text({message:`New Vercel project name`,defaultValue:`${a}-2`,validate:e=>{if(e.trim().length===0)return`Project name cannot be empty.`}})).trim(),i=await resolveProjectByNameOrId(t,n,a);return a}async function linkProject(e,t,n,r){let i=[`--scope`,n.team],a;if(n.kind===`new`)a=await withNetworkSpinner(e,`Creating Vercel project "${n.project}" in ${n.team}...`,async()=>(await assertNewProjectNameAvailable(t,n.team,n.project),createProject(t,n.team,n.project,r)));else{let e=await resolveProjectByNameOrId(t,n.team,n.project);if(e===null)throw Error(`Vercel project "${n.project}" was not found in ${n.team}.`);a=e}return withNetworkSpinner(e,`Linking this directory to Vercel project "${a.name}"...`,()=>runVercel([`link`,`--project`,a.id,...i,`--yes`],{cwd:t,onOutput:r}))}export{assertNewProjectNameAvailable,isVercelAuthenticated,linkProject,listProjects,listTeams,pickNewProjectName,pickProject,pickTeam,projectIdFromResolution,requireAuth,requireVercelLogin,resolveProjectByNameOrId,resolveTeam,unresolvedProject,validateTeam,withNetworkSpinner};
@@ -85,13 +85,15 @@ export interface AgentExperimentalDefinition {
85
85
  /**
86
86
  * Advanced hosted-build controls authored in `agent.ts`.
87
87
  *
88
- * Eve uses these only while packaging the application host. They do not affect
89
- * the runtime prompt or authored execution APIs.
88
+ * These affect packaging and bundling only. They do not affect the runtime
89
+ * prompt or authored execution APIs.
90
90
  */
91
91
  export interface AgentBuildDefinition {
92
92
  /**
93
93
  * Additional imported package names that Eve should keep external and trace
94
- * into hosted build output.
94
+ * into hosted build output. Eve also keeps matching imports external while
95
+ * compiling authored TypeScript modules such as tools, channels, and
96
+ * schedules.
95
97
  *
96
98
  * Prefer this when a package is sensitive to bundling and should ship via
97
99
  * `server/node_modules` in hosted output.
@@ -133,6 +135,10 @@ export type PublicAgentDefinition = {
133
135
  * {@link AgentExperimentalDefinition}.
134
136
  */
135
137
  readonly experimental?: AgentExperimentalDefinition;
138
+ /**
139
+ * Language model used for agent turns. Accepts an AI Gateway model ID or any
140
+ * AI SDK-compatible language model.
141
+ */
136
142
  readonly model: PublicAgentModelDefinition;
137
143
  /**
138
144
  * Optional override for the primary model's context window size, in tokens.
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Model used when an agent does not declare one, baked in by `eve init`, and
3
+ * pre-selected in the setup model picker.
4
+ */
5
+ export declare const DEFAULT_AGENT_MODEL_ID = "anthropic/claude-sonnet-4.6";
@@ -0,0 +1 @@
1
+ const DEFAULT_AGENT_MODEL_ID=`anthropic/claude-sonnet-4.6`;export{DEFAULT_AGENT_MODEL_ID};
@@ -27,7 +27,7 @@ export interface SandboxBackendSessionState {
27
27
  readonly sessionKey: string;
28
28
  }
29
29
  /**
30
- * One file written into a sandbox template before snapshot capture.
30
+ * One file written into a sandbox template before template state capture.
31
31
  */
32
32
  export interface SandboxSeedFile {
33
33
  readonly path: string;
@@ -81,9 +81,9 @@ export interface SandboxBackendCreateInput {
81
81
  *
82
82
  * Every authored sandbox in the compiled graph receives exactly one
83
83
  * `prewarm(...)` call before runtime opens its first session. The
84
- * backend captures a reusable template snapshot from the supplied
84
+ * backend captures reusable template state from the supplied
85
85
  * `bootstrap` hook and `seedFiles`, then `backend.create(...)` opens
86
- * durable sessions from that snapshot.
86
+ * durable sessions from that state.
87
87
  */
88
88
  export interface SandboxBackendPrewarmInput<BO = Record<string, never>> {
89
89
  readonly templateKey: string;
@@ -95,13 +95,13 @@ export interface SandboxBackendPrewarmInput<BO = Record<string, never>> {
95
95
  * Outcome of one {@link SandboxBackend.prewarm} call.
96
96
  *
97
97
  * The build pipeline uses this to report in the build logs whether a
98
- * template snapshot was reused from a prior deploy or captured fresh, so
98
+ * template state was reused from a prior deploy or captured fresh, so
99
99
  * a cache hit is distinguishable from an expensive rebuild.
100
100
  */
101
101
  export interface SandboxBackendPrewarmResult {
102
102
  /**
103
- * `true` when an existing template snapshot was reused without
104
- * rebuilding it; `false` when the backend captured a fresh snapshot.
103
+ * `true` when existing template state was reused without rebuilding it;
104
+ * `false` when the backend captured fresh template state.
105
105
  */
106
106
  readonly reused: boolean;
107
107
  }
@@ -115,7 +115,7 @@ export interface SandboxBackendPrewarmResult {
115
115
  * their own.
116
116
  *
117
117
  * A backend implements the full two-phase lifecycle:
118
- * {@link SandboxBackend.prewarm} captures a reusable template snapshot at
118
+ * {@link SandboxBackend.prewarm} captures reusable template state at
119
119
  * build time, and {@link SandboxBackend.create} starts or reattaches a
120
120
  * live session from that template at runtime.
121
121
  */
@@ -124,7 +124,7 @@ export interface SandboxBackend<BO = Record<string, never>, SO = Record<string,
124
124
  * Stable identifier for this backend implementation.
125
125
  *
126
126
  * Participates in cache-key derivation and the persisted reconnect
127
- * state, so two backends that should not share template snapshots
127
+ * state, so two backends that should not share template state
128
128
  * must use distinct names. Built-in backends use `"vercel"` and
129
129
  * `"local"`. Custom backends pick a unique string.
130
130
  */
@@ -139,10 +139,10 @@ export interface SandboxBackend<BO = Record<string, never>, SO = Record<string,
139
139
  /**
140
140
  * Build-time prewarm hook. Eve invokes this for every authored
141
141
  * sandbox in the compiled graph before serving traffic so the backend
142
- * can capture a reusable template snapshot. Idempotent against an
143
- * existing snapshot keyed by `templateKey`.
142
+ * can capture reusable template state. Idempotent against existing state
143
+ * keyed by `templateKey`.
144
144
  *
145
- * Returns whether the snapshot was reused from a prior run or captured
145
+ * Returns whether the state was reused from a prior run or captured
146
146
  * fresh so the build pipeline can surface that in its logs.
147
147
  */
148
148
  prewarm(input: SandboxBackendPrewarmInput<BO>): Promise<SandboxBackendPrewarmResult>;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Outcome of a source-to-source edit attempt. Pure data. On success it carries
3
+ * the rewritten source, so the caller owns the filesystem write.
4
+ */
5
+ export type SourceEdit = {
6
+ readonly kind: "applied";
7
+ readonly from: string;
8
+ readonly to: string;
9
+ readonly nextSource: string;
10
+ } | {
11
+ readonly kind: "bail";
12
+ readonly reason: string;
13
+ readonly line: number;
14
+ };
15
+ /**
16
+ * Rewrites the `model` string literal passed to `defineAgent({ ... })` in
17
+ * `sourceText`, returning the edited source.
18
+ *
19
+ * Pure transform: parses with oxc, finds the literal's byte span, and splices
20
+ * only those bytes, so comments, formatting, and quote style everywhere else
21
+ * are preserved by construction. Bails (no edit) when `model` is absent or
22
+ * isn't a plain string literal. An env reference, a template, an inlined SDK
23
+ * model object, or a spread all opt out into the manual path instead.
24
+ */
25
+ export declare function applyModelNameToSource(sourceText: string, modelName: string): SourceEdit;
@@ -0,0 +1,2 @@
1
+ import{parseSync}from"oxc-parser";const AGENT_FACTORY=`defineAgent`;function applyModelNameToSource(n,r){let i=parseSync(`agent.ts`,n,{lang:`ts`});if(i.errors.length>0){let e=i.errors[0];return{kind:`bail`,reason:`agent.ts does not parse: ${e?.message??`unknown parse error`}`,line:lineAt(n,e?.labels[0]?.start??0)}}let a=findDefineAgentObject(i.program,AGENT_FACTORY);if(a===void 0)return{kind:`bail`,reason:`no \`export default ${AGENT_FACTORY}({ ... })\` call found`,line:1};let o=findStringLiteralProperty(a,`model`);if(o===void 0)return{kind:`bail`,reason:"`model` is absent or is not a string literal (e.g. an env reference, a template, or an inlined SDK model)",line:lineAt(n,a.start)};let s=o.value;if(s===r)return{kind:`applied`,from:s,to:r,nextSource:n};let c=o.raw?.[0]===`'`?`'`:`"`,l=`${c}${escapeForQuote(r,c)}${c}`;return{kind:`applied`,from:s,to:r,nextSource:n.slice(0,o.start)+l+n.slice(o.end)}}function unwrapExpression(e){let t=e;for(;t.type===`ParenthesizedExpression`||t.type===`TSAsExpression`||t.type===`TSSatisfiesExpression`;)t=t.expression;return t}function findDefineAgentObject(e,t){for(let n of e.body){if(n.type!==`ExportDefaultDeclaration`)continue;let e=n.declaration;if(e.type!==`CallExpression`&&e.type!==`ParenthesizedExpression`&&e.type!==`TSAsExpression`&&e.type!==`TSSatisfiesExpression`)continue;let r=unwrapExpression(e);if(r.type!==`CallExpression`||!isFactoryCallee(r.callee,t))continue;let i=r.arguments[0];if(i===void 0||i.type===`SpreadElement`)continue;let a=unwrapExpression(i);if(a.type===`ObjectExpression`)return a}}function isFactoryCallee(e,t){return e.type===`Identifier`&&e.name===t}function findStringLiteralProperty(e,t){for(let n of e.properties){if(n.type!==`Property`||n.computed||!keyMatches(n.key,t))continue;let e=unwrapExpression(n.value);return e.type===`Literal`&&typeof e.value==`string`?e:void 0}}function keyMatches(e,t){return e.type===`Identifier`?e.name===t:e.type===`Literal`?typeof e.value==`string`&&e.value===t:!1}function escapeForQuote(e,t){return e.replaceAll(`\\`,`\\\\`).replaceAll(t,`\\${t}`)}function lineAt(e,t){let n=1;for(let r=0;r<t&&r<e.length;r+=1)e[r]===`
2
+ `&&(n+=1);return n}export{applyModelNameToSource};
@@ -0,0 +1,36 @@
1
+ import type { AgentSourceManifest } from "#discover/manifest.js";
2
+ /**
3
+ * Outcome of a static source change, returned to upstream callers (CLI, web
4
+ * setup UI) so they can render success or route the bail to a guided fix.
5
+ */
6
+ export type ApplyResult = {
7
+ readonly kind: "applied";
8
+ readonly from: string;
9
+ readonly to: string;
10
+ } | {
11
+ readonly kind: "bail";
12
+ readonly reason: string;
13
+ readonly at: {
14
+ readonly logicalPath: string;
15
+ readonly line: number;
16
+ };
17
+ };
18
+ /**
19
+ * Central, flat API for applying targeted edits to an agent's authored source.
20
+ *
21
+ * Built from a discovery manifest, which already carries every resource's
22
+ * `ModuleSourceRef`, so each operation can locate the file it edits without
23
+ * recompiling. Consumers depend only on this interface.
24
+ */
25
+ export interface StaticSourceChange {
26
+ /**
27
+ * Rewrites the agent's `model` in `agent.ts` in place. Bails (no write) when
28
+ * the value isn't a string literal; the bail carries the source location so
29
+ * the caller can offer a manual fix.
30
+ */
31
+ updateModelName(modelName: string): Promise<ApplyResult>;
32
+ }
33
+ /**
34
+ * Creates the {@link StaticSourceChange} surface bound to one discovered agent.
35
+ */
36
+ export declare function createStaticSourceChange(manifest: AgentSourceManifest): StaticSourceChange;
@@ -0,0 +1 @@
1
+ import{join}from"node:path";import{readFile,rename,writeFile}from"node:fs/promises";import{applyModelNameToSource}from"#source-change/apply-model-name.js";function createStaticSourceChange(e){return{updateModelName:t=>updateAgentModelName(e,t)}}async function updateAgentModelName(n,r){let i=n.configModule;if(i===void 0)return{kind:`bail`,reason:`agent has no agent.ts config module to edit`,at:{logicalPath:`agent.ts`,line:1}};let a=join(n.agentRoot,i.logicalPath),o=await readFile(a,`utf8`),s=applyModelNameToSource(o,r);if(s.kind===`bail`)return{kind:`bail`,reason:s.reason,at:{logicalPath:i.logicalPath,line:s.line}};if(s.nextSource!==o){let e=`${a}.${process.pid}.eve-tmp`;await writeFile(e,s.nextSource,`utf8`),await rename(e,a)}return{kind:`applied`,from:s.from,to:s.to}}export{createStaticSourceChange};
@@ -1,3 +1,3 @@
1
- import { n as defaultMessageReducer, t as useEveAgent } from "../chunks/use-eve-agent-DoheC4_o.js";
1
+ import { n as defaultMessageReducer, t as useEveAgent } from "../chunks/use-eve-agent-DoR8C4i6.js";
2
2
 
3
3
  export { defaultMessageReducer, useEveAgent };
@@ -1,3 +1,3 @@
1
- import { t as useEveAgent } from "../chunks/use-eve-agent-DoheC4_o.js";
1
+ import { t as useEveAgent } from "../chunks/use-eve-agent-DoR8C4i6.js";
2
2
 
3
3
  export { useEveAgent };
@@ -1,3 +1,3 @@
1
- import { n as defaultMessageReducer, t as useEveAgent } from "../chunks/use-eve-agent-DCZbkLG7.js";
1
+ import { n as defaultMessageReducer, t as useEveAgent } from "../chunks/use-eve-agent-DErQj5hs.js";
2
2
 
3
3
  export { defaultMessageReducer, useEveAgent };
@@ -1,3 +1,3 @@
1
- import { t as useEveAgent } from "../chunks/use-eve-agent-DCZbkLG7.js";
1
+ import { t as useEveAgent } from "../chunks/use-eve-agent-DErQj5hs.js";
2
2
 
3
3
  export { useEveAgent };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eve",
3
- "version": "0.6.0-beta.8",
3
+ "version": "0.7.0",
4
4
  "private": false,
5
5
  "description": "Filesystem-first framework for durable backend AI agents that run anywhere.",
6
6
  "keywords": [
@@ -135,6 +135,11 @@
135
135
  "import": "./dist/src/evals/index.js",
136
136
  "default": "./dist/src/evals/index.js"
137
137
  },
138
+ "./evals/expect": {
139
+ "types": "./dist/src/evals/expect/index.d.ts",
140
+ "import": "./dist/src/evals/expect/index.js",
141
+ "default": "./dist/src/evals/expect/index.js"
142
+ },
138
143
  "./evals/loaders": {
139
144
  "types": "./dist/src/evals/loaders/index.d.ts",
140
145
  "import": "./dist/src/evals/loaders/index.js",
@@ -145,11 +150,6 @@
145
150
  "import": "./dist/src/evals/reporters/index.js",
146
151
  "default": "./dist/src/evals/reporters/index.js"
147
152
  },
148
- "./evals/scores": {
149
- "types": "./dist/src/evals/scores/index.d.ts",
150
- "import": "./dist/src/evals/scores/index.js",
151
- "default": "./dist/src/evals/scores/index.js"
152
- },
153
153
  "./skills": {
154
154
  "types": "./dist/src/public/skills/index.d.ts",
155
155
  "import": "./dist/src/public/skills/index.js",
@@ -232,24 +232,6 @@
232
232
  "import": "./dist/src/setup/scaffold/index.js",
233
233
  "default": "./dist/src/setup/scaffold/index.js"
234
234
  },
235
- "./setup/scaffold/cli": {
236
- "eve-source": "./src/setup/scaffold/cli/index.ts",
237
- "types": "./dist/src/setup/scaffold/cli/index.d.ts",
238
- "import": "./dist/src/setup/scaffold/cli/index.js",
239
- "default": "./dist/src/setup/scaffold/cli/index.js"
240
- },
241
- "./setup/scaffold/steps": {
242
- "eve-source": "./src/setup/scaffold/steps/index.ts",
243
- "types": "./dist/src/setup/scaffold/steps/index.d.ts",
244
- "import": "./dist/src/setup/scaffold/steps/index.js",
245
- "default": "./dist/src/setup/scaffold/steps/index.js"
246
- },
247
- "./setup/scaffold/primitives": {
248
- "eve-source": "./src/setup/scaffold/primitives/index.ts",
249
- "types": "./dist/src/setup/scaffold/primitives/index.d.ts",
250
- "import": "./dist/src/setup/scaffold/primitives/index.js",
251
- "default": "./dist/src/setup/scaffold/primitives/index.js"
252
- },
253
235
  "./setup": {
254
236
  "eve-source": "./src/setup/index.ts",
255
237
  "types": "./dist/src/setup/index.d.ts",
@@ -261,14 +243,14 @@
261
243
  "access": "public"
262
244
  },
263
245
  "dependencies": {
264
- "nitro": "3.0.260522-beta"
246
+ "nitro": "3.0.260610-beta"
265
247
  },
266
248
  "devDependencies": {
267
- "@ai-sdk/anthropic": "4.0.0-canary.63",
268
- "@ai-sdk/google": "4.0.0-canary.79",
269
- "@ai-sdk/mcp": "2.0.0-canary.59",
270
- "@ai-sdk/openai": "4.0.0-canary.69",
271
- "@ai-sdk/otel": "1.0.0-canary.111",
249
+ "@ai-sdk/anthropic": "4.0.0-canary.65",
250
+ "@ai-sdk/google": "4.0.0-canary.80",
251
+ "@ai-sdk/mcp": "2.0.0-canary.62",
252
+ "@ai-sdk/openai": "4.0.0-canary.72",
253
+ "@ai-sdk/otel": "1.0.0-canary.117",
272
254
  "@ai-sdk/provider": "4.0.0-canary.18",
273
255
  "@chat-adapter/slack": "4.29.0",
274
256
  "@chat-adapter/state-memory": "4.29.0",
@@ -281,21 +263,23 @@
281
263
  "@types/react-test-renderer": "19.1.0",
282
264
  "@vercel/oidc": "3.5.0",
283
265
  "@vercel/sandbox": "2.1.0",
284
- "@workflow/core": "5.0.0-beta.13",
266
+ "@workflow/core": "5.0.0-beta.14",
285
267
  "@workflow/errors": "5.0.0-beta.7",
286
- "@workflow/world": "5.0.0-beta.7",
287
- "@workflow/world-local": "5.0.0-beta.13",
288
- "ai": "7.0.0-canary.165",
268
+ "@workflow/world": "5.0.0-beta.8",
269
+ "@workflow/world-local": "5.0.0-beta.15",
270
+ "ai": "7.0.0-canary.171",
289
271
  "autoevals": "0.0.132",
290
272
  "chat": "4.29.0",
291
273
  "chokidar": "5.0.0",
292
274
  "commander": "14.0.3",
275
+ "emulate": "^0.6.0",
293
276
  "experimental-ai-sdk-code-mode": "1.0.14",
294
277
  "gray-matter": "4.0.3",
295
278
  "jose": "6.2.3",
296
279
  "jsonc-parser": "3.3.1",
297
280
  "just-bash": "3.0.1",
298
281
  "next": "16.2.6",
282
+ "oxc-parser": "^0.134.0",
299
283
  "picocolors": "1.1.1",
300
284
  "react": "19.2.6",
301
285
  "react-test-renderer": "19.2.6",
@@ -305,12 +289,12 @@
305
289
  "vue": "^3.5.0",
306
290
  "zod": "4.4.3",
307
291
  "zod-validation-error": "5.0.0",
308
- "@vercel/eve-catalog": "0.0.0"
292
+ "@vercel/eve-catalog": "0.0.1"
309
293
  },
310
294
  "peerDependencies": {
311
295
  "@opentelemetry/api": "^1.0.0",
312
296
  "@sveltejs/kit": "^2.0.0",
313
- "ai": "7.0.0-canary.165",
297
+ "ai": "7.0.0-canary.171",
314
298
  "braintrust": "^3.0.0",
315
299
  "next": "^16.0.0",
316
300
  "nuxt": "^4.0.0",
@@ -359,13 +343,14 @@
359
343
  "build:types": "pnpm run build:compiled && tsgo -p tsconfig.build.json",
360
344
  "dev": "pnpm run build:compiled && tsgo -p tsconfig.dev.json --watch --preserveWatchOutput",
361
345
  "test": "pnpm run test:unit && pnpm run test:integration",
362
- "test:e2e": "vitest run --config vitest.e2e.config.ts",
363
346
  "test:integration": "pnpm run build:js && vitest run --config vitest.integration.config.ts",
364
347
  "test:scenario": "pnpm run build:compiled && vitest run --config vitest.scenario.config.ts",
365
348
  "test:unit": "pnpm run build:compiled && vitest run --config vitest.unit.config.ts",
366
349
  "test:watch": "pnpm run build:compiled && vitest --config vitest.unit.config.ts",
367
350
  "typecheck": "pnpm run check:web-template && pnpm run build:compiled && tsgo -p tsconfig.json --noEmit",
368
351
  "generate:web-template": "node src/setup/build.ts --write",
369
- "check:web-template": "node src/setup/build.ts --check"
352
+ "check:web-template": "node src/setup/build.ts --check",
353
+ "test:tui": "pnpm run build:js && tsgo -p tsconfig.tui.json --noEmit && node test/tui-client/run-all.mjs",
354
+ "test:vercel": "vitest run --config vitest.vercel.config.ts"
370
355
  }
371
356
  }
@@ -1,121 +0,0 @@
1
- ---
2
- title: "Evals"
3
- description: "Define repeatable scored checks for an Eve agent with defineEvalSuite and run them with eve eval."
4
- ---
5
-
6
- An eval is a scored check that runs your agent against real sessions and grades the result. Use it to catch regressions when you change a prompt or a tool: compare the output against expected text, JSON, SQL, or behavior, and optionally ship the results to Braintrust.
7
-
8
- ## `defineEvalSuite`
9
-
10
- Eve discovers suites under the app-root `evals/` directory, in `.eval.ts` files. The file path is the suite's identity, so you don't author an `id` or `name`.
11
-
12
- ```text
13
- my-agent/
14
- ├── agent/
15
- ├── evals/
16
- │ ├── smoke.eval.ts
17
- │ └── weather.eval.ts
18
- └── package.json
19
- ```
20
-
21
- ```ts title="evals/weather.eval.ts"
22
- import { defineEvalSuite } from "eve/evals";
23
- import { Run } from "eve/evals/scores";
24
-
25
- export default defineEvalSuite({
26
- model: "anthropic/claude-opus-4.8",
27
- description: "Basic message and tool-usage coverage for the weather agent.",
28
- cases: [
29
- { id: "brooklyn-forecast", input: "What is the weather in Brooklyn?", expected: "Sunny" },
30
- ],
31
- scores: [Run.didNotFail()],
32
- });
33
- ```
34
-
35
- Every suite needs `model`, `scores`, and either `cases` or `load`. The rest are optional: `description`, `task`, `thresholds`, `modelOptions`, `tags`, `metadata`, `maxConcurrency`, `timeoutMs`, `reporters`. The init template adds `evals/**/*.ts` to `tsconfig.json`, so your eval code type-checks alongside the app.
36
-
37
- One thing that trips people up: `model` is the scorer model, not the agent's. Eve only uses it for model-backed scoring, never to swap out the agent under test. Pass a string id (e.g. `"anthropic/claude-opus-4.8"`) to route through the Vercel AI Gateway, or hand it an AI SDK model instance to use that directly.
38
-
39
- ## Cases and tasks
40
-
41
- A case pairs an `input` with an `expected`, plus optional tags and metadata. `input` can be a string or an object. `expected` is optional, which is handy when you only care about behavior. List cases inline, or load them dynamically:
42
-
43
- ```ts
44
- import { defineEvalSuite } from "eve/evals";
45
- import { loadYaml } from "eve/evals/loaders";
46
- import { Text } from "eve/evals/scores";
47
-
48
- export default defineEvalSuite({
49
- model: "anthropic/claude-opus-4.8",
50
- async load() {
51
- const doc = await loadYaml("evals/data/cases.yaml");
52
- return (doc.evals as readonly { task: string; prompt: string; sql: string }[]).map((row) => ({
53
- id: row.task,
54
- input: row.prompt,
55
- expected: row.sql,
56
- }));
57
- },
58
- scores: [Text.exact()],
59
- });
60
- ```
61
-
62
- The loaders (`loadJson`, `loadYaml` from `eve/evals/loaders`) resolve paths relative to the app root. They're meant for fixtures, not runtime agent code. For the task itself, `task.prompt` covers the single-string case, `task.messages` sets up a multi-turn conversation, and `task.parseOutput` lets you compare a transformed result rather than the raw final message.
63
-
64
- ## Scorers and rubrics
65
-
66
- Scorers live in namespaces on `eve/evals/scores`. Pick the cheapest one that captures what "correct" means here. The deterministic scorers run instantly for free; an LLM judge runs once per case and burns tokens, so save it for when nothing simpler will do.
67
-
68
- | Need | Use |
69
- | ----------------------------------------------------------- | -------------------------------------------------------------------------------------- |
70
- | Assert agent behavior (run succeeded, used the right tools) | `Run.didNotFail()`, `Run.usedTool(name)`, `Run.usedNoTools()`, `Run.maxToolCalls(max)` |
71
- | Exact string match | `Text.exact()`, `Text.includes()` |
72
- | Fuzzy text match (typos, whitespace) | `Text.levenshtein()` |
73
- | Exact JSON match | `Json.deepEqual()` |
74
- | Exact SQL match (after normalization) | `Sql.exactNormalized()` |
75
- | LLM-judged factual correctness vs an expected answer | `Autoevals.factuality()` |
76
- | LLM-judged summary quality | `Autoevals.summary()` |
77
- | LLM-judged SQL semantic equivalence | `Autoevals.sql()` |
78
- | LLM-judged free-form criteria (no `expected` to match) | `Autoevals.closedQA({ criteria: "..." })` |
79
-
80
- Each scorer gets the flattened `input`, `output`, and `expected` strings along with the full case and task result. Return `null` from a scorer to skip a case.
81
-
82
- ### Thresholds
83
-
84
- By default a scorer has to hit an exact match to pass. `thresholds` loosens that, mapping each scorer name to the minimum score you'll accept:
85
-
86
- ```ts
87
- defineEvalSuite({
88
- model: "anthropic/claude-opus-4.8",
89
- cases: [{ id: "hello", input: "Hello", expected: "Hello" }],
90
- scores: [Run.didNotFail(), Text.includes()],
91
- thresholds: { "run.didNotFail": 1, "text.includes": 0.5 },
92
- });
93
- ```
94
-
95
- `maxConcurrency` caps parallelism and `timeoutMs` bounds each case. Leave them off and `eve eval` runs up to 8 cases per suite at once. For provider-specific scorer-model settings, use `modelOptions.providerOptions`. Individual Autoevals scorers can also take their own `model` / `modelOptions`, which win over the suite default.
96
-
97
- ## Reporters
98
-
99
- Suite-level reporters live on `eve/evals/reporters`. Right now the public surface is `Braintrust(...)`, which uploads suite results to Braintrust experiments. Eve still runs and scores everything itself; the reporter just ships the results out. Suite and case `metadata` ride along to the reporter, and the CLI prints a console summary by default.
100
-
101
- ## Running evals
102
-
103
- ```bash
104
- eve eval # run discovered suites locally
105
- eve eval --all # run all discovered suites
106
- eve eval --suite weather # run selected suites
107
- eve eval --url https://<app> # target a remote app instead of a local host
108
- eve eval --json # machine-readable output
109
- eve eval --skip-report # skip suite-defined reporters (e.g. Braintrust)
110
- ```
111
-
112
- Each run drops per-suite artifacts under `.eve/evals/<timestamp>-<suite-id>/`.
113
-
114
- ## A good baseline
115
-
116
- Most apps do fine with a small smoke suite. Score behavior with `Run.didNotFail()` and one or two content assertions, keep case fixtures in `evals/data/`, and only reach for Braintrust once you actually need shared result review or experiment history.
117
-
118
- ## What to read next
119
-
120
- - [Tools](../tools): the surface most evals assert on
121
- - [instrumentation.ts](./instrumentation): tracing and debugging
@@ -1,55 +0,0 @@
1
- import { type DeploymentInfo } from "#setup/scaffold/primitives/index.js";
2
- import { type Prompter } from "#setup/prompter.js";
3
- import { type ArgsHeadlessAiGateway, type ArgsHeadlessProject, type ChannelKind, type ChatPreference } from "#setup/state.js";
4
- export interface SetupCliLogger {
5
- error(message: string): void;
6
- log(message: string): void;
7
- }
8
- /**
9
- * Preset answers for a headless `eve setup` run. They mirror the create flow's
10
- * preset options so a headless onboarding run is fully determined by its
11
- * inputs; each field is threaded into the matching onboarding box option.
12
- */
13
- export interface SetupCommandPresets {
14
- presetName?: string;
15
- presetModel?: string;
16
- presetChannels?: ChannelKind[];
17
- presetCreateSlackbot?: boolean;
18
- presetNoDeploy?: boolean;
19
- overwriteExisting?: boolean;
20
- presetConnections?: string[];
21
- presetChatPreference?: ChatPreference;
22
- }
23
- export interface SetupCommandOptions {
24
- /**
25
- * Programmatic-only for now: the `eve setup` CLI registers no headless flags,
26
- * so a headless run is only reachable through this API with presets that
27
- * answer every decision. The CLI fails fast on a non-interactive terminal
28
- * instead of silently entering a headless run that cannot succeed.
29
- */
30
- headless?: boolean;
31
- /** Override for the scaffolded `eve` dependency version. Defaults to "beta",
32
- * matching the create flow; ai/zod/tsgo come from build-stamped defaults. */
33
- evePackageVersion?: string;
34
- presets?: SetupCommandPresets;
35
- /** Headless-only Vercel provisioning flags, mirroring the create flow. */
36
- provisioning?: {
37
- project: ArgsHeadlessProject;
38
- aiGateway: ArgsHeadlessAiGateway;
39
- };
40
- }
41
- export interface SetupCommandDependencies {
42
- createPrompter: () => Prompter;
43
- detectDeployment(projectPath: string): Promise<DeploymentInfo>;
44
- isEveProject(projectPath: string): Promise<boolean>;
45
- hasInteractiveTerminal(): boolean;
46
- }
47
- /**
48
- * The unified `eve setup` entry. In a directory that is not yet an Eve project
49
- * it runs the SAME onboarding composition as `pnpm create eve`, scaffolding in
50
- * place; inside an existing project it runs in-project setup: the channel
51
- * interview, then channel scaffolding, then deploy, against the detected
52
- * on-disk project link. Both compose the shared boxes through the shared
53
- * runner.
54
- */
55
- export declare function runSetupCommand(logger: SetupCliLogger, appRoot: string, options: SetupCommandOptions, dependencies?: SetupCommandDependencies): Promise<void>;
@@ -1 +0,0 @@
1
- import{basename}from"node:path";import{isEveProject}from"#setup/scaffold/index.js";import{createAddToAgentState}from"#setup/scaffold/steps/index.js";import{detectDeployment}from"#setup/scaffold/primitives/index.js";import{addChannels}from"#setup/boxes/add-channels.js";import{deployProject as deployProject$1}from"#setup/boxes/deploy-project.js";import{selectChannels}from"#setup/boxes/select-channels.js";import{composeOnboardingBoxes}from"#setup/onboarding.js";import{createPrompter}from"#setup/prompter.js";import{runHeadless,runInteractive}from"#setup/runner.js";import{createDefaultSetupState,snapshotSetupState}from"#setup/state.js";const defaultDependencies={createPrompter,detectDeployment,isEveProject,hasInteractiveTerminal:()=>!!(process.stdin.isTTY&&process.stdout.isTTY)};async function runSetupCommand(t,n,r,i=defaultDependencies){let a=!await i.isEveProject(n),o=r.evePackageVersion??`beta`,s=r.presets??{},c=r.headless!==!0;if(c&&!i.hasInteractiveTerminal()){t.error("eve setup is interactive and needs a terminal. For automation, use `create-eve --headless` to scaffold a new agent or `eve channels add` inside an existing project."),process.exitCode=1;return}let l=i.createPrompter(),u={write:e=>l.log.message(e)};l.intro(a?`Create a new Eve agent`:`Set up your Eve agent`);let d=a?`Agent created.`:`Setup complete.`,f,p;a?(f=createDefaultSetupState(),p=composeOnboardingBoxes({prompter:l,presetName:s.presetName,presetModel:s.presetModel,presetChannels:s.presetChannels,presetConnections:s.presetConnections,presetCreateSlackbot:s.presetCreateSlackbot,provisioning:r.provisioning,presetChatPreference:s.presetChatPreference??`skip`,targetDirectory:n,inPlace:!0,overwriteExisting:s.overwriteExisting,presetNoDeploy:s.presetNoDeploy,headless:!c,evePackageVersion:o})):(l.log.message(`Checking the current Vercel project...`),f={...createDefaultSetupState(),...createAddToAgentState(await i.detectDeployment(n)),agentName:basename(n),projectPath:{kind:`resolved`,inPlace:!0,path:n}},p=[selectChannels({prompter:l,presetChannels:s.presetChannels}),addChannels({prompter:l,evePackageVersion:o,presetCreateSlackbot:s.presetCreateSlackbot}),deployProject$1({prompter:l,skip:s.presetNoDeploy})]);try{if(c){let e=await runInteractive(p,f,u,{snapshot:snapshotSetupState});l.outro(e.kind===`cancelled`?`Cancelled.`:d);return}await runHeadless(p,f,u,{snapshot:snapshotSetupState}),l.outro(d)}catch(e){t.error(e instanceof Error?e.message:String(e)),process.exitCode=1}}export{runSetupCommand};
@@ -1,38 +0,0 @@
1
- import type { HandleMessageStreamEvent } from "#protocol/message.js";
2
- import type { InputRequest, InputResponse } from "#runtime/input/types.js";
3
- import { type CliTheme } from "#cli/ui/output.js";
4
- /**
5
- * Sentinel returned when the CLI user pressed Escape while responding to a
6
- * pending runtime input request.
7
- */
8
- export declare const ESCAPED_RUNTIME_INPUT_PROMPT: unique symbol;
9
- /**
10
- * One raw answer collected from the CLI while prompting for pending runtime
11
- * input requests.
12
- */
13
- export type RuntimeInputPromptValue = string | typeof ESCAPED_RUNTIME_INPUT_PROMPT | undefined;
14
- /**
15
- * Outcome of one interactive CLI prompt pass for pending runtime input.
16
- */
17
- export type RuntimeInputPromptResult = {
18
- readonly inputResponses: readonly InputResponse[];
19
- readonly kind: "submitted";
20
- } | {
21
- readonly kind: "deferred";
22
- } | {
23
- readonly kind: "aborted";
24
- };
25
- /**
26
- * Returns the last pending runtime-input batch emitted in one turn, if any.
27
- */
28
- export declare function extractPendingRuntimeInputRequests(events: readonly HandleMessageStreamEvent[]): readonly InputRequest[];
29
- /**
30
- * Interactively collects CLI-native responses for pending runtime input
31
- * requests.
32
- */
33
- export declare function promptForRuntimeInputRequests(input: {
34
- ask(prompt: string): Promise<RuntimeInputPromptValue>;
35
- print(message: string): void;
36
- requests: readonly InputRequest[];
37
- theme: CliTheme;
38
- }): Promise<RuntimeInputPromptResult>;
@@ -1 +0,0 @@
1
- import{renderCliTaggedLine}from"#cli/ui/output.js";import{resolveTextToResponse}from"#channel/resolve-text.js";const ESCAPED_RUNTIME_INPUT_PROMPT=Symbol(`eve.cli.runtime-input.escaped`);function extractPendingRuntimeInputRequests(e){for(let t=e.length-1;t>=0;--t){let n=e[t];if(n?.type===`input.requested`)return n.data.requests}return[]}async function promptForRuntimeInputRequests(t){let n=[];t.print(renderCliTaggedLine(t.theme,{message:`pending input request${t.requests.length===1?``:`s`}: reply now, press Escape, or type "skip" to return to the normal prompt`,tag:`input`,tone:`info`}));for(let e of t.requests){let r=await promptForRuntimeInputRequest({ask:t.ask,print:t.print,request:e,theme:t.theme});if(r.kind!==`submitted`)return r;n.push(r.inputResponse)}return{inputResponses:n,kind:`submitted`}}function isApprovalRequest(e){return e.display===`confirmation`}async function promptForRuntimeInputRequest(e){return isApprovalRequest(e.request)?await promptForApprovalInputRequest({ask:e.ask,print:e.print,request:e.request,theme:e.theme}):await promptForQuestionInputRequest({ask:e.ask,print:e.print,request:e.request,theme:e.theme})}async function promptForApprovalInputRequest(t){for(t.print(renderCliTaggedLine(t.theme,{message:`approve tool "${t.request.action.toolName}"? (yes/no)`,tag:`approval`,tone:`warning`})),t.print(renderCliTaggedLine(t.theme,{message:JSON.stringify(t.request.action.input,null,2),tag:`tool`,tone:`muted`}));;){let r=await t.ask(`approval> `);if(r===void 0)return{kind:`aborted`};if(r===ESCAPED_RUNTIME_INPUT_PROMPT)return{kind:`deferred`};let i=r.trim().toLowerCase();if(i===`skip`||i===`/skip`)return{kind:`deferred`};if(i===`a`||i===`approve`||i===`y`||i===`yes`)return{inputResponse:{optionId:`approve`,requestId:t.request.requestId},kind:`submitted`};if(i===`d`||i===`deny`||i===`n`||i===`no`)return{inputResponse:{optionId:`deny`,requestId:t.request.requestId},kind:`submitted`};t.print(renderCliTaggedLine(t.theme,{message:`enter "yes" to approve, "no" to deny, press Escape, or type "skip" to return to the normal prompt`,tag:`input`,tone:`warning`}))}}async function promptForQuestionInputRequest(r){r.print(renderCliTaggedLine(r.theme,{message:r.request.prompt,tag:`question`,tone:`info`}));for(let[t,n]of(r.request.options??[]).entries())r.print(renderCliTaggedLine(r.theme,{message:`${t+1}. ${n.label}${n.description===void 0?``:` - ${n.description}`}`,tag:`option`,tone:`muted`}));let i=r.request.allowFreeform===!0||(r.request.options?.length??0)===0;for(;;){let a=await r.ask(`answer> `);if(a===void 0)return{kind:`aborted`};if(a===ESCAPED_RUNTIME_INPUT_PROMPT)return{kind:`deferred`};let o=a.trim();if(o===`skip`||o===`/skip`)return{kind:`deferred`};let s=resolveTextToResponse(o,r.request);if(s!==void 0)return{inputResponse:s,kind:`submitted`};r.print(renderCliTaggedLine(r.theme,{message:r.request.options===void 0||r.request.options.length===0?`enter a response, press Escape, or type "skip" to return to the normal prompt`:i?`enter an option number/id, freeform text, press Escape, or type "skip" to return to the normal prompt`:`enter an option number/id, press Escape, or type "skip" to return to the normal prompt`,tag:`input`,tone:`warning`}))}}export{ESCAPED_RUNTIME_INPUT_PROMPT,extractPendingRuntimeInputRequests,promptForRuntimeInputRequests};
@@ -1,19 +0,0 @@
1
- /**
2
- * Parsed result for one line of interactive `eve dev` input.
3
- */
4
- export type DevReplInput = {
5
- kind: "empty";
6
- } | {
7
- kind: "exit";
8
- } | {
9
- kind: "help";
10
- } | {
11
- kind: "new";
12
- } | {
13
- kind: "message";
14
- message: string;
15
- };
16
- /**
17
- * Parse one line of input for the minimal development REPL.
18
- */
19
- export declare function parseDevReplInput(value: string): DevReplInput;