fix(data): complete verified contracts and source maintenance (#114)

This commit is contained in:
2026-10-03 03:49:55 -07:00
committed by GitHub
parent 647d6f0cfd
commit 642985e819
208 changed files with 5313 additions and 2285 deletions

View File

@@ -0,0 +1,47 @@
import { test } from 'node:test'
import assert from 'node:assert/strict'
import { readFileSync, readdirSync } from 'node:fs'
import { fileURLToPath } from 'node:url'
import { join } from 'node:path'
import { parseSourcePage } from '../scripts/validate-sources.mjs'
const root = fileURLToPath(new URL('../', import.meta.url))
const read = path => JSON.parse(readFileSync(join(root, path), 'utf8'))
test('Kimi domestic token prices remain distinct from write TTL and subscription prices', () => {
const provider = read('compute/providers/moonshot.json')
const model = provider.models.find(item => item.modelName === 'kimi-k3')
assert.equal(provider.priceCurrency, 'CNY')
assert.deepEqual([model.inputPrice, model.outputPrice, model.extra.cacheHitPrice], [20, 100, 2])
assert.equal(model.maxOutputTokens, 1048576)
assert.match(model.extra.pricingNotes, /TTL 5min 20, TTL 1h 40/)
const page = parseSourcePage(readFileSync(join(root, 'docs/model-sources/providers/moonshot/models/kimi-k3.md'), 'utf8'))
const proof = page.records.find(item => item.config === 'compute/providers/moonshot.json').fieldSources
for (const field of ['inputPrice', 'outputPrice', 'extra.cacheHitPrice']) assert.ok(proof.some(item => item.field === field && item.source === 'kimi-pricing'))
})
test('Xiaomi normal API prices do not use batch rates or ASR duration as token prices', () => {
const provider = read('compute/providers/xiaomi.json')
const old = provider.models.find(item => item.modelName === 'mimo-v2.5-pro')
assert.deepEqual([old.inputPrice, old.outputPrice, old.extra.cachedInputPrice], [3, 6, 0.025])
const asr = provider.models.find(item => item.modelName === 'mimo-v2.5-asr')
assert.equal(asr.inputPrice, undefined)
assert.equal(asr.outputPrice, undefined)
const fast = provider.models.find(item => item.modelName === 'mimo-v2.6-pro-ultraspeed')
assert.deepEqual([fast.inputPrice, fast.outputPrice], [30, 60])
})
test('Baidu Coding Plan does not inherit native ERNIE vision or obsolete quota multipliers', () => {
const plan = read('compute/coding-plans/baidu-coding.json')
assert.equal(plan.models.some(item => item.capabilities?.includes('vision')), false)
const glm = plan.models.find(item => item.modelName === 'glm-5.1')
assert.match(glm.description, /高峰抵扣 ×4 \/ 低峰 ×3/)
assert.ok(read('compute/providers/baidu.json').models.find(item => item.modelName === 'ernie-5.0').capabilities.includes('vision'))
})
test('JavaScript shell pages cannot silently become verified Volcengine parameters', () => {
const directory = join(root, 'docs/model-sources/providers/volcengine/models')
for (const file of readdirSync(directory)) {
const page = parseSourcePage(readFileSync(join(directory, file), 'utf8'))
for (const record of page.records) {
assert.equal(record.status, 'pending')
assert.deepEqual(record.fieldSources, [])
}
}
})