UNPKG

cookie-ai-cli

Version:

A command-line interface tool designed to bridge the gap between natural language processing and command-line operations.

50 lines 1.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateSettings = exports.settingsSchema = void 0; const zod_1 = require("zod"); const debug_log_1 = require("../utils/debug-log"); const settings_constants_1 = require("./settings-constants"); const errors = { OPENAI_KEY_REQUIRED: "'openai.key' is required when using service 'openai'", ENDPOINT_REQUIRED: "'endpoint' is required when using service 'custom'", }; const openaiSchema = zod_1.z.object({ key: zod_1.z.string({ required_error: errors.OPENAI_KEY_REQUIRED, }), }); const customSchema = zod_1.z.object({ payload: zod_1.z.record(zod_1.z.string()).optional(), }); exports.settingsSchema = zod_1.z .object({ endpoint: zod_1.z.string().url().optional(), service: zod_1.z.enum(["custom", "openai"]), model: zod_1.z.string({ required_error: "'model' is required. (example: 'gpt-4')", }), openai: openaiSchema.optional(), custom: customSchema.optional(), headers: zod_1.z.record(zod_1.z.string()).optional(), }) .refine((data) => data.service !== "openai" || data.openai, { message: errors.OPENAI_KEY_REQUIRED, path: ["openai"], }) .refine((data) => data.service !== "custom" || data.endpoint, { message: errors.ENDPOINT_REQUIRED, path: ["endpoint"], }); function validateSettings(settings) { const result = exports.settingsSchema.safeParse(settings); if (!result.success) { for (const error of result.error.issues) { debug_log_1.debug.error(`settings.json: ${error.message}\n You can edit your settings file at file://${settings_constants_1.settingsDir} or run 'ai --init' to re-initialize your settings.\n`); } process.exit(1); } } exports.validateSettings = validateSettings; //# sourceMappingURL=settings-schema.js.map