"""
Skill dataclass representing a loaded character/skill.
"""
from dataclasses import dataclass, field
from pathlib import Path
from typing import Any, Dict, List, Optional
@dataclass
class Skill:
"""Represents a loaded character/skill."""
id: str
name: str
display_name: str
description: str
system_prompt: str
emoji: str = ""
voice_file: Optional[Path] = None
avatar_file: Optional[Path] = None
initial_memories: List[str] = field(default_factory=list)
metadata: Dict[str, Any] = field(default_factory=dict)
personality_traits: List[str] = field(default_factory=list)
speech_patterns: List[str] = field(default_factory=list)
allowed_tools: List[str] = field(default_factory=list)
output_filters: List[str] = field(default_factory=list)
input_validation: Dict[str, bool] = field(default_factory=dict)