ascii_art.py
1 """ 2 ASCII art for Kamaji TUI interface using Rich components. 3 """ 4 5 from rich.text import Text 6 from rich.console import Console 7 8 9 def get_kamaji_art_with_kanji(kanji_chars, show_kanji=False): 10 """Get Kamaji ASCII art with floating kanji around his face.""" 11 import random 12 13 art = Text() 14 15 # Title border 16 art.append(" ╭─────────────────────────────╮\n", style="bold red") 17 art.append(" │", style="bold red") 18 art.append(" 🎭 KAMAJI - Multi-Agent AI ", style="bold yellow") 19 art.append("│\n", style="bold red") 20 art.append(" ╰─────────────────────────────╯\n", style="bold red") 21 22 # Enhanced furnaces with better fire 23 art.append(" ╭─╮ ╭─╮ ╭─╮ ╭─╮\n", style="bold #8B4513") 24 art.append(" ╱🔥╲╱🔥╲╱🔥╲╱🔥╲\n", style="bold #FF4500") 25 art.append(" │▓▓││▓▓││▓▓││▓▓│\n", style="bold #696969") 26 art.append(" ╲▓╱ ╲▓╱ ╲▓╱ ╲▓╱\n", style="bold #8B4513") 27 28 # Arms and body 29 art.append(" ╭─╮╭─╮ ║ ║ ║ ║ ╭─╮╭─╮\n", style="bold #8B4513") 30 art.append("╱⚙⚙╲⚙⚙╲║ ║ ║ ║╱⚙⚙╲⚙⚙╲\n", style="bold #FFD700") 31 art.append("│▓▓││▓▓│║ ║ ║ ║│▓▓││▓▓│\n", style="bold #696969") 32 art.append("╲▓▓╱╲▓▓╱╲═╩═╩═╱╲▓▓╱╲▓▓╱\n", style="bold #8B4513") 33 34 # Kamaji's face with floating kanji 35 if show_kanji and kanji_chars: 36 k1, k2, k3, k4 = random.choices(kanji_chars, k=4) 37 color = "#FF4500" # Same as fire color 38 art.append(f" ║ ║ {k1}╱ ◉ ◉ ╲{k2} ║ ║\n", style=f"bold {color}") 39 art.append(f" ║ ║{k3}│ ▼ │{k4}║ ║\n", style=f"bold {color}") 40 else: 41 art.append(" ║ ║ ╱ ◉ ◉ ╲ ║ ║\n", style="bold #DEB887") 42 art.append(" ║ ║ │ ▼ │ ║ ║\n", style="bold #DEB887") 43 44 art.append(" ║ ║ ╲ ╔═╗ ╱ ║ ║\n", style="bold #DEB887") 45 art.append(" ║ ║ ╲║█║╱ ║ ║\n", style="bold #8B4513") 46 47 # Lower arms and base 48 art.append(" ╭┴╮╭┴╮ ╭┴╮╭┴╮\n", style="bold #8B4513") 49 art.append("╱⚙⚙╲⚙⚙╲ ╭─╮ ╱⚙⚙╲⚙⚙╲\n", style="bold #FFD700") 50 art.append("│▓▓││▓▓│╱⚙⚙╲│▓▓││▓▓│\n", style="bold #696969") 51 art.append("╲▓▓╱╲▓▓╱ │▓▓│ ╲▓▓╱╲▓▓╱\n", style="bold #8B4513") 52 53 return art 54 55 56 def _create_compact_kamaji(): 57 """Create compact Kamaji ASCII art with Rich Text.""" 58 art = Text() 59 60 # Title border 61 art.append(" ╭─────────────────────────────╮\n", style="bold red") 62 art.append(" │", style="bold red") 63 art.append(" 🎭 KAMAJI - Multi-Agent AI ", style="bold yellow") 64 art.append("│\n", style="bold red") 65 art.append(" ╰─────────────────────────────╯\n", style="bold red") 66 67 # Enhanced furnaces with better fire 68 art.append(" ╭─╮ ╭─╮ ╭─╮ ╭─╮\n", style="bold #8B4513") 69 art.append(" ╱🔥╲╱🔥╲╱🔥╲╱🔥╲\n", style="bold #FF4500") 70 art.append(" │▓▓││▓▓││▓▓││▓▓│\n", style="bold #696969") 71 art.append(" ╲▓╱ ╲▓╱ ╲▓╱ ╲▓╱\n", style="bold #8B4513") 72 73 # Arms and body with kanji floating around 74 art.append(" ╭─╮╭─╮ ║ ║ ║ ║ ╭─╮╭─╮\n", style="bold #8B4513") 75 art.append("╱⚙⚙╲⚙⚙╲║ ║ ║ ║╱⚙⚙╲⚙⚙╲\n", style="bold #FFD700") 76 art.append("│▓▓││▓▓│║ ║ ║ ║│▓▓││▓▓│\n", style="bold #696969") 77 art.append("╲▓▓╱╲▓▓╱╲═╩═╩═╱╲▓▓╱╲▓▓╱\n", style="bold #8B4513") 78 79 # Kamaji's face with floating kanji 80 art.append(" ║ ║ ╱ ◉ ◉ ╲ ║ ║\n", style="bold #DEB887") 81 art.append(" ║ ║ │ ▼ │ ║ ║\n", style="bold #DEB887") 82 art.append(" ║ ║ ╲ ╔═╗ ╱ ║ ║\n", style="bold #DEB887") 83 art.append(" ║ ║ ╲║█║╱ ║ ║\n", style="bold #8B4513") 84 85 # Lower arms and base 86 art.append(" ╭┴╮╭┴╮ ╭┴╮╭┴╮\n", style="bold #8B4513") 87 art.append("╱⚙⚙╲⚙⚙╲ ╭─╮ ╱⚙⚙╲⚙⚙╲\n", style="bold #FFD700") 88 art.append("│▓▓││▓▓│╱⚙⚙╲│▓▓││▓▓│\n", style="bold #696969") 89 art.append("╲▓▓╱╲▓▓╱ │▓▓│ ╲▓▓╱╲▓▓╱\n", style="bold #8B4513") 90 91 return art 92 art.append(" ╭─╮ ╭─╮ ╭─╮ ╭─╮\n", style="bold orange1") 93 art.append(" ╱", style="bold orange1") 94 art.append("🔥", style="bold red") 95 art.append("╲╱", style="bold orange1") 96 art.append("🔥", style="bold red") 97 art.append("╲╱", style="bold orange1") 98 art.append("🔥", style="bold red") 99 art.append("╲╱", style="bold orange1") 100 art.append("🔥", style="bold red") 101 art.append("╲\n", style="bold orange1") 102 art.append(" │", style="bold orange1") 103 art.append("▓▓", style="bold red") 104 art.append("││", style="bold orange1") 105 art.append("▓▓", style="bold red") 106 art.append("││", style="bold orange1") 107 art.append("▓▓", style="bold red") 108 art.append("││", style="bold orange1") 109 art.append("▓▓", style="bold red") 110 art.append("│\n", style="bold orange1") 111 art.append(" ╲▓╱ ╲▓╱ ╲▓╱ ╲▓╱\n", style="bold orange1") 112 113 # Enhanced arms with more detail 114 art.append(" ╭─╮╭─╮", style="bold cyan") 115 art.append(" ║ ║ ║ ║ ", style="dim yellow") 116 art.append("╭─╮╭─╮\n", style="bold cyan") 117 118 art.append("╱", style="bold cyan") 119 art.append("⚙⚙", style="bold yellow") 120 art.append("╲", style="bold cyan") 121 art.append("⚙⚙", style="bold yellow") 122 art.append("╲", style="bold cyan") 123 art.append("║ ║ ║ ║", style="dim yellow") 124 art.append("╱", style="bold cyan") 125 art.append("⚙⚙", style="bold yellow") 126 art.append("╲", style="bold cyan") 127 art.append("⚙⚙", style="bold yellow") 128 art.append("╲\n", style="bold cyan") 129 130 art.append("│", style="bold cyan") 131 art.append("▓▓", style="dim white") 132 art.append("││", style="bold cyan") 133 art.append("▓▓", style="dim white") 134 art.append("│", style="bold cyan") 135 art.append("║ ║ ║ ║", style="dim yellow") 136 art.append("│", style="bold cyan") 137 art.append("▓▓", style="dim white") 138 art.append("││", style="bold cyan") 139 art.append("▓▓", style="dim white") 140 art.append("│\n", style="bold cyan") 141 142 art.append("╲", style="bold cyan") 143 art.append("▓▓", style="dim white") 144 art.append("╱╲", style="bold cyan") 145 art.append("▓▓", style="dim white") 146 art.append("╱", style="bold cyan") 147 art.append("╲═╩═╩═╱", style="bold magenta") 148 art.append("╲", style="bold cyan") 149 art.append("▓▓", style="dim white") 150 art.append("╱╲", style="bold cyan") 151 art.append("▓▓", style="dim white") 152 art.append("╱\n", style="bold cyan") 153 154 # Enhanced face with more character 155 art.append(" ║ ║", style="dim yellow") 156 art.append(" ╱", style="bold magenta") 157 art.append(" ◉", style="bold white") 158 art.append(" ", style="dim white") 159 art.append("◉", style="bold white") 160 art.append(" ╲", style="bold magenta") 161 art.append(" ║ ║\n", style="dim yellow") 162 163 art.append(" ║ ║", style="dim yellow") 164 art.append(" │", style="bold magenta") 165 art.append(" ", style="dim white") 166 art.append("▼", style="bold white") 167 art.append(" ", style="dim white") 168 art.append("│", style="bold magenta") 169 art.append(" ║ ║\n", style="dim yellow") 170 171 art.append(" ║ ║", style="dim yellow") 172 art.append(" ╲", style="bold magenta") 173 art.append(" ╔═╗", style="bold red") 174 art.append(" ╱", style="bold magenta") 175 art.append(" ║ ║\n", style="dim yellow") 176 177 art.append(" ║ ║", style="dim yellow") 178 art.append(" ╲", style="bold magenta") 179 art.append("║", style="bold red") 180 art.append("█", style="bold black") 181 art.append("║", style="bold red") 182 art.append("╱", style="bold magenta") 183 art.append(" ║ ║\n", style="dim yellow") 184 185 # Enhanced lower arms with more gears 186 art.append(" ╭┴╮╭┴╮", style="bold cyan") 187 art.append(" ", style="dim white") 188 art.append("╭┴╮╭┴╮\n", style="bold cyan") 189 190 art.append("╱", style="bold cyan") 191 art.append("⚙⚙", style="bold yellow") 192 art.append("╲", style="bold cyan") 193 art.append("⚙⚙", style="bold yellow") 194 art.append("╲", style="bold cyan") 195 art.append(" ╭─╮ ", style="bold green") 196 art.append("╱", style="bold cyan") 197 art.append("⚙⚙", style="bold yellow") 198 art.append("╲", style="bold cyan") 199 art.append("⚙⚙", style="bold yellow") 200 art.append("╲\n", style="bold cyan") 201 202 art.append("│", style="bold cyan") 203 art.append("▓▓", style="dim white") 204 art.append("││", style="bold cyan") 205 art.append("▓▓", style="dim white") 206 art.append("│", style="bold cyan") 207 art.append("╱", style="bold green") 208 art.append("⚙⚙", style="bold yellow") 209 art.append("╲", style="bold green") 210 art.append("│", style="bold cyan") 211 art.append("▓▓", style="dim white") 212 art.append("││", style="bold cyan") 213 art.append("▓▓", style="dim white") 214 art.append("│\n", style="bold cyan") 215 216 art.append("╲", style="bold cyan") 217 art.append("▓▓", style="dim white") 218 art.append("╱╲", style="bold cyan") 219 art.append("▓▓", style="dim white") 220 art.append("╱", style="bold cyan") 221 art.append(" │", style="bold green") 222 art.append("▓▓", style="dim white") 223 art.append("│ ", style="bold green") 224 art.append("╲", style="bold cyan") 225 art.append("▓▓", style="dim white") 226 art.append("╱╲", style="bold cyan") 227 art.append("▓▓", style="dim white") 228 art.append("╱", style="bold cyan") 229 230 return art