更新显示
(self, layout: Layout, trigger_time: str)
| 219 | return layout |
| 220 | |
| 221 | def update_display(self, layout: Layout, trigger_time: str): |
| 222 | """更新显示""" |
| 223 | welcome_text = Path(__file__).parent / "static" / "welcome.txt" |
| 224 | if welcome_text.exists(): |
| 225 | with open(welcome_text, "r", encoding="utf-8") as f: |
| 226 | welcome = f.read() |
| 227 | else: |
| 228 | welcome = get_text("ContestTrade: 基于内部竞赛机制的Multi-Agent交易系统", "ContestTrade: Multi-Agent Trading System Based on Internal Contest Mechanism") |
| 229 | |
| 230 | header_panel = Panel( |
| 231 | Align.center(welcome), |
| 232 | title=get_text("🎯 ContestTrade - 基于内部竞赛机制的Multi-Agent交易系统", "🎯 ContestTrade - Multi-Agent Trading System Based on Internal Contest Mechanism"), |
| 233 | border_style="blue", |
| 234 | padding=(0, 1), |
| 235 | expand=True # 自适应宽度 |
| 236 | ) |
| 237 | layout["header"].update(header_panel) |
| 238 | |
| 239 | # 更新Agent状态面板 |
| 240 | status_text = Text() |
| 241 | |
| 242 | # Data Analysis Agent状态 |
| 243 | data_agents = {k: v for k, v in self.agent_status.items() if not k.startswith("agent_")} |
| 244 | if data_agents: |
| 245 | status_text.append(get_text("📊 Data Analysis Agent\n", "📊 Data Analysis Agent\n"), style="bold cyan") |
| 246 | for agent_name, status in data_agents.items(): |
| 247 | status_icon = { |
| 248 | "pending": get_text("⏳等待中...", "⏳ Pending..."), |
| 249 | "running": get_text("🔄分析中...", "🔄 Analyzing..."), |
| 250 | "completed": get_text("✅分析完成", "✅ Analysis Complete") |
| 251 | }.get(status, "❓") |
| 252 | |
| 253 | agent_display = agent_name[:20].ljust(20) |
| 254 | status_text.append(f"{agent_display} {status_icon}\n") |
| 255 | |
| 256 | # Research Agent状态 |
| 257 | research_agents = {k: v for k, v in self.agent_status.items() if k.startswith("agent_")} |
| 258 | if research_agents: |
| 259 | status_text.append(get_text("\n🔍 Research Agent\n", "\n🔍 Research Agent\n"), style="bold green") |
| 260 | for agent_name, status in research_agents.items(): |
| 261 | status_icon = { |
| 262 | "pending": get_text("⏳等待中...", "⏳ Pending..."), |
| 263 | "running": get_text("🔄分析中...", "🔄 Analyzing..."), |
| 264 | "completed": get_text("✅分析完成", "✅ Analysis Complete") |
| 265 | }.get(status, "❓") |
| 266 | |
| 267 | agent_display = agent_name[:20].ljust(20) |
| 268 | status_text.append(f"{agent_display} {status_icon}\n") |
| 269 | |
| 270 | status_panel = Panel( |
| 271 | status_text, |
| 272 | title=get_text("🤖 Agent状态", "🤖 Agent Status"), |
| 273 | border_style="yellow", |
| 274 | padding=(0, 1), |
| 275 | expand=True # 自适应宽度 |
| 276 | ) |
| 277 | layout["status"].update(status_panel) |
| 278 |
no test coverage detected