MCPcopy Create free account
hub / github.com/ShipSecAI/studio / buildLlmProviderSchema

Function buildLlmProviderSchema

packages/contracts/src/index.ts:21–55  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

19export const llmProviderContractName = 'core.ai.llm-provider.v1';
20
21const buildLlmProviderSchema = () =>
22 z.discriminatedUnion('provider', [
23 z.object({
24 provider: z.literal('openai'),
25 modelId: z.string(),
26 apiKey: z.string().optional(),
27 apiKeySecretId: z.string().optional(),
28 baseUrl: z.string().optional(),
29 headers: z.record(z.string(), z.string()).optional(),
30 }),
31 z.object({
32 provider: z.literal('gemini'),
33 modelId: z.string(),
34 apiKey: z.string().optional(),
35 apiKeySecretId: z.string().optional(),
36 baseUrl: z.string().optional(),
37 projectId: z.string().optional(),
38 }),
39 z.object({
40 provider: z.literal('openrouter'),
41 modelId: z.string(),
42 apiKey: z.string().optional(),
43 apiKeySecretId: z.string().optional(),
44 baseUrl: z.string().optional(),
45 headers: z.record(z.string(), z.string()).optional(),
46 }),
47 z.object({
48 provider: z.literal('zai-coding-plan'),
49 modelId: z.string(),
50 apiKey: z.string().optional(),
51 apiKeySecretId: z.string().optional(),
52 baseUrl: z.string().optional(),
53 headers: z.record(z.string(), z.string()).optional(),
54 }),
55 ]);
56
57export const LLMProviderSchema = () =>
58 withPortMeta(buildLlmProviderSchema(), {

Callers 1

LLMProviderSchemaFunction · 0.85

Calls 1

recordMethod · 0.65

Tested by

no test coverage detected