feat(model): update Kimi model references from k2.5 to k2.6 across the application (#897)

This commit is contained in:
Haze
2026-04-23 14:23:29 +08:00
committed by GitHub
parent d0c79f6a0a
commit 956e943072
9 changed files with 35 additions and 35 deletions

View File

@@ -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 },

View File

@@ -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 },

View File

@@ -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,

View File

@@ -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,

View File

@@ -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,
});

View File

@@ -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',
});

View File

@@ -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' }],
},
});
});

View File

@@ -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',

View File

@@ -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,