eve 0.15.5 → 0.16.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 (107) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/src/cli/commands/init.js +1 -1
  3. package/dist/src/cli/dev/tui/agent-header.js +1 -1
  4. package/dist/src/cli/dev/tui/blocks.js +8 -8
  5. package/dist/src/cli/dev/tui/prompt-command-handler.js +1 -1
  6. package/dist/src/cli/dev/tui/prompt-commands.d.ts +1 -1
  7. package/dist/src/cli/dev/tui/prompt-commands.js +1 -1
  8. package/dist/src/cli/dev/tui/runner.d.ts +10 -3
  9. package/dist/src/cli/dev/tui/runner.js +1 -1
  10. package/dist/src/cli/dev/tui/setup-commands.d.ts +9 -1
  11. package/dist/src/cli/dev/tui/setup-commands.js +2 -2
  12. package/dist/src/cli/dev/tui/setup-flow.d.ts +8 -1
  13. package/dist/src/cli/dev/tui/setup-issues.d.ts +2 -14
  14. package/dist/src/cli/dev/tui/setup-issues.js +1 -1
  15. package/dist/src/cli/dev/tui/setup-panel.d.ts +14 -8
  16. package/dist/src/cli/dev/tui/setup-panel.js +3 -3
  17. package/dist/src/cli/dev/tui/terminal-renderer.js +6 -6
  18. package/dist/src/cli/dev/tui/tui-prompter.js +1 -1
  19. package/dist/src/cli/dev/tui/tui.d.ts +2 -3
  20. package/dist/src/cli/dev/tui/tui.js +1 -1
  21. package/dist/src/cli/dev/ui-options.d.ts +21 -0
  22. package/dist/src/cli/dev/ui-options.js +1 -0
  23. package/dist/src/cli/run.d.ts +6 -42
  24. package/dist/src/cli/run.js +2 -2
  25. package/dist/src/compiled/.vendor-stamp.json +1 -1
  26. package/dist/src/compiled/@ai-sdk/mcp/index.d.ts +71 -1
  27. package/dist/src/compiled/@ai-sdk/mcp/index.js +1 -1
  28. package/dist/src/harness/emission.d.ts +3 -3
  29. package/dist/src/harness/emission.js +1 -1
  30. package/dist/src/harness/stream-actions.d.ts +17 -0
  31. package/dist/src/harness/stream-actions.js +1 -0
  32. package/dist/src/internal/application/package.js +1 -1
  33. package/dist/src/internal/nitro/host/configure-nitro-routes.js +2 -2
  34. package/dist/src/internal/nitro/host/dev-authored-source-watcher.d.ts +1 -0
  35. package/dist/src/internal/nitro/host/dev-authored-source-watcher.js +1 -1
  36. package/dist/src/internal/nitro/host/start-development-server.d.ts +8 -0
  37. package/dist/src/internal/nitro/host/start-development-server.js +2 -2
  38. package/dist/src/internal/nitro/host.d.ts +1 -1
  39. package/dist/src/internal/nitro/host.js +1 -1
  40. package/dist/src/internal/nitro/routes/channel-dispatch.js +1 -1
  41. package/dist/src/internal/nitro/routes/dev-runtime-artifacts.d.ts +0 -3
  42. package/dist/src/internal/nitro/routes/dev-runtime-artifacts.js +1 -1
  43. package/dist/src/internal/nitro/routes/info.js +1 -1
  44. package/dist/src/internal/vercel/project-link.d.ts +10 -0
  45. package/dist/src/internal/vercel/project-link.js +1 -0
  46. package/dist/src/public/channels/auth.d.ts +26 -13
  47. package/dist/src/public/channels/auth.js +1 -1
  48. package/dist/src/runtime/agent/mock-model-adapter.d.ts +3 -2
  49. package/dist/src/runtime/agent/mock-model-adapter.js +1 -1
  50. package/dist/src/runtime/connections/principal.d.ts +2 -0
  51. package/dist/src/runtime/connections/principal.js +1 -1
  52. package/dist/src/runtime/connections/types.d.ts +4 -1
  53. package/dist/src/runtime/framework-channels/index.d.ts +1 -6
  54. package/dist/src/runtime/framework-channels/index.js +1 -1
  55. package/dist/src/runtime/governance/auth/oidc.js +1 -1
  56. package/dist/src/runtime/governance/auth/types.d.ts +14 -10
  57. package/dist/src/runtime/governance/auth/vercel-oidc-project.d.ts +12 -0
  58. package/dist/src/runtime/governance/auth/vercel-oidc-project.js +1 -0
  59. package/dist/src/services/dev-client/client-options.d.ts +5 -0
  60. package/dist/src/services/dev-client/client-options.js +1 -1
  61. package/dist/src/services/dev-client/request-headers.d.ts +8 -0
  62. package/dist/src/services/dev-client/request-headers.js +1 -1
  63. package/dist/src/services/dev-client/runtime-artifacts.d.ts +1 -0
  64. package/dist/src/services/dev-client/runtime-artifacts.js +1 -1
  65. package/dist/src/services/dev-client.d.ts +8 -0
  66. package/dist/src/services/dev-client.js +1 -1
  67. package/dist/src/setup/boxes/add-connections.d.ts +10 -8
  68. package/dist/src/setup/boxes/add-connections.js +1 -1
  69. package/dist/src/setup/boxes/resolve-provisioning.d.ts +1 -0
  70. package/dist/src/setup/boxes/resolve-provisioning.js +1 -1
  71. package/dist/src/setup/cli/channel-setup-prompter.d.ts +9 -2
  72. package/dist/src/setup/cli/channel-setup-prompter.js +1 -1
  73. package/dist/src/setup/cli/index.d.ts +1 -1
  74. package/dist/src/setup/cli/prompt-ui.d.ts +2 -0
  75. package/dist/src/setup/cli/select-state.js +1 -1
  76. package/dist/src/setup/connection-connector.d.ts +26 -52
  77. package/dist/src/setup/connection-connector.js +2 -1
  78. package/dist/src/setup/flows/channels.js +1 -1
  79. package/dist/src/setup/flows/connections.d.ts +36 -0
  80. package/dist/src/setup/flows/connections.js +3 -0
  81. package/dist/src/setup/flows/link.d.ts +1 -0
  82. package/dist/src/setup/flows/link.js +1 -1
  83. package/dist/src/setup/project-resolution.d.ts +2 -8
  84. package/dist/src/setup/project-resolution.js +1 -1
  85. package/dist/src/setup/prompter.d.ts +2 -0
  86. package/dist/src/setup/scaffold/connections/catalog.d.ts +10 -5
  87. package/dist/src/setup/scaffold/connections/catalog.js +1 -1
  88. package/dist/src/setup/scaffold/create/project.js +11 -11
  89. package/dist/src/setup/scaffold/create/web-template.d.ts +1 -1
  90. package/dist/src/setup/scaffold/create/web-template.js +2 -2
  91. package/dist/src/setup/scaffold/index.d.ts +1 -1
  92. package/dist/src/setup/scaffold/index.js +1 -1
  93. package/dist/src/setup/scaffold/update/connections.d.ts +6 -0
  94. package/dist/src/setup/scaffold/update/connections.js +3 -3
  95. package/docs/channels/eve.mdx +3 -3
  96. package/docs/concepts/sessions-runs-and-streaming.md +1 -1
  97. package/docs/guides/auth-and-route-protection.md +5 -5
  98. package/docs/guides/dev-tui.md +11 -4
  99. package/docs/guides/frontend/nextjs.mdx +2 -2
  100. package/docs/guides/frontend/nuxt.mdx +2 -2
  101. package/docs/guides/frontend/sveltekit.mdx +2 -2
  102. package/docs/reference/cli.md +3 -1
  103. package/docs/tutorial/ship-it.mdx +1 -1
  104. package/docs/tutorial/team-playbooks.mdx +1 -1
  105. package/package.json +2 -2
  106. package/dist/src/internal/nitro/host/dev-rebuild-registry.d.ts +0 -5
  107. package/dist/src/internal/nitro/host/dev-rebuild-registry.js +0 -1
