Kimi and Kimi CN join the provider catalog: OpenAI-compatible endpoints, verified live
- kimi -> https://api.moonshot.ai/v1 (platform.kimi.ai keys), kimi-cn -> https://api.moonshot.cn/v1 (platform.kimi.com keys) - Adapters via openAiCompatibleAdapter; agent loop via makeChatCompletionsTurn; live model listing - Curated fallback models per current docs: kimi-k2.7-code, kimi-k2.7-code-highspeed, kimi-k2.6 - Migration 056 seeds both providers (disabled) into existing organizations - Both endpoints probed live: OpenAI-style 401 error envelope confirmed
This commit is contained in:
1 parent
c30cbce459
commit
813276de71
9 files changed
+60
-2
No files matched your search
@@ -0,0 +1,12 @@
|
||||
export const kimiProvidersSchema = `
|
||||
insert or ignore into providers(id, org_id, provider_key, label, auth_type, model, credential_id, enabled, created_at)
|
||||
select 'prv_' || lower(hex(randomblob(16))), organizations.id, 'kimi', 'Kimi', 'api_key', 'kimi-k2.7-code', null, 0, datetime('now')
|
||||
from organizations;
|
||||
|
||||
insert or ignore into providers(id, org_id, provider_key, label, auth_type, model, credential_id, enabled, created_at)
|
||||
select 'prv_' || lower(hex(randomblob(16))), organizations.id, 'kimi-cn', 'Kimi CN', 'api_key', 'kimi-k2.7-code', null, 0, datetime('now')
|
||||
from organizations;
|
||||
|
||||
insert into schema_migrations(version, name, applied_at)
|
||||
values (56, 'kimi_providers', datetime('now'));
|
||||
`;
|
||||
@@ -54,6 +54,7 @@ import { avatarImagesSchema } from "./migrations/052-avatar-images";
|
||||
import { autonomousPauseSchema } from "./migrations/053-autonomous-pause";
|
||||
import { closeStaleWakeTasksSchema } from "./migrations/054-close-stale-wake-tasks";
|
||||
import { taskOriginSchema } from "./migrations/055-task-origin";
|
||||
import { kimiProvidersSchema } from "./migrations/056-kimi-providers";
|
||||
|
||||
interface Migration {
|
||||
version: number;
|
||||
@@ -117,6 +118,7 @@ const MIGRATIONS: Migration[] = [
|
||||
{ version: 53, name: "autonomous_pause", sql: autonomousPauseSchema },
|
||||
{ version: 54, name: "close_stale_wake_tasks", sql: closeStaleWakeTasksSchema },
|
||||
{ version: 55, name: "task_origin", sql: taskOriginSchema },
|
||||
{ version: 56, name: "kimi_providers", sql: kimiProvidersSchema },
|
||||
];
|
||||
|
||||
const SCHEMA_VERSION = MIGRATIONS[MIGRATIONS.length - 1].version;
|
||||
|
||||
@@ -210,6 +210,18 @@ export const providerAdapters: ProviderAdapterRegistry = {
|
||||
endpoint: "https://openrouter.ai/api/v1/chat/completions",
|
||||
healthUrl: "https://openrouter.ai/api/v1/models",
|
||||
}),
|
||||
kimi: openAiCompatibleAdapter({
|
||||
providerKey: "kimi",
|
||||
label: "Kimi",
|
||||
endpoint: "https://api.moonshot.ai/v1/chat/completions",
|
||||
healthUrl: "https://api.moonshot.ai/v1/models",
|
||||
}),
|
||||
"kimi-cn": openAiCompatibleAdapter({
|
||||
providerKey: "kimi-cn",
|
||||
label: "Kimi CN",
|
||||
endpoint: "https://api.moonshot.cn/v1/chat/completions",
|
||||
healthUrl: "https://api.moonshot.cn/v1/models",
|
||||
}),
|
||||
"github-copilot": browserTokenAdapter("github-copilot", PROVIDER_AUTH_TYPE.OAUTH_PKCE),
|
||||
"google-antigravity": browserTokenAdapter("google-antigravity", PROVIDER_AUTH_TYPE.OAUTH_PKCE),
|
||||
"gpt-account": browserTokenAdapter("gpt-account", PROVIDER_AUTH_TYPE.ACCOUNT_SUBSCRIPTION),
|
||||
|
||||
@@ -23,6 +23,8 @@ const TURNS: Record<string, ToolTurnFn> = {
|
||||
mistral: makeChatCompletionsTurn("https://api.mistral.ai/v1/chat/completions", "Mistral"),
|
||||
cerebras: makeChatCompletionsTurn("https://api.cerebras.ai/v1/chat/completions", "Cerebras"),
|
||||
openrouter: makeChatCompletionsTurn("https://openrouter.ai/api/v1/chat/completions", "OpenRouter"),
|
||||
kimi: makeChatCompletionsTurn("https://api.moonshot.ai/v1/chat/completions", "Kimi"),
|
||||
"kimi-cn": makeChatCompletionsTurn("https://api.moonshot.cn/v1/chat/completions", "Kimi CN"),
|
||||
"gpt-account": runCodexTurn,
|
||||
"github-copilot": runCopilotTurn,
|
||||
"google-antigravity": runAntigravityTurn,
|
||||
|
||||
Reference in new issue
Block a user