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 (+13 KB) | 411 KB (+4.5 KB) |
| Type declarations | 426 KB (+8.1 KB) | 153 KB (+3.0 KB) |
| Source maps | 2.3 MB (+25 KB) | 770 KB (+8.5 KB) |
| Other | 11 KB | 3.7 KB |
| Total | 3.8 MB (+46 KB) | 1.3 MB (+16 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 | 2.5 KB | 98 KB | external | 313 KB |
./beta |
92 KB (+1.5 KB) | 457 B | 92 KB (+1.5 KB) | external | 278 KB (+4.1 KB) |
./testing |
17 KB | 0 B | 17 KB | external | 52 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 | 76 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.3 KB |
./beta |
service-context.js |
initial | 1.3 KB |
./beta |
client.js |
initial | 434 B |
./beta |
client-options.js |
initial | 220 B |
./beta |
supervisor-api.js |
lazy | 192 B |
./beta |
databricks.js |
lazy | 142 B |
./beta |
index.js |
lazy | 123 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 |
🤖 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 34379662677 -R databricks/appkit -n appkit-template-0.73.0-pr.58372b2-pr-agent-evals-6-webserver-482 -D appkit-pr-482 \
&& unzip -o "appkit-pr-482/appkit-template-0.73.0-pr.58372b2-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
9be34cd to
114de54
Compare
114de54 to
5e61ce9
Compare
5e61ce9 to
ae370bf
Compare
ae370bf to
7c8f45c
Compare
7c8f45c to
d0118a3
Compare
d0118a3 to
418f771
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>
418f771 to
3a6c9c0
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.