eve 0.7.0 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/docs/public/README.md +16 -11
  3. package/dist/docs/public/agent-config.md +9 -9
  4. package/dist/docs/public/channels/custom.mdx +4 -4
  5. package/dist/docs/public/channels/discord.mdx +1 -1
  6. package/dist/docs/public/channels/eve.mdx +9 -9
  7. package/dist/docs/public/channels/github.mdx +1 -1
  8. package/dist/docs/public/channels/overview.mdx +21 -15
  9. package/dist/docs/public/channels/slack.mdx +2 -2
  10. package/dist/docs/public/channels/teams.mdx +1 -1
  11. package/dist/docs/public/channels/telegram.mdx +1 -1
  12. package/dist/docs/public/channels/twilio.mdx +1 -1
  13. package/dist/docs/public/{advanced → concepts}/context-control.md +3 -3
  14. package/dist/docs/public/{advanced → concepts}/default-harness.md +3 -3
  15. package/dist/docs/public/{advanced → concepts}/execution-model-and-durability.md +3 -1
  16. package/dist/docs/public/concepts/meta.json +10 -0
  17. package/dist/docs/public/{advanced → concepts}/security-model.md +2 -2
  18. package/dist/docs/public/{advanced → concepts}/sessions-runs-and-streaming.md +7 -7
  19. package/dist/docs/public/connections.mdx +3 -3
  20. package/dist/docs/public/evals/cases.mdx +1 -1
  21. package/dist/docs/public/evals/overview.mdx +2 -2
  22. package/dist/docs/public/evals/running.mdx +1 -1
  23. package/dist/docs/public/evals/targets.mdx +1 -1
  24. package/dist/docs/public/getting-started.mdx +28 -35
  25. package/dist/docs/public/{advanced → guides}/auth-and-route-protection.md +2 -2
  26. package/dist/docs/public/{client → guides/client}/continuations.mdx +2 -2
  27. package/dist/docs/public/{client → guides/client}/messages.mdx +1 -1
  28. package/dist/docs/public/{client → guides/client}/meta.json +1 -1
  29. package/dist/docs/public/{client → guides/client}/output-schema.mdx +2 -2
  30. package/dist/docs/public/{client → guides/client}/overview.mdx +5 -5
  31. package/dist/docs/public/{client → guides/client}/streaming.mdx +1 -1
  32. package/dist/docs/public/{advanced → guides}/deployment.md +9 -1
  33. package/dist/docs/public/{advanced → guides}/dynamic-capabilities.md +1 -1
  34. package/dist/docs/public/{advanced → guides}/dynamic-workflows.md +1 -1
  35. package/dist/docs/public/{frontend → guides/frontend}/nextjs.mdx +3 -3
  36. package/dist/docs/public/{frontend → guides/frontend}/nuxt.mdx +3 -3
  37. package/dist/docs/public/{frontend → guides/frontend}/overview.mdx +6 -6
  38. package/dist/docs/public/{frontend → guides/frontend}/sveltekit.mdx +3 -3
  39. package/dist/docs/public/{frontend → guides/frontend}/use-eve-agent-svelte.mdx +2 -2
  40. package/dist/docs/public/{frontend → guides/frontend}/use-eve-agent-vue.mdx +2 -2
  41. package/dist/docs/public/{advanced → guides}/hooks.md +2 -2
  42. package/dist/docs/public/{advanced → guides}/instrumentation.md +2 -0
  43. package/dist/docs/public/{advanced → guides}/meta.json +8 -11
  44. package/dist/docs/public/{advanced → guides}/session-context.md +2 -2
  45. package/dist/docs/public/{advanced → guides}/state.md +1 -1
  46. package/dist/docs/public/instructions.mdx +2 -2
  47. package/dist/docs/public/introduction.md +5 -2
  48. package/dist/docs/public/meta.json +3 -3
  49. package/dist/docs/public/reference/cli.md +3 -3
  50. package/dist/docs/public/reference/meta.json +1 -1
  51. package/dist/docs/public/reference/project-layout.md +5 -1
  52. package/dist/docs/public/reference/typescript-api.md +23 -23
  53. package/dist/docs/public/sandbox.mdx +1 -1
  54. package/dist/docs/public/schedules.mdx +2 -2
  55. package/dist/docs/public/skills.mdx +3 -3
  56. package/dist/docs/public/subagents.mdx +3 -3
  57. package/dist/docs/public/tools.mdx +4 -4
  58. package/dist/docs/public/tutorial/connect-a-warehouse.mdx +2 -2
  59. package/dist/docs/public/tutorial/first-agent.mdx +1 -1
  60. package/dist/docs/public/tutorial/guard-the-spend.mdx +1 -1
  61. package/dist/docs/public/tutorial/how-it-runs.mdx +2 -2
  62. package/dist/docs/public/tutorial/meta.json +1 -1
  63. package/dist/docs/public/tutorial/query-sample-data.mdx +1 -1
  64. package/dist/docs/public/tutorial/remember-definitions.mdx +3 -3
  65. package/dist/docs/public/tutorial/run-analysis.mdx +1 -1
  66. package/dist/docs/public/tutorial/ship-it.mdx +4 -4
  67. package/dist/docs/public/tutorial/team-playbooks.mdx +3 -3
  68. package/dist/src/cli/dev/tui/prompt-command-handler.js +1 -1
  69. package/dist/src/cli/dev/tui/runner.d.ts +2 -2
  70. package/dist/src/cli/dev/tui/runner.js +1 -1
  71. package/dist/src/cli/dev/tui/tui.js +1 -1
  72. package/dist/src/compiled/.vendor-stamp.json +2 -2
  73. package/dist/src/compiled/@workflow/core/capabilities.d.ts +19 -1
  74. package/dist/src/compiled/@workflow/core/class-serialization.d.ts +32 -0
  75. package/dist/src/compiled/@workflow/core/create-hook.d.ts +37 -0
  76. package/dist/src/compiled/@workflow/core/global.d.ts +11 -1
  77. package/dist/src/compiled/@workflow/core/index.js +2 -2
  78. package/dist/src/compiled/@workflow/core/runtime/start.d.ts +6 -0
  79. package/dist/src/compiled/@workflow/core/runtime/suspension-handler.d.ts +15 -2
  80. package/dist/src/compiled/@workflow/core/runtime/wait-continuation.d.ts +84 -0
  81. package/dist/src/compiled/@workflow/core/runtime.js +27 -27
  82. package/dist/src/compiled/@workflow/core/serialization/types.d.ts +21 -0
  83. package/dist/src/compiled/@workflow/core/serialization.d.ts +72 -6
  84. package/dist/src/compiled/@workflow/core/symbols.d.ts +2 -0
  85. package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
  86. package/dist/src/compiled/@workflow/core/workflow/attribute-dispatcher.d.ts +6 -0
  87. package/dist/src/compiled/@workflow/core/workflow/set-attributes.d.ts +3 -4
  88. package/dist/src/compiled/@workflow/core/workflow.js +1 -1
  89. package/dist/src/compiled/@workflow/world/events.d.ts +48 -0
  90. package/dist/src/compiled/@workflow/world/index.d.ts +1 -1
  91. package/dist/src/compiled/@workflow/world/queue.d.ts +3 -0
  92. package/dist/src/compiled/@workflow/world/runs.d.ts +2 -0
  93. package/dist/src/compiled/@workflow/world/spec-version.d.ts +2 -1
  94. package/dist/src/compiled/_chunks/workflow/attribute-changes-DGVGRGfw.js +59 -0
  95. package/dist/src/compiled/_chunks/workflow/resume-hook-DMSadN9o.js +1 -0
  96. package/dist/src/compiled/_chunks/workflow/run-BRdn7zy_.js +1 -0
  97. package/dist/src/compiled/_chunks/workflow/sleep-CpXfoXLF.js +1 -0
  98. package/dist/src/execution/sandbox/bindings/vercel.d.ts +2 -6
  99. package/dist/src/execution/sandbox/bindings/vercel.js +1 -1
  100. package/dist/src/internal/application/package.js +1 -1
  101. package/dist/src/runtime/sandbox/keys.js +1 -1
  102. package/dist/src/setup/primitives/pm/pnpm.js +1 -1
  103. package/dist/src/setup/scaffold/create/add-to-project.js +1 -1
  104. package/dist/src/setup/scaffold/create/project.js +2 -2
  105. package/dist/src/setup/scaffold/update/channels.js +1 -1
  106. package/package.json +6 -6
  107. package/dist/docs/public/reference/faqs.md +0 -48
  108. package/dist/src/compiled/_chunks/workflow/resume-hook-CEAS3opc.js +0 -12
  109. package/dist/src/compiled/_chunks/workflow/sleep-Cup6vPoA.js +0 -1
  110. package/dist/src/compiled/_chunks/workflow/symbols-BUTtwS7j.js +0 -48
  111. /package/dist/docs/public/{advanced → guides}/dev-tui.md +0 -0
  112. /package/dist/docs/public/{frontend → guides/frontend}/meta.json +0 -0
  113. /package/dist/docs/public/{advanced → guides}/remote-agents.md +0 -0
