mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-07-02 18:43:08 +08:00
feat: add effort support for opencode
This commit is contained in:
@@ -2,8 +2,10 @@ import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
|
||||
import {
|
||||
buildOpenCodeDefinitionFromVerboseModels,
|
||||
buildOpenCodeDefinitionFromIds,
|
||||
parseOpenCodeModelsStdout,
|
||||
parseOpenCodeVerboseModelsStdout,
|
||||
} from '@/modules/providers/list/opencode/opencode-models.provider.js';
|
||||
|
||||
test('OpenCode models provider parses plain CLI output and removes duplicates', () => {
|
||||
@@ -71,3 +73,63 @@ test('OpenCode models provider formats frontend labels from provider-prefixed id
|
||||
},
|
||||
]);
|
||||
});
|
||||
|
||||
test('OpenCode models provider maps verbose model variants to effort options', () => {
|
||||
const models = parseOpenCodeVerboseModelsStdout(`
|
||||
opencode/deepseek-v4-flash-free
|
||||
{
|
||||
"id": "deepseek-v4-flash-free",
|
||||
"providerID": "opencode",
|
||||
"name": "DeepSeek V4 Flash Free",
|
||||
"variants": {
|
||||
"low": {
|
||||
"reasoningEffort": "low"
|
||||
},
|
||||
"high": {
|
||||
"reasoningEffort": "high"
|
||||
}
|
||||
}
|
||||
}
|
||||
anthropic/claude-sonnet-5
|
||||
{
|
||||
"id": "claude-sonnet-5",
|
||||
"providerID": "anthropic",
|
||||
"name": "Claude Sonnet 5",
|
||||
"variants": {
|
||||
"low": {
|
||||
"effort": "low"
|
||||
},
|
||||
"max": {
|
||||
"effort": "max"
|
||||
}
|
||||
}
|
||||
}
|
||||
`);
|
||||
|
||||
const definition = buildOpenCodeDefinitionFromVerboseModels(models);
|
||||
|
||||
assert.deepEqual(definition.OPTIONS, [
|
||||
{
|
||||
value: 'opencode/deepseek-v4-flash-free',
|
||||
label: 'DeepSeek V4 Flash Free',
|
||||
description: 'opencode - opencode/deepseek-v4-flash-free',
|
||||
effort: {
|
||||
values: [
|
||||
{ value: 'low' },
|
||||
{ value: 'high' },
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
value: 'anthropic/claude-sonnet-5',
|
||||
label: 'Claude Sonnet 5',
|
||||
description: 'anthropic - anthropic/claude-sonnet-5',
|
||||
effort: {
|
||||
values: [
|
||||
{ value: 'low' },
|
||||
{ value: 'max' },
|
||||
],
|
||||
},
|
||||
},
|
||||
]);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user