eve 0.6.0-beta.8 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (588) hide show
  1. package/CHANGELOG.md +278 -0
  2. package/README.md +9 -6
  3. package/dist/docs/public/README.md +1 -1
  4. package/dist/docs/public/advanced/auth-and-route-protection.md +3 -1
  5. package/dist/docs/public/advanced/default-harness.md +2 -2
  6. package/dist/docs/public/advanced/dev-tui.md +9 -11
  7. package/dist/docs/public/advanced/instrumentation.md +1 -1
  8. package/dist/docs/public/advanced/meta.json +0 -1
  9. package/dist/docs/public/advanced/security-model.md +1 -1
  10. package/dist/docs/public/advanced/session-context.md +1 -1
  11. package/dist/docs/public/agent-config.md +6 -3
  12. package/dist/docs/public/channels/eve.mdx +1 -1
  13. package/dist/docs/public/channels/slack.mdx +14 -2
  14. package/dist/docs/public/connections.mdx +3 -1
  15. package/dist/docs/public/evals/assertions.mdx +108 -0
  16. package/dist/docs/public/evals/cases.mdx +143 -0
  17. package/dist/docs/public/evals/judge.mdx +94 -0
  18. package/dist/docs/public/evals/meta.json +4 -0
  19. package/dist/docs/public/evals/overview.mdx +118 -0
  20. package/dist/docs/public/evals/reporters.mdx +62 -0
  21. package/dist/docs/public/evals/running.mdx +63 -0
  22. package/dist/docs/public/evals/targets.mdx +54 -0
  23. package/dist/docs/public/frontend/nextjs.mdx +13 -4
  24. package/dist/docs/public/frontend/nuxt.mdx +4 -4
  25. package/dist/docs/public/frontend/sveltekit.mdx +2 -2
  26. package/dist/docs/public/getting-started.mdx +25 -13
  27. package/dist/docs/public/meta.json +1 -0
  28. package/dist/docs/public/reference/cli.md +31 -9
  29. package/dist/docs/public/reference/typescript-api.md +6 -2
  30. package/dist/docs/public/sandbox.mdx +3 -1
  31. package/dist/docs/public/tools.mdx +0 -4
  32. package/dist/docs/public/tutorial/connect-a-warehouse.mdx +1 -1
  33. package/dist/docs/public/tutorial/first-agent.mdx +5 -2
  34. package/dist/src/chunks/{use-eve-agent-DCZbkLG7.js → use-eve-agent-DErQj5hs.js} +125 -37
  35. package/dist/src/chunks/{use-eve-agent-DoheC4_o.js → use-eve-agent-DoR8C4i6.js} +125 -37
  36. package/dist/src/cli/banner.d.ts +7 -0
  37. package/dist/src/cli/banner.js +1 -0
  38. package/dist/src/cli/commands/channel-add-conflicts.d.ts +1 -1
  39. package/dist/src/cli/commands/channels.d.ts +9 -6
  40. package/dist/src/cli/commands/channels.js +1 -1
  41. package/dist/src/cli/commands/deploy.d.ts +21 -0
  42. package/dist/src/cli/commands/deploy.js +1 -0
  43. package/dist/src/cli/commands/init-git.d.ts +15 -0
  44. package/dist/src/cli/commands/init-git.js +1 -0
  45. package/dist/src/cli/commands/init.d.ts +29 -0
  46. package/dist/src/cli/commands/init.js +1 -0
  47. package/dist/src/cli/commands/link.d.ts +21 -0
  48. package/dist/src/cli/commands/link.js +1 -0
  49. package/dist/src/cli/commands/preconditions.d.ts +7 -0
  50. package/dist/src/cli/commands/preconditions.js +1 -0
  51. package/dist/src/cli/commands/register-project-commands.d.ts +12 -0
  52. package/dist/src/cli/commands/register-project-commands.js +1 -0
  53. package/dist/src/cli/dev/tui/agent-header.d.ts +15 -9
  54. package/dist/src/cli/dev/tui/agent-header.js +1 -1
  55. package/dist/src/cli/dev/tui/blocks.d.ts +1 -1
  56. package/dist/src/cli/dev/tui/blocks.js +3 -2
  57. package/dist/src/cli/dev/tui/command-typeahead.d.ts +47 -0
  58. package/dist/src/cli/dev/tui/command-typeahead.js +1 -0
  59. package/dist/src/cli/dev/tui/dev-rebuild-status.d.ts +21 -0
  60. package/dist/src/cli/dev/tui/dev-rebuild-status.js +1 -0
  61. package/dist/src/cli/dev/tui/errors.d.ts +18 -0
  62. package/dist/src/cli/dev/tui/errors.js +1 -1
  63. package/dist/src/cli/dev/tui/prompt-command-handler.d.ts +14 -0
  64. package/dist/src/cli/dev/tui/prompt-command-handler.js +1 -0
  65. package/dist/src/cli/dev/tui/prompt-commands.d.ts +54 -0
  66. package/dist/src/cli/dev/tui/prompt-commands.js +2 -0
  67. package/dist/src/cli/dev/tui/runner.d.ts +62 -5
  68. package/dist/src/cli/dev/tui/runner.js +1 -1
  69. package/dist/src/cli/dev/tui/setup-commands.d.ts +48 -0
  70. package/dist/src/cli/dev/tui/setup-commands.js +2 -0
  71. package/dist/src/cli/dev/tui/setup-flow.d.ts +35 -0
  72. package/dist/src/cli/dev/tui/setup-issues.d.ts +40 -0
  73. package/dist/src/cli/dev/tui/setup-issues.js +1 -0
  74. package/dist/src/cli/dev/tui/setup-panel.d.ts +103 -0
  75. package/dist/src/cli/dev/tui/setup-panel.js +1 -0
  76. package/dist/src/cli/dev/tui/status-line.d.ts +25 -0
  77. package/dist/src/cli/dev/tui/status-line.js +1 -0
  78. package/dist/src/cli/dev/tui/stream-format.d.ts +16 -1
  79. package/dist/src/cli/dev/tui/stream-format.js +1 -1
  80. package/dist/src/cli/dev/tui/terminal-renderer.d.ts +32 -3
  81. package/dist/src/cli/dev/tui/terminal-renderer.js +5 -2
  82. package/dist/src/cli/dev/tui/test/index.d.ts +3 -1
  83. package/dist/src/cli/dev/tui/test/index.js +1 -1
  84. package/dist/src/cli/dev/tui/test/mock-terminal.d.ts +1 -0
  85. package/dist/src/cli/dev/tui/test/mock-terminal.js +1 -1
  86. package/dist/src/cli/dev/tui/theme.d.ts +10 -0
  87. package/dist/src/cli/dev/tui/theme.js +1 -1
  88. package/dist/src/cli/dev/tui/tui-prompter.d.ts +20 -0
  89. package/dist/src/cli/dev/tui/tui-prompter.js +1 -0
  90. package/dist/src/cli/dev/tui/tui.d.ts +6 -8
  91. package/dist/src/cli/dev/tui/tui.js +1 -1
  92. package/dist/src/cli/dev/tui/types.d.ts +4 -3
  93. package/dist/src/cli/dev/tui/vercel-status.d.ts +47 -0
  94. package/dist/src/cli/dev/tui/vercel-status.js +1 -0
  95. package/dist/src/cli/run.d.ts +12 -19
  96. package/dist/src/cli/run.js +2 -2
  97. package/dist/src/client/client.d.ts +8 -0
  98. package/dist/src/client/client.js +1 -1
  99. package/dist/src/client/file-parts.d.ts +18 -0
  100. package/dist/src/client/file-parts.js +1 -0
  101. package/dist/src/client/index.d.ts +3 -2
  102. package/dist/src/client/index.js +1 -1
  103. package/dist/src/client/message-response.js +1 -1
  104. package/dist/src/client/open-stream.d.ts +6 -0
  105. package/dist/src/client/open-stream.js +1 -1
  106. package/dist/src/client/session-utils.d.ts +5 -0
  107. package/dist/src/client/session-utils.js +1 -1
  108. package/dist/src/client/session.js +1 -1
  109. package/dist/src/client/types.d.ts +9 -2
  110. package/dist/src/compiled/.vendor-stamp.json +8 -8
  111. package/dist/src/compiled/@ai-sdk/anthropic/index.d.ts +56 -31
  112. package/dist/src/compiled/@ai-sdk/anthropic/index.js +2 -2
  113. package/dist/src/compiled/@ai-sdk/google/index.js +1 -1
  114. package/dist/src/compiled/@ai-sdk/mcp/index.js +1 -1
  115. package/dist/src/compiled/@ai-sdk/openai/index.d.ts +16 -9
  116. package/dist/src/compiled/@ai-sdk/openai/index.js +2 -2
  117. package/dist/src/compiled/@ai-sdk/otel/index.js +2 -2
  118. package/dist/src/compiled/@vercel/sandbox/index.js +1 -1
  119. package/dist/src/compiled/@workflow/core/index.js +2 -2
  120. package/dist/src/compiled/@workflow/core/runtime/helpers.d.ts +4 -2
  121. package/dist/src/compiled/@workflow/core/runtime/wait-until.d.ts +18 -0
  122. package/dist/src/compiled/@workflow/core/runtime.d.ts +3 -1
  123. package/dist/src/compiled/@workflow/core/runtime.js +28 -28
  124. package/dist/src/compiled/@workflow/core/serialization.d.ts +41 -0
  125. package/dist/src/compiled/@workflow/core/util.d.ts +0 -5
  126. package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
  127. package/dist/src/compiled/@workflow/core/workflow.js +1 -1
  128. package/dist/src/compiled/@workflow/world/index.d.ts +2 -2
  129. package/dist/src/compiled/@workflow/world/queue.d.ts +28 -2
  130. package/dist/src/compiled/_chunks/workflow/{dist-gEXVSMPU.js → dist-CkMRLaRV.js} +1 -1
  131. package/dist/src/compiled/_chunks/workflow/functions-DuPjIvMH.js +1 -0
  132. package/dist/src/compiled/_chunks/workflow/resume-hook-CEAS3opc.js +12 -0
  133. package/dist/src/compiled/_chunks/workflow/sleep-Cup6vPoA.js +1 -0
  134. package/dist/src/compiled/_chunks/workflow/{symbols-BWCAoPHE.js → symbols-BUTtwS7j.js} +1 -1
  135. package/dist/src/compiled/just-bash/index.d.ts +27 -4
  136. package/dist/src/compiler/artifacts.js +1 -1
  137. package/dist/src/compiler/manifest.d.ts +8 -8
  138. package/dist/src/compiler/normalize-agent-config.d.ts +0 -10
  139. package/dist/src/compiler/normalize-agent-config.js +1 -1
  140. package/dist/src/compiler/normalize-channel.d.ts +2 -1
  141. package/dist/src/compiler/normalize-channel.js +1 -1
  142. package/dist/src/compiler/normalize-connection.d.ts +2 -1
  143. package/dist/src/compiler/normalize-connection.js +1 -1
  144. package/dist/src/compiler/normalize-helpers.d.ts +5 -0
  145. package/dist/src/compiler/normalize-helpers.js +1 -1
  146. package/dist/src/compiler/normalize-instructions.d.ts +3 -2
  147. package/dist/src/compiler/normalize-instructions.js +1 -1
  148. package/dist/src/compiler/normalize-manifest.js +2 -2
  149. package/dist/src/compiler/normalize-sandbox.d.ts +2 -1
  150. package/dist/src/compiler/normalize-sandbox.js +1 -1
  151. package/dist/src/compiler/normalize-schedule.d.ts +2 -1
  152. package/dist/src/compiler/normalize-schedule.js +1 -1
  153. package/dist/src/compiler/normalize-skill.d.ts +2 -1
  154. package/dist/src/compiler/normalize-skill.js +1 -1
  155. package/dist/src/compiler/normalize-subagent.d.ts +4 -1
  156. package/dist/src/compiler/normalize-subagent.js +1 -1
  157. package/dist/src/compiler/normalize-tool.d.ts +2 -1
  158. package/dist/src/compiler/normalize-tool.js +1 -1
  159. package/dist/src/compiler/workspace-resources.js +1 -1
  160. package/dist/src/context/node.d.ts +1 -1
  161. package/dist/src/evals/assertions/collector.d.ts +43 -0
  162. package/dist/src/evals/assertions/collector.js +1 -0
  163. package/dist/src/evals/assertions/run.d.ts +72 -0
  164. package/dist/src/evals/assertions/run.js +2 -0
  165. package/dist/src/evals/autoevals-client.js +2 -0
  166. package/dist/src/evals/cli/eval-client.d.ts +22 -0
  167. package/dist/src/evals/cli/eval-client.js +1 -0
  168. package/dist/src/evals/cli/eval.d.ts +12 -3
  169. package/dist/src/evals/cli/eval.js +1 -1
  170. package/dist/src/evals/context.d.ts +19 -0
  171. package/dist/src/evals/context.js +1 -0
  172. package/dist/src/evals/define-eval-config.d.ts +16 -0
  173. package/dist/src/evals/define-eval-config.js +1 -0
  174. package/dist/src/evals/define-eval.d.ts +20 -0
  175. package/dist/src/evals/define-eval.js +1 -0
  176. package/dist/src/evals/expect/index.d.ts +25 -0
  177. package/dist/src/evals/expect/index.js +1 -0
  178. package/dist/src/evals/index.d.ts +7 -2
  179. package/dist/src/evals/index.js +1 -1
  180. package/dist/src/evals/judge.d.ts +20 -0
  181. package/dist/src/evals/judge.js +1 -0
  182. package/dist/src/evals/match.d.ts +67 -0
  183. package/dist/src/evals/match.js +1 -0
  184. package/dist/src/evals/reporters/index.d.ts +1 -0
  185. package/dist/src/evals/reporters/index.js +1 -1
  186. package/dist/src/evals/requirements.d.ts +3 -0
  187. package/dist/src/evals/requirements.js +1 -0
  188. package/dist/src/evals/runner/artifacts.d.ts +7 -6
  189. package/dist/src/evals/runner/artifacts.js +3 -3
  190. package/dist/src/evals/runner/derive-run-facts.d.ts +17 -3
  191. package/dist/src/evals/runner/derive-run-facts.js +1 -1
  192. package/dist/src/evals/runner/discover.d.ts +31 -10
  193. package/dist/src/evals/runner/discover.js +1 -1
  194. package/dist/src/evals/runner/execute-eval.d.ts +25 -0
  195. package/dist/src/evals/runner/execute-eval.js +1 -0
  196. package/dist/src/evals/runner/execute-task.d.ts +31 -0
  197. package/dist/src/evals/runner/execute-task.js +1 -0
  198. package/dist/src/evals/runner/reporters/braintrust.d.ts +7 -5
  199. package/dist/src/evals/runner/reporters/braintrust.js +2 -2
  200. package/dist/src/evals/runner/reporters/console.d.ts +4 -4
  201. package/dist/src/evals/runner/reporters/console.js +1 -1
  202. package/dist/src/evals/runner/reporters/junit.d.ts +10 -0
  203. package/dist/src/evals/runner/reporters/junit.js +4 -0
  204. package/dist/src/evals/runner/reporters/types.d.ts +14 -8
  205. package/dist/src/evals/runner/run-evals.d.ts +38 -0
  206. package/dist/src/evals/runner/run-evals.js +1 -0
  207. package/dist/src/evals/runner/verdict.d.ts +13 -0
  208. package/dist/src/evals/runner/verdict.js +1 -0
  209. package/dist/src/evals/session.d.ts +52 -0
  210. package/dist/src/evals/session.js +1 -0
  211. package/dist/src/evals/target.d.ts +23 -0
  212. package/dist/src/evals/target.js +1 -0
  213. package/dist/src/evals/types.d.ts +353 -165
  214. package/dist/src/execution/compaction.d.ts +14 -0
  215. package/dist/src/execution/compaction.js +1 -0
  216. package/dist/src/execution/delegated-parent-notification.js +1 -1
  217. package/dist/src/execution/dispatch-runtime-actions-step.js +1 -1
  218. package/dist/src/execution/node-step.js +1 -1
  219. package/dist/src/execution/sandbox/bash-tool.d.ts +6 -6
  220. package/dist/src/execution/sandbox/bash-tool.js +1 -1
  221. package/dist/src/execution/sandbox/bindings/local.d.ts +11 -0
  222. package/dist/src/execution/sandbox/bindings/local.js +1 -1
  223. package/dist/src/execution/sandbox/glob-tool.js +3 -3
  224. package/dist/src/execution/sandbox/grep-tool.js +3 -3
  225. package/dist/src/execution/sandbox/read-file-tool.js +1 -1
  226. package/dist/src/execution/subagent-adapter.js +1 -1
  227. package/dist/src/execution/tool-auth.js +1 -1
  228. package/dist/src/execution/turn-workflow.js +1 -1
  229. package/dist/src/execution/workflow-runtime.d.ts +2 -2
  230. package/dist/src/execution/workflow-runtime.js +1 -1
  231. package/dist/src/execution/workflow-steps.js +1 -1
  232. package/dist/src/harness/action-result-helpers.js +1 -1
  233. package/dist/src/harness/authorization.d.ts +26 -0
  234. package/dist/src/harness/authorization.js +1 -1
  235. package/dist/src/harness/code-mode-lifecycle.js +1 -1
  236. package/dist/src/harness/emission.d.ts +12 -5
  237. package/dist/src/harness/emission.js +1 -1
  238. package/dist/src/harness/model-call-error.d.ts +35 -6
  239. package/dist/src/harness/model-call-error.js +1 -1
  240. package/dist/src/harness/step-hooks.d.ts +10 -4
  241. package/dist/src/harness/step-hooks.js +1 -1
  242. package/dist/src/harness/tool-loop.js +1 -1
  243. package/dist/src/harness/tools.d.ts +4 -6
  244. package/dist/src/harness/tools.js +1 -1
  245. package/dist/src/harness/turn-tag-state.d.ts +4 -0
  246. package/dist/src/harness/turn-tag-state.js +1 -1
  247. package/dist/src/harness/types.d.ts +4 -15
  248. package/dist/src/internal/application/cache-metadata.js +1 -1
  249. package/dist/src/internal/application/compiled-artifacts.js +1 -1
  250. package/dist/src/internal/application/package.js +1 -1
  251. package/dist/src/internal/application/paths.js +1 -1
  252. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  253. package/dist/src/internal/authored-module-loader.d.ts +4 -1
  254. package/dist/src/internal/authored-module-loader.js +2 -2
  255. package/dist/src/internal/authored-module-map-loader.js +1 -1
  256. package/dist/src/internal/nitro/dev-runtime-artifacts.d.ts +11 -0
  257. package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
  258. package/dist/src/internal/nitro/host/build-application.js +1 -1
  259. package/dist/src/internal/nitro/host/build-vercel-agent-summary.js +1 -1
  260. package/dist/src/internal/nitro/host/configure-nitro-routes.js +3 -3
  261. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  262. package/dist/src/internal/nitro/host/dev-authored-source-watcher.js +1 -1
  263. package/dist/src/internal/nitro/host/dev-watcher-log.d.ts +37 -0
  264. package/dist/src/internal/nitro/host/dev-watcher-log.js +1 -0
  265. package/dist/src/internal/nitro/host/ports.d.ts +8 -0
  266. package/dist/src/internal/nitro/host/ports.js +1 -0
  267. package/dist/src/internal/nitro/host/prepare-application-host.js +1 -1
  268. package/dist/src/internal/nitro/host/server-external-packages.d.ts +1 -1
  269. package/dist/src/internal/nitro/host/server-external-packages.js +1 -1
  270. package/dist/src/internal/nitro/host/start-development-server.js +1 -1
  271. package/dist/src/internal/nitro/host/start-production-server.js +1 -1
  272. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response-from-manifest.d.ts +5 -0
  273. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response-from-manifest.js +1 -0
  274. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.d.ts +31 -2
  275. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
  276. package/dist/src/internal/nitro/routes/agent-info/load-agent-info-data.d.ts +13 -0
  277. package/dist/src/internal/nitro/routes/agent-info/load-agent-info-data.js +1 -1
  278. package/dist/src/internal/nitro/routes/info.d.ts +2 -2
  279. package/dist/src/internal/nitro/routes/info.js +1 -1
  280. package/dist/src/internal/workflow/queue-namespace.d.ts +5 -0
  281. package/dist/src/internal/workflow/queue-namespace.js +1 -0
  282. package/dist/src/internal/workflow-bundle/builder-support.js +2 -2
  283. package/dist/src/internal/workflow-bundle/builder.js +3 -5
  284. package/dist/src/internal/workflow-bundle/vercel-workflow-output.js +1 -1
  285. package/dist/src/internal/workflow-bundle/workflow-builders.d.ts +1 -1
  286. package/dist/src/internal/workflow-bundle/workflow-builders.js +1 -1
  287. package/dist/src/node_modules/.pnpm/@clack_core@1.3.1/node_modules/@clack/core/dist/index.js +4 -4
  288. package/dist/src/protocol/message.d.ts +15 -0
  289. package/dist/src/protocol/message.js +2 -2
  290. package/dist/src/public/channels/slack/api.d.ts +8 -0
  291. package/dist/src/public/channels/slack/api.js +1 -1
  292. package/dist/src/public/channels/slack/connections.d.ts +26 -18
  293. package/dist/src/public/channels/slack/connections.js +1 -1
  294. package/dist/src/public/channels/slack/defaults.d.ts +5 -2
  295. package/dist/src/public/channels/slack/defaults.js +1 -1
  296. package/dist/src/public/channels/slack/index.d.ts +1 -1
  297. package/dist/src/public/channels/slack/slackChannel.d.ts +65 -5
  298. package/dist/src/public/channels/slack/slackChannel.js +1 -1
  299. package/dist/src/public/channels/teams/defaults.js +1 -1
  300. package/dist/src/public/connections/errors.d.ts +8 -0
  301. package/dist/src/public/definitions/tool.d.ts +0 -33
  302. package/dist/src/public/next/index.d.ts +7 -1
  303. package/dist/src/public/next/index.js +1 -1
  304. package/dist/src/public/next/server.d.ts +1 -0
  305. package/dist/src/public/next/server.js +1 -1
  306. package/dist/src/public/nuxt/dev-server.js +1 -1
  307. package/dist/src/public/sandbox/backends/local.d.ts +2 -3
  308. package/dist/src/public/sveltekit/dev-server.js +1 -1
  309. package/dist/src/public/sveltekit/index.d.ts +1 -1
  310. package/dist/src/public/tools/defaults.d.ts +2 -4
  311. package/dist/src/public/tools/defaults.js +1 -1
  312. package/dist/src/public/tools/define-bash-tool.d.ts +3 -3
  313. package/dist/src/public/tools/define-bash-tool.js +1 -1
  314. package/dist/src/public/tools/define-read-file-tool.d.ts +0 -6
  315. package/dist/src/public/tools/define-read-file-tool.js +1 -1
  316. package/dist/src/public/tools/index.d.ts +2 -2
  317. package/dist/src/public/tools/index.js +1 -1
  318. package/dist/src/public/tools/internal.js +1 -1
  319. package/dist/src/runtime/actions/types.d.ts +11 -11
  320. package/dist/src/runtime/agent/mock-model-adapter.js +1 -1
  321. package/dist/src/runtime/agent/mock-model-fixtures.js +3 -2
  322. package/dist/src/runtime/agent/mock-model-skill-selection.js +3 -4
  323. package/dist/src/runtime/connections/callback-route.js +1 -1
  324. package/dist/src/runtime/connections/mcp-client.js +1 -1
  325. package/dist/src/runtime/connections/scoped-authorization.d.ts +21 -5
  326. package/dist/src/runtime/connections/scoped-authorization.js +1 -1
  327. package/dist/src/runtime/connections/types.d.ts +33 -0
  328. package/dist/src/runtime/connections/validate-authorization.js +1 -1
  329. package/dist/src/runtime/framework-tools/bash.d.ts +3 -3
  330. package/dist/src/runtime/framework-tools/bash.js +1 -1
  331. package/dist/src/runtime/framework-tools/connection-search-dynamic.d.ts +1 -1
  332. package/dist/src/runtime/framework-tools/connection-search-dynamic.js +1 -1
  333. package/dist/src/runtime/framework-tools/file-state.d.ts +3 -3
  334. package/dist/src/runtime/framework-tools/index.js +1 -1
  335. package/dist/src/runtime/framework-tools/read-file.js +2 -2
  336. package/dist/src/runtime/framework-tools/todo.d.ts +7 -0
  337. package/dist/src/runtime/framework-tools/todo.js +2 -2
  338. package/dist/src/runtime/governance/auth/http-basic.js +1 -1
  339. package/dist/src/runtime/input/types.d.ts +1 -1
  340. package/dist/src/runtime/resolve-tool.d.ts +2 -2
  341. package/dist/src/runtime/resolve-tool.js +1 -1
  342. package/dist/src/runtime/sandbox/keys.js +1 -1
  343. package/dist/src/runtime/session-callback-route.js +1 -1
  344. package/dist/src/runtime/types.d.ts +1 -7
  345. package/dist/src/services/dev-client/client-options.d.ts +8 -0
  346. package/dist/src/services/dev-client/client-options.js +1 -0
  347. package/dist/src/services/dev-client/runtime-artifacts.d.ts +13 -0
  348. package/dist/src/services/dev-client/runtime-artifacts.js +1 -0
  349. package/dist/src/services/dev-client.d.ts +13 -46
  350. package/dist/src/services/dev-client.js +1 -1
  351. package/dist/src/services/inspect-application.js +1 -1
  352. package/dist/src/setup/ask.d.ts +205 -0
  353. package/dist/src/setup/ask.js +1 -0
  354. package/dist/src/setup/boxes/add-channels.d.ts +100 -16
  355. package/dist/src/setup/boxes/add-channels.js +2 -1
  356. package/dist/src/setup/boxes/add-connections.d.ts +13 -23
  357. package/dist/src/setup/boxes/add-connections.js +1 -1
  358. package/dist/src/setup/boxes/apply-ai-gateway-credential.d.ts +2 -2
  359. package/dist/src/setup/boxes/apply-ai-gateway-credential.js +1 -1
  360. package/dist/src/setup/boxes/deploy-project.d.ts +46 -14
  361. package/dist/src/setup/boxes/deploy-project.js +1 -1
  362. package/dist/src/setup/boxes/detect-ai-gateway.d.ts +10 -3
  363. package/dist/src/setup/boxes/detect-ai-gateway.js +1 -1
  364. package/dist/src/setup/boxes/link-project.d.ts +3 -3
  365. package/dist/src/setup/boxes/link-project.js +1 -1
  366. package/dist/src/setup/boxes/one-shot-next-steps.d.ts +18 -0
  367. package/dist/src/setup/boxes/one-shot-next-steps.js +2 -0
  368. package/dist/src/setup/boxes/preflight.d.ts +14 -6
  369. package/dist/src/setup/boxes/preflight.js +1 -1
  370. package/dist/src/setup/boxes/resolve-provisioning.d.ts +36 -8
  371. package/dist/src/setup/boxes/resolve-provisioning.js +1 -1
  372. package/dist/src/setup/boxes/resolve-target.d.ts +25 -8
  373. package/dist/src/setup/boxes/resolve-target.js +1 -1
  374. package/dist/src/setup/boxes/scaffold.d.ts +12 -6
  375. package/dist/src/setup/boxes/scaffold.js +1 -1
  376. package/dist/src/setup/boxes/select-channels.d.ts +38 -9
  377. package/dist/src/setup/boxes/select-channels.js +1 -1
  378. package/dist/src/setup/boxes/select-chat.d.ts +15 -11
  379. package/dist/src/setup/boxes/select-chat.js +1 -1
  380. package/dist/src/setup/boxes/select-connections.d.ts +30 -0
  381. package/dist/src/setup/boxes/select-connections.js +1 -0
  382. package/dist/src/setup/boxes/select-model.d.ts +18 -14
  383. package/dist/src/setup/boxes/select-model.js +1 -1
  384. package/dist/src/setup/boxes/select-setup-mode.d.ts +32 -0
  385. package/dist/src/setup/boxes/select-setup-mode.js +1 -0
  386. package/dist/src/setup/channel-add-conflicts.d.ts +28 -0
  387. package/dist/src/setup/channel-add-conflicts.js +1 -0
  388. package/dist/src/setup/cli/channel-setup-prompter.d.ts +23 -0
  389. package/dist/src/setup/cli/channel-setup-prompter.js +1 -0
  390. package/dist/src/setup/cli/connection-add-prompter.d.ts +8 -0
  391. package/dist/src/setup/cli/connection-add-prompter.js +1 -0
  392. package/dist/src/setup/{scaffold/cli → cli}/index.d.ts +4 -3
  393. package/dist/src/setup/cli/index.js +1 -0
  394. package/dist/src/setup/{scaffold/cli → cli}/prompt-ui.d.ts +39 -15
  395. package/dist/src/setup/cli/prompt-ui.js +5 -0
  396. package/dist/src/setup/{scaffold/cli → cli}/rail-log.d.ts +2 -0
  397. package/dist/src/setup/{scaffold/cli → cli}/rail-log.js +2 -2
  398. package/dist/src/setup/{scaffold/cli → cli}/select-component.d.ts +18 -3
  399. package/dist/src/setup/cli/select-component.js +1 -0
  400. package/dist/src/setup/cli/select-option-codec.d.ts +12 -0
  401. package/dist/src/setup/cli/select-option-codec.js +1 -0
  402. package/dist/src/setup/{scaffold/cli → cli}/select-state.d.ts +13 -1
  403. package/dist/src/setup/cli/select-state.js +1 -0
  404. package/dist/src/setup/cli/whimsy.d.ts +16 -0
  405. package/dist/src/setup/cli/whimsy.js +1 -0
  406. package/dist/src/setup/{scaffold/steps/setup-connection.d.ts → connection-connector.d.ts} +3 -2
  407. package/dist/src/setup/connection-connector.js +1 -0
  408. package/dist/src/setup/flows/channels.d.ts +43 -0
  409. package/dist/src/setup/flows/channels.js +1 -0
  410. package/dist/src/setup/flows/deploy.d.ts +40 -0
  411. package/dist/src/setup/flows/deploy.js +1 -0
  412. package/dist/src/setup/flows/in-project.d.ts +16 -0
  413. package/dist/src/setup/flows/in-project.js +1 -0
  414. package/dist/src/setup/flows/link.d.ts +43 -0
  415. package/dist/src/setup/flows/link.js +1 -0
  416. package/dist/src/setup/flows/model.d.ts +112 -0
  417. package/dist/src/setup/flows/model.js +1 -0
  418. package/dist/src/setup/flows/vercel.d.ts +31 -0
  419. package/dist/src/setup/flows/vercel.js +2 -0
  420. package/dist/src/setup/gateway-models.js +1 -1
  421. package/dist/src/setup/headless.d.ts +1 -1
  422. package/dist/src/setup/index.d.ts +10 -4
  423. package/dist/src/setup/index.js +1 -1
  424. package/dist/src/setup/onboarding.d.ts +7 -4
  425. package/dist/src/setup/onboarding.js +1 -1
  426. package/dist/src/setup/package-manager.d.ts +27 -0
  427. package/dist/src/setup/package-manager.js +1 -0
  428. package/dist/src/setup/primitives/index.d.ts +3 -0
  429. package/dist/src/setup/primitives/index.js +1 -0
  430. package/dist/src/setup/primitives/pm/bun.d.ts +10 -0
  431. package/dist/src/setup/primitives/pm/bun.js +1 -0
  432. package/dist/src/setup/primitives/pm/index.d.ts +11 -0
  433. package/dist/src/setup/primitives/pm/index.js +1 -0
  434. package/dist/src/setup/primitives/pm/npm.d.ts +10 -0
  435. package/dist/src/setup/primitives/pm/npm.js +1 -0
  436. package/dist/src/setup/primitives/pm/pnpm.d.ts +27 -0
  437. package/dist/src/setup/primitives/pm/pnpm.js +8 -0
  438. package/dist/src/setup/primitives/pm/run.d.ts +23 -0
  439. package/dist/src/setup/primitives/pm/run.js +1 -0
  440. package/dist/src/setup/primitives/pm/shared.d.ts +8 -0
  441. package/dist/src/setup/primitives/pm/shared.js +1 -0
  442. package/dist/src/setup/primitives/pm/types.d.ts +37 -0
  443. package/dist/src/setup/primitives/pm/types.js +1 -0
  444. package/dist/src/setup/primitives/pm/yarn.d.ts +10 -0
  445. package/dist/src/setup/primitives/pm/yarn.js +1 -0
  446. package/dist/src/setup/primitives/run-pnpm.d.ts +1 -0
  447. package/dist/src/setup/primitives/run-pnpm.js +1 -0
  448. package/dist/src/setup/{scaffold/primitives → primitives}/run-vercel.d.ts +7 -0
  449. package/dist/src/setup/primitives/run-vercel.js +1 -0
  450. package/dist/src/setup/project-name.d.ts +4 -0
  451. package/dist/src/setup/project-name.js +1 -0
  452. package/dist/src/setup/project-resolution.d.ts +54 -0
  453. package/dist/src/setup/project-resolution.js +1 -0
  454. package/dist/src/setup/prompter.d.ts +52 -4
  455. package/dist/src/setup/prompter.js +1 -1
  456. package/dist/src/setup/quit-guard.d.ts +1 -1
  457. package/dist/src/setup/run-vercel-link.d.ts +1 -1
  458. package/dist/src/setup/run-vercel-link.js +1 -1
  459. package/dist/src/setup/runner.d.ts +5 -4
  460. package/dist/src/setup/runner.js +1 -1
  461. package/dist/src/setup/scaffold/channels-catalog.d.ts +3 -3
  462. package/dist/src/setup/scaffold/channels-catalog.js +1 -1
  463. package/dist/src/setup/scaffold/create/add-to-project.d.ts +26 -0
  464. package/dist/src/setup/scaffold/create/add-to-project.js +1 -0
  465. package/dist/src/setup/scaffold/create/project.d.ts +54 -0
  466. package/dist/src/setup/scaffold/create/project.js +80 -0
  467. package/dist/src/setup/scaffold/index.d.ts +4 -4
  468. package/dist/src/setup/scaffold/index.js +1 -1
  469. package/dist/src/setup/scaffold/{channels.d.ts → update/channels.d.ts} +11 -0
  470. package/dist/src/setup/scaffold/update/channels.js +7 -0
  471. package/dist/src/setup/scaffold/{connections.d.ts → update/connections.d.ts} +1 -1
  472. package/dist/src/setup/scaffold/update/connections.js +21 -0
  473. package/dist/src/setup/scaffold/version-tokens.d.ts +11 -0
  474. package/dist/src/setup/scaffold/version-tokens.js +1 -0
  475. package/dist/src/setup/{scaffold/steps/setup-slackbot.d.ts → slackbot.d.ts} +24 -20
  476. package/dist/src/setup/slackbot.js +1 -0
  477. package/dist/src/setup/state.d.ts +62 -15
  478. package/dist/src/setup/state.js +1 -1
  479. package/dist/src/setup/step.d.ts +9 -18
  480. package/dist/src/setup/vercel-project.d.ts +15 -8
  481. package/dist/src/setup/vercel-project.js +1 -1
  482. package/dist/src/shared/agent-definition.d.ts +9 -3
  483. package/dist/src/shared/default-agent-model.d.ts +5 -0
  484. package/dist/src/shared/default-agent-model.js +1 -0
  485. package/dist/src/shared/sandbox-backend.d.ts +11 -11
  486. package/dist/src/source-change/apply-model-name.d.ts +25 -0
  487. package/dist/src/source-change/apply-model-name.js +2 -0
  488. package/dist/src/source-change/static-source-change.d.ts +36 -0
  489. package/dist/src/source-change/static-source-change.js +1 -0
  490. package/dist/src/svelte/index.js +1 -1
  491. package/dist/src/svelte/use-eve-agent.js +1 -1
  492. package/dist/src/vue/index.js +1 -1
  493. package/dist/src/vue/use-eve-agent.js +1 -1
  494. package/package.json +23 -38
  495. package/dist/docs/public/advanced/evals.md +0 -121
  496. package/dist/src/cli/commands/setup.d.ts +0 -55
  497. package/dist/src/cli/commands/setup.js +0 -1
  498. package/dist/src/cli/dev/repl/input-requests.d.ts +0 -38
  499. package/dist/src/cli/dev/repl/input-requests.js +0 -1
  500. package/dist/src/cli/dev/repl/input.d.ts +0 -19
  501. package/dist/src/cli/dev/repl/input.js +0 -1
  502. package/dist/src/cli/dev/repl/repl.d.ts +0 -62
  503. package/dist/src/cli/dev/repl/repl.js +0 -2
  504. package/dist/src/cli/dev/repl/terminal.d.ts +0 -21
  505. package/dist/src/cli/dev/repl/terminal.js +0 -5
  506. package/dist/src/compiled/_chunks/workflow/resume-hook-0Zk0zSvq.js +0 -12
  507. package/dist/src/compiled/_chunks/workflow/sleep-DXZr2BgM.js +0 -1
  508. package/dist/src/evals/define-eval-suite.d.ts +0 -16
  509. package/dist/src/evals/define-eval-suite.js +0 -1
  510. package/dist/src/evals/runner/execute-case.d.ts +0 -23
  511. package/dist/src/evals/runner/execute-case.js +0 -1
  512. package/dist/src/evals/runner/execute-suite.d.ts +0 -24
  513. package/dist/src/evals/runner/execute-suite.js +0 -1
  514. package/dist/src/evals/scorers/autoevals-client.js +0 -2
  515. package/dist/src/evals/scorers/autoevals.d.ts +0 -58
  516. package/dist/src/evals/scorers/autoevals.js +0 -1
  517. package/dist/src/evals/scorers/json.d.ts +0 -10
  518. package/dist/src/evals/scorers/json.js +0 -1
  519. package/dist/src/evals/scorers/run.d.ts +0 -18
  520. package/dist/src/evals/scorers/run.js +0 -1
  521. package/dist/src/evals/scorers/sql.d.ts +0 -9
  522. package/dist/src/evals/scorers/sql.js +0 -1
  523. package/dist/src/evals/scorers/text.d.ts +0 -18
  524. package/dist/src/evals/scorers/text.js +0 -1
  525. package/dist/src/evals/scores/index.d.ts +0 -72
  526. package/dist/src/evals/scores/index.js +0 -1
  527. package/dist/src/execution/tool-compaction.d.ts +0 -9
  528. package/dist/src/execution/tool-compaction.js +0 -1
  529. package/dist/src/services/dev-client/stream.d.ts +0 -5
  530. package/dist/src/services/dev-client/stream.js +0 -1
  531. package/dist/src/services/dev-client/url.d.ts +0 -11
  532. package/dist/src/services/dev-client/url.js +0 -1
  533. package/dist/src/setup/channel-setup-prompter.d.ts +0 -8
  534. package/dist/src/setup/channel-setup-prompter.js +0 -1
  535. package/dist/src/setup/scaffold/channels.js +0 -7
  536. package/dist/src/setup/scaffold/cli/channel-add-prompter.d.ts +0 -12
  537. package/dist/src/setup/scaffold/cli/channel-add-prompter.js +0 -1
  538. package/dist/src/setup/scaffold/cli/channel-setup-prompter.d.ts +0 -56
  539. package/dist/src/setup/scaffold/cli/connection-add-prompter.d.ts +0 -44
  540. package/dist/src/setup/scaffold/cli/connection-add-prompter.js +0 -1
  541. package/dist/src/setup/scaffold/cli/index.js +0 -1
  542. package/dist/src/setup/scaffold/cli/prompt-ui.js +0 -5
  543. package/dist/src/setup/scaffold/cli/select-component.js +0 -1
  544. package/dist/src/setup/scaffold/cli/select-state.js +0 -1
  545. package/dist/src/setup/scaffold/connections.js +0 -21
  546. package/dist/src/setup/scaffold/pnpm-workspace.d.ts +0 -3
  547. package/dist/src/setup/scaffold/pnpm-workspace.js +0 -11
  548. package/dist/src/setup/scaffold/primitives/detect-deployment.d.ts +0 -13
  549. package/dist/src/setup/scaffold/primitives/detect-deployment.js +0 -1
  550. package/dist/src/setup/scaffold/primitives/index.d.ts +0 -3
  551. package/dist/src/setup/scaffold/primitives/index.js +0 -1
  552. package/dist/src/setup/scaffold/primitives/pnpm-invocation.d.ts +0 -12
  553. package/dist/src/setup/scaffold/primitives/pnpm-invocation.js +0 -1
  554. package/dist/src/setup/scaffold/primitives/run-pnpm.d.ts +0 -17
  555. package/dist/src/setup/scaffold/primitives/run-pnpm.js +0 -1
  556. package/dist/src/setup/scaffold/primitives/run-vercel.js +0 -1
  557. package/dist/src/setup/scaffold/project.d.ts +0 -21
  558. package/dist/src/setup/scaffold/project.js +0 -80
  559. package/dist/src/setup/scaffold/steps/deploy-to-vercel.d.ts +0 -17
  560. package/dist/src/setup/scaffold/steps/deploy-to-vercel.js +0 -1
  561. package/dist/src/setup/scaffold/steps/index.d.ts +0 -4
  562. package/dist/src/setup/scaffold/steps/index.js +0 -1
  563. package/dist/src/setup/scaffold/steps/project-resolution.d.ts +0 -19
  564. package/dist/src/setup/scaffold/steps/project-resolution.js +0 -1
  565. package/dist/src/setup/scaffold/steps/run-add-connection.d.ts +0 -40
  566. package/dist/src/setup/scaffold/steps/run-add-connection.js +0 -1
  567. package/dist/src/setup/scaffold/steps/run-add-to-agent.d.ts +0 -81
  568. package/dist/src/setup/scaffold/steps/run-add-to-agent.js +0 -2
  569. package/dist/src/setup/scaffold/steps/setup-connection.js +0 -1
  570. package/dist/src/setup/scaffold/steps/setup-slackbot.js +0 -1
  571. /package/dist/src/{setup/scaffold/cli/channel-setup-prompter.js → cli/dev/tui/setup-flow.js} +0 -0
  572. /package/dist/src/evals/{scorers/autoevals-client.d.ts → autoevals-client.d.ts} +0 -0
  573. /package/dist/src/setup/{scaffold/cli → cli}/command-output.d.ts +0 -0
  574. /package/dist/src/setup/{scaffold/cli → cli}/command-output.js +0 -0
  575. /package/dist/src/setup/{scaffold/human-action.d.ts → human-action.d.ts} +0 -0
  576. /package/dist/src/setup/{scaffold/human-action.js → human-action.js} +0 -0
  577. /package/dist/src/setup/{scaffold/primitives → primitives}/process-output.d.ts +0 -0
  578. /package/dist/src/setup/{scaffold/primitives → primitives}/process-output.js +0 -0
  579. /package/dist/src/setup/scaffold/{web-template.d.ts → create/web-template.d.ts} +0 -0
  580. /package/dist/src/setup/scaffold/{web-template.js → create/web-template.js} +0 -0
  581. /package/dist/src/setup/scaffold/{module-files.d.ts → update/module-files.d.ts} +0 -0
  582. /package/dist/src/setup/scaffold/{module-files.js → update/module-files.js} +0 -0
  583. /package/dist/src/setup/scaffold/{package-json.d.ts → update/package-json.d.ts} +0 -0
  584. /package/dist/src/setup/scaffold/{package-json.js → update/package-json.js} +0 -0
  585. /package/dist/src/setup/scaffold/{primitives → update}/update-connection-connector.d.ts +0 -0
  586. /package/dist/src/setup/scaffold/{primitives → update}/update-connection-connector.js +0 -0
  587. /package/dist/src/setup/scaffold/{primitives → update}/update-slack-channel.d.ts +0 -0
  588. /package/dist/src/setup/scaffold/{primitives → update}/update-slack-channel.js +0 -0
