-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathreport.html
More file actions
724 lines (695 loc) · 137 KB
/
Copy pathreport.html
File metadata and controls
724 lines (695 loc) · 137 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Jev Computer Use Bench</title>
<script>try { var t = localStorage.getItem("theme"); if (t === "dark" || t === "light") document.documentElement.setAttribute("data-theme", t); } catch (e) {}</script>
<style>
:root { color-scheme: light; --bg:#ffffff; --panel:#ffffff; --panel-2:#f6f6f3; --line:#e3e3dd; --line-strong:#bfc0b8; --muted:#73756f; --text:#10110f; --green:#438661; --yellow:#a36a17; --red:#c85858; --blue:#3977a7; --purple:#7566a9; --shadow:none; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { color-scheme: dark; --bg:#0e0f0e; --panel:#121311; --panel-2:#191a17; --line:#2d2f2a; --line-strong:#4a4c45; --muted:#a5a79e; --text:#f4f4ef; --green:#8cc5a5; --yellow:#efc879; --red:#ed9797; --blue:#8ebce4; --purple:#c4b9f1; } }
:root[data-theme="dark"] { color-scheme: dark; --bg:#0e0f0e; --panel:#121311; --panel-2:#191a17; --line:#2d2f2a; --line-strong:#4a4c45; --muted:#a5a79e; --text:#f4f4ef; --green:#8cc5a5; --yellow:#efc879; --red:#ed9797; --blue:#8ebce4; --purple:#c4b9f1; }
* { box-sizing:border-box; } body { margin:0; background:var(--bg); color:var(--text); font:14px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; letter-spacing:-.01em; } a { color:inherit; } main { max-width:1060px; margin:0 auto; padding:0 28px 90px; } h1 { font-size:clamp(42px,6vw,72px); line-height:.98; margin:0 0 18px; letter-spacing:-.065em; max-width:780px; font-weight:750; } h2 { margin:66px 0 12px; font-size:24px; letter-spacing:-.035em; font-weight:730; } h3 { margin:30px 0 8px; font-size:16px; letter-spacing:-.02em; } p { max-width:820px; color:var(--muted); } .lede { font-size:17px; max-width:650px; } .stamp { color:var(--muted); font-size:12px; }
.topnav { height:54px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:20px; font-size:12px; } .topnav a { text-decoration:none; color:var(--muted); } .topnav a:hover { color:var(--text); } .brand { display:flex; align-items:center; gap:9px; color:var(--text) !important; font-weight:750; } .brand-mark { width:18px; height:18px; display:grid; place-items:center; background:var(--text); color:var(--bg); font-size:11px; line-height:1; } .nav-links { display:flex; gap:18px; align-items:center; } .theme-toggle { border:1px solid var(--line-strong); background:var(--bg); color:var(--text); padding:5px 9px; cursor:pointer; font:inherit; font-size:11px; } .theme-toggle:hover { background:var(--text); color:var(--bg); } .hero { padding:54px 0 38px; border-bottom:1px solid var(--line); display:grid; grid-template-columns:minmax(0,1.35fr) minmax(230px,.65fr); gap:42px; align-items:end; } .hero-actions { display:flex; gap:8px; margin-top:22px; } .hero-actions a { text-decoration:none; border:1px solid var(--line-strong); padding:7px 11px; font-size:12px; } .hero-actions a:first-child { background:var(--text); color:var(--bg); border-color:var(--text); } .hero-meta { border-left:1px solid var(--line); padding-left:24px; display:grid; grid-template-columns:1fr 1fr; gap:18px 24px; } .hero-meta dt { color:var(--muted); font:10px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace; text-transform:uppercase; letter-spacing:.08em; } .hero-meta dd { margin:3px 0 0; font-size:22px; letter-spacing:-.05em; }
.metric-strip { display:grid; grid-template-columns:repeat(4,1fr); border-bottom:1px solid var(--line); } .stat-card { border-right:1px solid var(--line); padding:18px 16px 20px 0; min-height:105px; } .stat-card:not(:first-child) { padding-left:16px; } .stat-card:last-child { border-right:0; } .stat-label,.stat-detail,.score-detail { display:block; color:var(--muted); font-size:12px; } .stat-card strong { display:block; font-size:29px; letter-spacing:-.06em; margin:6px 0 2px; font-weight:700; } .stat-card.luna strong { color:var(--green); } .stat-card.jev strong { color:var(--red); } .stat-card.hybrid strong { color:var(--purple); }
.leaderboard-shell { margin-top:55px; } .section-kicker { text-transform:uppercase; letter-spacing:.12em; font:10px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace; color:var(--muted); } .control-strip { border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin:18px 0 0; padding:8px 0; display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; } .segmented { display:flex; gap:0; } .segment { border:1px solid var(--line); border-right:0; padding:5px 9px; color:var(--muted); font-size:11px; } .segment:last-child { border-right:1px solid var(--line); } .segment.active { background:var(--text); border-color:var(--text); color:var(--bg); } .control-note { color:var(--muted); font-size:11px; } .leaderboard-head,.leaderboard-row { display:grid; grid-template-columns:42px minmax(250px,1fr) 110px 125px 100px; gap:16px; align-items:center; } .leaderboard-head { padding:22px 0 8px; color:var(--muted); font:10px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace; text-transform:uppercase; } .leaderboard-list { border-top:1px solid var(--line-strong); } .leaderboard-row { min-height:82px; border-bottom:1px solid var(--line); } .leaderboard-rank { color:var(--muted); font:11px ui-monospace,SFMono-Regular,Menlo,monospace; } .model-line { display:flex; align-items:center; gap:9px; flex-wrap:wrap; } .model-line strong { font-size:15px; } .lane-label { color:var(--muted); font-size:11px; } .model-note { color:var(--muted); font-size:11px; margin:2px 0 7px; } .row-meter { height:6px; background:var(--panel-2); max-width:380px; } .row-meter span { display:block; height:100%; } .row-meter span.luna { background:var(--green); } .row-meter span.jev { background:var(--red); } .row-meter span.hybrid { background:var(--purple); } .leaderboard-score strong,.leaderboard-metric strong { display:block; font-size:16px; letter-spacing:-.04em; } .leaderboard-score span,.leaderboard-metric span { display:block; color:var(--muted); font-size:10px; } .leaderboard-score span { color:var(--text); }
.frontier-card { border-top:1px solid var(--line-strong); border-bottom:1px solid var(--line); padding:18px 0 12px; margin-top:42px; } .frontier-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; } .frontier-heading p { margin:0; font-size:12px; text-align:right; } .frontier-tabs { margin-top:18px; } .frontier-tab { background:var(--bg); cursor:pointer; font:inherit; } .frontier-tab:hover { color:var(--text); } .frontier-panel { display:none; } .frontier-panel.active { display:block; } .frontier-lane-note { margin:10px 0 0; color:var(--muted); font-size:12px; } .frontier-svg { width:100%; height:auto; display:block; margin-top:4px; overflow:visible; } .frontier-bg { fill:var(--bg); } .frontier-grid { stroke:var(--line); stroke-width:1; } .frontier-grid.vertical { stroke-dasharray:2 5; } .frontier-axis-line { stroke:var(--line-strong); stroke-width:1; } .frontier-axis,.frontier-axis-title { fill:var(--muted); font:11px ui-monospace,SFMono-Regular,Menlo,monospace; } .frontier-axis-title { font-size:10px; } .frontier-mark { cursor:crosshair; outline:none; transition:opacity .15s ease,filter .15s ease; } .frontier-mark:focus .frontier-point { stroke:var(--text); stroke-width:4; } .frontier-svg.chart-hovered .frontier-mark:not(.is-active) { opacity:.16; filter:grayscale(1); } .frontier-svg.chart-hovered .frontier-mark.is-active { opacity:1; } .frontier-point { stroke:var(--bg); stroke-width:3; } .frontier-point-label { fill:var(--text); font:11px ui-monospace,SFMono-Regular,Menlo,monospace; paint-order:stroke; stroke:var(--bg); stroke-width:4px; stroke-linejoin:round; } .frontier-point-label.jev { fill:var(--red); } .frontier-point-label.luna { fill:var(--green); } .frontier-point-label.hybrid { fill:var(--purple); } .frontier-hover-state { display:none; pointer-events:none; } .frontier-hover-state.is-active { display:block; } .frontier-hover-line { stroke:var(--blue); stroke-width:1.5; stroke-dasharray:5 5; opacity:.9; } .frontier-hover-axis-label { fill:var(--blue); font:700 11px ui-monospace,SFMono-Regular,Menlo,monospace; } .frontier-tooltip rect { fill:var(--text); opacity:.96; } .frontier-tooltip text { fill:var(--bg); font:11px ui-monospace,SFMono-Regular,Menlo,monospace; } .frontier-tooltip .frontier-tooltip-title { font-weight:700; }
.snapshot-grid { display:grid; grid-template-columns:1fr 1fr; gap:34px; margin-top:40px; } .snapshot-block { border-top:1px solid var(--line-strong); } .snapshot-block h3 { margin:14px 0 0; } .snapshot-block p { margin:3px 0 14px; font-size:12px; } .snapshot-table { width:100%; border-collapse:collapse; } .snapshot-table th,.snapshot-table td { padding:9px 8px 9px 0; border-bottom:1px solid var(--line); text-align:left; font-size:12px; vertical-align:top; } .snapshot-table th { color:var(--muted); font:10px ui-monospace,SFMono-Regular,Menlo,monospace; text-transform:uppercase; } .snapshot-table td strong { font-weight:700; } .snapshot-table td:nth-child(2) { white-space:nowrap; } .snapshot-table td:nth-child(3) { white-space:nowrap; }
.video-library { margin-top:56px; border-top:1px solid var(--line-strong); } .video-library-intro { display:flex; justify-content:space-between; gap:30px; align-items:end; padding:14px 0 4px; } .video-library-intro p { margin:0; font-size:12px; text-align:right; } .video-library-group { border-top:1px solid var(--line); padding:20px 0 5px; } .video-group-heading { display:flex; justify-content:space-between; gap:24px; align-items:baseline; } .video-group-heading h3 { margin:0; } .video-group-heading p { margin:0; font-size:12px; text-align:right; } .video-library-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:13px; } .video-library-card { display:flex; flex-direction:column; min-height:140px; padding:13px; border:1px solid var(--line); text-decoration:none; background:var(--panel); transition:border-color .15s ease,transform .15s ease; } .video-library-card:hover { border-color:var(--text); transform:translateY(-2px); } .video-library-top { display:flex; justify-content:space-between; gap:10px; margin-bottom:15px; } .video-label { font:10px ui-monospace,SFMono-Regular,Menlo,monospace; text-transform:uppercase; letter-spacing:.1em; } .video-duration { font:11px ui-monospace,SFMono-Regular,Menlo,monospace; color:var(--muted); } .video-library-card strong { font-size:14px; line-height:1.25; } .video-caption { color:var(--muted); font-size:12px; margin:5px 0 13px; } .video-library-card code { margin-top:auto; color:var(--muted); font:9px ui-monospace,SFMono-Regular,Menlo,monospace; overflow-wrap:anywhere; } .video-library-card.luna { border-top:2px solid var(--green); } .video-library-card.jev { border-top:2px solid var(--red); } .video-library-card.hybrid { border-top:2px solid var(--purple); }
.callout { border:1px solid var(--line); border-left:3px solid var(--text); padding:15px 17px; margin:28px 0; background:var(--panel-2); } .callout strong { color:var(--text); } .warning { border-left-color:var(--yellow); background:transparent; } .warning strong { color:var(--yellow); } .table-wrap { overflow-x:auto; margin:12px 0 20px; } table { width:100%; min-width:760px; border-collapse:collapse; } th,td { border-bottom:1px solid var(--line); padding:10px 11px 10px 0; text-align:left; vertical-align:top; } th { color:var(--muted); font:10px ui-monospace,SFMono-Regular,Menlo,monospace; text-transform:uppercase; font-weight:500; white-space:nowrap; } tr:last-child td { border-bottom:0; } td strong { color:var(--text); } .small { font-size:12px; color:var(--muted); } .grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:10px; } .video { background:var(--panel); border:1px solid var(--line); padding:13px; } .pill { display:inline-block; border:1px solid var(--line); padding:3px 9px; color:var(--muted); margin:3px 4px 3px 0; font-size:12px; } code { color:var(--muted); } ul { max-width:820px; } li { margin:7px 0; } .good { color:var(--green); } .bad { color:var(--red); } .muted { color:var(--muted); }
@media (max-width:900px) { main { padding:0 20px 70px; } .hero { grid-template-columns:1fr; gap:24px; } .hero-meta { border-left:0; border-top:1px solid var(--line); padding:18px 0 0; } .leaderboard-head,.leaderboard-row { grid-template-columns:30px minmax(210px,1fr) 90px 100px; } .leaderboard-head span:last-child,.leaderboard-row .leaderboard-metric:last-child { display:none; } .video-library-grid { grid-template-columns:repeat(2,1fr); } } @media (max-width:620px) { main { padding:0 14px 55px; } .nav-links a:not(.theme-toggle) { display:none; } h1 { font-size:46px; } .metric-strip { grid-template-columns:1fr 1fr; } .stat-card:nth-child(2) { border-right:0; } .stat-card:nth-child(3),.stat-card:nth-child(4) { border-top:1px solid var(--line); } .stat-card:nth-child(3) { padding-left:0; } .snapshot-grid { grid-template-columns:1fr; gap:24px; } .video-library-intro,.video-group-heading,.frontier-heading { display:block; } .video-library-intro p,.video-group-heading p,.frontier-heading p { text-align:left; margin-top:6px; } .video-library-grid { grid-template-columns:1fr; } .leaderboard-head { display:none; } .leaderboard-row { grid-template-columns:27px 1fr 84px; gap:10px; padding:15px 0; } .leaderboard-row .leaderboard-metric { display:none; } .leaderboard-score strong { font-size:14px; } } @media print { .theme-toggle,.topnav,.hero-actions { display:none; } body { background:#fff; color:#000; } .callout,.video,.video-library-card { break-inside:avoid; } }
.segment { background:var(--bg); cursor:pointer; font:inherit; } .segment:hover { color:var(--text); } .segment.active:hover { color:var(--bg); } [hidden] { display:none !important; } .snapshot-grid { display:block; margin-top:40px; } .snapshot-block + .snapshot-block { margin-top:34px; } .table-wrap { overflow:visible; } table { min-width:0; table-layout:fixed; } th,td { overflow-wrap:anywhere; white-space:normal; } .snapshot-table td:nth-child(2),.snapshot-table td:nth-child(3) { white-space:normal; }
.video-library-group > summary { cursor:pointer; list-style:none; } .video-library-group > summary::-webkit-details-marker { display:none; } .video-library-group > summary::before { content:"+"; display:inline-block; width:18px; color:var(--muted); } .video-library-group[open] > summary::before { content:"−"; }
.run-control-strip { border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin:18px 0 0; padding:8px 0; display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; } .run-filters { display:grid; gap:8px; } .run-filter-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; } .run-filter-label { width:58px; color:var(--muted); font:10px ui-monospace,SFMono-Regular,Menlo,monospace; text-transform:uppercase; letter-spacing:.08em; } .run-table-wrap { margin-top:0; } .run-table { table-layout:fixed; } .run-table th:nth-child(1) { width:12%; } .run-table th:nth-child(2) { width:13%; } .run-table th:nth-child(3) { width:38%; } .run-table th:nth-child(4) { width:15%; } .run-table th:nth-child(5) { width:9%; } .run-table th:nth-child(6) { width:13%; } .run-table td { font-size:12px; } .run-title strong,.run-title span { display:block; } .run-title span { color:var(--muted); font-size:11px; margin-top:3px; } .run-lane,.run-outcome { font:10px ui-monospace,SFMono-Regular,Menlo,monospace; text-transform:uppercase; letter-spacing:.06em; } .run-lane.luna { color:var(--green); } .run-lane.jev { color:var(--red); } .run-lane.hybrid { color:var(--purple); } .run-outcome.good { color:var(--green); } .run-outcome.boundary { color:var(--yellow); } .run-outcome.bad { color:var(--red); } .run-empty td { color:var(--muted); font-style:italic; }
</style>
<style>
.theme-toggle { width:30px; height:30px; display:grid; place-items:center; padding:0; font-size:17px; line-height:1; }
.github-link { display:inline-flex; align-items:center; }
.theme-icon { display:block; }
.theme-icon-sun { display:none; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .theme-icon-sun { display:block; } :root:not([data-theme="light"]) .theme-icon-moon { display:none; } }
:root[data-theme="dark"] .theme-icon-sun { display:block; }
:root[data-theme="dark"] .theme-icon-moon { display:none; }
.frontier-svg.chart-hovered .frontier-mark:not(.is-active) { opacity:.82; filter:grayscale(1); }
.frontier-hover-line { stroke:var(--frontier-hover-color,var(--blue)); }
.leaderboard-head,.leaderboard-row { grid-template-columns:42px minmax(240px,1fr) 110px 105px 125px 100px; }
@media (max-width:900px) { .leaderboard-head,.leaderboard-row { grid-template-columns:30px minmax(210px,1fr) 90px 100px 100px; } }
.frontier-hover-axis-label { fill:var(--frontier-hover-color,var(--blue)); }
.run-outcome.observed { color:var(--muted); }
.run-outcome.neutral { color:var(--muted); }
.perception-card { margin-top:56px; border-top:1px solid var(--line-strong); border-bottom:1px solid var(--line); padding:18px 0 28px; } .perception-intro { max-width:760px; } .perception-tabs { display:flex; flex-wrap:wrap; margin-top:18px; } .perception-tab { border:1px solid var(--line); border-right:0; background:var(--bg); color:var(--muted); padding:7px 11px; cursor:pointer; font:inherit; font-size:12px; } .perception-tab:last-child { border-right:1px solid var(--line); } .perception-tab.active { background:var(--text); color:var(--bg); border-color:var(--text); } .perception-panel { display:none; margin-top:22px; } .perception-panel.active { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:22px; } .perception-panel h3 { margin-top:0; } .perception-diagram,.perception-code { margin:0; min-height:100%; padding:16px; border:1px solid var(--line); background:var(--panel-2); overflow:auto; } .perception-diagram { color:var(--text); font:12px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace; white-space:pre; } .perception-code { color:var(--muted); font:11px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace; white-space:pre-wrap; } .perception-caption { margin:10px 0 0; font-size:12px; color:var(--muted); } .perception-key { display:flex; flex-wrap:wrap; gap:6px 16px; margin-top:13px; color:var(--muted); font-size:12px; } .perception-key span::before { content:""; display:inline-block; width:7px; height:7px; margin-right:6px; background:var(--text); } .perception-key span:nth-child(2)::before { background:var(--green); } .perception-key span:nth-child(3)::before { background:var(--red); }
.syntax-tag,.syntax-key { color:var(--blue); } .syntax-attr,.syntax-property { color:var(--purple); } .syntax-string { color:var(--green); } .syntax-number,.syntax-boolean { color:var(--yellow); } .syntax-comment { color:var(--muted); font-style:italic; } .syntax-punctuation { color:var(--text); } .perception-code code { color:inherit; }
</style>
</head>
<body><main>
<nav class="topnav"><a class="brand" href="#top" aria-label="Jev Computer Use Bench home"><span class="brand-mark">J</span></a><div class="nav-links"><a href="#leaderboard">Leaderboard</a><a href="#videos">Videos</a><a href="#key">Key</a><a href="https://github.com/BuilderIO/jev-computer-use-tests/blob/main/TESTS.md" target="_blank" rel="noopener">Test prompts and verification</a><a class="github-link" href="https://github.com/BuilderIO/jev-computer-use-tests" target="_blank" rel="noopener" aria-label="Source on GitHub" title="Source on GitHub"><svg width="18" height="18" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path></svg></a><button class="theme-toggle" type="button" aria-label="Switch to dark mode" aria-pressed="false" title="Switch color theme"><span class="theme-icon theme-icon-sun" aria-hidden="true">☼</span><span class="theme-icon theme-icon-moon" aria-hidden="true">☾</span></button></div></nav>
<div id="top" class="hero">
<div><h1>Jev Computer Use<br>Bench</h1><div class="hero-actions"><a href="#leaderboard">See leaderboard</a><a href="#videos">Watch full runs</a></div></div>
<dl class="hero-meta"><div><dt>simple tests</dt><dd>42</dd></div><div><dt>real-world</dt><dd>10</dd></div><div><dt>computer use</dt><dd>5</dd></div><div><dt>approaches</dt><dd>4</dd></div></dl>
</div>
<section id="leaderboard" class="leaderboard-shell"><div class="section-kicker">Leaderboard</div><h2>Which approach gets the task done?</h2><div class="control-strip"><div class="segmented"><span class="segment active">Overall</span><span class="segment">Simple</span><span class="segment">Real-world</span><span class="segment">Computer use</span></div><span class="control-note">Overall combines the measured tasks. Click a lane for its components.</span></div><div class="leaderboard-head"><span>rank</span><span>approach / lane</span><span>success</span><span>total cost</span><span>cost / success</span><span>time</span></div><div class="leaderboard-list"><div class="leaderboard-row" data-lane="overall">
<div class="leaderboard-rank">01</div>
<div class="leaderboard-model"><div class="model-line"><strong>Hybrid</strong><span class="lane-label">Overall</span></div><div class="model-note">same success as Luna; lower known-run cost</div><div class="row-meter"><span class="hybrid" style="width:96.5%"></span></div></div>
<div class="leaderboard-score"><strong>55 / 57</strong><span>96.5%</span></div>
<div class="leaderboard-metric"><strong>$0.4573</strong><span>total cost</span></div>
<div class="leaderboard-metric"><strong>$0.0090</strong><span>cost / success</span></div>
<div class="leaderboard-metric"><strong>29.68 s</strong><span>avg / task</span></div>
</div><div class="leaderboard-row" data-lane="overall">
<div class="leaderboard-rank">02</div>
<div class="leaderboard-model"><div class="model-line"><strong>Luna</strong><span class="lane-label">Overall</span></div><div class="model-note">same success; higher known-run cost</div><div class="row-meter"><span class="luna" style="width:96.5%"></span></div></div>
<div class="leaderboard-score"><strong>55 / 57</strong><span>96.5%</span></div>
<div class="leaderboard-metric"><strong>$0.6521</strong><span>total cost</span></div>
<div class="leaderboard-metric"><strong>$0.0128</strong><span>cost / success</span></div>
<div class="leaderboard-metric"><strong>44.57 s</strong><span>avg / task</span></div>
</div><div class="leaderboard-row" data-lane="overall">
<div class="leaderboard-rank">03</div>
<div class="leaderboard-model"><div class="model-line"><strong>Jev Ultrafast</strong><span class="lane-label">Overall</span></div><div class="model-note">computer use not measured</div><div class="row-meter"><span class="jev" style="width:37.3%"></span></div></div>
<div class="leaderboard-score"><strong>19 / 51</strong><span>37.3%</span></div>
<div class="leaderboard-metric"><strong>$0.0224</strong><span>total cost</span></div>
<div class="leaderboard-metric"><strong>$0.0012</strong><span>cost / success</span></div>
<div class="leaderboard-metric"><strong>1.07 s</strong><span>avg / task</span></div>
</div><div class="leaderboard-row" data-lane="overall">
<div class="leaderboard-rank">04</div>
<div class="leaderboard-model"><div class="model-line"><strong>Jev Browser</strong><span class="lane-label">Overall</span></div><div class="model-note">fast; no native desktop run</div><div class="row-meter"><span class="jev" style="width:34.6%"></span></div></div>
<div class="leaderboard-score"><strong>18 / 52</strong><span>34.6%</span></div>
<div class="leaderboard-metric"><strong>$0.0113</strong><span>total cost</span></div>
<div class="leaderboard-metric"><strong>$0.000625</strong><span>cost / success</span></div>
<div class="leaderboard-metric"><strong>3.62 s</strong><span>avg / task</span></div>
</div><div class="leaderboard-row" data-lane="simple" hidden>
<div class="leaderboard-rank">01</div>
<div class="leaderboard-model"><div class="model-line"><strong>Hybrid</strong><span class="lane-label">Simple tests</span></div><div class="model-note">same success as Luna; lower known-run cost</div><div class="row-meter"><span class="hybrid" style="width:100.0%"></span></div></div>
<div class="leaderboard-score"><strong>42 / 42</strong><span>100.0%</span></div>
<div class="leaderboard-metric"><strong>$0.2700</strong><span>total cost</span></div>
<div class="leaderboard-metric"><strong>$0.0069</strong><span>cost / success</span></div>
<div class="leaderboard-metric"><strong>25.19 s</strong><span>avg / task</span></div>
</div><div class="leaderboard-row" data-lane="simple" hidden>
<div class="leaderboard-rank">02</div>
<div class="leaderboard-model"><div class="model-line"><strong>Luna</strong><span class="lane-label">Simple tests</span></div><div class="model-note">same success; higher known-run cost</div><div class="row-meter"><span class="luna" style="width:100.0%"></span></div></div>
<div class="leaderboard-score"><strong>42 / 42</strong><span>100.0%</span></div>
<div class="leaderboard-metric"><strong>$0.4189</strong><span>total cost</span></div>
<div class="leaderboard-metric"><strong>$0.0107</strong><span>cost / success</span></div>
<div class="leaderboard-metric"><strong>32.49 s</strong><span>avg / task</span></div>
</div><div class="leaderboard-row" data-lane="simple" hidden>
<div class="leaderboard-rank">03</div>
<div class="leaderboard-model"><div class="model-line"><strong>Jev Browser</strong><span class="lane-label">Simple tests</span></div><div class="model-note">fastest direct browser decisions</div><div class="row-meter"><span class="jev" style="width:42.9%"></span></div></div>
<div class="leaderboard-score"><strong>18 / 42</strong><span>42.9%</span></div>
<div class="leaderboard-metric"><strong>$0.0054</strong><span>total cost</span></div>
<div class="leaderboard-metric"><strong>$0.0003</strong><span>cost / success</span></div>
<div class="leaderboard-metric"><strong>1.77 s</strong><span>avg / task</span></div>
</div><div class="leaderboard-row" data-lane="simple" hidden>
<div class="leaderboard-rank">04</div>
<div class="leaderboard-model"><div class="model-line"><strong>Jev Ultrafast</strong><span class="lane-label">Simple tests</span></div><div class="model-note">fastest variant</div><div class="row-meter"><span class="jev" style="width:42.9%"></span></div></div>
<div class="leaderboard-score"><strong>18 / 42</strong><span>42.9%</span></div>
<div class="leaderboard-metric"><strong>$0.0082</strong><span>total cost</span></div>
<div class="leaderboard-metric"><strong>$0.0005</strong><span>cost / success</span></div>
<div class="leaderboard-metric"><strong>0.77 s</strong><span>avg / task</span></div>
</div><div class="leaderboard-row" data-lane="real-world" hidden>
<div class="leaderboard-rank">01</div>
<div class="leaderboard-model"><div class="model-line"><strong>Hybrid</strong><span class="lane-label">Real-world</span></div><div class="model-note">same success, faster and cheaper; Figma rerun unmetered</div><div class="row-meter"><span class="hybrid" style="width:80.0%"></span></div></div>
<div class="leaderboard-score"><strong>8 / 10</strong><span>80.0%</span></div>
<div class="leaderboard-metric"><strong>$0.1241</strong><span>total cost</span></div>
<div class="leaderboard-metric"><strong>$0.0177</strong><span>cost / success</span></div>
<div class="leaderboard-metric"><strong>45.3 s</strong><span>avg / task</span></div>
</div><div class="leaderboard-row" data-lane="real-world" hidden>
<div class="leaderboard-rank">02</div>
<div class="leaderboard-model"><div class="model-line"><strong>Luna</strong><span class="lane-label">Real-world</span></div><div class="model-note">same success, slower and costlier; Figma rerun unmetered</div><div class="row-meter"><span class="luna" style="width:80.0%"></span></div></div>
<div class="leaderboard-score"><strong>8 / 10</strong><span>80.0%</span></div>
<div class="leaderboard-metric"><strong>$0.1876</strong><span>total cost</span></div>
<div class="leaderboard-metric"><strong>$0.0268</strong><span>cost / success</span></div>
<div class="leaderboard-metric"><strong>98.7 s</strong><span>avg / task</span></div>
</div><div class="leaderboard-row" data-lane="real-world" hidden>
<div class="leaderboard-rank">03</div>
<div class="leaderboard-model"><div class="model-line"><strong>Jev Ultrafast</strong><span class="lane-label">Real-world</span></div><div class="model-note">fast, but rarely reaches the requested end state</div><div class="row-meter"><span class="jev" style="width:11.1%"></span></div></div>
<div class="leaderboard-score"><strong>1 / 9</strong><span>11.1%</span></div>
<div class="leaderboard-metric"><strong>$0.0142</strong><span>total cost</span></div>
<div class="leaderboard-metric"><strong>$0.0142</strong><span>cost / success</span></div>
<div class="leaderboard-metric"><strong>2.45 s</strong><span>avg / task</span></div>
</div><div class="leaderboard-row" data-lane="real-world" hidden>
<div class="leaderboard-rank">04</div>
<div class="leaderboard-model"><div class="model-line"><strong>Jev Browser</strong><span class="lane-label">Real-world</span></div><div class="model-note">10 attempts ran; no exact end state passed</div><div class="row-meter"><span class="jev" style="width:0.0%"></span></div></div>
<div class="leaderboard-score"><strong>0 / 10</strong><span>0.0%</span></div>
<div class="leaderboard-metric"><strong>$0.0058</strong><span>total cost</span></div>
<div class="leaderboard-metric"><strong>-</strong><span>cost / success</span></div>
<div class="leaderboard-metric"><strong>11.4 s</strong><span>avg / task</span></div>
</div><div class="leaderboard-row" data-lane="computer-use" hidden>
<div class="leaderboard-rank">01</div>
<div class="leaderboard-model"><div class="model-line"><strong>Luna</strong><span class="lane-label">Computer use</span></div><div class="model-note">complete native desktop coverage</div><div class="row-meter"><span class="luna" style="width:100.0%"></span></div></div>
<div class="leaderboard-score"><strong>5 / 5</strong><span>100.0%</span></div>
<div class="leaderboard-metric"><strong>$0.0456</strong><span>total cost</span></div>
<div class="leaderboard-metric"><strong>$0.0091</strong><span>cost / success</span></div>
<div class="leaderboard-metric"><strong>37.82 s</strong><span>avg / task</span></div>
</div><div class="leaderboard-row" data-lane="computer-use" hidden>
<div class="leaderboard-rank">02</div>
<div class="leaderboard-model"><div class="model-line"><strong>Hybrid</strong><span class="lane-label">Computer use</span></div><div class="model-note">same success; estimated cost is higher</div><div class="row-meter"><span class="hybrid" style="width:100.0%"></span></div></div>
<div class="leaderboard-score"><strong>5 / 5</strong><span>100.0%</span></div>
<div class="leaderboard-metric"><strong>$0.0632</strong><span>total cost</span></div>
<div class="leaderboard-metric"><strong>$0.0126</strong><span>cost / success</span></div>
<div class="leaderboard-metric"><strong>36.11 s</strong><span>avg / task</span></div>
</div><div class="leaderboard-row" data-lane="computer-use" hidden>
<div class="leaderboard-rank">03</div>
<div class="leaderboard-model"><div class="model-line"><strong>Jev</strong><span class="lane-label">Computer use</span></div><div class="model-note">one verified native pass</div><div class="row-meter"><span class="jev" style="width:20.0%"></span></div></div>
<div class="leaderboard-score"><strong>1 / 5</strong><span>20.0%</span></div>
<div class="leaderboard-metric"><strong>$0.0282</strong><span>total cost</span></div>
<div class="leaderboard-metric"><strong>$0.0282</strong><span>cost / success</span></div>
<div class="leaderboard-metric"><strong>10.85 s</strong><span>avg / task</span></div>
</div></div></section>
<section id="frontier" class="frontier-card"><div class="frontier-heading"><div><div class="section-kicker">Efficiency</div><h2>Pass rate vs cost per success</h2></div><p>Higher is better. Right is cheaper.<br>Hover or focus a point for exact cost, score, and time.</p></div><div class="frontier-tabs segmented"><button type="button" class="segment frontier-tab active">Overall</button><button type="button" class="segment frontier-tab">Simple</button><button type="button" class="segment frontier-tab">Real-world browser</button><button type="button" class="segment frontier-tab">Computer use</button></div><div class="frontier-panels"><div class="frontier-panel active" data-frontier-lane="overall"><p class="frontier-lane-note">Four measured approaches. Hybrid's connected-Chrome upload-recovery time and cost were not separately metered from the rest of the run.</p><svg class="frontier-svg" viewBox="0 0 960 480" role="img" aria-label="Success rate versus cost per success scatter plot"><title>Success rate versus cost per success</title><desc>Higher points are more successful. Right points cost less per successful task. Hover or focus a point for exact score, cost, and time. The horizontal axis is logarithmic.</desc><rect class="frontier-bg" x="0" y="0" width="960" height="480" /><line class="frontier-grid" x1="76" y1="416.0" x2="926" y2="416.0" /><text class="frontier-axis" x="62" y="420.0" text-anchor="end">0%</text><line class="frontier-grid" x1="76" y1="319.0" x2="926" y2="319.0" /><text class="frontier-axis" x="62" y="323.0" text-anchor="end">25%</text><line class="frontier-grid" x1="76" y1="222.0" x2="926" y2="222.0" /><text class="frontier-axis" x="62" y="226.0" text-anchor="end">50%</text><line class="frontier-grid" x1="76" y1="125.0" x2="926" y2="125.0" /><text class="frontier-axis" x="62" y="129.0" text-anchor="end">75%</text><line class="frontier-grid" x1="76" y1="28.0" x2="926" y2="28.0" /><text class="frontier-axis" x="62" y="32.0" text-anchor="end">100%</text><line class="frontier-grid vertical" x1="861.9" y1="28" x2="861.9" y2="416" /><text class="frontier-axis" x="861.9" y="440" text-anchor="middle">$0.0003</text><line class="frontier-grid vertical" x1="672.8" y1="28" x2="672.8" y2="416" /><text class="frontier-axis" x="672.8" y="440" text-anchor="middle">$0.001</text><line class="frontier-grid vertical" x1="500.2" y1="28" x2="500.2" y2="416" /><text class="frontier-axis" x="500.2" y="440" text-anchor="middle">$0.003</text><line class="frontier-grid vertical" x1="311.1" y1="28" x2="311.1" y2="416" /><text class="frontier-axis" x="311.1" y="440" text-anchor="middle">$0.01</text><line class="frontier-grid vertical" x1="138.5" y1="28" x2="138.5" y2="416" /><text class="frontier-axis" x="138.5" y="440" text-anchor="middle">$0.03</text><g class="frontier-mark hybrid" data-frontier-key="point-0" tabindex="0" role="img" aria-label="Hybrid · overall: 96.5% success, $0.008970 per success, 29.68 s per task"><circle class="frontier-point" cx="328.2" cy="41.6" r="6" fill="#7566a9"><title>Hybrid · overall: 96.5% success, $0.008970 per success, 29.68 s per task</title></circle><text class="frontier-point-label hybrid" x="338.2" y="29.6" text-anchor="start">Hybrid</text></g><g class="frontier-hover-state" data-frontier-state="point-0" aria-hidden="true"><line class="frontier-hover-line" x1="76" y1="41.6" x2="328.2" y2="41.6" /><line class="frontier-hover-line" x1="328.2" y1="41.6" x2="328.2" y2="416" /><text class="frontier-hover-axis-label" x="328.2" y="458" text-anchor="middle">$0.008970</text><text class="frontier-hover-axis-label" x="62" y="45.6" text-anchor="end">96.5%</text><g class="frontier-tooltip" transform="translate(342.2 36.0)"><rect width="276" height="62" rx="4" /><text x="12" y="19" class="frontier-tooltip-title">Hybrid · overall</text><text x="12" y="37">96.5% success · $0.008970 / success</text><text x="12" y="53">29.68 s / task</text></g></g><g class="frontier-mark luna" data-frontier-key="point-1" tabindex="0" role="img" aria-label="Luna · overall: 96.5% success, $0.012790 per success, 44.57 s per task"><circle class="frontier-point" cx="272.5" cy="41.6" r="6" fill="#428661"><title>Luna · overall: 96.5% success, $0.012790 per success, 44.57 s per task</title></circle><text class="frontier-point-label luna" x="260.5" y="61.6" text-anchor="end">Luna</text></g><g class="frontier-hover-state" data-frontier-state="point-1" aria-hidden="true"><line class="frontier-hover-line" x1="76" y1="41.6" x2="272.5" y2="41.6" /><line class="frontier-hover-line" x1="272.5" y1="41.6" x2="272.5" y2="416" /><text class="frontier-hover-axis-label" x="272.5" y="458" text-anchor="middle">$0.012790</text><text class="frontier-hover-axis-label" x="62" y="45.6" text-anchor="end">96.5%</text><g class="frontier-tooltip" transform="translate(286.5 36.0)"><rect width="276" height="62" rx="4" /><text x="12" y="19" class="frontier-tooltip-title">Luna · overall</text><text x="12" y="37">96.5% success · $0.012790 / success</text><text x="12" y="53">44.57 s / task</text></g></g><g class="frontier-mark jev" data-frontier-key="point-2" tabindex="0" role="img" aria-label="Jev Ultrafast · overall: 37.3% success, $0.001180 per success, 1.07 s per task"><circle class="frontier-point" cx="646.8" cy="271.3" r="6" fill="#c85858"><title>Jev Ultrafast · overall: 37.3% success, $0.001180 per success, 1.07 s per task</title></circle><text class="frontier-point-label jev" x="636.8" y="259.3" text-anchor="end">Jev fast</text></g><g class="frontier-hover-state" data-frontier-state="point-2" aria-hidden="true"><line class="frontier-hover-line" x1="76" y1="271.3" x2="646.8" y2="271.3" /><line class="frontier-hover-line" x1="646.8" y1="271.3" x2="646.8" y2="416" /><text class="frontier-hover-axis-label" x="646.8" y="458" text-anchor="middle">$0.001180</text><text class="frontier-hover-axis-label" x="62" y="275.3" text-anchor="end">37.3%</text><g class="frontier-tooltip" transform="translate(642.0 199.3)"><rect width="276" height="62" rx="4" /><text x="12" y="19" class="frontier-tooltip-title">Jev Ultrafast · overall</text><text x="12" y="37">37.3% success · $0.001180 / success</text><text x="12" y="53">1.07 s / task</text></g></g><g class="frontier-mark jev" data-frontier-key="point-3" tabindex="0" role="img" aria-label="Jev Browser · overall: 34.6% success, $0.000625 per success, 3.62 s per task"><circle class="frontier-point" cx="746.6" cy="281.8" r="6" fill="#c85858"><title>Jev Browser · overall: 34.6% success, $0.000625 per success, 3.62 s per task</title></circle><text class="frontier-point-label jev" x="736.6" y="301.8" text-anchor="end">Jev</text></g><g class="frontier-hover-state" data-frontier-state="point-3" aria-hidden="true"><line class="frontier-hover-line" x1="76" y1="281.8" x2="746.6" y2="281.8" /><line class="frontier-hover-line" x1="746.6" y1="281.8" x2="746.6" y2="416" /><text class="frontier-hover-axis-label" x="746.6" y="458" text-anchor="middle">$0.000625</text><text class="frontier-hover-axis-label" x="62" y="285.8" text-anchor="end">34.6%</text><g class="frontier-tooltip" transform="translate(642.0 209.8)"><rect width="276" height="62" rx="4" /><text x="12" y="19" class="frontier-tooltip-title">Jev Browser · overall</text><text x="12" y="37">34.6% success · $0.000625 / success</text><text x="12" y="53">3.62 s / task</text></g></g><line class="frontier-axis-line" x1="76" y1="28" x2="76" y2="416" /><line class="frontier-axis-line" x1="76" y1="416" x2="926" y2="416" /><text class="frontier-axis-title" x="501.0" y="468" text-anchor="middle">Cost per success · log scale · right is cheaper</text><text class="frontier-axis-title" x="18" y="222.0" text-anchor="middle" transform="rotate(-90 18 222.0)">Success rate</text></svg></div><div class="frontier-panel" data-frontier-lane="simple"><p class="frontier-lane-note">42 basic browser tasks. Luna and Hybrid are 42 / 42 in connected Chrome. Both Jev browser variants are shown.</p><svg class="frontier-svg" viewBox="0 0 960 480" role="img" aria-label="Success rate versus cost per success scatter plot"><title>Success rate versus cost per success</title><desc>Higher points are more successful. Right points cost less per successful task. Hover or focus a point for exact score, cost, and time. The horizontal axis is logarithmic.</desc><rect class="frontier-bg" x="0" y="0" width="960" height="480" /><line class="frontier-grid" x1="76" y1="416.0" x2="926" y2="416.0" /><text class="frontier-axis" x="62" y="420.0" text-anchor="end">0%</text><line class="frontier-grid" x1="76" y1="319.0" x2="926" y2="319.0" /><text class="frontier-axis" x="62" y="323.0" text-anchor="end">25%</text><line class="frontier-grid" x1="76" y1="222.0" x2="926" y2="222.0" /><text class="frontier-axis" x="62" y="226.0" text-anchor="end">50%</text><line class="frontier-grid" x1="76" y1="125.0" x2="926" y2="125.0" /><text class="frontier-axis" x="62" y="129.0" text-anchor="end">75%</text><line class="frontier-grid" x1="76" y1="28.0" x2="926" y2="28.0" /><text class="frontier-axis" x="62" y="32.0" text-anchor="end">100%</text><line class="frontier-grid vertical" x1="861.9" y1="28" x2="861.9" y2="416" /><text class="frontier-axis" x="861.9" y="440" text-anchor="middle">$0.0003</text><line class="frontier-grid vertical" x1="672.8" y1="28" x2="672.8" y2="416" /><text class="frontier-axis" x="672.8" y="440" text-anchor="middle">$0.001</text><line class="frontier-grid vertical" x1="500.2" y1="28" x2="500.2" y2="416" /><text class="frontier-axis" x="500.2" y="440" text-anchor="middle">$0.003</text><line class="frontier-grid vertical" x1="311.1" y1="28" x2="311.1" y2="416" /><text class="frontier-axis" x="311.1" y="440" text-anchor="middle">$0.01</text><line class="frontier-grid vertical" x1="138.5" y1="28" x2="138.5" y2="416" /><text class="frontier-axis" x="138.5" y="440" text-anchor="middle">$0.03</text><g class="frontier-mark jev" data-frontier-key="point-0" tabindex="0" role="img" aria-label="Jev Browser · simple: 42.9% success, $0.000301 per success, 1.77 s per task"><circle class="frontier-point" cx="861.4" cy="249.5" r="6" fill="#c85858"><title>Jev Browser · simple: 42.9% success, $0.000301 per success, 1.77 s per task</title></circle><text class="frontier-point-label jev" x="851.4" y="237.5" text-anchor="end">Jev</text></g><g class="frontier-hover-state" data-frontier-state="point-0" aria-hidden="true"><line class="frontier-hover-line" x1="76" y1="249.5" x2="861.4" y2="249.5" /><line class="frontier-hover-line" x1="861.4" y1="249.5" x2="861.4" y2="416" /><text class="frontier-hover-axis-label" x="861.4" y="458" text-anchor="middle">$0.000301</text><text class="frontier-hover-axis-label" x="62" y="253.5" text-anchor="end">42.9%</text><g class="frontier-tooltip" transform="translate(642.0 177.5)"><rect width="276" height="62" rx="4" /><text x="12" y="19" class="frontier-tooltip-title">Jev Browser · simple</text><text x="12" y="37">42.9% success · $0.000301 / success</text><text x="12" y="53">1.77 s / task</text></g></g><g class="frontier-mark jev" data-frontier-key="point-1" tabindex="0" role="img" aria-label="Jev Ultrafast · simple: 42.9% success, $0.000453 per success, 0.77 s per task"><circle class="frontier-point" cx="797.2" cy="249.5" r="6" fill="#c85858"><title>Jev Ultrafast · simple: 42.9% success, $0.000453 per success, 0.77 s per task</title></circle><text class="frontier-point-label jev" x="807.2" y="269.5" text-anchor="start">Jev fast</text></g><g class="frontier-hover-state" data-frontier-state="point-1" aria-hidden="true"><line class="frontier-hover-line" x1="76" y1="249.5" x2="797.2" y2="249.5" /><line class="frontier-hover-line" x1="797.2" y1="249.5" x2="797.2" y2="416" /><text class="frontier-hover-axis-label" x="797.2" y="458" text-anchor="middle">$0.000453</text><text class="frontier-hover-axis-label" x="62" y="253.5" text-anchor="end">42.9%</text><g class="frontier-tooltip" transform="translate(642.0 177.5)"><rect width="276" height="62" rx="4" /><text x="12" y="19" class="frontier-tooltip-title">Jev Ultrafast · simple</text><text x="12" y="37">42.9% success · $0.000453 / success</text><text x="12" y="53">0.77 s / task</text></g></g><g class="frontier-mark hybrid" data-frontier-key="point-2" tabindex="0" role="img" aria-label="Hybrid · simple: 100% success, $0.006922 per success, 25.19 s per task"><circle class="frontier-point" cx="368.9" cy="28.0" r="6" fill="#7566a9"><title>Hybrid · simple: 100% success, $0.006922 per success, 25.19 s per task</title></circle><text class="frontier-point-label hybrid" x="358.9" y="16.0" text-anchor="end">Hybrid</text></g><g class="frontier-hover-state" data-frontier-state="point-2" aria-hidden="true"><line class="frontier-hover-line" x1="76" y1="28.0" x2="368.9" y2="28.0" /><line class="frontier-hover-line" x1="368.9" y1="28.0" x2="368.9" y2="416" /><text class="frontier-hover-axis-label" x="368.9" y="458" text-anchor="middle">$0.006922</text><text class="frontier-hover-axis-label" x="62" y="32.0" text-anchor="end">100%</text><g class="frontier-tooltip" transform="translate(382.9 36.0)"><rect width="276" height="62" rx="4" /><text x="12" y="19" class="frontier-tooltip-title">Hybrid · simple</text><text x="12" y="37">100% success · $0.006922 / success</text><text x="12" y="53">25.19 s / task</text></g></g><g class="frontier-mark luna" data-frontier-key="point-3" tabindex="0" role="img" aria-label="Luna · simple: 100% success, $0.010741 per success, 32.49 s per task"><circle class="frontier-point" cx="299.9" cy="28.0" r="6" fill="#428661"><title>Luna · simple: 100% success, $0.010741 per success, 32.49 s per task</title></circle><text class="frontier-point-label luna" x="309.9" y="48.0" text-anchor="start">Luna</text></g><g class="frontier-hover-state" data-frontier-state="point-3" aria-hidden="true"><line class="frontier-hover-line" x1="76" y1="28.0" x2="299.9" y2="28.0" /><line class="frontier-hover-line" x1="299.9" y1="28.0" x2="299.9" y2="416" /><text class="frontier-hover-axis-label" x="299.9" y="458" text-anchor="middle">$0.010741</text><text class="frontier-hover-axis-label" x="62" y="32.0" text-anchor="end">100%</text><g class="frontier-tooltip" transform="translate(313.9 36.0)"><rect width="276" height="62" rx="4" /><text x="12" y="19" class="frontier-tooltip-title">Luna · simple</text><text x="12" y="37">100% success · $0.010741 / success</text><text x="12" y="53">32.49 s / task</text></g></g><line class="frontier-axis-line" x1="76" y1="28" x2="76" y2="416" /><line class="frontier-axis-line" x1="76" y1="416" x2="926" y2="416" /><text class="frontier-axis-title" x="501.0" y="468" text-anchor="middle">Cost per success · log scale · right is cheaper</text><text class="frontier-axis-title" x="18" y="222.0" text-anchor="middle" transform="rotate(-90 18 222.0)">Success rate</text></svg></div><div class="frontier-panel" data-frontier-lane="real-world"><p class="frontier-lane-note">Jev Browser passed 0 / 10, so it has no cost-per-success point. The three plotted points have at least one success; the table shows the zero separately.</p><svg class="frontier-svg" viewBox="0 0 960 480" role="img" aria-label="Success rate versus cost per success scatter plot"><title>Success rate versus cost per success</title><desc>Higher points are more successful. Right points cost less per successful task. Hover or focus a point for exact score, cost, and time. The horizontal axis is logarithmic.</desc><rect class="frontier-bg" x="0" y="0" width="960" height="480" /><line class="frontier-grid" x1="76" y1="416.0" x2="926" y2="416.0" /><text class="frontier-axis" x="62" y="420.0" text-anchor="end">0%</text><line class="frontier-grid" x1="76" y1="319.0" x2="926" y2="319.0" /><text class="frontier-axis" x="62" y="323.0" text-anchor="end">25%</text><line class="frontier-grid" x1="76" y1="222.0" x2="926" y2="222.0" /><text class="frontier-axis" x="62" y="226.0" text-anchor="end">50%</text><line class="frontier-grid" x1="76" y1="125.0" x2="926" y2="125.0" /><text class="frontier-axis" x="62" y="129.0" text-anchor="end">75%</text><line class="frontier-grid" x1="76" y1="28.0" x2="926" y2="28.0" /><text class="frontier-axis" x="62" y="32.0" text-anchor="end">100%</text><line class="frontier-grid vertical" x1="861.9" y1="28" x2="861.9" y2="416" /><text class="frontier-axis" x="861.9" y="440" text-anchor="middle">$0.0003</text><line class="frontier-grid vertical" x1="672.8" y1="28" x2="672.8" y2="416" /><text class="frontier-axis" x="672.8" y="440" text-anchor="middle">$0.001</text><line class="frontier-grid vertical" x1="500.2" y1="28" x2="500.2" y2="416" /><text class="frontier-axis" x="500.2" y="440" text-anchor="middle">$0.003</text><line class="frontier-grid vertical" x1="311.1" y1="28" x2="311.1" y2="416" /><text class="frontier-axis" x="311.1" y="440" text-anchor="middle">$0.01</text><line class="frontier-grid vertical" x1="138.5" y1="28" x2="138.5" y2="416" /><text class="frontier-axis" x="138.5" y="440" text-anchor="middle">$0.03</text><g class="frontier-mark hybrid" data-frontier-key="point-0" tabindex="0" role="img" aria-label="Hybrid · real-world browser: 80% success, $0.017700 per success, 45.3 s per task"><circle class="frontier-point" cx="221.4" cy="105.6" r="6" fill="#7566a9"><title>Hybrid · real-world browser: 80% success, $0.017700 per success, 45.3 s per task</title></circle><text class="frontier-point-label hybrid" x="231.4" y="93.6" text-anchor="start">Hybrid</text></g><g class="frontier-hover-state" data-frontier-state="point-0" aria-hidden="true"><line class="frontier-hover-line" x1="76" y1="105.6" x2="221.4" y2="105.6" /><line class="frontier-hover-line" x1="221.4" y1="105.6" x2="221.4" y2="416" /><text class="frontier-hover-axis-label" x="221.4" y="458" text-anchor="middle">$0.017700</text><text class="frontier-hover-axis-label" x="62" y="109.6" text-anchor="end">80%</text><g class="frontier-tooltip" transform="translate(235.4 36.0)"><rect width="276" height="62" rx="4" /><text x="12" y="19" class="frontier-tooltip-title">Hybrid · real-world browser</text><text x="12" y="37">80% success · $0.017700 / success</text><text x="12" y="53">45.3 s / task</text></g></g><g class="frontier-mark luna" data-frontier-key="point-1" tabindex="0" role="img" aria-label="Luna · real-world browser: 80% success, $0.026800 per success, 98.7 s per task"><circle class="frontier-point" cx="156.2" cy="105.6" r="6" fill="#428661"><title>Luna · real-world browser: 80% success, $0.026800 per success, 98.7 s per task</title></circle><text class="frontier-point-label luna" x="144.2" y="125.6" text-anchor="end">Luna</text></g><g class="frontier-hover-state" data-frontier-state="point-1" aria-hidden="true"><line class="frontier-hover-line" x1="76" y1="105.6" x2="156.2" y2="105.6" /><line class="frontier-hover-line" x1="156.2" y1="105.6" x2="156.2" y2="416" /><text class="frontier-hover-axis-label" x="156.2" y="458" text-anchor="middle">$0.026800</text><text class="frontier-hover-axis-label" x="62" y="109.6" text-anchor="end">80%</text><g class="frontier-tooltip" transform="translate(170.2 36.0)"><rect width="276" height="62" rx="4" /><text x="12" y="19" class="frontier-tooltip-title">Luna · real-world browser</text><text x="12" y="37">80% success · $0.026800 / success</text><text x="12" y="53">98.7 s / task</text></g></g><g class="frontier-mark jev" data-frontier-key="point-2" tabindex="0" role="img" aria-label="Jev Ultrafast · public browser: 11.1% success, $0.014248 per success, 2.45 s per task"><circle class="frontier-point" cx="255.5" cy="372.9" r="6" fill="#c85858"><title>Jev Ultrafast · public browser: 11.1% success, $0.014248 per success, 2.45 s per task</title></circle><text class="frontier-point-label jev" x="265.5" y="360.9" text-anchor="start">Jev fast</text></g><g class="frontier-hover-state" data-frontier-state="point-2" aria-hidden="true"><line class="frontier-hover-line" x1="76" y1="372.9" x2="255.5" y2="372.9" /><line class="frontier-hover-line" x1="255.5" y1="372.9" x2="255.5" y2="416" /><text class="frontier-hover-axis-label" x="255.5" y="458" text-anchor="middle">$0.014248</text><text class="frontier-hover-axis-label" x="62" y="376.9" text-anchor="end">11.1%</text><g class="frontier-tooltip" transform="translate(269.5 300.9)"><rect width="276" height="62" rx="4" /><text x="12" y="19" class="frontier-tooltip-title">Jev Ultrafast · public browser</text><text x="12" y="37">11.1% success · $0.014248 / success</text><text x="12" y="53">2.45 s / task</text></g></g><line class="frontier-axis-line" x1="76" y1="28" x2="76" y2="416" /><line class="frontier-axis-line" x1="76" y1="416" x2="926" y2="416" /><text class="frontier-axis-title" x="501.0" y="468" text-anchor="middle">Cost per success · log scale · right is cheaper</text><text class="frontier-axis-title" x="18" y="222.0" text-anchor="middle" transform="rotate(-90 18 222.0)">Success rate</text></svg></div><div class="frontier-panel" data-frontier-lane="computer-use"><p class="frontier-lane-note">Five native desktop tasks. Jev Ultrafast was not measured here, so only the three measured approaches have points.</p><svg class="frontier-svg" viewBox="0 0 960 480" role="img" aria-label="Success rate versus cost per success scatter plot"><title>Success rate versus cost per success</title><desc>Higher points are more successful. Right points cost less per successful task. Hover or focus a point for exact score, cost, and time. The horizontal axis is logarithmic.</desc><rect class="frontier-bg" x="0" y="0" width="960" height="480" /><line class="frontier-grid" x1="76" y1="416.0" x2="926" y2="416.0" /><text class="frontier-axis" x="62" y="420.0" text-anchor="end">0%</text><line class="frontier-grid" x1="76" y1="319.0" x2="926" y2="319.0" /><text class="frontier-axis" x="62" y="323.0" text-anchor="end">25%</text><line class="frontier-grid" x1="76" y1="222.0" x2="926" y2="222.0" /><text class="frontier-axis" x="62" y="226.0" text-anchor="end">50%</text><line class="frontier-grid" x1="76" y1="125.0" x2="926" y2="125.0" /><text class="frontier-axis" x="62" y="129.0" text-anchor="end">75%</text><line class="frontier-grid" x1="76" y1="28.0" x2="926" y2="28.0" /><text class="frontier-axis" x="62" y="32.0" text-anchor="end">100%</text><line class="frontier-grid vertical" x1="861.9" y1="28" x2="861.9" y2="416" /><text class="frontier-axis" x="861.9" y="440" text-anchor="middle">$0.0003</text><line class="frontier-grid vertical" x1="672.8" y1="28" x2="672.8" y2="416" /><text class="frontier-axis" x="672.8" y="440" text-anchor="middle">$0.001</text><line class="frontier-grid vertical" x1="500.2" y1="28" x2="500.2" y2="416" /><text class="frontier-axis" x="500.2" y="440" text-anchor="middle">$0.003</text><line class="frontier-grid vertical" x1="311.1" y1="28" x2="311.1" y2="416" /><text class="frontier-axis" x="311.1" y="440" text-anchor="middle">$0.01</text><line class="frontier-grid vertical" x1="138.5" y1="28" x2="138.5" y2="416" /><text class="frontier-axis" x="138.5" y="440" text-anchor="middle">$0.03</text><g class="frontier-mark luna" data-frontier-key="point-0" tabindex="0" role="img" aria-label="Luna · computer use: 100% success, $0.009130 per success, 37.8 s per task"><circle class="frontier-point" cx="325.4" cy="28.0" r="6" fill="#428661"><title>Luna · computer use: 100% success, $0.009130 per success, 37.8 s per task</title></circle><text class="frontier-point-label luna" x="335.4" y="48.0" text-anchor="start">Luna</text></g><g class="frontier-hover-state" data-frontier-state="point-0" aria-hidden="true"><line class="frontier-hover-line" x1="76" y1="28.0" x2="325.4" y2="28.0" /><line class="frontier-hover-line" x1="325.4" y1="28.0" x2="325.4" y2="416" /><text class="frontier-hover-axis-label" x="325.4" y="458" text-anchor="middle">$0.009130</text><text class="frontier-hover-axis-label" x="62" y="32.0" text-anchor="end">100%</text><g class="frontier-tooltip" transform="translate(339.4 36.0)"><rect width="276" height="62" rx="4" /><text x="12" y="19" class="frontier-tooltip-title">Luna · computer use</text><text x="12" y="37">100% success · $0.009130 / success</text><text x="12" y="53">37.8 s / task</text></g></g><g class="frontier-mark hybrid" data-frontier-key="point-1" tabindex="0" role="img" aria-label="Hybrid · computer use: 100% success, $0.012644 per success, 36.1 s per task"><circle class="frontier-point" cx="274.3" cy="28.0" r="6" fill="#7566a9"><title>Hybrid · computer use: 100% success, $0.012644 per success, 36.1 s per task</title></circle><text class="frontier-point-label hybrid" x="264.3" y="16.0" text-anchor="end">Hybrid</text></g><g class="frontier-hover-state" data-frontier-state="point-1" aria-hidden="true"><line class="frontier-hover-line" x1="76" y1="28.0" x2="274.3" y2="28.0" /><line class="frontier-hover-line" x1="274.3" y1="28.0" x2="274.3" y2="416" /><text class="frontier-hover-axis-label" x="274.3" y="458" text-anchor="middle">$0.012644</text><text class="frontier-hover-axis-label" x="62" y="32.0" text-anchor="end">100%</text><g class="frontier-tooltip" transform="translate(288.3 36.0)"><rect width="276" height="62" rx="4" /><text x="12" y="19" class="frontier-tooltip-title">Hybrid · computer use</text><text x="12" y="37">100% success · $0.012644 / success</text><text x="12" y="53">36.1 s / task</text></g></g><g class="frontier-mark jev" data-frontier-key="point-2" tabindex="0" role="img" aria-label="Jev · computer use: 20% success, $0.028200 per success, 10.85 s per task"><circle class="frontier-point" cx="148.3" cy="338.4" r="6" fill="#c85858"><title>Jev · computer use: 20% success, $0.028200 per success, 10.85 s per task</title></circle><text class="frontier-point-label jev" x="76.3" y="356.4" text-anchor="start">Jev</text></g><g class="frontier-hover-state" data-frontier-state="point-2" aria-hidden="true"><line class="frontier-hover-line" x1="76" y1="338.4" x2="148.3" y2="338.4" /><line class="frontier-hover-line" x1="148.3" y1="338.4" x2="148.3" y2="416" /><text class="frontier-hover-axis-label" x="148.3" y="458" text-anchor="middle">$0.028200</text><text class="frontier-hover-axis-label" x="62" y="342.4" text-anchor="end">20%</text><g class="frontier-tooltip" transform="translate(162.3 266.4)"><rect width="276" height="62" rx="4" /><text x="12" y="19" class="frontier-tooltip-title">Jev · computer use</text><text x="12" y="37">20% success · $0.028200 / success</text><text x="12" y="53">10.85 s / task</text></g></g><line class="frontier-axis-line" x1="76" y1="28" x2="76" y2="416" /><line class="frontier-axis-line" x1="76" y1="416" x2="926" y2="416" /><text class="frontier-axis-title" x="501.0" y="468" text-anchor="middle">Cost per success · log scale · right is cheaper</text><text class="frontier-axis-title" x="18" y="222.0" text-anchor="middle" transform="rotate(-90 18 222.0)">Success rate</text></svg></div></div></section>
<div class="snapshot-grid">
<section class="snapshot-block"><h3>Overall</h3><p>All measured tasks combined. Jev Browser is 18/52 because it has no native desktop run; Jev Ultrafast is 19/51 because it was not measured on computer use.</p><div class="table-wrap"><table class="snapshot-table"><thead><tr><th>Approach</th><th>Successes</th><th>Rate</th><th>Avg time</th><th>Cost / success</th></tr></thead><tbody><tr><td>Hybrid</td><td>55 / 57</td><td>96.5%</td><td>29.68 s</td><td>$0.0090 known / success</td></tr><tr><td>Luna</td><td>55 / 57</td><td>96.5%</td><td>44.57 s</td><td>$0.0128 known / success</td></tr><tr><td>Jev Ultrafast</td><td>19 / 51</td><td>37.3%</td><td>1.07 s</td><td>$0.0012 / success</td></tr><tr><td>Jev Browser</td><td>18 / 52</td><td>34.6%</td><td>3.62 s</td><td>$0.000625 / success</td></tr></tbody></table></div></section>
<section id="simple" class="snapshot-block"><h3>Simple tests</h3><p>42 basic browser tasks.</p><div class="table-wrap"><table class="snapshot-table"><thead><tr><th>Approach</th><th>Passes</th><th>Rate</th><th>Time</th><th>Cost</th></tr></thead><tbody><tr><td>Hybrid</td><td>42 / 42</td><td>100%</td><td>25.19 s</td><td>$0.0069 / success</td></tr><tr><td>Luna</td><td>42 / 42</td><td>100%</td><td>32.49 s</td><td>$0.0107 / success</td></tr><tr><td>Jev Browser</td><td>18 / 42</td><td>42.9%</td><td>1.77 s</td><td>$0.0003 / success</td></tr><tr><td>Jev Ultrafast</td><td>18 / 42</td><td>42.9%</td><td>0.77 s</td><td>$0.0005 / success</td></tr></tbody></table></div></section>
<section id="real-world" class="snapshot-block"><h3>Real-world browser</h3><p>Ten longer browser workflows. Jev Browser ran all ten attempts and passed 0; Jev Ultrafast is a separate public nine-flow lane.</p><div class="table-wrap"><table class="snapshot-table"><thead><tr><th>Approach</th><th>Passes</th><th>Rate</th><th>Time</th><th>Cost</th></tr></thead><tbody><tr><td>Hybrid</td><td>8 / 10</td><td>80%</td><td>45.3 s</td><td>$0.1241 known total</td></tr><tr><td>Luna</td><td>8 / 10</td><td>80%</td><td>98.7 s</td><td>$0.1876 known total</td></tr><tr><td>Jev Ultrafast</td><td>1 / 9‡</td><td>11.1%</td><td>2.45 s</td><td>$0.0142 total</td></tr><tr><td>Jev Browser</td><td>0 / 10</td><td>0%</td><td>11.4 s</td><td>$0.0058 total</td></tr></tbody></table></div></section>
<section id="computer-use" class="snapshot-block"><h3>Computer use</h3><p>Five native desktop tasks: Spotify, Pages, TextEdit, Keynote, Numbers. Jev is the desktop adapter; Jev Ultrafast was not run in this lane.</p><div class="table-wrap"><table class="snapshot-table"><thead><tr><th>Approach</th><th>Passes</th><th>Rate</th><th>Time</th><th>Cost</th></tr></thead><tbody><tr><td>Luna</td><td>5 / 5</td><td>100%</td><td>37.8 s</td><td>$0.0091 / success</td></tr><tr><td>Hybrid</td><td>5 / 5</td><td>100%</td><td>36.1 s</td><td>$0.0126 / success</td></tr><tr><td>Jev</td><td>1 / 5†</td><td>20%</td><td>10.85 s</td><td>$0.0282 / success</td></tr></tbody></table></div></section>
</div>
<section id="videos" class="video-library"><div class="video-library-intro"><div><div class="section-kicker">Video library</div><h2>Recorded runs</h2></div><p>One table, the same lane filters, and explicit outcome labels for every retained clip.</p></div><div class="run-control-strip"><div class="run-filters"><div class="run-filter-row"><span class="run-filter-label">Lane</span><div class="segmented run-segmented"><button type="button" class="segment run-segment active">Overall</button><button type="button" class="segment run-segment">Simple</button><button type="button" class="segment run-segment">Real-world</button><button type="button" class="segment run-segment">Computer use</button></div></div><div class="run-filter-row"><span class="run-filter-label">Approach</span><div class="segmented run-approach-segmented"><button type="button" class="segment run-approach-segment active">All</button><button type="button" class="segment run-approach-segment">Luna</button><button type="button" class="segment run-approach-segment">Hybrid</button><button type="button" class="segment run-approach-segment">Jev</button></div></div></div><span class="control-note">Overall + All shows all 24 retained clips.</span></div><div class="table-wrap run-table-wrap"><table class="run-table"><thead><tr><th>Approach</th><th>Lane</th><th>Run</th><th>Outcome</th><th>Length</th><th>Video</th></tr></thead><tbody><tr class="run-row" data-run-lane="real-world" data-run-approach="jev">
<td><strong>Jev</strong></td>
<td><span class="run-lane jev">Real-world</span></td>
<td class="run-title"><strong>Google Flights stopped</strong><span>Fail: typed a bad destination string; site returned "No matching locations found."</span></td>
<td><span class="run-outcome bad">Fail</span></td>
<td>11s</td>
<td><a href="videos/extended-e2e/jev-browser-stopwatch-v2/jev-google-flights-window-scoped-stopwatch.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="real-world" data-run-approach="jev">
<td><strong>Jev</strong></td>
<td><span class="run-lane jev">Real-world</span></td>
<td class="run-title"><strong>Spotify stopped</strong><span>Fail: stopped at the Spotify sign-up wall around 12s.</span></td>
<td><span class="run-outcome bad">Fail</span></td>
<td>30s</td>
<td><a href="videos/extended-e2e/jev-browser-stopwatch-v2/jev-spotify-window-scoped-stopwatch.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="real-world" data-run-approach="jev">
<td><strong>Jev</strong></td>
<td><span class="run-lane jev">Real-world</span></td>
<td class="run-title"><strong>Resy reservation details</strong><span>Success: reached the Song Wat reservation-details stop point; nothing submitted.</span></td>
<td><span class="run-outcome good">Success</span></td>
<td>33s</td>
<td><a href="videos/expanded-evidence/browser/jev-resy-search-boundary.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="real-world" data-run-approach="luna">
<td><strong>Luna</strong></td>
<td><span class="run-lane luna">Real-world</span></td>
<td class="run-title"><strong>United flight to traveler page</strong><span>Success: itinerary and traveler/payment page are visible; purchase is untouched.</span></td>
<td><span class="run-outcome good">Success</span></td>
<td>1m 00s</td>
<td><a href="videos/luna-real-world/luna-united-sfo-ewr-full-v2.mov" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="real-world" data-run-approach="luna">
<td><strong>Luna</strong></td>
<td><span class="run-lane luna">Real-world</span></td>
<td class="run-title"><strong>Flights and restaurant search</strong><span>Success: reaches concrete flight results after multi-step navigation.</span></td>
<td><span class="run-outcome good">Success</span></td>
<td>2m 21s</td>
<td><a href="videos/e2e/luna-flights-restaurants-full.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="real-world" data-run-approach="hybrid">
<td><strong>Hybrid</strong></td>
<td><span class="run-lane hybrid">Real-world</span></td>
<td class="run-title"><strong>TodoMVC long run</strong><span>Success: the clean Chrome run ends with the requested completed and active items visible.</span></td>
<td><span class="run-outcome good">Success</span></td>
<td>7m 30s</td>
<td><a href="videos/strict-ten/hybrid-browser-exact-live-stopwatch.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="real-world" data-run-approach="hybrid">
<td><strong>Hybrid</strong></td>
<td><span class="run-lane hybrid">Real-world</span></td>
<td class="run-title"><strong>Google Flights handoff</strong><span>Success: the browser run ends on concrete flight results after the Jev then Luna handoff.</span></td>
<td><span class="run-outcome good">Success</span></td>
<td>2m 27s</td>
<td><a href="videos/e2e/hybrid-google-flights-full.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="computer-use" data-run-approach="luna">
<td><strong>Luna</strong></td>
<td><span class="run-lane luna">Computer use</span></td>
<td class="run-title"><strong>Keynote two-slide edit</strong><span>Success: the recorded slide's title and bullets are filled on camera.</span></td>
<td><span class="run-outcome good">Success</span></td>
<td>2m 29s</td>
<td><a href="videos/native-desktop/luna/keynote-two-slide-luna-stopwatch.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="computer-use" data-run-approach="luna">
<td><strong>Luna</strong></td>
<td><span class="run-lane luna">Computer use</span></td>
<td class="run-title"><strong>Numbers six-cell edit</strong><span>Success: the requested spreadsheet cells are visible at the end.</span></td>
<td><span class="run-outcome good">Success</span></td>
<td>2m 30s</td>
<td><a href="videos/native-desktop/luna/numbers-two-row-luna-stopwatch.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="computer-use" data-run-approach="hybrid">
<td><strong>Hybrid</strong></td>
<td><span class="run-lane hybrid">Computer use</span></td>
<td class="run-title"><strong>Keynote recovery</strong><span>Success: Luna repairs the Jev miss and the final slide content is visible.</span></td>
<td><span class="run-outcome good">Success</span></td>
<td>3m 24s</td>
<td><a href="videos/native-desktop/hybrid/keynote-hybrid-composite-stopwatch.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="computer-use" data-run-approach="hybrid">
<td><strong>Hybrid</strong></td>
<td><span class="run-lane hybrid">Computer use</span></td>
<td class="run-title"><strong>Numbers recovery</strong><span>Success: Luna repairs the Jev miss and the final spreadsheet values are visible.</span></td>
<td><span class="run-outcome good">Success</span></td>
<td>3m 40s</td>
<td><a href="videos/native-desktop/hybrid/numbers-hybrid-composite-stopwatch.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="computer-use" data-run-approach="jev">
<td><strong>Jev</strong></td>
<td><span class="run-lane jev">Computer use</span></td>
<td class="run-title"><strong>TextEdit exact text</strong><span>Success: fresh TextEdit window shows all three exact lines.</span></td>
<td><span class="run-outcome good">Success</span></td>
<td>18s</td>
<td><a href="videos/native-desktop/jev/textedit-window-scoped-native-jev-stop.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="computer-use" data-run-approach="jev">
<td><strong>Jev</strong></td>
<td><span class="run-lane jev">Computer use</span></td>
<td class="run-title"><strong>Pages false completion</strong><span>Fail: Jev reports completion but the Pages body stays empty.</span></td>
<td><span class="run-outcome bad">Fail</span></td>
<td>18s</td>
<td><a href="videos/native-desktop/jev/pages-window-scoped-native-jev-stop.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="real-world" data-run-approach="luna">
<td><strong>Luna</strong></td>
<td><span class="run-lane luna">Real-world</span></td>
<td class="run-title"><strong>TodoMVC project tracker</strong><span>Success: the requested tasks and the completed/active views are visible at the end.</span></td>
<td><span class="run-outcome good">Success</span></td>
<td>2m 29s</td>
<td><a href="videos/expanded-evidence/browser/luna-todomvc-success.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="real-world" data-run-approach="hybrid">
<td><strong>Hybrid</strong></td>
<td><span class="run-lane hybrid">Real-world</span></td>
<td class="run-title"><strong>OpenTable recovery stop point</strong><span>Fail: Luna reaches results, but stops before the reservation-details page.</span></td>
<td><span class="run-outcome bad">Fail</span></td>
<td>2m 42s</td>
<td><a href="videos/expanded-evidence/browser/hybrid-opentable-recovery.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="real-world" data-run-approach="hybrid">
<td><strong>Hybrid</strong></td>
<td><span class="run-lane hybrid">Real-world</span></td>
<td class="run-title"><strong>TodoMVC recovery</strong><span>Success: Luna completes the add/complete/filter workflow after the Jev then Luna attempt.</span></td>
<td><span class="run-outcome good">Success</span></td>
<td>2m 32s</td>
<td><a href="videos/expanded-evidence/browser/hybrid-todomvc-recovery.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="computer-use" data-run-approach="luna">
<td><strong>Luna</strong></td>
<td><span class="run-lane luna">Computer use</span></td>
<td class="run-title"><strong>Pages edit</strong><span>Success: the requested text is visible in the native Pages document at the end.</span></td>
<td><span class="run-outcome good">Success</span></td>
<td>1m 00s</td>
<td><a href="videos/expanded-evidence/computer-use/luna-pages-success.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="computer-use" data-run-approach="luna">
<td><strong>Luna</strong></td>
<td><span class="run-lane luna">Computer use</span></td>
<td class="run-title"><strong>Spotify search and play</strong><span>Success: the requested Radiohead track page and active playback state are visible.</span></td>
<td><span class="run-outcome good">Success</span></td>
<td>1m 00s</td>
<td><a href="videos/expanded-evidence/computer-use/luna-spotify-success.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="computer-use" data-run-approach="hybrid">
<td><strong>Hybrid</strong></td>
<td><span class="run-lane hybrid">Computer use</span></td>
<td class="run-title"><strong>Pages recovery</strong><span>Success: Luna repairs the Jev miss and the requested text is visible in Pages.</span></td>
<td><span class="run-outcome good">Success</span></td>
<td>1m 00s</td>
<td><a href="videos/expanded-evidence/computer-use/hybrid-pages-recovery.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="computer-use" data-run-approach="hybrid">
<td><strong>Hybrid</strong></td>
<td><span class="run-lane hybrid">Computer use</span></td>
<td class="run-title"><strong>Spotify recovery</strong><span>Success: Luna repairs the Jev attempt; Radiohead playback state visible.</span></td>
<td><span class="run-outcome good">Success</span></td>
<td>59s</td>
<td><a href="videos/expanded-evidence/computer-use/hybrid-spotify-recovery.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="real-world" data-run-approach="jev">
<td><strong>Jev</strong></td>
<td><span class="run-lane jev">Real-world</span></td>
<td class="run-title"><strong>Mail sign-in stop</strong><span>Fail: reached Mail sign-in in a fresh browser; the authenticated draft never opened.</span></td>
<td><span class="run-outcome bad">Fail</span></td>
<td>7s</td>
<td><a href="videos/agent-native-apps/jev/jev-mail-draft-headed-stop-final.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="real-world" data-run-approach="jev">
<td><strong>Jev</strong></td>
<td><span class="run-lane jev">Real-world</span></td>
<td class="run-title"><strong>Slides sign-in stop</strong><span>Fail: reached Slides sign-in in a fresh browser; the authenticated deck never opened.</span></td>
<td><span class="run-outcome bad">Fail</span></td>
<td>7s</td>
<td><a href="videos/agent-native-apps/jev/jev-slides-create-edit-headed-stop-clean.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="real-world" data-run-approach="luna">
<td><strong>Luna</strong></td>
<td><span class="run-lane luna">Real-world</span></td>
<td class="run-title"><strong>Five-app walkthrough</strong><span>Success: five safe checkpoints visible - Mail, Calendar, Content, Design, Slides.</span></td>
<td><span class="run-outcome good">Success</span></td>
<td>4m 59s</td>
<td><a href="videos/agent-native-apps/curated/chrome-window-agent-native-five-app-flow.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-row" data-run-lane="real-world" data-run-approach="hybrid">
<td><strong>Hybrid</strong></td>
<td><span class="run-lane hybrid">Real-world</span></td>
<td class="run-title"><strong>Four-app attempt (v7)</strong><span>4 of 5 apps; Slides not reached. Fail.</span></td>
<td><span class="run-outcome bad">Fail</span></td>
<td>3m 54s</td>
<td><a href="videos/agent-native-apps/hybrid/hybrid-agent-native-four-app-fallback-v7.mp4" target="_blank" rel="noopener">Open video</a></td>
</tr><tr class="run-empty" hidden><td colspan="6">No retained video matches these filters.</td></tr></tbody></table></div><p class="small"><a href="expanded-evidence-notes.md" target="_blank" rel="noopener">Open the per-run evidence notes</a> for the exact stopping point and failure reason behind each expanded clip.</p></section>
<div id="key" class="callout"><strong>Key:</strong> <b>Jev Browser</b> and <b>Jev Ultrafast</b> are fast browser-only agents, <b>Luna</b> is the visual computer-use model, and <b>Hybrid</b> tries Jev first and calls in Luna only when Jev's result fails verification.<br>Costs are estimates at published token rates, not invoices.<br>Hybrid = Jev first, Luna when Jev fails.</div>
<h2 id="details">Detailed results</h2>
<h2>Simple tests - detailed data</h2>
<div class="table-wrap"><table class=""><thead><tr><th>Approach</th><th>Successes / total</th><th>Success rate</th><th>Avg time / task</th><th>Cost</th><th>Cost / success</th><th>Cost basis</th></tr></thead><tbody><tr><td>Jev Browser</td><td>18 / 42</td><td>42.9%</td><td>1.77 s</td><td>$0.00542</td><td>$0.000301</td><td>Jev API estimate</td></tr><tr><td>Jev Ultrafast</td><td>18 / 42</td><td>42.9%</td><td>0.77 s</td><td>$0.00816</td><td>$0.000453</td><td>Jev API estimate</td></tr><tr><td>Luna</td><td>42 / 42</td><td>100%</td><td>32.49 s</td><td>$0.41890</td><td>$0.010741</td><td>connected Chrome</td></tr><tr><td>Hybrid</td><td>42 / 42</td><td>100%</td><td>25.19 s</td><td>$0.26997</td><td>$0.006922</td><td>Connected-Chrome upload recovery</td></tr></tbody></table></div>
<p class="small">The simple-test score is the clean 42-task comparison. Browser-tool capability checks are described below in prose and are not system scores.</p>
<h2>Real-world browser - detailed data</h2>
<div class="table-wrap"><table class=""><thead><tr><th>Approach</th><th>Scenario set</th><th>Successes / total</th><th>Success rate</th><th>Avg time / task</th><th>Cost</th><th>Cost / success</th></tr></thead><tbody><tr><td>Jev Browser</td><td>Public Flights/OpenTable/Resy discovery</td><td>3 / 9</td><td>33.3%</td><td>5.160 s</td><td>~$0.012997</td><td>~$0.004332</td></tr><tr><td>Jev Ultrafast</td><td>Public Flights/OpenTable/Resy discovery</td><td>1 / 9</td><td>11.1%</td><td>2.449 s</td><td>~$0.014248</td><td>~$0.014248</td></tr><tr><td>Luna</td><td>Public Flights/OpenTable/Resy discovery</td><td>9 / 9</td><td>100%</td><td>35.253 s</td><td>~$0.0828</td><td>~$0.00920</td></tr><tr><td>Jev Browser</td><td>Exact extended real-world browser</td><td>0 / 10</td><td>0%</td><td>11.4 s</td><td>~$0.00583</td><td>All ten retained Jev attempts failed exact postconditions.</td></tr><tr><td>Luna</td><td>Exact extended real-world browser</td><td>8 / 10</td><td>80%</td><td>~98.7 s</td><td>~$0.1876 known</td><td>Figma passed in the authenticated rerun; Drive remained on a non-matching result and hung past 20 minutes. The rerun was not separately metered.</td></tr><tr><td>Hybrid</td><td>Exact extended real-world browser recorded run</td><td>8 / 10</td><td>80%</td><td>~45.3 s</td><td>~$0.1241 known</td><td>Figma passed in the authenticated rerun; Jev 0/10 plus a fresh recorded Luna recovery run remains staged, not one interleaved live turn. The rerun was not separately metered.</td></tr><tr><td>Jev</td><td>Authenticated Agent-Native apps</td><td>1 / 8</td><td>12.5%</td><td>13.489 s</td><td>~$0.043794</td><td>~$0.043794</td></tr><tr><td>Luna</td><td>Authenticated Agent-Native apps</td><td>5 / 5</td><td>100%</td><td>82.647 s</td><td>~$0.098 estimate</td><td>~$0.0196</td></tr></tbody></table></div>
<p class="small">The 10-task row is the primary real-world result. The public row is a separate repeated discovery set: three Flights, three OpenTable, and three Resy read-only flows. These stop before booking, payment, or reservation submission. The unlisted Jev OpenTable clip is an EdgeSuite CDN access block before the app UI loads; the retained Jev Resy clip reaches a named reservation-details stop point.</p>
<h2>Computer use - detailed data</h2>
<div class="table-wrap"><table class=""><thead><tr><th>Approach</th><th>Successes / total</th><th>Success rate</th><th>Avg time / task</th><th>Cost</th><th>Cost / success</th></tr></thead><tbody><tr><td>Jev</td><td>1 / 5</td><td>20%</td><td>10.85 s</td><td>~$0.0282</td><td>~$0.0282</td></tr><tr><td>Luna</td><td>5 / 5</td><td>100%</td><td>37.82 s</td><td>~$0.04563 estimate</td><td>~$0.00913</td></tr><tr><td>Hybrid</td><td>5 / 5</td><td>100%</td><td>~36.11 s</td><td>~$0.06322 estimate</td><td>~$0.012644</td></tr></tbody></table></div>
<p class="small">Native tasks: Spotify search/play, Pages draft, TextEdit exact text, Keynote two-slide edit, and Numbers six-cell edit. The old Jev Keynote and Numbers captures were excluded after review because they were not paired with their traces. Synchronized reruns reproduced the failures: Keynote ended with blank placeholders and Numbers ended with an empty table. The matched hybrid now covers all five tasks: Jev succeeds directly only on the clean TextEdit task, and Luna repairs the native misses.</p>
<h3>Accessibility-driver control</h3>
<p class="small">The separate accessibility driver reads the macOS Accessibility tree plus a screenshot, then can click an element, type to a target process, or set a value. The four-task control passed Pages and failed Keynote, Numbers, and Spotify: <b>1 / 4</b>. These are direct driver controls with no Jev or Luna planning, so they stay out of the leaderboard; the computer-use summary table includes the row only as a clearly marked control result.</p>
<div class="table-wrap"><table class=""><thead><tr><th>Driver</th><th>Task</th><th>Result</th><th>What the evidence showed</th></tr></thead><tbody><tr><td>Jev, accessibility driver</td><td>Pages draft</td><td>Success</td><td>Fresh AX tree + canvas click + background typing; both requested lines visible in the final screenshot.</td></tr><tr><td>Jev, accessibility driver</td><td>Keynote two-slide edit</td><td>Fail</td><td>Created slides and exposed AX placeholders, but the title/body target drifted and the final slide contained duplicated title text and a blank bullet.</td></tr><tr><td>Jev, accessibility driver</td><td>Numbers six-cell edit</td><td>Fail</td><td>AX cells were exposed and editable, but stale indices shifted values; final table did not match the requested six-cell layout.</td></tr><tr><td>Jev, accessibility driver</td><td>Spotify Radiohead → Karma Police</td><td>Fail</td><td>Spotify exposed only a sparse window tree; the coordinate click did not reach the artist/track state, and no Karma Police playback was verified.</td></tr></tbody></table></div>
<h2>Browser tools check</h2>
<p>The deterministic 14/14 probe and Jev replay are not agent scores, so they are kept out of the four-system tables. No page JavaScript execution was used, matching normal ChatGPT Chrome use. The connected-Chrome bridge was the scored browser setup; the in-app browser was not used for the headline results.</p>
<p class="small"><strong>What Luna originally missed:</strong> In the initial ten-task real-world browser run, the non-passes were OpenTable (results page, not the named reservation-details stop point), private Drive (wrong search result and a hang beyond 20 minutes), and Figma (Google device-passkey stop point). The authenticated Figma rerun then succeeded for Luna and Hybrid, without a separate meter or retained recording. The 14/14 JS probe and 42/42 Jev-plus-JS replay are deterministic upper bounds, not Luna runs.</p>
<h3>Upload checks</h3>
<p class="small">Three follow-up Luna runs through the normal Chrome bridge exposed the native macOS chooser and visibly reached <b>SUCCESS</b> on all three. We repeated the same three-case sequence for Hybrid: Jev stopped at the unsupported file input, then connected-Chrome native-chooser recovery reached <b>SUCCESS</b> on all three. The connected-Chrome upload slice is therefore <b>3 / 3</b> for both Luna and Hybrid. Combined with each system's original 39 / 39 non-upload passes, the headline tables report <b>42 / 42</b>. Recovery time and cost were not separately metered, so the Hybrid time/cost values are known-run estimates rather than full end-to-end totals. The Luna traces are <a href="evidence/luna-js-control/upload-trace.json">here</a>, <a href="evidence/luna-js-control/upload-attempt-2.json">attempt 2</a>, and <a href="evidence/luna-js-control/upload-attempt-3.json">attempt 3</a>; the Hybrid trace is <a href="data/hybrid-upload-attempts.json">here</a>.</p>
<div class="table-wrap"><table class=""><thead><tr><th>Supported setup</th><th>Successes / total</th><th>Success rate</th><th>Avg time / task</th><th>Cost</th><th>Interpretation</th></tr></thead><tbody><tr><td>Luna</td><td>3 / 3</td><td>100%</td><td>not measured</td><td>not measured</td><td>Three model-directed normal-Chrome reruns selected benchmark.txt through the native chooser and visibly reached SUCCESS; this is the upload slice, not a fresh 42-task run</td></tr><tr><td>Hybrid</td><td>3 / 3</td><td>100%</td><td>not measured</td><td>not measured</td><td>Three Jev then Luna attempts stopped at the unsupported file input; connected-Chrome native-chooser recovery reached SUCCESS on all three. Recovery time and cost were not separately metered; the connected-Chrome headline is 42 / 42</td></tr></tbody></table></div>
<h2>Simple test details</h2>
<p>This is the clean 42-task battery. Each task has an exact end-state check. The old scripted Playwright helper is excluded because it was not a live Luna run.</p>
<div class="table-wrap"><table class=""><thead><tr><th>Approach</th><th>Successes / total</th><th>Success rate</th><th>Avg time / task</th><th>Cost</th><th>Cost / success</th><th>Cost basis</th></tr></thead><tbody><tr><td>Jev Browser</td><td>18 / 42</td><td>42.9%</td><td>1.77 s</td><td>$0.00542</td><td>$0.000301</td><td>Jev API estimate</td></tr><tr><td>Jev Ultrafast</td><td>18 / 42</td><td>42.9%</td><td>0.77 s</td><td>$0.00816</td><td>$0.000453</td><td>Jev API estimate</td></tr><tr><td>Luna</td><td>42 / 42</td><td>100%</td><td>32.49 s</td><td>$0.41890</td><td>$0.010741</td><td>connected Chrome</td></tr><tr><td>Hybrid</td><td>42 / 42</td><td>100%</td><td>25.19 s</td><td>$0.26997</td><td>$0.006922</td><td>Connected-Chrome upload recovery</td></tr></tbody></table></div>
<p class="small">Luna cost is a token-based estimate, not a subscription invoice. Jev cost is the tested input-token estimate. No separate local browser-tool fee is included.</p>
<h3>Measured browser capability breakdown</h3>
<div class="table-wrap"><table class=""><thead><tr><th>Category</th><th>Jev Browser</th><th>Jev Ultrafast</th></tr></thead><tbody><tr><td>Download</td><td>3 / 3</td><td>3 / 3</td></tr><tr><td>Filter/sort table</td><td>3 / 3</td><td>3 / 3</td></tr><tr><td>Navigation</td><td>3 / 3</td><td>3 / 3</td></tr><tr><td>Native select</td><td>3 / 3</td><td>3 / 3</td></tr><tr><td>Search and type</td><td>3 / 3</td><td>3 / 3</td></tr><tr><td>Scrolling</td><td>3 / 3</td><td>0 / 3</td></tr><tr><td>Modal and checkboxes</td><td>0 / 3</td><td>3 / 3</td></tr><tr><td>Drag and drop</td><td>0 / 3</td><td>0 / 3</td></tr><tr><td>File upload</td><td>0 / 3</td><td>0 / 3</td></tr><tr><td>Iframe / shadow DOM</td><td>0 / 6</td><td>0 / 6</td></tr><tr><td>Multi-field form</td><td>0 / 3</td><td>0 / 3</td></tr><tr><td>Rich text / spreadsheet</td><td>0 / 6</td><td>0 / 6</td></tr></tbody></table></div>
<h2>Computer-use task details</h2>
<p>These runs used the real macOS desktop. TextEdit, Keynote, and Numbers are native Apple apps with no HTML browser DOM in the task surface. Pages is a native-style AppKit editor. Spotify is included because it is a common desktop app, but it is an Electron/web surface and is explicitly labeled that way. Figma remains in the authenticated browser lane because its desktop shell is also a web/Electron-style surface, not a clean pure-native control.</p>
<div class="table-wrap"><table class=""><thead><tr><th>Task</th><th>Surface</th><th>Jev</th><th>Luna</th><th>Hybrid</th><th>What happened</th></tr></thead><tbody><tr><td>Spotify: Radiohead → Karma Police → play</td><td>Desktop app; Electron/web surface, not pure native</td><td><strong>Fail</strong><br>8.57 s<br>$0.00656<br>No verified clip retained; the original capture was excluded after frame review.</td><td><strong>Success</strong><br>40.41 s<br>$0.01521<br>spotify-search-play-timer.mp4</td><td><strong>Success</strong><br>49.43 s<br>$0.01839<br>spotify-radiohead-fallback-timer.mp4</td><td>Jev played the wrong Radiohead song; Luna recovered Karma Police. Hybrid used Luna after a verified Jev miss.</td></tr><tr><td>Pages: type two-line draft</td><td>Native-style AppKit rich-text editor</td><td><strong>Fail - false completion</strong><br>8.88 s<br>$0.00320<br><a href="videos/native-desktop/jev/pages-window-scoped-native-jev-stop.mp4" target="_blank" rel="noopener">Jev window-scoped clip</a></td><td><strong>Success</strong><br>18.31 s<br>$0.00507<br>pages-draft-timer.mp4</td><td><strong>Success</strong><br>20.90 s<br>$0.00827<br>pages-draft-fallback-timer.mp4</td><td>Jev reported SUBTASK_COMPLETE while Pages' Body remained empty. The hybrid verifier caught that and invoked Luna.</td></tr><tr><td>TextEdit: type three exact lines</td><td>Pure native AppKit text editor</td><td><strong>Success</strong><br>5.01 s<br>$0.00080<br><a href="videos/native-desktop/jev/textedit-window-scoped-native-jev-stop.mp4" target="_blank" rel="noopener">Jev window-scoped clip</a></td><td><strong>Success</strong><br>18.08 s<br>$0.00507<br>textedit-notes-timer.mp4</td><td><strong>Success - Jev leg; no recovery needed</strong><br>5.01 s<br>$0.00080<br>textedit-notes-frontmost-timer.mp4</td><td>The exact text was verified in the native text area. A fresh window-scoped capture shows only TextEdit with the exact lines; the older full-screen capture was excluded after frame review.</td></tr><tr><td>Keynote: create two-slide presentation</td><td>Pure native Apple presentation app</td><td><strong>Fail - false completion</strong><br>21.86 s<br>$0.01305<br>No verified clip retained; the original capture was excluded after frame review.</td><td><strong>Success - requested fields verified</strong><br>56.88 s<br>$0.01352 estimate<br><a href="videos/native-desktop/luna/keynote-two-slide-luna-stopwatch.mp4" target="_blank" rel="noopener">keynote-two-slide-luna-stopwatch.mp4</a></td><td><strong>Success - Luna recovery</strong><br>~83.0 s<br>~$0.03069 estimate<br><a href="videos/native-desktop/hybrid/keynote-hybrid-composite-stopwatch.mp4" target="_blank" rel="noopener">keynote-hybrid-composite-stopwatch.mp4</a></td><td>Synchronized rerun: Jev reported SUBTASK_COMPLETE, but the final presentation still showed blank placeholders; Luna then repaired and verified both slides. The hybrid clip is a labeled composite of the two continuous phases, with a 204-second stopwatch capture.</td></tr><tr><td>Numbers: enter a two-row status table</td><td>Pure native Apple spreadsheet app</td><td><strong>Fail - blank spreadsheet</strong><br>9.94 s<br>$0.00457<br>Synchronized rerun; no retained link</td><td><strong>Success - six cells verified</strong><br>55.45 s<br>$0.00676 estimate<br><a href="videos/native-desktop/luna/numbers-two-row-luna-stopwatch.mp4" target="_blank" rel="noopener">numbers-two-row-luna-stopwatch.mp4</a></td><td><strong>Success - Luna recovery</strong><br>~22.2 s<br>~$0.00507 estimate<br><a href="videos/native-desktop/hybrid/numbers-hybrid-composite-stopwatch.mp4" target="_blank" rel="noopener">numbers-hybrid-composite-stopwatch.mp4</a></td><td>Synchronized rerun: Jev created the workbook but never entered the requested cells; Luna then entered A1:B3 in the same fresh workbook and verified all six values. The hybrid clip is a labeled composite of the two continuous phases, with a 220-second stopwatch capture.</td></tr></tbody></table></div>
<h3>Native desktop scorecard</h3>
<div class="table-wrap"><table class=""><thead><tr><th>Approach</th><th>Successes / total</th><th>Success rate</th><th>Avg time / task</th><th>Cost</th><th>Cost / success</th></tr></thead><tbody><tr><td>Jev</td><td>1 / 5</td><td>20%</td><td>10.85 s</td><td>~$0.0282</td><td>~$0.0282</td></tr><tr><td>Luna</td><td>5 / 5</td><td>100%</td><td>37.82 s</td><td>~$0.04563 estimate</td><td>~$0.00913</td></tr><tr><td>Hybrid</td><td>5 / 5</td><td>100%</td><td>~36.11 s</td><td>~$0.06322 estimate</td><td>~$0.012644</td></tr></tbody></table></div>
<p class="small">Native Luna costs use a calibrated action-count estimate: the fresh 42-task run's $0.41890 estimate divided by 248 observed actions, or about $0.00169 per action. The new Keynote recovery used 11 actions and the new Numbers recovery used 3. The native clips did not expose a separate invoice. Jev native costs use input tokens at $0.042 / million. These are comparison estimates only.</p>
<p class="small"><strong>Why Jev is the most expensive per success here:</strong> it paid for all five attempts but produced only one verified success, so its total attempt cost is divided by 1. Hybrid is also above Luna in this lane because it paid for a Jev-then-Luna attempt plus verification/recovery work. This does not mean a single Jev action costs more than Luna; it is the cost of failed attempts spread over very few completions.</p>
<h2>Real-world browser details</h2>
<p>These are deliberately harder than the fixture battery: booking stop points, authenticated apps, rich editing, and multi-step navigation. A pass requires the meaningful safe stop point, not a search page. We did not submit purchases, reservations, sends, shares, or payments.</p>
<div class="callout warning"><strong>Why Jev Browser is 0 / 10:</strong> This is not “zero clicks.” Jev reached partial pages and controls, but none of the ten runs reached its exact verified postcondition. The retained evidence clusters the misses around transport/auth gates, multi-step forms and rich state, and false or incomplete end-state verification. The score therefore measures dependable completion, not whether the browser moved.</div>
<h3>Earlier retained workflow evidence</h3>
<p class="small">This table preserves the earlier per-flow evidence trail. The 10-task scorecard immediately below is the primary real-world comparison.</p>
<div class="table-wrap"><table class=""><thead><tr><th>Workflow</th><th>Jev Browser outcome</th><th>Luna evidence</th><th>Hybrid evidence</th><th>Jev attempt video</th></tr></thead><tbody><tr><td>United flight</td><td>Fail</td><td>Fail - itinerary selected; traveler/payment stop point (not booked)<br><a href="videos/luna-real-world/luna-united-sfo-ewr-full-v2.mov" target="_blank" rel="noopener">Luna stop point clip</a></td><td>Fail - Jev short failure -> Luna traveler stop point<br>Hybrid composite</td><td>No verified clip retained; the original capture was excluded after frame review.</td></tr><tr><td>Google Flights concrete fare</td><td>DRIFTED - 0 / 1</td><td>Partial search/results only</td><td>Partial search/results only</td><td><a href="videos/extended-e2e/jev-browser-stopwatch-v2/google-flights-fare-boundary.mp4" target="_blank" rel="noopener">google-flights-fare-stop point.mp4</a></td></tr><tr><td>Thai restaurant reservation</td><td>Fail - OpenTable CDN/EdgeSuite block before app UI</td><td>Fail - Hed Very Thai, Mon Sep 21 8:00 PM, party 2; reached “You’re almost done” / Complete reservation, then released the temporary hold. Luna turn: 64.4 s, ~$0.0169 Luna usage estimate<br>Luna Chrome stop point clip</td><td>Fail - Jev hit the same transport stop point; Luna reached reservation details<br>Hybrid composite</td><td><a href="videos/expanded-evidence/browser/jev-resy-search-boundary.mp4" target="_blank" rel="noopener">Jev Resy details clip</a></td></tr><tr><td>Spotify public track</td><td>Fail</td><td>No matched full trace</td><td>Computer use lane scored separately</td><td>spotify-public-track-stop point.mp4</td></tr><tr><td>SauceDemo checkout</td><td>Fail</td><td>Cart/checkpoint evidence only</td><td>No matched extended trace</td><td>saucedemo-checkout-stop point.mp4</td></tr><tr><td>TodoMVC project tracker</td><td>Fail</td><td>Success - Completed filter verified; final Active state retained<br>Luna Chrome clip</td><td>Success - Jev short attempt -> Luna add/complete/filter recovery<br>Hybrid composite</td><td>todomvc-project-tracker.mp4</td></tr><tr><td>Google Drive private edit</td><td>Fail</td><td>Authenticated checkpoint exists</td><td>No matched extended trace</td><td>drive-private-doc-create-edit.mp4</td></tr><tr><td>Notion private edit</td><td>Fail</td><td>Authenticated checkpoint exists</td><td>No matched extended trace</td><td>notion-private-page-create-edit.mp4</td></tr><tr><td>Figma private design</td><td>Fail</td><td>Success - authenticated rerun created, edited, renamed, and verified the design; no recording retained</td><td>Success - authenticated rerun created, edited, renamed, and verified the design; no recording retained</td><td>figma-private-design-create-edit.mp4</td></tr><tr><td>Mail private draft</td><td>Fail</td><td>Authenticated draft checkpoint exists</td><td>No matched extended trace</td><td>No verified clip retained; the original capture was excluded after frame review.</td></tr></tbody></table></div>
<h3>Real-world browser scorecard - 10-task denominator</h3>
<div class="table-wrap"><table class=""><thead><tr><th>Approach</th><th>Successes / total</th><th>Success rate</th><th>Avg time / task</th><th>Cost</th><th>Why it is or is not scored</th></tr></thead><tbody><tr><td>Jev Browser</td><td>0 / 10</td><td>0%</td><td>11.4 s</td><td>~$0.00583 estimate</td><td>All ten exact Jev attempts failed exact postconditions.</td></tr><tr><td>Luna</td><td>8 / 10</td><td>80%</td><td>~98.7 s</td><td>~$0.1876 known estimate</td><td>Figma passed in the authenticated rerun; United, Notion, Spotify, Mail, Calendar, SauceDemo, and TodoMVC passed. OpenTable was results-only and Drive did not find the private target. The Figma rerun was not separately metered.</td></tr><tr><td>Hybrid</td><td>8 / 10</td><td>80%</td><td>~45.3 s</td><td>~$0.1241 known estimate</td><td>Figma passed in the authenticated rerun. The remaining comparison is a recorded Jev then Luna plus Luna recovery run, not one interleaved live turn; the Figma rerun was not separately metered.</td></tr></tbody></table></div>
<p class="small"><strong>Score note:</strong> The primary 10-task score is Jev 0/10, Luna 8/10, and Hybrid 8/10. Luna and Hybrid pass United, Notion, Figma, Spotify, Mail, Calendar, SauceDemo, and TodoMVC; OpenTable is results-only and Drive does not find the private target. Figma is the authenticated rerun and is not separately metered. Hybrid remains a staged Jev-then-Luna recovery record, not one interleaved live turn.</p>
<div class="table-wrap"><table class=""><thead><tr><th>Exact workflow</th><th>Luna outcome</th><th>Observed time</th><th>Verified end state</th><th>Recording</th></tr></thead><tbody><tr><td>United flight</td><td>Success</td><td>145.0 s</td><td>SFO → EWR, Oct 10–17, one adult; traveler/payment stop point visible; purchase untouched.</td><td><a href="videos/luna-real-world/luna-united-sfo-ewr-full-v2.mov" target="_blank" rel="noopener">Verified Luna clip</a></td></tr><tr><td>Thai restaurant</td><td>Fail</td><td>123.9 s</td><td>Oct 10, 7:00 PM, party 2, eight Thai results visible; no named reservation-details step.</td><td>Verified Luna clip</td></tr><tr><td>Google Drive</td><td>Fail / HUNG</td><td>>20 min</td><td>Search returned only “AI Frontend Generation Benchmark” owned by Brent; the requested private Jev document was not opened.</td><td>No verified clip retained; the original capture was excluded after frame review.</td></tr><tr><td>Notion</td><td>Success</td><td>part of 619.4 s continuation</td><td>Private page “Jev benchmark private Notion test” visibly contains the requested sentence.</td><td>No verified clip retained; the original capture was excluded after frame review.</td></tr><tr><td>Figma</td><td>Success - authenticated rerun</td><td>unmetered rerun</td><td>Private design was created, edited, renamed, and verified on screen; no recording was retained.</td><td>No verified clip retained; the original capture was excluded after frame review.</td></tr><tr><td>Spotify</td><td>Success</td><td>part of 619.4 s continuation</td><td>Khruangbin → Texas Sun selected; public playback was gated by signup, so the conditional playback goal could not go further.</td><td>No verified clip retained; the original capture was excluded after frame review.</td></tr><tr><td>Mail</td><td>Success</td><td>part of 619.4 s continuation</td><td>Jev-related draft found, addressed to steve@builder.io, requested subject/body visible; Send untouched.</td><td>No verified clip retained; the original capture was excluded after frame review.</td></tr><tr><td>Calendar</td><td>Success</td><td>part of 619.4 s continuation</td><td>Title, Oct 20 2026, 10:00–10:30 AM visible; Create untouched.</td><td>No verified clip retained; the original capture was excluded after frame review.</td></tr><tr><td>SauceDemo</td><td>Success</td><td>part of 619.4 s continuation</td><td>Fleece Jacket checkout overview with Ada Lovelace and ZIP 94025; site exposes no email field; Finish untouched.</td><td>No verified clip retained; the original capture was excluded after frame review.</td></tr><tr><td>TodoMVC</td><td>Success</td><td>part of 619.4 s continuation</td><td>Buy coffee and Review Jev benchmark completed; Completed filter visible; Send dinner options remains active.</td><td>Verified Luna clip</td></tr></tbody></table></div>
<h3>10-task per-workflow comparison</h3>
<p class="small">This is the direct “who passed which task” view. Jev is 0/10 on the exact postconditions. Hybrid cells use the newly recorded ten-task recovery replay after the retained Jev misses; they are not presented as one live interleaved turn. Aggregate time and cost are reported above because the recording is one continuous browser run.</p>
<div class="table-wrap"><table class=""><thead><tr><th>Workflow</th><th>Jev</th><th>Luna</th><th>Hybrid</th><th>Jev video</th><th>Luna video</th><th>Hybrid evidence</th></tr></thead><tbody><tr><td>United flight</td><td>Fail</td><td>Success</td><td>Success - recorded Luna recovery</td><td>No verified clip retained; the original capture was excluded after frame review.</td><td><a href="videos/luna-real-world/luna-united-sfo-ewr-full-v2.mov" target="_blank" rel="noopener">Luna</a></td><td>Recorded recovery</td></tr><tr><td>Thai restaurant</td><td>Fail - CDN block</td><td>Fail</td><td>Success - recorded recovery reached reservation details</td><td>Jev</td><td>Luna</td><td>Recorded recovery</td></tr><tr><td>Google Drive</td><td>Fail</td><td>Fail / HUNG</td><td>Fail - recorded recovery did not find target</td><td>Jev</td><td>No verified clip retained; the original capture was excluded after frame review.</td><td>No verified clip retained; the original capture was excluded after frame review.</td></tr><tr><td>Notion</td><td>Fail</td><td>Success</td><td>Success - recorded Luna recovery</td><td>Jev</td><td>No verified clip retained; the original capture was excluded after frame review.</td><td>No verified clip retained; the original capture was excluded after frame review.</td></tr><tr><td>Figma</td><td>Fail</td><td>Success - authenticated rerun</td><td>Success - authenticated rerun; no recording retained</td><td>Jev</td><td>No verified clip retained; the original capture was excluded after frame review.</td><td>No verified clip retained; the original capture was excluded after frame review.</td></tr><tr><td>Spotify</td><td>Fail</td><td>Success</td><td>Success - recorded recovery</td><td>Jev</td><td>No verified clip retained; the original capture was excluded after frame review.</td><td>No verified clip retained; the original capture was excluded after frame review.</td></tr><tr><td>Mail</td><td>Fail</td><td>Success</td><td>Fail / Fail - recorded recovery</td><td>No verified clip retained; the original capture was excluded after frame review.</td><td>No verified clip retained; the original capture was excluded after frame review.</td><td>No verified clip retained; the original capture was excluded after frame review.</td></tr><tr><td>Calendar</td><td>Fail</td><td>Success</td><td>Success - recorded Luna recovery</td><td>No verified clip retained; the original capture was excluded after frame review.</td><td>No verified clip retained; the original capture was excluded after frame review.</td><td>No verified clip retained; the original capture was excluded after frame review.</td></tr><tr><td>SauceDemo</td><td>Fail</td><td>Success</td><td>Success - recorded recovery</td><td>Jev</td><td>No verified clip retained; the original capture was excluded after frame review.</td><td>No verified clip retained; the original capture was excluded after frame review.</td></tr><tr><td>TodoMVC</td><td>Fail</td><td>Success</td><td>Success - recorded Luna recovery</td><td>Jev</td><td>Luna</td><td>Recorded recovery</td></tr></tbody></table></div>
<h3>Recorded recovery run ledger</h3>
<p class="small">Per-task timings and Luna action counts come from the run ledger; the aggregate is 441.862 seconds and 70 actions. Some Success labels are safe stop-point passes, not external side effects.</p>
<div class="table-wrap"><table class=""><thead><tr><th>Workflow</th><th>Recorded outcome</th><th>Wall time</th><th>Luna actions</th><th>Verified stop point</th></tr></thead><tbody><tr><td>United flight</td><td>Success</td><td>~4m</td><td>~22</td><td>Traveler Info/payment stop point; Continue untouched.</td></tr><tr><td>Thai restaurant</td><td>Success</td><td>~2m</td><td>~12</td><td>Named OpenTable slot and reservation-details stop point; reservation untouched.</td></tr><tr><td>Google Drive</td><td>Fail</td><td>~1m</td><td>~9</td><td>No matching private benchmark file found.</td></tr><tr><td>Notion</td><td>Success</td><td>~1m</td><td>~10</td><td>Recovery note added and verified on the private page.</td></tr><tr><td>Figma</td><td>Success</td><td>unmetered</td><td>unmetered</td><td>Authenticated rerun created, edited, renamed, and verified the design; no recording retained.</td></tr><tr><td>Spotify</td><td>Success</td><td>~2m</td><td>~5</td><td>Texas Sun selected; signup gate blocked playback.</td></tr><tr><td>Mail</td><td>Fail / Fail</td><td><1m</td><td>~2</td><td>Google re-verification required before draft access.</td></tr><tr><td>Calendar</td><td>Success</td><td>~2m</td><td>~6</td><td>Oct 20, 10:00–10:30 form filled; event not saved.</td></tr><tr><td>SauceDemo</td><td>Success</td><td>~2m</td><td>~8</td><td>Final overview visible; Finish untouched.</td></tr><tr><td>TodoMVC</td><td>Success</td><td>~1m</td><td>~7</td><td>Three items added, first two completed, Completed filter visible.</td></tr></tbody></table></div>
<p>All retained video evidence is listed once in the Recorded runs table above.</p>
<h3>Additional public computer-use lane - a separate real-world result</h3>
<p>This is the missing context behind “Luna did more than text editing.” It is a different, fully repeated public lane: three fresh starts each for Google Flights, OpenTable, and Resy, stopping at read-only search/results states. It is not the exact ten-task denominator above, and it does not claim a booking.</p>
<div class="table-wrap"><table class=""><thead><tr><th>Approach</th><th>Successes / total</th><th>Success rate</th><th>Avg time / flow</th><th>Cost / 9 flows</th><th>Cost / success</th><th>Scope</th></tr></thead><tbody><tr><td>Jev Browser</td><td>3 / 9</td><td>33.3%</td><td>5.160 s</td><td>~$0.012997</td><td>~$0.004332</td><td>Three fresh starts each for Flights, OpenTable, and Resy; stop at discovery/results.</td></tr><tr><td>Jev Ultrafast</td><td>1 / 9</td><td>11.1%</td><td>2.449 s</td><td>~$0.014248</td><td>~$0.014248</td><td>Same repeated public lane; three OpenTable attempts were transport-blocked.</td></tr><tr><td>Luna</td><td>9 / 9</td><td>100%</td><td>35.253 s</td><td>~$0.0828 estimate</td><td>~$0.00920 estimate</td><td>Same nine read-only discovery/results flows; not bookings.</td></tr><tr><td>Hybrid</td><td>N/A</td><td>N/A</td><td>N/A</td><td>N/A</td><td>N/A</td><td>No comparable repeated public hybrid run was retained.</td></tr></tbody></table></div>
<div class="table-wrap"><table class=""><thead><tr><th>Flow</th><th>Jev Browser</th><th>Jev Ultrafast</th><th>Luna</th><th>What the pass means</th></tr></thead><tbody><tr><td>Google Flights</td><td>0 / 3</td><td>1 / 3</td><td>3 / 3</td><td>Search/results only; Luna reached 18 results each run.</td></tr><tr><td>OpenTable</td><td>0 / 3</td><td>0 / 3</td><td>3 / 3</td><td>Jev contexts hit transport errors; visible Luna Chrome showed cards and 7:00 PM slots.</td></tr><tr><td>Resy</td><td>3 / 3</td><td>0 / 3</td><td>3 / 3</td><td>Party/date/time search; Jev Browser reached the 19:00 slot state.</td></tr></tbody></table></div>
<p class="small">Costs in this table are totals for all nine attempts. The OpenTable Jev rows were transport-blocked in isolated contexts while visible Luna Chrome already had public cards. That row is an environment difference, not clean model evidence. The Luna cost is a token-equivalent estimate, not a product invoice or local tool fee.</p>
<h3>One-run public smoke checks</h3>
<div class="table-wrap"><table class=""><thead><tr><th>Scenario</th><th>Jev Browser</th><th>Jev Ultrafast</th><th>Luna</th><th>Task</th></tr></thead><tbody><tr><td>SauceDemo cart</td><td>Fail</td><td>Fail</td><td>Success - 62.660 s</td><td>Log in, sort, add most expensive item, open cart.</td></tr><tr><td>The Internet secure login</td><td>Fail</td><td>Fail</td><td>Success - 21.081 s</td><td>Reach the secure area; password input was the Jev stop point.</td></tr><tr><td>TodoMVC complete/filter</td><td>Success</td><td>Fail</td><td>Success - 30.862 s</td><td>Add Buy coffee, complete it, filter Completed.</td></tr><tr><td>OpenTable discovery</td><td>transport blocked</td><td>transport blocked</td><td>Success - 13.381 s</td><td>Environment differs: visible Luna Chrome had public cards.</td></tr></tbody></table></div>
<p>These add non-text computer use: login, cart construction, secure-area navigation, todo completion/filtering, and restaurant discovery. No password, checkout, reservation, or payment side effect was submitted.</p>
<h3>Additional public research tasks</h3>
<div class="table-wrap"><table class=""><thead><tr><th>Scenario</th><th>Jev Browser</th><th>Luna</th><th>Hybrid</th><th>Task</th></tr></thead><tbody><tr><td>Research-only: Wikipedia two-hop</td><td>Success - 15.930 s; ~$0.020947</td><td>Success - ~15 s; ~4 Luna actions</td><td>Success - Jev leg retained; no Luna recovery needed</td><td>Research-only check; excluded from the real-world workflow lane.</td></tr><tr><td>GitHub Cua issue research</td><td>Success - 8.544 s; ~$0.002258</td><td>Success - ~20 s; ~3 Luna actions</td><td>Success - Jev leg retained; no Luna recovery needed</td><td>Open the Cua issue list, select issue #3982, and verify its browser-dialog failure body.</td></tr></tbody></table></div>
<p class="small">These are useful Jev-only real-site checks, but they are not apples-to-apples comparisons and are excluded from the headline rates. They show that Jev is not limited to clicking buttons: it completed two-hop navigation and issue-page research when the page exposed a short indexed path.</p>
<h3>Agent-native apps (authenticated)</h3>
<p>Using the signed-in native Chrome profile, Luna completed one safe checkpoint in each requested app. Jev ran a separate exact eight-task runner. The denominators are different, so they are reported separately rather than pooled.</p>
<div class="table-wrap"><table class=""><thead><tr><th>Approach</th><th>Successes / total</th><th>Success rate</th><th>Avg time / flow</th><th>Cost</th><th>Scope</th></tr></thead><tbody><tr><td>Jev</td><td>1 / 8</td><td>12.5%</td><td>13.489 s</td><td>~$0.043794</td><td>Exact eight-task authenticated runner; Slides was the exact pass.</td></tr><tr><td>Luna</td><td>5 / 5</td><td>100%</td><td>82.647 s</td><td>~$0.098 estimate</td><td>One safe composite checkpoint in each requested Agent-Native app.</td></tr><tr><td>Hybrid</td><td>N/A</td><td>N/A</td><td>N/A</td><td>N/A</td><td>No matched authenticated hybrid run was retained.</td></tr></tbody></table></div>
<div class="table-wrap"><table class=""><thead><tr><th>App</th><th>Jev exact-run outcome</th><th>Luna safe checkpoint</th><th>Verified Luna clip</th></tr></thead><tbody><tr><td>Mail</td><td>Fail - 0 / 3 Jev tasks</td><td>Success - searched and edited an unsent draft</td><td>no screen recording retained (the earlier capture was a generated title card, not a recording)</td></tr><tr><td>Calendar</td><td>Fail - 0 / 2 Jev tasks</td><td>Success - week/search stop point; no event saved</td><td>no screen recording retained (the earlier capture was a generated title card, not a recording)</td></tr><tr><td>Design</td><td>Fail - target error</td><td>Success - visible design artifact and edit</td><td>no screen recording retained (the earlier capture was a generated title card, not a recording)</td></tr><tr><td>Slides</td><td>Success - create/edit</td><td>Success - visible deck edit; generation caveat</td><td>no screen recording retained (the earlier capture was a generated title card, not a recording)</td></tr><tr><td>Content</td><td>Fail - remained Churning</td><td>Success - visible document create/edit</td><td>no screen recording retained (the earlier capture was a generated title card, not a recording)</td></tr></tbody></table></div>
<p class="small">Mail stopped at an unsent draft, Calendar stopped before saving an event or invite, and Design/Slides/Content stopped before share/publish. Those are deliberate safety boundaries, not completed external side effects.</p>
<h2>Comparison details</h2>
<p>This keeps the four benchmark names simple while still explaining what was actually measured.</p>
<div class="table-wrap"><table class=""><thead><tr><th>Approach</th><th>Measured 42</th><th>Exact real-world 10</th><th>Public discovery public 9</th><th>Computer use 5</th><th>Headline reading</th><th>Stop point</th></tr></thead><tbody><tr><td>Jev Browser</td><td>18 / 42</td><td>0 / 10</td><td>3 / 9</td><td>N/A</td><td>42.9% measured; 0% exact; 33.3% public discovery</td><td>Fastest browser decision lane</td></tr><tr><td>Jev Ultrafast</td><td>18 / 42</td><td>N/A</td><td>1 / 9</td><td>N/A</td><td>42.9% measured; 11.1% public discovery</td><td>Fastest variant; same measured success rate</td></tr><tr><td>Jev</td><td>N/A</td><td>N/A</td><td>N/A</td><td>1 / 5</td><td>20% native</td><td>Separate desktop Jev adapter; synchronized Keynote and Numbers reruns ended without the requested content</td></tr><tr><td>Luna</td><td>42 / 42</td><td>8 / 10</td><td>9 / 9</td><td>5 / 5</td><td>100% connected-Chrome basic; 80% exact; 100% public/native</td><td>Figma passed in the authenticated rerun; the rerun was not separately metered</td></tr><tr><td>Hybrid</td><td>42 / 42</td><td>8 / 10</td><td>N/A</td><td>5 / 5</td><td>100% connected-Chrome basic; 80% updated exact run; 100% matched native</td><td>Figma passed in the authenticated rerun; the Jev then Luna recording remains staged</td></tr></tbody></table></div>
<h2>Bottom line</h2>
<p>On 42 scripted browser tasks with an exact pass/fail check, Jev's two fast browser variants each land 18 of 42 (42.9%) while Luna and the Jev-then-Luna Hybrid both land 42 of 42. Jev is dramatically faster and cheaper only on tasks its structured control view can already see cleanly. On the harder real-world browser set, Jev Browser passes 0 of 10 and Jev Ultrafast 1 of 9 on a separate public lane, against 8 of 10 for both Luna and Hybrid after the authenticated Figma rerun; on five native macOS desktop tasks Jev passes 1 of 5 against 5 of 5 for Luna and Hybrid. Jev is genuinely good at short, well-exposed browser controls, then drops sharply on multi-step forms, rich editors, uploads, and native apps. Luna's slower visual approach, and Hybrid's verified recovery, are stronger on those tasks.</p>
<h2>What the tests were</h2>
<ul>
<li><b>Simple tests</b> - 42 scripted browser fixtures (downloads, filters, tables, selects, search), each with an exact end-state check.</li>
<li><b>Real-world browser</b> - 10 longer workflows on live sites (flights, dining, authenticated docs, and mail) requiring multi-step navigation or sign-in.</li>
<li><b>Computer use</b> - 5 macOS desktop tasks in TextEdit, Pages, Keynote, Numbers, and Spotify, scored by verifying the requested content on screen.</li>
<li><b>Agent-Native apps</b> - a separate authenticated lane covering Mail, Calendar, Design, Slides, and Content, scored at safe checkpoints and kept out of Overall.</li>
</ul>
<h2>How the approaches work</h2>
<ul>
<li><b>Browser path:</b> the wrapper exposes normalized page content plus structured controls and text to the Jev decision model. The retained trace is Markdown-like content rather than a byte-for-byte raw HTML dump; no page JavaScript execution was used.</li>
<li><b>Native path used here:</b> Jev's desktop adapter collects macOS Accessibility elements plus Vision OCR candidates. Jev selects a typed action such as click, set value, or type text from that structured snapshot. It is not receiving a raw HTML document from TextEdit or Pages.</li>
<li><b>OCR:</b> Optical Character Recognition turns pixels in a screenshot into guessed words and bounding boxes. It can suggest where “Save” or “Karma Police” appears, but it does not prove that the target is editable, clickable, focused, or successfully changed.</li>
<li><b>Why native is harder:</b> browser controls usually expose stable semantic roles, labels, values, and DOM state. Native apps vary: TextEdit exposed a clean <code>AXTextArea</code>, while rich editors, spreadsheets, canvases, and some media apps can expose sparse or stale semantics. The driver then leans more on OCR, coordinates, keyboard focus, and independent verification.</li>
<li><b>Luna path:</b> Luna operated the visible desktop/browser surface and was required to verify the end state from the UI.</li>
<li><b>Text:</b> Jev can emit literal text when the target and focus are clean. The failure mode is target/focus/semantic editing and verification. Pages is the clearest example: Jev emitted two type actions, reported completion, and still left the Body empty. TextEdit passed because the native text area was a clean target.</li>
</ul>
<p><b>Separate driver control:</b> TryCua Cua Driver independently set the same kind of multi-line TextEdit value through a fresh Accessibility snapshot and read it back twice. That control passed, with no model and no leaderboard score: <a href="cua-driver-control/textedit/recording.mp4" target="_blank" rel="noopener">recording</a> · <a href="cua-driver-control/textedit/after-verified.png">verified screenshot</a>. It proves the native driver can act when the app exposes a clean target; it does not prove that Jev can choose the target or plan the workflow.</p>
<p><b>Text note:</b> the basic fixtures used a scripted text helper, so those rows measure browser decisions rather than prose generation. The Ultrafast wrapper used a small text model to supply the literal string after Jev selected the target and operation. That helper does not solve focus, caret movement, rich-text editing, keyboard submission, or verification. Luna generated and entered text through its own visual loop. In the native Jev run, the task supplied literal strings to a typed action policy; there was no general-purpose writing model hidden behind the Jev score.</p>
<p>Related implementations and claims: <a href="https://github.com/shhivv/third-hand" target="_blank" rel="noopener">Third Hand</a>, <a href="https://github.com/milind-soni/tiptour-macos" target="_blank" rel="noopener">TipTour macOS</a>, and <a href="https://github.com/trycua/cua" target="_blank" rel="noopener">Cua</a>. The benchmark treats a demo's driver, OCR, DOM extraction, keyboard helper, and Jev model as separate components rather than attributing every capability to Jev alone.</p>
<section id="what-agents-see" class="perception-card">
<div class="section-kicker">Perception</div>
<div class="perception-intro"><h2>What each approach can see</h2><p>These diagrams show the information available to the decision loop. Jev Web gets a normalized, unstyled page representation plus controls; Jev Computer Use gets macOS Accessibility data; Luna works from the visible desktop surface.</p></div>
<div class="perception-tabs" role="tablist" aria-label="What each approach can see">
<button type="button" class="perception-tab active" role="tab" aria-selected="true" aria-controls="perception-web">Jev Web</button>
<button type="button" class="perception-tab" role="tab" aria-selected="false" aria-controls="perception-native">Jev Computer Use</button>
<button type="button" class="perception-tab" role="tab" aria-selected="false" aria-controls="perception-luna">Luna</button>
</div>
<div id="perception-web" class="perception-panel active" role="tabpanel">
<div><h3>Unstyled HTML / DOM shape</h3><pre class="perception-code"><code><span class="syntax-comment"><!-- CSS is not part of this representation --></span>
<span class="syntax-tag"><form</span> <span class="syntax-attr">aria-label</span>=<span class="syntax-string">"Search"</span><span class="syntax-tag">></span>
<span class="syntax-tag"><label</span> <span class="syntax-attr">for</span>=<span class="syntax-string">"destination"</span><span class="syntax-tag">></span>Where to?<span class="syntax-tag"></label></span>
<span class="syntax-tag"><input</span> <span class="syntax-attr">id</span>=<span class="syntax-string">"destination"</span> <span class="syntax-attr">value</span>=<span class="syntax-string">"San Francisco"</span><span class="syntax-tag">></span>
<span class="syntax-tag"><button</span> <span class="syntax-attr">type</span>=<span class="syntax-string">"submit"</span><span class="syntax-tag">></span>Search<span class="syntax-tag"></button></span>
<span class="syntax-tag"></form></span></code></pre><div class="perception-key"><span>structure</span><span>text + value</span><span>control semantics</span></div><p class="perception-caption">The benchmark adapter normalizes this kind of page into text, links, and controls. The retained Wikipedia trace contains Markdown-like page content, not the page's CSS pixels or a raw HTML byte dump.</p></div>
<pre class="perception-code"><code><span class="syntax-punctuation">{</span>
<span class="syntax-property">"content"</span>: <span class="syntax-string">"[Search](/search)\n\n# Results\n\n..."</span>,
<span class="syntax-property">"controls"</span>: [
<span class="syntax-punctuation">{</span>
<span class="syntax-property">"role"</span>: <span class="syntax-string">"textbox"</span>,
<span class="syntax-property">"name"</span>: <span class="syntax-string">"Where to?"</span>,
<span class="syntax-property">"value"</span>: <span class="syntax-string">"San Francisco"</span>,
<span class="syntax-property">"actions"</span>: [<span class="syntax-string">"setValue"</span>]
<span class="syntax-punctuation">}</span>,
<span class="syntax-punctuation">{</span>
<span class="syntax-property">"role"</span>: <span class="syntax-string">"button"</span>,
<span class="syntax-property">"name"</span>: <span class="syntax-string">"Search"</span>,
<span class="syntax-property">"actions"</span>: [<span class="syntax-string">"click"</span>]
<span class="syntax-punctuation">}</span>
]
<span class="syntax-punctuation">}</span></code></pre>
</div>
<div id="perception-native" class="perception-panel" role="tabpanel" hidden>
<div><h3>macOS Accessibility tree</h3><pre class="perception-diagram">TextEdit
└─ AXWindow "Notes.rtf"
├─ AXToolbar
│ └─ AXButton "New document"
└─ AXTextArea "Document body"
├─ value: "Line one\nLine two"
├─ focused: true
└─ action: AXSetValue</pre><div class="perception-key"><span>hierarchy</span><span>semantic state</span><span>settable value</span></div></div>
<pre class="perception-code"><code><span class="syntax-punctuation">{</span>
<span class="syntax-property">"id"</span>: <span class="syntax-string">"node-17"</span>,
<span class="syntax-property">"role"</span>: <span class="syntax-string">"AXTextArea"</span>,
<span class="syntax-property">"title"</span>: <span class="syntax-string">"Document body"</span>,
<span class="syntax-property">"value"</span>: <span class="syntax-string">"Line one\nLine two"</span>,
<span class="syntax-property">"enabled"</span>: <span class="syntax-boolean">true</span>,
<span class="syntax-property">"focused"</span>: <span class="syntax-boolean">true</span>,
<span class="syntax-property">"frame"</span>: <span class="syntax-punctuation">{</span> <span class="syntax-property">"x"</span>: <span class="syntax-number">120</span>, <span class="syntax-property">"y"</span>: <span class="syntax-number">180</span> <span class="syntax-punctuation">}</span>,
<span class="syntax-property">"actions"</span>: [<span class="syntax-string">"AXSetValue"</span>]
<span class="syntax-punctuation">}</span></code></pre>
</div>
<div id="perception-luna" class="perception-panel" role="tabpanel" hidden>
<div><h3>Visible desktop context</h3><pre class="perception-diagram">Desktop screenshot
┌─────────────────────────────────────┐
│ [Save] Notes.rtf │
│ │
│ Line one │
│ Line two │
│ [Cancel] │
└─────────────────────────────────────┘
pixels + visual context</pre><div class="perception-key"><span>pixels</span><span>visual text</span><span>layout inference</span></div></div>
<pre class="perception-code"><code><span class="syntax-punctuation">{</span>
<span class="syntax-property">"image"</span>: <span class="syntax-string">"screen pixels"</span>,
<span class="syntax-property">"visible_text"</span>: [
<span class="syntax-punctuation">{</span> <span class="syntax-property">"text"</span>: <span class="syntax-string">"Save"</span>, <span class="syntax-property">"box"</span>: [<span class="syntax-number">42</span>, <span class="syntax-number">18</span>, <span class="syntax-number">55</span>, <span class="syntax-number">24</span>] <span class="syntax-punctuation">}</span>,
<span class="syntax-punctuation">{</span> <span class="syntax-property">"text"</span>: <span class="syntax-string">"Line one"</span>, <span class="syntax-property">"box"</span>: [<span class="syntax-number">42</span>, <span class="syntax-number">112</span>, <span class="syntax-number">76</span>, <span class="syntax-number">20</span>] <span class="syntax-punctuation">}</span>
],
<span class="syntax-property">"visual_context"</span>: <span class="syntax-string">"document contains two visible lines"</span>,
<span class="syntax-property">"next_action"</span>: <span class="syntax-string">"verify the final state"</span>
<span class="syntax-punctuation">}</span></code><span class="perception-caption">Conceptual view: this is not a claim about Luna's private internal wire format. The point is that Luna reasons from the visible surface, while Jev's structured view depends on what the page or app exposes.</span></pre>
</div>
</section>
<h2>Where Jev fails and why</h2>
<ul>
<li><b>Google Flights (real-world browser):</b> typed a natural-language destination string into the field instead of a matched airport, the site returned "No matching locations found," and Jev stopped there.</li>
<li><b>Spotify (real-world browser):</b> reached the public account sign-up wall and stopped; the browser lane has no logged-in session to get past it.</li>
<li><b>OpenTable (real-world browser):</b> blocked by the site's EdgeSuite CDN before the app UI ever loaded.</li>
<li><b>Notion (real-world browser):</b> no verified edit - the run did not produce a confirmable change on the page.</li>
<li><b>File uploads (simple tests):</b> stops at the file-input step every time; the native macOS chooser sits outside Jev's structured control view, and only Hybrid's hand-off to Luna gets past it.</li>
<li><b>Pages (computer use):</b> reported SUBTASK_COMPLETE while the document body stayed empty - a false completion, not a crash.</li>
<li><b>Keynote and Numbers (computer use):</b> ended with blank slide placeholders and an empty spreadsheet table - the file was created but the requested content was never entered or verified.</li>
<li><b>Spotify (computer use):</b> played the wrong Radiohead track.</li>
<li><b>TextEdit (computer use) is the exception that proves the pattern:</b> it passed because the native text area is a clean accessibility target Jev can act on directly, unlike the richer editors above.</li>
</ul>
<h2>Where Luna fails and why</h2>
<ul>
<li><b>Google Drive (real-world browser):</b> search returned the wrong file and the run hung past 20 minutes without finding the private target - the slowest, costliest miss in the set.</li>
<li><b>Figma (real-world browser):</b> the original run stopped at Google's device-passkey screen, but the authenticated rerun created, edited, renamed, and verified the design successfully for both Luna and Hybrid.</li>
<li><b>OpenTable (real-world browser, 10-task lane):</b> reached the results page but not the named reservation-details stop point, so it is scored a miss despite getting close.</li>
<li><b>Why Hybrid's cost moves in opposite directions by lane:</b> Hybrid tries Jev before calling in Luna to recover a verified miss, so it lands cheaper than Luna on Simple tests ($0.0069 vs $0.0107 per success) where Jev often succeeds outright - but more expensive than Luna on Computer use ($0.0126 vs $0.0091 per success), because the failed attempt is paid for and then added on top of Luna's own cost.</li>
</ul>
<h2>Takeaways</h2>
<ul>
<li><span class="good">Use Jev</span> for short, exposed controls, navigation, search-and-type, simple selects, and high-volume low-risk decisions.</li>
<li><span class="bad">Expect the cliff</span> around drag/drop, uploads, multi-field forms, rich text, spreadsheets, iframes/shadow DOM, and native rich editors where an action can look successful without changing the real content.</li>
<li><span class="good">Use Luna</span> when visual context, recovery, text editing, or long-horizon state matters more than raw latency.</li>
<li><span class="good">Use the hybrid</span> with an explicit postcondition verifier. It is not magic: on native tasks where Jev fails, trying Jev first adds time and cost before Luna recovers. Its benefit is cheap wins plus recovery, not “free” parity.</li>
</ul>
<h2>Limitations</h2>
<ul>
<li><b>Cost estimates, not invoices:</b> every dollar figure is a token-priced comparison estimate, not a metered bill.</li>
<li><b>Small sample sizes:</b> 42 simple, 10 real-world, and 5 computer-use tasks - a few flipped outcomes would move the percentages.</li>
<li><b>Jev Ultrafast's denominator is 51, not 57:</b> it skipped the computer-use lane, so its Overall rate isn't directly comparable to Luna and Hybrid's 57.</li>
<li><b>Curated, not random:</b> the real-world and desktop task sets were chosen to cover known failure modes, not sampled at random.</li>
<li><b>Harness scope:</b> Luna and Hybrid drive a connected-Chrome bridge with no page JavaScript execution; a few Jev-side JS probes are reported separately.</li>
</ul>
<h2>Reproducibility and provenance</h2>
<ul>
<li>Controlled fixture data: <code>summary.json</code>, <code>luna-cua-fresh-start.json</code>, and <code>hybrid-fresh-start.json</code>.</li>
<li>Authenticated app evidence: <code>authenticated-results.json</code> and <code>videos/luna-native-chrome/</code>.</li>
<li>Extended task definition: <code>../jev-real-world/v2/extended_tasks.json</code>.</li>
<li>Native Jev runner: <code>../scripts/run_arc_cua_native.py</code>; native video overlays: <code>../scripts/make_native_overlays.sh</code>.</li>
</ul>
<p class="stamp">Generated from the retained JSON traces, postcondition checks, and inspected video frames. Raw clips are not replaced by the report.</p>
<script>
const reportParams = new URLSearchParams(location.search);
const themeToggle = document.querySelector(".theme-toggle");
const prefersDark = window.matchMedia("(prefers-color-scheme: dark)");
const isDark = () => {
const explicit = document.documentElement.getAttribute("data-theme");
return explicit ? explicit === "dark" : prefersDark.matches;
};
const syncThemeToggle = () => {
const dark = isDark();
themeToggle?.setAttribute("aria-pressed", String(dark));
themeToggle?.setAttribute("aria-label", dark ? "Switch to light mode" : "Switch to dark mode");
};
themeToggle?.addEventListener("click", () => {
const next = isDark() ? "light" : "dark";
document.documentElement.setAttribute("data-theme", next);
try { localStorage.setItem("theme", next); } catch (e) {}
syncThemeToggle();
});
prefersDark.addEventListener?.("change", () => { if (!document.documentElement.getAttribute("data-theme")) syncThemeToggle(); });
syncThemeToggle();
const reportSection = reportParams.get("section");
if (reportSection) requestAnimationFrame(() => document.getElementById(reportSection)?.scrollIntoView({block:"start"}));
const laneKeys = ["overall", "simple", "real-world", "computer-use"];
const leaderboardTabs = [...document.querySelectorAll("#leaderboard .control-strip .segment")];
const leaderboardRows = [...document.querySelectorAll(".leaderboard-list .leaderboard-row")];
const setLeaderboardLane = lane => {
leaderboardTabs.forEach((tab, index) => {
const active = lane === laneKeys[index];
tab.dataset.leaderboardLane = laneKeys[index];
tab.setAttribute("role", "tab");
tab.setAttribute("tabindex", "0");
tab.setAttribute("aria-selected", String(active));
tab.classList.toggle("active", active);
});
leaderboardRows.forEach(row => { row.hidden = row.dataset.lane !== lane; });
};
const controlNote = document.querySelector("#leaderboard .control-note");
if (controlNote) controlNote.textContent = "Overall = all measured tasks. Rank = success first, then cost.";
const runTabs = [...document.querySelectorAll(".run-segmented .run-segment")];
const runApproachTabs = [...document.querySelectorAll(".run-approach-segmented .run-approach-segment")];
const runRows = [...document.querySelectorAll(".run-table .run-row")];
const runEmpty = document.querySelector(".run-table .run-empty");
const runApproachKeys = ["all", "luna", "hybrid", "jev"];
let selectedRunLane = "overall";
let selectedRunApproach = "all";
const setRunFilters = (lane, approach) => {
selectedRunLane = lane;
selectedRunApproach = approach;
runTabs.forEach((tab, index) => {
const active = lane === laneKeys[index];
tab.classList.toggle("active", active);
tab.setAttribute("aria-selected", String(active));
});
runApproachTabs.forEach((tab, index) => {
const active = approach === runApproachKeys[index];
tab.classList.toggle("active", active);
tab.setAttribute("aria-selected", String(active));
});
const visibleRows = runRows.filter(row =>
(lane === "overall" || row.dataset.runLane === lane) &&
(approach === "all" || row.dataset.runApproach === approach)
);
runRows.forEach(row => {
row.hidden = !(lane === "overall" || row.dataset.runLane === lane) ||
!(approach === "all" || row.dataset.runApproach === approach);
});
if (runEmpty) runEmpty.hidden = visibleRows.length > 0;
};
runApproachTabs.forEach((tab, index) => tab.addEventListener("click", () => setRunFilters(selectedRunLane, runApproachKeys[index])));
const frontierTabs = [...document.querySelectorAll(".frontier-tabs .frontier-tab")];
const frontierPanels = [...document.querySelectorAll(".frontier-panels .frontier-panel")];
const frontierLaneKeys = ["overall", "simple", "real-world", "computer-use"];
const setFrontierLane = lane => {
frontierTabs.forEach((tab, index) => {
const active = lane === frontierLaneKeys[index];
tab.classList.toggle("active", active);
tab.setAttribute("aria-selected", String(active));
tab.setAttribute("role", "tab");
tab.setAttribute("tabindex", active ? "0" : "-1");
});
frontierPanels.forEach(panel => {
panel.classList.toggle("active", panel.dataset.frontierLane === lane);
});
};
const setLane = lane => {
setLeaderboardLane(lane);
setFrontierLane(lane);
setRunFilters(lane, selectedRunApproach);
};
leaderboardTabs.forEach((tab, index) => {
tab.addEventListener("click", () => setLane(laneKeys[index]));
tab.addEventListener("keydown", event => {
if (event.key === "Enter" || event.key === " ") {
event.preventDefault();
setLane(laneKeys[index]);
}
});
});
runTabs.forEach((tab, index) => {
tab.addEventListener("click", () => setLane(laneKeys[index]));
tab.addEventListener("keydown", event => {
if (event.key === "Enter" || event.key === " ") {
event.preventDefault();
setLane(laneKeys[index]);
}
});
});
frontierTabs.forEach((tab, index) => {
tab.addEventListener("click", () => setLane(frontierLaneKeys[index]));
tab.addEventListener("keydown", event => {
if (event.key === "Enter" || event.key === " ") {
event.preventDefault();
setLane(frontierLaneKeys[index]);
}
});
});
setLane("overall");
const perceptionTabs = [...document.querySelectorAll(".perception-tab")];
const perceptionPanels = [...document.querySelectorAll(".perception-panel")];
perceptionTabs.forEach(tab => tab.addEventListener("click", () => {
const target = tab.getAttribute("aria-controls");
perceptionTabs.forEach(item => {
const active = item === tab;
item.classList.toggle("active", active);
item.setAttribute("aria-selected", String(active));
});
perceptionPanels.forEach(panel => {
const active = panel.id === target;
panel.classList.toggle("active", active);
panel.hidden = !active;
});
}));
document.querySelectorAll(".frontier-hover-state").forEach(state => {
const mark = [...document.querySelectorAll(".frontier-mark")].find(item => item.dataset.frontierKey === state.dataset.frontierState);
const color = mark?.querySelector(".frontier-point")?.getAttribute("fill");
if (color) state.style.setProperty("--frontier-hover-color", color);
});
const frontierMarks = [...document.querySelectorAll(".frontier-mark")];
const setFrontierPoint = mark => {
const chart = mark.closest(".frontier-svg");
const key = mark.dataset.frontierKey;
chart.classList.add("chart-hovered");
chart.querySelectorAll(".frontier-mark").forEach(item => item.classList.toggle("is-active", item === mark));
chart.querySelectorAll(".frontier-hover-state").forEach(item => item.classList.toggle("is-active", item.dataset.frontierState === key));
};
const clearFrontierPoint = mark => {
const chart = mark.closest(".frontier-svg");
chart.classList.remove("chart-hovered");
chart.querySelectorAll(".frontier-mark,.frontier-hover-state").forEach(item => item.classList.remove("is-active"));
};
frontierMarks.forEach(mark => {
mark.addEventListener("mouseenter", () => setFrontierPoint(mark));
mark.addEventListener("mouseleave", () => clearFrontierPoint(mark));
mark.addEventListener("focus", () => setFrontierPoint(mark));
mark.addEventListener("blur", () => clearFrontierPoint(mark));
});
</script>
</main></body></html>