import { z } from 'zod' export const bootstrapRequestSchema = z.discriminatedUnion('action', [ z.object({ action: z.literal('status') }).strict(), z.object({ action: z.literal('runtime') }).strict(), z.object({ action: z.literal('codex-prepare') }).strict(), z.object({ action: z.literal('codex-complete') }).strict(), z .object({ action: z.literal('provider'), key: z.string().trim().min(1).max(8192), model: z.string().trim().min(1).max(256) }) .strict(), z.object({ action: z.literal('openalex'), key: z.string().trim().min(1).max(8192) }).strict() ]) export type BootstrapRequest = z.infer export type BootstrapResult = | { ok: true; providerId?: string; next?: { runtime?: string[]; provider?: string[] } } | { ok: false code: | 'invalid_request' | 'configuration_conflict' | 'runtime_unavailable' | 'credential_invalid' | 'bootstrap_failed' } export class BootstrapError extends Error { constructor(readonly code: Exclude['code']) { super(code) } }