Skip to content

Commit f3ccb85

Browse files
authored
Merge pull request #244 from aicodingstack/codex/aa-index-v4-3
feat(data): refresh model intelligence scores to AA v4.3
2 parents b1f6c60 + dffa081 commit f3ccb85

9 files changed

Lines changed: 628 additions & 615 deletions

data/artificial-analysis-index.json

Lines changed: 193 additions & 193 deletions
Large diffs are not rendered by default.

data/data-health.json

Lines changed: 135 additions & 135 deletions
Large diffs are not rendered by default.

docs/DATA-HEALTH.md

Lines changed: 101 additions & 101 deletions
Large diffs are not rendered by default.

docs/DATA-TRUST.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ The localized, reader-facing source policy is published under `content/docs/*/da
4646

4747
## Model catalog inclusion
4848

49+
Intelligence Index entries use the highest-scoring measured configuration of each exact model version. When only estimated results are available, the highest-scoring estimate is retained with `estimated: true`; missing results are not replaced with zero. Reasoning settings may be compared within a model, but distinct checkpoints and text/vision releases remain separate. All entries use the index version and observation date recorded in `data/artificial-analysis-index.json`; scores from different index versions are not directly comparable.
50+
4951
Every new model catalog entry must have a published Artificial Analysis Intelligence Index result compatible with the index version tracked in `data/artificial-analysis-index.json`. Artificial Analysis Coding Agent Index, Agentic Index, individual benchmark scores, and provider-only measurements are different metrics and must not be substituted or mixed into the model Intelligence Index.
5052

5153
`legacyMissingModelIds` records the fixed baseline of older catalog models that do not yet meet this requirement. The list may shrink when a compatible result becomes available, but must not grow. Tests reject newly added model manifests without a matching Intelligence Index entry.

package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,9 +127,8 @@
127127
".": "9.0.2",
128128
"glob": "12.0.0"
129129
},
130-
"next": {
131-
"sharp": "0.35.2"
132-
},
130+
"sharp": "0.35.4",
131+
"js-yaml@^3.0.0": "3.15.2",
133132
"postcss": "^8.5.19"
134133
},
135134
"browserslist": [

pnpm-lock.yaml

Lines changed: 154 additions & 144 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pnpm-workspace.yaml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ packages:
44
overrides:
55
# OpenNext 1.20 requires the v8 minifier API.
66
'@node-minify/core': 8.0.5
7-
# Next 16.2.12 still permits vulnerable transitive versions.
8-
'next>sharp': 0.35.2
7+
# Pin patched transitive versions used by Next, Miniflare, and gray-matter.
8+
sharp: 0.35.4
9+
'js-yaml@3': 3.15.2
910
fast-uri: 3.1.6
1011
postcss: ^8.5.19
1112

@@ -19,5 +20,6 @@ allowBuilds:
1920
minimumReleaseAgeExclude:
2021
- fast-uri@3.1.6
2122
- brace-expansion@5.0.9
22-
- js-yaml@3.15.1
23+
- js-yaml@3.15.2
24+
- sharp@0.35.4
2325
- nanoid@3.3.18

tests/model-intelligence-index.test.ts

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -197,20 +197,20 @@ describe('model intelligence index', () => {
197197
point.configuration,
198198
])
199199
).toEqual([
200-
['qwen3-6-max-preview', 41, true, 'Qwen3.6 Max Preview'],
201-
['qwen3-7-max', 47, false, 'Qwen3.7 Max'],
202-
['qwen3-8-max', 58, false, 'Qwen3.8 Max'],
200+
['qwen3-6-max-preview', 28, true, 'Qwen3.6 Max Preview'],
201+
['qwen3-7-max', 30, false, 'Qwen3.7 Max'],
202+
['qwen3-8-max', 40, false, 'Qwen3.8 Max'],
203203
])
204204
expect(qwenSeries[3]?.points.find(point => point.modelId === 'qwen3-8-27b')).toMatchObject({
205205
modelId: 'qwen3-8-27b',
206-
score: 52,
206+
score: 34,
207207
estimated: false,
208208
configuration: 'Qwen3.8 27B (xhigh)',
209209
})
210210
expect(qwenSeries[3]?.points.at(-1)).toMatchObject({
211211
modelId: 'qwen3-8-flash-next',
212-
score: 56,
213-
estimated: false,
212+
score: 42,
213+
estimated: true,
214214
configuration: 'Qwen3.8-Flash-Next',
215215
})
216216
})
@@ -222,7 +222,7 @@ describe('model intelligence index', () => {
222222

223223
expect(grokSeries?.points.at(-1)).toMatchObject({
224224
modelId: 'grok-4-6',
225-
score: 61,
225+
score: 44,
226226
estimated: false,
227227
configuration: 'Grok 4.6 (high)',
228228
})
@@ -245,7 +245,7 @@ describe('model intelligence index', () => {
245245
])
246246
expect(claudeSeries[3]?.points.at(-1)).toMatchObject({
247247
modelId: 'claude-fable-5-1',
248-
score: 66,
248+
score: 53,
249249
estimated: false,
250250
configuration: 'Claude Fable 5.1 (Adaptive Reasoning, Max Effort, Default Fallback)',
251251
})
@@ -267,7 +267,7 @@ describe('model intelligence index', () => {
267267
expect(openAISeries.find(series => series.name === 'GPT (Astra)')?.points).toEqual([
268268
expect.objectContaining({
269269
modelId: 'gpt-6-astra',
270-
score: 61,
270+
score: 53,
271271
estimated: false,
272272
configuration: 'GPT-6 Astra (max)',
273273
}),
@@ -281,7 +281,7 @@ describe('model intelligence index', () => {
281281

282282
expect(museSeries?.points.at(-1)).toMatchObject({
283283
modelId: 'muse-spark-1-3',
284-
score: 62,
284+
score: 48,
285285
estimated: false,
286286
configuration: 'Muse Spark 1.3 (max)',
287287
})
@@ -307,8 +307,8 @@ describe('model intelligence index', () => {
307307
'deepseek-v4-pro',
308308
])
309309
expect(deepSeekSeries[0]?.points.slice(-2).map(point => [point.modelId, point.score])).toEqual([
310-
['deepseek-v4-pro-preview', 45],
311-
['deepseek-v4-pro', 53],
310+
['deepseek-v4-pro-preview', 31],
311+
['deepseek-v4-pro', 36],
312312
])
313313
expect(
314314
deepSeekSeries[1]?.points.map(point => [
@@ -318,9 +318,9 @@ describe('model intelligence index', () => {
318318
point.configuration,
319319
])
320320
).toEqual([
321-
['deepseek-v4-flash-preview', 42, false, 'DeepSeek V4 Flash (Reasoning, Max Effort)'],
322-
['deepseek-v4-flash', 52, false, 'DeepSeek V4 Flash 0731 (max)'],
323-
['deepseek-v4-flash-vision', 51, false, 'DeepSeek V4 Flash Vision (max)'],
321+
['deepseek-v4-flash-preview', 25, false, 'DeepSeek V4 Flash (Reasoning, High Effort)'],
322+
['deepseek-v4-flash', 35, false, 'DeepSeek V4 Flash 0731 (Reasoning, Max Effort)'],
323+
['deepseek-v4-flash-vision', 35, false, 'DeepSeek V4 Flash Vision (Reasoning, Max Effort)'],
324324
])
325325
})
326326

@@ -341,7 +341,7 @@ describe('model intelligence index', () => {
341341
])
342342
expect(geminiSeries[1]?.points.at(-1)).toMatchObject({
343343
modelId: 'gemini-3-8-flash',
344-
score: 59,
344+
score: 41,
345345
estimated: false,
346346
configuration: 'Gemini 3.8 Flash (high)',
347347
})
@@ -503,39 +503,39 @@ describe('model intelligence index', () => {
503503
.map(point => [point.modelId, point.score, point.estimated])
504504

505505
expect(haikuPoints).toEqual([
506-
['claude-haiku-3', 3, true],
507-
['claude-haiku-3-5', 12, true],
508-
['claude-haiku-4-5', 24, true],
506+
['claude-haiku-3', 6, true],
507+
['claude-haiku-3-5', 9, true],
508+
['claude-haiku-4-5', 18, false],
509509
])
510510

511511
expect(
512512
allModelIntelligencePoints
513513
.filter(point => point.modelId.startsWith('deepseek-r1'))
514514
.map(point => [point.modelId, point.score])
515515
).toEqual([
516-
['deepseek-r1', 19],
517-
['deepseek-r1-0528', 20],
516+
['deepseek-r1', 11],
517+
['deepseek-r1-0528', 13],
518518
])
519519

520520
expect(
521521
allModelIntelligencePoints
522522
.filter(point => point.vendor === 'Z.ai')
523523
.map(point => [point.modelId, point.series, point.score])
524524
).toEqual([
525-
['glm-4-5', 'GLM', 20],
526-
['glm-4-5-air', 'GLM Air / Flash', 17],
527-
['glm-4-5v', 'GLM Vision', 7],
528-
['glm-4-6', 'GLM', 23],
525+
['glm-4-5', 'GLM', 13],
526+
['glm-4-5-air', 'GLM Air / Flash', 11],
527+
['glm-4-5v', 'GLM Vision', 8],
528+
['glm-4-6', 'GLM', 19],
529529
['glm-4-6v', 'GLM Vision', 11],
530-
['glm-4-7', 'GLM', 34],
531-
['glm-4-7-flash', 'GLM Air / Flash', 23],
532-
['glm-5', 'GLM', 41],
533-
['glm-5-turbo', 'GLM Turbo', 39],
534-
['glm-5v-turbo', 'GLM Vision', 35],
535-
['glm-5-1', 'GLM', 41],
536-
['glm-5-2', 'GLM', 53],
537-
['glm-5-3', 'GLM', 60],
538-
['glm-5-3-flash', 'GLM Air / Flash', 57],
530+
['glm-4-7', 'GLM', 22],
531+
['glm-4-7-flash', 'GLM Air / Flash', 15],
532+
['glm-5', 'GLM', 28],
533+
['glm-5-turbo', 'GLM Turbo', 27],
534+
['glm-5v-turbo', 'GLM Vision', 23],
535+
['glm-5-1', 'GLM', 27],
536+
['glm-5-2', 'GLM', 39],
537+
['glm-5-3', 'GLM', 45],
538+
['glm-5-3-flash', 'GLM Air / Flash', 42],
539539
])
540540
})
541541

@@ -546,7 +546,7 @@ describe('model intelligence index', () => {
546546
expect(modelIntelligenceMeta.methodologyUrl).toBe(
547547
'https://artificialanalysis.ai/methodology/intelligence-benchmarking'
548548
)
549-
expect(modelIntelligenceMeta.indexVersion).toBe('4.1.1')
549+
expect(modelIntelligenceMeta.indexVersion).toBe('4.3')
550550
expect(modelIntelligenceMeta.observedAt).toMatch(/^\d{4}-\d{2}-\d{2}$/)
551551
})
552552
})

tests/model-price-intelligence-index.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ describe('model price-intelligence index', () => {
9191
)
9292

9393
const hy3 = modelPriceIntelligencePoints.find(point => point.modelId === 'hy3')
94-
expect(hy3).toMatchObject({ inputPrice: 0.14, outputPrice: 0.58, score: 42 })
94+
expect(hy3).toMatchObject({ inputPrice: 0.14, outputPrice: 0.58, score: 26 })
9595
expect(hy3?.blendedPrice).toBeCloseTo(0.184)
9696
})
9797

0 commit comments

Comments
 (0)