evals-lab 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/LICENSE.md +57 -0
  2. package/README.md +98 -0
  3. package/bin/evals-lab.js +196 -0
  4. package/lab/demo/CREDITS.md +92 -0
  5. package/lab/demo/datasets/demo-1.json +1839 -0
  6. package/lab/demo/datasets/demo-2.json +1683 -0
  7. package/lab/demo/manifest.json +12 -0
  8. package/lab/demo/pipelines/demo-1.json +104 -0
  9. package/lab/demo/pipelines/demo-2.json +104 -0
  10. package/lab/demo/sources/Demo 1/basketball-hoop.jpg +0 -0
  11. package/lab/demo/sources/Demo 1/blue-boardwalk.jpg +0 -0
  12. package/lab/demo/sources/Demo 1/busy-beach.jpg +0 -0
  13. package/lab/demo/sources/Demo 1/butcher-sign.jpg +0 -0
  14. package/lab/demo/sources/Demo 1/cactus-flower.jpg +0 -0
  15. package/lab/demo/sources/Demo 1/corner-shop.jpg +0 -0
  16. package/lab/demo/sources/Demo 1/crosswalk-cyclist-panorama.jpg +0 -0
  17. package/lab/demo/sources/Demo 1/cyanotype-room.jpg +0 -0
  18. package/lab/demo/sources/Demo 1/dead-end-sign.jpg +0 -0
  19. package/lab/demo/sources/Demo 1/dog-in-snow.jpg +0 -0
  20. package/lab/demo/sources/Demo 1/empty-bedroom.jpg +0 -0
  21. package/lab/demo/sources/Demo 1/farmers-market-stall.jpg +0 -0
  22. package/lab/demo/sources/Demo 1/four-jets.jpg +0 -0
  23. package/lab/demo/sources/Demo 1/german-shepherd.jpg +0 -0
  24. package/lab/demo/sources/Demo 1/harbour-bridge-dusk.jpg +0 -0
  25. package/lab/demo/sources/Demo 1/harrow-on-the-hill-sign.jpg +0 -0
  26. package/lab/demo/sources/Demo 1/hong-kong-street.jpg +0 -0
  27. package/lab/demo/sources/Demo 1/house-salisbury-street.jpg +0 -0
  28. package/lab/demo/sources/Demo 1/infrared-orchard.jpg +0 -0
  29. package/lab/demo/sources/Demo 1/keyboard-desk.jpg +0 -0
  30. package/lab/demo/sources/Demo 1/lighthouse-dunes.jpg +0 -0
  31. package/lab/demo/sources/Demo 1/mountain-lake.jpg +0 -0
  32. package/lab/demo/sources/Demo 1/museum-skeleton.jpg +0 -0
  33. package/lab/demo/sources/Demo 1/music-room.jpg +0 -0
  34. package/lab/demo/sources/Demo 1/old-red-car.jpg +0 -0
  35. package/lab/demo/sources/Demo 1/parked-car-plate.jpg +0 -0
  36. package/lab/demo/sources/Demo 1/phone-and-wallet.png +0 -0
  37. package/lab/demo/sources/Demo 1/phone-box.jpg +0 -0
  38. package/lab/demo/sources/Demo 1/pink-flamingo.jpg +0 -0
  39. package/lab/demo/sources/Demo 1/postcards.jpg +0 -0
  40. package/lab/demo/sources/Demo 1/red-roof-church.jpg +0 -0
  41. package/lab/demo/sources/Demo 1/roadside-mailboxes.jpg +0 -0
  42. package/lab/demo/sources/Demo 1/rodeo.jpg +0 -0
  43. package/lab/demo/sources/Demo 1/running-tap.tif +0 -0
  44. package/lab/demo/sources/Demo 1/snail-on-stem.jpg +0 -0
  45. package/lab/demo/sources/Demo 1/two-horses-field.jpg +0 -0
  46. package/lab/demo/sources/Demo 1/university-sign.jpg +0 -0
  47. package/lab/demo/sources/Demo 1/vegetable-crates.jpg +0 -0
  48. package/lab/demo/sources/Demo 1/watermarked-car.jpg +0 -0
  49. package/lab/demo/sources/Demo 1/watermarked-pills.jpg +0 -0
  50. package/lab/demo/sources/Demo 1/whiteboard-delegate.jpg +0 -0
  51. package/lab/demo/sources/Demo 1/whiteboard-germ-layers.jpg +0 -0
  52. package/lab/demo/sources/Demo 2/aerial-city.jpg +0 -0
  53. package/lab/demo/sources/Demo 2/alligator-pen.jpg +0 -0
  54. package/lab/demo/sources/Demo 2/arm-tattoo.jpg +0 -0
  55. package/lab/demo/sources/Demo 2/bed-and-plant.jpg +0 -0
  56. package/lab/demo/sources/Demo 2/bright-bedroom.jpg +0 -0
  57. package/lab/demo/sources/Demo 2/car-headlight.jpg +0 -0
  58. package/lab/demo/sources/Demo 2/child-in-surf.jpg +0 -0
  59. package/lab/demo/sources/Demo 2/city-highway.jpg +0 -0
  60. package/lab/demo/sources/Demo 2/corner-bakery.jpg +0 -0
  61. package/lab/demo/sources/Demo 2/cyclist-yellow-jacket.jpg +0 -0
  62. package/lab/demo/sources/Demo 2/excavator-street-signs.jpg +0 -0
  63. package/lab/demo/sources/Demo 2/globe-closeup.jpg +0 -0
  64. package/lab/demo/sources/Demo 2/harbour-village.jpg +0 -0
  65. package/lab/demo/sources/Demo 2/high-street-walkers.jpg +0 -0
  66. package/lab/demo/sources/Demo 2/hillside-rooftops.jpg +0 -0
  67. package/lab/demo/sources/Demo 2/house-at-night.jpg +0 -0
  68. package/lab/demo/sources/Demo 2/ivy-leaves.jpg +0 -0
  69. package/lab/demo/sources/Demo 2/man-with-alligator.jpg +0 -0
  70. package/lab/demo/sources/Demo 2/orange-mailbox-hedge.jpg +0 -0
  71. package/lab/demo/sources/Demo 2/pedal-boats.jpg +0 -0
  72. package/lab/demo/sources/Demo 2/pink-trees-vignette.jpg +0 -0
  73. package/lab/demo/sources/Demo 2/please-leave-quietly-sign.jpg +0 -0
  74. package/lab/demo/sources/Demo 2/railroad-crossing-sign.jpg +0 -0
  75. package/lab/demo/sources/Demo 2/roadworks-sign.jpg +0 -0
  76. package/lab/demo/sources/Demo 2/roundabout-sign.jpg +0 -0
  77. package/lab/demo/sources/Demo 2/sea-cave.jpg +0 -0
  78. package/lab/demo/sources/Demo 2/shadow-on-sand.jpg +0 -0
  79. package/lab/demo/sources/Demo 2/signpost-a404.jpg +0 -0
  80. package/lab/demo/sources/Demo 2/street-fruit-cart.jpg +0 -0
  81. package/lab/demo/sources/Demo 2/street-sign-parnassusweg.jpg +0 -0
  82. package/lab/demo/sources/Demo 2/two-horses-close.jpg +0 -0
  83. package/lab/demo/sources/Demo 2/victorian-house.jpg +0 -0
  84. package/lab/demo/sources/Demo 2/vintage-dashboard.jpg +0 -0
  85. package/lab/demo/sources/Demo 2/volcano-at-dusk.jpg +0 -0
  86. package/lab/demo/sources/Demo 2/wall-camera.jpg +0 -0
  87. package/lab/demo/sources/Demo 2/watch-for-rocks-sign.jpg +0 -0
  88. package/lab/demo/sources/Demo 2/waterfall.jpg +0 -0
  89. package/lab/demo/sources/Demo 2/white-domes.jpg +0 -0
  90. package/lab/demo/sources/Demo 2/whiteboard-meeting-notes.jpg +0 -0
  91. package/lab/demo/sources/Demo 2/whiteboard-messages.jpg +0 -0
  92. package/lab/demo/sources/Demo 2/wooden-house-fence.jpg +0 -0
  93. package/lab/evals-core.mjs +4526 -0
  94. package/lab/flows/wdl.mjs +373 -0
  95. package/lab/js-yaml.mjs +3851 -0
  96. package/lab/kinds/list.mjs +411 -0
  97. package/lab/metrics/builtin.mjs +353 -0
  98. package/lab/presets.json +62 -0
  99. package/lab/run-evals.js +1262 -0
  100. package/lab/server.py +5044 -0
  101. package/lab/web/dist/assets/dist-DI3ewZYj.js +1 -0
  102. package/lab/web/dist/assets/gallery-DipkRvqJ.js +3 -0
  103. package/lab/web/dist/assets/gallery-o7c4lfpn.css +1 -0
  104. package/lab/web/dist/assets/main-CpVssvrb.js +18 -0
  105. package/lab/web/dist/assets/main-DjQQums6.css +1 -0
  106. package/lab/web/dist/assets/tokens-B9intIuT.js +51 -0
  107. package/lab/web/dist/assets/tokens-s6I-RMVq.css +1 -0
  108. package/lab/web/dist/gallery.html +18 -0
  109. package/lab/web/dist/index.html +23 -0
  110. package/package.json +20 -0
