Files
manual_slop/run_repro.py

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()