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,12 @@
1
+ {
2
+ "format": "evals-lab/pack",
3
+ "version": 1,
4
+ "id": "demo",
5
+ "name": "Demo",
6
+ "packVersion": "2026.09.29",
7
+ "requires": {
8
+ "lab": ">=8",
9
+ "plugins": []
10
+ },
11
+ "description": "Two graded sets of public-domain images, each with a starter pipeline."
12
+ }
@@ -0,0 +1,104 @@
1
+ {
2
+ "version": 9,
3
+ "id": "demo-1",
4
+ "name": "Demo 1",
5
+ "jobs": [
6
+ {
7
+ "type": "job",
8
+ "id": "j1",
9
+ "name": "",
10
+ "steps": [
11
+ {
12
+ "type": "attachContent",
13
+ "content": {
14
+ "type": "source",
15
+ "ref": {
16
+ "id": "Demo 1",
17
+ "name": "Demo 1"
18
+ },
19
+ "first": null,
20
+ "loops": 1
21
+ }
22
+ },
23
+ {
24
+ "type": "prompt",
25
+ "withImage": true,
26
+ "tokenMappings": []
27
+ },
28
+ {
29
+ "type": "readReply",
30
+ "out": {
31
+ "kind": "list",
32
+ "parse": "csv",
33
+ "preamble": false,
34
+ "modifiers": [
35
+ {
36
+ "type": "tidy"
37
+ },
38
+ {
39
+ "type": "dedupe"
40
+ },
41
+ {
42
+ "type": "keep-first",
43
+ "n": 12
44
+ },
45
+ {
46
+ "type": "case",
47
+ "mode": "LOWER"
48
+ }
49
+ ]
50
+ }
51
+ }
52
+ ]
53
+ }
54
+ ],
55
+ "scenarios": [
56
+ {
57
+ "id": "s1",
58
+ "name": "",
59
+ "profile": {
60
+ "id": "vision",
61
+ "name": "Vision"
62
+ },
63
+ "stages": [
64
+ {
65
+ "prompt": "List the things you can see in this image, as a comma-separated list of short items (one to three words each), most important first. Up to 12 items."
66
+ }
67
+ ]
68
+ },
69
+ {
70
+ "id": "s2",
71
+ "name": "",
72
+ "profile": {
73
+ "id": "vision",
74
+ "name": "Vision"
75
+ },
76
+ "stages": [
77
+ {
78
+ "prompt": "Name what is in this image. Reply with a comma-separated list only: up to 12 short items, most important first."
79
+ }
80
+ ]
81
+ }
82
+ ],
83
+ "tests": [
84
+ {
85
+ "id": "t1",
86
+ "name": "",
87
+ "continueOnFailure": true,
88
+ "type": "metrics",
89
+ "mode": "all",
90
+ "threshold": null,
91
+ "grader": null,
92
+ "dataset": {
93
+ "id": "demo-1",
94
+ "name": "Demo 1"
95
+ },
96
+ "over": "item",
97
+ "metrics": [
98
+ {
99
+ "type": "case"
100
+ }
101
+ ]
102
+ }
103
+ ]
104
+ }
@@ -0,0 +1,104 @@
1
+ {
2
+ "version": 9,
3
+ "id": "demo-2",
4
+ "name": "Demo 2",
5
+ "jobs": [
6
+ {
7
+ "type": "job",
8
+ "id": "j1",
9
+ "name": "",
10
+ "steps": [
11
+ {
12
+ "type": "attachContent",
13
+ "content": {
14
+ "type": "source",
15
+ "ref": {
16
+ "id": "Demo 2",
17
+ "name": "Demo 2"
18
+ },
19
+ "first": null,
20
+ "loops": 1
21
+ }
22
+ },
23
+ {
24
+ "type": "prompt",
25
+ "withImage": true,
26
+ "tokenMappings": []
27
+ },
28
+ {
29
+ "type": "readReply",
30
+ "out": {
31
+ "kind": "list",
32
+ "parse": "csv",
33
+ "preamble": false,
34
+ "modifiers": [
35
+ {
36
+ "type": "tidy"
37
+ },
38
+ {
39
+ "type": "dedupe"
40
+ },
41
+ {
42
+ "type": "keep-first",
43
+ "n": 12
44
+ },
45
+ {
46
+ "type": "case",
47
+ "mode": "LOWER"
48
+ }
49
+ ]
50
+ }
51
+ }
52
+ ]
53
+ }
54
+ ],
55
+ "scenarios": [
56
+ {
57
+ "id": "s1",
58
+ "name": "",
59
+ "profile": {
60
+ "id": "vision",
61
+ "name": "Vision"
62
+ },
63
+ "stages": [
64
+ {
65
+ "prompt": "List the things you can see in this image, as a comma-separated list of short items (one to three words each), most important first. Up to 12 items."
66
+ }
67
+ ]
68
+ },
69
+ {
70
+ "id": "s2",
71
+ "name": "",
72
+ "profile": {
73
+ "id": "vision",
74
+ "name": "Vision"
75
+ },
76
+ "stages": [
77
+ {
78
+ "prompt": "Name what is in this image. Reply with a comma-separated list only: up to 12 short items, most important first."
79
+ }
80
+ ]
81
+ }
82
+ ],
83
+ "tests": [
84
+ {
85
+ "id": "t1",
86
+ "name": "",
87
+ "continueOnFailure": true,
88
+ "type": "metrics",
89
+ "mode": "all",
90
+ "threshold": null,
91
+ "grader": null,
92
+ "dataset": {
93
+ "id": "demo-2",
94
+ "name": "Demo 2"
95
+ },
96
+ "over": "item",
97
+ "metrics": [
98
+ {
99
+ "type": "case"
100
+ }
101
+ ]
102
+ }
103
+ ]
104
+ }