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.
- package/CHANGELOG.md +18 -0
- package/README.md +3 -3
- package/dist/src/chunks/{use-eve-agent-BNdcle_M.js → use-eve-agent-COmP-H8R.js} +6 -3
- package/dist/src/chunks/{use-eve-agent-FJkEMXYk.js → use-eve-agent-CnppTEFk.js} +6 -3
- package/dist/src/cli/commands/info.js +1 -1
- package/dist/src/cli/commands/trace-detail.d.ts +3 -2
- package/dist/src/cli/commands/trace-detail.js +1 -1
- package/dist/src/cli/dev/tui/traces/trace-conversation.d.ts +4 -6
- package/dist/src/cli/dev/tui/traces/trace-conversation.js +1 -2
- package/dist/src/client/agent-info-schema.d.ts +12 -4
- package/dist/src/client/agent-info-schema.js +1 -1
- package/dist/src/client/index.d.ts +1 -1
- package/dist/src/compiled/.vendor-stamp.json +3 -3
- package/dist/src/compiled/@chat-adapter/slack/index.js +1 -1
- package/dist/src/compiled/@workflow/core/index.js +1 -1
- package/dist/src/compiled/@workflow/core/runtime.js +3 -3
- package/dist/src/compiled/@workflow/core/workflow.js +1 -1
- package/dist/src/compiled/@workflow/world/env-config.d.ts +1 -0
- package/dist/src/compiled/@workflow/world/events.d.ts +92 -35
- package/dist/src/compiled/@workflow/world/index.d.ts +3 -2
- package/dist/src/compiled/@workflow/world/interfaces.d.ts +25 -23
- package/dist/src/compiled/@workflow/world/queue.d.ts +4 -0
- package/dist/src/compiled/@workflow/world/runs.d.ts +4 -0
- package/dist/src/compiled/@workflow/world/slot-identity.d.ts +53 -0
- package/dist/src/compiled/@workflow/world/spec-version.d.ts +36 -1
- package/dist/src/compiled/@workflow/world/steps.d.ts +4 -0
- package/dist/src/compiled/@workflow/world/ulid.d.ts +6 -0
- package/dist/src/compiled/@workflow/world-local/index.js +4 -4
- package/dist/src/compiled/@workflow/world-vercel/index.js +13 -17
- package/dist/src/compiled/_chunks/workflow/{attribute-changes-6OqdYdi4.js → attribute-changes-BoH7JsWp.js} +3 -3
- package/dist/src/compiled/_chunks/workflow/dist-DlFv0aHY.js +40 -0
- package/dist/src/compiled/_chunks/workflow/env-config-DxamfI7T.js +1 -0
- package/dist/src/compiled/_chunks/workflow/frames-CTpeJYEQ.js +3 -0
- package/dist/src/compiled/_chunks/workflow/{functions-CXb61C6h.js → functions-CeeNvKsq.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/resume-hook-BPQHjeY5.js +1 -0
- package/dist/src/compiled/_chunks/workflow/run-DQ5dOyjm.js +1 -0
- package/dist/src/compiled/_chunks/workflow/run-id-BdE0MZz9.js +1 -0
- package/dist/src/compiled/_chunks/workflow/sleep-CzdoBiqy.js +1 -0
- package/dist/src/compiled/_chunks/workflow/spec-version-DBUVfF_R.js +1 -0
- package/dist/src/compiled/_chunks/workflow/undici-CUIybhQ2.js +95 -0
- package/dist/src/compiled/_chunks/workflow/wait-until-DK2lnH6U.js +15 -0
- package/dist/src/compiled/_chunks/workflow/{wrapper-CDq65xJV.js → wrapper-CMGju7QA.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/ws-transport-Csi6Cydc.js +1 -0
- package/dist/src/compiler/extension-compatibility.d.ts +10 -10
- package/dist/src/compiler/extension-compatibility.js +1 -1
- package/dist/src/compiler/manifest.d.ts +8 -8
- package/dist/src/compiler/manifest.js +1 -1
- package/dist/src/compiler/normalize-extension.d.ts +3 -3
- package/dist/src/compiler/normalize-extension.js +1 -1
- package/dist/src/compiler/normalize-instructions.d.ts +1 -1
- package/dist/src/compiler/normalize-instructions.js +1 -1
- package/dist/src/compiler/normalize-manifest.js +1 -3
- package/dist/src/context/dynamic-instruction-lifecycle.d.ts +5 -1
- package/dist/src/context/dynamic-instruction-lifecycle.js +1 -1
- package/dist/src/context/keys.d.ts +6 -2
- package/dist/src/context/keys.js +1 -1
- package/dist/src/discover/manifest.d.ts +1 -1
- package/dist/src/discover/manifest.js +1 -1
- package/dist/src/evals/index.d.ts +2 -2
- package/dist/src/evals/reporters/index.d.ts +1 -1
- package/dist/src/evals/runner/artifacts.js +1 -1
- package/dist/src/evals/runner/execute-eval.d.ts +5 -0
- package/dist/src/evals/runner/execute-eval.js +1 -1
- package/dist/src/evals/runner/execute-task.d.ts +3 -0
- package/dist/src/evals/runner/execute-task.js +1 -1
- package/dist/src/evals/runner/reporters/braintrust.js +1 -1
- package/dist/src/evals/runner/reporters/types.d.ts +28 -2
- package/dist/src/evals/runner/run-evals.js +1 -1
- package/dist/src/evals/session.d.ts +11 -2
- package/dist/src/evals/session.js +1 -1
- package/dist/src/evals/target.js +1 -1
- package/dist/src/evals/types.d.ts +10 -1
- package/dist/src/execution/node-step.js +1 -1
- package/dist/src/execution/session.js +1 -1
- package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
- package/dist/src/execution/workflow-steps.js +1 -1
- package/dist/src/execution/workflow-trace-context.d.ts +11 -0
- package/dist/src/execution/workflow-trace-context.js +1 -0
- package/dist/src/harness/ai-sdk-hook-bridge.d.ts +1 -1
- package/dist/src/harness/ai-sdk-hook-bridge.js +1 -1
- package/dist/src/harness/channel-delivery-instrumentation.d.ts +1 -1
- package/dist/src/harness/channel-delivery-instrumentation.js +1 -1
- package/dist/src/harness/emission.d.ts +2 -2
- package/dist/src/harness/emission.js +1 -1
- package/dist/src/harness/instrumentation/config.js +1 -0
- package/dist/src/harness/{instrumentation-content.d.ts → instrumentation/content.d.ts} +1 -1
- package/dist/src/harness/{instrumentation-dispatch.d.ts → instrumentation/dispatch.d.ts} +1 -1
- package/dist/src/harness/{instrumentation-dispatch.js → instrumentation/dispatch.js} +1 -1
- package/dist/src/harness/{instrumentation-lifecycle.d.ts → instrumentation/lifecycle.d.ts} +3 -6
- package/dist/src/harness/{instrumentation-lifecycle.js → instrumentation/lifecycle.js} +1 -1
- package/dist/src/harness/{instrumentation-native-events.d.ts → instrumentation/native-events.d.ts} +1 -1
- package/dist/src/harness/{instrumentation-native-events.js → instrumentation/native-events.js} +1 -1
- package/dist/src/harness/{instrumentation-providers.d.ts → instrumentation/providers.d.ts} +1 -1
- package/dist/src/harness/{instrumentation-providers.js → instrumentation/providers.js} +1 -1
- package/dist/src/harness/{instrumentation-runtime.d.ts → instrumentation/runtime.d.ts} +4 -2
- package/dist/src/harness/{instrumentation-state.d.ts → instrumentation/state.d.ts} +1 -1
- package/dist/src/harness/parent-lineage.d.ts +1 -1
- package/dist/src/harness/prepare-trace-context.d.ts +16 -0
- package/dist/src/harness/prepare-trace-context.js +1 -0
- package/dist/src/harness/tool-loop.js +2 -2
- package/dist/src/harness/types.d.ts +1 -1
- package/dist/src/internal/application/compiled-artifacts.js +2 -2
- package/dist/src/internal/application/package.js +1 -1
- package/dist/src/internal/authored-definition/core.d.ts +3 -3
- package/dist/src/internal/authored-definition/core.js +1 -1
- package/dist/src/internal/authored-package-boundary.js +1 -1
- package/dist/src/internal/helpers/markdown.js +1 -1
- package/dist/src/internal/instrumentation.d.ts +1 -1
- package/dist/src/internal/nitro/host/build-vercel-agent-summary.js +1 -1
- package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response-from-manifest.js +1 -1
- package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.d.ts +4 -3
- package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
- package/dist/src/internal/nitro/routes/channel-request-instrumentation.js +1 -1
- package/dist/src/internal/vercel/project-link.d.ts +1 -1
- package/dist/src/internal/vercel/project-link.js +1 -1
- package/dist/src/internal/vercel-agent-summary.d.ts +10 -9
- package/dist/src/internal/vercel-agent-summary.js +1 -1
- package/dist/src/internal/workflow/development-world-client.js +1 -1
- package/dist/src/protocol/message.d.ts +15 -1
- package/dist/src/protocol/message.js +1 -1
- package/dist/src/public/channels/github/auth.d.ts +30 -0
- package/dist/src/public/channels/github/auth.js +2 -2
- package/dist/src/public/channels/github/defaults.d.ts +4 -4
- package/dist/src/public/channels/github/defaults.js +1 -1
- package/dist/src/public/channels/github/dispatch.d.ts +3 -2
- package/dist/src/public/channels/github/dispatch.js +1 -1
- package/dist/src/public/channels/github/githubChannel.d.ts +7 -2
- package/dist/src/public/channels/github/githubChannel.js +1 -1
- package/dist/src/public/channels/github/index.d.ts +1 -1
- package/dist/src/public/definitions/instructions.d.ts +14 -4
- package/dist/src/public/definitions/instructions.js +1 -1
- package/dist/src/public/definitions/tool.d.ts +5 -8
- package/dist/src/public/instructions/index.d.ts +1 -2
- package/dist/src/public/instructions/index.js +1 -1
- package/dist/src/public/instrumentation/index.d.ts +4 -3
- package/dist/src/public/instrumentation/otel.d.ts +5 -4
- package/dist/src/public/instrumentation/provider.d.ts +2 -2
- package/dist/src/runtime/agent/bootstrap.d.ts +2 -0
- package/dist/src/runtime/agent/bootstrap.js +1 -1
- package/dist/src/runtime/prompt/compose.d.ts +1 -1
- package/dist/src/runtime/prompt/compose.js +3 -1
- package/dist/src/runtime/resolve-agent.js +1 -1
- package/dist/src/runtime/types.d.ts +4 -3
- package/dist/src/setup/project-resolution.d.ts +3 -3
- package/dist/src/setup/scaffold/create/project.js +1 -1
- package/dist/src/setup/slack-connect-lifecycle.d.ts +0 -9
- package/dist/src/setup/slack-connect-lifecycle.js +1 -1
- package/dist/src/setup/slackbot.d.ts +2 -1
- package/dist/src/setup/slackbot.js +1 -1
- package/dist/src/shared/dynamic-tool-definition.d.ts +3 -4
- package/dist/src/shared/instructions-definition.d.ts +15 -11
- package/dist/src/svelte/index.js +1 -1
- package/dist/src/svelte/use-eve-agent.js +1 -1
- package/dist/src/tracing/agent-action-instrumentation.d.ts +1 -1
- package/dist/src/tracing/agent-action-instrumentation.js +1 -1
- package/dist/src/tracing/agent-approval-instrumentation.d.ts +1 -1
- package/dist/src/tracing/agent-channel-delivery-instrumentation.d.ts +1 -1
- package/dist/src/tracing/agent-channel-delivery-instrumentation.js +1 -1
- package/dist/src/tracing/agent-otel-provider.d.ts +4 -2
- package/dist/src/tracing/agent-otel-provider.js +2 -2
- package/dist/src/tracing/agent-otel-session-context.d.ts +17 -0
- package/dist/src/tracing/agent-otel-session-context.js +1 -0
- package/dist/src/tracing/agent-otel-usage.d.ts +1 -1
- package/dist/src/tracing/agent-tool-instrumentation.d.ts +1 -1
- package/dist/src/tracing/agent-tool-instrumentation.js +1 -1
- package/dist/src/tracing/agent-trace-state.d.ts +1 -1
- package/dist/src/tracing/install-instrumentation-runtime.d.ts +2 -2
- package/dist/src/tracing/install-instrumentation-runtime.js +1 -1
- package/dist/src/tracing/local-instrumentation-runtime.d.ts +1 -1
- package/dist/src/tracing/local-instrumentation-runtime.js +1 -1
- package/dist/src/tracing/local-traces.d.ts +3 -3
- package/dist/src/tracing/local-traces.js +1 -1
- package/dist/src/tracing/otel-declaration.d.ts +2 -2
- package/dist/src/tracing/otel-declaration.js +1 -1
- package/dist/src/vue/index.js +1 -1
- package/dist/src/vue/use-eve-agent.js +1 -1
- package/docs/README.md +18 -20
- package/docs/agent-config.md +5 -5
- package/docs/channels/eve.mdx +10 -56
- package/docs/channels/github.mdx +1 -1
- package/docs/channels/meta.json +1 -0
- package/docs/concepts/context-control.md +32 -56
- package/docs/concepts/default-harness.md +2 -2
- package/docs/concepts/execution-model-and-durability.mdx +4 -4
- package/docs/concepts/meta.json +3 -1
- package/docs/concepts/sessions-runs-and-streaming.md +22 -10
- package/docs/{guides → concepts}/state.md +3 -3
- package/docs/connections/mcp.mdx +6 -89
- package/docs/connections/meta.json +1 -0
- package/docs/connections/openapi.mdx +5 -69
- package/docs/connections/overview.mdx +29 -3
- package/docs/evals/meta.json +1 -0
- package/docs/evals/reporters.mdx +14 -4
- package/docs/extensions.md +1 -1
- package/docs/getting-started.mdx +175 -13
- package/docs/guides/auth-and-route-protection.md +3 -18
- package/docs/guides/client/meta.json +2 -1
- package/docs/guides/client/output-schema.mdx +2 -2
- package/docs/guides/client/overview.mdx +1 -1
- package/docs/guides/deployment/meta.json +1 -0
- package/docs/guides/deployment/overview.md +1 -1
- package/docs/guides/deployment/self-hosting.md +3 -3
- package/docs/guides/deployment/vercel.mdx +1 -1
- package/docs/guides/dev-tui.md +3 -13
- package/docs/guides/dynamic-capabilities.md +26 -4
- package/docs/guides/frontend/meta.json +2 -1
- package/docs/guides/frontend/nextjs.mdx +1 -10
- package/docs/guides/frontend/nuxt.mdx +1 -10
- package/docs/guides/frontend/overview.mdx +12 -3
- package/docs/guides/frontend/sveltekit.mdx +1 -10
- package/docs/guides/frontend/use-eve-agent-svelte.mdx +39 -126
- package/docs/guides/frontend/use-eve-agent-vue.mdx +40 -139
- package/docs/guides/instrumentation.md +15 -15
- package/docs/guides/meta.json +1 -5
- package/docs/guides/remote-agents.md +9 -9
- package/docs/guides/session-context.md +34 -103
- package/docs/install-integrations.mdx +1 -1
- package/docs/instructions.mdx +45 -12
- package/docs/meta.json +24 -13
- package/docs/patterns/dynamic-scheduling.md +1 -1
- package/docs/patterns/meta.json +1 -0
- package/docs/patterns/multi-tenant-approvals.md +1 -1
- package/docs/patterns/multi-tenant-auth.md +1 -1
- package/docs/patterns/multi-tenant-memory.md +4 -3
- package/docs/{guides → protocols}/acp.md +1 -1
- package/docs/protocols/meta.json +5 -0
- package/docs/reference/cli.md +34 -34
- package/docs/reference/meta.json +1 -1
- package/docs/reference/typescript-api.md +4 -2
- package/docs/{subagents.mdx → subagents/index.mdx} +2 -2
- package/docs/subagents/meta.json +5 -0
- package/docs/{guides/dynamic-workflows.md → subagents/workflow-tool.md} +6 -6
- package/docs/tools/human-in-the-loop.md +1 -1
- package/docs/tools/meta.json +1 -0
- package/docs/tools/overview.mdx +1 -1
- package/docs/tutorial/connect-a-warehouse.mdx +1 -1
- package/docs/tutorial/meta.json +1 -0
- package/docs/tutorial/remember-definitions.mdx +2 -2
- package/docs/tutorial/ship-it.mdx +2 -2
- package/package.json +4 -4
- package/dist/src/compiled/_chunks/workflow/dist-C8PhDW9B.js +0 -1
- package/dist/src/compiled/_chunks/workflow/functions-xMPAeWFr.js +0 -1
- package/dist/src/compiled/_chunks/workflow/node-Smb57EnG.js +0 -40
- package/dist/src/compiled/_chunks/workflow/resume-hook-BrduAuFX.js +0 -1
- package/dist/src/compiled/_chunks/workflow/run-CX7_sJnW.js +0 -1
- package/dist/src/compiled/_chunks/workflow/sleep-tsb2HjWK.js +0 -1
- package/dist/src/compiled/_chunks/workflow/undici-BNc_0O4m.js +0 -95
- package/dist/src/compiled/_chunks/workflow/wait-until-BYKVqrwc.js +0 -15
- package/dist/src/harness/instrumentation-config.js +0 -1
- package/docs/installation.mdx +0 -66
- package/docs/project-structure.mdx +0 -53
- package/docs/reference/project-layout.md +0 -123
- /package/dist/src/harness/{instrumentation-config.d.ts → instrumentation/config.d.ts} +0 -0
- /package/dist/src/harness/{instrumentation-content.js → instrumentation/content.js} +0 -0
- /package/dist/src/harness/{instrumentation-runtime-context.d.ts → instrumentation/runtime-context.d.ts} +0 -0
- /package/dist/src/harness/{instrumentation-runtime-context.js → instrumentation/runtime-context.js} +0 -0
- /package/dist/src/harness/{instrumentation-runtime.js → instrumentation/runtime.js} +0 -0
- /package/dist/src/harness/{instrumentation-setup-context.d.ts → instrumentation/setup-context.d.ts} +0 -0
- /package/dist/src/harness/{instrumentation-setup-context.js → instrumentation/setup-context.js} +0 -0
- /package/dist/src/harness/{instrumentation-state.js → instrumentation/state.js} +0 -0
- /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. [
|
|
38
|
-
3. [
|
|
39
|
-
4. [
|
|
40
|
-
5. [
|
|
41
|
-
6. [
|
|
42
|
-
7. [
|
|
43
|
-
8. [
|
|
44
|
-
9. [
|
|
45
|
-
10. [
|
|
46
|
-
11. [
|
|
47
|
-
12. [
|
|
48
|
-
13. [
|
|
49
|
-
14. [
|
|
50
|
-
15. [
|
|
51
|
-
16. [
|
|
52
|
-
17. [
|
|
53
|
-
18. [
|
|
54
|
-
19. [
|
|
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
|
|
package/docs/agent-config.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "
|
|
3
|
-
description: "
|
|
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
|
|
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
|
package/docs/channels/eve.mdx
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 [
|
|
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
|
-
- [
|
|
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
|
package/docs/channels/github.mdx
CHANGED
|
@@ -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
|
|
package/docs/channels/meta.json
CHANGED
|
@@ -1,92 +1,68 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Context Control"
|
|
3
|
-
description: "
|
|
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
|
-
|
|
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
|
-
##
|
|
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
|
-
|
|
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
|
-
|
|
20
|
+
## Base identity with `instructions.md`
|
|
22
21
|
|
|
23
|
-
|
|
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
|
-
|
|
28
|
-
markdown: buildInstructionsPrompt(),
|
|
29
|
-
});
|
|
30
|
-
```
|
|
24
|
+
### Compose instructions in TypeScript with `instructions.ts`
|
|
31
25
|
|
|
32
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
56
|
+
See [Dynamic capabilities](../guides/dynamic-capabilities) for the resolver API, supported slots, and execution order.
|
|
76
57
|
|
|
77
|
-
|
|
58
|
+
## Compaction and clear
|
|
78
59
|
|
|
79
|
-
-
|
|
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
|
-
- [
|
|
89
|
-
- [Skills](../skills):
|
|
90
|
-
- [
|
|
91
|
-
- [
|
|
92
|
-
- [
|
|
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](
|
|
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 [
|
|
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.
|
|
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`](
|
|
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.
|
|
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](
|
|
100
|
+
- [State](./state): durable per-session memory that persists across step boundaries.
|
package/docs/concepts/meta.json
CHANGED
|
@@ -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#
|
|
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.
|
|
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
|
|
194
|
-
|
|
195
|
-
|
|
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 [
|
|
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.
|
|
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
|
-
- [
|
|
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](
|
|
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](
|
|
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)
|