UNPKG

@tehreet/conduit

Version:

LLM API gateway with intelligent routing, robust process management, and health monitoring

84 lines 2.92 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.initConfig = exports.writeConfigFile = exports.readConfigFile = exports.initDir = void 0; const promises_1 = __importDefault(require("node:fs/promises")); const node_readline_1 = __importDefault(require("node:readline")); const constants_1 = require("../constants"); const config_presets_1 = require("./config-presets"); const ensureDir = async (dir_path) => { try { await promises_1.default.access(dir_path); } catch { await promises_1.default.mkdir(dir_path, { recursive: true }); } }; const initDir = async () => { await ensureDir(constants_1.HOME_DIR); await ensureDir(constants_1.PLUGINS_DIR); }; exports.initDir = initDir; const createReadline = () => { return node_readline_1.default.createInterface({ input: process.stdin, output: process.stdout, }); }; const question = (query) => { return new Promise(resolve => { const rl = createReadline(); rl.question(query, answer => { rl.close(); resolve(answer); }); }); }; const confirm = async (query) => { const answer = await question(query); return answer.toLowerCase() !== 'n'; }; const readConfigFile = async () => { try { const config = await promises_1.default.readFile(constants_1.CONFIG_FILE, 'utf-8'); return JSON.parse(config); } catch { const name = await question('Enter Provider Name: '); const apiKey = await question('Enter Provider API KEY: '); const baseUrl = await question('Enter Provider URL: '); const model = await question('Enter MODEL Name: '); const config = Object.assign({}, constants_1.DEFAULT_CONFIG, { Providers: [ { name, api_base_url: baseUrl, api_key: apiKey, models: [model], }, ], Router: { default: `${name},${model}`, }, }); await (0, exports.writeConfigFile)(config); return config; } }; exports.readConfigFile = readConfigFile; const writeConfigFile = async (config) => { await ensureDir(constants_1.HOME_DIR); await promises_1.default.writeFile(constants_1.CONFIG_FILE, JSON.stringify(config, null, 2)); }; exports.writeConfigFile = writeConfigFile; const initConfig = async () => { let config = await (0, exports.readConfigFile)(); // Apply preset configuration if specified config = await config_presets_1.ConfigPresetManager.applyPresetToConfig(config); Object.assign(process.env, config); return config; }; exports.initConfig = initConfig; //# sourceMappingURL=index.js.map