@@ -27,7 +27,7 @@ import { eveChannel } from "eve/channels/eve";
27
27
  import { localDev, vercelOidc } from "eve/channels/auth";
28
28
 
29
29
  export default eveChannel({
30
- auth: [localDev(), vercelOidc()],
30
+ auth: [vercelOidc(), localDev()],
31
31
  });
32
32
  ```
33
33
 
@@ -62,11 +62,11 @@ function appSession(): AuthFn<Request> {
62
62
  }
63
63
 
64
64
  export default eveChannel({
65
- auth: [appSession(), localDev(), vercelOidc()],
65
+ auth: [appSession(), vercelOidc(), localDev()],
66
66
  });
67
67
  ```
68
68
 
69
- Put your own providers ahead of the catch-all helpers. Any entry that doesn't recognize the caller returns `null`, and the walk moves on. On non-Vercel hosts, omit `vercelOidc()` unless you specifically want to accept Vercel-issued tokens.
69
+ Put your own providers ahead of the catch-all helpers. `localDev()` is the final fallback: put `vercelOidc()` before it so a local Vercel OIDC bearer can resolve a user instead of being shadowed by the synthetic local principal. Any entry that doesn't recognize the caller returns `null`, and the walk moves on. On non-Vercel hosts, omit `vercelOidc()` unless you specifically want to accept Vercel-issued tokens.
70
70
 