@@ -5,14 +5,7 @@ description: "Install Eve, scaffold your first agent, give it a tool, and run it
5
5
 
6
6
  Eve is a filesystem-first framework for durable agents: you write capabilities under `agent/`, and Eve runs the model loop, persists every session, and serves the agent over HTTP and platform channels. This guide gets a small app running locally and walks the current request loop end to end: build, run, message, stream, and follow up.
7
7
 
8
- ## Prerequisites
9
-
10
- - Node `24.x`
11
- - npm (bundled with Node)
12
-
13
- You also need a model credential. Set the provider or gateway key your model string requires (gateway ids like `anthropic/claude-opus-4.8` route through the Vercel AI Gateway), or link a Vercel project that supplies one.
14
-
15
- ## Create Your Agent
8
+ ## Quick start
16
9
 
17
10
  Run `eve init` with `npx` before Eve is installed locally:
18
11
 
@@ -20,30 +13,30 @@ Run `eve init` with `npx` before Eve is installed locally:
20
13
  npx eve@latest init my-agent
21
14
  ```
22
15
 
23
- The command creates an npm-managed child directory, uses Eve's default model,
24
- installs dependencies, initializes Git, and starts the development server. Pass
25
- `--channel-web-nextjs` to add the Web Chat application. Stop the server before
26
- editing the generated agent. The command does not create a Vercel project or
27
- deploy.
16
+ The command creates an npm-managed child directory, uses Eve's default model, installs dependencies, initializes Git, and starts the development server — the interactive [terminal UI](./guides/dev-tui) opens; type a message and watch the model loop run. Pass `--channel-web-nextjs` to add the Web Chat application; every app ships the built-in HTTP channel (`agent/channels/eve.ts`) regardless. Stop the server before editing the generated agent. The command does not create a Vercel project or deploy.
17
+
18
+ ## Prerequisites
19
+
20
+ - Node `24.x`
21
+ - npm (bundled with Node)
22
+
23
+ You also need a model credential. Set the provider or gateway key your model string requires (gateway ids like `anthropic/claude-opus-4.8` route through the Vercel AI Gateway), or link a Vercel project that supplies one.
24
+
25
+ ## Manual installation
28
26
 
29
- The target can also be an existing project directory (`eve init .`): the
30
- project must have a `package.json`, the `agent/` files must not exist yet, and
31
- the missing `eve`, `ai`, and `zod` dependencies are added without touching
32
- anything else the project owns. Either way the final handoff runs the `eve dev`
33
- binary through the project's package manager, never the project's own `dev`
34
- script.
27
+ The quick start uses `eve init` for a guided scaffold. The target can also be an existing project directory (`eve init .`): the project must have a `package.json`, the `agent/` files must not exist yet, and the missing `eve`, `ai`, and `zod` dependencies are added without touching anything else the project owns. Either way the final handoff runs the `eve dev` binary through the project's package manager, never the project's own `dev` script.
35
28
 
36
- To add only the dependency to an existing app instead:
29
+ To wire Eve into an existing app yourself instead, add only the dependency and author the two files the runtime needs:
37
30
 
38
31
  ```bash
