eve 0.6.0-beta.9 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (650) hide show
  1. package/CHANGELOG.md +281 -0
  2. package/README.md +9 -6
  3. package/dist/docs/public/README.md +17 -12
  4. package/dist/docs/public/agent-config.md +10 -10
  5. package/dist/docs/public/channels/custom.mdx +4 -4
  6. package/dist/docs/public/channels/discord.mdx +1 -1
  7. package/dist/docs/public/channels/eve.mdx +10 -10
  8. package/dist/docs/public/channels/github.mdx +1 -1
  9. package/dist/docs/public/channels/overview.mdx +21 -15
  10. package/dist/docs/public/channels/slack.mdx +16 -4
  11. package/dist/docs/public/channels/teams.mdx +1 -1
  12. package/dist/docs/public/channels/telegram.mdx +1 -1
  13. package/dist/docs/public/channels/twilio.mdx +1 -1
  14. package/dist/docs/public/{advanced → concepts}/context-control.md +3 -3
  15. package/dist/docs/public/{advanced → concepts}/default-harness.md +5 -5
  16. package/dist/docs/public/{advanced → concepts}/execution-model-and-durability.md +3 -1
  17. package/dist/docs/public/concepts/meta.json +10 -0
  18. package/dist/docs/public/{advanced → concepts}/security-model.md +3 -3
  19. package/dist/docs/public/{advanced → concepts}/sessions-runs-and-streaming.md +7 -7
  20. package/dist/docs/public/connections.mdx +6 -4
  21. package/dist/docs/public/evals/assertions.mdx +108 -0
  22. package/dist/docs/public/evals/cases.mdx +143 -0
  23. package/dist/docs/public/evals/judge.mdx +94 -0
  24. package/dist/docs/public/evals/meta.json +4 -0
  25. package/dist/docs/public/evals/overview.mdx +118 -0
  26. package/dist/docs/public/evals/reporters.mdx +62 -0
  27. package/dist/docs/public/evals/running.mdx +63 -0
  28. package/dist/docs/public/evals/targets.mdx +54 -0
  29. package/dist/docs/public/getting-started.mdx +38 -33
  30. package/dist/docs/public/{advanced → guides}/auth-and-route-protection.md +5 -3
  31. package/dist/docs/public/{client → guides/client}/continuations.mdx +2 -2
  32. package/dist/docs/public/{client → guides/client}/messages.mdx +1 -1
  33. package/dist/docs/public/{client → guides/client}/meta.json +1 -1
  34. package/dist/docs/public/{client → guides/client}/output-schema.mdx +2 -2
  35. package/dist/docs/public/{client → guides/client}/overview.mdx +5 -5
  36. package/dist/docs/public/{client → guides/client}/streaming.mdx +1 -1
  37. package/dist/docs/public/{advanced → guides}/deployment.md +9 -1
  38. package/dist/docs/public/guides/dev-tui.md +50 -0
  39. package/dist/docs/public/{advanced → guides}/dynamic-capabilities.md +1 -1
  40. package/dist/docs/public/{advanced → guides}/dynamic-workflows.md +1 -1
  41. package/dist/docs/public/{frontend → guides/frontend}/nextjs.mdx +16 -7
  42. package/dist/docs/public/{frontend → guides/frontend}/nuxt.mdx +7 -7
  43. package/dist/docs/public/{frontend → guides/frontend}/overview.mdx +6 -6
  44. package/dist/docs/public/{frontend → guides/frontend}/sveltekit.mdx +5 -5
  45. package/dist/docs/public/{frontend → guides/frontend}/use-eve-agent-svelte.mdx +2 -2
  46. package/dist/docs/public/{frontend → guides/frontend}/use-eve-agent-vue.mdx +2 -2
  47. package/dist/docs/public/{advanced → guides}/hooks.md +2 -2
  48. package/dist/docs/public/{advanced → guides}/instrumentation.md +3 -1
  49. package/dist/docs/public/{advanced → guides}/meta.json +8 -12
  50. package/dist/docs/public/{advanced → guides}/session-context.md +3 -3
  51. package/dist/docs/public/{advanced → guides}/state.md +1 -1
  52. package/dist/docs/public/instructions.mdx +2 -2
  53. package/dist/docs/public/introduction.md +5 -2
  54. package/dist/docs/public/meta.json +4 -3
  55. package/dist/docs/public/reference/cli.md +35 -19
  56. package/dist/docs/public/reference/meta.json +1 -1
  57. package/dist/docs/public/reference/project-layout.md +5 -1
  58. package/dist/docs/public/reference/typescript-api.md +27 -23
  59. package/dist/docs/public/sandbox.mdx +1 -1
  60. package/dist/docs/public/schedules.mdx +2 -2
  61. package/dist/docs/public/skills.mdx +3 -3
  62. package/dist/docs/public/subagents.mdx +3 -3
  63. package/dist/docs/public/tools.mdx +4 -8
  64. package/dist/docs/public/tutorial/connect-a-warehouse.mdx +3 -3
  65. package/dist/docs/public/tutorial/first-agent.mdx +6 -3
  66. package/dist/docs/public/tutorial/guard-the-spend.mdx +1 -1
  67. package/dist/docs/public/tutorial/how-it-runs.mdx +2 -2
  68. package/dist/docs/public/tutorial/meta.json +1 -1
  69. package/dist/docs/public/tutorial/query-sample-data.mdx +1 -1
  70. package/dist/docs/public/tutorial/remember-definitions.mdx +3 -3
  71. package/dist/docs/public/tutorial/run-analysis.mdx +1 -1
  72. package/dist/docs/public/tutorial/ship-it.mdx +4 -4
  73. package/dist/docs/public/tutorial/team-playbooks.mdx +3 -3
  74. package/dist/src/chunks/{use-eve-agent-DCZbkLG7.js → use-eve-agent-DErQj5hs.js} +125 -37
  75. package/dist/src/chunks/{use-eve-agent-DoheC4_o.js → use-eve-agent-DoR8C4i6.js} +125 -37
  76. package/dist/src/cli/banner.d.ts +7 -0
  77. package/dist/src/cli/banner.js +1 -0
  78. package/dist/src/cli/commands/channel-add-conflicts.d.ts +1 -1
  79. package/dist/src/cli/commands/channels.d.ts +9 -6
  80. package/dist/src/cli/commands/channels.js +1 -1
  81. package/dist/src/cli/commands/deploy.d.ts +21 -0
  82. package/dist/src/cli/commands/deploy.js +1 -0
  83. package/dist/src/cli/commands/init-git.d.ts +15 -0
  84. package/dist/src/cli/commands/init-git.js +1 -0
  85. package/dist/src/cli/commands/init.d.ts +29 -0
  86. package/dist/src/cli/commands/init.js +1 -0
  87. package/dist/src/cli/commands/link.d.ts +21 -0
  88. package/dist/src/cli/commands/link.js +1 -0
  89. package/dist/src/cli/commands/preconditions.d.ts +7 -0
  90. package/dist/src/cli/commands/preconditions.js +1 -0
  91. package/dist/src/cli/commands/register-project-commands.d.ts +12 -0
  92. package/dist/src/cli/commands/register-project-commands.js +1 -0
  93. package/dist/src/cli/dev/tui/agent-header.d.ts +15 -9
  94. package/dist/src/cli/dev/tui/agent-header.js +1 -1
  95. package/dist/src/cli/dev/tui/blocks.d.ts +1 -1
  96. package/dist/src/cli/dev/tui/blocks.js +3 -2
  97. package/dist/src/cli/dev/tui/command-typeahead.d.ts +47 -0
  98. package/dist/src/cli/dev/tui/command-typeahead.js +1 -0
  99. package/dist/src/cli/dev/tui/dev-rebuild-status.d.ts +21 -0
  100. package/dist/src/cli/dev/tui/dev-rebuild-status.js +1 -0
  101. package/dist/src/cli/dev/tui/errors.d.ts +18 -0
  102. package/dist/src/cli/dev/tui/errors.js +1 -1
  103. package/dist/src/cli/dev/tui/prompt-command-handler.d.ts +14 -0
  104. package/dist/src/cli/dev/tui/prompt-command-handler.js +1 -0
  105. package/dist/src/cli/dev/tui/prompt-commands.d.ts +54 -0
  106. package/dist/src/cli/dev/tui/prompt-commands.js +2 -0
  107. package/dist/src/cli/dev/tui/runner.d.ts +64 -7
  108. package/dist/src/cli/dev/tui/runner.js +1 -1
  109. package/dist/src/cli/dev/tui/setup-commands.d.ts +48 -0
  110. package/dist/src/cli/dev/tui/setup-commands.js +2 -0
  111. package/dist/src/cli/dev/tui/setup-flow.d.ts +35 -0
  112. package/dist/src/cli/dev/tui/setup-issues.d.ts +40 -0
  113. package/dist/src/cli/dev/tui/setup-issues.js +1 -0
  114. package/dist/src/cli/dev/tui/setup-panel.d.ts +103 -0
  115. package/dist/src/cli/dev/tui/setup-panel.js +1 -0
  116. package/dist/src/cli/dev/tui/status-line.d.ts +25 -0
  117. package/dist/src/cli/dev/tui/status-line.js +1 -0
  118. package/dist/src/cli/dev/tui/stream-format.d.ts +16 -1
  119. package/dist/src/cli/dev/tui/stream-format.js +1 -1
  120. package/dist/src/cli/dev/tui/terminal-renderer.d.ts +32 -3
  121. package/dist/src/cli/dev/tui/terminal-renderer.js +5 -2
  122. package/dist/src/cli/dev/tui/test/index.d.ts +3 -1
  123. package/dist/src/cli/dev/tui/test/index.js +1 -1
  124. package/dist/src/cli/dev/tui/test/mock-terminal.d.ts +1 -0
  125. package/dist/src/cli/dev/tui/test/mock-terminal.js +1 -1
  126. package/dist/src/cli/dev/tui/theme.d.ts +10 -0
  127. package/dist/src/cli/dev/tui/theme.js +1 -1
  128. package/dist/src/cli/dev/tui/tui-prompter.d.ts +20 -0
  129. package/dist/src/cli/dev/tui/tui-prompter.js +1 -0
  130. package/dist/src/cli/dev/tui/tui.d.ts +6 -8
  131. package/dist/src/cli/dev/tui/tui.js +1 -1
  132. package/dist/src/cli/dev/tui/types.d.ts +4 -3
  133. package/dist/src/cli/dev/tui/vercel-status.d.ts +47 -0
  134. package/dist/src/cli/dev/tui/vercel-status.js +1 -0
  135. package/dist/src/cli/run.d.ts +9 -18
  136. package/dist/src/cli/run.js +2 -2
  137. package/dist/src/client/client.d.ts +8 -0
  138. package/dist/src/client/client.js +1 -1
  139. package/dist/src/client/file-parts.d.ts +18 -0
  140. package/dist/src/client/file-parts.js +1 -0
  141. package/dist/src/client/index.d.ts +3 -2
  142. package/dist/src/client/index.js +1 -1
  143. package/dist/src/client/message-response.js +1 -1
  144. package/dist/src/client/open-stream.d.ts +6 -0
  145. package/dist/src/client/open-stream.js +1 -1
  146. package/dist/src/client/session-utils.d.ts +5 -0
  147. package/dist/src/client/session-utils.js +1 -1
  148. package/dist/src/client/session.js +1 -1
  149. package/dist/src/client/types.d.ts +9 -2
  150. package/dist/src/compiled/.vendor-stamp.json +8 -8
  151. package/dist/src/compiled/@ai-sdk/anthropic/index.d.ts +56 -31
  152. package/dist/src/compiled/@ai-sdk/anthropic/index.js +2 -2
  153. package/dist/src/compiled/@ai-sdk/google/index.js +1 -1
  154. package/dist/src/compiled/@ai-sdk/mcp/index.js +1 -1
  155. package/dist/src/compiled/@ai-sdk/openai/index.d.ts +16 -9
  156. package/dist/src/compiled/@ai-sdk/openai/index.js +2 -2
  157. package/dist/src/compiled/@ai-sdk/otel/index.js +2 -2
  158. package/dist/src/compiled/@vercel/sandbox/index.js +1 -1
  159. package/dist/src/compiled/@workflow/core/capabilities.d.ts +19 -1
  160. package/dist/src/compiled/@workflow/core/class-serialization.d.ts +32 -0
  161. package/dist/src/compiled/@workflow/core/create-hook.d.ts +37 -0
  162. package/dist/src/compiled/@workflow/core/global.d.ts +11 -1
  163. package/dist/src/compiled/@workflow/core/index.js +2 -2
  164. package/dist/src/compiled/@workflow/core/runtime/helpers.d.ts +4 -2
  165. package/dist/src/compiled/@workflow/core/runtime/start.d.ts +6 -0
  166. package/dist/src/compiled/@workflow/core/runtime/suspension-handler.d.ts +15 -2
  167. package/dist/src/compiled/@workflow/core/runtime/wait-continuation.d.ts +84 -0
  168. package/dist/src/compiled/@workflow/core/runtime/wait-until.d.ts +18 -0
  169. package/dist/src/compiled/@workflow/core/runtime.d.ts +3 -1
  170. package/dist/src/compiled/@workflow/core/runtime.js +28 -28
  171. package/dist/src/compiled/@workflow/core/serialization/types.d.ts +21 -0
  172. package/dist/src/compiled/@workflow/core/serialization.d.ts +113 -6
  173. package/dist/src/compiled/@workflow/core/symbols.d.ts +2 -0
  174. package/dist/src/compiled/@workflow/core/util.d.ts +0 -5
  175. package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
  176. package/dist/src/compiled/@workflow/core/workflow/attribute-dispatcher.d.ts +6 -0
  177. package/dist/src/compiled/@workflow/core/workflow/set-attributes.d.ts +3 -4
  178. package/dist/src/compiled/@workflow/core/workflow.js +1 -1
  179. package/dist/src/compiled/@workflow/world/events.d.ts +48 -0
  180. package/dist/src/compiled/@workflow/world/index.d.ts +3 -3
  181. package/dist/src/compiled/@workflow/world/queue.d.ts +31 -2
  182. package/dist/src/compiled/@workflow/world/runs.d.ts +2 -0
  183. package/dist/src/compiled/@workflow/world/spec-version.d.ts +2 -1
  184. package/dist/src/compiled/_chunks/workflow/attribute-changes-DGVGRGfw.js +59 -0
  185. package/dist/src/compiled/_chunks/workflow/{dist-gEXVSMPU.js → dist-CkMRLaRV.js} +1 -1
  186. package/dist/src/compiled/_chunks/workflow/functions-DuPjIvMH.js +1 -0
  187. package/dist/src/compiled/_chunks/workflow/resume-hook-DMSadN9o.js +1 -0
  188. package/dist/src/compiled/_chunks/workflow/run-BRdn7zy_.js +1 -0
  189. package/dist/src/compiled/_chunks/workflow/sleep-CpXfoXLF.js +1 -0
  190. package/dist/src/compiled/just-bash/index.d.ts +4 -4
  191. package/dist/src/compiler/artifacts.js +1 -1
  192. package/dist/src/compiler/manifest.d.ts +8 -8
  193. package/dist/src/compiler/normalize-agent-config.js +1 -1
  194. package/dist/src/compiler/normalize-channel.d.ts +2 -1
  195. package/dist/src/compiler/normalize-channel.js +1 -1
  196. package/dist/src/compiler/normalize-connection.d.ts +2 -1
  197. package/dist/src/compiler/normalize-connection.js +1 -1
  198. package/dist/src/compiler/normalize-helpers.d.ts +5 -0
  199. package/dist/src/compiler/normalize-helpers.js +1 -1
  200. package/dist/src/compiler/normalize-instructions.d.ts +3 -2
  201. package/dist/src/compiler/normalize-instructions.js +1 -1
  202. package/dist/src/compiler/normalize-manifest.js +2 -2
  203. package/dist/src/compiler/normalize-sandbox.d.ts +2 -1
  204. package/dist/src/compiler/normalize-sandbox.js +1 -1
  205. package/dist/src/compiler/normalize-schedule.d.ts +2 -1
  206. package/dist/src/compiler/normalize-schedule.js +1 -1
  207. package/dist/src/compiler/normalize-skill.d.ts +2 -1
  208. package/dist/src/compiler/normalize-skill.js +1 -1
  209. package/dist/src/compiler/normalize-subagent.d.ts +4 -1
  210. package/dist/src/compiler/normalize-subagent.js +1 -1
  211. package/dist/src/compiler/normalize-tool.d.ts +2 -1
  212. package/dist/src/compiler/normalize-tool.js +1 -1
  213. package/dist/src/compiler/workspace-resources.js +1 -1
  214. package/dist/src/context/node.d.ts +1 -1
  215. package/dist/src/evals/assertions/collector.d.ts +43 -0
  216. package/dist/src/evals/assertions/collector.js +1 -0
  217. package/dist/src/evals/assertions/run.d.ts +72 -0
  218. package/dist/src/evals/assertions/run.js +2 -0
  219. package/dist/src/evals/autoevals-client.js +2 -0
  220. package/dist/src/evals/cli/eval-client.d.ts +22 -0
  221. package/dist/src/evals/cli/eval-client.js +1 -0
  222. package/dist/src/evals/cli/eval.d.ts +8 -5
  223. package/dist/src/evals/cli/eval.js +1 -1
  224. package/dist/src/evals/context.d.ts +19 -0
  225. package/dist/src/evals/context.js +1 -0
  226. package/dist/src/evals/define-eval-config.d.ts +16 -0
  227. package/dist/src/evals/define-eval-config.js +1 -0
  228. package/dist/src/evals/define-eval.d.ts +20 -0
  229. package/dist/src/evals/define-eval.js +1 -0
  230. package/dist/src/evals/expect/index.d.ts +25 -0
  231. package/dist/src/evals/expect/index.js +1 -0
  232. package/dist/src/evals/index.d.ts +6 -2
  233. package/dist/src/evals/index.js +1 -1
  234. package/dist/src/evals/judge.d.ts +20 -0
  235. package/dist/src/evals/judge.js +1 -0
  236. package/dist/src/evals/{checks/match.d.ts → match.d.ts} +17 -18
  237. package/dist/src/evals/match.js +1 -0
  238. package/dist/src/evals/reporters/index.d.ts +1 -0
  239. package/dist/src/evals/reporters/index.js +1 -1
  240. package/dist/src/evals/requirements.d.ts +3 -0
  241. package/dist/src/evals/requirements.js +1 -0
  242. package/dist/src/evals/runner/artifacts.d.ts +7 -6
  243. package/dist/src/evals/runner/artifacts.js +3 -3
  244. package/dist/src/evals/runner/discover.d.ts +31 -10
  245. package/dist/src/evals/runner/discover.js +1 -1
  246. package/dist/src/evals/runner/execute-eval.d.ts +25 -0
  247. package/dist/src/evals/runner/execute-eval.js +1 -0
  248. package/dist/src/evals/runner/execute-task.d.ts +31 -0
  249. package/dist/src/evals/runner/execute-task.js +1 -0
  250. package/dist/src/evals/runner/reporters/braintrust.d.ts +7 -5
  251. package/dist/src/evals/runner/reporters/braintrust.js +2 -2
  252. package/dist/src/evals/runner/reporters/console.d.ts +4 -4
  253. package/dist/src/evals/runner/reporters/console.js +1 -1
  254. package/dist/src/evals/runner/reporters/junit.d.ts +10 -0
  255. package/dist/src/evals/runner/reporters/junit.js +4 -0
  256. package/dist/src/evals/runner/reporters/types.d.ts +14 -8
  257. package/dist/src/evals/runner/run-evals.d.ts +38 -0
  258. package/dist/src/evals/runner/run-evals.js +1 -0
  259. package/dist/src/evals/runner/verdict.d.ts +10 -15
  260. package/dist/src/evals/runner/verdict.js +1 -1
  261. package/dist/src/evals/session.d.ts +52 -0
  262. package/dist/src/evals/session.js +1 -0
  263. package/dist/src/evals/target.d.ts +23 -0
  264. package/dist/src/evals/target.js +1 -0
  265. package/dist/src/evals/types.d.ts +294 -219
  266. package/dist/src/execution/compaction.d.ts +14 -0
  267. package/dist/src/execution/compaction.js +1 -0
  268. package/dist/src/execution/delegated-parent-notification.js +1 -1
  269. package/dist/src/execution/dispatch-runtime-actions-step.js +1 -1
  270. package/dist/src/execution/node-step.js +1 -1
  271. package/dist/src/execution/sandbox/bash-tool.d.ts +6 -6
  272. package/dist/src/execution/sandbox/bash-tool.js +1 -1
  273. package/dist/src/execution/sandbox/bindings/local.js +1 -1
  274. package/dist/src/execution/sandbox/bindings/vercel.d.ts +2 -6
  275. package/dist/src/execution/sandbox/bindings/vercel.js +1 -1
  276. package/dist/src/execution/sandbox/glob-tool.js +3 -3
  277. package/dist/src/execution/sandbox/grep-tool.js +3 -3
  278. package/dist/src/execution/sandbox/read-file-tool.js +1 -1
  279. package/dist/src/execution/subagent-adapter.js +1 -1
  280. package/dist/src/execution/tool-auth.js +1 -1
  281. package/dist/src/execution/turn-workflow.js +1 -1
  282. package/dist/src/execution/workflow-runtime.d.ts +2 -2
  283. package/dist/src/execution/workflow-runtime.js +1 -1
  284. package/dist/src/execution/workflow-steps.js +1 -1
  285. package/dist/src/harness/action-result-helpers.js +1 -1
  286. package/dist/src/harness/authorization.d.ts +26 -0
  287. package/dist/src/harness/authorization.js +1 -1
  288. package/dist/src/harness/code-mode-lifecycle.js +1 -1
  289. package/dist/src/harness/emission.d.ts +12 -5
  290. package/dist/src/harness/emission.js +1 -1
  291. package/dist/src/harness/model-call-error.d.ts +35 -6
  292. package/dist/src/harness/model-call-error.js +1 -1
  293. package/dist/src/harness/step-hooks.d.ts +10 -4
  294. package/dist/src/harness/step-hooks.js +1 -1
  295. package/dist/src/harness/tool-loop.js +1 -1
  296. package/dist/src/harness/tools.d.ts +4 -6
  297. package/dist/src/harness/tools.js +1 -1
  298. package/dist/src/harness/turn-tag-state.d.ts +4 -0
  299. package/dist/src/harness/turn-tag-state.js +1 -1
  300. package/dist/src/harness/types.d.ts +4 -15
  301. package/dist/src/internal/application/cache-metadata.js +1 -1
  302. package/dist/src/internal/application/compiled-artifacts.js +1 -1
  303. package/dist/src/internal/application/package.js +1 -1
  304. package/dist/src/internal/application/paths.js +1 -1
  305. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  306. package/dist/src/internal/authored-module-loader.d.ts +4 -1
  307. package/dist/src/internal/authored-module-loader.js +2 -2
  308. package/dist/src/internal/authored-module-map-loader.js +1 -1
  309. package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
  310. package/dist/src/internal/nitro/host/build-application.js +1 -1
  311. package/dist/src/internal/nitro/host/build-vercel-agent-summary.js +1 -1
  312. package/dist/src/internal/nitro/host/configure-nitro-routes.js +3 -3
  313. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  314. package/dist/src/internal/nitro/host/dev-authored-source-watcher.js +1 -1
  315. package/dist/src/internal/nitro/host/dev-watcher-log.d.ts +37 -0
  316. package/dist/src/internal/nitro/host/dev-watcher-log.js +1 -0
  317. package/dist/src/internal/nitro/host/ports.d.ts +8 -0
  318. package/dist/src/internal/nitro/host/ports.js +1 -0
  319. package/dist/src/internal/nitro/host/prepare-application-host.js +1 -1
  320. package/dist/src/internal/nitro/host/server-external-packages.d.ts +1 -1
  321. package/dist/src/internal/nitro/host/server-external-packages.js +1 -1
  322. package/dist/src/internal/nitro/host/start-development-server.js +1 -1
  323. package/dist/src/internal/nitro/host/start-production-server.js +1 -1
  324. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response-from-manifest.d.ts +5 -0
  325. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response-from-manifest.js +1 -0
  326. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.d.ts +31 -2
  327. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
  328. package/dist/src/internal/nitro/routes/agent-info/load-agent-info-data.d.ts +13 -0
  329. package/dist/src/internal/nitro/routes/agent-info/load-agent-info-data.js +1 -1
  330. package/dist/src/internal/nitro/routes/info.d.ts +2 -2
  331. package/dist/src/internal/nitro/routes/info.js +1 -1
  332. package/dist/src/internal/workflow/queue-namespace.d.ts +5 -0
  333. package/dist/src/internal/workflow/queue-namespace.js +1 -0
  334. package/dist/src/internal/workflow-bundle/builder-support.js +2 -2
  335. package/dist/src/internal/workflow-bundle/builder.js +3 -5
  336. package/dist/src/internal/workflow-bundle/vercel-workflow-output.js +1 -1
  337. package/dist/src/internal/workflow-bundle/workflow-builders.d.ts +1 -1
  338. package/dist/src/internal/workflow-bundle/workflow-builders.js +1 -1
  339. package/dist/src/node_modules/.pnpm/@clack_core@1.3.1/node_modules/@clack/core/dist/index.js +4 -4
  340. package/dist/src/protocol/message.d.ts +15 -0
  341. package/dist/src/protocol/message.js +2 -2
  342. package/dist/src/public/channels/slack/api.d.ts +8 -0
  343. package/dist/src/public/channels/slack/api.js +1 -1
  344. package/dist/src/public/channels/slack/connections.d.ts +26 -18
  345. package/dist/src/public/channels/slack/connections.js +1 -1
  346. package/dist/src/public/channels/slack/defaults.d.ts +5 -2
  347. package/dist/src/public/channels/slack/defaults.js +1 -1
  348. package/dist/src/public/channels/slack/index.d.ts +1 -1
  349. package/dist/src/public/channels/slack/slackChannel.d.ts +65 -5
  350. package/dist/src/public/channels/slack/slackChannel.js +1 -1
  351. package/dist/src/public/channels/teams/defaults.js +1 -1
  352. package/dist/src/public/connections/errors.d.ts +8 -0
  353. package/dist/src/public/definitions/tool.d.ts +0 -33
  354. package/dist/src/public/next/index.d.ts +7 -1
  355. package/dist/src/public/next/index.js +1 -1
  356. package/dist/src/public/next/server.d.ts +1 -0
  357. package/dist/src/public/next/server.js +1 -1
  358. package/dist/src/public/nuxt/dev-server.js +1 -1
  359. package/dist/src/public/sveltekit/dev-server.js +1 -1
  360. package/dist/src/public/sveltekit/index.d.ts +1 -1
  361. package/dist/src/public/tools/defaults.d.ts +2 -4
  362. package/dist/src/public/tools/defaults.js +1 -1
  363. package/dist/src/public/tools/define-bash-tool.d.ts +3 -3
  364. package/dist/src/public/tools/define-bash-tool.js +1 -1
  365. package/dist/src/public/tools/define-read-file-tool.d.ts +0 -6
  366. package/dist/src/public/tools/define-read-file-tool.js +1 -1
  367. package/dist/src/public/tools/index.d.ts +2 -2
  368. package/dist/src/public/tools/index.js +1 -1
  369. package/dist/src/public/tools/internal.js +1 -1
  370. package/dist/src/runtime/actions/types.d.ts +11 -11
  371. package/dist/src/runtime/agent/mock-model-adapter.js +1 -1
  372. package/dist/src/runtime/agent/mock-model-fixtures.js +3 -2
  373. package/dist/src/runtime/agent/mock-model-skill-selection.js +3 -4
  374. package/dist/src/runtime/connections/callback-route.js +1 -1
  375. package/dist/src/runtime/connections/mcp-client.js +1 -1
  376. package/dist/src/runtime/connections/scoped-authorization.d.ts +21 -5
  377. package/dist/src/runtime/connections/scoped-authorization.js +1 -1
  378. package/dist/src/runtime/connections/types.d.ts +33 -0
  379. package/dist/src/runtime/connections/validate-authorization.js +1 -1
  380. package/dist/src/runtime/framework-tools/bash.d.ts +3 -3
  381. package/dist/src/runtime/framework-tools/bash.js +1 -1
  382. package/dist/src/runtime/framework-tools/connection-search-dynamic.d.ts +1 -1
  383. package/dist/src/runtime/framework-tools/connection-search-dynamic.js +1 -1
  384. package/dist/src/runtime/framework-tools/file-state.d.ts +3 -3
  385. package/dist/src/runtime/framework-tools/index.js +1 -1
  386. package/dist/src/runtime/framework-tools/read-file.js +2 -2
  387. package/dist/src/runtime/framework-tools/todo.d.ts +7 -0
  388. package/dist/src/runtime/framework-tools/todo.js +2 -2
  389. package/dist/src/runtime/governance/auth/http-basic.js +1 -1
  390. package/dist/src/runtime/input/types.d.ts +1 -1
  391. package/dist/src/runtime/resolve-tool.d.ts +2 -2
  392. package/dist/src/runtime/resolve-tool.js +1 -1
  393. package/dist/src/runtime/sandbox/keys.js +1 -1
  394. package/dist/src/runtime/session-callback-route.js +1 -1
  395. package/dist/src/runtime/types.d.ts +1 -7
  396. package/dist/src/services/dev-client/client-options.d.ts +8 -0
  397. package/dist/src/services/dev-client/client-options.js +1 -0
  398. package/dist/src/services/dev-client/runtime-artifacts.d.ts +13 -0
  399. package/dist/src/services/dev-client/runtime-artifacts.js +1 -0
  400. package/dist/src/services/dev-client.d.ts +13 -46
  401. package/dist/src/services/dev-client.js +1 -1
  402. package/dist/src/setup/ask.d.ts +205 -0
  403. package/dist/src/setup/ask.js +1 -0
  404. package/dist/src/setup/boxes/add-channels.d.ts +100 -16
  405. package/dist/src/setup/boxes/add-channels.js +2 -1
  406. package/dist/src/setup/boxes/add-connections.d.ts +13 -23
  407. package/dist/src/setup/boxes/add-connections.js +1 -1
  408. package/dist/src/setup/boxes/apply-ai-gateway-credential.d.ts +2 -2
  409. package/dist/src/setup/boxes/apply-ai-gateway-credential.js +1 -1
  410. package/dist/src/setup/boxes/deploy-project.d.ts +46 -14
  411. package/dist/src/setup/boxes/deploy-project.js +1 -1
  412. package/dist/src/setup/boxes/detect-ai-gateway.d.ts +10 -3
  413. package/dist/src/setup/boxes/detect-ai-gateway.js +1 -1
  414. package/dist/src/setup/boxes/link-project.d.ts +3 -3
  415. package/dist/src/setup/boxes/link-project.js +1 -1
  416. package/dist/src/setup/boxes/one-shot-next-steps.d.ts +18 -0
  417. package/dist/src/setup/boxes/one-shot-next-steps.js +2 -0
  418. package/dist/src/setup/boxes/preflight.d.ts +14 -6
  419. package/dist/src/setup/boxes/preflight.js +1 -1
  420. package/dist/src/setup/boxes/resolve-provisioning.d.ts +36 -8
  421. package/dist/src/setup/boxes/resolve-provisioning.js +1 -1
  422. package/dist/src/setup/boxes/resolve-target.d.ts +25 -8
  423. package/dist/src/setup/boxes/resolve-target.js +1 -1
  424. package/dist/src/setup/boxes/scaffold.d.ts +12 -6
  425. package/dist/src/setup/boxes/scaffold.js +1 -1
  426. package/dist/src/setup/boxes/select-channels.d.ts +38 -9
  427. package/dist/src/setup/boxes/select-channels.js +1 -1
  428. package/dist/src/setup/boxes/select-chat.d.ts +15 -11
  429. package/dist/src/setup/boxes/select-chat.js +1 -1
  430. package/dist/src/setup/boxes/select-connections.d.ts +30 -0
  431. package/dist/src/setup/boxes/select-connections.js +1 -0
  432. package/dist/src/setup/boxes/select-model.d.ts +18 -14
  433. package/dist/src/setup/boxes/select-model.js +1 -1
  434. package/dist/src/setup/boxes/select-setup-mode.d.ts +32 -0
  435. package/dist/src/setup/boxes/select-setup-mode.js +1 -0
  436. package/dist/src/setup/channel-add-conflicts.d.ts +28 -0
  437. package/dist/src/setup/channel-add-conflicts.js +1 -0
  438. package/dist/src/setup/cli/channel-setup-prompter.d.ts +23 -0
  439. package/dist/src/setup/cli/channel-setup-prompter.js +1 -0
  440. package/dist/src/setup/cli/connection-add-prompter.d.ts +8 -0
  441. package/dist/src/setup/cli/connection-add-prompter.js +1 -0
  442. package/dist/src/setup/{scaffold/cli → cli}/index.d.ts +4 -3
  443. package/dist/src/setup/cli/index.js +1 -0
  444. package/dist/src/setup/{scaffold/cli → cli}/prompt-ui.d.ts +39 -15
  445. package/dist/src/setup/cli/prompt-ui.js +5 -0
  446. package/dist/src/setup/{scaffold/cli → cli}/rail-log.d.ts +2 -0
  447. package/dist/src/setup/{scaffold/cli → cli}/rail-log.js +2 -2
  448. package/dist/src/setup/{scaffold/cli → cli}/select-component.d.ts +18 -3
  449. package/dist/src/setup/cli/select-component.js +1 -0
  450. package/dist/src/setup/cli/select-option-codec.d.ts +12 -0
  451. package/dist/src/setup/cli/select-option-codec.js +1 -0
  452. package/dist/src/setup/{scaffold/cli → cli}/select-state.d.ts +13 -1
  453. package/dist/src/setup/cli/select-state.js +1 -0
  454. package/dist/src/setup/cli/whimsy.d.ts +16 -0
  455. package/dist/src/setup/cli/whimsy.js +1 -0
  456. package/dist/src/setup/{scaffold/steps/setup-connection.d.ts → connection-connector.d.ts} +3 -2
  457. package/dist/src/setup/connection-connector.js +1 -0
  458. package/dist/src/setup/flows/channels.d.ts +43 -0
  459. package/dist/src/setup/flows/channels.js +1 -0
  460. package/dist/src/setup/flows/deploy.d.ts +40 -0
  461. package/dist/src/setup/flows/deploy.js +1 -0
  462. package/dist/src/setup/flows/in-project.d.ts +16 -0
  463. package/dist/src/setup/flows/in-project.js +1 -0
  464. package/dist/src/setup/flows/link.d.ts +43 -0
  465. package/dist/src/setup/flows/link.js +1 -0
  466. package/dist/src/setup/flows/model.d.ts +112 -0
  467. package/dist/src/setup/flows/model.js +1 -0
  468. package/dist/src/setup/flows/vercel.d.ts +31 -0
  469. package/dist/src/setup/flows/vercel.js +2 -0
  470. package/dist/src/setup/gateway-models.js +1 -1
  471. package/dist/src/setup/headless.d.ts +1 -1
  472. package/dist/src/setup/index.d.ts +10 -4
  473. package/dist/src/setup/index.js +1 -1
  474. package/dist/src/setup/onboarding.d.ts +7 -4
  475. package/dist/src/setup/onboarding.js +1 -1
  476. package/dist/src/setup/package-manager.d.ts +27 -0
  477. package/dist/src/setup/package-manager.js +1 -0
  478. package/dist/src/setup/primitives/index.d.ts +3 -0
  479. package/dist/src/setup/primitives/index.js +1 -0
  480. package/dist/src/setup/primitives/pm/bun.d.ts +10 -0
  481. package/dist/src/setup/primitives/pm/bun.js +1 -0
  482. package/dist/src/setup/primitives/pm/index.d.ts +11 -0
  483. package/dist/src/setup/primitives/pm/index.js +1 -0
  484. package/dist/src/setup/primitives/pm/npm.d.ts +10 -0
  485. package/dist/src/setup/primitives/pm/npm.js +1 -0
  486. package/dist/src/setup/primitives/pm/pnpm.d.ts +27 -0
  487. package/dist/src/setup/primitives/pm/pnpm.js +8 -0
  488. package/dist/src/setup/primitives/pm/run.d.ts +23 -0
  489. package/dist/src/setup/primitives/pm/run.js +1 -0
  490. package/dist/src/setup/primitives/pm/shared.d.ts +8 -0
  491. package/dist/src/setup/primitives/pm/shared.js +1 -0
  492. package/dist/src/setup/primitives/pm/types.d.ts +37 -0
  493. package/dist/src/setup/primitives/pm/types.js +1 -0
  494. package/dist/src/setup/primitives/pm/yarn.d.ts +10 -0
  495. package/dist/src/setup/primitives/pm/yarn.js +1 -0
  496. package/dist/src/setup/primitives/run-pnpm.d.ts +1 -0
  497. package/dist/src/setup/primitives/run-pnpm.js +1 -0
  498. package/dist/src/setup/{scaffold/primitives → primitives}/run-vercel.d.ts +7 -0
  499. package/dist/src/setup/primitives/run-vercel.js +1 -0
  500. package/dist/src/setup/project-name.d.ts +4 -0
  501. package/dist/src/setup/project-name.js +1 -0
  502. package/dist/src/setup/project-resolution.d.ts +54 -0
  503. package/dist/src/setup/project-resolution.js +1 -0
  504. package/dist/src/setup/prompter.d.ts +52 -4
  505. package/dist/src/setup/prompter.js +1 -1
  506. package/dist/src/setup/quit-guard.d.ts +1 -1
  507. package/dist/src/setup/run-vercel-link.d.ts +1 -1
  508. package/dist/src/setup/run-vercel-link.js +1 -1
  509. package/dist/src/setup/runner.d.ts +5 -4
  510. package/dist/src/setup/runner.js +1 -1
  511. package/dist/src/setup/scaffold/channels-catalog.d.ts +3 -3
  512. package/dist/src/setup/scaffold/channels-catalog.js +1 -1
  513. package/dist/src/setup/scaffold/create/add-to-project.d.ts +26 -0
  514. package/dist/src/setup/scaffold/create/add-to-project.js +1 -0
  515. package/dist/src/setup/scaffold/create/project.d.ts +54 -0
  516. package/dist/src/setup/scaffold/create/project.js +80 -0
  517. package/dist/src/setup/scaffold/index.d.ts +4 -4
  518. package/dist/src/setup/scaffold/index.js +1 -1
  519. package/dist/src/setup/scaffold/{channels.d.ts → update/channels.d.ts} +11 -0
  520. package/dist/src/setup/scaffold/update/channels.js +7 -0
  521. package/dist/src/setup/scaffold/{connections.d.ts → update/connections.d.ts} +1 -1
  522. package/dist/src/setup/scaffold/update/connections.js +21 -0
  523. package/dist/src/setup/scaffold/version-tokens.d.ts +11 -0
  524. package/dist/src/setup/scaffold/version-tokens.js +1 -0
  525. package/dist/src/setup/{scaffold/steps/setup-slackbot.d.ts → slackbot.d.ts} +24 -20
  526. package/dist/src/setup/slackbot.js +1 -0
  527. package/dist/src/setup/state.d.ts +62 -15
  528. package/dist/src/setup/state.js +1 -1
  529. package/dist/src/setup/step.d.ts +9 -18
  530. package/dist/src/setup/vercel-project.d.ts +15 -8
  531. package/dist/src/setup/vercel-project.js +1 -1
  532. package/dist/src/shared/agent-definition.d.ts +5 -3
  533. package/dist/src/shared/default-agent-model.d.ts +5 -0
  534. package/dist/src/shared/default-agent-model.js +1 -0
  535. package/dist/src/source-change/apply-model-name.d.ts +25 -0
  536. package/dist/src/source-change/apply-model-name.js +2 -0
  537. package/dist/src/source-change/static-source-change.d.ts +36 -0
  538. package/dist/src/source-change/static-source-change.js +1 -0
  539. package/dist/src/svelte/index.js +1 -1
  540. package/dist/src/svelte/use-eve-agent.js +1 -1
  541. package/dist/src/vue/index.js +1 -1
  542. package/dist/src/vue/use-eve-agent.js +1 -1
  543. package/package.json +22 -42
  544. package/dist/docs/evals-v2-plan.md +0 -939
  545. package/dist/docs/public/advanced/dev-tui.md +0 -52
  546. package/dist/docs/public/advanced/evals.md +0 -158
  547. package/dist/docs/public/reference/faqs.md +0 -48
  548. package/dist/src/cli/commands/setup.d.ts +0 -55
  549. package/dist/src/cli/commands/setup.js +0 -1
  550. package/dist/src/cli/dev/repl/input-requests.d.ts +0 -38
  551. package/dist/src/cli/dev/repl/input-requests.js +0 -1
  552. package/dist/src/cli/dev/repl/input.d.ts +0 -19
  553. package/dist/src/cli/dev/repl/input.js +0 -1
  554. package/dist/src/cli/dev/repl/repl.d.ts +0 -62
  555. package/dist/src/cli/dev/repl/repl.js +0 -2
  556. package/dist/src/cli/dev/repl/terminal.d.ts +0 -21
  557. package/dist/src/cli/dev/repl/terminal.js +0 -5
  558. package/dist/src/compiled/_chunks/workflow/resume-hook-0Zk0zSvq.js +0 -12
  559. package/dist/src/compiled/_chunks/workflow/sleep-DXZr2BgM.js +0 -1
  560. package/dist/src/compiled/_chunks/workflow/symbols-BWCAoPHE.js +0 -48
  561. package/dist/src/evals/checks/checks.d.ts +0 -66
  562. package/dist/src/evals/checks/checks.js +0 -2
  563. package/dist/src/evals/checks/index.d.ts +0 -21
  564. package/dist/src/evals/checks/index.js +0 -1
  565. package/dist/src/evals/checks/match.js +0 -1
  566. package/dist/src/evals/define-eval-suite.d.ts +0 -18
  567. package/dist/src/evals/define-eval-suite.js +0 -1
  568. package/dist/src/evals/runner/execute-case.d.ts +0 -23
  569. package/dist/src/evals/runner/execute-case.js +0 -1
  570. package/dist/src/evals/runner/execute-suite.d.ts +0 -24
  571. package/dist/src/evals/runner/execute-suite.js +0 -1
  572. package/dist/src/evals/scorers/autoevals-client.js +0 -2
  573. package/dist/src/evals/scorers/autoevals.d.ts +0 -58
  574. package/dist/src/evals/scorers/autoevals.js +0 -1
  575. package/dist/src/evals/scorers/json.d.ts +0 -10
  576. package/dist/src/evals/scorers/json.js +0 -1
  577. package/dist/src/evals/scorers/model-marker.d.ts +0 -12
  578. package/dist/src/evals/scorers/model-marker.js +0 -1
  579. package/dist/src/evals/scorers/run.d.ts +0 -24
  580. package/dist/src/evals/scorers/run.js +0 -1
  581. package/dist/src/evals/scorers/sql.d.ts +0 -9
  582. package/dist/src/evals/scorers/sql.js +0 -1
  583. package/dist/src/evals/scorers/text.d.ts +0 -18
  584. package/dist/src/evals/scorers/text.js +0 -1
  585. package/dist/src/evals/scores/index.d.ts +0 -72
  586. package/dist/src/evals/scores/index.js +0 -1
  587. package/dist/src/execution/tool-compaction.d.ts +0 -9
  588. package/dist/src/execution/tool-compaction.js +0 -1
  589. package/dist/src/services/dev-client/stream.d.ts +0 -5
  590. package/dist/src/services/dev-client/stream.js +0 -1
  591. package/dist/src/services/dev-client/url.d.ts +0 -11
  592. package/dist/src/services/dev-client/url.js +0 -1
  593. package/dist/src/setup/channel-setup-prompter.d.ts +0 -8
  594. package/dist/src/setup/channel-setup-prompter.js +0 -1
  595. package/dist/src/setup/scaffold/channels.js +0 -7
  596. package/dist/src/setup/scaffold/cli/channel-add-prompter.d.ts +0 -12
  597. package/dist/src/setup/scaffold/cli/channel-add-prompter.js +0 -1
  598. package/dist/src/setup/scaffold/cli/channel-setup-prompter.d.ts +0 -56
  599. package/dist/src/setup/scaffold/cli/connection-add-prompter.d.ts +0 -44
  600. package/dist/src/setup/scaffold/cli/connection-add-prompter.js +0 -1
  601. package/dist/src/setup/scaffold/cli/index.js +0 -1
  602. package/dist/src/setup/scaffold/cli/prompt-ui.js +0 -5
  603. package/dist/src/setup/scaffold/cli/select-component.js +0 -1
  604. package/dist/src/setup/scaffold/cli/select-state.js +0 -1
  605. package/dist/src/setup/scaffold/connections.js +0 -21
  606. package/dist/src/setup/scaffold/pnpm-workspace.d.ts +0 -3
  607. package/dist/src/setup/scaffold/pnpm-workspace.js +0 -11
  608. package/dist/src/setup/scaffold/primitives/detect-deployment.d.ts +0 -13
  609. package/dist/src/setup/scaffold/primitives/detect-deployment.js +0 -1
  610. package/dist/src/setup/scaffold/primitives/index.d.ts +0 -3
  611. package/dist/src/setup/scaffold/primitives/index.js +0 -1
  612. package/dist/src/setup/scaffold/primitives/pnpm-invocation.d.ts +0 -12
  613. package/dist/src/setup/scaffold/primitives/pnpm-invocation.js +0 -1
  614. package/dist/src/setup/scaffold/primitives/run-pnpm.d.ts +0 -17
  615. package/dist/src/setup/scaffold/primitives/run-pnpm.js +0 -1
  616. package/dist/src/setup/scaffold/primitives/run-vercel.js +0 -1
  617. package/dist/src/setup/scaffold/project.d.ts +0 -21
  618. package/dist/src/setup/scaffold/project.js +0 -80
  619. package/dist/src/setup/scaffold/steps/deploy-to-vercel.d.ts +0 -17
  620. package/dist/src/setup/scaffold/steps/deploy-to-vercel.js +0 -1
  621. package/dist/src/setup/scaffold/steps/index.d.ts +0 -4
  622. package/dist/src/setup/scaffold/steps/index.js +0 -1
  623. package/dist/src/setup/scaffold/steps/project-resolution.d.ts +0 -19
  624. package/dist/src/setup/scaffold/steps/project-resolution.js +0 -1
  625. package/dist/src/setup/scaffold/steps/run-add-connection.d.ts +0 -40
  626. package/dist/src/setup/scaffold/steps/run-add-connection.js +0 -1
  627. package/dist/src/setup/scaffold/steps/run-add-to-agent.d.ts +0 -81
  628. package/dist/src/setup/scaffold/steps/run-add-to-agent.js +0 -2
  629. package/dist/src/setup/scaffold/steps/setup-connection.js +0 -1
  630. package/dist/src/setup/scaffold/steps/setup-slackbot.js +0 -1
  631. /package/dist/docs/public/{frontend → guides/frontend}/meta.json +0 -0
  632. /package/dist/docs/public/{advanced → guides}/remote-agents.md +0 -0
  633. /package/dist/src/{setup/scaffold/cli/channel-setup-prompter.js → cli/dev/tui/setup-flow.js} +0 -0
  634. /package/dist/src/evals/{scorers/autoevals-client.d.ts → autoevals-client.d.ts} +0 -0
  635. /package/dist/src/setup/{scaffold/cli → cli}/command-output.d.ts +0 -0
  636. /package/dist/src/setup/{scaffold/cli → cli}/command-output.js +0 -0
  637. /package/dist/src/setup/{scaffold/human-action.d.ts → human-action.d.ts} +0 -0
  638. /package/dist/src/setup/{scaffold/human-action.js → human-action.js} +0 -0
  639. /package/dist/src/setup/{scaffold/primitives → primitives}/process-output.d.ts +0 -0
  640. /package/dist/src/setup/{scaffold/primitives → primitives}/process-output.js +0 -0
  641. /package/dist/src/setup/scaffold/{web-template.d.ts → create/web-template.d.ts} +0 -0
  642. /package/dist/src/setup/scaffold/{web-template.js → create/web-template.js} +0 -0
  643. /package/dist/src/setup/scaffold/{module-files.d.ts → update/module-files.d.ts} +0 -0
  644. /package/dist/src/setup/scaffold/{module-files.js → update/module-files.js} +0 -0
  645. /package/dist/src/setup/scaffold/{package-json.d.ts → update/package-json.d.ts} +0 -0
  646. /package/dist/src/setup/scaffold/{package-json.js → update/package-json.js} +0 -0
  647. /package/dist/src/setup/scaffold/{primitives → update}/update-connection-connector.d.ts +0 -0
  648. /package/dist/src/setup/scaffold/{primitives → update}/update-connection-connector.js +0 -0
  649. /package/dist/src/setup/scaffold/{primitives → update}/update-slack-channel.d.ts +0 -0
  650. /package/dist/src/setup/scaffold/{primitives → update}/update-slack-channel.js +0 -0
