158 lines
4.1 KiB
Python
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()
|