1import { isProviderDriverKind } from "@t3tools/contracts";
2import { acpRegistryClient } from "@t3tools/provider-acp-registry/client";
3import { makeProviderClientRegistry } from "@t3tools/provider-core/client";
4import { cursorClient } from "@t3tools/provider-cursor/client";
5import { grokClient } from "@t3tools/provider-grok/client";
6import { museClient } from "@t3tools/provider-muse/client";
7import { openCodeClient } from "@t3tools/provider-opencode/client";
8import { piClient } from "@t3tools/provider-pi/client";
9
10/** The provider client definitions this mobile build ships. */
11const providerClients = makeProviderClientRegistry([
12 cursorClient,
13 grokClient,
14 museClient,
15 openCodeClient,
16 piClient,
17 acpRegistryClient,
18]);
19
20/** The client definition for a driver kind, or `undefined` for drivers drawn by hand. */
21export function getProviderClient(driver: string | null | undefined) {
22 return isProviderDriverKind(driver) ? providerClients.get(driver) : undefined;
23}