eve 0.34.0 → 0.35.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 (261) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +3 -3
  3. package/dist/src/chunks/{use-eve-agent-BNdcle_M.js → use-eve-agent-COmP-H8R.js} +6 -3
  4. package/dist/src/chunks/{use-eve-agent-FJkEMXYk.js → use-eve-agent-CnppTEFk.js} +6 -3
  5. package/dist/src/cli/commands/info.js +1 -1
  6. package/dist/src/cli/commands/trace-detail.d.ts +3 -2
  7. package/dist/src/cli/commands/trace-detail.js +1 -1
  8. package/dist/src/cli/dev/tui/traces/trace-conversation.d.ts +4 -6
  9. package/dist/src/cli/dev/tui/traces/trace-conversation.js +1 -2
  10. package/dist/src/client/agent-info-schema.d.ts +12 -4
  11. package/dist/src/client/agent-info-schema.js +1 -1
  12. package/dist/src/client/index.d.ts +1 -1
  13. package/dist/src/compiled/.vendor-stamp.json +3 -3
  14. package/dist/src/compiled/@chat-adapter/slack/index.js +1 -1
  15. package/dist/src/compiled/@workflow/core/index.js +1 -1
  16. package/dist/src/compiled/@workflow/core/runtime.js +3 -3
  17. package/dist/src/compiled/@workflow/core/workflow.js +1 -1
  18. package/dist/src/compiled/@workflow/world/env-config.d.ts +1 -0
  19. package/dist/src/compiled/@workflow/world/events.d.ts +92 -35
  20. package/dist/src/compiled/@workflow/world/index.d.ts +3 -2
  21. package/dist/src/compiled/@workflow/world/interfaces.d.ts +25 -23
  22. package/dist/src/compiled/@workflow/world/queue.d.ts +4 -0
  23. package/dist/src/compiled/@workflow/world/runs.d.ts +4 -0
  24. package/dist/src/compiled/@workflow/world/slot-identity.d.ts +53 -0
  25. package/dist/src/compiled/@workflow/world/spec-version.d.ts +36 -1
  26. package/dist/src/compiled/@workflow/world/steps.d.ts +4 -0
  27. package/dist/src/compiled/@workflow/world/ulid.d.ts +6 -0
  28. package/dist/src/compiled/@workflow/world-local/index.js +4 -4
  29. package/dist/src/compiled/@workflow/world-vercel/index.js +13 -17
  30. package/dist/src/compiled/_chunks/workflow/{attribute-changes-6OqdYdi4.js → attribute-changes-BoH7JsWp.js} +3 -3
  31. package/dist/src/compiled/_chunks/workflow/dist-DlFv0aHY.js +40 -0
  32. package/dist/src/compiled/_chunks/workflow/env-config-DxamfI7T.js +1 -0
  33. package/dist/src/compiled/_chunks/workflow/frames-CTpeJYEQ.js +3 -0
  34. package/dist/src/compiled/_chunks/workflow/{functions-CXb61C6h.js → functions-CeeNvKsq.js} +1 -1
  35. package/dist/src/compiled/_chunks/workflow/resume-hook-BPQHjeY5.js +1 -0
  36. package/dist/src/compiled/_chunks/workflow/run-DQ5dOyjm.js +1 -0
  37. package/dist/src/compiled/_chunks/workflow/run-id-BdE0MZz9.js +1 -0
  38. package/dist/src/compiled/_chunks/workflow/sleep-CzdoBiqy.js +1 -0
  39. package/dist/src/compiled/_chunks/workflow/spec-version-DBUVfF_R.js +1 -0
  40. package/dist/src/compiled/_chunks/workflow/undici-CUIybhQ2.js +95 -0
  41. package/dist/src/compiled/_chunks/workflow/wait-until-DK2lnH6U.js +15 -0
  42. package/dist/src/compiled/_chunks/workflow/{wrapper-CDq65xJV.js → wrapper-CMGju7QA.js} +1 -1
  43. package/dist/src/compiled/_chunks/workflow/ws-transport-Csi6Cydc.js +1 -0
  44. package/dist/src/compiler/extension-compatibility.d.ts +10 -10
  45. package/dist/src/compiler/extension-compatibility.js +1 -1
  46. package/dist/src/compiler/manifest.d.ts +8 -8
  47. package/dist/src/compiler/manifest.js +1 -1
  48. package/dist/src/compiler/normalize-extension.d.ts +3 -3
  49. package/dist/src/compiler/normalize-extension.js +1 -1
  50. package/dist/src/compiler/normalize-instructions.d.ts +1 -1
  51. package/dist/src/compiler/normalize-instructions.js +1 -1
  52. package/dist/src/compiler/normalize-manifest.js +1 -3
  53. package/dist/src/context/dynamic-instruction-lifecycle.d.ts +5 -1
  54. package/dist/src/context/dynamic-instruction-lifecycle.js +1 -1
  55. package/dist/src/context/keys.d.ts +6 -2
  56. package/dist/src/context/keys.js +1 -1
  57. package/dist/src/discover/manifest.d.ts +1 -1
  58. package/dist/src/discover/manifest.js +1 -1
  59. package/dist/src/evals/index.d.ts +2 -2
  60. package/dist/src/evals/reporters/index.d.ts +1 -1
  61. package/dist/src/evals/runner/artifacts.js +1 -1
  62. package/dist/src/evals/runner/execute-eval.d.ts +5 -0
  63. package/dist/src/evals/runner/execute-eval.js +1 -1
  64. package/dist/src/evals/runner/execute-task.d.ts +3 -0
  65. package/dist/src/evals/runner/execute-task.js +1 -1
  66. package/dist/src/evals/runner/reporters/braintrust.js +1 -1
  67. package/dist/src/evals/runner/reporters/types.d.ts +28 -2
  68. package/dist/src/evals/runner/run-evals.js +1 -1
  69. package/dist/src/evals/session.d.ts +11 -2
  70. package/dist/src/evals/session.js +1 -1
  71. package/dist/src/evals/target.js +1 -1
  72. package/dist/src/evals/types.d.ts +10 -1
  73. package/dist/src/execution/node-step.js +1 -1
  74. package/dist/src/execution/session.js +1 -1
  75. package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
  76. package/dist/src/execution/workflow-steps.js +1 -1
  77. package/dist/src/execution/workflow-trace-context.d.ts +11 -0
  78. package/dist/src/execution/workflow-trace-context.js +1 -0
  79. package/dist/src/harness/ai-sdk-hook-bridge.d.ts +1 -1
  80. package/dist/src/harness/ai-sdk-hook-bridge.js +1 -1
  81. package/dist/src/harness/channel-delivery-instrumentation.d.ts +1 -1
  82. package/dist/src/harness/channel-delivery-instrumentation.js +1 -1
  83. package/dist/src/harness/emission.d.ts +2 -2
  84. package/dist/src/harness/emission.js +1 -1
  85. package/dist/src/harness/instrumentation/config.js +1 -0
  86. package/dist/src/harness/{instrumentation-content.d.ts → instrumentation/content.d.ts} +1 -1
  87. package/dist/src/harness/{instrumentation-dispatch.d.ts → instrumentation/dispatch.d.ts} +1 -1
  88. package/dist/src/harness/{instrumentation-dispatch.js → instrumentation/dispatch.js} +1 -1
  89. package/dist/src/harness/{instrumentation-lifecycle.d.ts → instrumentation/lifecycle.d.ts} +3 -6
  90. package/dist/src/harness/{instrumentation-lifecycle.js → instrumentation/lifecycle.js} +1 -1
  91. package/dist/src/harness/{instrumentation-native-events.d.ts → instrumentation/native-events.d.ts} +1 -1
  92. package/dist/src/harness/{instrumentation-native-events.js → instrumentation/native-events.js} +1 -1
  93. package/dist/src/harness/{instrumentation-providers.d.ts → instrumentation/providers.d.ts} +1 -1
  94. package/dist/src/harness/{instrumentation-providers.js → instrumentation/providers.js} +1 -1
  95. package/dist/src/harness/{instrumentation-runtime.d.ts → instrumentation/runtime.d.ts} +4 -2
  96. package/dist/src/harness/{instrumentation-state.d.ts → instrumentation/state.d.ts} +1 -1
  97. package/dist/src/harness/parent-lineage.d.ts +1 -1
  98. package/dist/src/harness/prepare-trace-context.d.ts +16 -0
  99. package/dist/src/harness/prepare-trace-context.js +1 -0
  100. package/dist/src/harness/tool-loop.js +2 -2
  101. package/dist/src/harness/types.d.ts +1 -1
  102. package/dist/src/internal/application/compiled-artifacts.js +2 -2
  103. package/dist/src/internal/application/package.js +1 -1
  104. package/dist/src/internal/authored-definition/core.d.ts +3 -3
  105. package/dist/src/internal/authored-definition/core.js +1 -1
  106. package/dist/src/internal/authored-package-boundary.js +1 -1
  107. package/dist/src/internal/helpers/markdown.js +1 -1
  108. package/dist/src/internal/instrumentation.d.ts +1 -1
  109. package/dist/src/internal/nitro/host/build-vercel-agent-summary.js +1 -1
  110. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response-from-manifest.js +1 -1
  111. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.d.ts +4 -3
  112. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
  113. package/dist/src/internal/nitro/routes/channel-request-instrumentation.js +1 -1
  114. package/dist/src/internal/vercel/project-link.d.ts +1 -1
  115. package/dist/src/internal/vercel/project-link.js +1 -1
  116. package/dist/src/internal/vercel-agent-summary.d.ts +10 -9
  117. package/dist/src/internal/vercel-agent-summary.js +1 -1
  118. package/dist/src/internal/workflow/development-world-client.js +1 -1
  119. package/dist/src/protocol/message.d.ts +15 -1
  120. package/dist/src/protocol/message.js +1 -1
  121. package/dist/src/public/channels/github/auth.d.ts +30 -0
  122. package/dist/src/public/channels/github/auth.js +2 -2
  123. package/dist/src/public/channels/github/defaults.d.ts +4 -4
  124. package/dist/src/public/channels/github/defaults.js +1 -1
  125. package/dist/src/public/channels/github/dispatch.d.ts +3 -2
  126. package/dist/src/public/channels/github/dispatch.js +1 -1
  127. package/dist/src/public/channels/github/githubChannel.d.ts +7 -2
  128. package/dist/src/public/channels/github/githubChannel.js +1 -1
  129. package/dist/src/public/channels/github/index.d.ts +1 -1
  130. package/dist/src/public/definitions/instructions.d.ts +14 -4
  131. package/dist/src/public/definitions/instructions.js +1 -1
  132. package/dist/src/public/definitions/tool.d.ts +5 -8
  133. package/dist/src/public/instructions/index.d.ts +1 -2
  134. package/dist/src/public/instructions/index.js +1 -1
  135. package/dist/src/public/instrumentation/index.d.ts +4 -3
  136. package/dist/src/public/instrumentation/otel.d.ts +5 -4
  137. package/dist/src/public/instrumentation/provider.d.ts +2 -2
  138. package/dist/src/runtime/agent/bootstrap.d.ts +2 -0
  139. package/dist/src/runtime/agent/bootstrap.js +1 -1
  140. package/dist/src/runtime/prompt/compose.d.ts +1 -1
  141. package/dist/src/runtime/prompt/compose.js +3 -1
  142. package/dist/src/runtime/resolve-agent.js +1 -1
  143. package/dist/src/runtime/types.d.ts +4 -3
  144. package/dist/src/setup/project-resolution.d.ts +3 -3
  145. package/dist/src/setup/scaffold/create/project.js +1 -1
  146. package/dist/src/setup/slack-connect-lifecycle.d.ts +0 -9
  147. package/dist/src/setup/slack-connect-lifecycle.js +1 -1
  148. package/dist/src/setup/slackbot.d.ts +2 -1
  149. package/dist/src/setup/slackbot.js +1 -1
  150. package/dist/src/shared/dynamic-tool-definition.d.ts +3 -4
  151. package/dist/src/shared/instructions-definition.d.ts +15 -11
  152. package/dist/src/svelte/index.js +1 -1
  153. package/dist/src/svelte/use-eve-agent.js +1 -1
  154. package/dist/src/tracing/agent-action-instrumentation.d.ts +1 -1
  155. package/dist/src/tracing/agent-action-instrumentation.js +1 -1
  156. package/dist/src/tracing/agent-approval-instrumentation.d.ts +1 -1
  157. package/dist/src/tracing/agent-channel-delivery-instrumentation.d.ts +1 -1
  158. package/dist/src/tracing/agent-channel-delivery-instrumentation.js +1 -1
  159. package/dist/src/tracing/agent-otel-provider.d.ts +4 -2
  160. package/dist/src/tracing/agent-otel-provider.js +2 -2
  161. package/dist/src/tracing/agent-otel-session-context.d.ts +17 -0
  162. package/dist/src/tracing/agent-otel-session-context.js +1 -0
  163. package/dist/src/tracing/agent-otel-usage.d.ts +1 -1
  164. package/dist/src/tracing/agent-tool-instrumentation.d.ts +1 -1
  165. package/dist/src/tracing/agent-tool-instrumentation.js +1 -1
  166. package/dist/src/tracing/agent-trace-state.d.ts +1 -1
  167. package/dist/src/tracing/install-instrumentation-runtime.d.ts +2 -2
  168. package/dist/src/tracing/install-instrumentation-runtime.js +1 -1
  169. package/dist/src/tracing/local-instrumentation-runtime.d.ts +1 -1
  170. package/dist/src/tracing/local-instrumentation-runtime.js +1 -1
  171. package/dist/src/tracing/local-traces.d.ts +3 -3
  172. package/dist/src/tracing/local-traces.js +1 -1
  173. package/dist/src/tracing/otel-declaration.d.ts +2 -2
  174. package/dist/src/tracing/otel-declaration.js +1 -1
  175. package/dist/src/vue/index.js +1 -1
  176. package/dist/src/vue/use-eve-agent.js +1 -1
  177. package/docs/README.md +18 -20
  178. package/docs/agent-config.md +5 -5
  179. package/docs/channels/eve.mdx +10 -56
  180. package/docs/channels/github.mdx +1 -1
  181. package/docs/channels/meta.json +1 -0
  182. package/docs/concepts/context-control.md +32 -56
  183. package/docs/concepts/default-harness.md +2 -2
  184. package/docs/concepts/execution-model-and-durability.mdx +4 -4
  185. package/docs/concepts/meta.json +3 -1
  186. package/docs/concepts/sessions-runs-and-streaming.md +22 -10
  187. package/docs/{guides → concepts}/state.md +3 -3
  188. package/docs/connections/mcp.mdx +6 -89
  189. package/docs/connections/meta.json +1 -0
  190. package/docs/connections/openapi.mdx +5 -69
  191. package/docs/connections/overview.mdx +29 -3
  192. package/docs/evals/meta.json +1 -0
  193. package/docs/evals/reporters.mdx +14 -4
  194. package/docs/extensions.md +1 -1
  195. package/docs/getting-started.mdx +175 -13
  196. package/docs/guides/auth-and-route-protection.md +3 -18
  197. package/docs/guides/client/meta.json +2 -1
  198. package/docs/guides/client/output-schema.mdx +2 -2
  199. package/docs/guides/client/overview.mdx +1 -1
  200. package/docs/guides/deployment/meta.json +1 -0
  201. package/docs/guides/deployment/overview.md +1 -1
  202. package/docs/guides/deployment/self-hosting.md +3 -3
  203. package/docs/guides/deployment/vercel.mdx +1 -1
  204. package/docs/guides/dev-tui.md +3 -13
  205. package/docs/guides/dynamic-capabilities.md +26 -4
  206. package/docs/guides/frontend/meta.json +2 -1
  207. package/docs/guides/frontend/nextjs.mdx +1 -10
  208. package/docs/guides/frontend/nuxt.mdx +1 -10
  209. package/docs/guides/frontend/overview.mdx +12 -3
  210. package/docs/guides/frontend/sveltekit.mdx +1 -10
  211. package/docs/guides/frontend/use-eve-agent-svelte.mdx +39 -126
  212. package/docs/guides/frontend/use-eve-agent-vue.mdx +40 -139
  213. package/docs/guides/instrumentation.md +15 -15
  214. package/docs/guides/meta.json +1 -5
  215. package/docs/guides/remote-agents.md +9 -9
  216. package/docs/guides/session-context.md +34 -103
  217. package/docs/install-integrations.mdx +1 -1
  218. package/docs/instructions.mdx +45 -12
  219. package/docs/meta.json +24 -13
  220. package/docs/patterns/dynamic-scheduling.md +1 -1
  221. package/docs/patterns/meta.json +1 -0
  222. package/docs/patterns/multi-tenant-approvals.md +1 -1
  223. package/docs/patterns/multi-tenant-auth.md +1 -1
  224. package/docs/patterns/multi-tenant-memory.md +4 -3
  225. package/docs/{guides → protocols}/acp.md +1 -1
  226. package/docs/protocols/meta.json +5 -0
  227. package/docs/reference/cli.md +34 -34
  228. package/docs/reference/meta.json +1 -1
  229. package/docs/reference/typescript-api.md +4 -2
  230. package/docs/{subagents.mdx → subagents/index.mdx} +2 -2
  231. package/docs/subagents/meta.json +5 -0
  232. package/docs/{guides/dynamic-workflows.md → subagents/workflow-tool.md} +6 -6
  233. package/docs/tools/human-in-the-loop.md +1 -1
  234. package/docs/tools/meta.json +1 -0
  235. package/docs/tools/overview.mdx +1 -1
  236. package/docs/tutorial/connect-a-warehouse.mdx +1 -1
  237. package/docs/tutorial/meta.json +1 -0
  238. package/docs/tutorial/remember-definitions.mdx +2 -2
  239. package/docs/tutorial/ship-it.mdx +2 -2
  240. package/package.json +4 -4
  241. package/dist/src/compiled/_chunks/workflow/dist-C8PhDW9B.js +0 -1
  242. package/dist/src/compiled/_chunks/workflow/functions-xMPAeWFr.js +0 -1
  243. package/dist/src/compiled/_chunks/workflow/node-Smb57EnG.js +0 -40
  244. package/dist/src/compiled/_chunks/workflow/resume-hook-BrduAuFX.js +0 -1
  245. package/dist/src/compiled/_chunks/workflow/run-CX7_sJnW.js +0 -1
  246. package/dist/src/compiled/_chunks/workflow/sleep-tsb2HjWK.js +0 -1
  247. package/dist/src/compiled/_chunks/workflow/undici-BNc_0O4m.js +0 -95
  248. package/dist/src/compiled/_chunks/workflow/wait-until-BYKVqrwc.js +0 -15
  249. package/dist/src/harness/instrumentation-config.js +0 -1
  250. package/docs/installation.mdx +0 -66
  251. package/docs/project-structure.mdx +0 -53
  252. package/docs/reference/project-layout.md +0 -123
  253. /package/dist/src/harness/{instrumentation-config.d.ts → instrumentation/config.d.ts} +0 -0
  254. /package/dist/src/harness/{instrumentation-content.js → instrumentation/content.js} +0 -0
  255. /package/dist/src/harness/{instrumentation-runtime-context.d.ts → instrumentation/runtime-context.d.ts} +0 -0
  256. /package/dist/src/harness/{instrumentation-runtime-context.js → instrumentation/runtime-context.js} +0 -0
  257. /package/dist/src/harness/{instrumentation-runtime.js → instrumentation/runtime.js} +0 -0
  258. /package/dist/src/harness/{instrumentation-setup-context.d.ts → instrumentation/setup-context.d.ts} +0 -0
  259. /package/dist/src/harness/{instrumentation-setup-context.js → instrumentation/setup-context.js} +0 -0
  260. /package/dist/src/harness/{instrumentation-state.js → instrumentation/state.js} +0 -0
  261. /package/docs/{guides → protocols}/ucp.mdx +0 -0