71
71
  To reject with a precise status instead of skipping, throw:
72
72
 
@@ -197,11 +197,11 @@ import { eveChannel } from "eve/channels/eve";
197
197
  import { localDev, placeholderAuth, vercelOidc } from "eve/channels/auth";
198
198
 
199
199
  export default eveChannel({
200
- auth: [localDev(), vercelOidc(), placeholderAuth()],
200
+ auth: [vercelOidc(), localDev(), placeholderAuth()],
201
201
  });
202
202
  ```
203
203
 
204
- In production, `placeholderAuth()` returns a structured `401` so a generated web chat app can say "auth isn't configured yet" instead of throwing an internal error. Replace it before a browser caller submits a production request: swap in your app's `AuthFn` or one of the shipped helpers. Delete the authored channel file entirely and eve falls back to the framework default `[localDev(), vercelOidc()]`, which also rejects production browser traffic.
204
+ In production, `placeholderAuth()` returns a structured `401` so a generated web chat app can say "auth isn't configured yet" instead of throwing an internal error. Replace it before a browser caller submits a production request: swap in your app's `AuthFn` or one of the shipped helpers. Delete the authored channel file entirely and eve falls back to the framework default `[vercelOidc(), localDev()]`, which also rejects production browser traffic.
205
205
 
206
206
  You do not have to keep `vercelOidc()` in the final policy. For a self-hosted app, an app-embedded frontend, or any deployment that uses a non-Vercel identity system, use `httpBasic()`, `jwtHmac()`, `jwtEcdsa()`, generic `oidc()`, or a custom `AuthFn` that maps your verified user/session/API key into a `SessionAuthContext`.
207
207
 
@@ -16,7 +16,7 @@ On startup the TUI prints a brand line with your agent's name, plus a rotating t
16
16
  Use /channels to add more ways to reach your agent.
17
17
  ```
18
18
 
19
- If agent discovery reported problems, an error and warning count renders between the two lines. Instructions, tools, skills, and subagents are one `eve info` away, and `/help` lists every command. The TUI also runs a startup check. When the runtime confirms that no model provider is configured, it opens the `/model` provider picker before the first prompt. Unknown or linked-but-incomplete credential states remain visible as an attention line, with each command's outcome hanging under it on a `⎿` connector.
19
+ If agent discovery reported problems, an error and warning count renders between the two lines. Instructions, tools, skills, and subagents are one `eve info` away, and `/help` lists every command. The TUI also runs a startup check. A fresh `eve init` starts local `eve dev` with `/model` prefilled. That input starts onboarding: the flow installs the Vercel CLI if needed, asks you to log in if needed, then opens `/model` before the first prompt. Other `eve dev` sessions show missing setup as an attention line, with each command's outcome hanging under it on a `⎿` connector.
20
20
 
21
21
  ## Reading the transcript
22
22
 
@@ -30,12 +30,13 @@ Errors render compactly with docs links highlighted. A code bug escaping your ag
30
30
 
31
31
  ## Slash commands
32
32
 
33
- Each command echoes as an invocation line, asks through a bordered panel that takes the input area's place (one question at a time, separate from the chat transcript), and finishes with a one-line `⎿` result. Loading states stay on the ephemeral status line instead of piling into the transcript; model, channel, and the Vercel CLI commands (`/vc:install`, `/vc:login`) use the same green square pulse as the build phase, while `/deploy` keeps a spinner. Setup menus render the selected option with a filled arrow and an inverse label padded by one space on each side. Text prompts use a blinking block cursor over the character at the caret. The selected label is blue normally and yellow for warning rows.
33
+ Each command echoes as an invocation line, asks through a bordered panel that takes the input area's place (one question at a time, separate from the chat transcript), and finishes with a one-line `⎿` result. Loading states stay on the ephemeral status line instead of piling into the transcript; model, channel, connection, and the Vercel CLI commands (`/vc:install`, `/vc:login`) use the same green square pulse as the build phase, while `/deploy` keeps a spinner. A connection setup waiting for browser action changes that pulse and the word "browser" to yellow. Setup menus render the selected option with a filled arrow and an inverse label padded by one space on each side. Text prompts use a blinking block cursor over the character at the caret. The selected label is blue normally and yellow for warning rows.
34
34
 