@@ -1,17 +0,0 @@
1
- import type { ChannelSetupPrompter } from "../cli/channel-setup-prompter.js";
2
- /** Controls whether the shared deployment step should ask for confirmation. */
3
- export interface DeployToVercelOptions {
4
- /** Skip the deploy prompt and deploy immediately when true. */
5
- presetDeploy?: boolean;
6
- /** Avoid every Vercel CLI prompt and close stdin for automation. */
7
- headless?: boolean;
8
- }
9
- /** Result of deploying an agent project to Vercel production. */
10
- export interface DeployToVercelResult {
11
- deployed: boolean;
12
- productionUrl?: string;
13
- }
14
- /**
15
- * Deploys the agent to production and refreshes local Vercel environment values.
16
- */
17
- export declare function deployToVercel(prompter: ChannelSetupPrompter, projectRoot: string, options?: DeployToVercelOptions): Promise<DeployToVercelResult>;
@@ -1 +0,0 @@
1
- import{createPromptCommandOutput}from"../cli/command-output.js";import{runVercel}from"../primitives/run-vercel.js";import{detectDeployment}from"../primitives/detect-deployment.js";const VERCEL_DEPLOY_ENV={VERCEL_USE_EXPERIMENTAL_FRAMEWORKS:`1`};async function deployToVercel(e,t,n={}){let r=n.presetDeploy;if(r===void 0&&(r=await e.select({message:`Deploy to Vercel to set up remote agent`,options:[{value:`deploy`,label:`Deploy to Vercel`},{value:`skip`,label:`Skip and deploy later`}]})===`deploy`),!r)return e.log.info("Skipping deployment. Run `vercel deploy --prod` later when ready."),{deployed:!1};let i=createPromptCommandOutput(e.log);if(e.log.message(`Deploying the agent to Vercel production...`),!await runVercel(n.headless?[`deploy`,`--prod`,`--yes`,`--non-interactive`]:[`deploy`,`--prod`],{cwd:t,extraEnv:VERCEL_DEPLOY_ENV,nonInteractive:n.headless,onOutput:i}))return e.log.error("`vercel deploy --prod` failed. The deploy output above shows the cause; fix it, then run `vercel deploy --prod` to retry."),{deployed:!1};e.log.message(`Pulling Vercel environment variables into .env.local...`),await runVercel([`env`,`pull`,`--yes`],{cwd:t,nonInteractive:n.headless,onOutput:i})||e.log.warning(`Deployment succeeded, but pulling Vercel environment variables did not complete.`);let a=await detectDeployment(t);return a.state===`deployed`&&a.productionUrl!==void 0&&e.log.info(`Production URL: ${a.productionUrl}`),{deployed:a.state===`deployed`,productionUrl:a.productionUrl}}export{deployToVercel};
@@ -1,4 +0,0 @@
1
- export { deployToVercel, type DeployToVercelOptions, type DeployToVercelResult, } from "./deploy-to-vercel.js";
2
- export { assignAddToAgentState, cloneAddToAgentState, createAddToAgentState, deployProject, runAddToAgent, type AddToAgentState, type AddToAgentStateSnapshot, type DeployProjectOptions, type RunAddToAgentOptions, } from "./run-add-to-agent.js";
3
- export { runAddConnection, type RunAddConnectionOptions, type RunAddConnectionResult, } from "./run-add-connection.js";
4
- export { isProjectResolved, mergeProjectResolution, projectProductionUrlFromResolution, projectResolutionFromDeployment, projectResolutionFromDeployResult, type ProjectResolution, } from "./project-resolution.js";
@@ -1 +0,0 @@
1
- import{deployToVercel}from"./deploy-to-vercel.js";import{isProjectResolved,mergeProjectResolution,projectProductionUrlFromResolution,projectResolutionFromDeployResult,projectResolutionFromDeployment}from"./project-resolution.js";import{assignAddToAgentState,cloneAddToAgentState,createAddToAgentState,deployProject,runAddToAgent}from"./run-add-to-agent.js";import{runAddConnection}from"./run-add-connection.js";export{assignAddToAgentState,cloneAddToAgentState,createAddToAgentState,deployProject,deployToVercel,isProjectResolved,mergeProjectResolution,projectProductionUrlFromResolution,projectResolutionFromDeployResult,projectResolutionFromDeployment,runAddConnection,runAddToAgent};
@@ -1,19 +0,0 @@
1
- import type { DeploymentInfo } from "../primitives/detect-deployment.js";
2
- export type ProjectResolution = {
3
- kind: "unresolved";
4
- } | {
5
- kind: "linked";
6
- projectId: string;
7
- } | {
8
- kind: "deployed";
9
- projectId: string;
10
- productionUrl: string;
11
- };
12
- export declare function projectResolutionFromDeployment(deployment: DeploymentInfo): ProjectResolution;
13
- export declare function mergeProjectResolution(current: ProjectResolution, next: ProjectResolution): ProjectResolution;
14
- export declare function projectResolutionFromDeployResult(project: ProjectResolution, deploy: {
15
- deployed: boolean;
16
- productionUrl?: string;
17
- }): ProjectResolution;
18
- export declare function isProjectResolved(project: ProjectResolution): boolean;
19
- export declare function projectProductionUrlFromResolution(project: ProjectResolution): string | undefined;
@@ -1 +0,0 @@
1
- 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}}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{isProjectResolved,mergeProjectResolution,projectProductionUrlFromResolution,projectResolutionFromDeployResult,projectResolutionFromDeployment};
@@ -1,40 +0,0 @@
1
- import { type ConnectionProtocol, type CustomConnectionInput } from "../connections/catalog.js";
2
- import { type ConnectionMutationResult, type EnsureConnectionOptions } from "../connections.js";
3
- import type { ConnectionAddPrompter } from "../cli/connection-add-prompter.js";
4
- import { type SetupConnectionConnectorOptions, type SetupConnectionConnectorResult } from "./setup-connection.js";
5
- export interface RunAddConnectionOptions {
6
- prompter: ConnectionAddPrompter;
7
- projectRoot: string;
8
- /** Skip the picker and scaffold exactly these slugs. */
9
- presetSlugs?: readonly string[];
10
- /** Non-interactive protocol filter/default. */
11
- protocol?: ConnectionProtocol;
12
- /** Pre-supplied custom inputs keyed by slug (non-interactive custom path). */
13
- customInputs?: Readonly<Record<string, CustomConnectionInput>>;
14
- /** Whether prompting is allowed. False fails fast instead of prompting. */
15
- interactive?: boolean;
16
- force?: boolean;
17
- connectPackageVersion?: string;
18
- /** Slugs that cannot be added, with the reason shown in the picker. */
19
- disabledConnectionReasons?: Readonly<Record<string, string>>;
20
- /**
21
- * Links a Vercel project before Connect provisioning when the caller owns a
22
- * richer linking flow (shared team selection). Returns the linked project id,
23
- * or `undefined` when linking did not complete. When omitted, connector setup
24
- * runs a bare `vercel link`.
25
- */
26
- linkProject?: () => Promise<string | undefined>;
27
- /** Injectable for tests. */
28
- ensureConnection?: (options: EnsureConnectionOptions) => Promise<ConnectionMutationResult>;
29
- /** Injectable for tests; provisions the Connect connector for `connect()` auth. */
30
- setupConnectionConnector?: (options: SetupConnectionConnectorOptions) => Promise<SetupConnectionConnectorResult>;
31
- }
32
- export interface RunAddConnectionResult {
33
- connections: ConnectionMutationResult[];
34
- }
35
- /**
36
- * Shared flow behind `eve connections add` and create onboarding. Resolves the
37
- * selected connections (catalog or custom), picks a protocol per §1b, scaffolds
38
- * each, and reports the follow-up steps the user must take.
39
- */
40
- export declare function runAddConnection(options: RunAddConnectionOptions): Promise<RunAddConnectionResult>;
@@ -1 +0,0 @@
1
- import{CONNECTION_CATALOG,SUPPORTED_PROTOCOLS,catalogSlugs,connectorServiceForEntry,effectiveProtocols,getCatalogEntry,isValidConnectionSlug}from"../connections/catalog.js";import{ensureConnection}from"../connections.js";import{setupConnectionConnector}from"./setup-connection.js";const PROTOCOL_LABELS={mcp:`MCP`,openapi:`OpenAPI`};function buildCatalogOptions(t){return CONNECTION_CATALOG.map(e=>{let n=t[e.slug];return n===void 0?{value:e.slug,label:e.label,hint:e.hint}:{value:e.slug,label:e.label,hint:e.hint,disabled:!0,disabledReason:n}})}async function resolveProtocol(e,n,r){let a=effectiveProtocols(e);if(a.length===0)throw Error(`No supported protocol for "${r}". Supported: ${SUPPORTED_PROTOCOLS.join(`, `)}.`);if(n.protocol!==void 0){if(!a.includes(n.protocol))throw Error(`Connection "${r}" does not support protocol "${n.protocol}". Supported: ${a.join(`, `)}.`);return n.protocol}if(a.length===1)return a[0];if(!n.interactive)throw Error(`Connection "${r}" supports multiple protocols (${a.join(`, `)}). Pass --protocol to choose one.`);return n.prompter.select({message:`Protocol for ${r}`,options:a.map(e=>({value:e,label:PROTOCOL_LABELS[e]}))})}async function buildCustomInput(e,t){let n=t.customInputs?.[e];if(n!==void 0)return n;if(!t.interactive)throw Error(`Custom connection "${e}" requires interactive input or a preset definition.`);let{prompter:r}=t,i=await resolveProtocol(void 0,t,e),a=await r.text({message:`Description for ${e}`,placeholder:`What this connection exposes`});if(i===`mcp`)return{slug:e,description:a,protocols:[`mcp`],mcp:{url:(await r.text({message:`MCP server URL for ${e}`,placeholder:`https://mcp.example.com/sse`,validate:e=>e.trim().length===0?`A URL is required.`:void 0})).trim()},auth:{kind:`connect`,connector:e}};let o=await r.text({message:`OpenAPI spec URL for ${e}`,placeholder:`https://api.example.com/openapi.json`,validate:e=>e.trim().length===0?`A spec URL is required.`:void 0}),s=await r.text({message:`Base URL for ${e} (optional)`,placeholder:`https://api.example.com`});return{slug:e,description:a,protocols:[`openapi`],openapi:s.trim().length>0?{spec:o.trim(),baseUrl:s.trim()}:{spec:o.trim()},auth:{kind:`connect`,connector:e}}}async function resolveCustomSlug(e){if(!e.interactive)throw Error(`Custom connection requires interactive input or a preset definition.`);return e.prompter.text({message:`Connection name`,placeholder:`mycorp`,validate:e=>{let t=e.trim();if(t.length===0)return`A name is required.`;if(!isValidConnectionSlug(t))return`Start with a lowercase letter; use only lowercase letters, digits, and hyphens (max 64 characters).`}})}async function resolveSelection(e,t){if(e===`custom`){let e=(await resolveCustomSlug(t)).trim();return{slug:e,entry:await buildCustomInput(e,t)}}let r=getCatalogEntry(e);if(r!==void 0)return{slug:e,entry:r};if(!isValidConnectionSlug(e))throw Error(`Unknown connection "${e}". Known: ${catalogSlugs().join(`, `)}, or pass a custom name with a definition.`);return{slug:e,entry:await buildCustomInput(e,t)}}function logFollowUp(e,t){if(t.action===`skipped`){e.log.warning(`Skipped ${t.slug} (already exists; pass --force to overwrite).`);return}e.log.success(`Added agent/connections/${t.slug}.ts`),t.envKeysAdded.length>0?e.log.info(`Set ${t.envKeysAdded.join(`, `)} in .env.local`):t.envKeysRequired.length>0&&e.log.info(`Set ${t.envKeysRequired.join(`, `)} in your environment`)}async function provisionConnectAuth(e,t,n){if(t.auth?.kind!==`connect`||n.action===`skipped`)return;let{slug:i}=n,a=connectorServiceForEntry({mcp:t.mcp,auth:t.auth});if(!e.interactive){e.prompter.log.info(a?`Run \`vercel connect create ${a} --name ${i}\`, then set the connector UID in agent/connections/${i}.ts.`:`Create a Vercel Connect connector and set its UID in agent/connections/${i}.ts.`);return}if(!a){e.prompter.log.warning(`Could not determine a Connect service for ${i}. Create the connector manually and set its UID in agent/connections/${i}.ts.`);return}await(e.setupConnectionConnector??setupConnectionConnector)({prompter:e.prompter,projectRoot:e.projectRoot,slug:i,service:a,connectionFilePath:n.filePath,linkProject:e.linkProject})}async function selectSlugs(e){if(e.presetSlugs!==void 0)return[...e.presetSlugs];if(!e.interactive)throw Error("Pass a connection name: `eve connections add <name>`.");return e.prompter.multiselect({message:`Select connections`,options:buildCatalogOptions(e.disabledConnectionReasons??{})})}async function runAddConnection(e){let t=e.ensureConnection??ensureConnection,n=await selectSlugs(e),r=[];for(let i of n){let{slug:n,entry:a}=await resolveSelection(i,e),o=await resolveProtocol(a.protocols,e,n),s=await t({projectRoot:e.projectRoot,slug:n,protocol:o,entry:a,force:e.force,connectPackageVersion:e.connectPackageVersion});logFollowUp(e.prompter,s),await provisionConnectAuth(e,a,s),r.push(s)}return{connections:r}}export{runAddConnection};
@@ -1,81 +0,0 @@
1
- import { type ChannelKind, type WebPackageVersions } from "../channels.js";
2
- import { type ChannelSetupPrompter, type DisabledChannelReasons } from "../cli/channel-setup-prompter.js";
3
- import { type DeploymentInfo } from "../primitives/detect-deployment.js";
4
- import { type ProjectResolution } from "./project-resolution.js";
5
- /** Status retained while channel setup retries installs, deployments, or Connect calls. */
6
- export interface AddToAgentState {
7
- channels: ChannelKind[];
8
- webScaffolded: boolean;
9
- slackScaffolded: boolean;
10
- deploymentDependenciesInstalled: boolean;
11
- project: ProjectResolution;
12
- deploymentPending: boolean;
13
- slackbotCreated: boolean;
14
- slackbotAttached: boolean;
15
- slackConnectorUid: string | undefined;
16
- slackWorkspaceUrl: string | undefined;
17
- slackWorkspaceName: string | undefined;
18
- }
19
- export type AddToAgentStateSnapshot = Omit<Readonly<AddToAgentState>, "channels" | "project"> & {
20
- readonly channels: readonly ChannelKind[];
21
- readonly project: Readonly<ProjectResolution>;
22
- };
23
- export declare function cloneAddToAgentState(state: AddToAgentStateSnapshot): AddToAgentState;
24
- export declare function assignAddToAgentState(target: AddToAgentState, source: AddToAgentStateSnapshot): AddToAgentState;
25
- /** Creates setup state from the Vercel status of an existing agent project. */
26
- export declare function createAddToAgentState(deployment?: DeploymentInfo): AddToAgentState;
27
- /** Inputs for channel setup shared by onboarding and `eve channels add`. */
28
- export interface RunAddToAgentOptions {
29
- prompter: ChannelSetupPrompter;
30
- projectPath: string;
31
- projectName?: string;
32
- state: AddToAgentStateSnapshot;
33
- presetChannels?: ChannelKind[];
34
- /** Reasons shown for channel kinds that cannot be added to this project. */
35
- disabledChannelReasons?: DisabledChannelReasons;
36
- presetCreateSlackbot?: boolean;
37
- webPackageVersions?: WebPackageVersions;
38
- /** When false, Web Chat is scaffolded without writing Vercel Services config. */
39
- configureVercelServices?: boolean;
40
- force?: boolean;
41
- /**
42
- * Headless mode: never spawn an interactive Vercel command. Project-link
43
- * steps that would open a browser/picker throw {@link HumanActionRequiredError};
44
- * Slack setup is rejected before any channel mutation.
45
- */
46
- headless?: boolean;
47
- /** Rejects a selection before the flow mutates channel files or external state. */
48
- validateSelectedChannels?(channels: readonly ChannelKind[]): Promise<void>;
49
- /**
50
- * Links a Vercel project before Connect setup when the caller owns a richer
51
- * linking flow. The returned resolution is merged into setup state before
52
- * Slackbot provisioning starts.
53
- *
54
- * When omitted, shared channel setup runs `vercel link` and resolves the
55
- * project from local Vercel metadata.
56
- */
57
- linkProjectForSlackbot?(): Promise<ProjectResolution>;
58
- }
59
- /** Inputs for deploying a project after channel setup has marked deployment work pending. */
60
- export interface DeployProjectOptions {
61
- projectPath: string;
62
- prompter: ChannelSetupPrompter;
63
- state: AddToAgentStateSnapshot;
64
- /** Headless mode: throw {@link HumanActionRequiredError} instead of running `vercel link`. */
65
- headless?: boolean;
66
- /**
67
- * Links a Vercel project before deployment when the caller owns a richer
68
- * linking flow. The returned resolution is merged into state before the
69
- * deploy runs.
70
- *
71
- * When omitted, deployment runs `vercel link` and resolves the project from
72
- * local Vercel metadata.
73
- */
74
- linkProjectForDeployment?(): Promise<ProjectResolution>;
75
- }
76
- /** Deploys the project once channel setup has marked route changes pending. */
77
- export declare function deployProject(options: DeployProjectOptions): Promise<AddToAgentState>;
78
- /**
79
- * Runs channel setup, returning to selection after failed interactive steps.
80
- */
81
- export declare function runAddToAgent(options: RunAddToAgentOptions): Promise<AddToAgentState>;
@@ -1,2 +0,0 @@
1
- import{SCAFFOLDABLE_CHANNELS}from"../channels-catalog.js";import{deriveSlackConnectorSlug,ensureChannel}from"../channels.js";import"../cli/channel-setup-prompter.js";import{createPromptCommandOutput}from"../cli/command-output.js";import{HumanActionRequiredError}from"../human-action.js";import{runVercel}from"../primitives/run-vercel.js";import{detectDeployment}from"../primitives/detect-deployment.js";import{runPnpmInstall}from"../primitives/run-pnpm.js";import{deployToVercel}from"./deploy-to-vercel.js";import{isProjectResolved,mergeProjectResolution,projectResolutionFromDeployResult,projectResolutionFromDeployment}from"./project-resolution.js";import{reconcileSlackUid,setupSlackbot}from"./setup-slackbot.js";const CHANNEL_OPTIONS=SCAFFOLDABLE_CHANNELS.map(e=>{let t={value:e.kind,label:e.label};return e.hint!==void 0&&(t.hint=e.hint),t});function selectableChannels(e){return CHANNEL_OPTIONS.map(t=>{let n=e?.[t.value];return n===void 0?t:{...t,disabled:!0,disabledReason:n}})}function cloneProjectResolution(e){switch(e.kind){case`unresolved`:return{kind:`unresolved`};case`linked`:return{kind:`linked`,projectId:e.projectId};case`deployed`:return{kind:`deployed`,projectId:e.projectId,productionUrl:e.productionUrl}}}function cloneAddToAgentState(e){return{channels:[...e.channels],webScaffolded:e.webScaffolded,slackScaffolded:e.slackScaffolded,deploymentDependenciesInstalled:e.deploymentDependenciesInstalled,project:cloneProjectResolution(e.project),deploymentPending:e.deploymentPending,slackbotCreated:e.slackbotCreated,slackbotAttached:e.slackbotAttached,slackConnectorUid:e.slackConnectorUid,slackWorkspaceUrl:e.slackWorkspaceUrl,slackWorkspaceName:e.slackWorkspaceName}}function assignAddToAgentState(e,t){return Object.assign(e,cloneAddToAgentState(t)),e}function createAddToAgentState(e={state:`unlinked`}){return{channels:[],webScaffolded:!1,slackScaffolded:!1,deploymentDependenciesInstalled:!1,project:projectResolutionFromDeployment(e),deploymentPending:!1,slackbotCreated:!1,slackbotAttached:!1,slackConnectorUid:void 0,slackWorkspaceUrl:void 0,slackWorkspaceName:void 0}}function recordScaffoldedChannel(e,t){e.channels.includes(t)||(e.channels.push(t),e.deploymentPending=!0)}function warnOverwrittenFiles(e,t){for(let n of t??[])e.log.warning(`Overwrote ${n}`)}function warnCompetingNextConfigFiles(e,t){for(let n of t??[])e.log.warning(`Found competing Next.js config at ${n}; merge any needed settings into next.config.ts and remove it before starting the preview, or Next.js may ignore the generated Eve rewrite.`)}async function promptCreateSlackbot(e){return await e.select({message:`Do you want to create your slackbot?`,options:[{value:`yes`,label:`Yes`,hint:`connects Slack, then deploys`},{value:`no`,label:`No`}]})===`yes`}async function installDeploymentDependencies(e,t,n){if(!n.deploymentDependenciesInstalled){if(e.log.message(`Installing project dependencies before deployment (pnpm install)...`),!await runPnpmInstall(t,{onOutput:createPromptCommandOutput(e.log)}))throw Error(`Dependency installation failed. Deployment did not start.`);n.deploymentDependenciesInstalled=!0}}async function linkProjectForSlackbot(e){if(isProjectResolved(e.state.project))return;let t;if(e.linkProjectForSlackbot!==void 0)t=await e.linkProjectForSlackbot();else if(e.headless)throw new HumanActionRequiredError({kind:`vercel-link`,command:`vercel link`,reason:`Slack needs this directory linked to a Vercel project.`});else{if(e.prompter.log.message(`Linking this directory to a Vercel project...`),!await runVercel([`link`],{cwd:e.projectPath}))throw Error(`Vercel project linking failed. Slackbot creation did not start.`);t=projectResolutionFromDeployment(await detectDeployment(e.projectPath))}if(e.state.project=mergeProjectResolution(e.state.project,t),!isProjectResolved(e.state.project))throw Error(`Vercel project linking failed. Slackbot creation did not start.`)}async function scaffoldSlackChannel(e,t){let{prompter:r,projectPath:i,state:a}=e;if(!a.slackScaffolded){r.log.message(`Scaffolding Slack channel files...`);let o=await ensureChannel({projectRoot:i,kind:`slack`,slackConnectorSlug:t,force:e.force});warnOverwrittenFiles(r,o.filesOverwritten),o.action===`created`||o.action===`overwritten`?r.log.success(`Scaffolded channel: slack`):r.log.info(`Channel "slack" already exists. Skipping file creation.`),a.slackScaffolded=!0}recordScaffoldedChannel(a,`slack`)}async function linkProjectForDeployment(e){let{prompter:t,projectPath:n,state:r}=e;if(isProjectResolved(r.project))return;let s;if(e.linkProjectForDeployment!==void 0)s=await e.linkProjectForDeployment();else if(e.headless)throw new HumanActionRequiredError({kind:`vercel-link`,command:`vercel link`,reason:`Deployment needs this directory linked to a Vercel project.`});else{if(t.log.message(`Linking this directory to a Vercel project before deployment...`),!await runVercel([`link`],{cwd:n}))throw Error(`Vercel project linking failed. Deployment did not start.`);s=projectResolutionFromDeployment(await detectDeployment(n))}if(r.project=mergeProjectResolution(r.project,s),!isProjectResolved(r.project))throw Error(`Vercel project linking failed. Deployment did not start.`)}async function deployProject(e){let t=cloneAddToAgentState(e.state),n={...e,state:t},{prompter:r,projectPath:i}=e;if(!t.deploymentPending)return t;await linkProjectForDeployment(n),await installDeploymentDependencies(r,i,t);let a=await deployToVercel(r,i,{presetDeploy:!0,headless:e.headless});if(t.project=projectResolutionFromDeployResult(t.project,a),!a.deployed)throw Error(`Deployment failed after channel setup.`);return t.deploymentPending=!1,t}async function reconcilePreparedSlackChannel(e,t,n,r){let i=n.slackConnectorUid;if(i===void 0)throw Error(`Slack connector UID was not resolved. Slack deployment did not start.`);if(!await reconcileSlackUid(e,t,{kind:`attached`,created:!0,attached:!0,connectorUid:i},r))throw Error(`Slack connector UID update is required before deployment.`)}function recordAttachedSlackbot(e,t){e.slackbotCreated=!0,e.slackbotAttached=!0,e.slackConnectorUid=t.connectorUid,e.slackWorkspaceUrl=t.workspaceUrl,e.slackWorkspaceName=t.workspaceName}async function runAddToAgentOnce(e,r){let{prompter:i,projectPath:a,projectName:o,state:s}=e;if(e.headless&&r.includes(`slack`))throw Error(`Slack setup is interactive. Run the guided create flow with -i, or add Slack from the onboarding steps after headless scaffolding.`);if(r.includes(`web`))if(s.webScaffolded)recordScaffoldedChannel(s,`web`);else{i.log.message(`Scaffolding Web Chat channel files...`);let t=await ensureChannel({projectRoot:a,kind:`web`,force:e.force,webPackageVersions:e.webPackageVersions,configureVercelServices:e.configureVercelServices});warnOverwrittenFiles(i,t.filesOverwritten),warnCompetingNextConfigFiles(i,`competingNextConfigFiles`in t?t.competingNextConfigFiles:void 0),t.action===`created`||t.action===`overwritten`?(i.log.success(`Scaffolded channel: web`),s.webScaffolded=!0,recordScaffoldedChannel(s,`web`)):i.log.info(`Next.js project detected. Skipping Web Chat scaffolding.`)}if(r.includes(`slack`)){let n=await deriveSlackConnectorSlug(a,o);if(s.slackbotCreated){if(!s.slackbotAttached)throw Error(`Slackbot provisioning did not attach this project. Slack channel was not added.`);s.deploymentPending&&(await scaffoldSlackChannel(e,n),await reconcilePreparedSlackChannel(i,a,s,`slack/${n}`))}else if(e.presetCreateSlackbot??await promptCreateSlackbot(i)){await linkProjectForSlackbot(e);let t=await setupSlackbot(i,a,{presetCreate:!0,slackbotName:n});if(!t.created)throw Error(`Slackbot creation failed.`);if(t.kind!==`attached`)throw Error(`Slackbot provisioning did not attach this project. Slack channel was not added.`);recordAttachedSlackbot(s,t),await scaffoldSlackChannel(e,n),await reconcilePreparedSlackChannel(i,a,s,`slack/${n}`)}else i.log.info(`Slack channel was not added because Slackbot setup was skipped.`)}}async function runAddToAgent(e){let t=cloneAddToAgentState(e.state),n={...e,state:t};for(;;){let r=e.presetChannels??await e.prompter.multiselect({message:`Select channels`,options:selectableChannels(e.disabledChannelReasons),required:!1});await e.validateSelectedChannels?.(r);try{return await runAddToAgentOnce(n,r),t}catch(t){if(t instanceof Error&&(t.name===`WizardCancelledError`||t.name===`ChannelAddCancelledError`))throw t;let n=t instanceof Error?t.message:String(t),r=n.split(`
2
- `)[0]?.trim()??n;if(e.prompter.log.error(r),e.presetChannels!==void 0)throw t}}}export{assignAddToAgentState,cloneAddToAgentState,createAddToAgentState,deployProject,runAddToAgent};
@@ -1 +0,0 @@
1
- import{createPromptCommandOutput}from"../cli/command-output.js";import{captureVercel,runVercel,runVercelCaptureStdout}from"../primitives/run-vercel.js";import{updateConnectionConnectorUid}from"../primitives/update-connection-connector.js";import{join}from"node:path";import{readFile}from"node:fs/promises";function parseCreatedConnector(e){let t=e.trim();if(!t)return;let n;try{n=JSON.parse(t)}catch{return}if(typeof n!=`object`||!n)return;let{uid:r,id:i}=n;if(!(typeof r!=`string`||typeof i!=`string`))return{uid:r,id:i}}function attachedToProject(e,t){return t===void 0||!Array.isArray(e.projects)?!1:e.projects.some(e=>typeof e==`object`&&!!e&&e.id===t)}function pickConnectConnector(e,t,n){if(typeof e!=`object`||!e)return;let r=e,i=r.connectors??r.clients;if(!Array.isArray(i))return;let a,o;for(let e of i){if(typeof e.service==`string`&&e.service!==t||typeof e.uid!=`string`||typeof e.id!=`string`)continue;let r={uid:e.uid,id:e.id},i=typeof e.createdAt==`number`?e.createdAt:0;(!o||i>o.createdAt)&&(o={ref:r,createdAt:i}),attachedToProject(e,n)&&(!a||i>a.createdAt)&&(a={ref:r,createdAt:i})}return(a??o)?.ref}async function readProjectId(e){try{let t=await readFile(join(e,`.vercel`,`project.json`),`utf8`),n=JSON.parse(t);return typeof n.projectId==`string`?n.projectId:void 0}catch{return}}async function ensureLinkedProject(e,t,r){return await readProjectId(t)||(e.log.message(`Linking a Vercel project for Connect...`),await runVercel([`link`],{cwd:t,onOutput:r}),readProjectId(t))}async function findConnector(e,n,r,i){let a=await captureVercel([`connect`,`list`,`-F`,`json`,`--all-projects`,`--service`,n],{cwd:e,onOutput:i});if(a.ok)try{return pickConnectConnector(JSON.parse(a.stdout),n,r)}catch{return}}async function setupConnectionConnector(t){let{prompter:a,projectRoot:o,slug:s,service:c,connectionFilePath:l}=t,u=createPromptCommandOutput(a.log),d=t.linkProject?await t.linkProject():await ensureLinkedProject(a,o,u);a.log.message(`Connecting ${s} via Vercel Connect...`);let f=await runVercelCaptureStdout([`connect`,`create`,c,`--name`,s,`-F`,`json`],{cwd:o,onOutput:u});if(!f.ok)return a.log.warning(`Could not create the connector. Run \`vercel connect create ${c} --name ${s}\`, then set the UID in agent/connections/${s}.ts.`),{kind:`create-failed`,created:!1};let p=parseCreatedConnector(f.stdout);if(p||=await findConnector(o,c,d,u),!p)return a.log.warning(`Could not locate the connector. Run \`vercel connect list --all-projects\` to find its UID, then set it in agent/connections/${s}.ts.`),{kind:`connector-unresolved`,created:!0};d?await runVercel([`connect`,`attach`,p.uid,`--yes`],{cwd:o,onOutput:u})||a.log.warning(`Created connector ${p.uid} but could not attach it to this project. Run \`vercel connect attach ${p.uid} --yes\`.`):a.log.warning(`Created connector ${p.uid} but no Vercel project is linked, so it isn't attached. Run \`vercel link\`, then \`vercel connect attach ${p.uid} --yes\`.`);let{patched:m}=await updateConnectionConnectorUid(l,p.uid);return m?(a.log.success(`Linked ${s} to ${p.uid}`),{kind:`patched`,created:!0,connectorUid:p.uid}):(a.log.warning(`Created connector ${p.uid}. Update \`connect("…")\` in agent/connections/${s}.ts to "${p.uid}".`),{kind:`patch-failed`,created:!0,connectorUid:p.uid})}export{parseCreatedConnector,pickConnectConnector,setupConnectionConnector};
@@ -1 +0,0 @@
1
- import{SLACK_CHANNEL_DEFAULT_ROUTE}from"../channels.js";import{createPromptCommandOutput}from"../cli/command-output.js";import{captureVercel,runVercel,runVercelCaptureStdout}from"../primitives/run-vercel.js";import{updateSlackChannelConnectorUid}from"../primitives/update-slack-channel.js";import{join}from"node:path";import{readFile}from"node:fs/promises";async function runVercelConnectCreateSlack(e,t,n){let r=[`connect`,`create`,`slack`,`--triggers`];return t&&r.push(`--name`,t),r.push(`-F`,`json`),runVercelCaptureStdout(r,{cwd:e,onOutput:n})}function parseCreatedSlackConnector(e){let t=e.trim();if(!t)return;let n;try{n=JSON.parse(t)}catch{return}if(typeof n!=`object`||!n)return;let{uid:r,id:i}=n;if(!(typeof r!=`string`||typeof i!=`string`))return{uid:r,id:i}}async function readProjectId(e){try{let t=await readFile(join(e,`.vercel`,`project.json`),`utf8`),n=JSON.parse(t);return typeof n.projectId==`string`?n.projectId:void 0}catch{return}}function pickSlackConnector(e,t,n){if(typeof e!=`object`||!e)return;let r=e,i=r.connectors??r.clients;if(!Array.isArray(i))return;let a;for(let e of i){if(e.type!==`slack`||typeof e.uid!=`string`||typeof e.id!=`string`)continue;let r={uid:e.uid,id:e.id};if(n!==void 0&&r.uid===n)return r;let i=typeof e.createdAt==`number`?e.createdAt:0;t!==void 0&&Array.isArray(e.projects)&&e.projects.some(e=>typeof e==`object`&&!!e&&e.id===t)&&(!a||i>a.createdAt)&&(a={ref:r,createdAt:i})}return a?.ref}function parseInstallation(e){if(typeof e!=`object`||!e)return;let t=e.installations;if(!Array.isArray(t)||t.length===0)return;let n=t[0];if(typeof n.tenantUrl==`string`)return{workspaceUrl:n.tenantUrl,workspaceName:typeof n.tenantName==`string`?n.tenantName:void 0}}async function findSlackConnector(e,t,r,i){let a=await captureVercel([`connect`,`list`,`-F`,`json`,`--all-projects`],{cwd:e,onOutput:i});if(a.ok)try{return pickSlackConnector(JSON.parse(a.stdout),t,r)}catch{return}}async function fetchInstallationInfo(e,t,r){let i=await captureVercel([`api`,`/v1/connex/clients/${t}/installations`],{cwd:e,onOutput:r});if(i.ok)try{return parseInstallation(JSON.parse(i.stdout))}catch{return}}async function setupSlackbot(n,i,a={}){let o=a.presetCreate;if(o===void 0&&(o=await n.select({message:`Do you want to create your slackbot?`,options:[{value:`yes`,label:`Yes`},{value:`no`,label:`No`}]})===`yes`),!o)return n.log.info("Skipping slackbot creation. Run `vercel connect create slack` later when ready."),{kind:`skipped`,created:!1,attached:!1};let s=createPromptCommandOutput(n.log),c=await readProjectId(i),l=a.slackbotName?`slack/${a.slackbotName}`:void 0;n.log.message(`Creating a Slackbot through Vercel Connect...`);let u=await runVercelConnectCreateSlack(i,a.slackbotName,s);if(!u.ok)return{kind:`create-failed`,created:!1,attached:!1};n.log.success(`Slackbot created via Vercel Connect.`);let d=parseCreatedSlackConnector(u.stdout);if(d||=(n.log.message(`Locating the Slack connector...`),await findSlackConnector(i,c,l,s)),!d)return n.log.warning("Could not locate the Slack connector. Run `vercel connect list --all-projects` to find its UID."),{kind:`connector-unresolved`,created:!0,attached:!1};if(n.log.info(`Slack connector: ${d.uid}`),n.log.message(`Configuring Slack event delivery for this agent...`),await runVercel([`connect`,`detach`,d.uid,`--yes`],{cwd:i,onOutput:s}),!await runVercel([`connect`,`attach`,d.uid,`--triggers`,`--trigger-path`,SLACK_CHANNEL_DEFAULT_ROUTE,`--yes`],{cwd:i,onOutput:s}))return n.log.warning(`Could not register this project as a trigger destination. Run \`vercel connect attach ${d.uid} --triggers --trigger-path ${SLACK_CHANNEL_DEFAULT_ROUTE} --yes\` to enable event delivery.`),{kind:`attach-failed`,created:!0,attached:!1,connectorUid:d.uid};n.log.message(`Reading Slack workspace details...`);let f=await fetchInstallationInfo(i,d.id,s);return f?{kind:`attached`,created:!0,attached:!0,connectorUid:d.uid,workspaceUrl:f.workspaceUrl,workspaceName:f.workspaceName}:{kind:`attached`,created:!0,attached:!0,connectorUid:d.uid}}async function reconcileSlackUid(e,t,n,r){if(n.kind!==`attached`||n.connectorUid===r)return!0;e.log.info(`Connect assigned UID ${n.connectorUid} (expected ${r}). Updating agent/channels/slack.ts before deployment...`);let{patched:i}=await updateSlackChannelConnectorUid(join(t,`agent/channels/slack.ts`),n.connectorUid);return i?!0:(e.log.warning(`Could not patch agent/channels/slack.ts automatically. Update \`connectSlackCredentials("...")\` to \`"${n.connectorUid}"\` and run \`vercel deploy --prod\`.`),!1)}export{parseCreatedSlackConnector,parseInstallation,pickSlackConnector,reconcileSlackUid,setupSlackbot};