github vercel/eve eve@0.21.0

latest releases: eve@0.22.0, eve@0.21.1
5 hours ago

Minor Changes

  • 79e9959: Expand the Chat SDK channel (chatSdkChannel): post completed assistant messages as markdown, stream replies via post-then-edit (configurable with streaming and streamingEditIntervalMs), surface typing status on turn start and tool calls, and degrade optional adapter operations (startTyping, editMessage) gracefully when an adapter does not implement them. Add the messageToUserContent inbound helper and export isNotImplemented. The default adapter webhook route is now /eve/v1/{adapter}.
  • 73a9bf9: feat(eve): write skills into $HOME/.agents/skills instead of the workspace directory

Patch Changes

  • 99c2380: Subagents now report their token usage back to the caller — local, runtime, and remote alike. A completed turn carries the session's token totals (inputTokens, outputTokens, cacheReadTokens, cacheWriteTokens) on its terminal result; remote agents transport the same totals over the session callback. The parent's turn emits one invoke_agent span per usage-bearing result (gen_ai.operation.name=invoke_agent, gen_ai.agent.name, gen_ai.usage.*, per the OpenTelemetry GenAI semantic conventions) in the caller's trace. Remote usage requires both sides to run this version; collection stays best-effort everywhere.
  • c5cddb6: message.received events now include structured parts with text and file metadata so clients can render user attachments without parsing the flattened message summary. The default message reducer projects those attachments as file message parts while keeping raw bytes and internal sandbox paths off the stream.
  • 5ef4ec6: Reintroduce the ExperimentalWorkflow opt-in marker in eve/tools. Re-exporting it from agent/tools/workflow.ts enables the Workflow orchestration tool, which can spawn the agent's subagents from model-authored JavaScript. Workflow-spawned subagent calls are now capped per program by the new limits.maxSubagents agent setting (default 100) — calls beyond the budget resolve with a WORKFLOW_SUBAGENT_LIMIT_REACHED error result instead of starting a child session — and the tool stays root-only, so delegated subagent sessions never receive it.
  • 61745d5: Slack channel posts that combine Markdown and file uploads now send the Markdown message first and upload files as a threaded follow-up. This preserves Slack's full Markdown rendering, including tables, instead of downgrading the response into a file upload comment.
  • d408d0b: Reaching a session token limit no longer fails interactive sessions outright. The harness now pauses and sends a deterministic HITL continuation prompt; answering "Continue" grants a fresh budget window of the configured size, while "Stop" ends the session gracefully with session.completed. Task-mode sessions keep the structured SESSION_TOKEN_LIMIT_REACHED failure so parent tool calls receive an error result.
  • da2ec6c: Delegated subagent sessions now receive a share of the parent's remaining token quota at dispatch time — the remainder split across the batch's delegated calls — instead of a fixed 5M input-token cap, and a completed child's usage counts against the parent's quota, so a delegation tree can never outspend the budget configured at its root. Session token limits also accept false to uncap a session explicitly. Delegated children likewise inherit the parent's delegation caps (limits.maxSubagentDepth and limits.maxSubagents); on every inherited axis the tighter of the configured and inherited value wins.

Don't miss a new eve release

NewReleases is sending notifications on new releases.