@@ -1,6 +1,6 @@
1
1
  import type { Prompter } from "./prompter.js";
2
2
  import type { AnySetupBox } from "./runner.js";
3
- import type { ArgsHeadlessAiGateway, ArgsHeadlessProject, ChannelKind, ChatPreference, SetupState } from "./state.js";
3
+ import type { ArgsHeadlessAiGateway, ArgsHeadlessProject, ChannelKind, ChatPreference, SetupMode, SetupState } from "./state.js";
4
4
  /**
5
5
  * Options for {@link composeOnboardingBoxes}. These carry exactly what the
6
6
  * create flow's options carried: the preset answers that let each box resolve
@@ -10,6 +10,8 @@ export interface OnboardingBoxesOptions {
10
10
  prompter: Prompter;
11
11
  /** Skip the name prompt and use this value. */
12
12
  presetName?: string;
13
+ /** Skip the setup-mode prompt and use this value. */
14
+ presetMode?: SetupMode;
13
15
  /** Skip the model prompt and use this value. */
14
16
  presetModel?: string;
15
17
  /** Skip the channels prompt and use these kinds. */
@@ -43,14 +45,15 @@ export interface OnboardingBoxesOptions {
43
45
  evePackageVersion: string;
44
46
  }
45
47
  /**
46
- * Composes the full onboarding flow shared by `create-eve` and `eve setup`:
48
+ * Composes the full programmatic onboarding flow.
47
49
  *
48
- * 1. Name + provisioning + model + channel prompts (the interview phase).
50
+ * 1. The interview phase: name, then the agent itself (model, channels,
51
+ * connections), then where it runs (the provisioning plans).
49
52
  * 2. Input preflight before filesystem writes.
50
53
  * 3. The scaffold box writes or reuses the agent template.
51
54
  * 4. Project and gateway facts are detected and executed from the plans.
52
55
  * 5. Channel setup writes Web/Slack surfaces and returns setup facts.
53
- * 6. Deploy runs once when any deployable channel was added.
56
+ * 6. Deploy runs once when Slack was added (the connector needs a public URL).
54
57
  * 7. Chat preference is picked from the final channel state.
55
58
  */
