niceeval 0.3.0 → 0.4.0

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 (101) hide show
  1. package/README.zh.md +11 -0
  2. package/docs/README.md +2 -1
  3. package/docs/adapters/collection.md +1 -1
  4. package/docs/adapters/contract.md +6 -5
  5. package/docs/adapters/reference/claude-code-otel-telemetry.md +1 -1
  6. package/docs/assertions.md +0 -1
  7. package/docs/capabilities-by-construction.md +2 -2
  8. package/docs/cli.md +2 -2
  9. package/docs/concepts.md +2 -2
  10. package/docs/e2e-ci.md +135 -98
  11. package/docs/eval-authoring.md +3 -3
  12. package/docs/experiments.md +7 -4
  13. package/docs/observability.md +9 -5
  14. package/docs/origin-integration.md +18 -18
  15. package/docs/references.md +1 -1
  16. package/docs/reports.md +551 -0
  17. package/docs/results-format.md +3 -3
  18. package/docs/results-lib.md +191 -0
  19. package/docs/runner.md +1 -1
  20. package/docs/sandbox.md +1 -1
  21. package/docs/source-map.md +22 -2
  22. package/docs/tier-sync.md +74 -58
  23. package/docs/view.md +39 -5
  24. package/package.json +29 -3
  25. package/src/agents/ai-sdk.ts +3 -0
  26. package/src/agents/claude-code.ts +18 -1
  27. package/src/agents/codex.ts +3 -2
  28. package/src/agents/index.ts +16 -0
  29. package/src/agents/openai-compat.test.ts +56 -0
  30. package/src/agents/openai-compat.ts +151 -0
  31. package/src/agents/types.ts +3 -1
  32. package/src/cli.ts +3 -2
  33. package/src/context/context.test.ts +78 -1
  34. package/src/context/context.ts +19 -11
  35. package/src/context/session.ts +2 -0
  36. package/src/context/types.ts +11 -5
  37. package/src/i18n/en.ts +3 -4
  38. package/src/i18n/zh-CN.ts +2 -3
  39. package/src/o11y/cost.test.ts +40 -0
  40. package/src/o11y/cost.ts +27 -5
  41. package/src/o11y/derive.ts +2 -2
  42. package/src/o11y/otlp/mappers/claude-code.test.ts +31 -0
  43. package/src/o11y/otlp/mappers/claude-code.ts +24 -0
  44. package/src/o11y/otlp/mappers/index.ts +1 -0
  45. package/src/o11y/otlp/parse.test.ts +127 -0
  46. package/src/o11y/prices.json +176 -119
  47. package/src/o11y/types.ts +2 -1
  48. package/src/report/aggregate.ts +215 -0
  49. package/src/report/compute.ts +405 -0
  50. package/src/report/format.ts +47 -0
  51. package/src/report/index.ts +40 -0
  52. package/src/report/metrics.ts +96 -0
  53. package/src/report/react/CaseList.tsx +70 -0
  54. package/src/report/react/DeltaTable.tsx +79 -0
  55. package/src/report/react/MetricMatrix.tsx +75 -0
  56. package/src/report/react/MetricScatter.tsx +217 -0
  57. package/src/report/react/MetricTable.tsx +71 -0
  58. package/src/report/react/RunOverview.tsx +87 -0
  59. package/src/report/react/Scoreboard.tsx +87 -0
  60. package/src/report/react/cell.tsx +49 -0
  61. package/src/report/react/colors.ts +42 -0
  62. package/src/report/react/data.ts +17 -0
  63. package/src/report/react/fixtures.ts +236 -0
  64. package/src/report/react/format.ts +34 -0
  65. package/src/report/react/index.tsx +34 -0
  66. package/src/report/react/render.test.tsx +303 -0
  67. package/src/report/react/styles.css +302 -0
  68. package/src/report/report.test.ts +667 -0
  69. package/src/report/types.ts +210 -0
  70. package/src/results/copy.ts +200 -0
  71. package/src/results/format.ts +75 -0
  72. package/src/results/index.ts +27 -0
  73. package/src/results/open.ts +207 -0
  74. package/src/results/results.test.ts +359 -0
  75. package/src/results/select.ts +101 -0
  76. package/src/results/types.ts +98 -0
  77. package/src/runner/attempt.ts +3 -1
  78. package/src/runner/report.test.ts +111 -0
  79. package/src/runner/report.ts +52 -1
  80. package/src/runner/reporters/artifacts.ts +1 -1
  81. package/src/runner/reporters/braintrust.test.ts +106 -0
  82. package/src/runner/reporters/braintrust.ts +197 -0
  83. package/src/runner/reporters/index.ts +3 -1
  84. package/src/runner/run.ts +30 -19
  85. package/src/runner/types.ts +17 -0
  86. package/src/sandbox/types.ts +3 -3
  87. package/src/view/app/App.tsx +82 -17
  88. package/src/view/app/components/CostScoreChart.tsx +127 -0
  89. package/src/view/app/i18n.ts +10 -1
  90. package/src/view/app/lib/attempt-route.test.ts +89 -0
  91. package/src/view/app/lib/attempt-route.ts +52 -0
  92. package/src/view/app/lib/chart.ts +72 -0
  93. package/src/view/app/lib/outcome.ts +1 -1
  94. package/src/view/app/types.ts +4 -5
  95. package/src/view/client-dist/app.css +1 -1
  96. package/src/view/client-dist/app.js +18 -18
  97. package/src/view/index.ts +12 -18
  98. package/src/view/loader.ts +14 -7
  99. package/src/view/shared/types.ts +14 -1
  100. package/src/view/styles.css +43 -0
  101. package/src/view/template.html +0 -1