39
32
  npm install eve@latest
40
33
  ```
41
34
 
42
- ## What's In Your Project
35
+ ### Project files
43
36
 
44
- The scaffold writes two files; you add tools as you need them.
37
+ A minimal agent is two files; you add tools as you need them.
45
38
 
46
- `agent/instructions.md` (generated) is the always-on system prompt:
39
+ `agent/instructions.md` is the always-on system prompt:
47
40
 
48
41
  ```md
49
42
  You are a concise assistant. Use tools when they are available.
@@ -59,9 +52,9 @@ export default defineAgent({
59
52
  });
60
53
  ```
61
54
 
62
- Even at this size the agent can already do real work. The default harness gives it file, shell, web, and delegation tools out of the box. See [Default harness](./advanced/default-harness) for the full set and how to override or disable any of them.
55
+ Even at this size the agent can already do real work. The default harness gives it file, shell, web, and delegation tools out of the box. See [Default harness](./concepts/default-harness) for the full set and how to override or disable any of them.
63
56
 
64
- ### Add Your First Tool
57
+ ### Add your first tool
65
58
 
66
59
  Whatever you name the file becomes the tool name the model sees. Create `agent/tools/get_weather.ts`:
67
60
 
@@ -82,7 +75,7 @@ export default defineTool({
82
75
 
83
76
  Tools run in your app runtime with full `process.env`, not inside the [sandbox](./sandbox). More in [Tools](./tools).
84
77
 
85
- ## Run The App
78
+ ## Run the app
86
79
 
87
80
  From the app root:
88
81
 
@@ -95,13 +88,13 @@ Useful commands:
95
88
  - `eve info`: show the active routes and compiled artifacts
96
89
  - `eve build`: compile the agent into `.eve/` and build the host output
97
90
  - `eve start`: serve the built output
98
- - `eve dev`: start the local runtime and open the interactive [terminal UI](./advanced/dev-tui)
91
+ - `eve dev`: start the local runtime and open the interactive [terminal UI](./guides/dev-tui)
99
92
 
100
93
  In the dev TUI, type a message and watch it happen in order: the `get_weather` call, its result, then the reply.
101
94
 
102
- The same CLI can point at a deployment. `eve dev https://your-app.vercel.app` drives a deployed app, which is handy for preview and production smoke tests. See [Deployment](./advanced/deployment).
95
+ The same CLI can point at a deployment. `eve dev https://your-app.vercel.app` drives a deployed app, which is handy for preview and production smoke tests. See [Deployment](./guides/deployment).
103
96
 
104
- ## Send A Message
97
+ ## Send a message
105
98
 
106
99
  Every Eve app exposes the same stable HTTP API. Start a durable session:
107
100
 
@@ -116,7 +109,7 @@ The response comes back with two things you'll reuse:
116
109
  - a `continuationToken` in the JSON body, to resume this conversation
117
110
  - an `x-eve-session-id` header that identifies the run to stream
118
111
 
119
- ## Stream The Session
112
+ ## Stream the session
120
113
 
121
114
  Attach to the session stream:
122
115
 
@@ -148,7 +141,7 @@ The stream is NDJSON. Expect lifecycle events such as:
148
141
 
149
142
  `message.completed.data.finishReason` tells you whether assistant text is interim tool-call narration or a terminal reply, and `step.completed.data.usage` carries token usage. When a parent delegates to a subagent, `subagent.called.data.childSessionId` gives you the child session id, so you can subscribe to that child stream and watch the delegated work.
150
143
 
151
- ## Send A Follow-Up Message
144
+ ## Send a follow-up message
152
145
 
153
146
  When the session is waiting for the next user message, post a follow-up with the token:
154
147
 
@@ -158,7 +151,7 @@ curl -X POST http://127.0.0.1:3000/eve/v1/session/<sessionId> \
158
151
  -d '{"continuationToken":"<token>","message":"Now do Queens."}'