56
59
  export declare function composeOnboardingBoxes(options: OnboardingBoxesOptions): AnySetupBox<SetupState>[];
@@ -1 +1 @@
1
- import{addChannels}from"./boxes/add-channels.js";import{addConnections}from"./boxes/add-connections.js";import{detectAiGateway}from"./boxes/detect-ai-gateway.js";import{applyAiGatewayCredential}from"./boxes/apply-ai-gateway-credential.js";import{deployProject}from"./boxes/deploy-project.js";import{linkVercelProject}from"./boxes/link-project.js";import{preflight}from"./boxes/preflight.js";import{resolveProvisioning}from"./boxes/resolve-provisioning.js";import{resolveTarget}from"./boxes/resolve-target.js";import{scaffold}from"./boxes/scaffold.js";import{selectChannels}from"./boxes/select-channels.js";import{selectChat}from"./boxes/select-chat.js";import{selectModel}from"./boxes/select-model.js";import{resolve}from"node:path";function composeOnboardingBoxes(e){let t=e.headless?{headless:!0,project:e.provisioning?.project??{},aiGateway:e.provisioning?.aiGateway??{}}:{headless:!1};return[resolveTarget({prompter:e.prompter,presetName:e.presetName,targetDirectory:e.targetDirectory,inPlace:e.inPlace}),resolveProvisioning({prompter:e.prompter,targetDirectory:e.targetDirectory,mode:t}),selectModel({prompter:e.prompter,presetModel:e.presetModel}),selectChannels({prompter:e.prompter,presetChannels:e.presetChannels}),preflight({cwd:resolve(e.targetDirectory??process.cwd())}),scaffold({prompter:e.prompter,evePackageVersion:e.evePackageVersion,targetDirectory:e.targetDirectory,overwriteExisting:e.overwriteExisting}),detectAiGateway(),linkVercelProject({prompter:e.prompter}),applyAiGatewayCredential({prompter:e.prompter}),addChannels({prompter:e.prompter,evePackageVersion:e.evePackageVersion,presetCreateSlackbot:e.presetCreateSlackbot}),addConnections({prompter:e.prompter,presetConnections:e.presetConnections}),deployProject({prompter:e.prompter,skip:e.presetNoDeploy}),selectChat({prompter:e.prompter,presetPreference:e.presetChatPreference})]}export{composeOnboardingBoxes};
1
+ import{headlessAsker,interactiveAsker}from"./ask.js";import{addChannels}from"./boxes/add-channels.js";import{selectConnections}from"./boxes/select-connections.js";import{addConnections}from"./boxes/add-connections.js";import{detectAiGateway}from"./boxes/detect-ai-gateway.js";import{applyAiGatewayCredential}from"./boxes/apply-ai-gateway-credential.js";import{deployProject}from"./boxes/deploy-project.js";import{linkVercelProject}from"./boxes/link-project.js";import{oneShotNextSteps}from"./boxes/one-shot-next-steps.js";import{preflight}from"./boxes/preflight.js";import{resolveProvisioning}from"./boxes/resolve-provisioning.js";import{resolveTarget}from"./boxes/resolve-target.js";import{scaffold}from"./boxes/scaffold.js";import{selectChannels}from"./boxes/select-channels.js";import{selectChat}from"./boxes/select-chat.js";import{selectModel}from"./boxes/select-model.js";import{selectSetupMode}from"./boxes/select-setup-mode.js";import{resolve}from"node:path";function onlyWhen(e,t){return{...t,shouldRun:n=>e(n)&&(t.shouldRun?.(n)??!0)}}function completeSetupOnly(e){return onlyWhen(e=>e.setupMode===`complete`,e)}function composeOnboardingBoxes(r){let i=r.headless?{headless:!0,project:r.provisioning?.project??{},aiGateway:r.provisioning?.aiGateway??{}}:{headless:!1},a=r.headless?headlessAsker():interactiveAsker(r.prompter);return[resolveTarget({asker:a,notify:e=>r.prompter.note(e),presetName:r.presetName,targetDirectory:r.targetDirectory,inPlace:r.inPlace,resumeExisting:r.headless}),selectSetupMode({asker:a,presetMode:r.presetMode,presetModel:r.presetModel}),...[selectModel({asker:a,presetModel:r.presetModel}),selectChannels({asker:a,presetChannels:r.presetChannels,variant:`onboarding`}),selectConnections({asker:a,presetConnections:r.presetConnections,headless:r.headless}),resolveProvisioning({asker:a,prompter:r.prompter,targetDirectory:r.targetDirectory,mode:i})].map(completeSetupOnly),preflight({cwd:resolve(r.targetDirectory??process.cwd()),headless:r.headless}),scaffold({prompter:r.prompter,evePackageVersion:r.evePackageVersion,targetDirectory:r.targetDirectory,overwriteExisting:r.overwriteExisting,headless:r.headless}),...[detectAiGateway(),linkVercelProject({prompter:r.prompter}),applyAiGatewayCredential({prompter:r.prompter}),addChannels({asker:a,prompter:r.prompter,evePackageVersion:r.evePackageVersion,presetCreateSlackbot:r.presetCreateSlackbot,headless:r.headless,slackbotFailure:`warn-and-continue`}),addConnections({prompter:r.prompter})].map(completeSetupOnly),completeSetupOnly(onlyWhen(e=>e.slackScaffolded,deployProject({prompter:r.prompter,skip:r.presetNoDeploy,headless:r.headless}))),completeSetupOnly(selectChat({asker:a,presetPreference:r.presetChatPreference})),oneShotNextSteps({prompter:r.prompter})]}export{composeOnboardingBoxes};
@@ -0,0 +1,27 @@
1
+ export type PackageManagerKind = "bun" | "npm" | "pnpm" | "yarn";
2
+ /** How a project's package manager was identified, most authoritative first. */
3
+ export type PackageManagerSource = "package-manager-field" | "lockfile" | "default";
4
+ export interface DetectedPackageManager {
5
+ kind: PackageManagerKind;
6
+ source: PackageManagerSource;
7
+ }
8
+ /**
9
+ * Resolves a project's package manager from gathered facts: an explicit
10
+ * `packageManager` field wins, then the first known lockfile, then pnpm.
11
+ */
12
+ export declare function resolvePackageManager(input: {
13
+ packageManagerField?: string;
14
+ lockfiles: readonly string[];
15
+ }): DetectedPackageManager;
16
+ /**
17
+ * Identifies the package manager that launched the current process from an
18
+ * npm user-agent string. Every manager advertises itself there when running
19
+ * a binary (`npx`, `pnpm dlx`, `yarn dlx`, `bunx`, run-scripts), e.g.
20
+ * `"pnpm/10.4.0 npm/? node/v24.0.0 darwin arm64"` → pnpm. A binary executed
21
+ * directly carries no user agent and yields undefined.
22
+ */
23
+ export declare function packageManagerFromUserAgent(userAgent: string | undefined): PackageManagerKind | undefined;
24
+ /** Reads {@link packageManagerFromUserAgent} from the process environment. */
25
+ export declare function detectInvokingPackageManager(): PackageManagerKind | undefined;
26
+ /** Reads the detection facts for {@link resolvePackageManager} from `projectRoot`. */
27
+ export declare function detectPackageManager(projectRoot: string): Promise<DetectedPackageManager>;
@@ -0,0 +1 @@
1
+ import{pathExists}from"./path-exists.js";import{join}from"node:path";import{readFile}from"node:fs/promises";const LOCKFILE_MANAGERS=[[`pnpm-lock.yaml`,`pnpm`],[`package-lock.json`,`npm`],[`yarn.lock`,`yarn`],[`bun.lock`,`bun`],[`bun.lockb`,`bun`]];function isPackageManagerKind(e){return e===`bun`||e===`npm`||e===`pnpm`||e===`yarn`}function resolvePackageManager(e){let t=e.packageManagerField?.split(`@`,1)[0]?.trim();if(t!==void 0&&isPackageManagerKind(t))return{kind:t,source:`package-manager-field`};for(let[t,n]of LOCKFILE_MANAGERS)if(e.lockfiles.includes(t))return{kind:n,source:`lockfile`};return{kind:`pnpm`,source:`default`}}function packageManagerFromUserAgent(e){let t=e?.split(`/`,1)[0];return t!==void 0&&isPackageManagerKind(t)?t:void 0}function detectInvokingPackageManager(){return packageManagerFromUserAgent(process.env.npm_config_user_agent)}async function detectPackageManager(r){let i;try{let e=JSON.parse(await readFile(join(r,`package.json`),`utf8`));typeof e==`object`&&e&&`packageManager`in e&&typeof e.packageManager==`string`&&(i=e.packageManager)}catch{}let a=[];for(let[n]of LOCKFILE_MANAGERS)await pathExists(join(r,n))&&a.push(n);return resolvePackageManager({packageManagerField:i,lockfiles:a})}export{detectInvokingPackageManager,detectPackageManager,packageManagerFromUserAgent,resolvePackageManager};
@@ -0,0 +1,3 @@
1
+ export { eveDevArguments, runPackageManagerInstall, runPnpmInstall, spawnPackageManager, spawnPnpm, type RunInstallOptions, type RunPackageManagerOptions, type RunPnpmOptions, } from "./pm/run.js";
2
+ export { getPackageManagerStrategy, type PackageManagerConfigurationResult, type PackageManagerInvocation, type PackageManagerStrategy, } from "./pm/index.js";
3
+ export { captureVercel, runVercel, type RunVercelOptions, type VercelCaptureFailure, type VercelCaptureResult, } from "./run-vercel.js";
@@ -0,0 +1 @@
1
+ import{captureVercel,runVercel}from"./run-vercel.js";import{getPackageManagerStrategy}from"./pm/index.js";import{eveDevArguments,runPackageManagerInstall,runPnpmInstall,spawnPackageManager,spawnPnpm}from"./pm/run.js";export{captureVercel,eveDevArguments,getPackageManagerStrategy,runPackageManagerInstall,runPnpmInstall,runVercel,spawnPackageManager,spawnPnpm};
@@ -0,0 +1,10 @@
1
+ import { applyNoProjectConfiguration } from "./shared.js";
2
+ export declare const bunPackageManager: {
3
+ kind: "bun";
4
+ scaffoldFiles: {};
5
+ applyProjectConfiguration: typeof applyNoProjectConfiguration;
6
+ devArguments: () => string[];
7
+ installArguments: () => string[];
8
+ prepareArguments: (_projectRoot: string, args: readonly string[]) => readonly string[];
9
+ resolveInvocation: (args: readonly string[]) => import("./types.js").PackageManagerInvocation;
10
+ };
@@ -0,0 +1 @@
1
+ import{applyNoProjectConfiguration,resolveStandardInvocation}from"./shared.js";const bunPackageManager={kind:`bun`,scaffoldFiles:{},applyProjectConfiguration:applyNoProjectConfiguration,devArguments:()=>[`x`,`eve`,`dev`],installArguments:()=>[`install`],prepareArguments:(e,t)=>t,resolveInvocation:e=>resolveStandardInvocation(`bun`,e)};export{bunPackageManager};
@@ -0,0 +1,11 @@
1
+ import type { PackageManagerKind } from "../../package-manager.js";
2
+ import { bunPackageManager } from "./bun.js";
3
+ import { npmPackageManager } from "./npm.js";
4
+ import { pnpmPackageManager } from "./pnpm.js";
5
+ import type { PackageManagerStrategy } from "./types.js";
6
+ import { yarnPackageManager } from "./yarn.js";
7
+ /** Returns the strategy that owns command and project-file behavior for `kind`. */
8
+ export declare function getPackageManagerStrategy(kind: PackageManagerKind): PackageManagerStrategy;
9
+ export { bunPackageManager, npmPackageManager, pnpmPackageManager, yarnPackageManager };
10
+ export { PNPM_WORKSPACE_CONTENT, PNPM_WORKSPACE_PATH } from "./pnpm.js";
11
+ export type { PackageManagerConfigurationResult, PackageManagerInstallOptions, PackageManagerInvocation, PackageManagerStrategy, } from "./types.js";
@@ -0,0 +1 @@
1
+ import{bunPackageManager}from"./bun.js";import{npmPackageManager}from"./npm.js";import{PNPM_WORKSPACE_CONTENT,PNPM_WORKSPACE_PATH,pnpmPackageManager}from"./pnpm.js";import{yarnPackageManager}from"./yarn.js";function getPackageManagerStrategy(e){switch(e){case`bun`:return bunPackageManager;case`npm`:return npmPackageManager;case`pnpm`:return pnpmPackageManager;case`yarn`:return yarnPackageManager;default:return e}}export{PNPM_WORKSPACE_CONTENT,PNPM_WORKSPACE_PATH,bunPackageManager,getPackageManagerStrategy,npmPackageManager,pnpmPackageManager,yarnPackageManager};
@@ -0,0 +1,10 @@
1
+ import { applyNoProjectConfiguration } from "./shared.js";
2
+ export declare const npmPackageManager: {
3
+ kind: "npm";
4
+ scaffoldFiles: {};
5
+ applyProjectConfiguration: typeof applyNoProjectConfiguration;
6
+ devArguments: () => string[];
7
+ installArguments: (options: import("./types.js").PackageManagerInstallOptions) => string[];
8
+ prepareArguments: (_projectRoot: string, args: readonly string[]) => readonly string[];
9
+ resolveInvocation: (args: readonly string[]) => import("./types.js").PackageManagerInvocation;
10
+ };
@@ -0,0 +1 @@
1
+ import{applyNoProjectConfiguration,resolveStandardInvocation}from"./shared.js";const npmPackageManager={kind:`npm`,scaffoldFiles:{},applyProjectConfiguration:applyNoProjectConfiguration,devArguments:()=>[`exec`,`--`,`eve`,`dev`],installArguments:e=>[`install`,...e.bypassMinimumReleaseAge===!0?[`--min-release-age=0`]:[]],prepareArguments:(e,t)=>t,resolveInvocation:e=>resolveStandardInvocation(`npm`,e)};export{npmPackageManager};
@@ -0,0 +1,27 @@
1
+ export declare const PNPM_WORKSPACE_PATH = "pnpm-workspace.yaml";
2
+ export declare const PNPM_WORKSPACE_CONTENT: string;
3
+ export declare const pnpmPackageManager: {
4
+ kind: "pnpm";
5
+ scaffoldFiles: {
6
+ "pnpm-workspace.yaml": string;
7
+ };
8
+ applyProjectConfiguration(projectRoot: string): Promise<{
9
+ filesSkipped: never[];
10
+ filesWritten: string[];
11
+ } | {
12
+ filesSkipped: string[];
13
+ filesWritten: never[];
14
+ }>;
15
+ devArguments: () => string[];
16
+ installArguments: (options: import("./types.js").PackageManagerInstallOptions) => string[];
17
+ prepareArguments: (projectRoot: string, args: readonly string[]) => string[];
18
+ resolveInvocation(args: readonly string[]): {
19
+ args: readonly string[];
20
+ command: string;
21
+ shell: boolean;
22
+ } | {
23
+ shell?: undefined;
24
+ args: readonly string[];
25
+ command: string;
26
+ };
27
+ };
@@ -0,0 +1,8 @@
1
+ import{pathExists}from"../../path-exists.js";import{extname,join}from"node:path";import{existsSync}from"node:fs";import{readFile,writeFile}from"node:fs/promises";const PNPM_WORKSPACE_PATH=`pnpm-workspace.yaml`,PNPM_WORKSPACE_CONTENT=[`minimumReleaseAgeExclude:`,` - eve`,`allowBuilds:`,` sharp: false`,`# Compatibility for Eve releases with an incomplete runtime manifest.`,`packageExtensions:`,` "eve@>=0.6.0-beta.13 <=0.7.0":`,` dependencies:`,` oxc-parser: 0.134.0`,``].join(`
2
+ `),EVE_RELEASE_AGE_EXCLUSION=` - eve`,SHARP_BUILD_POLICY=` sharp: false`;function findYamlBlockEnd(e,t){let n=t+1;for(;n<e.length;){let t=e[n]??``;if(t.length>0&&!t.startsWith(` `)&&!t.startsWith(` `))break;n+=1}return n}function withSharpBuildPolicy(e){let t=e.endsWith(`
3
+ `)?e:`${e}\n`,n=t.split(`
4
+ `),r=n.findIndex(e=>e===`allowBuilds:`);if(r<0)return`${t.trim().length===0?``:`${t}\n`}allowBuilds:\n${SHARP_BUILD_POLICY}\n`;let i=findYamlBlockEnd(n,r);if(n.slice(r+1,i).some(e=>/^\s+sharp:/.test(e)))return e;let a=i;for(;a>r+1&&n[a-1]===``;)--a;return n.splice(a,0,SHARP_BUILD_POLICY),n.join(`
5
+ `)}function withExperimentalEveReleaseAgeExclusion(e){let t=e.endsWith(`
6
+ `)?e:`${e}\n`,n=t.split(`
7
+ `),r=n.findIndex(e=>e===`minimumReleaseAgeExclude:`);if(r<0)return`${t.trim().length===0?``:`${t}\n`}minimumReleaseAgeExclude:\n${EVE_RELEASE_AGE_EXCLUSION}\n`;let i=findYamlBlockEnd(n,r);if(n.slice(r+1,i).some(e=>e.trim()===`- eve`))return e;let a=i;for(;a>r+1&&n[a-1]===``;)--a;return n.splice(a,0,EVE_RELEASE_AGE_EXCLUSION),n.join(`
8
+ `)}async function ensurePnpmWorkspacePolicy(t){if(!await pathExists(t))return await writeFile(t,PNPM_WORKSPACE_CONTENT,`utf8`),`written`;let n=await readFile(t,`utf8`),r=withExperimentalEveReleaseAgeExclusion(withSharpBuildPolicy(n));return r===n?`skipped`:(await writeFile(t,r,`utf8`),`written`)}const pnpmPackageManager={kind:`pnpm`,scaffoldFiles:{[PNPM_WORKSPACE_PATH]:PNPM_WORKSPACE_CONTENT},async applyProjectConfiguration(e){let t=join(e,PNPM_WORKSPACE_PATH);return await ensurePnpmWorkspacePolicy(t)===`written`?{filesSkipped:[],filesWritten:[t]}:{filesSkipped:[t],filesWritten:[]}},devArguments:()=>[`exec`,`eve`,`dev`],installArguments:e=>[`install`,`--no-frozen-lockfile`,...e.bypassMinimumReleaseAge===!0?[`--config.minimum-release-age=0`]:[]],prepareArguments:(e,t)=>[`--dir`,e,...existsSync(join(e,`pnpm-workspace.yaml`))?[]:[`--ignore-workspace`],...t],resolveInvocation(e){let i=process.env.PNPM_HOME;if(i!==void 0){let t=join(i,process.platform===`win32`?`pnpm.CMD`:`pnpm`);if(existsSync(t))return{args:e,command:t,shell:process.platform===`win32`}}let a=process.env.npm_execpath;if(a!==void 0&&a.toLowerCase().includes(`pnpm`)){let n=extname(a).toLowerCase();return n===`.cjs`||n===`.js`?{args:[a,...e],command:process.execPath}:{args:e,command:a,shell:process.platform===`win32`}}return{args:e,command:`pnpm`}}};export{PNPM_WORKSPACE_CONTENT,PNPM_WORKSPACE_PATH,pnpmPackageManager};
@@ -0,0 +1,23 @@
1
+ import type { PackageManagerKind } from "../../package-manager.js";
2
+ import { type ProcessOutputHandler } from "../process-output.js";
3
+ /** Output routing options for setup-owned package manager commands. */
4
+ export interface RunPackageManagerOptions {
5
+ /** Streams command output to a parent-owned renderer instead of writing outside it. */
6
+ onOutput?: ProcessOutputHandler;
7
+ }
8
+ /** @deprecated Use {@link RunPackageManagerOptions}. */
9
+ export type RunPnpmOptions = RunPackageManagerOptions;
10
+ /** Runs the selected package manager in `projectRoot`. */
11
+ export declare function spawnPackageManager(kind: PackageManagerKind, projectRoot: string, args: readonly string[], options?: RunPackageManagerOptions): Promise<boolean>;
12
+ export interface RunInstallOptions extends RunPackageManagerOptions {
13
+ /** Disables the manager's minimum-release-age cooldown for this run when supported. */
14
+ bypassMinimumReleaseAge?: boolean;
15
+ }
16
+ /** Installs project dependencies using the selected package-manager strategy. */
17
+ export declare function runPackageManagerInstall(kind: PackageManagerKind, projectRoot: string, options?: RunInstallOptions): Promise<boolean>;
18
+ /** The argv that runs the locally installed Eve binary's `dev` command. */
19
+ export declare function eveDevArguments(kind: PackageManagerKind): readonly string[];
20
+ /** Compatibility wrapper for callers that still explicitly require pnpm. */
21
+ export declare function spawnPnpm(projectRoot: string, args: readonly string[], options?: RunPackageManagerOptions): Promise<boolean>;
22
+ /** Compatibility wrapper for callers that still explicitly require pnpm. */
23
+ export declare function runPnpmInstall(projectRoot: string, options?: RunPackageManagerOptions): Promise<boolean>;
@@ -0,0 +1 @@
1
+ import{createProcessOutputBuffer}from"../process-output.js";import{getPackageManagerStrategy}from"./index.js";import{spawn}from"node:child_process";function spawnPackageManager(r,i,a,o={}){return new Promise(s=>{let c=getPackageManagerStrategy(r),l=c.prepareArguments(i,a),u=c.resolveInvocation(l),d=o.onOutput&&createProcessOutputBuffer(o.onOutput),f=spawn(u.command,[...u.args],{cwd:i,stdio:o.onOutput?[`inherit`,`pipe`,`pipe`]:`inherit`,shell:u.shell});f.stdout?.on(`data`,e=>d?.write(`stdout`,e)),f.stderr?.on(`data`,e=>d?.write(`stderr`,e));let p=!1;function settle(e){p||(p=!0,d?.flush(),s(e))}function reportFailure(e){o.onOutput?o.onOutput({stream:`stderr`,text:e}):process.stderr.write(`\n${e}\n`)}f.on(`error`,e=>{e.code===`ENOENT`?reportFailure(`${r} not found. Install it before running this step.`):reportFailure(`${r} ${a.join(` `)} failed: ${e.message}`),settle(!1)}),f.on(`close`,e=>settle(e===0))})}function runPackageManagerInstall(e,n,r={}){return spawnPackageManager(e,n,getPackageManagerStrategy(e).installArguments(r),{onOutput:r.onOutput})}function eveDevArguments(e){return getPackageManagerStrategy(e).devArguments()}function spawnPnpm(e,t,n={}){return spawnPackageManager(`pnpm`,e,t,n)}function runPnpmInstall(e,t={}){return runPackageManagerInstall(`pnpm`,e,t)}export{eveDevArguments,runPackageManagerInstall,runPnpmInstall,spawnPackageManager,spawnPnpm};
@@ -0,0 +1,8 @@
1
+ import type { PackageManagerInvocation } from "./types.js";
2
+ export type StandardExecutablePackageManager = "bun" | "npm" | "yarn";
3
+ /** Resolves a manager executable, preserving test and package-runner interposition. */
4
+ export declare function resolveStandardInvocation(kind: StandardExecutablePackageManager, args: readonly string[]): PackageManagerInvocation;
5
+ export declare function applyNoProjectConfiguration(): Promise<{
6
+ filesSkipped: [];
7
+ filesWritten: [];
8
+ }>;
@@ -0,0 +1 @@
1
+ import{extname}from"node:path";function resolveStandardInvocation(e,t){let n=process.env.npm_execpath,r=n?.toLowerCase(),i=r!==void 0&&(e===`npm`?r.includes(`npm`)&&!r.includes(`pnpm`):r.includes(e));if(n!==void 0&&i){let e=extname(n).toLowerCase();return e===`.cjs`||e===`.js`?{args:[n,...t],command:process.execPath}:{args:t,command:n,shell:process.platform===`win32`}}return{args:t,command:e,shell:process.platform===`win32`}}async function applyNoProjectConfiguration(){return{filesSkipped:[],filesWritten:[]}}export{applyNoProjectConfiguration,resolveStandardInvocation};
@@ -0,0 +1,37 @@
1
+ import type { PackageManagerKind } from "../../package-manager.js";
2
+ /** Executable and arguments used to invoke a package manager. */
3
+ export interface PackageManagerInvocation {
4
+ readonly args: readonly string[];
5
+ readonly command: string;
6
+ readonly shell?: boolean;
7
+ }
8
+ /** Files changed while applying package-manager-owned project configuration. */
9
+ export interface PackageManagerConfigurationResult {
10
+ readonly filesSkipped: readonly string[];
11
+ readonly filesWritten: readonly string[];
12
+ }
13
+ export interface PackageManagerInstallOptions {
14
+ readonly bypassMinimumReleaseAge?: boolean;
15
+ }
16
+ /**
17
+ * Package-manager-specific command and generated-project behavior.
18
+ *
19
+ * Process lifecycle and output handling remain shared; each strategy owns the
20
+ * arguments, executable resolution, and project files understood by its manager.
21
+ */
22
+ export interface PackageManagerStrategy {
23
+ /** Package manager represented by this strategy. */
24
+ readonly kind: PackageManagerKind;
25
+ /** Manager-owned files included when creating a fresh project. */
26
+ readonly scaffoldFiles: Readonly<Record<string, string>>;
27
+ /** Adds or reconciles manager-owned configuration in an existing project. */
28
+ applyProjectConfiguration(projectRoot: string): Promise<PackageManagerConfigurationResult>;
29
+ /** Arguments that run the project-local Eve development command. */
30
+ devArguments(): readonly string[];
31
+ /** Arguments that install project dependencies. */
32
+ installArguments(options: PackageManagerInstallOptions): readonly string[];
33
+ /** Adds any project-scoping arguments required before command execution. */
34
+ prepareArguments(projectRoot: string, args: readonly string[]): readonly string[];
35
+ /** Resolves the executable exposed by the current host environment. */
36
+ resolveInvocation(args: readonly string[]): PackageManagerInvocation;
37
+ }
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1,10 @@
1
+ import { applyNoProjectConfiguration } from "./shared.js";
2
+ export declare const yarnPackageManager: {
3
+ kind: "yarn";
4
+ scaffoldFiles: {};
5
+ applyProjectConfiguration: typeof applyNoProjectConfiguration;
6
+ devArguments: () => string[];
7
+ installArguments: () => string[];
8
+ prepareArguments: (_projectRoot: string, args: readonly string[]) => readonly string[];
9
+ resolveInvocation: (args: readonly string[]) => import("./types.js").PackageManagerInvocation;
10
+ };
@@ -0,0 +1 @@
1
+ import{applyNoProjectConfiguration,resolveStandardInvocation}from"./shared.js";const yarnPackageManager={kind:`yarn`,scaffoldFiles:{},applyProjectConfiguration:applyNoProjectConfiguration,devArguments:()=>[`eve`,`dev`],installArguments:()=>[`install`],prepareArguments:(e,t)=>t,resolveInvocation:e=>resolveStandardInvocation(`yarn`,e)};export{yarnPackageManager};
@@ -0,0 +1 @@
1
+ export { eveDevArguments, runPackageManagerInstall, runPnpmInstall, spawnPackageManager, spawnPnpm, type RunInstallOptions, type RunPackageManagerOptions as RunPnpmOptions, } from "./pm/run.js";
@@ -0,0 +1 @@
1
+ import{eveDevArguments,runPackageManagerInstall,runPnpmInstall,spawnPackageManager,spawnPnpm}from"./pm/run.js";export{eveDevArguments,runPackageManagerInstall,runPnpmInstall,spawnPackageManager,spawnPnpm};
@@ -7,6 +7,13 @@ export interface RunVercelOptions {
7
7
  nonInteractive?: boolean;
8
8
  /** Streams command output to a parent-owned renderer instead of writing outside it. */
9
9
  onOutput?: ProcessOutputHandler;
10
+ /**
11
+ * Hard deadline for the whole command. When it elapses the run settles as a
12
+ * failure and the child is killed (SIGTERM, then SIGKILL after a short
13
+ * grace). Unbounded when omitted — only safe for commands that cannot wait
14
+ * on external action, e.g. a Connect create parked on a browser OAuth.
15
+ */
16
+ timeoutMs?: number;
10
17
  }
