"""Public leaderboards → append-only `benchmark_results` (tier 2). One connector class per leaderboard domain (the SDK binds one `source_key` per connector, and each board has its own rate limit and provenance) — module kept as `leaderboards`. * aider_leaderboard raw polyglot_leaderboard.yml from the aider repository → `aider-polyglot` (pass_rate_2 + well-formed rate). * swebench_leaderboard https://www.swebench.com/ embeds `', re.DOTALL) class ArtificialAnalysisConnector(_Leaderboard): name = "artificial_analysis" label = "Artificial Analysis — Intelligence Index and component evaluations" description = "Model leaderboard page (RSC payload): Intelligence Index with version, component evaluations, openness and release dates." source_key = "artificialanalysis.ai" rate_per_min = 6 expected_min_records = 100 URL = "https://artificialanalysis.ai/leaderboards/models" async def discover(self, ctx: RunContext) -> list[Target]: return [Target(url=self.URL, doc_type="leaderboard", key="aa_models", min_bytes=50000, priority=1)] async def extract(self, ctx: RunContext, target: Target, res: FetchResult, parsed: Parsed) -> Facts: facts = Facts() models, version = parse_rsc_models(res.text) if not models: ctx.log.warning("artificial analysis: no model objects in the RSC payload") return facts index = benchmark_ref("artificial-analysis-intelligence-index") assert index facts.entities.append(index) benches = {k: benchmark_ref(k) for k, *_ in AA_EVALS.values()} for slug, m in models.items(): name = (m.get("name") or slug).strip() creator = m.get("creator") or {} creator_name = creator.get("name") or m.get("modelCreatorName") org = org_from_name(facts, creator.get("slug"), creator_name) if org is None and creator_name: org = facts.entity("company", creator_name, identifiers={"artificial_analysis_creator": creator.get("slug") or _slug(creator_name)}) ref = facts.entity("model", name[:200], identifiers={"artificial_analysis": slug}, organization=org, aliases=[a for a in {slug, m.get("shortName")} if a and a != name]) if m.get("releaseDate"): facts.claim(ref, "release_date", str(m["releaseDate"])[:10]) if isinstance(m.get("isOpenWeights"), bool): facts.claim(ref, "openness", "open-weights" if m["isOpenWeights"] else "proprietary") if isinstance(m.get("isReasoning"), bool): facts.claim(ref, "reasoning", m["isReasoning"]) if m.get("deprecated") is True: facts.claim(ref, "status", "deprecated") if isinstance(m.get("contextWindowTokens"), int) and m["contextWindowTokens"] > 0: facts.claim(ref, "context_length", m["contextWindowTokens"], unit="tokens") if isinstance(m.get("medianOutputTokensPerSecond"), (int, float)): facts.claim(ref, "metric.aa_median_output_tokens_per_second", round(float(m["medianOutputTokensPerSecond"]), 1)) ii = m.get("intelligenceIndex") if isinstance(ii, (int, float)): cfg = {"version": version, "estimated": bool(m.get("intelligenceIndexIsEstimated")), "aa_slug": slug} facts.result(model=ref, benchmark=index, score=round(float(ii), 2), metric="index", unit="", config=cfg, source_url=self.URL) for field, (bkey, metric, variant) in AA_EVALS.items(): v = m.get(field) bench = benches.get(bkey) if bench is None or not isinstance(v, (int, float)): continue if bench not in facts.entities: facts.entities.append(bench) cfg = {"evaluator": "Artificial Analysis", "index_version": version, "aa_slug": slug} if variant: cfg["variant"] = variant facts.result(model=ref, benchmark=bench, score=round(float(v) * 100, 2), metric=metric, unit="%", config=cfg, source_url=self.URL) facts.document_entity = index facts.document_title = f"Artificial Analysis models — Intelligence Index v{version}" if version else "Artificial Analysis models" return facts def parse_rsc_models(html: str) -> tuple[dict[str, dict[str, Any]], str | None]: """Concatenate the Next.js flight chunks, parse each `id:json` line and collect every object with `slug` + `intelligenceIndex`.""" chunks = [] for p in PUSH.findall(html): try: chunks.append(json.loads('"' + p + '"')) except json.JSONDecodeError: continue blob = "".join(chunks) version_m = re.search(r"Intelligence Index v(\d+(?:\.\d+)?)", blob) models: dict[str, dict[str, Any]] = {} for line in blob.split("\n"): _, sep, payload = line.partition(":") if not sep or "intelligenceIndex" not in payload: continue try: data = json.loads(payload) except json.JSONDecodeError: continue stack = [data] while stack: o = stack.pop() if isinstance(o, dict): if "intelligenceIndex" in o and isinstance(o.get("slug"), str): models.setdefault(o["slug"], o) else: stack.extend(o.values()) elif isinstance(o, list): stack.extend(o) return models, (version_m.group(1) if version_m else None) CONNECTORS = [AiderLeaderboardConnector, SweBenchLeaderboardConnector, LiveBenchLeaderboardConnector, ArtificialAnalysisConnector]