package/docs/README.md CHANGED
@@ -34,26 +34,24 @@ Casing convention:
34
34
  Read in this order:
35
35
 
36
36
  1. [Getting Started](./getting-started.mdx)
37
- 2. [Installation](./installation.mdx)
38
- 3. [Project Structure](./project-structure.mdx)
39
- 4. [Project Layout](./reference/project-layout.md)
40
- 5. [`agent.ts`](./agent-config.md)
41
- 6. [TypeScript API](./reference/typescript-api.md)
42
- 7. [Context Control](./concepts/context-control.md)
43
- 8. [Skills](./skills.mdx)
44
- 9. [Tools](./tools/overview.mdx)
45
- 10. [Connections](./connections/overview.mdx)
46
- 11. [Sandboxes](./sandbox.mdx)
47
- 12. [Channels](./channels/overview.mdx)
48
- 13. [Session Context](./reference/typescript-api.md)
49
- 14. [Sessions And Streaming](./concepts/sessions-runs-and-streaming.md)
50
- 15. [TypeScript SDK](./guides/client/overview.mdx)
51
- 16. [Subagents](./subagents.mdx)
52
- 17. [Schedules](./schedules.mdx)
53
- 18. [Evals](./evals/overview.mdx)
54
- 19. [Auth And Route Protection](./guides/auth-and-route-protection.md)
55
- 20. [Vercel Deployment](./guides/deployment/overview.md)
56
- 21. [CLI, Build, And Debugging](./reference/cli.md)
37
+ 2. [Tutorial](./tutorial/first-agent.mdx)
38
+ 3. [Agents](./agent-config.md)
39
+ 4. [TypeScript API Reference](./reference/typescript-api.md)
40
+ 5. [Context Control](./concepts/context-control.md)
41
+ 6. [Skills](./skills.mdx)
42
+ 7. [Tools](./tools/overview.mdx)
43
+ 8. [Connections](./connections/overview.mdx)
44
+ 9. [Sandboxes](./sandbox.mdx)
45
+ 10. [Channels](./channels/overview.mdx)
46
+ 11. [Session Context](./guides/session-context.md)
47
+ 12. [Sessions and Streaming](./concepts/sessions-runs-and-streaming.md)
48
+ 13. [Client SDK](./guides/client/overview.mdx)
49
+ 14. [Subagents](./subagents/index.mdx)
50
+ 15. [Schedules](./schedules.mdx)
51
+ 16. [Evals](./evals/overview.mdx)
52
+ 17. [Authentication](./guides/auth-and-route-protection.md)
53
+ 18. [Deployment](./guides/deployment/overview.md)
54
+ 19. [CLI](./reference/cli.md)
57
55
 
