diff --git a/agent.py b/agent.py index d05d21b..f9e3c1c 100644 --- a/agent.py +++ b/agent.py @@ -1144,12 +1144,40 @@ class Openpannel(A2AAgent): parameters: dict[str, Any] | None = None, body: Any | None = None, ) -> dict[str, Any]: - return await self._request( + params = parameters or {} + project_id = params.get("projectId") + if not project_id: + return { + "ok": False, + "status_code": 400, + "operation_id": "get_insights_project_id_traffic_geo", + "error": "missing required path parameter 'projectId'", + } + + geo = await self.get_project_geo_from_events( ctx, - "get_insights_project_id_traffic_geo", - parameters=parameters or {}, - body=body, + projectId=str(project_id), + start=params.get("startDate") or params.get("start"), + end=params.get("endDate") or params.get("end"), + range=str(params.get("range") or "today"), + limit=int(params.get("limit") or 250), + max_pages=int(params.get("max_pages") or 4), ) + if not geo.get("ok"): + geo["operation_id"] = "get_insights_project_id_traffic_geo" + return geo + return { + "ok": True, + "status_code": 200, + "operation_id": "get_insights_project_id_traffic_geo", + "result": { + "projectId": project_id, + "geo": geo.get("geo", []), + "sample_events": geo.get("sample_events", []), + "events_scanned": geo.get("events_scanned", 0), + "source": "export/events", + }, + } @skill( name="get_insights_project_id_traffic_devices",