"""
Theme configuration for Proxmox MCP output styling.
"""
class ProxmoxTheme:
"""Theme configuration for Proxmox MCP output."""
# Feature flags
USE_EMOJI = True
USE_COLORS = True
# Status indicators with emojis
STATUS = {
'online': 'đĸ',
'offline': 'đ´',
'running': 'âļī¸',
'stopped': 'âšī¸',
'unknown': 'â',
'pending': 'âŗ',
'error': 'â',
'warning': 'â ī¸',
}
# Resource type indicators
RESOURCES = {
'node': 'đĨī¸',
'vm': 'đī¸',
'container': 'đĻ',
'storage': 'đž',
'cpu': 'âĄ',
'memory': 'đ§ ',
'network': 'đ',
'disk': 'đŋ',
'backup': 'đŧ',
'snapshot': 'đ¸',
'template': 'đ',
'pool': 'đ',
}
# Action and operation indicators
ACTIONS = {
'success': 'â
',
'error': 'â',
'warning': 'â ī¸',
'info': 'âšī¸',
'command': 'đ§',
'start': 'âļī¸',
'stop': 'âšī¸',
'restart': 'đ',
'delete': 'đī¸',
'edit': 'âī¸',
'create': 'â',
'migrate': 'âĄī¸',
'clone': 'đ',
'lock': 'đ',
'unlock': 'đ',
}
# Section and grouping indicators
SECTIONS = {
'header': 'đ',
'details': 'đ',
'statistics': 'đ',
'configuration': 'âī¸',
'logs': 'đ',
'tasks': 'đ',
'users': 'đĨ',
'permissions': 'đ',
}
# Measurement and metric indicators
METRICS = {
'percentage': '%',
'temperature': 'đĄī¸',
'uptime': 'âŗ',
'bandwidth': 'đļ',
'latency': 'âĄ',
}
@classmethod
def get_status_emoji(cls, status: str) -> str:
"""Get emoji for a status value with fallback."""
status = status.lower()
return cls.STATUS.get(status, cls.STATUS['unknown'])
@classmethod
def get_resource_emoji(cls, resource: str) -> str:
"""Get emoji for a resource type with fallback."""
resource = resource.lower()
return cls.RESOURCES.get(resource, 'đĻ')
@classmethod
def get_action_emoji(cls, action: str) -> str:
"""Get emoji for an action with fallback."""
action = action.lower()
return cls.ACTIONS.get(action, cls.ACTIONS['info'])
@classmethod
def get_section_emoji(cls, section: str) -> str:
"""Get emoji for a section type with fallback."""
section = section.lower()
return cls.SECTIONS.get(section, cls.SECTIONS['details'])