import { z } from "zod";
export const appFlagsSchema = z.object({
    acode: z.boolean(),
    claude: z.boolean(),
    claudecode: z.boolean(),
    codex: z.boolean(),
    gemini: z.boolean(),
    opencode: z.boolean(),
    openclaw: z.boolean(),
});
export const mcpServerSpecSchema = z.object({
    type: z.enum(["stdio", "sse", "http"]).optional(),
    command: z.string().optional(),
    args: z.array(z.string()).optional(),
    env: z.record(z.string(), z.string()).optional(),
    cwd: z.string().optional(),
    url: z.string().optional(),
    headers: z.record(z.string(), z.string()).optional(),
});
export const mcpServerSchema = z.object({
    id: z.string(),
    name: z.string(),
    server: mcpServerSpecSchema,
    description: z.string().optional(),
    apps: appFlagsSchema,
});
export const installedSkillSchema = z.object({
    id: z.string(),
    name: z.string(),
    directory: z.string(),
    description: z.string().optional(),
    apps: appFlagsSchema,
    installedAt: z.number(),
});
export const sdkStateSchema = z.object({
    mcpServers: z.record(z.string(), mcpServerSchema),
    skills: z.record(z.string(), installedSkillSchema),
});
