import requests
import time
import sys
BASE_URL = "http://192.168.68.113:8000/api/v1"
HEADERS = {"X-User-ID": "585cd6e9-05e5-42ac-83a5-93029c6cb038"}
def check():
print("1. Fetching agents...")
resp = requests.get(f"{BASE_URL}/agents", headers=HEADERS)
if not resp.ok:
print(f"Failed to fetch agents: {resp.text}")
sys.exit(1)
agents = resp.json()
if not agents:
print("No agents found for user.")
sys.exit(1)
agent_id = agents[0]["id"]
print(f"2. Injecting test task to Agent {agent_id}...")
inject_resp = requests.post(f"{BASE_URL}/agents/{agent_id}/run", json={"prompt": "list the current directory on your node please"}, headers=HEADERS)
if not inject_resp.ok:
print(f"Inject failed: {inject_resp.text}")
sys.exit(1)
print("3. Polling for evaluation completion...")
start_time = time.time()
last_status = ""
last_eval_status = ""
while time.time() - start_time < 120:
a_resp = requests.get(f"{BASE_URL}/agents", headers=HEADERS)
if not a_resp.ok: continue
alist = a_resp.json()
me = next((a for a in alist if a["id"] == agent_id), None)
if not me: continue
curr_status = me.get("status", "unknown")
curr_eval = me.get("evaluation_status", "")
if curr_status != last_status or curr_eval != last_eval_status:
print(f"[{int(time.time() - start_time)}s] Status: {curr_status} | Eval: {curr_eval}")
last_status = curr_status
last_eval_status = curr_eval
if curr_status in ("idle", "error_suspended") and time.time() - start_time > 5:
# Check if eval was passed
print("\nFinal State Reached.")
print(f"Successful Runs: {me.get('successful_runs', 0)}")
print(f"Latest Score: {me.get('latest_quality_score', 0)}")
# Print last message
if me.get("session_id"):
m_resp = requests.get(f"{BASE_URL}/sessions/{me['session_id']}/messages", headers=HEADERS)
if m_resp.ok:
msgs = m_resp.json().get("messages", [])
if msgs:
print(f"Last Assistant Msg: {msgs[-1]['content'][:200]}...")
break
time.sleep(2)
if __name__ == "__main__":
check()