Files
OpenCode 68a9071cf1 feat: reconcile local master with origin (exa/hot-platform hunters, leaks ledger, latest results)
Local branch had diverged from origin/master (sibling commits on the same base). Rewrote local history linearly on top of origin/master, folding in all local content: exa/hot-platform discovery hunters, leaks ledger, nightly sweep orchestrator, updated .gitignore and skill docs, plus the latest hunt output and vault state. Remote-only files (vault keys, channel scripts) were restored rather than dropped, so the resulting tree is a full union of both sides.
2026-08-07 12:53:47 +08:00

1 line
4.6 KiB
JSON

{"repo": "chengrui24/brawlclub", "files": {"test/arena/model-registry.test.js": {"ba3f0f3780653ce46d8d6e24004a3b8b98225ee8": {"t": 1786068266.227073, "n": 4370, "h": "67a169c470d154e6", "c": "'use strict';\n\nconst { describe, it } = require('node:test');\nconst assert = require('node:assert/strict');\nconst {\n assessModelRegistration,\n isModelAllowedForEngine,\n assertModelSelectableForEngine,\n assertLlmModelSelectableForEngine,\n filterSelectableModels,\n serializeSelectableLlmModels,\n applyModelRegistrationOnSave,\n} = require('../../lib/arena/model-registry');\n\nconst baseModel = {\n id: 'deepseek-r1',\n name: 'DeepSeek R1',\n providerId: 'deepseek',\n providerName: 'DeepSeek',\n enabled: true,\n providerPreset: 'deepseek',\n upstreamModelId: 'deepseek-reasoner',\n providerModel: 'deepseek/deepseek-reasoner',\n apiKeyEnv: 'DEEPSEEK_API_KEY',\n scenarioAccess: { maze: true, horse: true, blackjack: true },\n health: { status: 'unknown', lastCheckedAt: null, message: '', latencyMs: null },\n};\n\ndescribe('model-registry', () => {\n it('selectable when enabled, complete, and api key env is set', () => {\n const assessment = assessModelRegistration(baseModel, { DEEPSEEK_API_KEY: 'sk-test' });\n assert.equal(assessment.selectable, true);\n assert.deepEqual(assessment.issues, []);\n });\n\n it('not selectable without api key env value', () => {\n const assessment = assessModelRegistration(baseModel, {});\n assert.equal(assessment.selectable, false);\n assert.ok(assessment.issues.includes('missing_api_key'));\n });\n\n it('not selectable without api key even when health check passed', () => {\n const model = { ...baseModel, health: { status: 'ok', lastCheckedAt: 'x', message: 'ok', latencyMs: 1 } };\n const assessment = assessModelRegistration(model, {});\n assert.equal(assessment.selectable, false);\n assert.ok(assessment.issues.includes('missing_api_key'));\n });\n\n it('assertModelSelectableForEngine throws 422 when misconfigured', () => {\n assert.throws(\n () => assertModelSelectableForEngine(baseModel, 'js_bomberman', {}),\n (error) => error.statusCode === 422 && error.code === 'model_not_selectable',\n );\n });\n\n it('filterSelectableModels excludes disabled models', () => {\n const disabled = { ...baseModel, id: 'off', enabled: false };\n const env = { DEEPSEEK_API_KEY: 'sk' };\n const bomberman = filterSelectableModels([baseModel, disabled], { engine: 'js_bomberman', env });\n assert.equal(bomberman.length, 1);\n assert.equal(bomberman[0].id, 'deepseek-r1');\n });\n\n it('does not offer selectable models for retired Pong', () => {\n assert.equal(isModelAllowedForEngine({ enabled: true }, 'js_pong'), false);\n const env = { DEEPSEEK_API_KEY: 'sk' };\n const pong = filterSelectableModels([baseModel], { engine: 'js_pong', env });\n assert.equal(pong.length, 0);\n });\n\n it('allows selectable LLMs for Texas Holdem', () => {\n assert.equal(isModelAllowedForEngine({ enabled: true }, 'js_texas_holdem'), true);\n const env = { DEEPSEEK_API_KEY: 'sk' };\n const texasHoldem = filterSelectableModels([baseModel], { engine: 'js_texas_holdem', env });\n assert.equal(texasHoldem.length, 1);\n assert.equal(texasHoldem[0].id, 'deepseek-r1');\n });\n\n it('applyModelRegistrationOnSave disables new models without keys', () => {\n const model = { ...baseModel, id: 'new-model' };\n applyModelRegistrationOnSave(model, { env: {}, isNew: true });\n assert.equal(model.enabled, false);\n assert.equal(model.health.status, 'misconfigured');\n });\n\n it('assertLlmModelSelectableForEngine resolves by llmModel', () => {\n const models = [{\n ...baseModel,\n id: 'deepseek-chat',\n routeType: 'llm',\n providerModel: 'deepseek/deepseek-chat',\n llmModel: 'deepseek/deepseek-chat',\n }];\n assert.doesNotThrow(() => assertLlmModelSelectableForEngine('deepseek/deepseek-chat', models, 'js_bomberman', {\n DEEPSEEK_API_KEY: 'sk',\n }));\n });\n\n it('serializeSelectableLlmModels only includes routeType llm', () => {\n const models = [\n {\n ...baseModel,\n id: 'deepseek-chat',\n routeType: 'llm',\n llmModel: 'deepseek/deepseek-chat',\n providerModel: 'deepseek/deepseek-chat',\n },\n { ...baseModel, id: 'legacy-wrap', providerModel: 'deepseek/deepseek-chat' },\n ];\n const out = serializeSelectableLlmModels(models, { engine: 'js_bomberman', env: { DEEPSEEK_API_KEY: 'sk' } });\n assert.equal(out.length, 1);\n assert.equal(out[0].llmModel, 'deepseek/deepseek-chat');\n });\n});\n"}}}}