# retoor CATEGORY_BY_PREFIX: dict[str, str] = { "auth": "auth", "profile": "account", "follow": "social", "award": "social", "relation": "social", "push": "push", "notification": "notification", "message": "message", "post": "content", "comment": "content", "gist": "content", "issue": "content", "vote": "engagement", "reaction": "engagement", "bookmark": "engagement", "poll": "engagement", "project": "project", "file": "project_files", "dir": "project_files", "files": "project_files", "job.zip": "project_files", "job.backup": "backup", "backup": "backup", "attachment": "attachment", "news": "news", "admin": "admin", "service": "service", "gateway": "ai", "container": "container", "proxy": "ingress", "seo": "tools", "deepsearch": "tools", "isslop": "tools", "ai": "ai", "database": "database", "pubsub": "pubsub", "telegram": "telegram", "devii": "devii", "email": "email", "cli": "cli", "reward": "reward", "security": "security", } EVENT_RESULTS = ("success", "failure", "denied") ACTOR_KINDS = ("user", "guest", "system", "cli", "service") ORIGINS = ("web", "api", "devii", "cli", "service", "scheduler", "devrant") def category_for(event_key: str) -> str: if not event_key: return "other" parts = event_key.split(".") for size in range(len(parts), 0, -1): prefix = ".".join(parts[:size]) if prefix in CATEGORY_BY_PREFIX: return CATEGORY_BY_PREFIX[prefix] return parts[0]