feat(models): add minimax and moonshot providers

This commit is contained in:
William Valentin
2026-02-15 19:18:48 -08:00
parent 94020cb7ea
commit 0470647ee7
11 changed files with 214 additions and 5 deletions
+62
View File
@@ -384,6 +384,68 @@ models:
}
});
it('reports WARN when MiniMax has no available API key sources', async () => {
const originalKey = process.env.MINIMAX_API_KEY;
delete process.env.MINIMAX_API_KEY;
try {
mkdirSync(testDir, { recursive: true });
const configPath = join(testDir, 'minimax-missing.yaml');
writeFileSync(configPath, `
telegram:
bot_token: "test-token"
allowed_chat_ids: [123]
models:
default:
provider: minimax
model: MiniMax-M1
`);
const ctx: DoctorContext = { configPath, dataDir: testDir };
const results = await runChecks(ctx);
const modelCheck = results.find(r => r.label.includes('Model connectivity')) as CheckResult | undefined;
expect(modelCheck?.status).toBe('warn');
expect(modelCheck?.detail).toContain('MINIMAX_API_KEY');
} finally {
if (originalKey) {
process.env.MINIMAX_API_KEY = originalKey;
} else {
delete process.env.MINIMAX_API_KEY;
}
}
});
it('reports WARN when Moonshot has no available API key sources', async () => {
const originalKey = process.env.MOONSHOT_API_KEY;
delete process.env.MOONSHOT_API_KEY;
try {
mkdirSync(testDir, { recursive: true });
const configPath = join(testDir, 'moonshot-missing.yaml');
writeFileSync(configPath, `
telegram:
bot_token: "test-token"
allowed_chat_ids: [123]
models:
default:
provider: moonshot
model: moonshot-v1-8k
`);
const ctx: DoctorContext = { configPath, dataDir: testDir };
const results = await runChecks(ctx);
const modelCheck = results.find(r => r.label.includes('Model connectivity')) as CheckResult | undefined;
expect(modelCheck?.status).toBe('warn');
expect(modelCheck?.detail).toContain('MOONSHOT_API_KEY');
} finally {
if (originalKey) {
process.env.MOONSHOT_API_KEY = originalKey;
} else {
delete process.env.MOONSHOT_API_KEY;
}
}
});
it('reports FAIL when Anthropic auth_mode=oauth has no available auth token sources', async () => {
const originalHome = process.env.HOME;
const originalToken = process.env.ANTHROPIC_AUTH_TOKEN;