Repository navigation
feat(eve): sessions - replace parent orchestration with holding workflows - #3063
AndrewBarba wants to merge 25 commits into
Conversation
Signed-off-by: Andrew Barba <barba@hey.com>
Signed-off-by: Andrew Barba <barba@hey.com>
Signed-off-by: Andrew Barba <barba@hey.com>
Signed-off-by: Andrew Barba <barba@hey.com>
Signed-off-by: Andrew Barba <barba@hey.com>
Signed-off-by: Andrew Barba <barba@hey.com>
Signed-off-by: Andrew Barba <barba@hey.com>
Signed-off-by: Andrew Barba <barba@hey.com>
Signed-off-by: Andrew Barba <barba@hey.com>
Signed-off-by: Andrew Barba <barba@hey.com>
…lows Signed-off-by: Andrew Barba <barba@hey.com>
Bundle + Package Summary:
|
| Area | Metric | Baseline | Current | Delta |
|---|---|---|---|---|
| Package | Packed tarball | 8.70 MB | 8.68 MB | -18.6 kB ✅ |
| Package | Unpacked publish size | 32.77 MB | 32.61 MB | -162.3 kB ✅ |
| Package | Installed footprint | 77.91 MB | 77.74 MB | -162.3 kB ✅ |
| Package | Published files | 3911 | 3885 | -26 |
| Package | Installed files | 7814 | 7788 | -26 |
| Package | Installed package instances | 33 | 33 | 0 |
| Package | Distinct installed package names | 32 | 32 | 0 |
| Package | Installed dependency edges | 51 | 51 | 0 |
| Package | Installed optional peer edges | 8 | 8 | 0 |
| Runtime | Unique function payloads | 2 | 2 | 0 |
| Runtime | Total function bytes | 20.78 MB | 19.54 MB | -1.25 MB ✅ |
| Runtime | Public routes | 18 | 17 | -1 |
Changed function payloads vs main (1a9556c) (2)
| Function | Status | Baseline | Current | Delta | Route changes |
|---|---|---|---|---|---|
functions/__server.func |
changed | 10.39 MB | 9.77 MB | -623.8 kB ✅ | public +/eve/v1/connections/[name]/callback/[attemptId]/[sessionId]public - /eve/v1/connections/[name]/callback/[attemptId]/[token], -/eve/v1/connections/[name]/callback/[token] |
functions/.well-known/workflow/v1/flow.func |
changed | 10.39 MB | 9.77 MB | -623.8 kB ✅ | none |
eve init install
| Metric | Baseline | Current | Delta |
|---|---|---|---|
| Installed footprint | 116.34 MB | 116.18 MB | -162.3 kB ✅ |
| Installed packages | 113 | 113 | 0 |
| dependencies | 4 | 4 | 0 |
| devDependencies | 2 | 2 | 0 |
| Dependency package bytes | 48.94 MB | 48.78 MB | -162.3 kB ✅ |
| devDependency package bytes | 5.04 MB | 5.04 MB | 0 B ➖ |
Build Metadata
- Preset:
vercel - Nitro:
nitro@3.0.260903-beta - Output directory:
apps/fixtures/weather-agent/.vercel/output - Build metadata timestamp: 2026-09-09T18:04:27.487Z
- Route aliases: 17 public, 1 internal (18 total aliases)
- Vercel routes in config: 20
- Severity legend: 🔴 dominant/large, 🟠 notable, 🟡 watch, ⚪ small
Package Drill-Down
Package Details
- Package:
eve@0.52.4 - Package directory:
packages/eve - Tarball: 8.68 MB (
eve-0.52.4.tgz) - Unpacked payload: 32.61 MB across 3885 published files
- Installed footprint: 77.74 MB across 7788 installed files
- Installed root package: 31.18 MB
- Installed dependencies: 46.56 MB
- Installed package instances: 33
- Distinct installed package names: 32
- Installed dependency edges: 51
- Installed optional peer edges: 8
- Runtime dependencies: 2
- Peer dependencies: 6 (5 optional)
Installed footprint is measured from an isolated temporary npm install of the packed tarball.
Graph metrics read only package.json files in package directories directly beneath a node_modules boundary, including nested boundaries. Each directory is one package instance; distinct names come from those manifests. Dependency edges count each unique name in dependencies or optionalDependencies per instance; optional peer edges count peerDependencies marked optional.
Heavy installed dependencies
eve: 31.18 MB (40.1%)@rolldown/binding-linux-x64-gnu: 19.31 MB (24.8%)ai: 7.06 MB (9.1%)zod: 6.41 MB (8.3%)undici: 3.51 MB (4.5%)
Publish payload breakdown
Published file size
🔴 dist/src/compiled/shadcn-registry/index.js [#############...........] 9.76 MB 29.9%
🟠 dist/src/compiled/@photon-ai/chat-adapter-ime... [###.....................] 2.27 MB 7.0%
🟠 dist/src/compiled/@ai-sdk/code-mode/index.js [#.......................] 1.03 MB 3.1%
🟡 dist/src/compiled/@vercel/blob/index.js [#.......................] 901.4 kB 2.8%
🟡 dist/src/compiled/_chunks/workflow/signal-exi... [#.......................] 514.6 kB 1.6%
🔴 Other published files [########################] 18.14 MB 55.6%
Installed footprint breakdown
Installed package size
🔴 eve [########################] 31.18 MB 40.1%
🔴 @rolldown/binding-linux-x64-gnu [###############.........] 19.31 MB 24.8%
🔴 ai [#####...................] 7.06 MB 9.1%
🔴 zod [#####...................] 6.41 MB 8.3%
🟠 undici [###.....................] 3.51 MB 4.5%
🟠 nitro [#.......................] 1.89 MB 2.4%
🔴 Other installed packages [######..................] 8.37 MB 10.8%
Runtime dependencies (2)
| Package | Range | Notes |
|---|---|---|
nitro |
3.0.260903-beta |
|
undici |
8.9.0 |
Peer dependencies (6)
| Package | Range | Notes |
|---|---|---|
@opentelemetry/api |
^1.0.0 |
optional peer |
ai |
catalog: |
|
braintrust |
^3.0.0 |
optional peer |
dd-trace |
^6.13.0 |
optional peer |
just-bash |
^3.1.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: 116.18 MB across 9684 installed files
- Installed packages: 113 total (107 transitive-only)
- dependencies: 4 direct packages totaling 48.78 MB
- devDependencies: 2 direct packages totaling 5.04 MB
- Other transitive package files: 62.36 MB
Installed footprint is measured from an isolated temporary eve init my-agent using the current packed eve tarball.
Heavy installed dependencies
eve: 31.18 MB (26.8%)@typescript/typescript-linux-x64: 27.95 MB (24.1%)@rolldown/binding-linux-x64-gnu: 19.31 MB (16.6%)zod: 10.37 MB (8.9%)ai: 7.06 MB (6.1%)
Installed footprint breakdown
Installed package size
🔴 eve [########################] 31.18 MB 26.8%
🔴 @typescript/typescript-linux-x64 [######################..] 27.95 MB 24.1%
🔴 @rolldown/binding-linux-x64-gnu [###############.........] 19.31 MB 16.6%
🔴 zod [########................] 10.37 MB 8.9%
🔴 ai [#####...................] 7.06 MB 6.1%
🟠 undici [###.....................] 3.51 MB 3.0%
🔴 Other installed packages [#############...........] 16.80 MB 14.5%
dependencies (4)
| Package | Range | Installed size | Share |
|---|---|---|---|
@vercel/connect |
1.0.0 |
167.9 kB | 0.1% |
ai |
^7.0.82 |
7.06 MB | 6.1% |
eve |
file:eve-0.52.4.tgz |
31.18 MB | 26.8% |
zod |
4.5.4 |
10.37 MB | 8.9% |
devDependencies (2)
| Package | Range | Installed size | Share |
|---|---|---|---|
@types/node |
24.x |
2.54 MB | 2.2% |
typescript |
7.0.2 |
2.50 MB | 2.1% |
Function Drill-Down
Payload Size Graph
Unique function payload size and share of total
🔴 functions/.well-known/workflow/v1/flow.func [########################] 9.77 MB 50.0%
🔴 functions/__server.func [########################] 9.77 MB 50.0%
Top Function Payloads
🟠 functions/.well-known/workflow/v1/flow.func • 1 public route • 9.77 MB
| Metric | Value |
|---|---|
| Public routes | /.well-known/workflow/v1/flow |
| Runtime | nodejs24.x |
| Handler | index.mjs |
| Payload | 9.77 MB |
| Function files | 9.77 MB across 114 files |
| Traced dependencies | 0 B |
| Signal | 🟠 Bundled file index.mjs is 1.83 MB (18.8%) |
🟠 🔎 Dependency Analysis
📦 Bundled files:
Bundled file size
🟠 index.mjs [#########...............] 1.83 MB 18.8%
🟡 _libs/undici.mjs [#####...................] 980.8 kB 10.0%
🟡 _chunks/esm-Fqlolk7e.mjs [####....................] 723.3 kB 7.4%
🟡 _chunks/chatgpt-model.mjs [###.....................] 699.1 kB 7.2%
🟡 _chunks/signal-exit-Dsy-TT0V.mjs [###.....................] 616.2 kB 6.3%
🔴 Other bundled files [########################] 4.91 MB 50.3%
🧾 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 • 16 public routes, 1 internal alias • 9.77 MB
| Metric | Value |
|---|---|
| Public routes | //.well-known/workflow/v1/webhook/[token]/eve/v1/activity/[token]/eve/v1/callback/[token]/eve/v1/connections/[name]/callback/[attemptId]/[sessionId]/eve/v1/health/eve/v1/info/eve/v1/session/eve/v1/session/[parentSessionId]/subagents/[callId]/[childSessionId]/stream/eve/v1/session/[sessionId]/eve/v1/session/[sessionId]/cancel/eve/v1/session/[sessionId]/clear/eve/v1/session/[sessionId]/compact/eve/v1/session/[sessionId]/reset/eve/v1/session/[sessionId]/stream/eve/v1/task-input/[token] |
| Internal aliases | /__server |
| Runtime | nodejs24.x |
| Handler | index.mjs |
| Payload | 9.77 MB |
| Function files | 9.77 MB across 114 files |
| Traced dependencies | 0 B |
| Signal | 🟠 Bundled file index.mjs is 1.83 MB (18.8%) |
🟠 🔎 Dependency Analysis
📦 Bundled files:
Bundled file size
🟠 index.mjs [#########...............] 1.83 MB 18.8%
🟡 _libs/undici.mjs [#####...................] 980.8 kB 10.0%
🟡 _chunks/esm-Fqlolk7e.mjs [####....................] 723.3 kB 7.4%
🟡 _chunks/chatgpt-model.mjs [###.....................] 699.1 kB 7.2%
🟡 _chunks/signal-exit-Dsy-TT0V.mjs [###.....................] 616.2 kB 6.3%
🔴 Other bundled files [########################] 4.91 MB 50.3%
🧾 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: 6.02 s -> 5.77 s (-251.2 ms) vs
main (1a9556c). - Timing is informational: shared GitHub runners are too variable for a hard timing budget.
Detailed phase timings vs `main (1a9556c)`
| Phase | Baseline | Current | Delta |
|---|---|---|---|
extension.check |
0.8 ms | 14.4 ms | +13.6 ms |
project.resolve |
0.4 ms | 4.0 ms | +3.6 ms |
workspace.create |
0.6 ms | 3.3 ms | +2.7 ms |
host.prepare |
587.1 ms | 558.6 ms | -28.5 ms |
vercel.service-prefix.resolve |
2.3 ms | 2.4 ms | +0.1 ms |
nitro.create |
602.0 ms | 368.4 ms | -233.6 ms |
sandbox.prewarm |
417.2 ms | 392.3 ms | -24.9 ms |
nitro.cache.prepare |
0.3 ms | 0.3 ms | 0.0 ms |
nitro.prepare |
0.8 ms | 0.8 ms | 0.0 ms |
nitro.public-assets |
0.7 ms | 0.8 ms | +0.1 ms |
nitro.prerender |
0.5 ms | 0.4 ms | -0.1 ms |
nitro.bundle |
4.35 s | 4.37 s | +14.2 ms |
nitro.cache.write |
0.3 ms | 0.4 ms | +0.1 ms |
vercel.workflow-function.materialize |
47.3 ms | 49.2 ms | +1.9 ms |
agent-summary.emit |
0.7 ms | 0.7 ms | 0.0 ms |
nitro.close |
0.2 ms | 0.1 ms | -0.1 ms |
output.publish |
3.7 ms | 3.5 ms | -0.2 ms |
workspace.remove |
2.4 ms | 2.2 ms | -0.2 ms |
…oordination Signed-off-by: Andrew Barba <barba@hey.com>
…ream writers Signed-off-by: Andrew Barba <barba@hey.com>
…dates Signed-off-by: Andrew Barba <barba@hey.com>
Signed-off-by: Andrew Barba <barba@hey.com>
Interactive research page mapping every workflow-server and VQS round trip between ingress and the first model call for each session path (new session, idle follow-up, steer on an active turn, Slack ingress, first-turn rekey, tools, cancel and timeout), with the hosted phase timings from the agent-workflow-stress run and the resulting optimization levers. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: Pranay Prakash <pranay.gp@gmail.com>
Addendum to the session holder research and the wire-budget page: start the holder and first turn in parallel from the handler, let the first turn write index zero, move the timeout start and entered marker off the critical path, trim holder bootstrap, and pursue multi-event suspension deltas upstream instead of changing eve's hook shape. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: Pranay Prakash <pranay.gp@gmail.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: Pranay Prakash <pranay.gp@gmail.com>
…dget page Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: Pranay Prakash <pranay.gp@gmail.com>
…erhead Signed-off-by: Andrew Barba <barba@hey.com>
Signed-off-by: Andrew Barba <barba@hey.com>
|
Your Vercel team Internal Playground is not permitted to deploy from this git repository. Contact an administrator to add github organization vercel as a Protected Git Scope in Internal Playground on Vercel. Once added, commit again to see your changes. Learn more: https://vercel.com/docs/security/protected-git-scopes |
Re-trace Paths A and B against 5a95ccb: three steps per turn, the checkpoint carried through step payloads, session.waiting written in finalize, descriptor and timeout start overlapped with the model. Add the four-run benchmark chart and note that the native phase profiler no longer exists on the branch. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: Pranay Prakash <pranay.gp@gmail.com>
…turn start Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: Pranay Prakash <pranay.gp@gmail.com>
Summary
Keeping stable session streams in a parent workflow pins turn execution to long-lived orchestration code. A small holding workflow now owns session resources and continuation aliases, while independent terminating workflows execute turns through unified owner inboxes. This draft focuses on the eve architecture and its interfaces; the cross-workflow stream writer remains a declaration stub pending SDK support. Existing-session migration is deferred.
Validation
pnpm install --frozen-lockfileandpnpm --filter eve buildpassed after clearing the generated SDK and package outputs. The installed SDK is unpatched;Run.getWritable,Run.getStreamReference, andRun.getReturnValueare absent.Run.getWritable()API. The stub fails explicitly when that API is unavailable.Checklist
CONTRIBUTING.mdevepackagegit commit --signoff)