UNPKG

pame-core-cli

Version:

PAME.AI Core Operating System CLI - Open Source AI Platform for Agentic Commerce

67 lines 2.11 kB
import * as fs from 'fs'; import * as path from 'path'; import * as os from 'os'; export class ConfigManager { static instance; configPath; config; constructor() { const configDir = path.join(os.homedir(), '.pame-core'); this.configPath = path.join(configDir, 'config.json'); // Ensure config directory exists if (!fs.existsSync(configDir)) { fs.mkdirSync(configDir, { recursive: true }); } // Load or create config this.config = this.loadConfig(); } static getInstance() { if (!ConfigManager.instance) { ConfigManager.instance = new ConfigManager(); } return ConfigManager.instance; } loadConfig() { try { if (fs.existsSync(this.configPath)) { const data = fs.readFileSync(this.configPath, 'utf-8'); return JSON.parse(data); } } catch (error) { console.error('Error loading config:', error); } // Default configuration const defaultConfig = { coreApiUrl: 'https://core.pame.ai/api', appApiUrl: 'https://app.pame.ai/api', platforms: { 'www': { url: 'https://www.pame.ai', onboarding: true }, 'app': { url: 'https://app.pame.ai', onboarding: true }, 'core': { url: 'https://core.pame.ai', onboarding: false }, 'learn': { url: 'https://learn.pame.ai', onboarding: true } } }; this.saveConfig(defaultConfig); return defaultConfig; } saveConfig(config) { try { fs.writeFileSync(this.configPath, JSON.stringify(config, null, 2), 'utf-8'); } catch (error) { console.error('Error saving config:', error); } } get(key) { return this.config[key]; } set(key, value) { this.config[key] = value; this.saveConfig(this.config); } getAll() { return { ...this.config }; } } //# sourceMappingURL=config-manager.js.map