58
56
  ## The public mental model
59
57
 
@@ -1,9 +1,9 @@
1
1
  ---
2
- title: "agent.ts"
3
- description: "Set the agent's runtime config in agent.ts with defineAgent, including the model, reasoning effort, and compaction."
2
+ title: "Agents"
3
+ description: "Configure an eve agent's model, reasoning effort, compaction, limits, and runtime behavior in agent.ts."
4
4
  ---
5
5
 
6
- An agent's `agent.ts` calls `defineAgent` (from `eve`) to set its runtime config.
6
+ An eve app has one root agent assembled from the files under `agent/`. Its optional `agent.ts` calls `defineAgent` (from `eve`) when you need to configure the model or other runtime behavior. Declared [subagents](./subagents) have their own `agent.ts` and capabilities; this page covers the configuration shared by root agents and subagents.
7
7
 
8
8
  ## Set the model
9
9
 
@@ -229,7 +229,7 @@ installed package must stay external in hosted output, list it in
229
229
 
230
230
  ## Other defineAgent fields
231
231
 
232
- `defineAgent` takes a few more fields, all optional. For the exported types, see the [TypeScript API](./reference/typescript-api).
232
+ `defineAgent` takes a few more fields, all optional. For the exported types, see the [TypeScript API Reference](./reference/typescript-api).
233
233
 