159
152
  ```
160
153
 
161
- See [Sessions, runs & streaming](./advanced/sessions-runs-and-streaming) for the full contract.
154
+ See [Sessions, runs & streaming](./concepts/sessions-runs-and-streaming) for the full contract.
162
155
 
163
156
  ## Setting up with a coding agent
164
157
 
@@ -182,7 +175,7 @@ Once `eve` is a dependency, the full docs are bundled in the package, so the age
182
175
 
183
176
  - [Instructions](./instructions) and [Tools](./tools): the core building blocks
184
177
  - [Channels](./channels/overview): reach the agent from Slack, Discord, or a web UI
185
- - [Frontend](./frontend/overview): browser chat with `useEveAgent`
186
- - [TypeScript Client](./client/overview): call the agent from scripts or server-side code
187
- - [Sessions, runs & streaming](./advanced/sessions-runs-and-streaming): the durable session model
178
+ - [Frontend](./guides/frontend/overview): browser chat with `useEveAgent`
179
+ - [TypeScript SDK](./guides/client/overview): call the agent from scripts or server-side code
180
+ - [Sessions, runs & streaming](./concepts/sessions-runs-and-streaming): the durable session model
188
181
  - [Build an agent](./tutorial/first-agent): the full end-to-end walkthrough
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Auth & route protection"
2
+ title: "Auth & Route Protection"
3
3
  description: "Secure your agent's HTTP routes with an ordered auth walk, verifier helpers, and connection OAuth via Vercel Connect."
4
4
  ---
5
5
 
@@ -267,6 +267,6 @@ By default the sign-in affordance title-cases the tool's path-derived name — a
267
267
 
268
268
  ## What to read next
269
269
 
270
- - [Security model](./security-model): trust boundaries and the pre-production checklist
270
+ - [Security model](../concepts/security-model): trust boundaries and the pre-production checklist
271
271
  - [Connections](../connections): connection auth shapes (`connect()` vs static token)
272
272
  - [Deployment](./deployment): where route-auth secrets live in production
@@ -122,5 +122,5 @@ for await (const event of session.stream({ startIndex: 0 })) {
122
122
  ## What to read next
123
123
 
124
124
  - [Streaming](./streaming): stream events and reconnect by index
125
- - [Sessions, runs & streaming](../advanced/sessions-runs-and-streaming): the raw HTTP contract
126
- - [Eve channel](../channels/eve): where continuation tokens come from
125
+ - [Sessions, runs & streaming](../../concepts/sessions-runs-and-streaming): the raw HTTP contract
126
+ - [Eve channel](../../channels/eve): where continuation tokens come from
@@ -149,4 +149,4 @@ Don't do both on the same response. Once the stream is consumed, the `ClientSess
149
149
 
150
150
  - [Continuations](./continuations): how the session cursor advances
151
151
  - [Streaming](./streaming): handle events live instead of using `result()`
152
- - [Tools](../tools): configure approvals and question prompts
152
+ - [Tools](../../tools): configure approvals and question prompts
@@ -1,4 +1,4 @@
1
1
  {
2
- "title": "TypeScript Client",
2
+ "title": "TypeScript SDK",
3
3
  "pages": ["overview", "messages", "continuations", "streaming", "output-schema"]
4
4
  }
@@ -126,10 +126,10 @@ const followUp = await followUpResponse.result();
126
126
  console.log(followUp.data); // undefined unless this turn also requested a schema
127
127
  ```
128
128
 
129
- For task-mode output that belongs to the agent or subagent definition itself, see [`agent.ts`](../agent-config#outputschema) and [Subagents](../subagents).
129
+ For task-mode output that belongs to the agent or subagent definition itself, see [`agent.ts`](../../agent-config#outputschema) and [Subagents](../../subagents).
130
130
 
131
131
  ## What to read next
132
132
 
133
133
  - [Messages](./messages): send turns with `send()`
134
134
  - [Streaming](./streaming): handle `result.completed` live
135
- - [`agent.ts`](../agent-config#outputschema): configured task-mode output
135
+ - [`agent.ts`](../../agent-config#outputschema): configured task-mode output
@@ -1,11 +1,11 @@
1
1
  ---
2
- title: "TypeScript Client"
2
+ title: "Overview"
3
3
  description: "Call an Eve agent from TypeScript with Client, sessions, auth, and health checks."
4
4
  ---
5
5
 
6
6
  The `eve/client` entrypoint is the typed client for Eve's default HTTP API. Use it from scripts, server-to-server integrations, tests, evals, backend jobs, or custom UIs that want the session protocol without hand-writing the POST and NDJSON stream loop.
7
7
 
8
- For browser chat UIs, start with [`useEveAgent`](../frontend/overview). For wire-level details, read [Sessions, runs & streaming](../advanced/sessions-runs-and-streaming). The client sits between those two: lower level than the frontend hooks, higher level than raw HTTP.
8
+ For browser chat UIs, start with [`useEveAgent`](../frontend/overview). For wire-level details, read [Sessions, runs & streaming](../../concepts/sessions-runs-and-streaming). The client sits between those two: lower level than the frontend hooks, higher level than raw HTTP.
9
9
 
10
10
  ## Create a client
11
11
 
@@ -34,7 +34,7 @@ Non-2xx responses throw `ClientError`, which carries the HTTP `status` and respo
34
34
 
35
35
  ## Authentication
36
36
 
37
- Pass `auth` when the [Eve channel](../channels/eve) route requires credentials:
37
+ Pass `auth` when the [Eve channel](../../channels/eve) route requires credentials:
38
38
 
39
39
  ```ts
