pame-core-cli
Version:
PAME.AI Core Operating System CLI - Open Source AI Platform for Agentic Commerce
67 lines • 2.11 kB
JavaScript
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