234
234
  | Field | Type | Default | Description |
235
235
  | -------------- | --------------------------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -257,5 +257,5 @@ During `eve dev`, ordinary dependencies are bundled into each retained runtime g
257
257
  ## What to read next
258
258
 
259
259
  - [Default harness](./concepts/default-harness) for the loop and built-in tools this config drives
260
- - [TypeScript API](./reference/typescript-api) for every `defineAgent` field and type
260
+ - [TypeScript API Reference](./reference/typescript-api) for every `defineAgent` field and type
261
261
  - [Subagents](./subagents) for the `description` requirement and child-agent config
@@ -36,15 +36,13 @@ The session routes use only durable session IDs. Create a session explicitly, th
36
36
 
37
37
  ### Start and continue a session
38
38
 
39
+ Start a session with an initial message, then use the returned `sessionId` for every follow-up and control operation:
40
+
39
41
  ```bash
40
42
  curl -X POST https://<deployment>/eve/v1/session \
41
43
  -H "Content-Type: application/json" \
42
44
  -d '{"message":"What is the weather in Paris?"}'
43
45
  # {"ok":true,"sessionId":"wrun_A","status":"accepted"}
44
-
45
- curl -X POST https://<deployment>/eve/v1/session/wrun_A \
46
- -H "Content-Type: application/json" \
47
- -d '{"message":"How about tomorrow?"}'
48
46
  ```
49
47
 
50
48
  The first request requires `message`. A follow-up request accepts exactly one of
@@ -65,69 +63,25 @@ creates or follows a replacement session.
65
63
 
66
64
  ### Stream events
67
65
 
