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.
- package/CHANGELOG.md +11 -0
- package/dist/src/cli/commands/init.js +1 -1
- package/dist/src/cli/dev/tui/agent-header.js +1 -1
- package/dist/src/cli/dev/tui/blocks.js +8 -8
- package/dist/src/cli/dev/tui/prompt-command-handler.js +1 -1
- package/dist/src/cli/dev/tui/prompt-commands.d.ts +1 -1
- package/dist/src/cli/dev/tui/prompt-commands.js +1 -1
- package/dist/src/cli/dev/tui/runner.d.ts +10 -3
- package/dist/src/cli/dev/tui/runner.js +1 -1
- package/dist/src/cli/dev/tui/setup-commands.d.ts +9 -1
- package/dist/src/cli/dev/tui/setup-commands.js +2 -2
- package/dist/src/cli/dev/tui/setup-flow.d.ts +8 -1
- package/dist/src/cli/dev/tui/setup-issues.d.ts +2 -14
- package/dist/src/cli/dev/tui/setup-issues.js +1 -1
- package/dist/src/cli/dev/tui/setup-panel.d.ts +14 -8
- package/dist/src/cli/dev/tui/setup-panel.js +3 -3
- package/dist/src/cli/dev/tui/terminal-renderer.js +6 -6
- package/dist/src/cli/dev/tui/tui-prompter.js +1 -1
- package/dist/src/cli/dev/tui/tui.d.ts +2 -3
- package/dist/src/cli/dev/tui/tui.js +1 -1
- package/dist/src/cli/dev/ui-options.d.ts +21 -0
- package/dist/src/cli/dev/ui-options.js +1 -0
- package/dist/src/cli/run.d.ts +6 -42
- package/dist/src/cli/run.js +2 -2
- package/dist/src/compiled/.vendor-stamp.json +1 -1
- package/dist/src/compiled/@ai-sdk/mcp/index.d.ts +71 -1
- package/dist/src/compiled/@ai-sdk/mcp/index.js +1 -1
- package/dist/src/harness/emission.d.ts +3 -3
- package/dist/src/harness/emission.js +1 -1
- package/dist/src/harness/stream-actions.d.ts +17 -0
- package/dist/src/harness/stream-actions.js +1 -0
- package/dist/src/internal/application/package.js +1 -1
- package/dist/src/internal/nitro/host/configure-nitro-routes.js +2 -2
- package/dist/src/internal/nitro/host/dev-authored-source-watcher.d.ts +1 -0
- package/dist/src/internal/nitro/host/dev-authored-source-watcher.js +1 -1
- package/dist/src/internal/nitro/host/start-development-server.d.ts +8 -0
- package/dist/src/internal/nitro/host/start-development-server.js +2 -2
- package/dist/src/internal/nitro/host.d.ts +1 -1
- package/dist/src/internal/nitro/host.js +1 -1
- package/dist/src/internal/nitro/routes/channel-dispatch.js +1 -1
- package/dist/src/internal/nitro/routes/dev-runtime-artifacts.d.ts +0 -3
- package/dist/src/internal/nitro/routes/dev-runtime-artifacts.js +1 -1
- package/dist/src/internal/nitro/routes/info.js +1 -1
- package/dist/src/internal/vercel/project-link.d.ts +10 -0
- package/dist/src/internal/vercel/project-link.js +1 -0
- package/dist/src/public/channels/auth.d.ts +26 -13
- package/dist/src/public/channels/auth.js +1 -1
- package/dist/src/runtime/agent/mock-model-adapter.d.ts +3 -2
- package/dist/src/runtime/agent/mock-model-adapter.js +1 -1
- package/dist/src/runtime/connections/principal.d.ts +2 -0
- package/dist/src/runtime/connections/principal.js +1 -1
- package/dist/src/runtime/connections/types.d.ts +4 -1
- package/dist/src/runtime/framework-channels/index.d.ts +1 -6
- package/dist/src/runtime/framework-channels/index.js +1 -1
- package/dist/src/runtime/governance/auth/oidc.js +1 -1
- package/dist/src/runtime/governance/auth/types.d.ts +14 -10
- package/dist/src/runtime/governance/auth/vercel-oidc-project.d.ts +12 -0
- package/dist/src/runtime/governance/auth/vercel-oidc-project.js +1 -0
- package/dist/src/services/dev-client/client-options.d.ts +5 -0
- package/dist/src/services/dev-client/client-options.js +1 -1
- package/dist/src/services/dev-client/request-headers.d.ts +8 -0
- package/dist/src/services/dev-client/request-headers.js +1 -1
- package/dist/src/services/dev-client/runtime-artifacts.d.ts +1 -0
- package/dist/src/services/dev-client/runtime-artifacts.js +1 -1
- package/dist/src/services/dev-client.d.ts +8 -0
- package/dist/src/services/dev-client.js +1 -1
- package/dist/src/setup/boxes/add-connections.d.ts +10 -8
- package/dist/src/setup/boxes/add-connections.js +1 -1
- package/dist/src/setup/boxes/resolve-provisioning.d.ts +1 -0
- package/dist/src/setup/boxes/resolve-provisioning.js +1 -1
- package/dist/src/setup/cli/channel-setup-prompter.d.ts +9 -2
- package/dist/src/setup/cli/channel-setup-prompter.js +1 -1
- package/dist/src/setup/cli/index.d.ts +1 -1
- package/dist/src/setup/cli/prompt-ui.d.ts +2 -0
- package/dist/src/setup/cli/select-state.js +1 -1
- package/dist/src/setup/connection-connector.d.ts +26 -52
- package/dist/src/setup/connection-connector.js +2 -1
- package/dist/src/setup/flows/channels.js +1 -1
- package/dist/src/setup/flows/connections.d.ts +36 -0
- package/dist/src/setup/flows/connections.js +3 -0
- package/dist/src/setup/flows/link.d.ts +1 -0
- package/dist/src/setup/flows/link.js +1 -1
- package/dist/src/setup/project-resolution.d.ts +2 -8
- package/dist/src/setup/project-resolution.js +1 -1
- package/dist/src/setup/prompter.d.ts +2 -0
- package/dist/src/setup/scaffold/connections/catalog.d.ts +10 -5
- package/dist/src/setup/scaffold/connections/catalog.js +1 -1
- package/dist/src/setup/scaffold/create/project.js +11 -11
- package/dist/src/setup/scaffold/create/web-template.d.ts +1 -1
- package/dist/src/setup/scaffold/create/web-template.js +2 -2
- package/dist/src/setup/scaffold/index.d.ts +1 -1
- package/dist/src/setup/scaffold/index.js +1 -1
- package/dist/src/setup/scaffold/update/connections.d.ts +6 -0
- package/dist/src/setup/scaffold/update/connections.js +3 -3
- package/docs/channels/eve.mdx +3 -3
- package/docs/concepts/sessions-runs-and-streaming.md +1 -1
- package/docs/guides/auth-and-route-protection.md +5 -5
- package/docs/guides/dev-tui.md +11 -4
- package/docs/guides/frontend/nextjs.mdx +2 -2
- package/docs/guides/frontend/nuxt.mdx +2 -2
- package/docs/guides/frontend/sveltekit.mdx +2 -2
- package/docs/reference/cli.md +3 -1
- package/docs/tutorial/ship-it.mdx +1 -1
- package/docs/tutorial/team-playbooks.mdx +1 -1
- package/package.json +2 -2
- package/dist/src/internal/nitro/host/dev-rebuild-registry.d.ts +0 -5
- 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: [
|
|
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(),
|
|
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: [
|
|
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 `[
|
|
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
|
|
package/docs/guides/dev-tui.md
CHANGED
|
@@ -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.
|
|
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
|
|
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: [
|
|
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: [
|
|
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: [
|
|
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: [
|
|
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: [
|
|
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: [
|
|
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).
|
package/docs/reference/cli.md
CHANGED
|
@@ -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
|
|
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/`.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eve",
|
|
3
|
-
"version": "0.
|
|
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.
|
|
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};
|