// schemas/spec-registry-schemas.ts — Zod schemas for SPEC-127 registry tools
import { z } from 'zod';
/** Input schema for registry_search tool. */
export const RegistrySearchInputSchema = z.object({
    query: z
        .string()
        .max(500)
        .describe('Free-text search query to find specs (e.g. "auth next.js", "stripe payments")'),
    stack: z
        .string()
        .max(200)
        .optional()
        .describe('Filter by stack ID: next.js | express | fastapi | django | rails | spring-boot | laravel | gin | actix-web | phoenix | sveltekit | nuxt | remix | astro'),
    category: z
        .string()
        .max(200)
        .optional()
        .describe('Filter by category ID: auth | payments | crud | api | database | testing | ci-cd | deployment | monitoring | notifications | file-upload | search | caching | i18n | seo | analytics | security | performance'),
    difficulty: z
        .object({
        min: z.number().min(1).max(5).optional().describe('Minimum difficulty level (1-5)'),
        max: z.number().min(1).max(5).optional().describe('Maximum difficulty level (1-5)'),
    })
        .optional()
        .describe('Filter by difficulty range (1 = beginner, 5 = expert)'),
    sort: z
        .enum(['downloads', 'rating', 'recent'])
        .optional()
        .describe('Sort order: downloads | rating | recent'),
    page: z.number().min(1).default(1).describe('Page number, 1-based (default: 1)'),
    limit: z.number().min(1).max(100).default(20).describe('Results per page, max 100 (default: 20)'),
});
/** Input schema for registry_install tool. */
export const RegistryInstallInputSchema = z.object({
    specName: z
        .string()
        .max(500)
        .describe('Spec identifier in org/name format (e.g. "planu/auth-nextjs")'),
    version: z
        .string()
        .max(100)
        .optional()
        .describe('Specific semver version to install (default: latest)'),
    projectPath: z
        .string()
        .max(2000)
        .describe('Absolute path to the target project where the spec will be installed'),
    adapt: z
        .boolean()
        .default(true)
        .describe('Whether to adapt the spec to the detected project stack (default: true)'),
});
/** Input schema for registry_publish tool. */
export const RegistryPublishInputSchema = z.object({
    specDir: z
        .string()
        .max(2000)
        .describe('Absolute path to the spec directory containing planu-registry.json'),
    projectPath: z
        .string()
        .max(2000)
        .describe('Absolute path to the project root (used for context resolution)'),
});
/** Input schema for registry_login tool. */
export const RegistryLoginInputSchema = z.object({
    token: z.string().max(1000).describe('API token obtained from planu.dev account settings'),
});
/** Input schema for registry_logout tool. */
export const RegistryLogoutInputSchema = z.object({});
/** Input schema for registry_whoami tool. */
export const RegistryWhoamiInputSchema = z.object({});
//# sourceMappingURL=spec-registry-schemas.js.map