68
- Stream responses are newline-delimited JSON (`application/x-ndjson; charset=utf-8`), one event object per line:
69
-
70
- ```bash
71
- curl -N https://<deployment>/eve/v1/session/wrun_A/stream
72
- # {"type":"turn.started",...}
73
- # {"type":"message.appended","data":{"messageDelta":"It is ",...}}
74
- # {"type":"message.completed",...}
75
- ```
66
+ Stream a session as newline-delimited JSON from `GET /eve/v1/session/:sessionId/stream`. The [session protocol](../concepts/sessions-runs-and-streaming#stream-a-session) defines the event set, envelopes, cursors, and reconnection behavior.
76
67
 
77
68
  ### Cancel a turn
78
69
 
79
- Cancel a session's in-flight turn with an empty body, or scope the cancel to the turn you observed by passing the `turnId` stamped on that turn's stream events:
70
+ Post to `/eve/v1/session/:sessionId/cancel` to request cancellation of the active turn. You can include the observed `turnId` to keep a late request from cancelling a newer turn. Cancellation is asynchronous; confirm it on the stream as `turn.cancelled` followed by `session.waiting`.
80
71
 
81
- ```bash
82
- curl -X POST https://<deployment>/eve/v1/session/wrun_A/cancel
83
- # {"ok":true,"sessionId":"wrun_A","status":"accepted"}
84
- ```
85
-
86
- Cancellation is asynchronous: `"accepted"` means the live session durably queued the request. Confirm an actual cancellation on the stream as `turn.cancelled` followed by `session.waiting`—never as a failure. Active local and remote subagents are cancelled recursively before the parent settles. Content emitted before cancellation stays on the event stream, while durable model history keeps only content that had already settled. The session accepts the next message normally.
87
-
88
- An accepted cancellation returns HTTP `202` with `sessionId`. An inactive target
89
- returns HTTP `200` with `{"ok":true,"status":"no_active_turn"}`.
90
-
91
- A live session also returns `"accepted"` when it is already parked; the driver consumes that late or duplicate cancel as a no-op. An unknown or terminal session returns `"no_active_turn"`. A `turnId` naming any other turn is likewise accepted and consumed as a no-op, so a guarded cancel racing a turn boundary cannot stop a turn the caller never saw.
72
+ See [Cancel the in-flight turn](../concepts/sessions-runs-and-streaming#cancel-the-in-flight-turn) for response statuses, HTTP status codes, subagent cancellation, and race behavior.
92
73
 
93
74
  ### Clear context
94
75
 
95
- Clear one session's model-message history without replacing the session:
96
-
97
- ```bash
98
- curl -X POST https://<deployment>/eve/v1/session/wrun_A/clear
99
- # {"ok":true,"sessionId":"wrun_A","status":"accepted"}
100
- ```
101
-
102
- An accepted clear emits `context.cleared` followed by `session.waiting`. The next message uses the same session without prior model messages; the system prompt, tools, skills, durable state, limits, and session-scoped sandbox remain.
76
+ Post to `/eve/v1/session/:sessionId/clear` to remove model-message history while preserving the session ID, system prompt, tools, skills, durable state, limits, and sandbox. See [Compact, clear, and reset](../concepts/sessions-runs-and-streaming#compact-clear-and-reset).
103
77
 
104
78
  ### Compact context
105
79
 
106
- Compact one session's context without sending a message:
107
-
108
- ```bash
109
- curl -X POST https://<deployment>/eve/v1/session/wrun_A/compact
110
- # {"ok":true,"sessionId":"wrun_A","status":"accepted"}
111
- ```
112
-
113
- Compaction is asynchronous. A successful operation emits `compaction.requested` and `compaction.completed`, then returns through `session.waiting`. When a turn is active, compaction waits for it to settle. If summarization fails, the session still returns to `session.waiting` with its previous history.
80
+ Post to `/eve/v1/session/:sessionId/compact` to summarize context without sending a user message. The operation waits for an active turn to settle and reports its result on the stream. See [Compact, clear, and reset](../concepts/sessions-runs-and-streaming#compact-clear-and-reset).
114
81
 
115
82
  ### Reset a session
116
83
 
117
- Reset terminally retires the exact session ID:
118
-
119
- ```bash
120
- curl -X POST https://<deployment>/eve/v1/session/wrun_A/reset \
121
- -H "Content-Type: application/json" \
122
- -d '{"reason":"Start over"}'
123
- # {"ok":true,"previousSessionId":"wrun_A","status":"reset"}
124
- ```
125
-
126
- After reset, the old ID cannot accept another message. Start a replacement explicitly with `POST /eve/v1/session`.
127
-
128
- The control routes never create sessions. `compact`, `clear`, and `reset` return `"no_active_session"` when the ID is already inactive. Session message and control request/response bodies do not accept or return continuation tokens. For compatibility, the streamed `session.waiting` event retains `data.continuationToken`: it is the channel-local token for a channel-addressed session and the immutable session ID for an ID-only session. New clients should continue through their fixed session handle instead of reading this field.
129
-
130
- See [Sessions, runs & streaming](../concepts/sessions-runs-and-streaming) for the complete event set, operation results, and cursor behavior.
84
+ Post to `/eve/v1/session/:sessionId/reset` to terminally retire that session. Reset never replaces the ID automatically; create a new session explicitly for a fresh conversation. See [Compact, clear, and reset](../concepts/sessions-runs-and-streaming#compact-clear-and-reset).
131
85
 
132
86
  ## CORS
133
87
 
@@ -199,11 +153,11 @@ always dispatches and therefore always produces or continues a session.
199
153
 
200
154
  The browser side of this API lives in the [Frontend](../guides/frontend/overview) docs, where `useEveAgent` drives the eve channel from React UI.
201
155
 
202
- For scripts, server-to-server calls, evals, tests, and custom clients, use the [TypeScript SDK](../guides/client/overview). It wraps the ID-addressed session routes, stream cursor, and reconnect loop.
156
+ For scripts, server-to-server calls, evals, tests, and custom clients, use the [Client SDK](../guides/client/overview). It wraps the ID-addressed session routes, stream cursor, and reconnect loop.
203
157
 
204
158
  ## What to read next
205
159
 
206
160
  - [Frontend](../guides/frontend/overview): drive the eve channel from browser UI with `useEveAgent`
207
- - [TypeScript SDK](../guides/client/overview): call the eve channel from TypeScript
161
+ - [Client SDK](../guides/client/overview): call the eve channel from TypeScript
208
162
  - [Auth & route protection](../guides/auth-and-route-protection): the route auth policy
209
163
  - [Sessions, runs & streaming](../concepts/sessions-runs-and-streaming): the routes this channel exposes
@@ -58,7 +58,7 @@ GITHUB_WEBHOOK_SECRET=... # verifies the webhook signature
58
58
  GITHUB_APP_SLUG=... # supplies botName when it is not set in config
59
59
  ```
60
60
 
61
- `appId`/`privateKey`/`webhookSecret` also take a lazy resolver function if you'd rather fetch them on demand.
61
+ `appId`/`privateKey`/`webhookSecret` also take a lazy resolver function if you'd rather fetch them on demand, and so does `botName`: it resolves on first use inside request handling, caches on success, and retries on the next event after a failure, so a resolver that depends on request-scoped credentials works in production. When `botName` is not configured, the channel falls back to the credentials' `appSlug`, then to `GITHUB_APP_SLUG`.
62
62
 
63
63
  Point the GitHub App webhook URL at `https://<deployment>/eve/v1/github`. For comment-invoked turns, subscribe to `issue_comment` and `pull_request_review_comment`; add `issues`, `pull_request`, `check_suite`, `check_run`, or `workflow_run` if you wire up their opt-in hooks. After installing the App for the repository, a new comment that includes `@botName` starts a turn. This is a text invocation token, not a GitHub-native mention: GitHub may display the App as `botName[bot]`, but it may not autocomplete or link `@botName`.
64
64
 
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "title": "Channels",
3
+ "defaultOpen": false,
3
4
  "pages": [
4
5
  "overview",
5
6
  "eve",
@@ -1,92 +1,68 @@
1
1
  ---
2
2
  title: "Context Control"
3
- description: "Control what an eve agent's model sees and when, across instructions, skills, the workspace, and subagents."
3
+ description: "Choose what an eve agent's model sees and when, across instructions, skills, tools, the workspace, and subagents."
4
4
  ---
5
5
 
6
- eve gives you a few levers for controlling what the model sees and when. `instructions.md` (or `instructions.ts`) is always on, `skills/` are available but loaded on demand, and the workspace and sandbox are visible through tools rather than pasted into the prompt.
6
+ Control context by putting information in the narrowest surface that needs it. Keep permanent rules in instructions, load optional procedures as skills, let the model inspect runtime files through sandbox tools, and delegate specialist work to a subagent.
7
7
 
8
- ## Base identity with `instructions.md`
9
-
10
- Use `instructions.md` for the core contract of the agent.
11
-
12
- ```md
13
- You are a careful support assistant. Be concise, verify facts before replying, and explain when you
14
- used a tool.
15
- ```
16
-
17
- Keep this file focused on stable behavior that should apply on every turn.
8
+ ## Recommended context layout
18
9
 
19
- ## Compose instructions in TypeScript with `instructions.ts`
10
+ | Need | Use | What the model sees |
11
+ | ---------------------------------------------------- | ------------------------------------------------------ | -------------------------------------------------------------------------------- |
12
+ | Permanent identity, rules, or constraints | System-role [instructions](../instructions) | System context on every model call |
13
+ | Durable application or retrieved context | User-role [instructions](../instructions) | A message added to conversation history at its lifecycle boundary |
14
+ | A procedure needed only for some tasks | A [skill](../skills) | Its description until the model loads the full skill |
15
+ | A typed action or external operation | A [tool](../tools) or [connection](../connections) | The callable schema and the result of each call |
16
+ | Files or command execution | The [sandbox workspace](../sandbox) | A workspace hint, then files and command output the model requests through tools |
17
+ | A specialist with a separate prompt and capabilities | A [subagent](../subagents) | Only the subagent's final result in the parent context |
18
+ | Instructions or capabilities that vary by caller | A [dynamic capability](../guides/dynamic-capabilities) | The values resolved for the active session |
20
19
 
21
- To build the instructions prompt from typed helpers, lib code, or environment-derived values, author it as a module instead of markdown.
20
+ ## Base identity with `instructions.md`
22
21
 
23
- ```ts title="agent/instructions.ts"
24
- import { defineInstructions } from "eve/instructions";
25
- import { buildInstructionsPrompt } from "./lib/prompts";
22
+ Use system-role instructions for stable behavior that should apply throughout a session, such as the agent's role, tone, and standing constraints. Markdown is the default. Keep instructions short enough to justify including them on every model call.
26
23
 
27
- export default defineInstructions({
28
- markdown: buildInstructionsPrompt(),
29
- });
30
- ```
24
+ ### Compose instructions in TypeScript with `instructions.ts`
31
25
 
32
- Module-backed instructions run once at build time. eve captures the resulting markdown into the compiled manifest, so the runtime serves the same prompt every session without re-running the module.
26
+ Use `instructions.ts` when you need typed helpers, build-time composition, or a user-role message. User-role instructions become ordinary durable history rather than system context. See [Instructions](../instructions) for both formats, directory composition, and runtime resolution.
33
27
 
34
28
  ## Load procedures on demand with `skills/`
35
29
 
36
- Skills stay out of the always-on prompt by default, which keeps rich procedures available without bloating every turn. eve advertises the available skills and adds a framework-owned `load_skill` tool. When the request clearly matches a skill description, or the user names a skill explicitly, the model activates that skill, and eve appends the skill's markdown to the active instructions for later turn work.
30
+ Use skills for optional procedures that would otherwise make the always-on prompt unnecessarily large. eve advertises each skill's description and loads the full instructions only when the model calls `load_skill`.
37
31
 
38
32
  ### Flat skill
39
33
 
40
- ```md title="agent/skills/get-weather.md"
41
- Use the weather tool before answering forecast or temperature questions.
42
- ```
34
+ Use a markdown file for a self-contained procedure.
43
35
 
44
36
  ### Packaged skill
45
37
 
46
- ```md title="agent/skills/research/SKILL.md"
47
- ---
48
- description: Research unfamiliar topics before answering with confidence.
49
- ---
50
-
51
- When the task is novel or ambiguous, gather evidence first, then answer with the key facts and the
52
- remaining uncertainty.
53
- ```
54
-
55
- Packaged skills are useful when you also want sibling files such as `references/`, `assets/`, or `scripts/` under the same skill directory. Those files are available under the runtime skill root, normally `$HOME/.agents/skills/<skill>/`. Relative references inside a `SKILL.md` resolve from that specific skill directory, so `references/checklist.md` means `$HOME/.agents/skills/<skill>/references/checklist.md` unless eve has fallen back to `/workspace/skills/<skill>/`.
56
-
57
- See [Skills](../skills) for the full authoring model and install notes.
38
+ Use a directory with `SKILL.md` when the procedure also needs references, assets, or scripts. See [Skills](../skills) for both formats, installation, runtime files, and dynamic skills.
58
39
 
59
40
  ## Put runtime files in the workspace, not the prompt
60
41
 
61
- eve does not inline the entire authored surface into the prompt. Instead, it gives the model a shallow workspace hint, a separate skill-root hint, and runtime tools to inspect deeper when needed. Skill package files are outside `/workspace` in the normal case, and the model inspects them with the shared `bash` tool, which keeps prompts smaller and makes file and command work explicit.
42
+ Do not paste a file tree or large working dataset into the prompt. Seed files into the sandbox workspace and let the model inspect them through `bash`, `read_file`, `glob`, and the other sandbox-backed tools. Skill package files use a separate runtime skill directory.
62
43
 
63
- See [Sandbox](../sandbox) for the workspace and sandbox model.
44
+ See [Sandbox](../sandbox) for workspace seeding, runtime access, backends, and lifecycle behavior.
64
45
 
65
46
  ## Delegate to a specialist with a subagent
66
47
 
67
- If a task deserves its own prompt and tool surface, use a local subagent instead of overloading the root agent. Subagents are a context-control lever too. They get their own `instructions.md`, tools, and sandbox, and they run inside their own delegated context instead of extending the root agent inline.
48
+ Use a subagent when work needs its own instructions, tools, skills, state, or sandbox. The child runs in a separate context instead of adding its working history to the parent. The parent receives the result of the delegation.
68
49
 
69
- See [Subagents](../subagents).
50
+ See [Subagents](../subagents) for the distinction between root-agent copies and declared specialists, including their isolation boundaries.
70
51
 
71
52
  ## Dynamic context with `defineDynamic`
72
53
 
73
- The levers above are static, authored once and the same on every session. When the right context depends on who is calling (their team, tenant, plan, or feature flags), resolve it at runtime instead. `defineDynamic` in `agent/instructions/` returns the per-session system prompt, and `defineDynamic` in `agent/skills/` returns the set of skills a caller can load. Both read `ctx.session.auth` or channel metadata, so a caller on the billing team gets the billing instructions and playbook while no one else sees them. See [Dynamic capabilities](../guides/dynamic-capabilities) for the resolver API and when each event fires.
54
+ Use `defineDynamic` when instructions, skills, tools, subagents, or the model depend on the active principal, tenant, channel, or feature state. Dynamic resolvers can read session auth and channel metadata before returning the capabilities available to that session.
74
55
 
75
- ## Recommended context layout
56
+ See [Dynamic capabilities](../guides/dynamic-capabilities) for the resolver API, supported slots, and execution order.
76
57
 
77
- Pick the lever by what the context is for:
58
+ ## Compaction and clear
78
59
 
79
- - `instructions.md` for the agent's permanent identity. Keep it short and stable.
80
- - `instructions.ts` when you need to compose the prompt from typed helpers at build time.
81
- - `skills/` for optional procedures that should load only when needed. Move long procedures here instead of into the always-on prompt.
82
- - `tools/` to expose typed integrations.
83
- - a subagent when the task needs a different specialist surface; use one only for real specialization boundaries.
84
- - the workspace or sandbox when the model should inspect files or run commands instead of relying on pasted instructions.
60
+ User-role instructions follow the normal history lifecycle. Compaction can summarize them, and clear removes them without rerunning their static definitions or dynamic resolvers. System-role instructions remain outside history and continue to apply after either operation.
85
61
 
86
62
  ## What to read next
87
63
 
88
- - [Tools](../tools): expose typed integrations the model can call.
89
- - [Skills](../skills): the full authoring model for on-demand procedures.
90
- - [Subagents](../subagents): delegate to a specialist with its own prompt and tools.
91
- - [Dynamic capabilities](../guides/dynamic-capabilities): resolve per-session instructions and skills with `defineDynamic`.
92
- - [Hooks](../guides/hooks): run code on session events to update the channel state that dynamic resolvers read.
64
+ - [Instructions](../instructions): author the always-on system prompt.
65
+ - [Skills](../skills): provide procedures that load on demand.
66
+ - [Sandbox](../sandbox): give the model files and command execution.
67
+ - [Subagents](../subagents): isolate specialist work.
68
+ - [Dynamic capabilities](../guides/dynamic-capabilities): vary context and capabilities by session.
@@ -57,7 +57,7 @@ The model-facing file tools accept absolute paths and paths beginning with `$HOM
57
57
 
58
58
  Notes:
59
59
 
60
- - **`agent`** is available only in the root session. Its child uses the root's instructions, tools, connections, and sandbox, but starts with fresh conversation history and fresh [state](../guides/state). The child receives neither `agent` nor `Workflow`; declared subagents do not receive the built-in `agent` either. See [Subagents](../subagents).
60
+ - **`agent`** is available only in the root session. Its child uses the root's instructions, tools, connections, and sandbox, but starts with fresh conversation history and fresh [state](./state). The child receives neither `agent` nor `Workflow`; declared subagents do not receive the built-in `agent` either. See [Subagents](../subagents).
61
61
  - **`load_skill`** only pulls instructions into context. It adds no new execution surface, because behavior still comes from the tools the agent already has.
62
62
  - **`connection_search`** surfaces a connection's tools by their qualified name (e.g. `linear__list_issues`), which the model can then call directly. It's registered only when the agent has connections.
63
63
  - **`web_search`** has no local executor; the provider runs it. AI Gateway models use Exa by default. To use Parallel instead, export `webSearch({ provider: "parallel" })` from `agent/tools/web_search.ts`. Direct provider models continue to use their native search implementation. To supply your own implementation, override it with `defineTool()`.
@@ -125,7 +125,7 @@ import { experimental_workflow } from "eve/tools";
125
125
  export default experimental_workflow({ maxSubagents: 100 });
126
126
  ```
127
127
 
128
- With it on, the model can orchestrate the agent's own subagents from model-authored JavaScript, all as one durable step. The tool is root-only — delegated subagent sessions never see it — and one program may dispatch at most the configured `maxSubagents` calls (default 100). See [Dynamic workflows](../guides/dynamic-workflows).
128
+ With it on, the model can orchestrate the agent's own subagents from model-authored JavaScript, all as one durable step. The tool is root-only — delegated subagent sessions never see it — and one program may dispatch at most the configured `maxSubagents` calls (default 100). See [Workflow Tool](../subagents/workflow-tool).
129
129
 
130
130
  ## The opt-in `sleep` tool
131
131
 
@@ -17,7 +17,7 @@ Every turn runs as a durable workflow, built on the open-source [Workflow SDK](h
17
17
 
18
18
  The Workflow SDK is not inherently tied to Vercel. In local development and in a self-deployed `eve start` process, eve uses the SDK's local world by default; that world persists workflow runs on disk under `.eve/.workflow-data` and dispatches through the same Nitro-hosted workflow routes. On Vercel, the same workflow code runs against Vercel Workflow instead, which adds platform features such as latest production deployment routing and dashboard run metadata.
19
19
 
20
- When a Vercel production deployment changes, the next model turn in an existing session uses that deployment's current instructions, model, and tools. The durable session keeps its conversation history and authored state, so identity-based channels such as Telegram private chats and Twilio phone-number conversations adopt agent updates without requiring a new session.
20
+ When a Vercel production deployment changes, the next model turn in an existing session uses that deployment's current system-role instructions, model, and tools. Static user-role instructions stay pinned in the durable conversation history and are not seeded again. Identity-based channels such as Telegram private chats and Twilio phone-number conversations therefore adopt agent behavior updates without duplicating or rewriting their existing context.
21
21
 
22
22
  Nitro hosts the HTTP routes and workflow entrypoints. It does not supply the workflow state store or the sandbox runtime. Those are separate adapters: Workflow uses the active world implementation, and Sandbox uses the backend from `agent/sandbox` or `defaultBackend()`.
23
23
 
@@ -60,7 +60,7 @@ Crash the process, hit a timeout, or redeploy mid-turn, and the run picks up fro
60
60
 
61
61
  There's nothing to configure. eve owns the workflow lifecycle, and sessions are durable by default.
62
62
 
63
- You don't write workflow code directly. Workflow primitives (`start()`, `resumeHook()`, etc.) are an implementation detail of eve's runtime layer; channels, tools, and hooks never touch them. Two surfaces give your own code session data: tools read the current session's metadata (id, turn, auth, parent lineage) via `ctx.session`, and [`defineState`](../guides/state) reads or writes session-scoped durable state. See [State](../guides/state) for the read/write model.
63
+ You don't write workflow code directly. Workflow primitives (`start()`, `resumeHook()`, etc.) are an implementation detail of eve's runtime layer; channels, tools, and hooks never touch them. Two surfaces give your own code session data: tools read the current session's metadata (id, turn, auth, parent lineage) via `ctx.session`, and [`defineState`](./state) reads or writes session-scoped durable state. See [State](./state) for the read/write model.
64
64
 
65
65
  ## Parked work
66
66
 
@@ -91,10 +91,10 @@ A turn can hand work off to a [subagent](../subagents). Each subagent gets its o
91
91
 
92
92
  ## How eve orders session history
93
93
 
94
- Conversation history within a session is append-only. Turns land in order, and the tool calls inside a turn (plus their results) keep their order too. Read a session back and you see events in the order they happened.
94
+ Conversation history within a session is append-only. Static user-role instructions lead fresh-session history. Dynamic user-role instructions land at their session or turn boundary before the current delivery. Turns follow in order, and the tool calls inside a turn (plus their results) keep their order too. Read a session back and you see messages in the order they happened.
95
95
 
96
96
  ## What to read next
97
97
 
98
98
  - [Sessions and streaming](./sessions-runs-and-streaming): the handles you hold and the event stream you watch.
99
99
  - [Security model](./security-model): the trust boundaries the runtime enforces.
100
- - [State](../guides/state): durable per-session memory that persists across step boundaries.
100
+ - [State](./state): durable per-session memory that persists across step boundaries.
@@ -1,8 +1,10 @@
1
1
  {
2
- "title": "Concepts",
2
+ "title": "Core Concepts",
3
+ "defaultOpen": false,
3
4
  "pages": [
4
5
  "execution-model-and-durability",
5
6
  "sessions-runs-and-streaming",
7
+ "state",
6
8
  "default-harness",
7
9
  "context-control",
8
10
  "security-model"
@@ -14,7 +14,7 @@ or creates a replacement implicitly.
14
14
  Authored channels also have channel-local continuation tokens. A token addresses
15
15
  whichever session currently owns a platform conversation, such as a Slack thread.
16
16
  That identity stays behind the channel boundary and is never accepted or returned
17
- by the eve HTTP session API. See [Custom channels](../channels/custom#address-and-session-handles).
17
+ by the eve HTTP session API. See [Custom channels](../channels/custom#channel-operations-and-session-handles).
18
18
 
19
19
  Sessions last 30 days by default; configure `limits.sessionTimeoutMs` in
20
20
  `agent.ts`, or set it to `false` to disable the deadline. At expiration, eve
@@ -45,8 +45,8 @@ The stream is newline-delimited JSON (NDJSON), one event per line:
45
45
 
46
46
  | Event | Meaning |
47
47
  | ------------------------- | ---------------------------------------------------------------------------------------------------------------- |
48
- | `session.started` | A durable session was created. |
49
- | `turn.started` | A new turn began. |
48
+ | `session.started` | A durable session was created; carries `trace` when the runtime is traced. |
49
+ | `turn.started` | A new turn began; carries the active `trace` when the runtime is traced. |
50
50
  | `message.received` | An inbound user message was accepted; carries flattened text plus structured text/file parts. |
51
51
  | `step.started` | A model step began. |
52
52
  | `actions.requested` | The model requested one or more actions, including tool calls; calls stream before execution. |
@@ -73,6 +73,8 @@ The stream is newline-delimited JSON (NDJSON), one event per line:
73
73
  | `session.failed` | The session failed. |
74
74
  | `session.completed` | The session reached a terminal end. |
75
75
 
76
+ The optional `data.trace` on session and turn starts contains eve-owned W3C trace coordinates: `traceId`, `spanId`, and `traceFlags`. Use it to correlate stream consumers such as eval reporters with an observability backend. An uninstrumented target omits it.
77
+
76
78
  `reasoning.appended` and `message.appended` stream incremental output as it arrives. When the durable stream writer is busy, eve may coalesce adjacent deltas of the same type; the text remains in source order, and any other event forms an ordering barrier. Each append carries both the new delta and the cumulative text for the current block. The finalized block shows up on `message.completed` and `reasoning.completed`, which is the compatibility path for clients that don't render incremental streaming.
77
79
 
78
80
  `action.partial` carries one complete preliminary output snapshot from an authored async-generator tool. A later partial for the same `callId` replaces it, and `action.result` is the final snapshot. When the durable writer is busy, eve may keep only the newest adjacent partial for a call. Treat partials as last-write-wins: a durable step can retry and replay overlapping event runs. Provider-executed tool progress and MCP progress notifications are not projected as `action.partial` events.
@@ -148,7 +150,15 @@ curl -X POST http://127.0.0.1:2000/eve/v1/session/<sessionId> \
148
150
  -d '{"message":"Now send the short version."}'
149
151
  ```
150
152
 
151
- The follow-up reuses the same durable session: same history, same state. Message sends default to cancellation-backed `"steer"`; if a turn is active, eve buffers the follow-up, cancels that turn, and starts the message under a new turn ID. Channels and TypeScript `Session.send(...)` calls can select `turnPolicy: "queue"` when active work should finish first. Structured `inputResponses` never steer.
153
+ The follow-up reuses the same durable session: same history, same state. A follow-up accepts exactly one of `message` or `inputResponses`. Use structured responses to answer one or more pending human-input requests by ID:
154
+
155
+ ```bash
156
+ curl -X POST http://127.0.0.1:2000/eve/v1/session/<sessionId> \
157
+ -H 'content-type: application/json' \
158
+ -d '{"inputResponses":[{"requestId":"req_A","optionId":"approve"}]}'
159
+ ```
160
+
161
+ Message sends default to cancellation-backed `"steer"`; if a turn is active, eve buffers the follow-up, cancels that turn, and starts the message under a new turn ID. Channels and TypeScript `Session.send(...)` calls can select `turnPolicy: "queue"` when active work should finish first. Structured `inputResponses` never steer.
152
162
 
153
163
  If one pending batch is waiting on a human-in-the-loop approval, a matching text reply such as `approve` or `cancel` answers it. Unrelated text starts an ordinary turn immediately without denying the tool call; the approval stays pending and answerable. A later structured `inputResponses` answer keyed by its `requestId` still resumes the original tool call, even after intervening turns.
154
164
 
@@ -190,9 +200,11 @@ curl -X POST http://127.0.0.1:2000/eve/v1/session/<sessionId>/reset \
190
200
  -d '{"reason":"Start over"}'
191
201
  ```
192
202
 
193
- Compaction summarizes context, clear removes model-message history in place,
194
- and reset terminally retires the session. A reset ID never becomes a new session;
195
- create another session explicitly for a fresh conversation.
203
+ Compaction summarizes context without adding a user message. User-role instructions are ordinary history and may be represented by the summary; system-role instructions remain outside it. If a turn is active, eve queues the request until that turn settles. A successful compaction emits `compaction.requested` and `compaction.completed`, followed by `session.waiting`; if summarization fails, the session returns to waiting with its previous history.
204
+
205
+ Clear removes model-message history in place, including static and dynamic user-role instructions, while preserving the session identity, system-role instructions, tools, skills, durable state, limits, and sandbox. It does not rerun instruction definitions or resolvers. It emits `context.cleared` followed by `session.waiting`.
206
+
207
+ Reset terminally retires the exact session ID. A reset ID never becomes a new session; create another session explicitly for a fresh conversation. Compact, clear, and reset return `"no_active_session"` when the target is already inactive.
196
208
 
197
209
  ## Reconnect and rewind
198
210
 
@@ -227,11 +239,11 @@ The lookup is opt-in; requests without the parameter get no header. The TypeScri
227
239
 
228
240
  For scripts, server-to-server calls, tests, evals, and custom UIs, `eve/client` wraps these routes in a typed client so you don't hand-roll the POST and NDJSON stream loop.
229
241
 
230
- Start with the [TypeScript SDK](../guides/client/overview) guide. It covers basic usage, sending messages, session state, streaming, and per-turn `outputSchema` results.
242
+ Start with the [Client SDK](../guides/client/overview) guide. It covers basic usage, sending messages, session state, streaming, and per-turn `outputSchema` results.
231
243
 
232
244
  ## Inspect the agent over HTTP
233
245
 
234
- `GET /eve/v1/info` returns a JSON inspection snapshot for the running agent: model, instructions, authored and framework tools, skills, channels, schedules, subagents, sandbox, connections, hooks, workflow, and workspace metadata. It uses the resolved `eveChannel()` route auth when `agent/channels/eve.ts` authors one; otherwise it falls back to the framework default of Vercel OIDC plus local development access.
246
+ `GET /eve/v1/info` returns a JSON inspection snapshot for the running agent: model, static instructions, authored and framework tools, skills, channels, schedules, subagents, sandbox, connections, hooks, workflow, and workspace metadata. Static instructions are an ordered array whose entries expose `content` and `role`; dynamic resolver output is runtime context and is not included. The route uses the resolved `eveChannel()` auth when `agent/channels/eve.ts` authors one; otherwise it falls back to the framework default of Vercel OIDC plus local development access.
235
247
 
236
248
  ```bash
237
249
  curl http://127.0.0.1:2000/eve/v1/info
@@ -254,5 +266,5 @@ The order is structural, not incidental. By the time a resolver or hook reads ch
254
266
 
255
267
  - [Execution model & durability](./execution-model-and-durability): what makes a session durable and how parked work resumes.
256
268
  - [Channels](../channels/overview): how platform addresses map to durable sessions.
257
- - [TypeScript SDK](../guides/client/overview): call these routes from scripts and server-side code.
269
+ - [Client SDK](../guides/client/overview): call these routes from scripts and server-side code.
258
270
  - [Frontend](../guides/frontend/overview): `useEveAgent` instead of raw routes.
@@ -46,7 +46,7 @@ export default defineTool({
46
46
 
47
47
  ## Reset state between turns
48
48
 
49
- State is durable by default and does not reset between turns. If you want a clean slate every turn, overwrite it from a lifecycle [hook](./hooks) on `turn.started`:
49
+ State is durable by default and does not reset between turns. If you want a clean slate every turn, overwrite it from a lifecycle [hook](../guides/hooks) on `turn.started`:
50
50
 
51
51
  ```ts title="agent/hooks/reset-budget.ts"
52
52
  import { defineHook } from "eve/hooks";
@@ -73,7 +73,7 @@ Every [subagent](../subagents) starts with its own fresh state, whether it's a b
73
73
 
74
74
  ## What to read next
75
75
 
76
- - Read state inside dynamic resolvers → [Dynamic capabilities](./dynamic-capabilities)
76
+ - Read state inside dynamic resolvers → [Dynamic capabilities](../guides/dynamic-capabilities)
77
77
  - How step durability works → [Execution model & durability](../concepts/execution-model-and-durability)
78
- - The `ctx` accessors available alongside state → [TypeScript API](../reference/typescript-api)
78
+ - The `ctx` accessors available alongside state → [TypeScript API Reference](../reference/typescript-api)
79
79
  - Tenant-scoped long-term memory in your own store → [Multi-tenant memory](../patterns/multi-tenant-memory)