UNPKG

cookie-ai-cli

Version:

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

58 lines 2.41 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.initializeSettings = void 0; const fs_1 = __importDefault(require("fs")); const save_settings_1 = require("./save-settings"); const settings_constants_1 = require("./settings-constants"); const ask_question_1 = require("../ask-question"); const debug_log_1 = require("../utils/debug-log"); async function initializeSettings(rl) { fs_1.default.mkdirSync(settings_constants_1.settingsDir, { recursive: true }); let settings = { service: "openai", model: "gpt-4", }; settings.service = (await (0, ask_question_1.askQuestion)(rl, "Select the API service to use: ", [ ...settings_constants_1.services, ])); if (settings.service === "custom") { settings.endpoint = await (0, ask_question_1.askQuestion)(rl, "Enter the API endpoint: "); } if (settings.service === "openai") { settings.openai = { key: await (0, ask_question_1.askQuestion)(rl, "Enter your OpenAI API key: "), }; } if (settings.service === "custom") { console.log("Enter custom headers. Type 'done' as the header key when finished."); settings.headers = await askForCustomHeaders(rl); } const modelAnswer = await (0, ask_question_1.askQuestion)(rl, "Enter your model (leave blank for default: gpt-4): "); if (modelAnswer) { settings.model = modelAnswer; } debug_log_1.debug.info(`Saving settings at ${settings_constants_1.settingsFilePath}:\n${JSON.stringify(settings, null, 2)}}`); (0, save_settings_1.saveSettings)(settings); rl.close(); process.exit(0); } exports.initializeSettings = initializeSettings; async function askForCustomHeaders(rl) { const headers = {}; let addingHeaders = true; while (addingHeaders) { const key = await (0, ask_question_1.askQuestion)(rl, "Enter header key (or type 'done' to finish): "); if (key.toLowerCase() === "done") { addingHeaders = false; } else { const value = await (0, ask_question_1.askQuestion)(rl, `Enter value for header '${key}': `); headers[key] = value; } } return headers; } //# sourceMappingURL=initialize-settings.js.map