Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .changeset/eve-030-event-surface.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
"evlog": minor
---

Cover the eve 0.30 event surface. **`evlog/eve` now requires eve >= 0.30** — the peer range moves from `>=0.24.3`. The eve integration is still beta and its peer floor moves with it, so this ships as a minor; nothing outside `evlog/eve` is affected. Agents on an older eve keep working on the previous evlog — upgrade eve first.

The wide event now carries what eve started reporting since 0.24:

- `eve.runtime` — eve version, agent id, model, and the deployed git sha, branch and date, from `session.started`
- `eve.parent` — parent and root session ids for a subagent run, so a drain can rebuild the delegation tree
- `eve.authorizations` — connection sign-ins with their outcome, reason and duration; a turn parked on one ends as `eve.phase: 'awaiting-authorization'`
- `eve.compaction` — how many compactions ran, on which model, and how full the context was when the first one triggered
- `eve.contextCleared`, `eve.stepFailures` and `eve.failedSteps` — a model call that failed and was retried no longer disappears from a turn that ends up succeeding
- `ai.costUsd` — the cost eve reports, used in place of the `cost` pricing map when available. `ai.model` falls back to the model reported at session start, so `model` is only needed for dynamic-model agents
- subagents record `durationMs` and a `started` status

`message` replaces `redactMessage` with three modes: `'omit'` (default), `'preview'` (text truncated to `messagePreviewLength`, attachments reduced to their type and media type) and `'full'`. Attachment parts were previously not redacted at all. `redactMessage` still works and is deprecated.

`sessionEvent: true` adds one wide event per session on top of the per-turn ones, rolling up turns, tokens, cost, tools used, compactions and authorizations — one row per conversation, which is what makes tail sampling useful on an agent.
4 changes: 2 additions & 2 deletions packages/evlog/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -438,7 +438,7 @@
"changelogen": "^0.6.2",
"consola": "^3.4.2",
"elysia": "^1.4.29",
"eve": "^0.24.3",
"eve": "^0.30.8",
Comment thread
coderabbitai[bot] marked this conversation as resolved.
"express": "^5.2.1",
"fastify": "^5.10.0",
"h3": "^1.15.11",
Expand All @@ -463,7 +463,7 @@
"@nestjs/common": ">=11.1.28",
"@nuxt/kit": "^4.4.2",
"@orpc/server": ">=1.14.8",
"eve": ">=0.24.3",
"eve": ">=0.30.0",
Comment thread
coderabbitai[bot] marked this conversation as resolved.
"@tanstack/start-client-core": "^1.170.14",
"ai": ">=6.0.168 <8.0.0",
"elysia": ">=1.4.29",
Expand Down
5 changes: 5 additions & 0 deletions packages/evlog/src/ai/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,11 @@ export interface AIEventData {
totalDurationMs?: number
embedding?: AIEmbeddingData
estimatedCost?: number
/**
* Cost in dollars as reported by the runtime or provider, as opposed to
* {@link AIEventData.estimatedCost}, which is derived from a pricing map.
*/
costUsd?: number
}

/**
Expand Down
Loading
Loading