40
40
  const client = new Client({
@@ -111,6 +111,6 @@ The next pages cover the session lifecycle:
111
111
 
112
112
  ## What to read next
113
113
 
114
- - [Eve channel](../channels/eve): the HTTP API this client calls
115
- - [Sessions, runs & streaming](../advanced/sessions-runs-and-streaming): the raw HTTP contract
114
+ - [Eve channel](../../channels/eve): the HTTP API this client calls
115
+ - [Sessions, runs & streaming](../../concepts/sessions-runs-and-streaming): the raw HTTP contract
116
116
  - [Frontend](../frontend/overview): browser UI with `useEveAgent`
@@ -74,7 +74,7 @@ The most common UI events are:
74
74
  | `session.completed` | Mark the conversation terminal. |
75
75
  | `session.failed` | Mark the conversation failed. |
76
76
 
77
- For the complete event table, see [Sessions, runs & streaming](../advanced/sessions-runs-and-streaming).
77
+ For the complete event table, see [Sessions, runs & streaming](../../concepts/sessions-runs-and-streaming).
78
78
 
79
79
  ## Reconnection
80
80
 
@@ -66,7 +66,7 @@ The deployed app serves the same stable health, session, and stream routes you'v
66
66
 
67
67
  ## How Eve sits behind a host framework
68
68
 
69
- You can deploy an Eve app on its own, or mount it inside a host web framework that owns the rest of the site (marketing pages, a dashboard, other API routes). The host keeps its own routing and serves Eve's routes through the framework integration. For mounting Eve in Next.js (`withEve`) and the other supported frameworks, see [Frontend](../frontend/nextjs). Either way, the agent surface and HTTP contract are identical.
69
+ You can deploy an Eve app on its own, or mount it inside a host web framework that owns the rest of the site (marketing pages, a dashboard, other API routes). The host keeps its own routing and serves Eve's routes through the framework integration. For mounting Eve in Next.js (`withEve`) and the other supported frameworks, see [Frontend](./frontend/nextjs). Either way, the agent surface and HTTP contract are identical.
70
70
 
71
71
  ## 7. Verify the deployment
72
72
 
@@ -98,6 +98,14 @@ eve dev https://<your-app>
98
98
 
99
99
  (Set `VERCEL_AUTOMATION_BYPASS_SECRET` locally first if the deployment uses preview protection.)
100
100
 
101
+ ## View runs in the dashboard
102
+
103
+ Once the agent is deployed, the platform auto-detects `eve` as the framework and surfaces an **Agent Runs** tab under your project's **Observability** view in the Vercel dashboard. From there you can browse sessions and drill into each conversation's trace.
104
+
105
+ > The Agent Runs tab is currently gated: your Vercel team needs the feature enabled before it appears. If you don't see it, reach out to your Vercel contact to get your team enabled.
106
+
107
+ Agent Runs is separate from the OpenTelemetry exporters configured in [`instrumentation.ts`](./instrumentation). Those still work and are the recommended path if you want spans in Braintrust, Datadog, or another third-party backend.
108
+
101
109
  ## Checklist
102
110
 
103
111
  - [ ] `eve build` succeeds and writes `.vercel/output`.
@@ -124,6 +124,6 @@ Both resolve before the prompt is assembled, so the model sees the right instruc
124
124
  ## What to read next
125
125
 
126
126
  - The static tool basics this builds on → [Tools](../tools)
127
- - The built-in tools and how to override them → [Default harness](./default-harness)
127
+ - The built-in tools and how to override them → [Default harness](../concepts/default-harness)
128
128
  - Authenticate a tool or connection to an external service → [Auth & route protection](./auth-and-route-protection)
129
129
  - Durable per-session memory for resolvers to read → [State](./state)
@@ -52,4 +52,4 @@ Code mode is the broader version: the model drives _all_ of an agent's tools (fi
52
52
 
53
53
  - Declare the subagents a workflow orchestrates → [Subagents](../subagents)
54
54
  - Call another deployment as one of those agents → [Remote agents](./remote-agents)
55
- - The `agent/tools/` opt-in mechanism → [Default harness](./default-harness)
55
+ - The `agent/tools/` opt-in mechanism → [Default harness](../concepts/default-harness)
@@ -56,7 +56,7 @@ const agent = useEveAgent({
56
56
  });
57
57
  ```
58
58
 
59
- Before deploying a user-facing app, add `agent/channels/eve.ts` so production requests run your app's auth policy. See [Channels](../channels/overview) and [Auth & route protection](../advanced/auth-and-route-protection).
59
+ Before deploying a user-facing app, add `agent/channels/eve.ts` so production requests run your app's auth policy. See [Channels](../../channels/overview) and [Auth & route protection](../auth-and-route-protection).
60
60
 
61
61
  ## Dev vs deploy topology
62
62
 
@@ -84,5 +84,5 @@ Before deploying a user-facing app, add `agent/channels/eve.ts` so production re
84
84
  ## What to read next
85
85
 
86
86
  - [Frontend overview](./overview): the `useEveAgent` API
87
- - [Auth & route protection](../advanced/auth-and-route-protection)
88
- - [Deployment](../advanced/deployment)
87
+ - [Auth & route protection](../auth-and-route-protection)
88
+ - [Deployment](../deployment)
@@ -52,7 +52,7 @@ async function handleSubmit() {
52
52
  </template>
53
53
  ```
54
54
 
55
- Out of the box the module gives Eve a framework default channel. When you want to pick the route auth policy yourself, add `agent/channels/eve.ts` and swap `none()` for a helper like `vercelOidc()` on protected apps. See [Channels](../channels/overview) and [Auth & route protection](../advanced/auth-and-route-protection).
55
+ Out of the box the module gives Eve a framework default channel. When you want to pick the route auth policy yourself, add `agent/channels/eve.ts` and swap `none()` for a helper like `vercelOidc()` on protected apps. See [Channels](../../channels/overview) and [Auth & route protection](../auth-and-route-protection).
56
56
 
57
57
  ## Dev vs deploy topology
58
58
 
@@ -78,5 +78,5 @@ Out of the box the module gives Eve a framework default channel. When you want t
78
78
  ## What to read next
79
79
 
80
80
  - [`useEveAgent` (Vue)](./use-eve-agent-vue): the composable API
81
- - [Auth & route protection](../advanced/auth-and-route-protection)
82
- - [Deployment](../advanced/deployment)
81
+ - [Auth & route protection](../auth-and-route-protection)
82
+ - [Deployment](../deployment)
@@ -7,14 +7,14 @@ The frontend helpers put a browser chat or agent UI on top of an Eve agent. `use
7
7
 
8
8
  ## The integration model
9
9
 
10
- A browser UI is just a client of the agent's HTTP routes (the [Eve channel](../channels/overview)). Two layers wire it up:
10
+ A browser UI is just a client of the agent's HTTP routes (the [Eve channel](../../channels/overview)). Two layers wire it up:
11
11
 
12
12
  - **The framework integration** mounts the Eve routes on your app's origin, so the browser never crosses a CORS boundary or reads an env var to find the agent. Pick yours: [Next.js](./nextjs) (`withEve`), [Nuxt](./nuxt) (the `eve/nuxt` module), or [SvelteKit](./sveltekit) (the `eveSvelteKit` Vite plugin). On any other stack the hook talks to same-origin `/eve/v1/*` routes directly, or you pass an explicit `host`.
13
13
  - **The hook** (`useEveAgent`) holds the session state, streaming, errors, and composer status. It defaults to same-origin Eve routes such as `/eve/v1/session`.
14
14
 
15
15
  For a guided setup, the [Guides](/docs/skills/eve-add-next) walk through the wiring step by step: [add a Next.js frontend to an existing Eve agent](/docs/skills/eve-add-next), or [add Eve to an existing Next.js app](/docs/skills/eve-add-agent).
16
16
 
17
- For scripts, server-to-server calls, evals, tests, or custom clients that do not need framework UI state, use the [TypeScript Client](../client/overview) directly.
17
+ For scripts, server-to-server calls, evals, tests, or custom clients that do not need framework UI state, use the [TypeScript SDK](../client/overview) directly.
18
18
 
19
19
  ## Basic chat (React)
20
20
 
@@ -100,7 +100,7 @@ Assistant text, reasoning, tool calls, and tool results stream into `data` as th
100
100
 
101
101
  ## Human-in-the-loop prompts
102
102
 
103
- Tools opt into approval with `needsApproval` on the [server side](../tools), and the model can also ask a question with `ask_question`. Either way the stream emits an `input.requested` event, and the pending request rides on a `dynamic-tool` part of the latest message at `part.toolMetadata?.eve?.inputRequest`. Read it, then answer through the same session with `send()`:
103
+ Tools opt into approval with `needsApproval` on the [server side](../../tools), and the model can also ask a question with `ask_question`. Either way the stream emits an `input.requested` event, and the pending request rides on a `dynamic-tool` part of the latest message at `part.toolMetadata?.eve?.inputRequest`. Read it, then answer through the same session with `send()`:
104
104
 
105
105
  ```tsx
106
106
  const request = agent.data.messages
@@ -228,7 +228,7 @@ const agent = useEveAgent({
228
228
 
229
229
  ## What to read next
230
230
 
231
- - [Sessions, runs & streaming](../advanced/sessions-runs-and-streaming): the event stream and session cursor
232
- - [Channels](../channels/overview): the HTTP routes the hook talks to
233
- - [TypeScript Client](../client/overview): the lower-level client underneath the frontend hooks
231
+ - [Sessions, runs & streaming](../../concepts/sessions-runs-and-streaming): the event stream and session cursor
232
+ - [Channels](../../channels/overview): the HTTP routes the hook talks to
233
+ - [TypeScript SDK](../client/overview): the lower-level client underneath the frontend hooks
234
234
  - [Guides](/docs/skills/eve-add-next): step-by-step guides for wiring Eve into Next.js
@@ -61,7 +61,7 @@ With the plugin in `vite.config.ts`, components call [`useEveAgent`](./use-eve-a
61
61
  </form>
62
62
  ```
63
63
 
64
- Out of the box the plugin uses a framework default channel. To set the route auth policy yourself, add `agent/channels/eve.ts` and swap `none()` for a helper like `vercelOidc()` on protected apps. See [Channels](../channels/overview) and [Auth & route protection](../advanced/auth-and-route-protection).
64
+ Out of the box the plugin uses a framework default channel. To set the route auth policy yourself, add `agent/channels/eve.ts` and swap `none()` for a helper like `vercelOidc()` on protected apps. See [Channels](../../channels/overview) and [Auth & route protection](../auth-and-route-protection).
65
65
 
66
66
  ## Dev vs deploy topology
67
67
 
@@ -90,5 +90,5 @@ Out of the box the plugin uses a framework default channel. To set the route aut
90
90
  ## What to read next
91
91
 
92
92
  - [`useEveAgent` (Svelte)](./use-eve-agent-svelte): the binding API
93
- - [Auth & route protection](../advanced/auth-and-route-protection)
94
- - [Deployment](../advanced/deployment)
93
+ - [Auth & route protection](../auth-and-route-protection)
94
+ - [Deployment](../deployment)
@@ -75,7 +75,7 @@ await agent.send({
75
75
 
76
76
  ## Human-in-the-loop prompts
77
77
 
78
- A tool opts into approval with `needsApproval` ([Tools](../tools)). When one fires, the pending request rides along on a `dynamic-tool` part of the latest message. Read it, then answer with `agent.send({ inputResponses })`. This find-and-answer flow is identical across frameworks, so the full example lives in the [Frontend overview](./overview#human-in-the-loop-prompts).
78
+ A tool opts into approval with `needsApproval` ([Tools](../../tools)). When one fires, the pending request rides along on a `dynamic-tool` part of the latest message. Read it, then answer with `agent.send({ inputResponses })`. This find-and-answer flow is identical across frameworks, so the full example lives in the [Frontend overview](./overview#human-in-the-loop-prompts).
79
79
 
80
80
  ## Stop, reset, and resume
81
81
 
@@ -108,4 +108,4 @@ const agent = useEveAgent({
108
108
 
109
109
  - [SvelteKit](./sveltekit): Vite plugin setup
110
110
  - [Frontend overview](./overview): the shared integration model
111
- - [Sessions, runs & streaming](../advanced/sessions-runs-and-streaming)
111
+ - [Sessions, runs & streaming](../../concepts/sessions-runs-and-streaming)
@@ -87,7 +87,7 @@ async function onFileChange(event: Event) {
87
87
 
88
88
  ## Human-in-the-loop prompts
89
89
 
90
- A tool opts into approval with `needsApproval` ([Tools](../tools)). When it triggers, the pending request shows up as a `dynamic-tool` part on the latest message. Read it and answer with `send({ inputResponses })`. That find-and-answer flow is the same across every framework, so the full example lives in the [Frontend overview](./overview#human-in-the-loop-prompts).
90
+ A tool opts into approval with `needsApproval` ([Tools](../../tools)). When it triggers, the pending request shows up as a `dynamic-tool` part on the latest message. Read it and answer with `send({ inputResponses })`. That find-and-answer flow is the same across every framework, so the full example lives in the [Frontend overview](./overview#human-in-the-loop-prompts).
91
91
 
92
92
  ## Stop, reset, and resume
93
93
 
@@ -120,4 +120,4 @@ const agent = useEveAgent({
120
120
 
121
121
  - [Nuxt](./nuxt): module setup
122
122
  - [Frontend overview](./overview): the shared integration model
123
- - [Sessions, runs & streaming](../advanced/sessions-runs-and-streaming)
123
+ - [Sessions, runs & streaming](../../concepts/sessions-runs-and-streaming)
@@ -149,6 +149,6 @@ Stream-event hooks and channel adapter event handlers are structurally identical
149
149
  ## What to read next
150
150
 
151
151
  - [Tools](../tools)
152
- - [Context control](./context-control)
152
+ - [Context control](../concepts/context-control)
153
153
  - [Session context](./session-context)
154
- - [Sessions, runs & streaming](./sessions-runs-and-streaming)
154
+ - [Sessions, runs & streaming](../concepts/sessions-runs-and-streaming)
@@ -134,6 +134,8 @@ Per-turn usage tags are written on each step of a turn, accumulating cumulative
134
134
 
135
135
  Tag writes are best-effort: a failure is logged once per process and then swallowed, so a broken tag emit never breaks the agent.
136
136
 
137
+ These tags power the **Agent Runs** tab in the Vercel dashboard. When you deploy on Vercel, the platform auto-detects `eve` as the framework and surfaces an Agent Runs view under your project's **Observability** tab, where you can browse sessions and drill into each conversation's trace — no `instrumentation.ts` required. The tab is currently gated per team; see [Deployment](./deployment#view-runs-in-the-dashboard) for enablement. Agent Runs is separate from the OpenTelemetry export above: use OTel when you want spans in Braintrust, Datadog, or another third-party backend.
138
+
137
139
  ## Debugging
138
140
 
139
141
  `eve info` is the fastest way to see what Eve actually picked up: the active tools, skills, subagents, schedules, routes, and discovery diagnostics. Eve also writes inspectable artifacts under `.eve/`, kept even when discovery hits errors:
@@ -1,20 +1,17 @@
1
1
  {
2
- "title": "Advanced",
2
+ "title": "Guides",
3
3
  "pages": [
4
- "default-harness",
5
- "context-control",
6
- "dynamic-capabilities",
7
- "dynamic-workflows",
4
+ "deployment",
5
+ "auth-and-route-protection",
6
+ "instrumentation",
8
7
  "hooks",
9
8
  "session-context",
10
9
  "state",
10
+ "dynamic-capabilities",
11
+ "dynamic-workflows",
11
12
  "remote-agents",
12
- "auth-and-route-protection",
13
- "security-model",
14
- "deployment",
15
- "instrumentation",
16
13
  "dev-tui",
17
- "execution-model-and-durability",
18
- "sessions-runs-and-streaming"
14
+ "frontend",
15
+ "client"
19
16
  ]
20
17
  }
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Session context"
2
+ title: "Session Context"
3
3
  description: "Runtime helpers: ctx.session, ctx.getSandbox, ctx.getSkill, and defineState."
4
4
  ---
5
5
 
@@ -144,6 +144,6 @@ This lifecycle is fully managed by the framework. Authored code only needs to us
144
144
  ## What to read next
145
145
 
146
146
  - [State](./state)
147
- - [Sessions, runs & streaming](./sessions-runs-and-streaming)
147
+ - [Sessions, runs & streaming](../concepts/sessions-runs-and-streaming)
148
148
  - [Subagents](../subagents)
149
149
  - [Skills](../skills)
@@ -58,5 +58,5 @@ Every [subagent](../subagents) starts with its own fresh state, whether it's a b
58
58
  ## What to read next
59
59
 
60
60
  - Read state inside dynamic resolvers → [Dynamic capabilities](./dynamic-capabilities)
61
- - How step durability works → [Execution model & durability](../advanced/execution-model-and-durability)
61
+ - How step durability works → [Execution model & durability](../concepts/execution-model-and-durability)
62
62
  - The `ctx` accessors available alongside state → [Tools](../tools)
@@ -49,10 +49,10 @@ Instructions never run code. When you need typed executable behavior, reach for
49
49
 
50
50
  ## Dynamic instructions
51
51
 
52
- Need the prompt resolved at runtime from session context (auth, tenant, channel)? Wrap `defineInstructions` in a `defineDynamic` resolver. See [Dynamic capabilities](./advanced/dynamic-capabilities).
52
+ Need the prompt resolved at runtime from session context (auth, tenant, channel)? Wrap `defineInstructions` in a `defineDynamic` resolver. See [Dynamic capabilities](./guides/dynamic-capabilities).
53
53
 
54
54
  ## What to read next
55
55
 
56
56
  - [Tools](./tools): typed actions, the next capability to add
57
- - [Context control](./advanced/context-control): all the levers for what the model sees
57
+ - [Context control](./concepts/context-control): all the levers for what the model sees
58
58
  - [Skills](./skills): on-demand procedures, the counterpart to always-on instructions
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  title: "Introduction"
3
- description: "Meet Eve and the small set of ideas behind an Eve agent."
3
+ description: "How an Eve agent is laid out as files, what runs when a message arrives, and the building blocks you add as it grows."
4
4
  ---
5
5
 
6
6
  Eve is a framework for building durable agents as ordinary files in a TypeScript project.
@@ -87,7 +87,7 @@ As the agent grows, each concern still has a predictable home:
87
87
  | Path | Add it when you need... |
88
88
  | ------------------------------- | ------------------------------------------------ |
89
89
  | [`connections/`](./connections) | Tools from external MCP servers |
90
- | [`hooks/`](./advanced/hooks) | Code that reacts to lifecycle and stream events |
90
+ | [`hooks/`](./guides/hooks) | Code that reacts to lifecycle and stream events |
91
91
  | [`sandbox/`](./sandbox) | A controlled workspace for files and commands |
92
92
  | [`subagents/`](./subagents) | Specialist agents the root agent can delegate to |
93
93
  | [`schedules/`](./schedules) | Recurring or scheduled work |
@@ -99,4 +99,7 @@ The result stays readable before it runs: the directory tells you what the agent
99
99
 
100
100
  - [Getting started](./getting-started): scaffold and run your first agent
101
101
  - [Tools](./tools): the typed actions your agent calls
102
+ - [Instructions](./instructions): the always-on system prompt that shapes behavior
103
+ - [Channels](./channels/overview): reach the agent from Slack, Discord, or a web UI
104
+ - [Connections](./connections): pull in tools from external MCP servers
102
105
  - [Project layout](./reference/project-layout): every authored slot under `agent/`
@@ -13,9 +13,9 @@
13
13
  "subagents",
14
14
  "schedules",
15
15
  "evals",
16
- "advanced",
17
- "frontend",
18
- "client",
16
+ "---",
17
+ "guides",
18
+ "concepts",
19
19
  "---",
20
20
  "reference",
21
21
  "tutorial"
@@ -136,10 +136,10 @@ See [Evals](../evals/overview) for authoring evals.
136
136
  4. `eve build` before shipping.
137
137
  5. `eve start` to smoke-test the built output locally.
138
138
 
139
- Related: [Project layout](./project-layout) · [instrumentation.ts](../advanced/instrumentation).
139
+ Related: [Project layout](./project-layout) · [instrumentation.ts](../guides/instrumentation).
140
140
 
141
141
  ## What to read next
142
142
 
143
143
  - [Project layout](./project-layout): what `eve info` discovers
144
- - [instrumentation.ts](../advanced/instrumentation): tracing and the error catalog
145
- - [Deployment](../advanced/deployment): `eve build` and `eve start` in production
144
+ - [instrumentation.ts](../guides/instrumentation): tracing and the error catalog
145
+ - [Deployment](../guides/deployment): `eve build` and `eve start` in production
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "title": "Reference",
3
- "pages": ["typescript-api", "cli", "project-layout", "faqs"]
3
+ "pages": ["typescript-api", "cli", "project-layout"]
4
4
  }
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Project layout"
2
+ title: "Project Layout"
3
3
  description: "Authored slots under agent/ and the path-derived naming rule."
4
4
  ---
5
5
 
@@ -104,6 +104,10 @@ my-agent/
104
104
 
105
105
  Prefer the nested layout. It keeps the app root separate from the authored surface.
106
106
 
107
+ ## Why didn't Eve discover my file?
108
+
109
+ Run `eve info`. It lists the discovered surface and prints discovery diagnostics. From there, check that the file sits in the right authored slot (per the slot table above) and that the root-vs-subagent boundary is valid. Eve also writes inspectable artifacts under `.eve/` — see the debugging artifacts in [instrumentation.ts](../guides/instrumentation) and the [CLI](./cli) reference.
110
+
107
111
  ## What to read next
108
112
 
109
113
  - [`agent.ts`](../agent-config): the runtime config at the root