mirror of
https://github.com/MoonshotAI/kimi-code.git
synced 2026-08-19 13:45:28 +00:00
* feat(oauth): parse support_efforts/default_effort in custom registry import - parse support_efforts / default_effort from api.json model entries - map them onto model aliases as supportEfforts / defaultEffort - treat both fields as upstream-owned in CUSTOM_REGISTRY_MODEL_FIELDS so refreshes sync and stale values are dropped
93 lines
2.5 KiB
TypeScript
93 lines
2.5 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
|
|
import {
|
|
CUSTOM_REGISTRY_MODEL_FIELDS,
|
|
MANAGED_KIMI_MODEL_FIELDS,
|
|
mergeRefreshedModelAlias,
|
|
} from '../src/model-alias-merge';
|
|
|
|
describe('mergeRefreshedModelAlias', () => {
|
|
it('preserves overrides while refreshing managed fields', () => {
|
|
const merged = mergeRefreshedModelAlias(
|
|
{
|
|
provider: 'managed:kimi-code',
|
|
model: 'kimi-k2',
|
|
maxContextSize: 262144,
|
|
supportEfforts: ['low'],
|
|
overrides: { supportEfforts: ['low'] },
|
|
},
|
|
{
|
|
provider: 'managed:kimi-code',
|
|
model: 'kimi-k2',
|
|
maxContextSize: 262144,
|
|
supportEfforts: ['low', 'high', 'max'],
|
|
},
|
|
MANAGED_KIMI_MODEL_FIELDS,
|
|
);
|
|
|
|
expect(merged.supportEfforts).toEqual(['low', 'high', 'max']);
|
|
expect(merged.overrides).toEqual({ supportEfforts: ['low'] });
|
|
});
|
|
|
|
it('drops managed top-level fields when upstream stops declaring them', () => {
|
|
const merged = mergeRefreshedModelAlias(
|
|
{
|
|
provider: 'managed:kimi-code',
|
|
model: 'kimi-k2',
|
|
maxContextSize: 262144,
|
|
supportEfforts: ['low'],
|
|
},
|
|
{
|
|
provider: 'managed:kimi-code',
|
|
model: 'kimi-k2',
|
|
maxContextSize: 262144,
|
|
},
|
|
MANAGED_KIMI_MODEL_FIELDS,
|
|
);
|
|
|
|
expect(merged.supportEfforts).toBeUndefined();
|
|
});
|
|
|
|
it('refreshes custom-registry supportEfforts from upstream', () => {
|
|
const merged = mergeRefreshedModelAlias(
|
|
{
|
|
provider: 'registry',
|
|
model: 'gpt-5.5',
|
|
maxContextSize: 131072,
|
|
supportEfforts: ['low', 'high'],
|
|
},
|
|
{
|
|
provider: 'registry',
|
|
model: 'gpt-5.5',
|
|
maxContextSize: 131072,
|
|
supportEfforts: ['low', 'high', 'max'],
|
|
defaultEffort: 'high',
|
|
},
|
|
CUSTOM_REGISTRY_MODEL_FIELDS,
|
|
);
|
|
|
|
expect(merged.supportEfforts).toEqual(['low', 'high', 'max']);
|
|
expect(merged.defaultEffort).toBe('high');
|
|
});
|
|
|
|
it('drops custom-registry effort fields when upstream stops declaring them', () => {
|
|
const merged = mergeRefreshedModelAlias(
|
|
{
|
|
provider: 'registry',
|
|
model: 'gpt-5.5',
|
|
maxContextSize: 131072,
|
|
supportEfforts: ['low', 'high'],
|
|
defaultEffort: 'high',
|
|
},
|
|
{
|
|
provider: 'registry',
|
|
model: 'gpt-5.5',
|
|
maxContextSize: 131072,
|
|
},
|
|
CUSTOM_REGISTRY_MODEL_FIELDS,
|
|
);
|
|
|
|
expect(merged.supportEfforts).toBeUndefined();
|
|
expect(merged.defaultEffort).toBeUndefined();
|
|
});
|
|
});
|