From 6d7e43e65364661b0b937080ee32cc593d3f52a0 Mon Sep 17 00:00:00 2001 From: steventohme Date: Tue, 19 May 2026 14:20:11 -0700 Subject: [PATCH 1/2] Add Weave Router submission to leaderboard Adds the Weave Router (v0.27) entry to the leaderboard data, mirroring the upstream RouterArena README/PR #92 submission. Switches the overall rank computation to sort by Arena Score so site ranking matches the README ordering. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/data/routerData.ts | 2 +- src/data/routerMetrics/leaderboard.json | 11 +++++++++++ src/data/routers.json | 22 ++++++++++++++++++++++ src/data/routers.yaml | 21 +++++++++++++++++++++ 4 files changed, 55 insertions(+), 1 deletion(-) diff --git a/src/data/routerData.ts b/src/data/routerData.ts index 4f2b019..bfc9225 100644 --- a/src/data/routerData.ts +++ b/src/data/routerData.ts @@ -194,7 +194,7 @@ const routersWithRanks = rawRouterData.map(router => { }; }); -routersWithRanks.sort((a, b) => b._averageScore - a._averageScore); +routersWithRanks.sort((a, b) => b.metrics.arenaScore - a.metrics.arenaScore); routersWithRanks.forEach((router, index) => { router.metrics.overallRank = index + 1; }); diff --git a/src/data/routerMetrics/leaderboard.json b/src/data/routerMetrics/leaderboard.json index 4a82a13..c798a2e 100644 --- a/src/data/routerMetrics/leaderboard.json +++ b/src/data/routerMetrics/leaderboard.json @@ -1,4 +1,15 @@ [ + { + "Router Name": "Weave Router", + "Arena Score": 74.61, + "Optimal Selection Score": 1.38, + "Optimal Cost Score": 12.27, + "Optimal Acc. Score": 100.00, + "Robustness Score": 79.05, + "Latency Score": null, + "Accuracy": 78.43, + "Cost per 1k": 0.92 + }, { "Router Name": "R2-Router", "Arena Score": 71.60, diff --git a/src/data/routers.json b/src/data/routers.json index f33bd6d..ab38356 100644 --- a/src/data/routers.json +++ b/src/data/routers.json @@ -1,4 +1,26 @@ { + "Weave Router": { + "name": "Weave Router", + "type": "open-source", + "description": "Cluster-routing over a 12-model BYOK pool spanning Anthropic, OpenAI, Google, and OpenRouter providers. Embeds each prompt, scores against per-cluster model rankings, and selects the cost-quality optimum via an alpha-blended score.", + "affiliation": "Weave", + "modelPool": [ + "claude-opus-4-7", + "claude-sonnet-4-5", + "claude-haiku-4-5", + "gpt-5.5", + "gpt-5.4-mini", + "gpt-4.1", + "gemini-3.1-pro-preview", + "gemini-3.1-flash-lite-preview", + "deepseek/deepseek-v4-pro", + "deepseek/deepseek-v4-flash", + "qwen/qwen3.5-flash-02-23", + "moonshotai/kimi-k2.5" + ], + "websiteUrl": "https://weaverouter.com", + "githubUrl": "https://github.com/workweave/router" + }, "R2-Router": { "name": "R2-Router", "type": "open-source", diff --git a/src/data/routers.yaml b/src/data/routers.yaml index 8fa9c69..3d13c46 100644 --- a/src/data/routers.yaml +++ b/src/data/routers.yaml @@ -1,3 +1,24 @@ +Weave Router: + name: Weave Router + type: open-source + description: Cluster-routing over a 12-model BYOK pool spanning Anthropic, OpenAI, Google, and OpenRouter providers. Embeds each prompt, scores against per-cluster model rankings, and selects the cost-quality optimum via an alpha-blended score. + affiliation: Weave + modelPool: + - claude-opus-4-7 + - claude-sonnet-4-5 + - claude-haiku-4-5 + - gpt-5.5 + - gpt-5.4-mini + - gpt-4.1 + - gemini-3.1-pro-preview + - gemini-3.1-flash-lite-preview + - deepseek/deepseek-v4-pro + - deepseek/deepseek-v4-flash + - qwen/qwen3.5-flash-02-23 + - moonshotai/kimi-k2.5 + websiteUrl: https://weaverouter.com + githubUrl: https://github.com/workweave/router + RouterDC: name: RouterDC type: open-source From 9ac83f4fd14f411741f02bd28b259a0110151b29 Mon Sep 17 00:00:00 2001 From: steventohme Date: Tue, 19 May 2026 14:23:20 -0700 Subject: [PATCH 2/2] Revert sort logic change in routerData.ts Keep overallRank sort by average score as before. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/data/routerData.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/routerData.ts b/src/data/routerData.ts index bfc9225..4f2b019 100644 --- a/src/data/routerData.ts +++ b/src/data/routerData.ts @@ -194,7 +194,7 @@ const routersWithRanks = rawRouterData.map(router => { }; }); -routersWithRanks.sort((a, b) => b.metrics.arenaScore - a.metrics.arenaScore); +routersWithRanks.sort((a, b) => b._averageScore - a._averageScore); routersWithRanks.forEach((router, index) => { router.metrics.overallRank = index + 1; });