feat(appkit): auto-start app under test for agent evals (stack 6/6) - #482
feat(appkit): auto-start app under test for agent evals (stack 6/6)#482MarioCadenas wants to merge 4 commits into
Conversation
|
This pull request has had no activity for 23 days and has been marked as stale. It will be closed in 7 days if there is no further activity. Add a comment, push a commit, or apply the |
|
This pull request has been automatically closed because it had no activity for a month. Feel free to reopen it if you would like to continue the work. |
fa502c0 to
93cc379
Compare
93cc379 to
7f42199
Compare
7f42199 to
2351785
Compare
2351785 to
8676d5e
Compare
📦 Bundle size reportCompared against
|
| dist | raw | gzip |
|---|---|---|
| JS (runtime) | 1.1 MB (+51 KB) | 403 KB (+21 KB) |
| Type declarations | 419 KB (+34 KB) | 151 KB (+14 KB) |
| Source maps | 2.2 MB (+104 KB) | 755 KB (+40 KB) |
| Other | 11 KB | 3.7 KB |
| Total | 3.8 MB (+188 KB) | 1.3 MB (+75 KB) |
Per-entry composition (own code — deps external (as shipped))
| Entry | Initial (gz) | Lazy (gz) | Total (gz) | node_modules (min) | Own code (min) |
|---|---|---|---|---|---|
. |
95 KB (-1 B) | 2.5 KB | 98 KB (-1 B) | external | 313 KB |
./beta |
89 KB (+12 KB) | 455 B (-1 B) | 89 KB (+12 KB) | external | 267 KB (+38 KB) |
./testing |
17 KB | 0 B | 17 KB | external | 51 KB |
./tsdown |
520 B | 0 B | 520 B | external | 813 B |
./type-generator |
23 KB | 0 B | 23 KB | external | 65 KB |
Chunks:
| Entry | Chunk | Load | Size (gz) |
|---|---|---|---|
. |
index.js |
initial | 91 KB |
. |
utils.js |
initial | 4.0 KB |
. |
remote-tunnel-manager.js |
lazy | 2.5 KB |
./beta |
beta.js |
initial | 73 KB |
./beta |
stream-manager.js |
initial | 5.8 KB |
./beta |
wide-event-emitter.js |
initial | 3.2 KB |
./beta |
databricks.js |
initial | 3.2 KB |
./beta |
configuration.js |
initial | 2.2 KB |
./beta |
service-context.js |
initial | 1.3 KB |
./beta |
client.js |
initial | 434 B |
./beta |
client-options.js |
initial | 219 B |
./beta |
supervisor-api.js |
lazy | 192 B |
./beta |
databricks.js |
lazy | 141 B |
./beta |
index.js |
lazy | 122 B |
./testing |
index.js |
initial | 17 KB |
./tsdown |
index.js |
initial | 520 B |
./type-generator |
index.js |
initial | 23 KB |
@databricks/appkit-ui
npm tarball (packed): 350 KB (-4 B) — gzipped download (dist + bin; excludes release-only docs/NOTICE).
| dist | raw | gzip |
|---|---|---|
| JS (runtime) | 395 KB | 132 KB |
| Type declarations | 229 KB | 84 KB (-1 B) |
| Source maps | 766 KB | 253 KB |
| CSS | 16 KB | 3.2 KB |
| Total | 1.4 MB | 473 KB (-1 B) |
Per-entry composition (consumer bundle — deps bundled, peerDeps external)
| Entry | Initial (gz) | Lazy (gz) | Total (gz) | node_modules (min) | Own code (min) |
|---|---|---|---|---|---|
./js |
5.3 KB | 49 KB | 55 KB | 208 KB | 14 KB |
./js/beta |
20 B | 0 B | 20 B | 0 B | 0 B |
./react |
432 KB | 49 KB | 481 KB | 1.3 MB | 177 KB |
./react/beta |
1.0 KB | 0 B | 1.0 KB | 0 B | 1.9 KB |
Chunks:
| Entry | Chunk | Load | Size (gz) |
|---|---|---|---|
./js |
index.js |
initial | 5.2 KB |
./js |
chunk |
initial | 120 B |
./js |
apache-arrow |
lazy | 49 KB |
./js/beta |
beta.js |
initial | 20 B |
./react |
index.js |
initial | 430 KB |
./react |
tslib |
initial | 2.1 KB |
./react |
apache-arrow |
lazy | 49 KB |
./react/beta |
beta.js |
initial | 1.0 KB |
⚠️ Over budget: a package's shipped tarball, or a browser entry's consumer bundle (deps included), grew by more than 5% (and >10 KB). This check will fail — reduce the size, or acknowledge the increase by updatingbundle-size-baseline.json.
🤖 AppKit PR bot🔬 Run evalsStart an eval for this PR from the evals-monitor app: Go to Evals Monitor → 📦 Try this PR's app templateScaffolds a new app from this PR's SDK build. Run it in any folder (requires the GitHub CLI — gh run download 33778299865 -R databricks/appkit -n appkit-template-0.71.0-pr.742bcb9-pr-agent-evals-6-webserver-482 -D appkit-pr-482 \
&& unzip -o "appkit-pr-482/appkit-template-0.71.0-pr.742bcb9-pr-agent-evals-6-webserver-482.zip" -d "appkit-pr-482" \
&& databricks apps init --template "appkit-pr-482"The template pins |
8676d5e to
6fd47e9
Compare
634fa5a to
442a29b
Compare
Add a Playwright-style `webServer` so `appkit agent eval` can boot the app
itself instead of requiring a server to be running.
- Root `evals.config.ts` (project root, via defineEvalConfig) carries run-wide
settings: `baseUrl` + `webServer { command, url?, timeoutMs?, reuseExisting? }`.
appkit exposes `loadRootEvalConfig` / `findRootEvalConfig`; the per-agent
config keeps its narrow maxConcurrency/timeoutMs role.
- CLI resolves baseUrl/concurrency/timeout as flag > root config > default, and
before running: reuses a server already answering at `url` (default) or spawns
`command`, polls until any HTTP response or timeout, then SIGTERMs the process
group in a finally. A reused server is left untouched.
- `--url` default changed 3000 → 8000 (the port these apps actually use).
Verified end-to-end against dev-playground: cold start boots + tears down; warm
start reuses and leaves the dev server running.
Signed-off-by: MarioCadenas <MarioCadenas@users.noreply.github.com>
Signed-off-by: MarioCadenas <MarioCadenas@users.noreply.github.com>
…ixtures findRootEvalConfig referenced an isFile helper that the eval-discovery refactor had dropped; use existsSync (as discoverEvalConfigs does). Also align the config discovery test fixtures to the server/agents layout the runner now uses. Signed-off-by: MarioCadenas <MarioCadenas@users.noreply.github.com>
Regenerate the committed typedoc api docs against the rebased tree so the sidebar matches the generated pages (adds Function.defineEvalConfig, drops removed symbols like runBounded), fixing the docs build. Signed-off-by: MarioCadenas <MarioCadenas@users.noreply.github.com>
9be34cd to
114de54
Compare
Stack 6/6 · targets
pr/agent-evals-5-docs(review after #481).Playwright-style auto-start for the app under test, so
appkit agent evalno longer requires a manually-started server.evals.config.ts(project root, viadefineEvalConfig) carries run-wide settings —baseUrlandwebServer { command, url?, timeoutMs?, reuseExisting? }— plus defaults formaxConcurrency/timeoutMs.loadRootEvalConfig/findRootEvalConfigexposed from@databricks/appkit/beta. The per-agentevals.config.tskeeps its narrow role (additive — nothing removed).baseUrl/concurrency/timeout as flag > root config > default; before running, reuses a server already answering aturl(default) or spawnscommand, polls until any HTTP response or timeout, then SIGTERMs the process group in afinally. A reused server is left running.--urldefault3000→8000(the port these apps actually serve on).Design was grilled to resolve scope (root config, spawn in CLI not the library, readiness = any HTTP response, reuse-existing default true). Verified end-to-end against dev-playground: cold start boots + tears down; warm start reuses and leaves the dev server up.