11
18
  /**
12
19
  * Runs a Vercel CLI command with the Connect feature flag enabled.
@@ -0,0 +1 @@
1
+ import{createProcessOutputBuffer}from"./process-output.js";import{dirname,join,resolve}from"node:path";import{spawn}from"node:child_process";import{accessSync,constants,existsSync,statSync}from"node:fs";const CONNECT_FEATURE_FLAG_ENV={FF_CONNECT_ENABLED:`1`},VERCEL_NOT_FOUND_MESSAGE=`Vercel CLI not found. Install with: npm i -g vercel@latest`;function buildSpawnEnv(e){return{...process.env,...CONNECT_FEATURE_FLAG_ENV,...e}}function existingDir(e){let n=resolve(e);for(;!existsSync(n);){let e=dirname(n);if(e===n)break;n=e}return n}function armDeadline(e,t,n){if(t===void 0)return()=>{};let r=setTimeout(()=>{n(),e.kill(`SIGTERM`);let t=setTimeout(()=>e.kill(`SIGKILL`),5e3);t.unref(),e.once(`close`,()=>clearTimeout(t))},t);return r.unref(),()=>clearTimeout(r)}function timeoutMessage(e,t){return`vercel ${e.join(` `)} timed out after ${Math.round(t/1e3)}s and was aborted.`}function ancestorDirectories(e){let n=[],i=resolve(e);for(;;){n.push(i);let e=dirname(i);if(e===i)return n;i=e}}function findExecutable(e){try{if(accessSync(e,constants.F_OK|constants.X_OK),statSync(e).isFile())return e}catch{return}}function findLocalVercel(e){for(let t of ancestorDirectories(e)){let e=findExecutable(join(t,`node_modules`,`.bin`,`vercel`));if(e!==void 0)return e}}function resolveVercelInvocation(e){let t=findLocalVercel(e);return t===void 0?{command:`vercel`,commandArgs:[]}:{command:t,commandArgs:[]}}function stdioForRun(e){return e.onOutput?[e.nonInteractive?`ignore`:`inherit`,`pipe`,`pipe`]:e.nonInteractive?[`ignore`,`pipe`,`pipe`]:`inherit`}async function runVercel(t,n){return new Promise(r=>{let a=existingDir(n.cwd),o=resolveVercelInvocation(a),s=n.onOutput&&createProcessOutputBuffer(n.onOutput),c=spawn(o.command,[...o.commandArgs,...t],{cwd:a,stdio:stdioForRun(n),env:buildSpawnEnv(n.extraEnv??{})});c.stdout?.on(`data`,e=>s?.write(`stdout`,e)),c.stderr?.on(`data`,e=>s?.write(`stderr`,e));let l=!1;function settle(e){l||(l=!0,s?.flush(),r(e))}function reportFailure(e){n.onOutput?n.onOutput({stream:`stderr`,text:e}):process.stderr.write(`\n${e}\n`)}let u=armDeadline(c,n.timeoutMs,()=>{reportFailure(timeoutMessage(t,n.timeoutMs??0)),settle(!1)});c.on(`error`,e=>{u(),e.code===`ENOENT`?reportFailure(VERCEL_NOT_FOUND_MESSAGE):reportFailure(`vercel ${t.join(` `)} failed: ${e.message}`),settle(!1)}),c.on(`close`,e=>{u(),!l&&e!==0&&e!==null&&(s?.flush(),reportFailure(`vercel ${t.join(` `)} exited with code ${e}.`)),settle(e===0)})})}async function runVercelCaptureStdout(t,n){return new Promise(r=>{let a=existingDir(n.cwd),o=resolveVercelInvocation(a),s=n.onOutput&&createProcessOutputBuffer(n.onOutput),c=spawn(o.command,[...o.commandArgs,...t],{cwd:a,stdio:[n.nonInteractive?`ignore`:`inherit`,`pipe`,n.onOutput?`pipe`:`inherit`],env:buildSpawnEnv(n.extraEnv??{})}),l=[];c.stdout?.on(`data`,e=>l.push(e.toString(`utf8`))),c.stderr?.on(`data`,e=>s?.write(`stderr`,e));let u=!1;function settle(e){u||(u=!0,s?.flush(),r({ok:e,stdout:l.join(``)}))}function reportFailure(e){n.onOutput?n.onOutput({stream:`stderr`,text:e}):process.stderr.write(`\n${e}\n`)}let d=armDeadline(c,n.timeoutMs,()=>{reportFailure(timeoutMessage(t,n.timeoutMs??0)),settle(!1)});c.on(`error`,e=>{d(),reportFailure(e.code===`ENOENT`?VERCEL_NOT_FOUND_MESSAGE:`vercel ${t.join(` `)} failed: ${e.message}`),settle(!1)}),c.on(`close`,e=>{d(),!u&&e!==0&&e!==null&&reportFailure(`vercel ${t.join(` `)} exited with code ${e}.`),settle(e===0)})})}async function captureVercel(t,n){return new Promise(r=>{let a=existingDir(n.cwd),o=resolveVercelInvocation(a),s=n.onOutput&&createProcessOutputBuffer(n.onOutput),c=spawn(o.command,[...o.commandArgs,...t],{cwd:a,stdio:[`ignore`,`pipe`,`pipe`],env:buildSpawnEnv(n.extraEnv??{})}),l=[],u=[];c.stdout?.on(`data`,e=>l.push(e.toString(`utf8`))),c.stderr?.on(`data`,e=>{u.push(e.toString(`utf8`)),s?.write(`stderr`,e)});let d=!1;function fail(e){d||(d=!0,s?.flush(),n.onOutput?.({stream:`stderr`,text:e.message}),r({ok:!1,failure:e}))}function succeed(){d||(d=!0,s?.flush(),r({ok:!0,stdout:l.join(``)}))}let f=armDeadline(c,n.timeoutMs,()=>{fail({code:null,stdout:l.join(``),stderr:u.join(``),message:timeoutMessage(t,n.timeoutMs??0)})});c.on(`error`,e=>{f(),fail({errno:e.code,stdout:l.join(``),stderr:u.join(``),message:e.code===`ENOENT`?VERCEL_NOT_FOUND_MESSAGE:`vercel ${t.join(` `)} failed: ${e.message}`})}),c.on(`close`,e=>{if(f(),e!==0&&e!==null){fail({code:e,stdout:l.join(``),stderr:u.join(``),message:`vercel ${t.join(` `)} exited with code ${e}.`});return}succeed()})})}export{captureVercel,runVercel,runVercelCaptureStdout};
@@ -0,0 +1,4 @@
1
+ /** Returns an error message when a project name is not a safe single path segment. */
2
+ export declare function validateProjectName(value: string): string | undefined;
3
+ /** Parses and normalizes a project name at an external input boundary. */
4
+ export declare function parseProjectName(value: string): string;
@@ -0,0 +1 @@
1
+ const PROJECT_NAME_REGEX=/^(?!.*---)[a-z0-9-_.]+$/;function validateProjectName(t){let n=t.trim();if(n.length===0)return`Project name cannot be empty.`;if(n===`.`||n===`..`)return`Project name cannot be '${n}'.`;if(!PROJECT_NAME_REGEX.test(n)||n.length>100)return`Project name can only contain up to 100 lowercase letters, digits, and the characters '.', '_', '-'.`}function parseProjectName(e){let t=e.trim(),n=validateProjectName(t);if(n!==void 0)throw Error(n);return t}export{parseProjectName,validateProjectName};
@@ -0,0 +1,54 @@
1
+ /** Link and production-deployment status for a Vercel project directory. */
2
+ export type DeploymentState = "unlinked" | "linked" | "deployed";
3
+ /** Vercel project data resolved from local link metadata and the API. */
4
+ export interface DeploymentInfo {
5
+ state: DeploymentState;
6
+ projectId?: string;
7
+ orgId?: string;
8
+ productionUrl?: string;
9
+ }
10
+ /**
11
+ * Reads local Vercel link metadata and checks whether the linked project has a production alias.
12
+ */
13
+ export declare function detectDeployment(projectPath: string): Promise<DeploymentInfo>;
14
+ /** Human-readable identity of a linked Vercel project, for the dashboard status bar. */
15
+ export interface ProjectIdentity {
16
+ projectName: string;
17
+ /** The team's display name; absent for a personal-account project. */
18
+ teamName?: string;
19
+ }
20
+ /**
21
+ * Resolves a linked project's human-readable name and team for the dashboard
22
+ * status bar, from local `.vercel/project.json` plus the Vercel API. A
23
+ * personal-account project (a non-`team_` org) carries no team, so `teamName`
24
+ * is absent; the project name falls back to its id if the API call fails.
25
+ *
26
+ * Returns `undefined` when the directory is not linked. Network-bound: callers
27
+ * render a loading affordance and cache the result.
28
+ *
29
+ * @param projectPath Absolute path of the linked project directory.
30
+ */
31
+ export declare function detectProjectIdentity(projectPath: string): Promise<ProjectIdentity | undefined>;
32
+ export type ProjectResolution = {
33
+ kind: "unresolved";
34
+ } | {
35
+ kind: "linked";
36
+ projectId: string;
37
+ } | {
38
+ kind: "deployed";
39
+ projectId: string;
40
+ productionUrl: string;
41
+ };
42
+ export declare function projectResolutionFromDeployment(deployment: DeploymentInfo): ProjectResolution;
43
+ /**
44
+ * Side-effect-free fact gathering after a link: reads `.vercel/project.json`
45
+ * to resolve the project. The on-disk link is the single source of truth.
46
+ */
47
+ export declare function detectProjectResolution(projectRoot: string): Promise<ProjectResolution>;
48
+ export declare function mergeProjectResolution(current: ProjectResolution, next: ProjectResolution): ProjectResolution;
49
+ export declare function projectResolutionFromDeployResult(project: ProjectResolution, deploy: {
50
+ deployed: boolean;
51
+ productionUrl?: string;
52
+ }): ProjectResolution;
53
+ export declare function isProjectResolved(project: ProjectResolution): boolean;
54
+ export declare function projectProductionUrlFromResolution(project: ProjectResolution): string | undefined;
@@ -0,0 +1 @@
1
+ import{captureVercel}from"./primitives/run-vercel.js";import{join}from"node:path";import{readFile}from"node:fs/promises";function pickShortestAlias(e){if(!Array.isArray(e))return;let t;for(let n of e)typeof n!=`string`||n.length===0||(t===void 0||n.length<t.length)&&(t=n);return t}async function fetchProductionAlias(t,n,r){let i=await captureVercel([`api`,`/v9/projects/${t}?teamId=${n}`,`--scope`,n],{cwd:r});if(i.ok)try{let e=pickShortestAlias(JSON.parse(i.stdout).targets?.production?.alias);return e?`https://${e}`:void 0}catch{return}}async function detectDeployment(e){let r;try{r=await readFile(join(e,`.vercel`,`project.json`),`utf8`)}catch{return{state:`unlinked`}}let i;try{i=JSON.parse(r)}catch{return{state:`unlinked`}}let a=typeof i.projectId==`string`?i.projectId:void 0,o=typeof i.orgId==`string`?i.orgId:void 0;if(!a||!o)return{state:`unlinked`};let s=await fetchProductionAlias(a,o,e);return{state:s?`deployed`:`linked`,projectId:a,orgId:o,productionUrl:s}}async function fetchVercelName(t,n,r){let i=await captureVercel([`api`,t,`--scope`,n],{cwd:r});if(i.ok)try{let e=JSON.parse(i.stdout);return typeof e.name==`string`&&e.name.length>0?e.name:typeof e.slug==`string`&&e.slug.length>0?e.slug:void 0}catch{return}}async function detectProjectIdentity(e){let r;try{r=await readFile(join(e,`.vercel`,`project.json`),`utf8`)}catch{return}let i;try{i=JSON.parse(r)}catch{return}let a=typeof i.projectId==`string`?i.projectId:void 0,o=typeof i.orgId==`string`?i.orgId:void 0;if(!a||!o)return;let[s,c]=await Promise.all([fetchVercelName(`/v9/projects/${a}?teamId=${o}`,o,e).then(e=>e??a),o.startsWith(`team_`)?fetchVercelName(`/v2/teams/${o}`,o,e):Promise.resolve(void 0)]);return{projectName:s,teamName:c}}function projectResolutionFromDeployment(e){return e.state===`unlinked`||e.projectId===void 0?{kind:`unresolved`}:e.state===`deployed`&&e.productionUrl!==void 0?{kind:`deployed`,projectId:e.projectId,productionUrl:e.productionUrl}:{kind:`linked`,projectId:e.projectId}}async function detectProjectResolution(e){return projectResolutionFromDeployment(await detectDeployment(e))}function mergeProjectResolution(e,t){return t.kind===`unresolved`||e.kind===`deployed`&&e.projectId===t.projectId?e:t}function projectResolutionFromDeployResult(e,t){return e.kind===`unresolved`||!t.deployed||t.productionUrl===void 0?e:{kind:`deployed`,projectId:e.projectId,productionUrl:t.productionUrl}}function isProjectResolved(e){return e.kind!==`unresolved`}function projectProductionUrlFromResolution(e){return e.kind===`deployed`?e.productionUrl:void 0}export{detectDeployment,detectProjectIdentity,detectProjectResolution,isProjectResolved,mergeProjectResolution,projectProductionUrlFromResolution,projectResolutionFromDeployResult,projectResolutionFromDeployment};
@@ -1,4 +1,4 @@
1
- import { type RailSpinner } from "#setup/scaffold/cli/index.js";
1
+ import { type RailSpinner } from "#setup/cli/index.js";
2
2
  /**
3
3
  * Clack constrains option values to readonly primitives. Our scaffold flow
4
4
  * only ever uses string-valued options (`ChannelKind`, `SetupMode`,
@@ -25,6 +25,22 @@ export interface SelectOption<T extends PrompterValue> {
25
25
  locked?: boolean;
26
26
  /** Parenthetical shown after a locked option's label, e.g. "always available". */