35
35
  | Command | Does |
36
36
  | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
37
37
  | `/model` | Opens a configure menu that loops until Done (or Esc). See [Configure the model and provider](#configure-the-model-and-provider). |
38
38
  | `/channels` | Shows the agent's channel list and adds the one you pick. See [Add a channel](#add-a-channel). |
39
+ | `/connect` | Shows the Vercel Connect MCP catalog and configures the server you pick. See [Add a connection](#add-a-connection). |
39
40
  | `/deploy` | Ships the agent to Vercel production, linking the directory first when it is unlinked. |
40
41
  | `/vc:install` | Installs the Vercel CLI. Available locally and on a remote session. |
41
42
  | `/vc:login` | Logs in to Vercel locally. On a remote session, resolves the deployment's project, refreshes its OIDC token, and confirms any required Trusted Sources rule. |
@@ -44,7 +45,7 @@ Each command echoes as an invocation line, asks through a bordered panel that ta
44
45
  | `/exit` | Quits the TUI. |
45
46
  | `/help` | Lists the commands available for the current local or remote session. |
46
47
 
47
- `/model`, `/channels`, and `/deploy` manage the project and are available only when `eve dev` runs the server locally, not when connected to a remote server with `--url`.
48
+ `/model`, `/channels`, `/connect`, and `/deploy` manage the local agent or its linked project. They are available only when `eve dev` runs the server locally, not when connected to a remote server with `--url`.
48
49
 
49
50
  ### Configure the model and provider
50
51
 
@@ -58,6 +59,12 @@ The provider row demands attention (a bold yellow "Configure model access" with
58
59
 
59
60
  `/channels` shows the agent's channel list. Already-registered channels render as checked, focusable rows with an "Already installed" hint. Picking one adds it (including the Slack Connect provisioning), then installs the dependencies the scaffold added so the dev server can load the new channels right away. After each addition the list repaints with the channel checked, until Done (or Esc) leaves the flow.
60
61
 
62
+ ### Add a connection
63
+
64
+ `/connect` shows a searchable list of MCP servers available through Vercel Connect. Already-authored connections remain checked. Logged-out users are directed to `/vc:login`. When the directory is not linked, selecting a server opens the same team and project flow used by `/model`, including creating a project or linking an existing one.
65
+
66
+ For a selected server, eve first tries to attach the provider's canonical connector. If that fails, choose an existing connector from a searchable list or create one with a specific name. The fallback stays scoped to the team selected by the linked project. A connector created by the current attempt is removed if attachment or connection-file patching fails. Successful setup writes `agent/connections/<name>.ts`, records the attached connector UID, installs the new dependency so the dev server can load it, then returns to the main prompt.
67
+
61
68
  ## Keyboard shortcuts
62
69
 
63
70
  Chat and freeform `ask_question` inputs behave like a shell line editor.
@@ -83,7 +90,7 @@ When the agent needs something from you, the TUI asks inline.
83
90
 
84
91
  - Tool approvals are a `y` or `n`.
85
92
  - Option questions let you pick with `↑` / `↓` and `Enter`, or you can compose a multi-line freeform answer.
86
- - If a tool needs an authorized [connection](../connections), the URL shows up right in the transcript, and the turn picks back up once you finish the flow.
93
+ - If a tool needs an authorized [connection](../connections), the URL shows up right in the transcript, and the turn picks back up once you finish the flow. The same local `eve dev` server owns the callback route, so keep that command running until the browser returns. `eve dev --url` connects to an already-running server and does not start a local callback host.
87
94
 
88
95
  ## Control what logs show
89
96
 
@@ -61,13 +61,13 @@ const agent = useEveAgent({
61
61
  });
62
62
  ```
63
63
 
64
- The default eve channel is fail-closed. With no `agent/channels/eve.ts` authored, eve registers `eveChannel({ auth: [localDev(), vercelOidc()] })`: `localDev()` opens the routes on localhost, `vercelOidc()` admits Vercel OIDC callers in production, and everything else gets a `401`. To run your app's own auth policy, add `agent/channels/eve.ts`:
64
+ The default eve channel is fail-closed. With no `agent/channels/eve.ts` authored, eve registers `eveChannel({ auth: [vercelOidc(), localDev()] })`: `vercelOidc()` gets the first chance to resolve a Vercel caller, `localDev()` opens the remaining localhost requests, and everything else gets a `401`. To run your app's own auth policy, add `agent/channels/eve.ts`:
65
65
 
66
66
  ```ts title="agent/channels/eve.ts"
67
67
  import { eveChannel } from "eve/channels/eve";
68
68
  import { localDev, vercelOidc } from "eve/channels/auth";
69
69
 
70
- export default eveChannel({ auth: [localDev(), vercelOidc()] });
70
+ export default eveChannel({ auth: [vercelOidc(), localDev()] });
71
71
  ```
72
72
 
73
73
  For a public demo, use `none()` (also from `eve/channels/auth`) to skip authentication. See [Channels](../../channels/overview) and [Auth & route protection](../auth-and-route-protection).
@@ -60,13 +60,13 @@ async function handleSubmit() {
60
60
  </template>
61
61
  ```
62
62
 
63
- The default eve channel is fail-closed. With no `agent/channels/eve.ts` authored, eve registers `eveChannel({ auth: [localDev(), vercelOidc()] })`: `localDev()` opens the routes on localhost, `vercelOidc()` admits Vercel OIDC callers in production, and everything else gets a `401`. To run your own auth policy, add `agent/channels/eve.ts`:
63
+ The default eve channel is fail-closed. With no `agent/channels/eve.ts` authored, eve registers `eveChannel({ auth: [vercelOidc(), localDev()] })`: `vercelOidc()` gets the first chance to resolve a Vercel caller, `localDev()` opens the remaining localhost requests, and everything else gets a `401`. To run your own auth policy, add `agent/channels/eve.ts`:
64
64
 
65
65
  ```ts title="agent/channels/eve.ts"
66
66
  import { eveChannel } from "eve/channels/eve";
67
67
  import { localDev, vercelOidc } from "eve/channels/auth";
68
68
 
69
- export default eveChannel({ auth: [localDev(), vercelOidc()] });
69
+ export default eveChannel({ auth: [vercelOidc(), localDev()] });
70
70
  ```
71
71
 
72
72
  For a public demo, use `none()` (also from `eve/channels/auth`) to skip authentication. See [Channels](../../channels/overview) and [Auth & route protection](../auth-and-route-protection).
@@ -69,13 +69,13 @@ With the plugin in `vite.config.ts`, components call [`useEveAgent`](./use-eve-a
69
69
  </form>
70
70
  ```
71
71
 
72
- The default eve channel is fail-closed. With no `agent/channels/eve.ts` authored, eve registers `eveChannel({ auth: [localDev(), vercelOidc()] })`: `localDev()` opens the routes on localhost, `vercelOidc()` admits Vercel OIDC callers in production, and everything else gets a `401`. To set your own auth policy, add `agent/channels/eve.ts`:
72
+ The default eve channel is fail-closed. With no `agent/channels/eve.ts` authored, eve registers `eveChannel({ auth: [vercelOidc(), localDev()] })`: `vercelOidc()` gets the first chance to resolve a Vercel caller, `localDev()` opens the remaining localhost requests, and everything else gets a `401`. To set your own auth policy, add `agent/channels/eve.ts`:
73
73
 
74
74
  ```ts title="agent/channels/eve.ts"
75
75
  import { eveChannel } from "eve/channels/eve";
76
76
  import { localDev, vercelOidc } from "eve/channels/auth";
77
77
 
78
- export default eveChannel({ auth: [localDev(), vercelOidc()] });
78
+ export default eveChannel({ auth: [vercelOidc(), localDev()] });
79
79
  ```
80
80
 
81
81
  For a public demo, use `none()` (also from `eve/channels/auth`) to skip authentication. See [Channels](../../channels/overview) and [Auth & route protection](../auth-and-route-protection).
@@ -100,7 +100,7 @@ Pass a bare URL as the only argument and the UI connects to that server instead
100
100
  | `-u, --url <url>` | string | none | Connect to an existing server URL instead of starting one |
101
101
  | `--no-ui` | flag | UI on | Start the server without an interactive UI |
102
102
  | `--name <name>` | string | app folder name | Title shown in the terminal UI |
103
- | `--input <text>` | string | none | Pre-fill the prompt input after launching the UI (editable, not auto-submitted) |
103
+ | `--input <text>` | string | none | Pre-fill the prompt input; bare local `/model` starts onboarding |
104
104
  | `--tools <mode>` | enum | `auto-collapsed` | Tool-call rendering: `full` \| `collapsed` \| `auto-collapsed` \| `hidden` |
105
105
  | `--reasoning <mode>` | enum | `full` | Reasoning rendering: `full` \| `collapsed` \| `auto-collapsed` \| `hidden` |
106
106
  | `--subagents <mode>` | enum | `auto-collapsed` | Subagent-section rendering: `full` \| `collapsed` \| `auto-collapsed` \| `hidden` |
@@ -109,6 +109,8 @@ Pass a bare URL as the only argument and the UI connects to that server instead
109
109
  | `--context-size <tokens>` | number | none | Model context window size, shown as a usage percentage |
110
110
  | `--logs <mode>` | enum | `stderr` | Server/agent logs to show: `all` \| `stderr` \| `sandbox` \| `none` |
111
111
 
112
+ A fresh `eve init` passes `--input /model`. That bare local input starts onboarding: the TUI installs the Vercel CLI if needed, asks you to log in if needed, then opens `/model`. Other input stays editable in the prompt.
113
+
112
114
  Local dev records the last ready URL per resolved app root in `.eve/dev-server-state.v1.json`. A second interactive `eve dev` reconnects only when that URL is loopback and healthy; each terminal UI creates a fresh client session while sharing the server process. A stale or malformed record is replaced when eve starts a new server. Passing `--host`, `--port`, or a `PORT` environment value skips reconnection and reports a healthy recorded server instead.
113
115
 
114
116
  Local dev keeps immutable runtime source snapshots under `.eve/dev-runtime/snapshots/` so in-flight sessions hold a consistent code revision while new prompts pick up rebuilds. On startup, `eve dev` prunes stale runtime snapshots and old local sandbox templates in the background. For manual cleanup, stop `eve dev` and delete `.eve/dev-runtime/snapshots/` or `.eve/sandbox-cache/local/templates/`.
@@ -113,7 +113,7 @@ const appAuth: AuthFn<Request> = async (request) => {
113
113
  };
114
114
 
115
115
  export default eveChannel({
116
- auth: [appAuth, localDev(), vercelOidc()],
116
+ auth: [appAuth, vercelOidc(), localDev()],
117
117
  });
118
118
  ```
119
119
 
@@ -71,7 +71,7 @@ const devTeam: AuthFn<Request> = () =>
71
71
  };
72
72
 
73
73
  export default eveChannel({
74
- auth: [devTeam, localDev(), vercelOidc(), placeholderAuth()],
74
+ auth: [devTeam, vercelOidc(), localDev(), placeholderAuth()],
75
75
  });
76
76
  ```
77
77
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eve",
3
- "version": "0.15.5",
3
+ "version": "0.16.0",
4
4
  "private": false,
5
5
  "description": "Filesystem-first framework for durable backend AI agents that run anywhere.",
6
6
  "keywords": [
@@ -269,7 +269,7 @@
269
269
  "devDependencies": {
270
270
  "@ai-sdk/anthropic": "^4.0.0",
271
271
  "@ai-sdk/google": "^4.0.0",
272
- "@ai-sdk/mcp": "^2.0.0",
272
+ "@ai-sdk/mcp": "^2.0.1",
273
273
  "@ai-sdk/openai": "^4.0.0",
274
274
  "@ai-sdk/otel": "^1.0.0",
275
275
  "@ai-sdk/provider": "^4.0.0",
@@ -1,5 +0,0 @@
1
- export interface DevelopmentRebuildHandle {
2
- flush(): Promise<void>;
3
- }
4
- export declare function registerDevelopmentRebuildHandle(appRoot: string, handle: DevelopmentRebuildHandle): () => void;
5
- export declare function flushDevelopmentRebuild(appRoot: string): Promise<void>;
@@ -1 +0,0 @@
1
- import{resolve}from"node:path";const developmentRebuildHandles=new Map;function registerDevelopmentRebuildHandle(e,t){let n=resolve(e);return developmentRebuildHandles.set(n,t),()=>{developmentRebuildHandles.get(n)===t&&developmentRebuildHandles.delete(n)}}async function flushDevelopmentRebuild(e){await developmentRebuildHandles.get(resolve(e))?.flush()}export{flushDevelopmentRebuild,registerDevelopmentRebuildHandle};