68 lines
1.8 KiB
Python
68 lines
1.8 KiB
Python
import time
|
|
import requests
|
|
import sys
|
|
import os
|
|
|
|
# Ensure src/ is in path
|
|
project_root = os.path.dirname(os.path.abspath(__file__))
|
|
src_path = os.path.join(project_root, "src")
|
|
sys.path.insert(0, src_path)
|
|
|
|
from api_hook_client import ApiHookClient
|
|
|
|
def run_repro():
|
|
client = ApiHookClient("http://127.0.0.1:8999")
|
|
if not client.wait_for_server(timeout=15):
|
|
print("Failed to connect to GUI Hook Server.")
|
|
return
|
|
|
|
print("[REPRO] Connected to GUI.")
|
|
|
|
# 1. Reset and Setup
|
|
client.click("btn_reset")
|
|
time.sleep(1)
|
|
client.set_value("auto_add_history", True)
|
|
client.set_value("manual_approve", False) # Auto-approve for simulation
|
|
client.set_value("current_provider", "gemini_cli")
|
|
|
|
mock_script = os.path.abspath("tests/mock_gemini_cli.py")
|
|
client.set_value("gcli_path", f'"{sys.executable}" "{mock_script}"')
|
|
|
|
# 2. Trigger Chat
|
|
msg = "What is the current date and time? Answer in one sentence."
|
|
print(f"[REPRO] Sending message: {msg}")
|
|
client.set_value("ai_input", msg)
|
|
client.click("btn_gen_send")
|
|
|
|
# 3. Wait and Monitor
|
|
start_time = time.time()
|
|
while time.time() - start_time < 30:
|
|
status = client.get_value("ai_status")
|
|
print(f"[REPRO] Status: {status}")
|
|
|
|
if status == "error":
|
|
print("[REPRO] DETECTED ERROR STATUS!")
|
|
# Try to get more info if possible
|
|
break
|
|
|
|
if status == "done":
|
|
print("[REPRO] Success! Status is done.")
|
|
break
|
|
|
|
# Check events
|
|
events = client.get_events()
|
|
for ev in events:
|
|
print(f"[REPRO] Received Event: {ev.get('type')}")
|
|
|
|
time.sleep(1)
|
|
|
|
# 4. Check Session
|
|
session = client.get_session()
|
|
entries = session.get('session', {}).get('entries', [])
|
|
print(f"[REPRO] History Entries: {len(entries)}")
|
|
for i, entry in enumerate(entries):
|
|
print(f" {i}: [{entry.get('role')}] {entry.get('content')[:100]}...")
|
|
|
|
if __name__ == "__main__":
|
|
run_repro()
|