UNPKG

aura-ai

Version:

AI-powered marketing strategist CLI tool for developers

110 lines (97 loc) • 2.84 kB
import fs from 'fs/promises' import { existsSync } from 'fs' const SETTINGS_FILE = '.aura.json' const DEFAULT_SETTINGS = { avatars: { aura: 'šŸŒ€', user: '>' } } export async function settingsCommand(options) { const { list, setAura, setUser, reset, json, quiet } = options try { // Load current settings let settings = await loadSettings() // Handle different operations if (reset) { // Reset to defaults settings = { ...DEFAULT_SETTINGS } await saveSettings(settings) if (json) { console.log(JSON.stringify({ status: 'success', message: 'Settings reset to defaults', data: settings })) } else if (!quiet) { console.log('āœ… Settings reset to defaults') } return } // Apply changes let changed = false if (setAura) { settings.avatars.aura = setAura changed = true } if (setUser) { settings.avatars.user = setUser changed = true } if (changed) { await saveSettings(settings) if (json) { console.log(JSON.stringify({ status: 'success', message: 'Settings updated', data: settings })) } else if (!quiet) { console.log('āœ… Settings updated successfully') console.log(` Aura avatar: ${settings.avatars.aura}`) console.log(` User avatar: ${settings.avatars.user}`) } } else if (list || (!setAura && !setUser && !reset)) { // Show current settings if (json) { // For agents: print readable settings console.log('\n' + '='.repeat(60)) console.log('āš™ļø AURA SETTINGS') console.log('='.repeat(60)) console.log('\nšŸ“‹ Current Configuration:') console.log(` Aura avatar: ${settings.avatars.aura}`) console.log(` User avatar: ${settings.avatars.user}`) console.log('\n' + '='.repeat(60)) } else { console.log('šŸ“‹ Current Settings:') console.log(` Aura avatar: ${settings.avatars.aura}`) console.log(` User avatar: ${settings.avatars.user}`) } } } catch (error) { if (json) { console.log(JSON.stringify({ status: 'error', error: error.message })) process.exit(1) } else { console.error(`āŒ Error: ${error.message}`) process.exit(1) } } } async function loadSettings() { try { if (existsSync(SETTINGS_FILE)) { const data = await fs.readFile(SETTINGS_FILE, 'utf-8') return JSON.parse(data) } } catch (error) { // If error reading, return defaults } return { ...DEFAULT_SETTINGS } } async function saveSettings(settings) { await fs.writeFile(SETTINGS_FILE, JSON.stringify(settings, null, 2)) }