@@ -0,0 +1 @@
1
+ button,input,select,textarea{font:inherit;color:var(--ink);background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-ctl)}input:not([type=checkbox]),select{height:var(--ctl);padding:0 var(--s2);min-width:0;max-width:100%}::placeholder{color:var(--dim);opacity:1}textarea{width:100%;min-height:calc(2lh + 2 * var(--s2) + 2px);field-sizing:content;max-height:24lh;padding:var(--s2);resize:vertical;line-height:1.45}input[type=checkbox]{width:18px;height:18px;accent-color:var(--amber);margin:0}input[readonly],textarea[readonly],.readonly{background:0 0;border-style:dashed}button{align-items:center;gap:var(--s1);-webkit-tap-highlight-color:transparent;min-height:var(--ctl);padding:0 var(--s3);font-size:var(--t-label);background:var(--amber);color:var(--on-amber);cursor:pointer;border-color:#0000;font-weight:600;display:inline-flex}button:disabled{opacity:.5;cursor:default}.ghost{color:var(--amber);border-color:var(--line);background:0 0;font-weight:500}.ghost.destructive{color:var(--rust)}.icon-btn{width:var(--ctl);min-height:var(--ctl);color:var(--faint);background:0 0;border-color:#0000;justify-content:center;padding:0}.icon-btn:hover,.icon-btn:focus-visible{color:var(--ink)}.group{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pane);padding:var(--s4)}.group.sub{margin-top:var(--s3);background:0 0;border:0;padding:0}.group-summary{align-items:center;gap:var(--s2);min-height:var(--ctl);cursor:pointer;list-style:none;display:flex}.group-summary::-webkit-details-marker{display:none}.group-caret{color:var(--faint);flex:none;transition:transform .15s}.group[open]>.group-summary .group-caret{transform:rotate(90deg)}.group-title{font-size:var(--t-heading);overflow-wrap:anywhere;min-width:0;margin:0;font-weight:600}.group.sub .group-title{font-size:var(--t-label)}.group.sub[data-depth="2"]>.group-summary>.group-title{color:var(--dim)}.group.sub[data-depth="2"]{margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--line)}.group.sub[data-depth="3"]{margin-top:var(--s3)}@media (width>=601px){.group .group{margin-inline-start:calc(16px + var(--s2))}}.group-body>.group.sub[data-depth="2"]:first-child{margin-top:var(--s2);border-top:0;padding-top:0}.group-note{font-size:var(--t-note);color:var(--dim);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.group[open]>.group-summary .group-note{display:none}.group-rename{flex:1;min-width:0}.group-body{margin-top:var(--s3)}.group-about{margin:0 0 var(--s2);max-width:72ch;color:var(--dim);font-size:var(--t-label);line-height:1.45}.group-about:last-child{margin-bottom:0}.about-lead{color:var(--ink);font-weight:600}.group.sub>.group-body{margin-top:var(--s2)}.group-summary .menu{margin-left:auto}.menu{flex:none;display:inline-flex;position:relative}.menu-pop{right:0;top:calc(100% + var(--s1));z-index:20;min-width:160px;max-width:calc(100vw - 2 * var(--s4));padding:var(--s1);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pane);box-shadow:0 8px 24px var(--scrim);flex-direction:column;gap:2px;display:flex;position:absolute}.menu-pop.start{left:0;right:auto}.menu-pop.up{top:auto;bottom:calc(100% + var(--s1))}.menu-pop.fixed{position:fixed;bottom:auto;right:auto}.menu-item{justify-content:flex-start;gap:var(--s2);padding:0 var(--s2);color:var(--amber);white-space:nowrap;background:0 0;border-color:#0000;font-weight:500}.menu-item:hover,.menu-item:focus-visible{background:var(--surface2)}.menu-item.destructive{color:var(--rust)}.repeater-items{gap:var(--s2);display:grid}.repeater-items>.group.sub{margin-top:0}.repeater-items>.group.sub:not(:last-child){padding-bottom:var(--s2);border-bottom:1px solid var(--line)}.repeater-empty{padding:var(--s4);border:1px dashed var(--line);border-radius:var(--r-pane);color:var(--dim);font-size:var(--t-label);text-align:center}.add-btn{margin-top:var(--s2);justify-self:start}.props>.add-btn{grid-column:1/-1}.props,.prop{--prop-cols:minmax(88px, 35%) minmax(0, 1fr) auto var(--ctl)}.props{grid-template-columns:var(--prop-cols);row-gap:var(--s1);column-gap:var(--s2);display:grid}.props>.prop{grid-column:1/-1;grid-template-columns:subgrid}.prop{grid-template-columns:var(--prop-cols);align-items:center;gap:var(--s2);min-height:var(--ctl);padding-bottom:var(--s1);border-bottom:1px solid var(--line);grid-template-areas:"name value flag menu";display:grid}.prop-name{grid-area:name}.prop-value{grid-area:value}.prop-flag{grid-area:flag}.prop-menu{grid-area:menu}.prop:last-of-type{border-bottom:0}.prop[data-hint]{grid-template-areas:"name value flag menu"".hint hint hint";row-gap:2px}.prop-hint{font-size:var(--t-note);color:var(--dim);grid-area:hint;max-width:72ch;line-height:1.4}.prop-name{font-size:var(--t-label);color:var(--dim);overflow-wrap:anywhere;min-width:0}.prop-name code{font:var(--t-note) var(--mono);color:var(--dim)}.prop-value{align-items:center;gap:var(--s2);min-width:0;display:flex}.props{--w-num:8ch;--w-token:28ch}.prop[data-size=num] .prop-value>input{width:var(--w-num)}.prop[data-size=token] .prop-value>input,.prop[data-size=token] .prop-value>.secret{width:var(--w-token)}.prop[data-size=wide] .prop-value>input{width:100%}.prop-value>select{width:auto;max-width:100%}.prop-value>.secret{max-width:100%}.prop-marker{font-size:var(--t-note);color:var(--dim);flex:none}.secret{align-items:center;gap:var(--s1);min-width:0;display:flex}.secret input{flex:1;min-width:0}.prop-code{font:var(--t-note) / 1.5 var(--mono);min-height:var(--ctl);max-width:100%;padding:var(--s1) var(--s2);border:1px dashed var(--line);border-radius:var(--r-ctl);white-space:pre-wrap;overflow-wrap:anywhere;align-items:center;display:flex}.prop-check{align-items:center;gap:var(--s2);min-height:var(--ctl);font-size:var(--t-label);display:inline-flex}.prop-flag label{min-width:var(--ctl);min-height:var(--ctl);justify-content:center;align-items:center;display:inline-flex}.prop-menu{min-width:var(--ctl);justify-content:flex-end;display:flex}@media (width<=600px){.group{padding:var(--s3)}.prop[data-control=select],.prop[data-control=code],.prop[data-control=textarea],.prop[data-control=text]:not([data-size=num]),.prop[data-control=secret]{row-gap:var(--s1);grid-template-areas:"name name flag menu""value value value value"}.prop[data-hint]{grid-template-areas:"name name flag menu""value value value value""hint hint hint hint"}.prop[data-control=text]:not([data-size=num]) .prop-value>input,.prop[data-control=secret] .prop-value>.secret{width:100%}table.dt-cards,table.dt-cards :is(tbody,tr,td){display:block}table.dt-cards thead{display:none}table.dt-cards tbody tr{margin-bottom:var(--s2);padding:var(--s2) var(--s3);border:1px solid var(--line);border-radius:var(--r-pane);position:relative}table.dt-cards tbody tr:last-of-type{margin-bottom:0}table.dt-cards td{font-size:var(--t-label);overflow-wrap:anywhere;border:0;padding:0}table.dt-cards td.dt-title{align-items:center;column-gap:var(--s2);min-height:var(--ctl);padding-right:calc(var(--ctl) + var(--s1));font-size:var(--t-body);flex-wrap:wrap;font-weight:600;display:flex}table.dt-cards td.dt-menu{top:var(--s1);right:var(--s1);position:absolute}table.dt-cards td:not(.dt-title,.dt-menu)[data-label]:before{content:attr(data-label) " ";color:var(--dim)}}@media (pointer:coarse),(width<=600px){input[type=checkbox]{width:22px;height:22px}}.modal-backdrop{z-index:30;padding:var(--s4);background:var(--scrim);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{width:min(100%,420px);max-height:calc(100vh - 2 * var(--s4));background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pane);box-shadow:0 16px 48px var(--scrim);flex-direction:column;display:flex}.modal.wide{width:min(100%,960px);height:min(88vh,760px)}.modal-head{align-items:center;gap:var(--s2);padding:var(--s3) var(--s4);border-bottom:1px solid var(--line);display:flex}.modal-head h2{min-width:0;font-size:var(--t-heading);text-overflow:ellipsis;white-space:nowrap;flex:auto;margin:0;font-weight:600;overflow:hidden}.modal-head .menu{flex:none}.modal-body{padding:var(--s4);min-height:0;overflow-y:auto}.modal-foot{padding:var(--s3) var(--s4);border-top:1px solid var(--line);flex:none}.modal.edit{width:min(100%,560px)}.modal.edit.wide{width:min(100%,880px);height:auto}.modal.edit .modal-body{flex:auto}.edit-status{margin:0 0 var(--s3);font-size:var(--t-label);color:var(--dim);overflow-wrap:anywhere}.edit-status.bad{color:var(--rust)}.edit-section+.edit-section{margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--line)}.edit-section-title{margin:0 0 var(--s2);font-size:var(--t-label);color:var(--dim);font-weight:600}.edit-choices{gap:var(--s2);flex-wrap:wrap;display:flex}.edit-choices button[aria-pressed=true]{background:var(--amber);color:var(--on-amber);border-color:#0000}.edit-actions{align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.edit-action{align-items:center;gap:var(--s2);display:inline-flex}.edit-outcome-live:empty{display:none}.edit-outcome{min-height:var(--ctl);color:var(--amber);text-underline-offset:2px;background:0 0;border:0;padding:0;font-weight:500;text-decoration:underline}.edit-outcome.bad{color:var(--rust)}.edit-done{margin-left:auto}.edit-actions .ghost.destructive{color:var(--rust)}@media (width<=600px){.modal-backdrop:has(>.modal.edit){padding:0}.modal.edit,.modal.edit.wide{border:0;border-radius:0;width:100%;height:100dvh;max-height:none}.edit-actions>*{flex:auto;justify-content:center}}.undo-toast{left:50%;bottom:var(--s4);z-index:40;align-items:center;gap:var(--s2);max-width:calc(100vw - 2 * var(--s3));padding:var(--s2) var(--s3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pane);box-shadow:0 8px 24px var(--scrim);font-size:var(--t-label);display:flex;position:fixed;transform:translate(-50%)}.undo-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.undo-btn{flex:none}.dt-sort,.dt-head{align-items:center;gap:var(--s1);min-height:0;font:inherit;color:inherit;text-align:inherit;cursor:pointer;background:0 0;border:0;padding:0;display:inline-flex}.dt-glyph{color:var(--faint);opacity:0;flex:none;transition:opacity .15s}.dt-sort:hover .dt-glyph,.dt-sort:focus-visible .dt-glyph,.dt-glyph.on{opacity:1}.dt-glyph.on{color:var(--amber)}.dt-head{min-height:0;font:inherit;color:var(--amber);background:0 0;border:0;padding:0}.dt-pager{justify-content:flex-end;align-items:center;gap:var(--s2);margin-top:var(--s2);display:flex}@media (pointer:coarse){.dt-glyph{opacity:1}.dt-sort,.dt-head{min-height:var(--tap)}}.fbar{margin-bottom:var(--s3);position:relative}.fbar-row{align-items:center;gap:var(--s2);display:flex}.fbar-search{min-width:0;color:var(--faint);flex:auto;display:flex;position:relative}.fbar-search svg{left:var(--s3);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.fbar-search:focus-within{color:var(--amber)}.fbar-search input{width:100%;padding-left:calc(var(--s3) + 15px + var(--s2));flex:auto}.fbar-search input:focus{border-color:var(--amber);outline:none}.fbar-row>.note{margin:0}.fbar-btn{width:var(--ctl);background:var(--surface2);border-color:var(--line);color:var(--dim);flex:none;justify-content:center;margin-left:auto;padding:0;position:relative}.fbar-btn:hover,.fbar-btn[aria-expanded=true]{color:var(--ink);border-color:var(--faint)}.fbar-btn.on{color:var(--amber);border-color:var(--amber);background:color-mix(in srgb, var(--amber) 10%, var(--surface))}.fbar-badge{background:var(--amber);min-width:17px;height:17px;color:var(--on-amber);font-size:var(--t-caption);font-variant-numeric:tabular-nums;box-shadow:0 0 0 2px var(--surface);border-radius:999px;place-items:center;padding:0 4px;font-weight:700;line-height:1;display:grid;position:absolute;top:-6px;right:-6px}.fbar-chips{align-items:center;gap:var(--s1) var(--s2);margin-top:var(--s2);flex-wrap:wrap;display:flex}.fbar-chip{min-height:26px;color:var(--ink);font-size:var(--t-note);background:0 0;border:0;padding:0;font-weight:600}.fbar-pip{min-height:26px;padding:0 var(--s2) 0 var(--s3);background:color-mix(in srgb, var(--amber) 14%, var(--surface));border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;display:inline-flex}.fbar-chip svg{color:var(--dim)}.fbar-chip:hover svg,.fbar-chip:focus-visible svg{color:var(--rust)}.fbar-chip:focus-visible{outline:none}.fbar-chip:focus-visible .fbar-pip{outline:2px solid var(--amber);outline-offset:2px}.fbar-chip-k{color:var(--dim);font-weight:500}.fbar-chip.scope{align-items:center;display:inline-flex}.fbar-chip.scope .fbar-pip{padding-right:var(--s3);border-color:var(--line);background:0 0}button.fbar-chip.scope:hover .fbar-pip{border-color:var(--faint)}.fbar-clear{min-height:26px;padding:0 var(--s1);color:var(--amber);font-size:var(--t-note);background:0 0;border:0;font-weight:500}.fbar-count{color:var(--dim);font-size:var(--t-note);font-variant-numeric:tabular-nums;margin-left:auto}.fbar-scrim{display:none}.fbar-panel{top:calc(var(--ctl) + var(--s2));z-index:20;gap:var(--s4);width:min(340px,100%);padding:var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pane);box-shadow:0 12px 32px var(--scrim);transform-origin:100% 0;animation:.14s ease-out fbar-in;display:grid;position:absolute;right:0}@keyframes fbar-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}}.fbar-panel-head{justify-content:space-between;align-items:center;min-height:26px;display:flex}.fbar-panel-title{font-size:var(--t-heading);font-weight:600}.fbar-set{border:0;min-width:0;margin:0;padding:0}.fbar-set legend{margin-bottom:var(--s2);font-size:var(--t-note);color:var(--dim);padding:0;font-weight:600}.fbar-pills{flex-wrap:wrap;gap:6px;display:flex}.fbar-pill{cursor:pointer;display:inline-flex;position:relative}.fbar-pill input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.fbar-pill span{min-height:30px;padding:0 var(--s3);border:1px solid var(--line);font-size:var(--t-label);color:var(--ink);border-radius:999px;align-items:center;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.fbar-pill:hover span{border-color:var(--faint)}.fbar-pill input:checked+span{background:var(--amber);border-color:var(--amber);color:var(--on-amber);font-weight:600}.fbar-pill input:focus-visible+span{outline:2px solid var(--amber);outline-offset:2px}.fbar-done{display:none}@media (pointer:coarse),(width<=600px){.fbar-chip,.fbar-clear{min-height:var(--tap)}.fbar-chips{row-gap:0;margin-top:0}.fbar-pip{min-height:32px}.fbar-pill span{min-height:var(--tap);padding:0 var(--s4)}}@media (width<=600px){.fbar-scrim{z-index:30;background:var(--scrim);animation:.16s ease-out fbar-fade;display:block;position:fixed;inset:0}.fbar-panel{z-index:31;width:auto;max-height:85vh;padding:var(--s3) var(--s4) calc(var(--s4) + env(safe-area-inset-bottom));border-width:1px 0 0;border-radius:16px 16px 0 0;animation:.2s cubic-bezier(.2,.8,.2,1) fbar-up;position:fixed;inset:auto 0 0;overflow:auto}.fbar-panel:before{content:"";width:36px;height:4px;margin-bottom:calc(var(--s2) - var(--s4));background:var(--line);border-radius:999px;justify-self:center}.fbar-done{justify-content:center;width:100%;display:flex}}@keyframes fbar-up{0%{transform:translateY(100%)}}@keyframes fbar-fade{0%{opacity:0}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:var(--lightningcss-light,#f4f3ef)var(--lightningcss-dark,#17181c);--surface:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1e2025);--surface2:var(--lightningcss-light,#eceae4)var(--lightningcss-dark,#262931);--line:var(--lightningcss-light,#d6d3cb)var(--lightningcss-dark,#32363f);--ink:var(--lightningcss-light,#1d1f24)var(--lightningcss-dark,#e6e8ec);--dim:var(--lightningcss-light,#5b606b)var(--lightningcss-dark,#9aa0ab);--faint:var(--lightningcss-light,#80858f)var(--lightningcss-dark,#6b7079);--amber:var(--lightningcss-light,#a8651c)var(--lightningcss-dark,#cf9349);--on-amber:var(--lightningcss-light,#fff)var(--lightningcss-dark,#20160a);--sage:var(--lightningcss-light,#3f7a45)var(--lightningcss-dark,#7fa87f);--rust:var(--lightningcss-light,#a4472b)var(--lightningcss-dark,#b5654a);--dot:var(--lightningcss-light,#dcd9d1)var(--lightningcss-dark,#2a2d34);--scrim:var(--lightningcss-light,#1e202473)var(--lightningcss-dark,#17181cbf);--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--t-caption:11px;--t-note:12px;--t-label:13px;--t-body:14px;--t-heading:15px;--t-title:16px;--lh:1.5;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--ctl:32px;--tap:44px;--r-ctl:7px;--r-pane:10px}@media (pointer:coarse),(width<=600px){:root{--ctl:var(--tap)}}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--ground);color:var(--ink);font:var(--t-body) / var(--lh) var(--sans);margin:0}:focus-visible{outline:2px solid var(--amber);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
@@ -0,0 +1,18 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <meta name="color-scheme" content="dark light">
7
+ <title>Components</title>
8
+ <script type="module" crossorigin src="/assets/gallery-DipkRvqJ.js"></script>
9
+ <link rel="modulepreload" crossorigin href="/assets/tokens-B9intIuT.js">
10
+ <link rel="stylesheet" crossorigin href="/assets/tokens-s6I-RMVq.css">
11
+ <link rel="stylesheet" crossorigin href="/assets/gallery-o7c4lfpn.css">
12
+ </head>
13
+ <body>
14
+ <!-- The fixtures gallery: every component in every state, for the eye and
15
+ for Playwright. Not the lab's page, which is index.html. -->
16
+ <div id="root"></div>
17
+ </body>
18
+ </html>
@@ -0,0 +1,23 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <meta name="color-scheme" content="dark light">
7
+ <title>Evals Lab</title>
8
+ <script type="module" crossorigin src="/assets/main-CpVssvrb.js"></script>
9
+ <link rel="modulepreload" crossorigin href="/assets/tokens-B9intIuT.js">
10
+ <link rel="stylesheet" crossorigin href="/assets/tokens-s6I-RMVq.css">
11
+ <link rel="stylesheet" crossorigin href="/assets/main-DjQQums6.css">
12
+ </head>
13
+ <body>
14
+ <div id="root"></div>
15
+ <!-- lab:head -->
16
+ <!-- What the page's data needs before anything reads it. server.py puts
17
+ the default prompt, the rules file and its copy of the synced stores
18
+ at the marker above; in development vite.config.ts puts the first two
19
+ there. The core the bundle imports reads the first two as it loads;
20
+ the bundle is a module script, which runs once the document is parsed,
21
+ so they are in place wherever the build puts its script. -->
22
+ </body>
23
+ </html>
package/package.json ADDED
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "evals-lab",
3
+ "version": "0.1.2",
4
+ "description": "A browser bench for grading what a model answers: two wordings side by side over a set of files, scored against answers fixed in advance.",
5
+ "license": "SEE LICENSE IN LICENSE.md",
6
+ "author": "Grainbox Limited",
7
+ "bin": {
8
+ "evals-lab": "bin/evals-lab.js"
9
+ },
10
+ "files": [
11
+ "bin/",
12
+ "lab/"
13
+ ],
14
+ "engines": {
15
+ "node": ">=22.18"
16
+ },
17
+ "scripts": {
18
+ "prepack": "node build.js"
19
+ }
20
+ }