feat(model): update Kimi model references from k2.5 to k2.6 across the application (#897)
This commit is contained in:
@@ -121,7 +121,7 @@ export const PROVIDER_DEFINITIONS: ProviderDefinition[] = [
|
||||
model: 'Kimi',
|
||||
requiresApiKey: true,
|
||||
defaultBaseUrl: 'https://api.moonshot.cn/v1',
|
||||
defaultModelId: 'kimi-k2.5',
|
||||
defaultModelId: 'kimi-k2.6',
|
||||
category: 'official',
|
||||
envVar: 'MOONSHOT_API_KEY',
|
||||
supportedAuthModes: ['api_key'],
|
||||
@@ -133,8 +133,8 @@ export const PROVIDER_DEFINITIONS: ProviderDefinition[] = [
|
||||
apiKeyEnv: 'MOONSHOT_API_KEY',
|
||||
models: [
|
||||
{
|
||||
id: 'kimi-k2.5',
|
||||
name: 'Kimi K2.5',
|
||||
id: 'kimi-k2.6',
|
||||
name: 'Kimi K2.6',
|
||||
reasoning: false,
|
||||
input: ['text'],
|
||||
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
||||
@@ -152,7 +152,7 @@ export const PROVIDER_DEFINITIONS: ProviderDefinition[] = [
|
||||
model: 'Kimi',
|
||||
requiresApiKey: true,
|
||||
defaultBaseUrl: 'https://api.moonshot.ai/v1',
|
||||
defaultModelId: 'kimi-k2.5',
|
||||
defaultModelId: 'kimi-k2.6',
|
||||
category: 'official',
|
||||
envVar: 'MOONSHOT_GLOBAL_API_KEY',
|
||||
supportedAuthModes: ['api_key'],
|
||||
@@ -164,8 +164,8 @@ export const PROVIDER_DEFINITIONS: ProviderDefinition[] = [
|
||||
apiKeyEnv: 'MOONSHOT_GLOBAL_API_KEY',
|
||||
models: [
|
||||
{
|
||||
id: 'kimi-k2.5',
|
||||
name: 'Kimi K2.5',
|
||||
id: 'kimi-k2.6',
|
||||
name: 'Kimi K2.6',
|
||||
reasoning: false,
|
||||
input: ['text'],
|
||||
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
||||
|
||||
@@ -173,8 +173,8 @@ export const PROVIDER_TYPE_INFO: ProviderTypeInfo[] = [
|
||||
},
|
||||
{ id: 'openrouter', name: 'OpenRouter', icon: '🌐', placeholder: 'sk-or-v1-...', model: 'Multi-Model', requiresApiKey: true, showModelId: true, modelIdPlaceholder: 'openai/gpt-5.4', defaultModelId: 'openai/gpt-5.4', docsUrl: 'https://openrouter.ai/models' },
|
||||
{ id: 'minimax-portal-cn', name: 'MiniMax (CN)', icon: '☁️', placeholder: 'sk-...', model: 'MiniMax', requiresApiKey: false, isOAuth: true, supportsApiKey: true, defaultModelId: 'MiniMax-M2.7', showModelId: true, showModelIdInDevModeOnly: true, modelIdPlaceholder: 'MiniMax-M2.7', apiKeyUrl: 'https://platform.minimaxi.com/' },
|
||||
{ id: 'moonshot', name: 'Moonshot (CN)', icon: '🌙', placeholder: 'sk-...', model: 'Kimi', requiresApiKey: true, defaultBaseUrl: 'https://api.moonshot.cn/v1', defaultModelId: 'kimi-k2.5', docsUrl: 'https://platform.moonshot.cn/' },
|
||||
{ id: 'moonshot-global', name: 'Moonshot (Global)', icon: '🌙', placeholder: 'sk-...', model: 'Kimi', requiresApiKey: true, defaultBaseUrl: 'https://api.moonshot.ai/v1', defaultModelId: 'kimi-k2.5', docsUrl: 'https://platform.moonshot.ai/' },
|
||||
{ id: 'moonshot', name: 'Moonshot (CN)', icon: '🌙', placeholder: 'sk-...', model: 'Kimi', requiresApiKey: true, defaultBaseUrl: 'https://api.moonshot.cn/v1', defaultModelId: 'kimi-k2.6', docsUrl: 'https://platform.moonshot.cn/' },
|
||||
{ id: 'moonshot-global', name: 'Moonshot (Global)', icon: '🌙', placeholder: 'sk-...', model: 'Kimi', requiresApiKey: true, defaultBaseUrl: 'https://api.moonshot.ai/v1', defaultModelId: 'kimi-k2.6', docsUrl: 'https://platform.moonshot.ai/' },
|
||||
{ id: 'siliconflow', name: 'SiliconFlow (CN)', icon: '🌊', placeholder: 'sk-...', model: 'Multi-Model', requiresApiKey: true, defaultBaseUrl: 'https://api.siliconflow.cn/v1', showModelId: true, showModelIdInDevModeOnly: true, modelIdPlaceholder: 'deepseek-ai/DeepSeek-V3', defaultModelId: 'deepseek-ai/DeepSeek-V3', docsUrl: 'https://docs.siliconflow.cn/cn/userguide/introduction' },
|
||||
{ id: 'minimax-portal', name: 'MiniMax (Global)', icon: '☁️', placeholder: 'sk-...', model: 'MiniMax', requiresApiKey: false, isOAuth: true, supportsApiKey: true, defaultModelId: 'MiniMax-M2.7', showModelId: true, showModelIdInDevModeOnly: true, modelIdPlaceholder: 'MiniMax-M2.7', apiKeyUrl: 'https://platform.minimax.io' },
|
||||
{ id: 'modelstudio', name: 'Model Studio', icon: '☁️', placeholder: 'sk-...', model: 'Qwen', requiresApiKey: true, defaultBaseUrl: 'https://coding.dashscope.aliyuncs.com/v1', showBaseUrl: true, defaultModelId: 'qwen3.5-plus', showModelId: true, showModelIdInDevModeOnly: true, modelIdPlaceholder: 'qwen3.5-plus', apiKeyUrl: 'https://bailian.console.aliyun.com/', hidden: true },
|
||||
|
||||
@@ -11,7 +11,7 @@ async function seedTestProvider(page: Parameters<typeof completeSetup>[0]): Prom
|
||||
name: providerLabel,
|
||||
type: 'moonshot',
|
||||
baseUrl: 'https://api.moonshot.cn/v1',
|
||||
model: 'kimi-k2.5',
|
||||
model: 'kimi-k2.6',
|
||||
enabled: true,
|
||||
createdAt: now,
|
||||
updatedAt: now,
|
||||
|
||||
@@ -23,7 +23,7 @@ async function seedTokenUsageTranscripts(homeDir: string): Promise<void> {
|
||||
timestamp: zeroTimestamp,
|
||||
message: {
|
||||
role: 'assistant',
|
||||
model: 'kimi-k2.5',
|
||||
model: 'kimi-k2.6',
|
||||
provider: 'kimi',
|
||||
usage: {
|
||||
total_tokens: 0,
|
||||
@@ -44,7 +44,7 @@ async function seedTokenUsageTranscripts(homeDir: string): Promise<void> {
|
||||
timestamp: nonzeroTimestamp,
|
||||
message: {
|
||||
role: 'assistant',
|
||||
model: 'kimi-k2.5',
|
||||
model: 'kimi-k2.6',
|
||||
provider: 'kimi',
|
||||
usage: {
|
||||
total_tokens: 27,
|
||||
|
||||
@@ -107,7 +107,7 @@ describe('agent config lifecycle', () => {
|
||||
agents: {
|
||||
defaults: {
|
||||
model: {
|
||||
primary: 'moonshot/kimi-k2.5',
|
||||
primary: 'moonshot/kimi-k2.6',
|
||||
},
|
||||
},
|
||||
list: [
|
||||
@@ -122,12 +122,12 @@ describe('agent config lifecycle', () => {
|
||||
const main = snapshot.agents.find((agent) => agent.id === 'main');
|
||||
const coder = snapshot.agents.find((agent) => agent.id === 'coder');
|
||||
|
||||
expect(snapshot.defaultModelRef).toBe('moonshot/kimi-k2.5');
|
||||
expect(snapshot.defaultModelRef).toBe('moonshot/kimi-k2.6');
|
||||
expect(main).toMatchObject({
|
||||
modelRef: 'moonshot/kimi-k2.5',
|
||||
modelRef: 'moonshot/kimi-k2.6',
|
||||
overrideModelRef: null,
|
||||
inheritedModel: true,
|
||||
modelDisplay: 'kimi-k2.5',
|
||||
modelDisplay: 'kimi-k2.6',
|
||||
});
|
||||
expect(coder).toMatchObject({
|
||||
modelRef: 'ark/ark-code-latest',
|
||||
@@ -142,7 +142,7 @@ describe('agent config lifecycle', () => {
|
||||
agents: {
|
||||
defaults: {
|
||||
model: {
|
||||
primary: 'moonshot/kimi-k2.5',
|
||||
primary: 'moonshot/kimi-k2.6',
|
||||
},
|
||||
},
|
||||
list: [
|
||||
@@ -177,7 +177,7 @@ describe('agent config lifecycle', () => {
|
||||
snapshot = await listAgentsSnapshot();
|
||||
snapshotCoder = snapshot.agents.find((agent) => agent.id === 'coder');
|
||||
expect(snapshotCoder).toMatchObject({
|
||||
modelRef: 'moonshot/kimi-k2.5',
|
||||
modelRef: 'moonshot/kimi-k2.6',
|
||||
overrideModelRef: null,
|
||||
inheritedModel: true,
|
||||
});
|
||||
|
||||
@@ -513,7 +513,7 @@ describe('syncProviderConfigToOpenClaw', () => {
|
||||
|
||||
const { syncProviderConfigToOpenClaw } = await import('@electron/utils/openclaw-auth');
|
||||
|
||||
await syncProviderConfigToOpenClaw('moonshot', 'kimi-k2.5', {
|
||||
await syncProviderConfigToOpenClaw('moonshot', 'kimi-k2.6', {
|
||||
baseUrl: 'https://api.moonshot.cn/v1',
|
||||
api: 'openai-completions',
|
||||
});
|
||||
@@ -538,7 +538,7 @@ describe('syncProviderConfigToOpenClaw', () => {
|
||||
|
||||
const { syncProviderConfigToOpenClaw } = await import('@electron/utils/openclaw-auth');
|
||||
|
||||
await syncProviderConfigToOpenClaw('moonshot', 'kimi-k2.5', {
|
||||
await syncProviderConfigToOpenClaw('moonshot', 'kimi-k2.6', {
|
||||
baseUrl: 'https://api.moonshot.cn/v1',
|
||||
api: 'openai-completions',
|
||||
});
|
||||
|
||||
@@ -16,8 +16,8 @@ function providerConfig(overrides: Partial<ProviderConfig>): ProviderConfig {
|
||||
|
||||
describe('provider-model-sync', () => {
|
||||
it('extracts model ID from provider/model refs', () => {
|
||||
expect(getModelIdFromRef('moonshot/kimi-k2.5', 'moonshot')).toBe('kimi-k2.5');
|
||||
expect(getModelIdFromRef('kimi-k2.5', 'moonshot')).toBe('kimi-k2.5');
|
||||
expect(getModelIdFromRef('moonshot/kimi-k2.6', 'moonshot')).toBe('kimi-k2.6');
|
||||
expect(getModelIdFromRef('kimi-k2.6', 'moonshot')).toBe('kimi-k2.6');
|
||||
expect(getModelIdFromRef(undefined, 'moonshot')).toBeUndefined();
|
||||
});
|
||||
|
||||
@@ -25,7 +25,7 @@ describe('provider-model-sync', () => {
|
||||
const payload = buildNonOAuthAgentProviderUpdate(
|
||||
providerConfig({ type: 'moonshot', id: 'moonshot' }),
|
||||
'moonshot',
|
||||
'moonshot/kimi-k2.5',
|
||||
'moonshot/kimi-k2.6',
|
||||
);
|
||||
|
||||
expect(payload).toEqual({
|
||||
@@ -34,7 +34,7 @@ describe('provider-model-sync', () => {
|
||||
baseUrl: 'https://api.moonshot.cn/v1',
|
||||
api: 'openai-completions',
|
||||
apiKey: 'MOONSHOT_API_KEY',
|
||||
models: [{ id: 'kimi-k2.5', name: 'kimi-k2.5' }],
|
||||
models: [{ id: 'kimi-k2.6', name: 'kimi-k2.6' }],
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
@@ -84,7 +84,7 @@ function createProvider(overrides: Partial<ProviderConfig> = {}): ProviderConfig
|
||||
id: 'moonshot',
|
||||
name: 'Moonshot',
|
||||
type: 'moonshot',
|
||||
model: 'kimi-k2.5',
|
||||
model: 'kimi-k2.6',
|
||||
enabled: true,
|
||||
createdAt: '2026-03-14T00:00:00.000Z',
|
||||
updatedAt: '2026-03-14T00:00:00.000Z',
|
||||
@@ -109,7 +109,7 @@ describe('provider-runtime-sync refresh strategy', () => {
|
||||
mocks.getApiKey.mockResolvedValue('sk-test');
|
||||
mocks.getDefaultProvider.mockResolvedValue('moonshot');
|
||||
mocks.getProvider.mockResolvedValue(createProvider());
|
||||
mocks.getProviderDefaultModel.mockReturnValue('kimi-k2.5');
|
||||
mocks.getProviderDefaultModel.mockReturnValue('kimi-k2.6');
|
||||
mocks.getProviderConfig.mockReturnValue({
|
||||
api: 'openai-completions',
|
||||
baseUrl: 'https://api.moonshot.cn/v1',
|
||||
|
||||
@@ -109,7 +109,7 @@ describe('parseUsageEntriesFromJsonl', () => {
|
||||
timestamp: '2026-03-10T03:00:00.000Z',
|
||||
message: {
|
||||
role: 'assistant',
|
||||
model: 'kimi-k2.5',
|
||||
model: 'kimi-k2.6',
|
||||
provider: 'moonshot',
|
||||
usage: {
|
||||
total: 0,
|
||||
@@ -123,7 +123,7 @@ describe('parseUsageEntriesFromJsonl', () => {
|
||||
timestamp: '2026-03-10T03:00:00.000Z',
|
||||
sessionId: 'abc',
|
||||
agentId: 'default',
|
||||
model: 'kimi-k2.5',
|
||||
model: 'kimi-k2.6',
|
||||
provider: 'moonshot',
|
||||
usageStatus: 'available',
|
||||
inputTokens: 0,
|
||||
@@ -143,7 +143,7 @@ describe('parseUsageEntriesFromJsonl', () => {
|
||||
timestamp: '2026-03-10T03:10:00.000Z',
|
||||
message: {
|
||||
role: 'assistant',
|
||||
model: 'kimi-k2.5',
|
||||
model: 'kimi-k2.6',
|
||||
provider: 'moonshot',
|
||||
usage: {
|
||||
input_tokens: 12,
|
||||
@@ -161,7 +161,7 @@ describe('parseUsageEntriesFromJsonl', () => {
|
||||
timestamp: '2026-03-10T03:10:00.000Z',
|
||||
sessionId: 'abc',
|
||||
agentId: 'default',
|
||||
model: 'kimi-k2.5',
|
||||
model: 'kimi-k2.6',
|
||||
provider: 'moonshot',
|
||||
usageStatus: 'available',
|
||||
inputTokens: 12,
|
||||
@@ -254,7 +254,7 @@ describe('parseUsageEntriesFromJsonl', () => {
|
||||
timestamp: '2026-03-10T02:20:04.057Z',
|
||||
message: {
|
||||
role: 'assistant',
|
||||
model: 'kimi-k2.5',
|
||||
model: 'kimi-k2.6',
|
||||
provider: 'moonshot',
|
||||
content: [{ type: 'text', text: '这是一条测试回复内容。' }],
|
||||
usage: {
|
||||
@@ -269,7 +269,7 @@ describe('parseUsageEntriesFromJsonl', () => {
|
||||
timestamp: '2026-03-10T02:20:04.057Z',
|
||||
sessionId: 'abc',
|
||||
agentId: 'default',
|
||||
model: 'kimi-k2.5',
|
||||
model: 'kimi-k2.6',
|
||||
provider: 'moonshot',
|
||||
usageStatus: 'available',
|
||||
content: '这是一条测试回复内容。',
|
||||
@@ -328,7 +328,7 @@ describe('parseUsageEntriesFromJsonl', () => {
|
||||
timestamp: '2026-03-10T03:30:00.000Z',
|
||||
message: {
|
||||
role: 'assistant',
|
||||
model: 'kimi-k2.5',
|
||||
model: 'kimi-k2.6',
|
||||
provider: 'moonshot',
|
||||
usage: { notes: 'tool call' },
|
||||
},
|
||||
@@ -340,7 +340,7 @@ describe('parseUsageEntriesFromJsonl', () => {
|
||||
timestamp: '2026-03-10T03:30:00.000Z',
|
||||
sessionId: 'abc',
|
||||
agentId: 'default',
|
||||
model: 'kimi-k2.5',
|
||||
model: 'kimi-k2.6',
|
||||
provider: 'moonshot',
|
||||
usageStatus: 'missing',
|
||||
inputTokens: 0,
|
||||
@@ -360,7 +360,7 @@ describe('parseUsageEntriesFromJsonl', () => {
|
||||
timestamp: '2026-03-10T03:40:00.000Z',
|
||||
message: {
|
||||
role: 'assistant',
|
||||
model: 'kimi-k2.5',
|
||||
model: 'kimi-k2.6',
|
||||
provider: 'moonshot',
|
||||
usage: 'invalid',
|
||||
},
|
||||
@@ -372,7 +372,7 @@ describe('parseUsageEntriesFromJsonl', () => {
|
||||
timestamp: '2026-03-10T03:40:00.000Z',
|
||||
sessionId: 'abc',
|
||||
agentId: 'default',
|
||||
model: 'kimi-k2.5',
|
||||
model: 'kimi-k2.6',
|
||||
provider: 'moonshot',
|
||||
usageStatus: 'error',
|
||||
inputTokens: 0,
|
||||
|
||||
Reference in New Issue
Block a user