feat(eve): consolidate model provider onboarding#166
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
53d80bf to
d2664db
Compare
d944790 to
1cc623c
Compare
7846107 to
599b39a
Compare
Signed-off-by: Rui Conti <ruiconti@gmail.com>
Replace full options/menu toEqual arrays in provider.test.ts and model.test.ts with assertions on the behavioral fields only (value, disabled, data-carrying hints, notices). Exact label/hint/description copy is already exercised at the renderer layer, so pinning it twice only made the flow tests brittle to cosmetic edits. Delete four tests fully covered by a sibling or the editable-select reducer: setup-panel's build-phase pulse (covered by the open-question pulse test), selected-stacked-hint (covered by the yellow-hint foreground/dim test), dynamic-hint (covered by the hovered-editable-row test), and terminal-renderer's untouched-editable-row submit (covered by the edit-and-submit test). No control-flow coverage removed; -175 net lines, all touched suites green, typecheck/lint/fmt clean. Signed-off-by: Rui Conti <ruiconti@gmail.com>
Signed-off-by: Rui Conti <ruiconti@gmail.com>
9426e96 to
9f9fd3d
Compare
Contributor
Bundle + Package Summary:
|
| Area | Metric | Baseline | Current | Delta |
|---|---|---|---|---|
| Package | Packed tarball | 3.35 MB | 3.35 MB | +3.5 kB |
| Package | Unpacked publish size | 12.16 MB | 12.17 MB | +11.0 kB |
| Package | Installed footprint | 52.36 MB | 52.37 MB | +11.0 kB |
| Package | Published files | 2249 | 2251 | +2 |
| Package | Installed files | 5454 | 5456 | +2 |
| Runtime | Unique function payloads | 2 | 2 | 0 |
| Runtime | Total function bytes | 9.35 MB | 9.35 MB | -176 B ✅ |
| Runtime | Public routes | 9 | 9 | 0 |
Changed function payloads vs main (b29e2ae) (2)
| Function | Status | Baseline | Current | Delta | Route changes |
|---|---|---|---|---|---|
functions/__server.func |
changed | 3.87 MB | 3.87 MB | -144 B ✅ | none |
functions/.well-known/workflow/v1/flow.func |
changed | 5.48 MB | 5.48 MB | -32 B ✅ | none |
Build Metadata
- Preset:
vercel - Nitro:
nitro@3.0.260610-beta - Output directory:
apps/fixtures/weather-agent/.vercel/output - Build metadata timestamp: 2026-06-23T16:24:55.667Z
- Route aliases: 9 public, 1 internal (10 total aliases)
- Vercel routes in config: 10
- Severity legend: 🔴 dominant/large, 🟠 notable, 🟡 watch, ⚪ small
Package Drill-Down
Package Details
- Package:
eve@0.13.1 - Package directory:
packages/eve - Tarball: 3.35 MB (
eve-0.13.1.tgz) - Unpacked payload: 12.17 MB across 2251 published files
- Installed footprint: 52.37 MB across 5456 installed files
- Installed root package: 11.06 MB
- Installed dependencies: 41.32 MB
- Runtime dependencies: 1
- Peer dependencies: 12 (11 optional)
Installed footprint is measured from an isolated temporary npm install of the packed tarball.
Heavy installed dependencies
@rolldown/binding-linux-x64-gnu: 20.61 MB (39.4%)eve: 11.06 MB (21.1%)ai: 6.20 MB (11.8%)zod: 4.97 MB (9.5%)nitro: 2.41 MB (4.6%)
Publish payload breakdown
Published file size
🟠 dist/src/compiled/experimental-ai-sdk-code-mo... [####....................] 1.51 MB 12.4%
🟡 dist/src/compiled/@workflow/core/runtime.js [##......................] 775.4 kB 6.4%
🟡 dist/src/compiled/@vercel/sandbox/index.js [##......................] 632.0 kB 5.2%
🟡 dist/src/compiled/@chat-adapter/slack/index.js [#.......................] 436.9 kB 3.6%
🟡 dist/src/compiled/_chunks/workflow/attribute-... [#.......................] 370.9 kB 3.0%
🔴 Other published files [########################] 8.45 MB 69.4%
Installed footprint breakdown
Installed package size
🔴 @rolldown/binding-linux-x64-gnu [########################] 20.61 MB 39.4%
🔴 eve [#############...........] 11.06 MB 21.1%
🔴 ai [#######.................] 6.20 MB 11.8%
🟠 zod [######..................] 4.97 MB 9.5%
🟠 nitro [###.....................] 2.41 MB 4.6%
🟡 rolldown [#.......................] 771.0 kB 1.5%
🔴 Other installed packages [#######.................] 6.37 MB 12.2%
Runtime dependencies (1)
| Package | Range | Notes |
|---|---|---|
nitro |
3.0.260610-beta |
Peer dependencies (12)
| Package | Range | Notes |
|---|---|---|
@opentelemetry/api |
^1.0.0 |
optional peer |
@sveltejs/kit |
^2.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 |
next |
^16.0.0 |
optional peer |
nuxt |
^4.0.0 |
optional peer |
react |
^19.0.0 |
optional peer |
svelte |
^5.0.0 |
optional peer |
vite |
^8.0.0 |
optional peer |
vue |
^3.5.0 |
optional peer |
Function Drill-Down
Payload Size Graph
Unique function payload size and share of total
🔴 functions/.well-known/workflow/v1/flow.func [########################] 5.48 MB 58.6%
🔴 functions/__server.func [#################.......] 3.87 MB 41.4%
Top Function Payloads
🟠 functions/.well-known/workflow/v1/flow.func • 1 public route • 5.48 MB
| Metric | Value |
|---|---|
| Public routes | /.well-known/workflow/v1/flow |
| Runtime | nodejs24.x |
| Handler | index.mjs |
| Payload | 5.48 MB |
| Function files | 5.48 MB across 27 files |
| Traced dependencies | 0 B |
| Signal | 🟠 Bundled file __eve_nitro_handler__.mjs is 1.51 MB (27.6%) |
🟠 🔎 Dependency Analysis
📦 Bundled files:
Bundled file size
🟠 __eve_nitro_handler__.mjs [########################] 1.51 MB 27.6%
🟠 _chunks/runtime.mjs [###############.........] 958.4 kB 17.5%
🟡 _chunks/sandbox.mjs [############............] 766.0 kB 14.0%
🟡 _chunks/attribute-changes-Bi5DLT8S.mjs [########................] 472.2 kB 8.6%
🟡 _chunks/dist-DTchiX0N.mjs [#######.................] 460.6 kB 8.4%
🟠 Other bundled files [#####################...] 1.31 MB 24.0%
🧾 Vercel Config
{
"handler": "index.mjs",
"launcherType": "Nodejs",
"shouldAddHelpers": false,
"supportsResponseStreaming": true,
"runtime": "nodejs24.x",
"environment": {
"NODE_OPTIONS": "--experimental-require-module",
"WORKFLOW_QUEUE_NAMESPACE": "eve"
},
"maxDuration": "max",
"experimentalTriggers": [
{
"type": "queue/v2beta",
"topic": "__eve_wkf_workflow_*",
"consumer": "default",
"retryAfterSeconds": 5,
"initialDelaySeconds": 0
}
]
}🟠 functions/__server.func • 8 public routes, 1 internal alias • 3.87 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]/stream |
| Internal aliases | /__server |
| Runtime | nodejs24.x |
| Handler | index.mjs |
| Payload | 3.87 MB |
| Function files | 3.87 MB across 21 files |
| Traced dependencies | 0 B |
| Signal | 🟠 Bundled file index.mjs is 1.40 MB (36.3%) |
🟠 🔎 Dependency Analysis
📦 Bundled files:
Bundled file size
🟠 index.mjs [########################] 1.40 MB 36.3%
🟠 _chunks/runtime.mjs [###############.........] 875.8 kB 22.6%
🟠 _chunks/sandbox.mjs [#############...........] 766.0 kB 19.8%
🟡 _chunks/attribute-changes-Bi5DLT8S.mjs [########................] 448.5 kB 11.6%
⚪ _libs/zod.mjs [##......................] 114.2 kB 3.0%
🟡 Other bundled files [####....................] 258.8 kB 6.7%
🧾 Vercel Config
{
"handler": "index.mjs",
"launcherType": "Nodejs",
"shouldAddHelpers": false,
"supportsResponseStreaming": true,
"runtime": "nodejs24.x"
}Signed-off-by: Rui Conti <ruiconti@gmail.com>
Signed-off-by: Rui Conti <ruiconti@gmail.com>
Reshape ModelProviderAccess from a status flag into a kind-discriminated
union (unknown | external | gateway{runtime}). Gateway-credential evidence now
keys off the compiled model routing rather than the endpoint alone: a model
counts as gateway-routed only when routing.kind is "gateway", a freshly loaded
AI_GATEWAY_API_KEY outranks a stale OIDC endpoint, and endpoint reuse requires
the same credential. Boot detection maps a disconnected gateway to "model
provider not linked"/"credentials missing" and no longer infers configuration
from a bare local credential.
Signed-off-by: Rui Conti <ruiconti@gmail.com>
…ne-edit variant The setup select panel carried two near-identical variants: editable (task-list layout + in-place rename field) and provider (stacked layout + masked key field with validation phases). Both are one idea — a menu row that hosts an inline editor — modeled as separate layout siblings. Collapse them into a single inline-edit variant carrying an explicit layout plus a discriminated editor payload (rename | key). Drops the parallel provider field from SelectPresentation and the provider: undefined boilerplate across the other cases, folds the two row renderers behind one inlineEditOption dispatch, and merges the two footer-hint branches. Pure refactor; no behavior change. Signed-off-by: Rui Conti <ruiconti@gmail.com>
Signed-off-by: Rui Conti <ruiconti@gmail.com>
AndrewBarba
approved these changes
Jun 23, 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.
What changed
AI_GATEWAY_API_KEY, or direct-provider setup.verceltoprovider, update/modelsetup behavior, add a patch changeset, and revise the Dev TUI guide.Picker behavior
The inline-key interaction is private to the Dev TUI, not a
PrompterAPI change. Its state machine masks the key with a block cursor, aborts obsolete validation, keeps only the latest result, and clears a non-empty entry before Esc/Ctrl-C cancels. The selected option keeps its description visible, selected hints use the terminal foreground, and long invalid keys retain their red failure in a narrow panel.Project setup continues through the existing create-or-link flow. The direct-provider choice shows configuration instructions and preserves the current provider state.
Model-access state
Provider changes reload local env files and refresh model access. The runner normalizes newly loaded local gateway credential evidence once, then gives that same snapshot to both setup detection and the persistent status bar. This fixes the stale
⚠ AI Gatewaylabel after a valid local key is saved, while retaining the committed-write refresh when an interrupt races the setup command.Scope
This targets
maindirectly. The publicPromptercontract is unchanged; the picker adapter is private to the Dev TUI.