@@ -246,6 +246,11 @@
246
246
  "in": 0.03,
247
247
  "out": 0.12
248
248
  },
249
+ "LongCat-2.0": {
250
+ "in": 0.75,
251
+ "out": 2.95,
252
+ "cacheRead": 0.015
253
+ },
249
254
  "Magistral-Small-2506": {
250
255
  "in": 0.4,
251
256
  "out": 1.4
@@ -327,13 +332,14 @@
327
332
  "cacheWrite": 0.375
328
333
  },
329
334
  "MiniMaxAI/MiniMax-M2.7": {
330
- "in": 0.3,
331
- "out": 1.2,
332
- "cacheRead": 0.06
335
+ "in": 0.25,
336
+ "out": 1,
337
+ "cacheRead": 0.05
333
338
  },
334
339
  "MiniMaxAI/MiniMax-M3": {
335
340
  "in": 0.3,
336
- "out": 1.2
341
+ "out": 1.2,
342
+ "cacheRead": 0.06
337
343
  },
338
344
  "NeverSleep/Lumimaid-v0.2-70B": {
339
345
  "in": 1,
@@ -513,7 +519,8 @@
513
519
  },
514
520
  "Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo": {
515
521
  "in": 0.3,
516
- "out": 1
522
+ "out": 1,
523
+ "cacheRead": 0.1
517
524
  },
518
525
  "Qwen/Qwen3-Coder-Next": {
519
526
  "in": 0.2,
@@ -535,9 +542,14 @@
535
542
  "in": 0.115,
536
543
  "out": 0.115
537
544
  },
545
+ "Qwen/Qwen3-Max": {
546
+ "in": 1.2,
547
+ "out": 6,
548
+ "cacheRead": 0.24
549
+ },
538
550
  "Qwen/Qwen3-Next-80B-A3B-Instruct": {
539
- "in": 0.25,
540
- "out": 1
551
+ "in": 0.09,
552
+ "out": 1.1
541
553
  },
542
554
  "Qwen/Qwen3-Next-80B-A3B-Thinking": {
543
555
  "in": 0.3,
@@ -562,8 +574,8 @@
562
574
  "out": 1.5
563
575
  },
564
576
  "Qwen/Qwen3-VL-235B-A22B-Instruct-FP8": {
565
- "in": 1.64,
566
- "out": 1.91
577
+ "in": 1.76,
578
+ "out": 2.05
567
579
  },
