Add Claude Pro/Max, Mistral, Cerebras and OpenRouter connectors

Closes the Anthropic OAuth gap with a native Claude Pro/Max device sign-in
(reusing the OAuth engine) and adds three OpenAI-compatible API-key
providers. Model lists are sourced from the provider registry. A backfill
migration seeds the new providers into existing organizations idempotently.
This commit is contained in:
ZacharyZhang-NY committed 2026-05-29 20:19:01 -04:00
1 parent 49a9f16221
commit 9ce1281054
9 files changed
+213 -20

No files matched your search

@@ -0,0 +1,20 @@
export const additionalConnectorsSchema = `
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, 'claude-pro', 'Claude Pro/Max', 'oauth_pkce', 'claude-sonnet-4-5', 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, 'mistral', 'Mistral', 'api_key', 'mistral-large-latest', 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, 'cerebras', 'Cerebras', 'api_key', 'qwen-3-235b-a22b-instruct-2507', 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, 'openrouter', 'OpenRouter', 'api_key', 'anthropic/claude-sonnet-4.5', null, 0, datetime('now')
from organizations;
insert into schema_migrations(version, name, applied_at)
values (36, 'additional_connectors', datetime('now'));
`;
@@ -34,6 +34,7 @@ import { browserActionMetadataSchema } from "./migrations/032-browser-action-met
import { auditEventImmutabilitySchema } from "./migrations/033-audit-event-immutability";
import { providerAuthSessionsSchema } from "./migrations/034-provider-auth-sessions";
import { taskRunIsolationSchema } from "./migrations/035-task-run-isolation";
import { additionalConnectorsSchema } from "./migrations/036-additional-connectors";
interface Migration {
version: number;
@@ -77,6 +78,7 @@ const MIGRATIONS: Migration[] = [
{ version: 33, name: "audit_event_immutability", sql: auditEventImmutabilitySchema },
{ version: 34, name: "provider_auth_sessions", sql: providerAuthSessionsSchema },
{ version: 35, name: "task_run_isolation", sql: taskRunIsolationSchema },
{ version: 36, name: "additional_connectors", sql: additionalConnectorsSchema },
];
const SCHEMA_VERSION = MIGRATIONS[MIGRATIONS.length - 1].version;