feat(eve): show provider-executed tool calls in the trace conversation view - #1445
Merged
Conversation
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
Bundle + Package Summary:
|
| Area | Metric | Baseline | Current | Delta |
|---|---|---|---|---|
| Package | Packed tarball | 7.48 MB | 7.48 MB | +2.0 kB |
| Package | Unpacked publish size | 27.90 MB | 27.90 MB | +2.2 kB |
| Package | Installed footprint | 84.87 MB | 84.88 MB | +2.2 kB |
| Package | Published files | 2915 | 2915 | 0 |
| Package | Installed files | 6708 | 6708 | 0 |
| Runtime | Unique function payloads | 2 | 2 | 0 |
| Runtime | Total function bytes | 16.91 MB | 16.91 MB | -40 B ✅ |
| Runtime | Public routes | 11 | 11 | 0 |
Changed function payloads vs trace-conversation (44372f1) (2)
| Function | Status | Baseline | Current | Delta | Route changes |
|---|---|---|---|---|---|
functions/__server.func |
changed | 8.45 MB | 8.45 MB | -20 B ✅ | none |
functions/.well-known/workflow/v1/flow.func |
changed | 8.45 MB | 8.45 MB | -20 B ✅ | none |
eve init install
| Metric | Baseline | Current | Delta |
|---|---|---|---|
| Installed footprint | 123.28 MB | 123.29 MB | +2.2 kB |
| Installed packages | 128 | 128 | 0 |
| dependencies | 4 | 4 | 0 |
| devDependencies | 2 | 2 | 0 |
| Dependency package bytes | 42.27 MB | 42.27 MB | +2.2 kB |
| devDependency package bytes | 5.04 MB | 5.04 MB | 0 B ➖ |
Build Metadata
- Preset:
vercel - Nitro:
nitro@3.0.260610-beta - Output directory:
apps/fixtures/weather-agent/.vercel/output - Build metadata timestamp: 2026-07-31T13:55:54.817Z
- Route aliases: 11 public, 1 internal (12 total aliases)
- Vercel routes in config: 14
- Severity legend: 🔴 dominant/large, 🟠 notable, 🟡 watch, ⚪ small
Package Drill-Down
Package Details
- Package:
eve@0.29.2 - Package directory:
packages/eve - Tarball: 7.48 MB (
eve-0.29.2.tgz) - Unpacked payload: 27.90 MB across 2915 published files
- Installed footprint: 84.88 MB across 6708 installed files
- Installed root package: 26.55 MB
- Installed dependencies: 58.33 MB
- Runtime dependencies: 2
- Peer dependencies: 5 (4 optional)
Installed footprint is measured from an isolated temporary npm install of the packed tarball.
Heavy installed dependencies
eve: 26.55 MB (31.3%)@rolldown/binding-linux-x64-gnu: 19.28 MB (22.7%)@rolldown/binding-wasm32-wasi: 10.66 MB (12.6%)ai: 6.56 MB (7.7%)zod: 5.07 MB (6.0%)
Publish payload breakdown
Published file size
🔴 dist/src/compiled/shadcn-registry/index.js [#################.......] 9.68 MB 34.7%
🟠 dist/src/compiled/@photon-ai/chat-adapter-ime... [####....................] 2.42 MB 8.7%
🟠 dist/src/compiled/experimental-ai-sdk-code-mo... [###.....................] 1.51 MB 5.4%
🟡 dist/src/compiled/_chunks/node/undici-DWL_MYm... [#.......................] 502.4 kB 1.8%
🟡 dist/src/compiled/_chunks/workflow/undici-DWL... [#.......................] 502.4 kB 1.8%
🔴 Other published files [########################] 13.29 MB 47.6%
Installed footprint breakdown
Installed package size
🔴 eve [########################] 26.55 MB 31.3%
🔴 @rolldown/binding-linux-x64-gnu [#################.......] 19.28 MB 22.7%
🔴 @rolldown/binding-wasm32-wasi [##########..............] 10.66 MB 12.6%
🔴 ai [######..................] 6.56 MB 7.7%
🔴 zod [#####...................] 5.07 MB 6.0%
🟠 undici [###.....................] 3.50 MB 4.1%
🔴 Other installed packages [############............] 13.26 MB 15.6%
Runtime dependencies (2)
| Package | Range | Notes |
|---|---|---|
nitro |
3.0.260610-beta |
|
undici |
8.9.0 |
Peer dependencies (5)
| Package | Range | Notes |
|---|---|---|
@opentelemetry/api |
^1.0.0 |
optional peer |
ai |
catalog: |
|
braintrust |
^3.0.0 |
optional peer |
just-bash |
^3.0.0 |
optional peer |
microsandbox |
^0.5.0 |
optional peer |
eve init install drill-down
eve init install details
- Command:
eve init my-agent - Package manager:
npm - Installed footprint: 123.29 MB across 8584 installed files
- Installed packages: 128 total (122 transitive-only)
- dependencies: 4 direct packages totaling 42.27 MB
- devDependencies: 2 direct packages totaling 5.04 MB
- Other transitive package files: 75.97 MB
Installed footprint is measured from an isolated temporary eve init my-agent using the current packed eve tarball.
Heavy installed dependencies
@typescript/typescript-linux-x64: 27.95 MB (22.7%)eve: 26.55 MB (21.5%)@rolldown/binding-linux-x64-gnu: 19.28 MB (15.6%)@rolldown/binding-wasm32-wasi: 10.66 MB (8.6%)zod: 9.02 MB (7.3%)
Installed footprint breakdown
Installed package size
🔴 @typescript/typescript-linux-x64 [########################] 27.95 MB 22.7%
🔴 eve [#######################.] 26.55 MB 21.5%
🔴 @rolldown/binding-linux-x64-gnu [#################.......] 19.28 MB 15.6%
🔴 @rolldown/binding-wasm32-wasi [#########...............] 10.66 MB 8.6%
🔴 zod [########................] 9.02 MB 7.3%
🔴 ai [######..................] 6.56 MB 5.3%
🔴 Other installed packages [####################....] 23.27 MB 18.9%
dependencies (4)
| Package | Range | Installed size | Share |
|---|---|---|---|
@vercel/connect |
0.4.3 |
141.0 kB | 0.1% |
ai |
^7.0.38 |
6.56 MB | 5.3% |
eve |
file:eve-0.29.2.tgz |
26.55 MB | 21.5% |
zod |
4.4.3 |
9.02 MB | 7.3% |
devDependencies (2)
| Package | Range | Installed size | Share |
|---|---|---|---|
@types/node |
24.x |
2.54 MB | 2.1% |
typescript |
7.0.2 |
2.50 MB | 2.0% |
Function Drill-Down
Payload Size Graph
Unique function payload size and share of total
🔴 functions/.well-known/workflow/v1/flow.func [########################] 8.45 MB 50.0%
🔴 functions/__server.func [########################] 8.45 MB 50.0%
Top Function Payloads
🟠 functions/.well-known/workflow/v1/flow.func • 1 public route • 8.45 MB
| Metric | Value |
|---|---|
| Public routes | /.well-known/workflow/v1/flow |
| Runtime | nodejs24.x |
| Handler | index.mjs |
| Payload | 8.45 MB |
| Function files | 8.45 MB across 43 files |
| Traced dependencies | 0 B |
| Signal | 🟠 Bundled file index.mjs is 2.31 MB (27.4%) |
🟠 🔎 Dependency Analysis
📦 Bundled files:
Bundled file size
🟠 index.mjs [#######################.] 2.31 MB 27.4%
🟠 _chunks/runtime-artifacts.mjs [################........] 1.59 MB 18.9%
🟡 _libs/undici.mjs [##########..............] 980.5 kB 11.6%
🟡 _chunks/sandbox.mjs [########................] 769.0 kB 9.1%
🟡 _libs/@ai-sdk/gateway+[...].mjs [####....................] 432.8 kB 5.1%
🟠 Other bundled files [########################] 2.37 MB 28.0%
🧾 Vercel Config
{
"handler": "index.mjs",
"launcherType": "Nodejs",
"shouldAddHelpers": false,
"supportsResponseStreaming": true,
"runtime": "nodejs24.x",
"maxDuration": "max",
"experimentalTriggers": [
{
"type": "queue/v2beta",
"topic": "__eve776561746865722d6167656e74_wkf_workflow_*",
"consumer": "default",
"retryAfterSeconds": 5,
"initialDelaySeconds": 0
}
],
"environment": {
"WORKFLOW_PRECONDITION_GUARD": "1"
}
}🟠 functions/__server.func • 10 public routes, 1 internal alias • 8.45 MB
| Metric | Value |
|---|---|
| Public routes | //eve/v1/callback/[token]/eve/v1/connections/[name]/callback/[token]/eve/v1/health/eve/v1/info/eve/v1/session/eve/v1/session/[sessionId]/eve/v1/session/[sessionId]/cancel/eve/v1/session/[sessionId]/stream/eve/v1/session/reset |
| Internal aliases | /__server |
| Runtime | nodejs24.x |
| Handler | index.mjs |
| Payload | 8.45 MB |
| Function files | 8.45 MB across 43 files |
| Traced dependencies | 0 B |
| Signal | 🟠 Bundled file index.mjs is 2.31 MB (27.4%) |
🟠 🔎 Dependency Analysis
📦 Bundled files:
Bundled file size
🟠 index.mjs [#######################.] 2.31 MB 27.4%
🟠 _chunks/runtime-artifacts.mjs [################........] 1.59 MB 18.9%
🟡 _libs/undici.mjs [##########..............] 980.5 kB 11.6%
🟡 _chunks/sandbox.mjs [########................] 769.0 kB 9.1%
🟡 _libs/@ai-sdk/gateway+[...].mjs [####....................] 432.8 kB 5.1%
🟠 Other bundled files [########################] 2.36 MB 28.0%
🧾 Vercel Config
{
"handler": "index.mjs",
"launcherType": "Nodejs",
"shouldAddHelpers": false,
"supportsResponseStreaming": true,
"runtime": "nodejs24.x"
}Build Timing: e2e/fixtures/agent-tools-sandbox
This is an informational timing measurement inside eve build, from preflight through publication. Output-size measurement and profile writing are excluded.
Build mode: deployable Vercel build with sandbox template prewarm included.
- Build pipeline: 2.02 s -> 1.98 s (-34.4 ms) vs
trace-conversation (44372f1). - Timing is informational: shared GitHub runners are too variable for a hard timing budget.
Detailed phase timings vs `trace-conversation (44372f1)`
| Phase | Baseline | Current | Delta |
|---|---|---|---|
extension.check |
6.7 ms | 1.2 ms | -5.5 ms |
project.resolve |
1.5 ms | 0.7 ms | -0.8 ms |
workspace.create |
1.3 ms | 0.8 ms | -0.5 ms |
host.prepare |
185.0 ms | 147.0 ms | -38.0 ms |
vercel.service-prefix.resolve |
2.4 ms | 2.4 ms | 0.0 ms |
nitro.create |
211.5 ms | 230.1 ms | +18.6 ms |
sandbox.prewarm |
268.5 ms | 270.9 ms | +2.4 ms |
nitro.cache.prepare |
0.3 ms | 0.3 ms | 0.0 ms |
nitro.prepare |
0.8 ms | 0.9 ms | +0.1 ms |
nitro.public-assets |
0.8 ms | 0.8 ms | 0.0 ms |
nitro.prerender |
0.6 ms | 0.5 ms | -0.1 ms |
nitro.bundle |
1.31 s | 1.30 s | -10.2 ms |
nitro.cache.write |
0.4 ms | 0.4 ms | 0.0 ms |
vercel.workflow-function.materialize |
23.3 ms | 23.6 ms | +0.3 ms |
agent-summary.emit |
0.5 ms | 0.5 ms | 0.0 ms |
nitro.close |
0.1 ms | 0.1 ms | 0.0 ms |
output.publish |
4.0 ms | 3.5 ms | -0.5 ms |
workspace.remove |
2.2 ms | 2.2 ms | 0.0 ms |
chadhietala
force-pushed
the
trace-provider-tools
branch
from
July 31, 2026 11:12
49947f5 to
a3a8ef4
Compare
Provider-executed tools (e.g. web_search) run inside the model call and never reach eve's tool loop, so they got no ai.toolCall span and were invisible in /traces. Capture their tool-result/tool-error content parts as ai.response.tool_results on the model span, and render one tool card per result after the assistant card. Selection re-mapping now matches by occurrence since several cards can share one span. Signed-off-by: Chad Hietala <chadhietala@gmail.com>
web_search outputs regularly exceed the 32KiB content attribute limit, and the generic text truncation left ai.response.tool_results as invalid JSON that the viewer silently dropped — the exact symptom of missing websearch cards. Truncate per-entry input/output text at shrinking budgets instead, so the array always parses; the viewer now accepts both structured values and truncation-flattened strings. Signed-off-by: Chad Hietala <chadhietala@gmail.com>
The reasoning and tool_results content attributes render on the cards; the drawer stays metadata-only like the other payload keys. Signed-off-by: Chad Hietala <chadhietala@gmail.com>
chadhietala
force-pushed
the
trace-provider-tools
branch
from
July 31, 2026 13:51
a3a8ef4 to
908ae00
Compare
ctgowrie
approved these changes
Jul 31, 2026
This was referenced Jul 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #1403 — base is
trace-conversation, review that first.Provider-executed tools were invisible in
/traces. A gateway tool likeweb_searchruns inside the model call — it never reaches eve's tool loop, so noonToolExecutionStartfires, noai.toolCallspan is recorded, and the viewer had nothing to render. A trace could show five searches' worth of results in the reply with no trace of the searches themselves (the real trace that surfaced this had 7 model calls carryingweb_searchintool_callsbut only 2ai.toolCallspans — the local glob and bash).What changed
Capture. A provider-executed tool's outcome exists only as
tool-result/tool-errorcontent parts on the model response. Those are now serialized to a newai.response.tool_resultsattribute on the model span ({toolName, input, output}or{toolName, input, error}entries).Truncation needed its own path: websearch outputs routinely blow past the 32 KiB attribute cap, and the generic text truncation appended
… [truncated]mid-string — leaving invalid JSON that a consumer can only drop.toolResultsContentAttributeinstead collapses each entry's input/output to capped text at shrinking budgets until the array fits, so the attribute always parses and always keepstoolNameand the error flag.Viewer. Each entry renders as a regular tool card right after its assistant card (same span start, stable sort keeps emission order):
Input:from the call arguments,Output:from the result, red error surface fortool-error, no duration shown since there is no span timing for provider-side execution. The parser accepts both structured values and truncation-flattened strings. The new payload attributes (ai.response.tool_results, andai.response.reasoningwhich the cards already show asThought:) join the drawer's excluded content keys so the metadata drawer stays metadata.One structural consequence: several cards can now share one span (a model span carries its provider tool cards), so selection re-mapping across live polls matches by occurrence rather than first
spanId+kind hit — without that, a poll would snap selection from the second web_search card back to the first.Verification
Unit tests at this layer: capture shape and error entries on the provider, truncation validity (single oversized entry, error-key preservation, budget split across 8 oversized entries), viewer card emission/ordering/error mapping (90 tests across the touched suites). Reproduced against the real websearch trace that surfaced the bug — cards render with truncated output. Sweep green; full suite at the stack top.