@@ -55,11 +55,30 @@ def root_version() -> str:
5555 raise RuntimeError ("could not find version in root pyproject.toml" )
5656 return m .group (1 )
5757
58- # The six alias distribution names successfully registered on PyPI.
59- # Three other candidates (``openclaw-bench``, ``claw-bench-harness``,
60- # ``harnessbench``) were rejected by PyPI's similarity check as too
61- # close to names we had already taken — so they live nowhere and are
62- # omitted here on purpose.
58+ # Alias distribution names successfully registered on PyPI.
59+ #
60+ # First wave (packaging PR): harness-bench, clawbench-eval, clawbench-cli,
61+ # openclawbench, clawbench-harness, claw-harness, nail-clawbench.
62+ #
63+ # Second wave (adjacent harness/agent names): harnessos, r2agent, claw-ai,
64+ # claw-agent, claw-eval.
65+ #
66+ # Third wave (research-themed squats): everyday-bench, everyday-agent,
67+ # life-bench, realtask-bench, web-harness, task-harness, video-mcq,
68+ # mcq-bench, vlm-judge, video-judge, nail-bench, nail-agent, nail-eval,
69+ # nail-group.
70+ #
71+ # Names we tried and couldn't take:
72+ # - 403 (already owned): harness, browser-use, computer-use, claw,
73+ # clawbot, openclaw, claw-ops, agent-harness
74+ # - 400 similarity (too close to something we just took or pre-existing):
75+ # openclaw-bench, claw-bench-harness, harnessbench, harness-os, clawai,
76+ # clawagent, claweval, lifebench, agentharness, webharness, taskharness,
77+ # videomcq, mcqbench
78+ # For hyphen/underscore variants of names we DID take (``claw-ai`` ↔
79+ # ``claw_ai``), PEP 503 normalization means pip resolves them to the same
80+ # distribution anyway — so ``pip install claw_ai`` still lands on our
81+ # package.
6382ALIAS_NAMES = [
6483 "harness-bench" ,
6584 "clawbench-eval" ,
@@ -68,7 +87,43 @@ def root_version() -> str:
6887 "clawbench-harness" ,
6988 "claw-harness" ,
7089 "nail-clawbench" ,
90+ "harnessos" ,
91+ "r2agent" ,
92+ "claw-ai" ,
93+ "claw-agent" ,
94+ "claw-eval" ,
95+ "everyday-bench" ,
96+ "everyday-agent" ,
97+ "life-bench" ,
98+ "realtask-bench" ,
99+ "web-harness" ,
100+ "task-harness" ,
101+ "video-mcq" ,
102+ "mcq-bench" ,
103+ "vlm-judge" ,
104+ "video-judge" ,
105+ "nail-bench" ,
106+ "nail-agent" ,
107+ "nail-eval" ,
108+ "nail-group" ,
109+ # Fourth wave — harness-hub was the only slot the permutation sweep
110+ # cracked. Wave 5 (computer/browser/harness/claw × bench/eval/agent/
111+ # design, plus agentic/operator/mcp/sandbox/runtime/swarm/rollout/
112+ # deep-research hot-word combos, 75 candidates) returned zero: the
113+ # AI-agent generic-permutation namespace is effectively fully claimed
114+ # on PyPI.
115+ "harness-hub" ,
116+ "r2-harness" ,
117+ "scaling-law" ,
71118]
119+ # Exhaustive negative result: waves 4-8 tried ~200 additional permutations
120+ # (generic {computer|browser|harness|claw} × {bench|eval|agent|design},
121+ # agent-ecosystem hot words like mcp/operator/agentic/sandbox/runtime,
122+ # unusual noun-noun compounds, numeric suffixes, project-ish compounds).
123+ # Only ``harness-hub`` stuck. Everything else was either 403 already-owned
124+ # or 400 similarity-blocked. Don't waste cycles retrying generic forms —
125+ # the AI-agent namespace is saturated on PyPI. If a specific name matters,
126+ # check pypi.org first rather than adding it here speculatively.
72127
73128PYPROJECT_TEMPLATE = '''\
74129 # Auto-generated by scripts/build-aliases.py — DO NOT EDIT BY HAND.
0 commit comments