Files
autogen/verify_v3_code.py
2026-03-12 13:27:03 +08:00

158 lines
4.1 KiB
Python

# -*- coding: utf-8 -*-
"""
Verify streamlit_app_v3.py code structure and functionality
"""
import sys
from pathlib import Path
print("=" * 70)
print("Streamlit V3 - Code Verification")
print("=" * 70)
print()
# 1. Check file existence
print("1. Checking file existence...")
v3_file = Path("frontend/streamlit_app_v3.py")
if v3_file.exists():
print(f" [OK] frontend/streamlit_app_v3.py exists ({v3_file.stat().st_size:,} bytes)")
else:
print(f" [ERROR] frontend/streamlit_app_v3.py not found")
sys.exit(1)
print()
# 2. Check key functions
print("2. Checking key functions...")
with open(v3_file, 'r', encoding='utf-8') as f:
content = f.read()
required_functions = [
"init_session_state",
"display_agent_status_row",
"display_active_agent_banner",
"display_chat_flow",
"create_agents",
"add_message",
"main"
]
for func in required_functions:
if f"def {func}(" in content:
print(f" [OK] {func}() defined")
else:
print(f" [MISSING] {func}() not found")
print()
# 3. Check Agent configuration
print("3. Checking Agent configuration...")
agents = ["PM_Agent", "QA_Agent", "Dev_Agent", "Orchestrator", "User_Proxy"]
for agent in agents:
if f'"{agent}"' in content:
print(f" [OK] {agent} configured")
else:
print(f" [MISSING] {agent} not configured")
print()
# 4. Check CSS styles
print("4. Checking CSS styles...")
css_classes = [
"agent-status-card",
"agent-chat-bubble",
"active-agent-banner",
"task-badge",
"chat-flow-indicator"
]
for css_class in css_classes:
if css_class in content:
print(f" [OK] .{css_class} defined")
else:
print(f" [MISSING] .{css_class} not found")
print()
# 5. Check core features
print("5. Checking core features...")
features = {
"Real-time Agent Status": "agent_status",
"Task Badge": "task",
"Chat Flow": "chat_flow",
"Current Agent": "current_agent",
"Flow Arrow": "flow-arrow"
}
for feature_name, feature_key in features.items():
if feature_key in content:
print(f" [OK] {feature_name} implemented")
else:
print(f" [MISSING] {feature_name} not found")
print()
# 6. Check imports
print("6. Checking imports...")
required_imports = [
"import streamlit as st",
"from autogen import",
"from config.llm_config import"
]
for imp in required_imports:
if imp in content:
print(f" [OK] {imp}")
else:
print(f" [MISSING] {imp}")
print()
# 7. Syntax check
print("7. Python syntax check...")
import py_compile
try:
py_compile.compile(str(v3_file), doraise=True)
print(f" [OK] Syntax valid")
except py_compile.PyCompileError as e:
print(f" [ERROR] Syntax error: {e}")
print()
# 8. File structure comparison
print("8. Comparing with v2...")
v2_file = Path("frontend/streamlit_app.py")
v3_file_path = Path("frontend/streamlit_app_v3.py")
print(f" v2 (streamlit_app.py): {v2_file.stat().st_size:,} bytes")
print(f" v3 (streamlit_app_v3.py): {v3_file_path.stat().st_size:,} bytes")
if v2_file.exists():
size_diff = v3_file_path.stat().st_size - v2_file.stat().st_size
print(f" Size increase: {size_diff:,} bytes")
print()
# 9. Summary
print("=" * 70)
print("Verification Summary")
print("=" * 70)
print()
all_checks_passed = True
checks = [
v3_file.exists(),
all(f"def {func}(" in content for func in required_functions),
all(f'"{agent}"' in content for agent in agents),
all(css_class in content for css_class in css_classes),
all(feature_key in content for feature_key in features.values()),
]
if all(checks):
print("[OK] All checks passed!")
print()
print("New features in V3:")
print(" - Real-time Agent Status Row (with task badges)")
print(" - Active Agent Banner (green highlight)")
print(" - Chat Flow Display (colored bubbles)")
print(" - Task Badge System")
print(" - Flow Direction Arrows")
print(" - Timestamp Display")
print()
print("Usage:")
print(" streamlit run frontend/streamlit_app_v3.py")
else:
print("Warning: Some checks failed. Please review the output above.")
print()