72 lines
3.1 KiB
Python
72 lines
3.1 KiB
Python
"""Test AG SDK RPC to understand what data is available for current session."""
|
|
import requests, json, sys, io
|
|
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace')
|
|
|
|
BASE = "http://127.0.0.1:34332"
|
|
SESSION = "bdfc07d3-d87e-453a-b785-e38c2e9254e3"
|
|
|
|
def rpc(method, args=None):
|
|
r = requests.post(f"{BASE}/test-rpc", json={"method": method, "args": args or {}})
|
|
if r.status_code != 200:
|
|
print(f"❌ {method}: {r.status_code} - {r.text[:200]}")
|
|
return None
|
|
try:
|
|
return r.json()
|
|
except:
|
|
print(f"❌ {method}: non-JSON response: {r.text[:200]}")
|
|
return None
|
|
|
|
# 1. Try GetCascadeTrajectorySteps for current session
|
|
print("=== GetCascadeTrajectorySteps ===")
|
|
result = rpc("GetCascadeTrajectorySteps", {"cascadeId": SESSION, "verbosity": 1})
|
|
if result and "steps" in result:
|
|
steps = result["steps"]
|
|
print(f" Got {len(steps)} steps")
|
|
for i, s in enumerate(steps[-5:]):
|
|
print(f" Step {i}: type={s.get('type','?')} status={s.get('status','?')}")
|
|
if s.get('plannerResponse'):
|
|
pr = s['plannerResponse']
|
|
if isinstance(pr, str):
|
|
print(f" plannerResponse (str): {pr[:100]}...")
|
|
elif isinstance(pr, dict):
|
|
print(f" plannerResponse keys: {list(pr.keys())}")
|
|
for k, v in pr.items():
|
|
if isinstance(v, str) and len(v) > 20 and k not in ('thinking', 'thinkingSignature'):
|
|
print(f" {k}: {v[:100]}...")
|
|
else:
|
|
print(" No steps returned")
|
|
|
|
# 2. Try GetDiagnostics
|
|
print("\n=== GetDiagnostics ===")
|
|
diag = rpc("GetDiagnostics", {})
|
|
if diag:
|
|
if isinstance(diag, str):
|
|
diag = json.loads(diag)
|
|
recent = diag.get("recentTrajectories", [])
|
|
print(f" recentTrajectories: {len(recent)}")
|
|
for rt in recent:
|
|
sid = rt.get("googleAgentId", "?")
|
|
if sid.startswith("bdfc"):
|
|
print(f" ★ Current session: {json.dumps(rt, indent=2)[:500]}")
|
|
|
|
# 3. Try GetAllCascadeTrajectories looking for our session
|
|
print("\n=== GetAllCascadeTrajectories ===")
|
|
traj = rpc("GetAllCascadeTrajectories", {"limit": 100, "descending": True})
|
|
if traj and "trajectorySummaries" in traj:
|
|
summaries = traj["trajectorySummaries"]
|
|
print(f" Total trajectories: {len(summaries)}")
|
|
for sid, data in summaries.items():
|
|
if sid.startswith("bdfc"):
|
|
print(f" ★ Current session keys: {list(data.keys())}")
|
|
print(f" status: {data.get('status')}")
|
|
print(f" stepCount: {data.get('stepCount')}")
|
|
print(f" latestNotifyUserStep: {json.dumps(data.get('latestNotifyUserStep'), indent=2)[:300] if data.get('latestNotifyUserStep') else 'None'}")
|
|
print(f" latestTaskBoundaryStep: {json.dumps(data.get('latestTaskBoundaryStep'), indent=2)[:300] if data.get('latestTaskBoundaryStep') else 'None'}")
|
|
|
|
# 4. Try other RPC methods that might exist
|
|
print("\n=== Trying alternative RPCs ===")
|
|
for method in ["GetCascadeStatus", "GetAgentStatus", "ListCascades", "GetCascadeInfo"]:
|
|
result = rpc(method, {"cascadeId": SESSION})
|
|
if result:
|
|
print(f" {method}: {json.dumps(result)[:200]}")
|