568
580
  "Qwen/Qwen3-VL-235B-A22B-Thinking": {
569
581
  "in": 0.45,
@@ -594,12 +606,12 @@
594
606
  "out": 0.09
595
607
  },
596
608
  "Qwen/Qwen3.5-122B-A10B": {
597
- "in": 0.4,
598
- "out": 3.2
609
+ "in": 0.29,
610
+ "out": 2.4
599
611
  },
600
612
  "Qwen/Qwen3.5-27B": {
601
- "in": 0.3,
602
- "out": 2.4
613
+ "in": 0.26,
614
+ "out": 2.6
603
615
  },
604
616
  "Qwen/Qwen3.5-35B-A3B": {
605
617
  "in": 0.14,
@@ -628,16 +640,16 @@
628
640
  "cacheWrite": 0.75
629
641
  },
630
642
  "Qwen/Qwen3.5-9B": {
631
- "in": 0.17,
632
- "out": 0.25
643
+ "in": 0.1,
644
+ "out": 0.15
633
645
  },
634
646
  "Qwen/Qwen3.5-Plus": {
635
647
  "in": 0.4,
636
648
  "out": 2.4
637
649
  },
638
650
  "Qwen/Qwen3.6-27B": {
639
- "in": 0.47,
640
- "out": 3.19
651
+ "in": 0.32,
652
+ "out": 3.2
641
653
  },
