MCPcopy Create free account
hub / github.com/AgentOps-AI/agentops / handle_actions

Function handle_actions

app/api/agentops/api/event_handlers.py:17–54  ·  view source on GitHub ↗
(event, session_id, supabase: AsyncSupabaseClient = None)

Source from the content-addressed store, hash-verified

15
16
17async def handle_actions(event, session_id, supabase: AsyncSupabaseClient = None):
18 if supabase is None:
19 supabase = await get_async_supabase()
20
21 async def process_screenshot(screenshot, session_id):
22 if screenshot is None:
23 return None
24
25 if screenshot.startswith("http://") or screenshot.startswith("https://"):
26 return screenshot
27
28 # screenshot is a base64 string
29 base64_img_bytes = screenshot.replace("data:image/png;base64,", "")
30 base64_img_bytes += "=" * ((4 - len(base64_img_bytes) % 4) % 4)
31 img_bytes = base64.b64decode(base64_img_bytes)
32 timestamp_utc = datetime.datetime.now(datetime.timezone.utc).isoformat()
33
34 try:
35 await supabase.storage.from_("screenshots").upload(f"{session_id}/{timestamp_utc}.png", img_bytes)
36 except RuntimeError as e:
37 logger.warning(f"Error posting screenshot: {e}")
38 return None
39
40 return f"{SUPABASE_URL}/storage/v1/object/screenshots/{session_id}/{timestamp_utc}.png"
41
42 action = {
43 "id": event.get("id", str(uuid.uuid4())),
44 "session_id": session_id,
45 "agent_id": event.get("agent_id", None),
46 "action_type": event.get("action_type", None),
47 "logs": event.get("logs", None),
48 "screenshot": await process_screenshot(event.get("screenshot", None), session_id),
49 "params": event.get("params", None),
50 "returns": event.get("returns", None),
51 "init_timestamp": event["init_timestamp"],
52 "end_timestamp": event["end_timestamp"],
53 }
54 return action
55
56
57async def handle_llms(event, premium, session_id, supabase: AsyncSupabaseClient = None):

Callers

nothing calls this directly

Calls 3

get_async_supabaseFunction · 0.90
process_screenshotFunction · 0.85
getMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…