27
27
  lockedReason?: string;
28
+ /**
29
+ * A leading run of featured options forms a searchable picker's default
30
+ * viewport: with no filter typed, only they are in view, and scrolling or
31
+ * filtering reaches the rest of the list. Featured options must be sorted
32
+ * to the front. Meaningless without `search`.
33
+ */
34
+ featured?: boolean;
35
+ }
36
+ /**
37
+ * An outcome line from an earlier lap of a looping menu, shown with the
38
+ * repainted question: the TUI panel renders it beneath the options, the CLI
39
+ * prints it to scrollback before the prompt.
40
+ */
41
+ export interface SelectNotice {
42
+ tone: "success" | "info" | "warning";
43
+ text: string;
28
44
  }
29
45
  /** Options common to every {@link Prompter.select} call. */
30
46
  export interface SelectCommonOptions<T extends PrompterValue> {
@@ -43,6 +59,15 @@ export interface SelectCommonOptions<T extends PrompterValue> {
43
59
  * so it is inherently satisfied.
44
60
  */
45
61
  required?: boolean;
62
+ /**
63
+ * "stacked" renders each option's hint on its own line below the label with
64
+ * a blank line between options — for small action menus whose hints carry
65
+ * current values. A TUI-panel affordance: the CLI prompter keeps its inline
66
+ * hint rendering.
67
+ */
68
+ layout?: "stacked";
69
+ /** Outcome lines from earlier laps of a looping menu. */
70
+ notices?: readonly SelectNotice[];
46
71
  }
47
72
  /** Single-select form: navigate, then enter picks the highlighted option. */
48
73
  export interface SingleSelectOptions<T extends PrompterValue> extends SelectCommonOptions<T> {
@@ -50,12 +75,19 @@ export interface SingleSelectOptions<T extends PrompterValue> extends SelectComm
50
75
  /** Pre-position the cursor on the option whose value matches. */
51
76
  initialValue?: T;
52
77
  }
53
- /** Multi-select form: space toggles rows, enter confirms the marked set. */
78
+ /** Multi-select form: space or enter toggles rows; enter on the trailing Submit row confirms the marked set. */
54
79
  export interface MultiSelectOptions<T extends PrompterValue> extends SelectCommonOptions<T> {
55
80
  multiple: true;
56
81
  /** Pre-mark these values as selected. */
57
82
  initialValues?: T[];
58
83
  }
84
+ /** Color intent for {@link Prompter.note}: red warning (default) or green success. */
85
+ export type NoteTone = "warning" | "success";
86
+ /** Input for {@link Prompter.acknowledge}: a heading plus optional body lines. */
87
+ export interface AcknowledgeOptions {
88
+ message: string;
89
+ lines?: readonly string[];
90
+ }
59
91
  export interface Prompter {
60
92
  text(opts: {
61
93
  message: string;
@@ -69,13 +101,29 @@ export interface Prompter {
69
101
  }): Promise<string>;
70
102
  /**
71
103
  * Unified picker. Defaults to single-select (enter picks the highlighted row);
72
- * pass `multiple: true` for a checklist (space toggles, enter confirms). Add
104
+ * pass `multiple: true` for a checklist (space or enter toggles, enter on
105
+ * the trailing Submit row confirms). Add
73
106
  * `search: true` for a type-ahead filter. `required` gates an empty
74
107
  * multi-select submission.
75
108
  */
76
109
  select<T extends PrompterValue>(opts: SingleSelectOptions<T>): Promise<T>;
77
110
  select<T extends PrompterValue>(opts: MultiSelectOptions<T>): Promise<T[]>;
78
- note(message: string, title?: string): void;
111
+ /**
112
+ * Static instructions the user dismisses before the flow moves on. The TUI
113
+ * renders them in the question slot of the flow panel (the text takes the
114
+ * place of option rows) until enter; the CLI prints them to scrollback and
115
+ * resolves immediately, since printed text persists there. Optional so
116
+ * lightweight test fakes can omit it — flows fall back to {@link note}.
117
+ */
118
+ acknowledge?(opts: AcknowledgeOptions): Promise<void>;
119
+ /**
120
+ * Rail-attached notice, no bullet — reads as a follow-up to the previous
121
+ * step. Red by default (warnings, collisions); pass `tone: "success"` for a
122
+ * green closing note like the one-shot next steps.
123
+ */
124
+ note(message: string, title?: string, options?: {
125
+ tone?: NoteTone;
126
+ }): void;
79
127
  /** Prints the Vercel ▲ logo + title + subtitle banner. */
80
128
  intro(title: string, subtitle?: string): void;
81
129
  /** Prints a final green ● end-cap with the message. */
@@ -1 +1 @@
1
- import{__toESM}from"../_virtual/_rolldown/runtime.js";import{WizardCancelledError}from"./step.js";import{h,ht,q}from"../node_modules/.pnpm/@clack_core@1.3.1/node_modules/@clack/core/dist/index.js";import{require_picocolors}from"../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js";import{initialQuitGuardState,quitHintNote,reduceQuitGuard}from"./quit-guard.js";import{cornerFor,createRailLog,formatPromptCancellation,formatPromptHeader,formatPromptOpener,formatPromptOutro,formatPromptSubmission,formatRailLine,railFor,runSelectComponent}from"#setup/scaffold/cli/index.js";var import_picocolors=__toESM(require_picocolors(),1);function guardCancel(e){if(q(e))throw process.stdout.write(formatPromptCancellation(`Setup cancelled.`,import_picocolors.default)),new WizardCancelledError;return e}let escapeCancelDisabled=!1;function disableEscapeCancel(){escapeCancelDisabled||=(h.aliases.delete(`escape`),!0)}function attachQuitGuard(e){let t=initialQuitGuardState;return e.on(`key`,(n,r)=>{let{state:i,action:a}=reduceQuitGuard(t,r?.name===`escape`?{type:`escape`}:{type:`other-key`});t=i,a===`quit`&&(e.state=`cancel`)}),{note:()=>quitHintNote(t,import_picocolors.default)}}function toPromptState(e){return e}function railForState(e){return railFor(toPromptState(e),import_picocolors.default)}function cornerForState(e){return cornerFor(toPromptState(e),import_picocolors.default)}function header(e,t,n){return formatPromptHeader(toPromptState(e),t,{colors:import_picocolors.default,leadingRail:n===0?`white`:`green`})}const REDACTED_DISPLAY=`••••••••`;function textPrompt(e,t){let n,i=new ht({validate:t.validate?e=>t.validate?.(e??``):void 0,placeholder:t.placeholder,defaultValue:t.defaultValue,render(){let r=header(this.state,t.message,e),i=t.placeholder?import_picocolors.default.inverse(t.placeholder[0])+import_picocolors.default.dim(t.placeholder.slice(1)):import_picocolors.default.inverse(import_picocolors.default.hidden(`_`)),a=this.value?`•`.repeat(this.value.length):i,o=t.mask?a:this.value?this.userInputWithCursor:i;switch(this.state){case`error`:return`${r.trim()}\n${railForState(this.state)} ${o}\n${cornerForState(this.state)} ${import_picocolors.default.red(this.error)}\n`;case`submit`:{let n=t.mask?this.value?REDACTED_DISPLAY:t.placeholder||``:this.value||t.placeholder||``;return formatPromptSubmission(this.state,t.message,n,{colors:import_picocolors.default,leadingRail:e===0?`white`:`green`})}case`cancel`:return`${r}${railForState(this.state)} ${import_picocolors.default.strikethrough(import_picocolors.default.dim(t.mask&&this.value?REDACTED_DISPLAY:this.value??``))}${this.value?.trim()?`\n${railForState(this.state)}`:``}`;default:return`${r}${railForState(this.state)} ${o}\n${cornerForState(this.state)}${cornerNote(n?.note())}\n`}}});return n=attachQuitGuard(i),i.prompt()}function cornerNote(e){return e?` ${e}`:``}function createPrompter(){disableEscapeCancel();let e=0,t=createRailLog({colors:import_picocolors.default,output:process.stdout});return{async text(n){t.settle();let r=guardCancel(await textPrompt(e,n));return e+=1,r??``},async password(n){t.settle();let r=guardCancel(await textPrompt(e,{message:n.message,mask:!0,validate:n.validate}));return e+=1,r??``},async select(n){t.settle();let r=guardCancel(await runSelectComponent({message:n.message,options:n.options,multiple:n.multiple===!0,search:n.search??!1,required:n.required??!1,placeholder:n.placeholder,defaultValue:n.multiple===!0?void 0:n.initialValue,initialValues:n.multiple===!0?n.initialValues:void 0,leadingRail:e===0?`white`:`green`,attachGuard:e=>attachQuitGuard(e)}));return e+=1,r},note(e,n){t.settle(),n&&process.stdout.write(formatRailLine(import_picocolors.default.red(import_picocolors.default.bold(n)),import_picocolors.default,process.stdout)),process.stdout.write(formatRailLine(import_picocolors.default.red(e),import_picocolors.default,process.stdout))},intro(e,n=`Eve by Vercel: like Next.js, but for agents.`){t.settle(),process.stdout.write(formatPromptOpener(e,n,import_picocolors.default))},outro(e){t.settle(),process.stdout.write(formatPromptOutro(e,import_picocolors.default))},log:t}}export{createPrompter};
1
+ import{__toESM}from"../_virtual/_rolldown/runtime.js";import{require_picocolors}from"../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js";import{h,ht,q}from"../node_modules/.pnpm/@clack_core@1.3.1/node_modules/@clack/core/dist/index.js";import{WizardCancelledError}from"./step.js";import{initialQuitGuardState,quitHintNote,reduceQuitGuard}from"./quit-guard.js";import{cornerFor,createRailLog,formatPromptCancellation,formatPromptHeader,formatPromptOpener,formatPromptOutro,formatPromptSubmission,formatRailLine,railFor,runSelectComponent}from"#setup/cli/index.js";var import_picocolors=__toESM(require_picocolors(),1);function guardCancel(e){if(q(e))throw process.stdout.write(formatPromptCancellation(`Setup cancelled.`,import_picocolors.default)),new WizardCancelledError;return e}let escapeCancelDisabled=!1;function disableEscapeCancel(){escapeCancelDisabled||=(h.aliases.delete(`escape`),!0)}function attachQuitGuard(e){let t=initialQuitGuardState;return e.on(`key`,(n,r)=>{let{state:i,action:a}=reduceQuitGuard(t,r?.name===`escape`?{type:`escape`}:{type:`other-key`});t=i,a===`quit`&&(e.state=`cancel`)}),{note:()=>quitHintNote(t,import_picocolors.default)}}function toPromptState(e){return e}function railForState(e){return railFor(toPromptState(e),import_picocolors.default)}function cornerForState(e){return cornerFor(toPromptState(e),import_picocolors.default)}function header(e,t,n){return formatPromptHeader(toPromptState(e),t,{colors:import_picocolors.default,leadingRail:n===0?`white`:`green`})}const REDACTED_DISPLAY=`••••••••`;function textPrompt(e,t){let n,i=new ht({validate:t.validate?e=>t.validate?.(e??``):void 0,placeholder:t.placeholder,defaultValue:t.defaultValue,render(){let r=header(this.state,t.message,e),i=t.placeholder?import_picocolors.default.inverse(t.placeholder[0])+import_picocolors.default.dim(t.placeholder.slice(1)):import_picocolors.default.inverse(import_picocolors.default.hidden(`_`)),a=this.value?`•`.repeat(this.value.length):i,o=t.mask?a:this.value?this.userInputWithCursor:i;switch(this.state){case`error`:return`${r.trim()}\n${railForState(this.state)} ${o}\n${cornerForState(this.state)} ${import_picocolors.default.red(this.error)}\n`;case`submit`:{let n=t.mask?this.value?REDACTED_DISPLAY:t.placeholder||``:this.value||t.placeholder||``;return formatPromptSubmission(this.state,t.message,n,{colors:import_picocolors.default,leadingRail:e===0?`white`:`green`})}case`cancel`:return`${r}${railForState(this.state)} ${import_picocolors.default.strikethrough(import_picocolors.default.dim(t.mask&&this.value?REDACTED_DISPLAY:this.value??``))}${this.value?.trim()?`\n${railForState(this.state)}`:``}`;default:return`${r}${railForState(this.state)} ${o}\n${cornerForState(this.state)}${cornerNote(n?.note())}\n`}}});return n=attachQuitGuard(i),i.prompt()}function cornerNote(e){return e?` ${e}`:``}function createPrompter(){disableEscapeCancel();let e=0,t=createRailLog({colors:import_picocolors.default,output:process.stdout});return{async text(n){t.settle();let r=guardCancel(await textPrompt(e,n));return e+=1,r??``},async password(n){t.settle();let r=guardCancel(await textPrompt(e,{message:n.message,mask:!0,validate:n.validate}));return e+=1,r??``},async select(n){t.settle();for(let e of n.notices??[])e.tone===`success`?t.success(e.text):e.tone===`warning`?t.warning(e.text):t.message(e.text);let r=guardCancel(await runSelectComponent({message:n.message,options:n.options,multiple:n.multiple===!0,search:n.search??!1,required:n.required??!1,placeholder:n.placeholder,defaultValue:n.multiple===!0?void 0:n.initialValue,initialValues:n.multiple===!0?n.initialValues:void 0,leadingRail:e===0?`white`:`green`,attachGuard:e=>attachQuitGuard(e)}));return e+=1,r},async acknowledge(e){t.settle(),process.stdout.write(formatRailLine(import_picocolors.default.bold(e.message),import_picocolors.default,process.stdout));for(let t of e.lines??[])process.stdout.write(formatRailLine(import_picocolors.default.dim(t),import_picocolors.default,process.stdout))},note(e,n,r){t.settle();let i=r?.tone===`success`?import_picocolors.default.green:import_picocolors.default.red;n&&process.stdout.write(formatRailLine(i(import_picocolors.default.bold(n)),import_picocolors.default,process.stdout)),process.stdout.write(formatRailLine(i(e),import_picocolors.default,process.stdout))},intro(e,n=`Production-grade agent framework.`){t.settle(),process.stdout.write(formatPromptOpener(e,n,import_picocolors.default))},outro(e){t.settle(),process.stdout.write(formatPromptOutro(e,import_picocolors.default))},log:t}}export{createPrompter};
@@ -1,4 +1,4 @@
1
- import type { PromptColors } from "#setup/scaffold/cli/index.js";
1
+ import type { PromptColors } from "#setup/cli/index.js";
2
2
  /**
3
3
  * Two-stage Escape-to-quit state for an interactive prompt.
4
4
  *
@@ -1,4 +1,4 @@
1
- import { type RunVercelOptions } from "#setup/scaffold/primitives/index.js";
1
+ import { type RunVercelOptions } from "#setup/primitives/index.js";
2
2
  type VercelOutputHandler = NonNullable<RunVercelOptions["onOutput"]>;
3
3
  /**
4
4
  * Runs `vercel env pull --yes` inside a linked project so `.env.local`
@@ -1 +1 @@
1
- import{runVercel}from"#setup/scaffold/primitives/index.js";async function runVercelEnvPull(e,t){return runVercel([`env`,`pull`,`--yes`],{cwd:e,onOutput:t})}export{runVercelEnvPull};
1
+ import{runVercel}from"#setup/primitives/index.js";async function runVercelEnvPull(e,t){return runVercel([`env`,`pull`,`--yes`],{cwd:e,onOutput:t})}export{runVercelEnvPull};
@@ -36,14 +36,15 @@ export interface RunnerOptions<State> {
36
36
  /**
37
37
  * Linear interactive runner: walk the boxes in order, prompting for each. A box
38
38
  * whose `perform` throws a {@link RetryableSetupError} is re-gathered with the
39
- * prior input as the default; a cancel (returned as an outcome, or thrown by a
40
- * prompter) ends the whole run. There is no back navigation: side effects are
41
- * not undone by restoring in-memory state.
39
+ * prior input as the default; a cancel (a {@link WizardCancelledError} thrown
40
+ * by a prompter) ends the whole run. There is no back navigation: side effects
41
+ * are not undone by restoring in-memory state.
42
42
  */
43
43
  export declare function runInteractive<State>(boxes: readonly AnySetupBox<State>[], initialState: State, sink: OutputSink, options?: RunnerOptions<State>): Promise<RunResult<State>>;
44
44
  /**
45
45
  * Non-interactive runner: derive each box's input from its options and apply
46
46
  * it. No retry loop and no prompts; a box that cannot proceed without a human
47
- * is expected to throw from `gatherHeadless`/`perform`.
47
+ * is expected to throw from its gather (a unified box's headless-based asker
48
+ * refuses required questions with `InteractionRequired`) or from `perform`.
48
49
  */
49
50
  export declare function runHeadless<State>(boxes: readonly AnySetupBox<State>[], initialState: State, sink: OutputSink, options?: RunnerOptions<State>): Promise<State>;
@@ -1 +1 @@
1
- import{WizardCancelledError}from"./step.js";import{ChannelAddCancelledError}from"#setup/scaffold/cli/index.js";function isCancellation(n){return n instanceof WizardCancelledError||n instanceof ChannelAddCancelledError}var RetryableSetupError=class extends Error{constructor(e,t){super(e,t),this.name=`RetryableSetupError`}};function isRetryable(e){return e instanceof RetryableSetupError}async function runInteractive(e,t,n,r){let i=t,view=()=>r?.snapshot?r.snapshot(i):i,a={};try{for(let t of e)if(t.shouldRun?.(view())!==!1)for(;;){let e=await t.gatherInteractive({state:view(),initial:a[t.id]});if(e.kind===`cancelled`)return{kind:`cancelled`};a[t.id]=e.input;try{let r=await t.perform({state:view(),input:e.input,sink:n});i=t.apply(i,r);break}catch(e){if(!isRetryable(e))throw e;n.write(e instanceof Error?e.message:String(e))}}}catch(e){if(isCancellation(e))return{kind:`cancelled`};throw e}return{kind:`done`,state:i}}async function runHeadless(e,t,n,r){let i=t,view=()=>r?.snapshot?r.snapshot(i):i;for(let t of e){if(t.shouldRun?.(view())===!1)continue;let e=await t.gatherHeadless({state:view()}),r=await t.perform({state:view(),input:e,sink:n});i=t.apply(i,r)}return i}export{RetryableSetupError,runHeadless,runInteractive};
1
+ import{WizardCancelledError}from"./step.js";function isCancellation(t){return t instanceof WizardCancelledError}var RetryableSetupError=class extends Error{constructor(e,t){super(e,t),this.name=`RetryableSetupError`}};function isRetryable(e){return e instanceof RetryableSetupError}async function runInteractive(e,t,n,r){let i=t,view=()=>r?.snapshot?r.snapshot(i):i,a={};try{for(let t of e)if(t.shouldRun?.(view())!==!1)for(;;){let e=await t.gather({state:view(),initial:a[t.id]});a[t.id]=e;try{let r=await t.perform({state:view(),input:e,sink:n});i=t.apply(i,r);break}catch(e){if(!isRetryable(e))throw e;n.write(e instanceof Error?e.message:String(e))}}}catch(e){if(isCancellation(e))return{kind:`cancelled`};throw e}return{kind:`done`,state:i}}async function runHeadless(e,t,n,r){let i=t,view=()=>r?.snapshot?r.snapshot(i):i;for(let t of e){if(t.shouldRun?.(view())===!1)continue;let e=await t.gather({state:view()}),r=await t.perform({state:view(),input:e,sink:n});i=t.apply(i,r)}return i}export{RetryableSetupError,runHeadless,runInteractive};
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Build-time catalog of the channels the onboarding CLI can scaffold. It drives
3
- * the `Select channels` picker shown during create and `eve channels add`.
2
+ * Build-time catalog of channels used by programmatic setup and
3
+ * `eve channels add`.
4
4
  *
5
5
  * Channel *identity* (slug, name, and whether it is scaffoldable) is owned by
6
6
  * `@vercel/eve-catalog`, the cross-surface source of truth shared with the docs
@@ -9,7 +9,7 @@
9
9
  * as `web`), the picker copy, and the picker order — and validates that the
10
10
  * overlay and the catalog cannot drift apart.
11
11
  */
12
- import type { ChannelKind } from "./channels.js";
12
+ import type { ChannelKind } from "./update/channels.js";
13
13
  /** A catalog channel the CLI can scaffold, paired with its picker presentation. */
14
14
  export interface ScaffoldableChannel {
15
15
  /** Catalog slug. */
@@ -1 +1 @@
1
- import{channelEntries}from"../../packages/eve-catalog/src/index.js";const CHANNEL_SCAFFOLDS=[{slug:`eve`,kind:`web`,label:`Web Chat`},{slug:`slack`,kind:`slack`,label:`Slack`,hint:`creates slackbot and deploys to Vercel`}];function buildScaffoldableChannels(){let n=new Set(channelEntries().filter(e=>e.surfaces.scaffoldable).map(e=>e.slug)),r=[];for(let e of CHANNEL_SCAFFOLDS){if(!n.delete(e.slug))throw Error(`Channel overlay "${e.slug}" is not a scaffoldable channel in @vercel/eve-catalog.`);let t={slug:e.slug,kind:e.kind,label:e.label};e.hint!==void 0&&(t.hint=e.hint),r.push(t)}if(n.size>0){let e=[...n].sort().join(`, `);throw Error(`Scaffoldable catalog channels missing a scaffolder overlay: ${e}.`)}return r}const SCAFFOLDABLE_CHANNELS=buildScaffoldableChannels();export{SCAFFOLDABLE_CHANNELS};
1
+ import{channelEntries}from"../../packages/eve-catalog/src/index.js";const CHANNEL_SCAFFOLDS=[{slug:`eve`,kind:`web`,label:`Web Chat`,hint:`Next.js app`},{slug:`slack`,kind:`slack`,label:`Slack`,hint:`creates slackbot and deploys to Vercel`}];function buildScaffoldableChannels(){let n=new Set(channelEntries().filter(e=>e.surfaces.scaffoldable).map(e=>e.slug)),r=[];for(let e of CHANNEL_SCAFFOLDS){if(!n.delete(e.slug))throw Error(`Channel overlay "${e.slug}" is not a scaffoldable channel in @vercel/eve-catalog.`);let t={slug:e.slug,kind:e.kind,label:e.label};e.hint!==void 0&&(t.hint=e.hint),r.push(t)}if(n.size>0){let e=[...n].sort().join(`, `);throw Error(`Scaffoldable catalog channels missing a scaffolder overlay: ${e}.`)}return r}const SCAFFOLDABLE_CHANNELS=buildScaffoldableChannels();export{SCAFFOLDABLE_CHANNELS};