642
654
  "Qwen/Qwen3.6-27B-TEE": {
643
655
  "in": 0.3,
@@ -659,8 +671,7 @@
659
671
  "Qwen/Qwen3.7-Max": {
660
672
  "in": 2.5,
661
673
  "out": 7.5,
662
- "cacheRead": 0.25,
663
- "cacheWrite": 3.125
674
+ "cacheRead": 0.5
664
675
  },
665
676
  "Qwen/qwen3-coder-480b-a35b-instruct": {
666
677
  "in": 0.29,
@@ -1555,6 +1566,12 @@
1555
1566
  "cacheRead": 0.3,
1556
1567
  "cacheWrite": 3.75
1557
1568
  },
1569
+ "anthropic.claude-fable-5": {
1570
+ "in": 10,
1571
+ "out": 50,
1572
+ "cacheRead": 1,
1573
+ "cacheWrite": 12.5
1574
+ },
1558
1575
  "anthropic.claude-haiku-4-5-20251001-v1:0": {
1559
1576
  "in": 1,
1560
1577
  "out": 5,
@@ -1603,6 +1620,12 @@
1603
1620
  "cacheRead": 0.3,
1604
1621
  "cacheWrite": 3.75
1605
1622
  },
1623
+ "anthropic.claude-sonnet-5": {
1624
+ "in": 2,
1625
+ "out": 10,
1626
+ "cacheRead": 0.2,
1627
+ "cacheWrite": 2.5
1628
+ },
1606
1629
  "anthropic/claude-3-5-haiku": {
1607
1630
  "in": 0.8,
1608
1631
  "out": 4,
@@ -1883,6 +1906,12 @@
1883
1906
  "in": 2.992,
1884
1907
  "out": 14.993999999999998
1885
1908
  },
1909
+ "anthropic/claude-sonnet-5": {
1910
+ "in": 2,
1911
+ "out": 10,
1912
+ "cacheRead": 0.2,
1913
+ "cacheWrite": 2.5
1914
+ },
1886
1915
  "anthropic/claude-sonnet-latest": {
1887
1916
  "in": 2.992,
1888
1917
  "out": 14.994,
@@ -1959,6 +1988,12 @@
1959
1988
  "cacheRead": 0.33,
1960
1989
  "cacheWrite": 4.125
1961
1990
  },
1991
+ "au.anthropic.claude-sonnet-5": {
1992
+ "in": 2,
1993
+ "out": 10,
1994
+ "cacheRead": 0.2,
1995
+ "cacheWrite": 2.5
1996
+ },
1962
1997
  "auto": {
1963
1998
  "in": 0.85,
1964
1999
  "out": 1.55
@@ -2149,18 +2184,6 @@
2149
2184
  "cacheRead": 0.08,
2150
2185
  "cacheWrite": 1
2151
2186
  },
2152
- "claude-3-5-sonnet-20240620": {
2153
- "in": 3,
2154
- "out": 15,
2155
- "cacheRead": 0.3,
2156
- "cacheWrite": 3.75
2157
- },
2158
- "claude-3-5-sonnet-20241022": {
2159
- "in": 3,
2160
- "out": 15,
2161
- "cacheRead": 0.3,
2162
- "cacheWrite": 3.75
2163
- },
2164
2187
  "claude-3-7-sonnet": {
2165
2188
  "in": 3,
2166
2189
  "out": 15,
@@ -2169,9 +2192,7 @@
2169
2192
  },
2170
2193
  "claude-3-7-sonnet-20250219": {
2171
2194
  "in": 3,
2172
- "out": 15,
2173
- "cacheRead": 0.3,
2174
- "cacheWrite": 3.75
2195
+ "out": 15
2175
2196
  },
2176
2197
  "claude-3-haiku-20240307": {
2177
2198
  "in": 0.25,
@@ -2185,18 +2206,6 @@
2185
2206
  "cacheRead": 1.5,
2186
2207
  "cacheWrite": 18.75
2187
2208
  },
2188
- "claude-3-opus-20240229": {
2189
- "in": 15,
2190
- "out": 75,
2191
- "cacheRead": 1.5,
2192
- "cacheWrite": 18.75
2193
- },
2194
- "claude-3-sonnet-20240229": {
2195
- "in": 3,
2196
- "out": 15,
2197
- "cacheRead": 0.3,
2198
- "cacheWrite": 0.3
2199
- },
2200
2209
  "claude-3.5-haiku": {
2201
2210
  "in": 0.7999999999999999,
2202
2211
  "out": 4,
@@ -2282,12 +2291,6 @@
2282
2291
  "cacheRead": 1.5,
2283
2292
  "cacheWrite": 18.75
2284
2293
  },
2285
- "claude-opus-4-0": {
2286
- "in": 15,
2287
- "out": 75,
2288
- "cacheRead": 1.5,
2289
- "cacheWrite": 18.75
2290
- },
2291
2294
  "claude-opus-4-1": {
2292
2295
  "in": 15,
2293
2296
  "out": 75,
@@ -2332,9 +2335,7 @@
2332
2335
  },
2333
2336
  "claude-opus-4-20250514": {
2334
2337
  "in": 15,
2335
- "out": 75,
2336
- "cacheRead": 1.5,
2337
- "cacheWrite": 18.75
2338
+ "out": 75
2338
2339
  },
2339
2340
  "claude-opus-4-5": {
2340
2341
  "in": 5,
@@ -2420,6 +2421,12 @@
2420
2421
  "cacheRead": 1.2,
2421
2422
  "cacheWrite": 15
2422
2423
  },
2424
+ "claude-opus-4-8-think": {
2425
+ "in": 5,
2426
+ "out": 25,
2427
+ "cacheRead": 0.5,
2428
+ "cacheWrite": 6.25
2429
+ },
2423
2430
  "claude-opus-4-8@default": {
2424
2431
  "in": 5,
2425
2432
  "out": 25,
@@ -2500,17 +2507,9 @@
2500
2507
  "in": 3.307,
2501
2508
  "out": 16.536
2502
2509
  },
2503
- "claude-sonnet-4-0": {
2504
- "in": 3,
2505
- "out": 15,
2506
- "cacheRead": 0.3,
2507
- "cacheWrite": 3.75
2508
- },
2509
2510
  "claude-sonnet-4-20250514": {
2510
2511
  "in": 3,
2511
- "out": 15,
2512
- "cacheRead": 0.3,
2513
- "cacheWrite": 3.75
2512
+ "out": 15
2514
2513
  },
2515
2514
  "claude-sonnet-4-5": {
2516
2515
  "in": 3,
@@ -2594,6 +2593,18 @@
2594
2593
  "cacheRead": 0.3,
2595
2594
  "cacheWrite": 3.75
2596
2595
  },
2596
+ "claude-sonnet-5": {
2597
+ "in": 2,
2598
+ "out": 10,
2599
+ "cacheRead": 0.2,
2600
+ "cacheWrite": 2.5
2601
+ },
2602
+ "claude-sonnet-5@default": {
2603
+ "in": 2,
2604
+ "out": 10,
2605
+ "cacheRead": 0.2,
2606
+ "cacheWrite": 2.5
2607
+ },
2597
2608
  "claudinio": {
2598
2609
  "in": 0.5,
2599
2610
  "out": 2,
@@ -2747,8 +2758,8 @@
2747
2758
  "out": 0.15
2748
2759
  },
2749
2760
  "cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic": {
2750
- "in": 0.49,
2751
- "out": 0.71
2761
+ "in": 0.53,
2762
+ "out": 0.76
2752
2763
  },
2753
2764
  "databricks-claude-haiku-4-5": {
2754
2765
  "in": 1,
@@ -2968,9 +2979,9 @@
2968
2979
  "cacheWrite": 0.5
2969
2980
  },
2970
2981
  "deepseek-ai/DeepSeek-V4-Flash": {
2971
- "in": 0.1,
2972
- "out": 0.2,
2973
- "cacheRead": 0.02
2982
+ "in": 0.09,
2983
+ "out": 0.18,
2984
+ "cacheRead": 0.018
2974
2985
  },
2975
2986
  "deepseek-ai/DeepSeek-V4-Pro": {
2976
2987
  "in": 1.74,
@@ -3506,6 +3517,12 @@
3506
3517
  "cacheRead": 0.33,
3507
3518
  "cacheWrite": 4.125
3508
3519
  },
3520
+ "eu.anthropic.claude-sonnet-5": {
3521
+ "in": 2.2,
3522
+ "out": 11,
3523
+ "cacheRead": 0.22,
3524
+ "cacheWrite": 2.75
3525
+ },
3509
3526
  "evroc/roc": {
3510
3527
  "in": 2.875,
3511
3528
  "out": 11.516
@@ -3539,6 +3556,11 @@
3539
3556
  "out": 30,
3540
3557
  "cacheRead": 0.5
3541
3558
  },
3559
+ "fugu-ultra-20260615": {
3560
+ "in": 5,
3561
+ "out": 30,
3562
+ "cacheRead": 0.5
3563
+ },
3542
3564
  "gemini-2-5-flash": {
3543
3565
  "in": 0.3,
3544
3566
  "out": 2.5,
@@ -3820,6 +3842,10 @@
3820
3842
  "in": 0.18,
3821
3843
  "out": 0.5
3822
3844
  },
3845
+ "gemma-4-31b": {
3846
+ "in": 0.99,
3847
+ "out": 1.49
3848
+ },
3823
3849
  "gemma-4-31b-it": {
3824
3850
  "in": 0.1,
3825
3851
  "out": 0.3,
@@ -4045,13 +4071,20 @@
4045
4071
  "cacheRead": 0.3,
4046
4072
  "cacheWrite": 3.75
4047
4073
  },
4074
+ "global.anthropic.claude-sonnet-5": {
4075
+ "in": 2,
4076
+ "out": 10,
4077
+ "cacheRead": 0.2,
4078
+ "cacheWrite": 2.5
4079
+ },
4048
4080
  "google-gemma-3-27b-it": {
4049
4081
  "in": 0.12,
4050
4082
  "out": 0.2
4051
4083
  },
4052
4084
  "google-gemma-4-26b-a4b-it": {
4053
- "in": 0.1625,
4054
- "out": 0.5
4085
+ "in": 0.13,
4086
+ "out": 0.4,
4087
+ "cacheRead": 0.05
4055
4088
  },
4056
4089
  "google-gemma-4-31b-it": {
4057
4090
  "in": 0.12,
@@ -4175,6 +4208,10 @@
4175
4208
  "cacheRead": 0.025,
4176
4209
  "cacheWrite": 0.08333
4177
4210
  },
4211
+ "google/gemini-3.1-flash-lite-image": {
4212
+ "in": 0.25,
4213
+ "out": 1.5
4214
+ },
4178
4215
  "google/gemini-3.1-flash-lite-preview": {
4179
4216
  "in": 0.25,
4180
4217
  "out": 1.5
@@ -4794,17 +4831,12 @@
4794
4831
  "out": 1.2,
4795
4832
  "cacheRead": 0.6
4796
4833
  },
4797
- "hf:Qwen/Qwen3.5-397B-A17B": {
4798
- "in": 0.6,
4799
- "out": 3.6,
4800
- "cacheRead": 0.6
4801
- },
4802
4834
  "hf:Qwen/Qwen3.6-27B": {
4803
4835
  "in": 0.45,
4804
4836
  "out": 3.6,
4805
4837
  "cacheRead": 0.45
4806
4838
  },
4807
- "hf:moonshotai/Kimi-K2.6": {
4839
+ "hf:moonshotai/Kimi-K2.7-Code": {
4808
4840
  "in": 0.95,
4809
4841
  "out": 4,
4810
4842
  "cacheRead": 0.95
@@ -4819,21 +4851,11 @@
4819
4851
  "out": 0.1,
4820
4852
  "cacheRead": 0.1
4821
4853
  },
4822
- "hf:zai-org/GLM-4.7": {
4823
- "in": 0.45,
4824
- "out": 2.19,
4825
- "cacheRead": 0.45
4826
- },
4827
4854
  "hf:zai-org/GLM-4.7-Flash": {
4828
4855
  "in": 0.1,
4829
4856
  "out": 0.5,
4830
4857
  "cacheRead": 0.1
4831
4858
  },
4832
- "hf:zai-org/GLM-5.1": {
4833
- "in": 1,
4834
- "out": 3,
4835
- "cacheRead": 1
4836
- },
4837
4859
  "hf:zai-org/GLM-5.2": {
4838
4860
  "in": 1.4,
4839
4861
  "out": 4.4,
@@ -4966,6 +4988,12 @@
4966
4988
  "in": 0.1989,
4967
4989
  "out": 0.408
4968
4990
  },
4991
+ "jp.anthropic.claude-haiku-4-5-20251001-v1:0": {
4992
+ "in": 1,
4993
+ "out": 5,
4994
+ "cacheRead": 0.1,
4995
+ "cacheWrite": 1.25
4996
+ },
4969
4997
  "jp.anthropic.claude-opus-4-7": {
4970
4998
  "in": 5,
4971
4999
  "out": 25,
@@ -4990,6 +5018,12 @@
4990
5018
  "cacheRead": 0.3,
4991
5019
  "cacheWrite": 3.75
4992
5020
  },
5021
+ "jp.anthropic.claude-sonnet-5": {
5022
+ "in": 2,
5023
+ "out": 10,
5024
+ "cacheRead": 0.2,
5025
+ "cacheWrite": 2.5
5026
+ },
4993
5027
  "kilo-auto/balanced": {
4994
5028
  "in": 0.6,
4995
5029
  "out": 3
@@ -5036,9 +5070,9 @@
5036
5070
  "cacheRead": 0.16
5037
5071
  },
5038
5072
  "kimi-k2-7-code": {
5039
- "in": 0.9,
5040
- "out": 4.3,
5041
- "cacheRead": 0.2
5073
+ "in": 0.75,
5074
+ "out": 3.5,
5075
+ "cacheRead": 0.16
5042
5076
  },
5043
5077
  "kimi-k2-instruct": {
5044
5078
  "in": 0.551,
@@ -5280,6 +5314,11 @@
5280
5314
  "in": 0.5,
5281
5315
  "out": 1.5
5282
5316
  },
5317
+ "mai-code-1-flash-picker": {
5318
+ "in": 0.75,
5319
+ "out": 4.5,
5320
+ "cacheRead": 0.075
5321
+ },
5283
5322
  "mancer/weaver": {
5284
5323
  "in": 0.75,
5285
5324
  "out": 1
@@ -5605,9 +5644,9 @@
5605
5644
  "cacheWrite": 0.375
5606
5645
  },
5607
5646
  "minimax-m25": {
5608
- "in": 0.34,
5609
- "out": 1.19,
5610
- "cacheRead": 0.04
5647
+ "in": 0.27,
5648
+ "out": 0.95,
5649
+ "cacheRead": 0.03
5611
5650
  },
5612
5651
  "minimax-m27": {
5613
5652
  "in": 0.375,
@@ -5804,8 +5843,8 @@
5804
5843
  "out": 7.5
5805
5844
  },
5806
5845
  "mistral-medium-latest": {
5807
- "in": 0.4,
5808
- "out": 2
5846
+ "in": 1.5,
5847
+ "out": 7.5
5809
5848
  },
5810
5849
  "mistral-nemo": {
5811
5850
  "in": 0.15,
@@ -6400,14 +6439,6 @@
6400
6439
  "in": 0.2,
6401
6440
  "out": 0.6
6402
6441
  },
6403
- "neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8": {
6404
- "in": 0.16,
6405
- "out": 0.27
6406
- },
6407
- "neuralmagic/Mistral-Nemo-Instruct-2407-FP8": {
6408
- "in": 0.49,
6409
- "out": 0.71
6410
- },
6411
6442
  "nex-agi/deepseek-v3.1-nex-n1": {
6412
6443
  "in": 0.27,
6413
6444
  "out": 1
@@ -6523,6 +6554,10 @@
6523
6554
  "in": 0.15,
6524
6555
  "out": 0.15
6525
6556
  },
6557
+ "nvidia/Llama-3.3-Nemotron-Super-49B-v1.5": {
6558
+ "in": 0.4,
6559
+ "out": 0.4
6560
+ },
6526
6561
  "nvidia/Llama-3_1-Nemotron-Ultra-253B-v1": {
6527
6562
  "in": 0.6,
6528
6563
  "out": 1.8,
@@ -6553,12 +6588,20 @@
6553
6588
  "out": 0.75,
6554
6589
  "cacheRead": 0.06
6555
6590
  },
6591
+ "nvidia/Nemotron-3-Nano-30B-A3B": {
6592
+ "in": 0.05,
6593
+ "out": 0.2
6594
+ },
6556
6595
  "nvidia/Nemotron-3-Nano-Omni": {
6557
6596
  "in": 0.06,
6558
6597
  "out": 0.24,
6559
6598
  "cacheRead": 0.006,
6560
6599
  "cacheWrite": 0.075
6561
6600
  },
6601
+ "nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning": {
6602
+ "in": 0.2,
6603
+ "out": 0.8
6604
+ },
6562
6605
  "nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-BF16": {
6563
6606
  "in": 0.13,
6564
6607
  "out": 0.38
@@ -6649,8 +6692,9 @@
6649
6692
  "cacheRead": 0.5
6650
6693
  },
6651
6694
  "olafangensan-glm-4.7-flash-heretic": {
6652
- "in": 0.14,
6653
- "out": 0.8
6695
+ "in": 0.07,
6696
+ "out": 0.4,
6697
+ "cacheRead": 0.035
6654
6698
  },
6655
6699
  "open-mistral-7b": {
6656
6700
  "in": 0.25,
@@ -7433,6 +7477,11 @@
7433
7477
  "in": 0.1,
7434
7478
  "out": 0.3
7435
7479
  },
7480
+ "poolside/laguna-xs-2.1": {
7481
+ "in": 0.06,
7482
+ "out": 0.12,
7483
+ "cacheRead": 0.03
7484
+ },
7436
7485
  "poolside/laguna-xs.2": {
7437
7486
  "in": 0.1,
7438
7487
  "out": 0.3
@@ -8884,6 +8933,12 @@
8884
8933
  "cacheRead": 0.3,
8885
8934
  "cacheWrite": 3.75
8886
8935
  },
8936
+ "us.anthropic.claude-sonnet-5": {
8937
+ "in": 2,
8938
+ "out": 10,
8939
+ "cacheRead": 0.2,
8940
+ "cacheWrite": 2.5
8941
+ },
8887
8942
  "us.deepseek.r1-v1:0": {
8888
8943
  "in": 1.35,
8889
8944
  "out": 5.4
@@ -9290,9 +9345,9 @@
9290
9345
  "cacheRead": 0.02
9291
9346
  },
9292
9347
  "xiaomi-mimo-v2-5": {
9293
- "in": 0.175,
9294
- "out": 0.35,
9295
- "cacheRead": 0.0625
9348
+ "in": 0.14,
9349
+ "out": 0.28,
9350
+ "cacheRead": 0.05
9296
9351
  },
9297
9352
  "xiaomi-mimo-v2.5": {
9298
9353
  "in": 0.44,
@@ -9352,9 +9407,9 @@
9352
9407
  "cacheRead": 0.4
9353
9408
  },
9354
9409
  "xiaomimimo/mimo-v2.5-pro": {
9355
- "in": 2,
9356
- "out": 6,
9357
- "cacheRead": 0.4
9410
+ "in": 0.522,
9411
+ "out": 1.044,
9412
+ "cacheRead": 0.0043
9358
9413
  },
9359
9414
  "xpersona-frieren-coder": {
9360
9415
  "in": 1.5,
@@ -9458,9 +9513,9 @@
9458
9513
  "out": 3.5
9459
9514
  },
9460
9515
  "z-ai/glm-5.2": {
9461
- "in": 0.94,
9462
- "out": 3,
9463
- "cacheRead": 0.18
9516
+ "in": 0.686,
9517
+ "out": 2.156,
9518
+ "cacheRead": 0.1274
9464
9519
  },
9465
9520
  "z-ai/glm-5v-turbo": {
9466
9521
  "in": 1.2,
@@ -9508,9 +9563,9 @@
9508
9563
  "cacheRead": 0.2
9509
9564
  },
9510
9565
  "zai-org-glm-5-1": {
9511
- "in": 1.75,
9512
- "out": 5.5,
9513
- "cacheRead": 0.325
9566
+ "in": 1.54,
9567
+ "out": 4.84,
9568
+ "cacheRead": 0.286
9514
9569
  },
9515
9570
  "zai-org-glm-5-2": {
9516
9571
  "in": 1.4,
@@ -9561,7 +9616,8 @@
9561
9616
  },
9562
9617
  "zai-org/GLM-4.7-Flash": {
9563
9618
  "in": 0.06,
9564
- "out": 0.4
9619
+ "out": 0.4,
9620
+ "cacheRead": 0.01
9565
9621
  },
9566
9622
  "zai-org/GLM-5": {
9567
9623
  "in": 0.95,
@@ -9624,7 +9680,8 @@
9624
9680
  },
9625
9681
  "zai-org/glm-4.5-air": {
9626
9682
  "in": 0.13,
9627
- "out": 0.85
9683
+ "out": 0.85,
9684
+ "cacheRead": 0.025
9628
9685
  },
9629
9686
  "zai-org/glm-4.5v": {
9630
9687
  "in": 0.6,
package/src/o11y/types.ts CHANGED
@@ -120,7 +120,8 @@ export interface TraceSpan {
120
120
  /** 给人 / 给 EVAL.ts 看的 o11y 摘要(注入沙箱 __niceeval__/results.json)。 */
121
121
  export interface O11ySummary {
122
122
  totalTurns: number;
123
- toolCalls: Record<string, number>;
123
+ /** 只有跑之前调用过的 canonical 工具名才有 key,不是全量出现;省略的 ToolName 视为 0。 */
124
+ toolCalls: Partial<Record<ToolName, number>>;
124
125
  totalToolCalls: number;
125
126
  filesRead: string[];
126
127
  filesModified: string[];