eve 0.31.3 → 0.33.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 +36 -1
- package/README.md +8 -4
- package/dist/src/channel/channel-address.d.ts +4 -1
- package/dist/src/channel/channel-address.js +1 -1
- package/dist/src/channel/channel-operations.d.ts +3 -1
- package/dist/src/channel/compiled-channel.d.ts +2 -1
- package/dist/src/channel/cross-channel-receive.d.ts +5 -2
- package/dist/src/channel/cross-channel-receive.js +1 -1
- package/dist/src/channel/session.d.ts +6 -2
- package/dist/src/channel/session.js +1 -1
- package/dist/src/channel/types.d.ts +6 -0
- package/dist/src/channel/types.js +1 -1
- package/dist/src/chunks/{use-eve-agent-CF5D6jSV.js → use-eve-agent-3oBnxzhV.js} +57 -22
- package/dist/src/chunks/{use-eve-agent-DbYZLG0h.js → use-eve-agent-B-Hky2f4.js} +57 -22
- package/dist/src/cli/commands/agent-prompt/collect-intent.md +3 -0
- package/dist/src/cli/commands/agent-prompt/scaffold.md +4 -2
- package/dist/src/cli/commands/info.js +1 -1
- package/dist/src/cli/commands/init-repl.d.ts +1 -1
- package/dist/src/cli/commands/init-repl.js +1 -1
- package/dist/src/cli/commands/init.d.ts +7 -0
- package/dist/src/cli/commands/init.js +1 -1
- package/dist/src/cli/commands/integration-connect.d.ts +4 -3
- package/dist/src/cli/commands/integration-connect.js +1 -1
- package/dist/src/cli/commands/integration-setup.d.ts +4 -0
- package/dist/src/cli/commands/integration-setup.js +1 -1
- package/dist/src/cli/commands/register-integration-commands.js +1 -1
- package/dist/src/cli/commands/register-registry-commands.js +1 -1
- package/dist/src/cli/commands/registry-declared-setups.d.ts +23 -0
- package/dist/src/cli/commands/registry-declared-setups.js +1 -0
- package/dist/src/cli/commands/registry-metadata.d.ts +69 -0
- package/dist/src/cli/commands/registry-metadata.js +1 -1
- package/dist/src/cli/commands/registry-package.d.ts +3 -3
- package/dist/src/cli/commands/registry-package.js +1 -1
- package/dist/src/cli/commands/registry-presentation.d.ts +20 -0
- package/dist/src/cli/commands/registry-presentation.js +7 -0
- package/dist/src/cli/commands/registry-search-presentation.d.ts +16 -0
- package/dist/src/cli/commands/registry-search-presentation.js +6 -0
- package/dist/src/cli/commands/registry-setup-command.d.ts +5 -2
- package/dist/src/cli/commands/registry-setup-command.js +1 -2
- package/dist/src/cli/commands/registry.d.ts +16 -7
- package/dist/src/cli/commands/registry.js +1 -6
- package/dist/src/cli/commands/set.d.ts +20 -0
- package/dist/src/cli/commands/set.js +1 -0
- package/dist/src/cli/commands/setup-answers.d.ts +2 -0
- package/dist/src/cli/commands/setup-answers.js +1 -0
- package/dist/src/cli/commands/setup-headless.d.ts +79 -0
- package/dist/src/cli/commands/setup-headless.js +1 -0
- package/dist/src/cli/dev/tui/runner.js +1 -1
- package/dist/src/cli/dev/tui/setup-commands.js +3 -3
- package/dist/src/cli/dev/tui/setup-flow.d.ts +8 -1
- package/dist/src/cli/dev/tui/setup-issues.js +1 -1
- package/dist/src/cli/dev/tui/terminal-renderer.js +12 -12
- package/dist/src/cli/dev/tui/traces/trace-conversation.d.ts +1 -1
- package/dist/src/cli/dev/tui/tui-prompter.js +1 -1
- package/dist/src/cli/option-parsers.d.ts +3 -0
- package/dist/src/cli/option-parsers.js +1 -1
- package/dist/src/cli/run.js +1 -1
- package/dist/src/client/agent-info-schema.d.ts +28 -5
- package/dist/src/client/agent-info-schema.js +1 -1
- package/dist/src/client/session.js +1 -1
- package/dist/src/client/types.d.ts +3 -0
- package/dist/src/client/url.d.ts +5 -0
- package/dist/src/client/url.js +1 -1
- package/dist/src/compiled/.vendor-stamp.json +8 -8
- package/dist/src/compiled/@ai-sdk/anthropic/index.d.ts +33 -13
- package/dist/src/compiled/@ai-sdk/anthropic/index.js +4 -2
- package/dist/src/compiled/@ai-sdk/google/index.d.ts +50 -3
- package/dist/src/compiled/@ai-sdk/google/index.js +7 -7
- package/dist/src/compiled/@ai-sdk/mcp/index.d.ts +33 -3
- package/dist/src/compiled/@ai-sdk/mcp/index.js +1 -1
- package/dist/src/compiled/@ai-sdk/openai/index.d.ts +140 -9
- package/dist/src/compiled/@ai-sdk/openai/index.js +9 -6
- package/dist/src/compiled/@ai-sdk/otel/index.js +1 -1
- package/dist/src/compiled/@ai-sdk/provider/index.d.ts +300 -6
- package/dist/src/compiled/@ai-sdk/provider-utils/index.d.ts +70 -20
- package/dist/src/compiled/@opentelemetry/api/index.d.ts +2 -1
- package/dist/src/compiled/@photon-ai/chat-adapter-imessage/index.js +1 -1
- package/dist/src/compiled/@vercel/otel/index.d.ts +6 -0
- package/dist/src/compiled/@vercel/sandbox/index.js +1 -1
- package/dist/src/compiled/_chunks/node/undici-CUIybhQ2.js +95 -0
- package/dist/src/compiled/_chunks/workflow/dist-eUxFublw.js +77 -0
- package/dist/src/compiled/shadcn-registry/index.js +309 -215
- package/dist/src/compiler/extension-compatibility.d.ts +25 -15
- package/dist/src/compiler/extension-compatibility.js +1 -1
- package/dist/src/compiler/manifest.d.ts +119 -19
- package/dist/src/compiler/manifest.js +1 -1
- package/dist/src/compiler/model-catalog.d.ts +2 -30
- package/dist/src/compiler/model-catalog.js +1 -1
- package/dist/src/compiler/module-map.d.ts +2 -2
- package/dist/src/compiler/module-map.js +2 -2
- package/dist/src/compiler/normalize-agent-config.js +1 -1
- package/dist/src/compiler/normalize-instructions.js +1 -1
- package/dist/src/compiler/normalize-manifest.js +2 -2
- package/dist/src/compiler/normalize-skill.js +1 -1
- package/dist/src/compiler/normalize-subagent.d.ts +5 -1
- package/dist/src/compiler/normalize-subagent.js +1 -1
- package/dist/src/compiler/remote-agent-node.d.ts +4 -1
- package/dist/src/compiler/workspace-resources.js +1 -1
- package/dist/src/context/build-callback-context.js +1 -1
- package/dist/src/context/dynamic-model-lifecycle.d.ts +7 -2
- package/dist/src/context/dynamic-model-lifecycle.js +1 -1
- package/dist/src/context/dynamic-subagent-lifecycle.js +1 -1
- package/dist/src/context/hook-lifecycle.js +1 -1
- package/dist/src/context/keys.d.ts +8 -0
- package/dist/src/context/keys.js +1 -1
- package/dist/src/evals/session.js +1 -1
- package/dist/src/execution/authorization-callback-match.d.ts +14 -0
- package/dist/src/execution/authorization-callback-match.js +1 -0
- package/dist/src/execution/dispatch-runtime-actions-step.js +1 -1
- package/dist/src/execution/effective-agent-config.js +1 -1
- package/dist/src/execution/next-driver-action.d.ts +1 -0
- package/dist/src/execution/node-step.js +1 -1
- package/dist/src/execution/parked-delivery-wait.d.ts +16 -1
- package/dist/src/execution/parked-delivery-wait.js +1 -1
- package/dist/src/execution/sandbox/abort-bound-session.d.ts +1 -1
- package/dist/src/execution/sandbox/bindings/docker.js +1 -1
- package/dist/src/execution/sandbox/bindings/just-bash-runtime.js +1 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-lifecycle.js +1 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-runtime.d.ts +1 -0
- package/dist/src/execution/sandbox/bindings/microsandbox-runtime.js +1 -1
- package/dist/src/execution/sandbox/bindings/vercel.js +1 -1
- package/dist/src/execution/sandbox/ensure.js +1 -1
- package/dist/src/execution/session-command-inbox.d.ts +26 -1
- package/dist/src/execution/session-command-inbox.js +1 -1
- package/dist/src/execution/session-command-wire.js +1 -1
- package/dist/src/execution/session.d.ts +2 -0
- package/dist/src/execution/session.js +2 -2
- package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
- package/dist/src/execution/turn-control-receiver.d.ts +2 -0
- package/dist/src/execution/turn-control-receiver.js +1 -1
- package/dist/src/execution/turn-execution-cursor.d.ts +1 -0
- package/dist/src/execution/turn-workflow.js +1 -1
- package/dist/src/execution/workflow-entry.js +1 -1
- package/dist/src/execution/workflow-steps.d.ts +3 -4
- package/dist/src/execution/workflow-steps.js +1 -1
- package/dist/src/harness/authorization.d.ts +24 -11
- package/dist/src/harness/authorization.js +1 -1
- package/dist/src/harness/emission.d.ts +1 -1
- package/dist/src/harness/emission.js +1 -1
- package/dist/src/harness/input-extraction.js +1 -1
- package/dist/src/harness/input-requests.js +1 -1
- package/dist/src/harness/provider-tools.d.ts +1 -1
- package/dist/src/harness/provider-tools.js +1 -1
- package/dist/src/harness/step-hooks.d.ts +1 -1
- package/dist/src/harness/step-hooks.js +1 -1
- package/dist/src/harness/tool-loop.d.ts +1 -1
- package/dist/src/harness/tool-loop.js +2 -2
- package/dist/src/harness/types.d.ts +11 -5
- package/dist/src/harness/types.js +1 -1
- package/dist/src/internal/application/package.js +1 -1
- package/dist/src/internal/authored-definition/core.js +1 -1
- package/dist/src/internal/authored-definition/schema-backed.js +1 -1
- package/dist/src/internal/authored-module-loader.js +1 -1
- package/dist/src/internal/authored-module-map-loader.js +1 -1
- package/dist/src/internal/model-catalog.d.ts +46 -0
- package/dist/src/internal/model-catalog.js +1 -0
- package/dist/src/internal/nitro/host/build-vercel-agent-summary.js +1 -1
- package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
- package/dist/src/internal/nitro/host/dev-host-fingerprint.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 +20 -10
- package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
- package/dist/src/internal/nitro/routes/channel-dispatch.js +1 -1
- package/dist/src/internal/nitro/routes/info.js +1 -1
- package/dist/src/internal/vercel-agent-summary.d.ts +12 -3
- package/dist/src/internal/vercel-agent-summary.js +1 -1
- package/dist/src/packages/eve-catalog/src/index.js +1 -1
- package/dist/src/protocol/message.d.ts +2 -2
- package/dist/src/protocol/message.js +1 -1
- package/dist/src/protocol/routes.d.ts +8 -6
- package/dist/src/protocol/routes.js +1 -1
- package/dist/src/public/channels/chat-sdk/chatSdkChannel.d.ts +5 -5
- package/dist/src/public/channels/chat-sdk/chatSdkChannel.js +2 -2
- package/dist/src/public/channels/discord/discordChannel.d.ts +3 -1
- package/dist/src/public/channels/discord/discordChannel.js +1 -1
- package/dist/src/public/channels/eve.d.ts +3 -1
- package/dist/src/public/channels/eve.js +1 -1
- package/dist/src/public/channels/github/githubChannel.d.ts +3 -1
- package/dist/src/public/channels/github/githubChannel.js +1 -1
- package/dist/src/public/channels/index.d.ts +1 -1
- package/dist/src/public/channels/linear/linearChannel.d.ts +3 -1
- package/dist/src/public/channels/linear/linearChannel.js +1 -1
- package/dist/src/public/channels/photon/photonIMessageChannel.d.ts +3 -1
- package/dist/src/public/channels/photon/photonIMessageChannel.js +1 -1
- package/dist/src/public/channels/slack/attachments.js +1 -1
- package/dist/src/public/channels/slack/defaults.js +1 -1
- package/dist/src/public/channels/slack/hitl.d.ts +14 -1
- package/dist/src/public/channels/slack/hitl.js +2 -2
- package/dist/src/public/channels/slack/slackChannel.d.ts +3 -1
- package/dist/src/public/channels/slack/slackChannel.js +1 -1
- package/dist/src/public/channels/teams/teamsChannel.d.ts +3 -1
- package/dist/src/public/channels/teams/teamsChannel.js +1 -1
- package/dist/src/public/channels/telegram/telegramChannel.d.ts +3 -1
- package/dist/src/public/channels/telegram/telegramChannel.js +1 -1
- package/dist/src/public/channels/twilio/twilioChannel.d.ts +3 -1
- package/dist/src/public/channels/twilio/twilioChannel.js +1 -1
- package/dist/src/public/definitions/agent.d.ts +5 -7
- package/dist/src/public/definitions/agent.js +1 -1
- package/dist/src/public/definitions/callback-context.d.ts +2 -2
- package/dist/src/public/definitions/channel.d.ts +3 -1
- package/dist/src/public/definitions/channel.js +1 -1
- package/dist/src/public/definitions/sandbox.d.ts +1 -1
- package/dist/src/public/definitions/tool.d.ts +10 -14
- package/dist/src/public/definitions/tool.js +1 -1
- package/dist/src/public/index.d.ts +1 -1
- package/dist/src/public/sandbox/index.d.ts +1 -1
- package/dist/src/public/tools/web-search.d.ts +2 -2
- package/dist/src/runtime/agent/bootstrap.d.ts +19 -6
- package/dist/src/runtime/agent/bootstrap.js +1 -1
- package/dist/src/runtime/agent/model-catalog.d.ts +10 -0
- package/dist/src/runtime/agent/model-catalog.js +1 -0
- package/dist/src/runtime/agent/resolve-model.d.ts +8 -4
- package/dist/src/runtime/agent/resolve-model.js +1 -1
- package/dist/src/runtime/connections/callback-route.d.ts +4 -5
- package/dist/src/runtime/connections/callback-route.js +1 -1
- package/dist/src/runtime/connections/scoped-authorization.js +1 -1
- package/dist/src/runtime/framework-channels/index.js +1 -1
- package/dist/src/runtime/framework-tools/connection-search-dynamic.js +2 -2
- package/dist/src/runtime/framework-tools/todo.js +1 -1
- package/dist/src/runtime/input/types.d.ts +1 -4
- package/dist/src/runtime/resolve-agent-graph.js +1 -1
- package/dist/src/runtime/resolve-agent.d.ts +2 -2
- package/dist/src/runtime/resolve-agent.js +1 -1
- package/dist/src/runtime/resolve-channel.js +1 -1
- package/dist/src/runtime/resolve-dynamic-subagent.d.ts +2 -5
- package/dist/src/runtime/subagents/dynamic-agent-config.d.ts +8 -7
- package/dist/src/runtime/subagents/dynamic-agent-config.js +1 -1
- package/dist/src/runtime/types.d.ts +11 -4
- package/dist/src/sandbox/state.d.ts +1 -0
- package/dist/src/setup/ask-editable.d.ts +22 -0
- package/dist/src/setup/ask-editable.js +1 -0
- package/dist/src/setup/ask-signals.d.ts +23 -0
- package/dist/src/setup/ask-signals.js +1 -0
- package/dist/src/setup/ask.d.ts +24 -25
- package/dist/src/setup/ask.js +1 -1
- package/dist/src/setup/boxes/deploy-project.js +1 -1
- package/dist/src/setup/boxes/resolve-provisioning.js +1 -1
- package/dist/src/setup/connection-connector.js +3 -2
- package/dist/src/setup/flows/deploy.d.ts +5 -3
- package/dist/src/setup/flows/deploy.js +1 -1
- package/dist/src/setup/flows/ensure-vercel-project.d.ts +5 -1
- package/dist/src/setup/flows/ensure-vercel-project.js +1 -1
- package/dist/src/setup/flows/model-source-change.d.ts +1 -0
- package/dist/src/setup/flows/model-source-change.js +1 -1
- package/dist/src/setup/flows/registry-session.d.ts +33 -0
- package/dist/src/setup/flows/registry-session.js +1 -0
- package/dist/src/setup/flows/registry.d.ts +16 -0
- package/dist/src/setup/flows/registry.js +1 -1
- package/dist/src/setup/index.js +1 -1
- package/dist/src/setup/integrations/discord/setup.d.ts +19 -7
- package/dist/src/setup/integrations/discord/setup.js +4 -3
- package/dist/src/setup/integrations/github/setup.d.ts +36 -7
- package/dist/src/setup/integrations/github/setup.js +2 -2
- package/dist/src/setup/integrations/linear/setup.d.ts +21 -9
- package/dist/src/setup/integrations/linear/setup.js +2 -2
- package/dist/src/setup/integrations/photon/management.d.ts +8 -1
- package/dist/src/setup/integrations/photon/management.js +1 -1
- package/dist/src/setup/integrations/photon/setup-flow.d.ts +28 -24
- package/dist/src/setup/integrations/photon/setup-flow.js +3 -3
- package/dist/src/setup/integrations/photon/setup.d.ts +1 -3
- package/dist/src/setup/integrations/photon/setup.js +1 -1
- package/dist/src/setup/integrations/registry.d.ts +1 -1
- package/dist/src/setup/integrations/registry.js +1 -1
- package/dist/src/setup/integrations/runner.d.ts +14 -11
- package/dist/src/setup/integrations/runner.js +1 -1
- package/dist/src/setup/integrations/shared/prerequisite.d.ts +17 -0
- package/dist/src/setup/integrations/shared/prerequisite.js +1 -0
- package/dist/src/setup/integrations/shared/ui.d.ts +22 -15
- package/dist/src/setup/integrations/shared/ui.js +2 -2
- package/dist/src/setup/integrations/shared/vercel-project.d.ts +11 -0
- package/dist/src/setup/integrations/shared/vercel-project.js +1 -0
- package/dist/src/setup/integrations/slack/setup.d.ts +25 -10
- package/dist/src/setup/integrations/slack/setup.js +1 -1
- package/dist/src/setup/integrations/types.d.ts +43 -13
- package/dist/src/setup/integrations/types.js +1 -1
- package/dist/src/setup/integrations/web/setup.d.ts +22 -3
- package/dist/src/setup/integrations/web/setup.js +1 -1
- package/dist/src/setup/prompter.d.ts +8 -0
- package/dist/src/setup/question-options.d.ts +15 -0
- package/dist/src/setup/question-options.js +1 -0
- package/dist/src/setup/registry-setup-client.d.ts +3 -4
- package/dist/src/setup/registry-setup-client.js +2 -2
- package/dist/src/setup/registry-setup-completion.d.ts +3 -0
- package/dist/src/setup/registry-setup-completion.js +1 -0
- package/dist/src/setup/registry-setup-protocol.d.ts +22 -3
- package/dist/src/setup/registry-setup-protocol.js +1 -1
- package/dist/src/setup/scaffold/create/add-to-project.d.ts +2 -0
- package/dist/src/setup/scaffold/create/add-to-project.js +1 -1
- package/dist/src/setup/scaffold/create/project.d.ts +3 -1
- package/dist/src/setup/scaffold/create/project.js +57 -5
- package/dist/src/setup/scaffold/update/channels.js +1 -1
- package/dist/src/setup/setup-question-wire.d.ts +48 -0
- package/dist/src/setup/setup-question-wire.js +1 -0
- package/dist/src/setup/slackbot.d.ts +5 -1
- package/dist/src/setup/slackbot.js +1 -1
- package/dist/src/setup/state.d.ts +2 -2
- package/dist/src/shared/agent-definition.d.ts +23 -23
- package/dist/src/shared/agent-definition.js +1 -1
- package/dist/src/shared/channel-definition.d.ts +3 -1
- package/dist/src/shared/dynamic-tool-definition.d.ts +4 -10
- package/dist/src/shared/dynamic-tool-definition.js +1 -1
- package/dist/src/shared/sandbox-backend.d.ts +6 -0
- package/dist/src/shared/sandbox-session.d.ts +15 -0
- package/dist/src/shared/tool-definition.d.ts +2 -2
- package/dist/src/shared/tool-schema.d.ts +5 -4
- package/dist/src/shared/tool-schema.js +1 -1
- package/dist/src/svelte/index.js +1 -1
- package/dist/src/svelte/use-eve-agent.js +1 -1
- package/dist/src/tracing/agent-otel-provider.d.ts +5 -38
- package/dist/src/tracing/agent-otel-provider.js +2 -2
- package/dist/src/tracing/agent-span-id-generator.d.ts +15 -0
- package/dist/src/tracing/agent-span-id-generator.js +1 -0
- package/dist/src/tracing/agent-trace-context-store.d.ts +1 -1
- package/dist/src/tracing/agent-trace-context-store.js +1 -1
- package/dist/src/tracing/agent-trace-state.d.ts +41 -0
- package/dist/src/tracing/agent-trace-state.js +1 -0
- package/dist/src/tracing/local-instrumentation-runtime.js +1 -1
- package/dist/src/vue/index.js +1 -1
- package/dist/src/vue/use-eve-agent.js +1 -1
- package/docs/agent-config.md +30 -19
- package/docs/channels/chat-sdk.mdx +6 -6
- package/docs/channels/custom.mdx +20 -0
- package/docs/channels/discord.mdx +1 -0
- package/docs/channels/eve.mdx +2 -0
- package/docs/channels/github.mdx +1 -1
- package/docs/channels/linear.mdx +1 -1
- package/docs/channels/overview.mdx +21 -2
- package/docs/channels/photon.mdx +5 -2
- package/docs/channels/slack.mdx +158 -50
- package/docs/concepts/default-harness.md +3 -3
- package/docs/concepts/execution-model-and-durability.mdx +5 -8
- package/docs/concepts/sessions-runs-and-streaming.md +3 -3
- package/docs/connections/mcp.mdx +6 -0
- package/docs/guides/dev-tui.md +58 -142
- package/docs/guides/dynamic-capabilities.md +24 -20
- package/docs/guides/dynamic-workflows.md +2 -0
- package/docs/guides/frontend/overview.mdx +4 -2
- package/docs/guides/hooks.md +25 -3
- package/docs/guides/session-context.md +18 -0
- package/docs/install-integrations.mdx +2 -0
- package/docs/installation.mdx +7 -1
- package/docs/reference/cli.md +37 -10
- package/docs/reference/typescript-api.md +1 -1
- package/docs/sandbox.mdx +25 -5
- package/docs/skills.mdx +12 -1
- package/docs/subagents.mdx +1 -1
- package/docs/tools/human-in-the-loop.md +1 -1
- package/docs/tutorial/ship-it.mdx +1 -1
- package/package.json +10 -10
- package/dist/src/compiled/_chunks/node/undici-DWL_MYmT.js +0 -95
- package/dist/src/compiled/_chunks/workflow/dist-CZxNEvEs.js +0 -79
|
@@ -148,9 +148,9 @@ curl -X POST http://127.0.0.1:2000/eve/v1/session/<sessionId> \
|
|
|
148
148
|
-d '{"message":"Now send the short version."}'
|
|
149
149
|
```
|
|
150
150
|
|
|
151
|
-
The follow-up reuses the same durable session: same history, same state.
|
|
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.
|
|
152
152
|
|
|
153
|
-
If the session is waiting on a human-in-the-loop approval, a matching text reply such as `approve` or `
|
|
153
|
+
If the session is waiting on a human-in-the-loop approval, a matching text reply such as `approve` or `cancel` answers the approval. Other follow-up text is held until the approval is answered, so an unrelated message does not implicitly deny the pending tool call.
|
|
154
154
|
|
|
155
155
|
If the session is waiting on `ask_question`, a follow-up message clears that pending request before the model continues. An exact option match or permitted freeform response answers the question; any other message marks the question unanswered and starts the follow-up turn.
|
|
156
156
|
|
|
@@ -158,7 +158,7 @@ A response is stale when its request is no longer pending: the question or appro
|
|
|
158
158
|
|
|
159
159
|
Responses match pending requests by request ID, so a response to an older request stays a plain user message even while a different question or approval is pending. Like any follow-up message, a stale response clears a pending question and is held while an approval is pending.
|
|
160
160
|
|
|
161
|
-
|
|
161
|
+
Multiple replacement messages retain their durable arrival order and may be folded into the same replacement turn when they arrive before cancellation settles. See [message delivery and steering](./execution-model-and-durability#message-delivery-and-steering) for the current runtime contract.
|
|
162
162
|
|
|
163
163
|
## Cancel the in-flight turn
|
|
164
164
|
|
package/docs/connections/mcp.mdx
CHANGED
|
@@ -214,6 +214,12 @@ Return `"user-approval"` (or `true`) to pause for a person and `"not-applicable"
|
|
|
214
214
|
|
|
215
215
|
[Human-in-the-loop](/docs/human-in-the-loop#approvals) covers the full set of statuses, how `approvedTools` and `session.auth` factor in, and how a gated call pauses and resumes durably.
|
|
216
216
|
|
|
217
|
+
## Control result size
|
|
218
|
+
|
|
219
|
+
eve sends an MCP tool's returned content to the model as the tool result. MCP connections do not expose a per-result transform equivalent to an authored tool's [`toModelOutput`](/docs/tools#shape-what-the-model-sees-with-tomodeloutput).
|
|
220
|
+
|
|
221
|
+
When a remote tool returns more data than the model needs, narrow the result at the MCP server. Prefer a purpose-built search or summary tool, or return a stable handle that another call can use to fetch a smaller slice. If you do not control the server and an equivalent upstream API is available, replace only that operation with an authored tool that stores the full payload outside model context and projects the needed fields through `toModelOutput`. Block the original MCP operation through [`tools.block`](#tool-filters) so the model does not see duplicate tools.
|
|
222
|
+
|
|
217
223
|
## Troubleshooting
|
|
218
224
|
|
|
219
225
|
| Symptom | Check |
|
package/docs/guides/dev-tui.md
CHANGED
|
@@ -1,182 +1,98 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Dev TUI"
|
|
3
|
-
description: "
|
|
3
|
+
description: "Use eve locally or connect to a deployed agent from an interactive terminal UI."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
`eve dev`
|
|
6
|
+
`eve dev` starts a local development server and opens an interactive terminal UI. Use it to talk to your agent, approve tool calls, answer its questions, and configure local development.
|
|
7
7
|
|
|
8
8
|
```bash
|
|
9
9
|
eve dev
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
The transcript remains in your terminal scrollback after you exit. Run `/help` in the UI to see the commands available in the current session.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
eve weather-agent
|
|
16
|
-
Use /add to install integrations from the registry.
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
If agent discovery reported problems, an error and warning count renders between the two lines. Instructions, tools, skills, and subagents are one `eve info` away, and `/help` lists every command. The TUI also runs a startup check. A fresh `eve init` starts local `eve dev` with `/model` prefilled. That input starts onboarding: the flow installs the Vercel CLI if needed, asks you to log in if needed, opens `/model`, then offers categorized next steps for channels, connections, capabilities, and observability through the registry before the first prompt. Other `eve dev` sessions show missing setup as an attention line, with each command's outcome hanging under it on a `⎿` connector.
|
|
20
|
-
|
|
21
|
-
## Reading the transcript
|
|
22
|
-
|
|
23
|
-
The conversation streams straight into your terminal's normal scrollback, so you keep native scrolling, copy and paste, and a transcript that persists after you exit. The scrollback holds your prompts, the agent's replies, reasoning, tool calls, nested subagents, connection-authorization prompts, and any captured `stdout`, `stderr`, or sandbox lifecycle lines.
|
|
24
|
-
|
|
25
|
-
Each turn renders without boxes. A colored gutter glyph marks who is speaking, tool calls collapse to a one-line summary (`✓ get_weather city="SF" → 73°F`), and a subagent's work is indented beneath its `◆` header. When input is ready, the prompt stays bare until you type. A green circle-dot pulses while the agent is waiting to answer and disappears when reasoning or answer content begins.
|
|
26
|
-
|
|
27
|
-
A persistent line beneath the prompt or status shows the model — with its authored reasoning level and a `↯` marker when the Gateway priority tier is on (`xai/grok-4.5@xhigh ↯`) — and the linked Vercel project. The Vercel segment stays hidden until the directory is linked. Local sessions lead with a gray `:port` badge. Remote sessions lead with a padded `↗ project (environment)` badge, or the host when Vercel cannot resolve the deployment. The badge is gray while checking or unavailable, yellow while authentication is required or failed, and blue when connected. Status segments separate with plain whitespace. Remote status lines omit AI Gateway endpoint state.
|
|
28
|
-
|
|
29
|
-
Errors render compactly with docs links highlighted. A code bug escaping your agent's own code shows its stack trace dim beneath the error headline. Dev-server rebuilds condense into one status row that updates in place (`tui/setup-panel.ts changed · rebuilding…`, then `· rebuilt`); only the latest rebuild shows, and paths shrink to their last two components.
|
|
30
|
-
|
|
31
|
-
## Slash commands
|
|
32
|
-
|
|
33
|
-
Each command echoes as an invocation line, asks through a bordered panel that takes the input area's place (one question at a time, separate from the chat transcript), and finishes with a one-line `⎿` result. Loading states stay on the ephemeral status line instead of piling into the transcript; model, registry, and the Vercel CLI commands (`/vc:install`, `/vc:login`) use the same green square pulse as the build phase, while `/deploy` keeps a spinner. A setup waiting for browser action changes that pulse and the word "browser" to yellow. Setup menus render the selected option with a filled arrow and an inverse label padded by one space on each side. Text prompts use a blinking block cursor over the character at the caret. The selected label is blue normally and yellow for warning rows.
|
|
34
|
-
|
|
35
|
-
| Command | Does |
|
|
36
|
-
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
37
|
-
| `/model` | Opens a configure menu that loops until Done (or Esc). See [Configure the model and provider](#configure-the-model-and-provider). |
|
|
38
|
-
| `/add` | Adds an integration from the registry or an item address entered directly. |
|
|
39
|
-
| `/deploy` | Ships the agent to Vercel production, linking the directory first when it is unlinked. |
|
|
40
|
-
| `/vc:install` | Installs the Vercel CLI. Available locally and on a remote session. |
|
|
41
|
-
| `/vc:login` | Logs in to Vercel locally. On a remote session, resolves the deployment's project, refreshes its OIDC token, and confirms any required Trusted Sources rule. |
|
|
42
|
-
| `/loglevel` | Switches which logs the transcript shows. See [Control what logs show](#control-what-logs-show). |
|
|
43
|
-
| `/traces` | Opens the full-screen local trace viewer. See [Inspect traces](#inspect-traces). |
|
|
44
|
-
| `/reset` | Starts a fresh session. |
|
|
45
|
-
| `/cancel` | Cooperatively cancels the running turn while preserving the session and settled context. |
|
|
46
|
-
| `/clear` | Clears model-message history while preserving the current session and its durable resources. `/new` is an alias. |
|
|
47
|
-
| `/compact` | Queues context compaction for the current session without sending a message. |
|
|
48
|
-
| `/exit` | Quits the TUI. |
|
|
49
|
-
| `/help` | Lists the commands available for the current local or remote session. |
|
|
50
|
-
|
|
51
|
-
`/model`, `/add`, `/deploy`, and `/traces` manage the local agent or its linked project. They are available only when `eve dev` runs the server locally, not when connected to a remote server with `--url`.
|
|
52
|
-
|
|
53
|
-
### Configure the model and provider
|
|
54
|
-
|
|
55
|
-
Bare `/model` opens the configure menu; its Change model row summarizes the draft (`xai/grok-4.5@high ↯`). When no provider is configured, it opens the provider picker directly and Esc returns to the configure menu. "Change model" opens a value menu — **Model**, **Reasoning effort** (a `●─◉─○` track beside the drafted level), **Service tier** (`fast ↯` or `normal`), and **Done**. Reasoning and tier adjust in place: `←`/`→` (Tab acts as `→`) move the highlighted row's value as a ring — past the top wraps to the bottom and vice versa — sliding the reasoning track over the model's supported effort levels or flipping the tier. An unset reasoning draft shows an empty track; the first `→` enters the ring at the lowest level, `←` at the highest. Picking a model snaps a drafted level the new model cannot serve to its closest supported one, clearing it when the model has no adjustable reasoning. Enter on the Model row opens the searchable Vercel AI Gateway catalog as `▏`-railed model ids, pre-selected on the model the runtime is serving; Esc backs out without changing it. A model with no adjustable reasoning says so on a disabled row, and a model the catalog prices no priority tier for shows no tier row at all. The menu's Done hands the draft to the configure menu, whose own Done commits everything through one atomic edit of your agent's authored source, reporting success only after eve confirms the new id. A completed model or provider change closes the menu and returns its result to the transcript; Done without changes or Esc closes it without one, and Esc notes any discarded draft. `/model <provider/model-id>` applies one directly, skipping the menu.
|
|
56
|
-
|
|
57
|
-
The provider row opens one menu: AI Gateway via a project, AI Gateway via `AI_GATEWAY_API_KEY`, or **Other providers**. The currently-active provider renders checked with its status beneath it ("Linked to **my-project** in team **my-team**", or "`AI_GATEWAY_API_KEY` set in `.env.local`"), and the cursor opens on it with a `↵ change` badge. The key option becomes a masked input on an `⎿` rail when highlighted, with a `↵ validate` badge after it. Enter validates it without replacing the menu — a `▪ validating` badge while it checks, a red `⨯ API key is not valid` badge on rejection; retrying or editing clears that result. With a non-empty key, the first Esc or Ctrl-C clears the input and the second dismisses the menu. An accepted key is saved to `.env.local` and reported as one `AI_GATEWAY_API_KEY set.` line. The project option asks for a Vercel team, opens that team's recent projects with the project named after your agent suggested first (searching the team for it when it is not among the recents), and lets you search all projects for older matches. Vercel links the selected project, eve verifies its project ID, then pulls its environment into `.env.local`. The **Other providers** option shows direct-provider wiring instructions and leaves the existing setup untouched. The dev server reloads env files and refreshes the status bar automatically, with no restart needed.
|
|
58
|
-
|
|
59
|
-
The provider row demands attention (a bold yellow "Configure model access" with a yellow "Not configured" hint that dims when unselected and uses the terminal foreground when selected) until a link or gateway credential is detected, then names the connection afterward (for example "AI Gateway (Linked to my-project in my-team)"). Setup menus mark the cursor row with a padded, filled-arrow inverse label that inherits the row's accent: blue normally and yellow for warning rows. In stacked menus, the selected row's description appears directly beneath that option. The completed command's outcome stays in the transcript after the panel closes. When a turn fails because AI Gateway authentication is missing or stale, the error points you at `/model` directly.
|
|
60
|
-
|
|
61
|
-
### Add registry integrations
|
|
62
|
-
|
|
63
|
-
`/add` groups integrations by their role: **Channels** for where people talk to your agent, **MCP connections** for external services and data, **Extensions** for reusable capabilities, and **Observability** for tracing and evaluation. Pick a category to open its searchable catalog from the official eve registry and the registry namespaces configured in `package.json`, or browse every integration. Each result shows its source beside its name, such as `Vercel` or a configured registry namespace. Select a result to review its source, packages, environment variables, and target files before adding it, or enter an official item path, configured namespace address, or HTTP(S) URL directly in the search bar. After an add attempt finishes, the panel closes instead of returning to the catalog.
|
|
14
|
+
## Commands
|
|
64
15
|
|
|
65
|
-
|
|
16
|
+
| Command | Description |
|
|
17
|
+
| ------------- | ----------------------------------------------------------------------------------------------------- |
|
|
18
|
+
| `/model` | Configure the model and its provider. Pass a model ID to set it directly: `/model provider/model-id`. |
|
|
19
|
+
| `/add` | Browse and install channels, MCP connections, extensions, and observability integrations. |
|
|
20
|
+
| `/deploy` | Deploy the agent to Vercel production. Links the directory first if needed. |
|
|
21
|
+
| `/vc:install` | Install the Vercel CLI. |
|
|
22
|
+
| `/vc:login` | Log in to Vercel or restore access to a remote deployment. |
|
|
23
|
+
| `/loglevel` | Choose which server and agent logs appear in the transcript. |
|
|
24
|
+
| `/traces` | Open the local trace viewer. Pass a trace ID prefix to open a specific trace. |
|
|
25
|
+
| `/reset` | Start a fresh session. |
|
|
26
|
+
| `/cancel` | Cancel the current turn without discarding settled context. |
|
|
27
|
+
| `/clear` | Clear the session's model-message history. `/new` is an alias. |
|
|
28
|
+
| `/compact` | Compact the current session's context. |
|
|
29
|
+
| `/exit` | Quit the UI. |
|
|
30
|
+
| `/help` | List available commands. |
|
|
66
31
|
|
|
67
|
-
|
|
32
|
+
`/model`, `/add`, `/deploy`, and `/traces` are available when `eve dev` runs locally. They are unavailable when the UI connects to a server with `--url`.
|
|
68
33
|
|
|
69
|
-
|
|
34
|
+
## Work with the agent
|
|
70
35
|
|
|
71
|
-
|
|
72
|
-
| ---------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
|
|
73
|
-
| `Enter` | Submit the message or question response. While a turn is running, queue the message for the next turn. |
|
|
74
|
-
| `Esc` | While a turn runs: pop the oldest queued message and steer with it; with nothing queued, cancel the turn. |
|
|
75
|
-
| `Shift+Enter` | Insert a newline without sending (needs a terminal that reports modified keys). |
|
|
76
|
-
| `Ctrl+C` | While a turn runs, behave like Esc. At the idle chat prompt, clear input and arm exit; press again to quit. |
|
|
77
|
-
| `↑` / `↓` | Move between input lines; at a chat-buffer edge, navigate messages you have sent this session. |
|
|
78
|
-
| `←` / `→`, `Home` / `End`, `Ctrl+A` / `Ctrl+E` | Move the caret; Home/End stay within the current line. |
|
|
79
|
-
| `Ctrl+U` / `Ctrl+K` / `Ctrl+W` | Delete to the start of the line, to its end, or through the previous word. |
|
|
80
|
-
| `Ctrl+L` | Cycle the log display mode (`none → all → stderr → sandbox → none`) and briefly show the mode in the status line. |
|
|
81
|
-
| `Ctrl+R` | Redraw the screen. |
|
|
36
|
+
Type a message and press `Enter` to send it. When the agent asks a question or requests tool approval, respond in the prompt shown by the UI. Connection authorization can open a browser; keep local `eve dev` running until the browser returns to it.
|
|
82
37
|
|
|
83
|
-
|
|
38
|
+
While a turn is running, `Enter` queues a follow-up message. Press `Esc` or `Ctrl+C` to cancel the turn; when messages are queued, this uses the oldest queued message as the next turn instead. At an idle prompt, press `Ctrl+C` twice to exit.
|
|
84
39
|
|
|
85
|
-
|
|
40
|
+
| Key | Action |
|
|
41
|
+
| ------------- | ----------------------------------------------------------------------------------- |
|
|
42
|
+
| `Enter` | Send the current message or answer. |
|
|
43
|
+
| `Shift+Enter` | Insert a newline. Requires a terminal that reports modified keys. |
|
|
44
|
+
| `Esc` | Cancel a running turn, or steer with the oldest queued message. |
|
|
45
|
+
| `Ctrl+C` | Cancel or steer during a turn; clear input, then exit on a second press, when idle. |
|
|
46
|
+
| `↑` / `↓` | Move through input lines or sent-message history. |
|
|
47
|
+
| `Ctrl+L` | Cycle log display modes. |
|
|
48
|
+
| `Ctrl+R` | Redraw the screen. |
|
|
86
49
|
|
|
87
|
-
|
|
50
|
+
## Logs and traces
|
|
88
51
|
|
|
89
|
-
|
|
52
|
+
By default, the UI shows `stderr` logs. Use `/loglevel <all|stderr|sandbox|none>` to change the display; bare `/loglevel` reports the current setting. `Ctrl+L` cycles the same modes.
|
|
90
53
|
|
|
91
|
-
|
|
54
|
+
Every `eve dev` process writes diagnostic logs to `.eve/logs/`, regardless of the display mode. Read them with [`eve logs`](../reference/cli#eve-logs).
|
|
92
55
|
|
|
93
|
-
|
|
56
|
+
Use `/traces` to inspect traces recorded during local development. See [Instrumentation](instrumentation#local-traces) for trace capture and retention settings.
|
|
94
57
|
|
|
95
|
-
|
|
58
|
+
## Display options
|
|
96
59
|
|
|
97
|
-
|
|
98
|
-
- Option questions let you pick with `↑` / `↓` and `Enter`, or you can compose a multi-line freeform answer.
|
|
99
|
-
- If a tool needs an authorized [connection](../connections), the URL shows up right in the transcript, and the turn picks back up once you finish the flow. The same local `eve dev` server owns the callback route, so keep that command running until the browser returns. `eve dev --url` connects to an already-running server and does not start a local callback host.
|
|
100
|
-
|
|
101
|
-
## Control what logs show
|
|
102
|
-
|
|
103
|
-
By default, `eve dev` shows `stderr` and keeps stdout and sandbox lines buffered but hidden. Captured server `stdout` and `stderr` render as dim, indented log runs behind a `│` rule (consecutive lines from the same source share one label), while sandbox lifecycle lines use their own label.
|
|
104
|
-
|
|
105
|
-
- `/loglevel <all|stderr|sandbox|none>` switches what the transcript shows, retroactively. Bare `/loglevel` reports the current mode.
|
|
106
|
-
- `--logs <all|stderr|sandbox|none>` sets the starting mode at launch (default `stderr`).
|
|
107
|
-
- `Ctrl+L` at the idle prompt cycles `none → all → stderr → sandbox → none`.
|
|
108
|
-
|
|
109
|
-
Every captured line, tool failure, workflow error, and eve framework log record also lands in a private per-process diagnostic log under `.eve/logs/`, regardless of the display mode. The file is JSON Lines: each line is one JSON record with `at` and `source` fields (framework log records add `level`, `namespace`, `message`, and `fields`), so it parses with any JSONL tool — `jq -c 'select(.source=="tool")'` — even when a payload spans many stack-trace lines. Long stderr output collapses in the transcript to a one-line summary pointing at the file (the raw text stays available in the `all` mode). Read the logs with `eve logs` — see the [CLI reference](../reference/cli#eve-logs).
|
|
110
|
-
|
|
111
|
-
Each log has a same-named `.dump` sibling — one JSON document with environment diagnostics (eve, Node.js, and Vercel CLI versions, the Vercel CLI path, and the size of the local session store) plus running session stats: prompts, token usage, tool calls by name, and subagent dispatches. `eve logs --dump` prints the dump and the log together as one parseable report to attach when filing an issue.
|
|
112
|
-
|
|
113
|
-
## Inspect traces
|
|
114
|
-
|
|
115
|
-
`/traces` opens a full-screen viewer over the local trace spool (`.eve/traces/v1`) that `eve dev` writes while you chat — see [Local traces](instrumentation#local-traces). It reads the spool files directly and refreshes about once a second, so spans from the current session stream in live. The viewer takes over the terminal's alternate screen; closing it restores the transcript exactly where you left it.
|
|
116
|
-
|
|
117
|
-
The viewer opens on your current session's trace (or the most recent one). It re-tells the trace as a chat-like flow of cards: the system prompt sits at the top as a collapsed card, then user and assistant messages (assistant cards carry model, duration, token, and gateway cost metadata), and tool calls show their inputs and results inline. Work a subagent performed appears in the same flow, ordered by when it happened — between the parent's dispatch step and its resumed reply — with a dim `subagent` badge (`subagent:<name>` when the dispatch named one) on every card of the delegated turn; the delegated prompt renders as a `task` card rather than a `user` message. Error spans paint their whole card red. The header names the agent, session, span count, and duration, plus a `● live` badge while spans are still landing. `/traces <trace>` opens a specific trace by id prefix.
|
|
118
|
-
|
|
119
|
-
| Key | Action |
|
|
120
|
-
| --------- | ------------------------------------------------------------------------ |
|
|
121
|
-
| `↑` / `↓` | Move the card selection (scroll the attributes panel when it has focus). |
|
|
122
|
-
| `←` / `→` | Expand / collapse the selected card (only cards with hidden content). |
|
|
123
|
-
| `Enter` | Open the attributes panel for the selected card; close it when open. |
|
|
124
|
-
| `Tab` | Move focus between the conversation and the attributes panel. |
|
|
125
|
-
| `[` / `]` | Cycle to the next / previous trace. |
|
|
126
|
-
| `Esc` | Close the panel (or unfocus it), otherwise close the viewer. |
|
|
127
|
-
| `q` | Close the viewer. |
|
|
128
|
-
|
|
129
|
-
`←`/`→` or a mouse click expands a card to its full contents (the system prompt, long payloads) and collapses it back; cards that already fit have nothing to expand. The scroll wheel scrolls the conversation (or the attributes panel when the pointer is over it). Dragging with the mouse selects text — the selection highlights as you drag, and releasing copies it to your clipboard with a `Copied to clipboard` toast in the top-right corner; `Esc` cancels an in-flight selection. The attributes panel opens on the right and stays metadata-only — status, timing, ids, and the span's non-payload OTLP attributes — since the cards already carry the payloads. Model spans capture the system prompt, the prompt messages (rendered as a chat transcript), and the response (text, tool calls, finish reason); tool-call spans capture the call arguments and result, pretty-printed — each capped at 32 KB, with provider transport metadata stripped. When a conversation's messages exceed the cap, the oldest messages are dropped and the transcript notes how many were omitted. Set `EVE_TRACES_CONTENT=off` to stop capturing payload content. With no spans yet, the viewer shows an empty state and keeps watching; if tracing is disabled (`EVE_TRACES=off`) it says so instead.
|
|
130
|
-
|
|
131
|
-
## Display flags
|
|
132
|
-
|
|
133
|
-
Density flags control how much of each section renders. They accept `full`, `collapsed`, `auto-collapsed`, or `hidden`.
|
|
60
|
+
Use `eve dev` flags to control how much detail the UI renders:
|
|
134
61
|
|
|
135
62
|
```bash
|
|
136
|
-
eve dev --tools full --
|
|
63
|
+
eve dev --tools full --reasoning collapsed --logs all
|
|
137
64
|
```
|
|
138
65
|
|
|
139
|
-
| Flag
|
|
140
|
-
|
|
|
141
|
-
| `--tools
|
|
142
|
-
| `--reasoning
|
|
143
|
-
| `--subagents
|
|
144
|
-
| `--connection-auth
|
|
145
|
-
| `--assistant-response-stats
|
|
146
|
-
| `--context-size
|
|
147
|
-
| `--logs
|
|
66
|
+
| Flag | Values | Description |
|
|
67
|
+
| ---------------------------- | ----------------------------------------------- | -------------------------------------------------- |
|
|
68
|
+
| `--tools` | `full`, `collapsed`, `auto-collapsed`, `hidden` | Tool-call display. |
|
|
69
|
+
| `--reasoning` | `full`, `collapsed`, `auto-collapsed`, `hidden` | Reasoning display. |
|
|
70
|
+
| `--subagents` | `full`, `collapsed`, `auto-collapsed`, `hidden` | Subagent display. |
|
|
71
|
+
| `--connection-auth` | `full`, `collapsed`, `auto-collapsed`, `hidden` | Connection-authorization display. |
|
|
72
|
+
| `--assistant-response-stats` | `tokens`, `tokensPerSecond` | Assistant response statistic. |
|
|
73
|
+
| `--context-size` | Token count | Model context-window size for the usage indicator. |
|
|
74
|
+
| `--logs` | `all`, `stderr`, `sandbox`, `none` | Initial log display mode. |
|
|
148
75
|
|
|
149
|
-
|
|
76
|
+
Use `--host` and `--port` to bind the local server, or `--no-ui` to run without the terminal UI. See the [CLI reference](../reference/cli#eve-dev) for all options.
|
|
150
77
|
|
|
151
|
-
##
|
|
78
|
+
## Connect to a deployment
|
|
152
79
|
|
|
153
|
-
Pass a URL
|
|
80
|
+
Pass a URL to use the terminal UI with an existing eve server instead of starting one locally:
|
|
154
81
|
|
|
155
82
|
```bash
|
|
156
|
-
eve dev https
|
|
83
|
+
eve dev https://your-app.vercel.app
|
|
157
84
|
```
|
|
158
85
|
|
|
159
|
-
The
|
|
86
|
+
The URL form is shorthand for `--url`. To send credentials or custom request headers, use a URL with HTTP Basic credentials or repeat `-H, --header`:
|
|
160
87
|
|
|
161
88
|
```bash
|
|
162
|
-
eve dev https://user:pass
|
|
89
|
+
eve dev https://user:pass@your-app.example.com
|
|
90
|
+
eve dev https://your-app.example.com -H 'Authorization: Bearer your_token_here'
|
|
163
91
|
```
|
|
164
92
|
|
|
165
|
-
For
|
|
166
|
-
|
|
167
|
-
Query parameters in the target URL are preserved on every request, including
|
|
168
|
-
session POSTs and event streams. This also supports deployment-protection URLs
|
|
169
|
-
that carry their bypass credential in the query string.
|
|
170
|
-
|
|
171
|
-
At startup the TUI asks Vercel to resolve the remote origin under the active scope. A resolved response is the authority for a project-scoped OIDC token—refreshing an expired development token when refresh credentials exist—or an automation-bypass secret. An unresolved host is probed anonymously. The TUI then requests `/eve/v1/info`, with a ten-second timeout. A successful response marks the remote ready. An eve OIDC challenge, Vercel Deployment Protection challenge, or `TRUSTED_SOURCES_ENVIRONMENT_MISMATCH` opens `/vc:login` automatically; ordinary network failures and server errors remain remote-availability errors and do not start an authentication flow. Esc or Ctrl-C cancels the authentication flow.
|
|
172
|
-
|
|
173
|
-
In a remote session, `/vc:login` first resolves the deployment's Vercel project from its URL. If the active Vercel scope cannot resolve it, the flow asks for another team and reruns the lookup in that team's scope. If the CLI is logged out, the same panel runs the browser login first. The flow asks before adding any required Trusted Sources rule and requests a project-scoped token through `@vercel/oidc`. It does not relink the directory or modify `.env.local`. Finally, it retries `/eve/v1/info` to prove the credential works. A failure reports any login or Trusted Sources update that completed before it stopped.
|
|
174
|
-
|
|
175
|
-
The project-scoped token represents the resolved project's Development environment. Vercel already allows a project's Development environment to call its own Preview deployments by default. For a Production or custom-environment target, `/vc:login` shows the exact Development-to-target rule before changing that project's Trusted Sources. Eve preserves existing entries. When it creates an explicit rule, it also carries Vercel's default self-access rows forward because saved rules replace those defaults. See Vercel's [Trusted Sources guide](https://vercel.com/docs/deployment-protection/methods-to-bypass-deployment-protection/trusted-sources), [error reference](https://vercel.com/docs/errors/trusted_sources_environment_mismatch), and [OIDC token anatomy](https://vercel.com/docs/oidc/reference#oidc-token-anatomy).
|
|
176
|
-
|
|
177
|
-
`VERCEL_AUTOMATION_BYPASS_SECRET` remains available for a Protection Bypass for Automation token. See [Deploy to Vercel](./deployment/vercel#verify-the-deployment) for the smoke-test flow.
|
|
93
|
+
For a Vercel deployment that needs authentication, run `/vc:login` and follow the prompt. Remote sessions do not modify the local project's Vercel link or `.env.local`.
|
|
178
94
|
|
|
179
95
|
## What to read next
|
|
180
96
|
|
|
181
|
-
- [
|
|
182
|
-
- [CLI](../reference/cli):
|
|
97
|
+
- [Instrumentation](./instrumentation): traces, OpenTelemetry, and diagnostics.
|
|
98
|
+
- [CLI](../reference/cli): commands and flags.
|
|
@@ -7,26 +7,26 @@ description: "Resolve models, subagents, tools, skills, and instructions at runt
|
|
|
7
7
|
|
|
8
8
|
## Dynamic models
|
|
9
9
|
|
|
10
|
-
The `model` field in `agent.ts` accepts `defineDynamic({
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
caches are per model, so
|
|
15
|
-
uncached prices. See
|
|
10
|
+
The `model` field in `agent.ts` accepts `defineDynamic({ events })`. Resolvers
|
|
11
|
+
run at `session.started`, `turn.started`, or `step.started` (precedence: step >
|
|
12
|
+
turn > session). Every matching handler must return a concrete model. A
|
|
13
|
+
missing, invalid, or throwing selection fails the turn before model-dependent
|
|
14
|
+
work begins. Prefer `session.started` — prompt caches are per model, so
|
|
15
|
+
switching mid-session re-ingests the conversation at uncached prices. See
|
|
16
16
|
[agent configuration](../agent-config#choose-the-model-dynamically) for the
|
|
17
17
|
full contract.
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
`
|
|
19
|
+
Dynamic models do not compile a default model or model metadata. When a
|
|
20
|
+
resolver first selects a model, eve normalizes the selection and resolves any
|
|
21
|
+
omitted context-window metadata from the AI Gateway catalog. Dynamic tools,
|
|
22
|
+
skills, instructions, and subagents may return `null` to omit a capability.
|
|
23
23
|
|
|
24
24
|
## Dynamic subagents
|
|
25
25
|
|
|
26
26
|
Wrap a declared subagent's own `agent.ts` in `defineDynamic` when its
|
|
27
27
|
availability depends on the caller, tenant, environment, or a feature flag.
|
|
28
|
-
Return the child definition to configure and expose it. Return `null`
|
|
29
|
-
|
|
28
|
+
Return the child definition to configure and expose it. Return `null` to omit
|
|
29
|
+
it from the parent's model-visible tools.
|
|
30
30
|
|
|
31
31
|
```ts title="agent/subagents/finance/agent.ts"
|
|
32
32
|
import { defineAgent, defineDynamic } from "eve";
|
|
@@ -44,15 +44,19 @@ export default defineDynamic({
|
|
|
44
44
|
});
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
eve always compiles the subagent's filesystem
|
|
48
|
-
instructions, tools, skills, connections, sandbox, and nested subagents.
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
47
|
+
eve always compiles the subagent's filesystem resources, including its
|
|
48
|
+
instructions, tools, skills, connections, sandbox, and nested subagents. It
|
|
49
|
+
does not compile an agent config or placeholder model for a dynamic subagent.
|
|
50
|
+
When the resolver selects the subagent, eve combines the returned config with
|
|
51
|
+
those resources before starting the child session. Each resolution can return
|
|
52
|
+
a different model or other runtime agent settings. A returned local config
|
|
53
|
+
must use a static model; it cannot contain another `defineDynamic` model.
|
|
54
|
+
Runtime-selected models must use string model IDs. Put build configuration on
|
|
55
|
+
the outer `defineDynamic` definition; build and Workflow-world configuration
|
|
56
|
+
cannot be selected in a handler result.
|
|
53
57
|
|
|
54
58
|
A single-file remote subagent uses the same lifecycle. Return
|
|
55
|
-
`defineRemoteAgent(...)` to expose the selected deployment, or
|
|
59
|
+
`defineRemoteAgent(...)` to expose the selected deployment, or `null` to omit it:
|
|
56
60
|
|
|
57
61
|
```ts title="agent/subagents/finance.ts"
|
|
58
62
|
import { defineDynamic, defineRemoteAgent } from "eve";
|
|
@@ -77,7 +81,7 @@ outbound request without entering durable workflow state.
|
|
|
77
81
|
|
|
78
82
|
Dynamic subagents support `session.started` and `turn.started`. A turn selection
|
|
79
83
|
shadows the session selection for that turn, including when the turn handler
|
|
80
|
-
returns
|
|
84
|
+
returns `null`. If a resolver throws or returns an invalid definition, eve logs the
|
|
81
85
|
failure and omits the subagent.
|
|
82
86
|
|
|
83
87
|
The resolved set applies to local and remote direct delegation and the
|
|
@@ -7,6 +7,8 @@ The experimental `Workflow` tool lets the model write JavaScript that coordinate
|
|
|
7
7
|
|
|
8
8
|
A single turn can already call several subagents, and parallel tool calls dispatch concurrently. What a workflow adds is _programmatic_ coordination. The program decides how many subagents to run based on an earlier result, which output feeds which call, and how to combine everything. That is logic the model cannot express as a few one-off calls.
|
|
9
9
|
|
|
10
|
+
`Workflow` is a model-facing tool, not an API for authored tools, hooks, or application code. Authored code cannot submit a Workflow program or use `Workflow` to start an arbitrary user-authored Vercel Workflow. Use the [client SDK](./client/overview) when application code needs to start or continue an eve session; use ordinary application APIs for other deterministic orchestration.
|
|
11
|
+
|
|
10
12
|
## Enable the Workflow tool
|
|
11
13
|
|
|
12
14
|
Export the experimental Workflow definition from `agent/tools/workflow.ts`. The helper name carries the "experimental" warning, but the tool the model actually sees is named `Workflow`.
|
|
@@ -75,7 +75,9 @@ export function Chat() {
|
|
|
75
75
|
|
|
76
76
|
Most chat UIs only need `data.messages` and `status`. Drop down to `events` when you need the authoritative wire events directly, for example to persist an audit log or build a custom projection.
|
|
77
77
|
|
|
78
|
-
`data.messages` are `EveMessage[]
|
|
78
|
+
`data.messages` are eve-owned `EveMessage[]`. Common text, reasoning, file, and dynamic-tool parts follow the [AI SDK `UIMessage`](https://ai-sdk.dev/docs/reference/ai-sdk-core/ui-message) rendering convention, but the types are not interchangeable. eve also exposes authorization and HITL metadata, and a file part's URL can be absent. Adapt those parts before passing messages to an API typed as `UIMessage[]`.
|
|
79
|
+
|
|
80
|
+
When the root agent delegates, its stream emits `subagent.called` with the child's `childSessionId`, then `subagent.completed` when the child returns. Detailed child progress lives on the child session's stream instead of being flattened into the root `data.messages`. Use the lower-level [TypeScript client](../client/overview#sessions) to attach to that ID when your UI needs live subagent activity. See [What the parent sees](../../subagents#what-the-parent-sees) for the complete contract.
|
|
79
81
|
|
|
80
82
|
## Sending and streaming
|
|
81
83
|
|
|
@@ -124,7 +126,7 @@ if (request) {
|
|
|
124
126
|
}
|
|
125
127
|
```
|
|
126
128
|
|
|
127
|
-
`request.prompt` and `request.options` give you what you need to render the approve and
|
|
129
|
+
`request.prompt` and `request.options` give you what you need to render the approve and cancel UI. The default reducer marks the part as responded immediately, then updates it again once eve streams the resumed result.
|
|
128
130
|
|
|
129
131
|
## Authorization prompts
|
|
130
132
|
|
package/docs/guides/hooks.md
CHANGED
|
@@ -30,16 +30,38 @@ A hook file declares stream-event subscribers under the `events` map, keyed by e
|
|
|
30
30
|
|
|
31
31
|
## Hook structure and context
|
|
32
32
|
|
|
33
|
-
Every handler receives the same `HookContext
|
|
33
|
+
Every handler receives the same `HookContext`, including the shared session
|
|
34
|
+
helpers documented in [Session context](./session-context):
|
|
34
35
|
|
|
35
36
|
```ts
|
|
36
|
-
interface HookContext {
|
|
37
|
+
interface HookContext extends SessionContext {
|
|
37
38
|
readonly agent: { readonly name: string; readonly nodeId?: string };
|
|
38
39
|
readonly channel: { readonly kind?: string; readonly continuationToken?: string };
|
|
39
|
-
readonly session: { readonly id: string };
|
|
40
40
|
}
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
+
That means a hook can access the current sandbox and release its backing
|
|
44
|
+
compute at an application-defined boundary:
|
|
45
|
+
|
|
46
|
+
```ts title="agent/hooks/stop-after-turn.ts"
|
|
47
|
+
import { defineHook } from "eve/hooks";
|
|
48
|
+
|
|
49
|
+
export default defineHook({
|
|
50
|
+
events: {
|
|
51
|
+
async "turn.completed"(_event, ctx) {
|
|
52
|
+
const sandbox = await ctx.getSandbox();
|
|
53
|
+
await sandbox.stop();
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Every built-in backend stops its underlying compute while preserving the
|
|
60
|
+
durable session and filesystem for the next callback. On Vercel, the current
|
|
61
|
+
handle can also automatically resume on later I/O. A hook failure, including a
|
|
62
|
+
failed stop, follows the normal
|
|
63
|
+
[hook failure behavior](#what-happens-when-a-hook-throws).
|
|
64
|
+
|
|
43
65
|
### Narrowing tool results
|
|
44
66
|
|
|
45
67
|
`toolResultFrom` narrows an `action.result` event to a specific authored tool or MCP connection and returns typed output. Import it from `eve/tools`:
|
|
@@ -69,6 +69,24 @@ Behavior:
|
|
|
69
69
|
- It is async because eve binds or restores sandbox state lazily.
|
|
70
70
|
- It only works when sandbox access is attached to the active runtime path.
|
|
71
71
|
- Visibility is node-local. A subagent sees its own sandbox, not the parent's.
|
|
72
|
+
- The returned `RuntimeSandboxSession` extends the ordinary sandbox I/O surface
|
|
73
|
+
with `stop()`. It is exported from `eve/sandbox`.
|
|
74
|
+
|
|
75
|
+
Call `stop()` to release sandbox compute while preserving the durable session
|
|
76
|
+
and its filesystem:
|
|
77
|
+
|
|
78
|
+
```ts
|
|
79
|
+
const sandbox = await ctx.getSandbox();
|
|
80
|
+
await sandbox.stop();
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Each backend implements this with its native lifecycle operation. Treat the
|
|
84
|
+
stop as the end of sandbox work in the current callback; a later callback calls
|
|
85
|
+
`ctx.getSandbox()` normally and eve reopens the same durable session. Vercel
|
|
86
|
+
also supports using the same handle again: its next command or file operation
|
|
87
|
+
automatically resumes the sandbox, just as it would after an inactivity
|
|
88
|
+
timeout. No separate eve reconnect state is created, and provider failures
|
|
89
|
+
reject the returned promise.
|
|
72
90
|
|
|
73
91
|
`SandboxSession` also exposes `resolvePath(path)`, which returns the live backend-native path for a logical `/workspace/...` location. Use it when authored code needs that path before passing it to shell code or a child process.
|
|
74
92
|
|
|
@@ -22,6 +22,8 @@ Some integrations package several independently installable components. For exam
|
|
|
22
22
|
|
|
23
23
|
When an official item declares an interactive setup flow or flows, eve asks whether to run them after installation and runs multiple flows in declaration order. Run the printed `eve add <item> --skip-install` command to resume a skipped or cancelled setup later; it reruns the selected components' declared flows from the beginning.
|
|
24
24
|
|
|
25
|
+
For non-interactive automation, run `eve add <item> --non-interactive`. Add `--yes` to accept recommended setup values and reduce setup round trips; explicit `--answer` values take precedence. Eve returns structured component, setup-input, or prerequisite instructions instead of prompting. Use the continuation command in the response and add the requested answer; it adds `--skip-install` once registry installation has completed; resupply any prior answers from the calling agent's state. Pass non-secret answers with repeatable `--answer 'key=<JSON value>'` options. Supply secrets through the integration's documented environment variable or secret store rather than command-line arguments.
|
|
26
|
+
|
|
25
27
|
## Find an integration
|
|
26
28
|
|
|
27
29
|
Browse the [Integrations directory](/integrations) to see the official integrations available from the eve registry.
|
package/docs/installation.mdx
CHANGED
|
@@ -22,7 +22,13 @@ Run `eve init` with a project name:
|
|
|
22
22
|
npx eve@latest init my-agent
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
The command creates `my-agent/`, installs dependencies, initializes Git
|
|
25
|
+
The command creates `my-agent/`, installs dependencies, and initializes Git. If a supported coding-agent REPL is available, eve offers to start the development server, open the REPL, or exit after scaffolding.
|
|
26
|
+
|
|
27
|
+
Pass an AI Gateway model ID or reasoning effort when you do not want the defaults:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npx eve@latest init my-agent --model openai/gpt-5.5 --reasoning high
|
|
31
|
+
```
|
|
26
32
|
|
|
27
33
|
## Run the agent
|
|
28
34
|
|