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
JavaScript
;
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