UNPKG

@jasondark/proompt

Version:

CLI tool for running AI prompts with structure and repeatability

87 lines 4.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.configArgsSchema = exports.docMetadataSchema = exports.docMetadataEntrySchema = exports.settingsWithMetaSchema = exports.resolvedSettingsSchema = exports.documentationCommandOptionsSchema = exports.planningCommandOptionsSchema = exports.llmCommandOptionsSchema = exports.settingsOverrideSchema = exports.proomptArgumentsSchema = exports.commandHandlerArgsSchema = exports.commandConfigSchema = exports.commandArgumentSchema = exports.settingsSchema = exports.outputFileNamesSchema = exports.outputFormatSchema = exports.llmCliSchema = void 0; const zod_1 = require("zod"); exports.llmCliSchema = zod_1.z.enum(['claude', 'gemini']); exports.outputFormatSchema = zod_1.z.array(zod_1.z.enum(['claude', 'gemini'])).min(1); exports.outputFileNamesSchema = zod_1.z.object({ claude: zod_1.z.literal('CLAUDE.md'), gemini: zod_1.z.literal('GEMINI.md'), }); exports.settingsSchema = zod_1.z.object({ llmCli: exports.llmCliSchema, outputFormat: exports.outputFormatSchema.optional(), }); // New command module schemas exports.commandArgumentSchema = zod_1.z.object({ name: zod_1.z.string(), description: zod_1.z.string(), required: zod_1.z.boolean().default(false), type: zod_1.z.enum(['string', 'number', 'boolean']).default('string'), alias: zod_1.z.string().optional(), positional: zod_1.z.boolean().optional(), }); exports.commandConfigSchema = zod_1.z.object({ name: zod_1.z.string(), description: zod_1.z.string(), arguments: zod_1.z.array(exports.commandArgumentSchema).default([]), }); exports.commandHandlerArgsSchema = zod_1.z .record(zod_1.z.string(), zod_1.z.union([zod_1.z.string(), zod_1.z.number(), zod_1.z.boolean()])) .and(zod_1.z.object({ llmCli: exports.llmCliSchema.optional(), outputFormat: zod_1.z.string().optional(), })); // Base schema for proompt arguments (used in execution) exports.proomptArgumentsSchema = zod_1.z.record(zod_1.z.string(), zod_1.z.union([zod_1.z.string(), zod_1.z.number(), zod_1.z.boolean()])); // Settings resolver schemas exports.settingsOverrideSchema = zod_1.z.object({ llmCli: exports.llmCliSchema.optional(), outputFormat: zod_1.z.string().optional(), // Comma-separated string that gets parsed }); // LLM-only command options (for interactive commands like execute-plan, lyra) exports.llmCommandOptionsSchema = zod_1.z.object({ llmCli: exports.llmCliSchema.optional(), }); // Planning command options (for commands that can create output files with custom paths) exports.planningCommandOptionsSchema = zod_1.z.object({ llmCli: exports.llmCliSchema.optional(), outputFilePath: zod_1.z.string(), }); // Documentation command options (for commands that create output files) exports.documentationCommandOptionsSchema = zod_1.z.object({ llmCli: exports.llmCliSchema.optional(), outputFormat: zod_1.z.string().optional(), }); exports.resolvedSettingsSchema = zod_1.z.object({ llmCli: exports.llmCliSchema, outputFormat: exports.outputFormatSchema, }); // Settings with metadata schema exports.settingsWithMetaSchema = zod_1.z.object({ settings: exports.settingsSchema.nullable(), fileExists: zod_1.z.boolean(), filePath: zod_1.z.string(), }); // Documentation metadata schemas exports.docMetadataEntrySchema = zod_1.z.object({ commitHash: zod_1.z.string(), timestamp: zod_1.z.string(), }); exports.docMetadataSchema = zod_1.z.object({ project: exports.docMetadataEntrySchema.optional(), directories: zod_1.z.record(zod_1.z.string(), exports.docMetadataEntrySchema).optional(), }); // Config command schema - requires either global or project scope exports.configArgsSchema = zod_1.z .object({ global: zod_1.z.boolean().optional(), project: zod_1.z.boolean().optional(), setLlmCli: exports.llmCliSchema.optional(), setOutputFormat: zod_1.z.string().optional(), }) .refine((data) => (data.global && !data.project) || (!data.global && data.project), { message: 'Exactly one of --global or --project must be specified', path: ['global', 'project'], }); //# sourceMappingURL=schemas.js.map