cua-speedrun 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. cua_speedrun-0.3.0/.gitignore +30 -0
  2. cua_speedrun-0.3.0/PKG-INFO +250 -0
  3. cua_speedrun-0.3.0/README.md +125 -0
  4. cua_speedrun-0.3.0/agents/claude/agent.json +7 -0
  5. cua_speedrun-0.3.0/agents/claude/agent.py +739 -0
  6. cua_speedrun-0.3.0/agents/claude/init.py +57 -0
  7. cua_speedrun-0.3.0/agents/claude_code/agent.json +7 -0
  8. cua_speedrun-0.3.0/agents/claude_code/agent.py +440 -0
  9. cua_speedrun-0.3.0/agents/claude_code/init.py +156 -0
  10. cua_speedrun-0.3.0/agents/codex_cli/agent.json +7 -0
  11. cua_speedrun-0.3.0/agents/codex_cli/agent.py +327 -0
  12. cua_speedrun-0.3.0/agents/codex_cli/init.py +155 -0
  13. cua_speedrun-0.3.0/agents/gemini35/agent.json +7 -0
  14. cua_speedrun-0.3.0/agents/gemini35/agent.py +817 -0
  15. cua_speedrun-0.3.0/agents/gemini35/init.py +35 -0
  16. cua_speedrun-0.3.0/agents/gemini3_flash_preview/agent.json +7 -0
  17. cua_speedrun-0.3.0/agents/gemini3_flash_preview/agent.py +996 -0
  18. cua_speedrun-0.3.0/agents/gemini3_flash_preview/init.py +34 -0
  19. cua_speedrun-0.3.0/agents/gemini_new/agent.json +7 -0
  20. cua_speedrun-0.3.0/agents/gemini_new/agent.py +1087 -0
  21. cua_speedrun-0.3.0/agents/gemini_new/init.py +34 -0
  22. cua_speedrun-0.3.0/agents/glm5v_turbo/agent.json +7 -0
  23. cua_speedrun-0.3.0/agents/glm5v_turbo/agent.py +1283 -0
  24. cua_speedrun-0.3.0/agents/glm5v_turbo/init.py +43 -0
  25. cua_speedrun-0.3.0/agents/glm_cua/agent.json +7 -0
  26. cua_speedrun-0.3.0/agents/glm_cua/agent.py +800 -0
  27. cua_speedrun-0.3.0/agents/glm_cua/init.py +30 -0
  28. cua_speedrun-0.3.0/agents/gpt54/agent.json +7 -0
  29. cua_speedrun-0.3.0/agents/gpt54/agent.py +772 -0
  30. cua_speedrun-0.3.0/agents/gpt54/init.py +27 -0
  31. cua_speedrun-0.3.0/agents/kimi_k3/agent.json +7 -0
  32. cua_speedrun-0.3.0/agents/kimi_k3/agent.py +904 -0
  33. cua_speedrun-0.3.0/agents/kimi_k3/init.py +33 -0
  34. cua_speedrun-0.3.0/agents/meta/agent.json +7 -0
  35. cua_speedrun-0.3.0/agents/meta/agent.py +1497 -0
  36. cua_speedrun-0.3.0/agents/meta/init.py +26 -0
  37. cua_speedrun-0.3.0/agents/minimax_m3/agent.json +7 -0
  38. cua_speedrun-0.3.0/agents/minimax_m3/agent.py +915 -0
  39. cua_speedrun-0.3.0/agents/minimax_m3/init.py +29 -0
  40. cua_speedrun-0.3.0/agents/qwen35vl/agent.json +4 -0
  41. cua_speedrun-0.3.0/agents/qwen35vl/agent.py +830 -0
  42. cua_speedrun-0.3.0/agents/qwen35vl/init.py +262 -0
  43. cua_speedrun-0.3.0/agents/qwen3vl/agent.json +4 -0
  44. cua_speedrun-0.3.0/agents/qwen3vl/agent.py +322 -0
  45. cua_speedrun-0.3.0/agents/qwen3vl/init.py +276 -0
  46. cua_speedrun-0.3.0/benchmarks/cua-world-26/README.md +52 -0
  47. cua_speedrun-0.3.0/benchmarks/cua-world-26/benchmark-source.yaml +750 -0
  48. cua_speedrun-0.3.0/benchmarks/cua-world-26/setup-patches/dhis2.yaml +69 -0
  49. cua_speedrun-0.3.0/benchmarks/cua-world-26/setup-patches/jstock.yaml +129 -0
  50. cua_speedrun-0.3.0/benchmarks/cua-world-26/setup-patches/odoo.yaml +56 -0
  51. cua_speedrun-0.3.0/benchmarks/cua-world-26/setup-patches/oracle.yaml +122 -0
  52. cua_speedrun-0.3.0/benchmarks/cua-world-26/setup-patches/rocket-chat.yaml +5 -0
  53. cua_speedrun-0.3.0/benchmarks/cua-world-26/setup-patches/splunk.yaml +56 -0
  54. cua_speedrun-0.3.0/benchmarks/cua-world-offline/benchmark-source.yaml +3860 -0
  55. cua_speedrun-0.3.0/benchmarks/my-pc-bench/README.md +19 -0
  56. cua_speedrun-0.3.0/benchmarks/my-pc-bench/benchmark-source.yaml +131 -0
  57. cua_speedrun-0.3.0/benchmarks/mypcbench-image.json +19 -0
  58. cua_speedrun-0.3.0/benchmarks/osworld-50/benchmark-source.yaml +141 -0
  59. cua_speedrun-0.3.0/benchmarks/osworld-image.json +17 -0
  60. cua_speedrun-0.3.0/benchmarks/osworld-offline/benchmark-source.yaml +646 -0
  61. cua_speedrun-0.3.0/benchmarks/osworld2-52/benchmark-source.yaml +76 -0
  62. cua_speedrun-0.3.0/benchmarks/osworld2-offline/benchmark-source.yaml +132 -0
  63. cua_speedrun-0.3.0/catalog/benchmarks.yaml +8 -0
  64. cua_speedrun-0.3.0/catalog/tracks.yaml +7 -0
  65. cua_speedrun-0.3.0/pyproject.toml +138 -0
  66. cua_speedrun-0.3.0/scripts/build_mypcbench_modal_image.py +144 -0
  67. cua_speedrun-0.3.0/scripts/build_mypcbench_subset.py +352 -0
  68. cua_speedrun-0.3.0/scripts/build_osworld_modal_base.py +361 -0
  69. cua_speedrun-0.3.0/scripts/build_osworld_modal_qcow2.py +157 -0
  70. cua_speedrun-0.3.0/scripts/build_osworld_subset.py +149 -0
  71. cua_speedrun-0.3.0/scripts/import_cua_world_long.py +435 -0
  72. cua_speedrun-0.3.0/scripts/import_osworld2.py +520 -0
  73. cua_speedrun-0.3.0/scripts/import_osworld_eval.py +239 -0
  74. cua_speedrun-0.3.0/scripts/mypcbench_shared/canonical/LICENSE +21 -0
  75. cua_speedrun-0.3.0/scripts/mypcbench_shared/canonical/README.md +10 -0
  76. cua_speedrun-0.3.0/scripts/mypcbench_shared/canonical/osworld_full_traj_judge.py +537 -0
  77. cua_speedrun-0.3.0/scripts/mypcbench_shared/canonical/provenance.json +8 -0
  78. cua_speedrun-0.3.0/scripts/mypcbench_shared/mypcbench_setup.py +315 -0
  79. cua_speedrun-0.3.0/scripts/mypcbench_shared/mypcbench_verifier.py +283 -0
  80. cua_speedrun-0.3.0/scripts/mypcbench_shared/native_delta.sh +103 -0
  81. cua_speedrun-0.3.0/scripts/mypcbench_shared/native_image.py +31 -0
  82. cua_speedrun-0.3.0/scripts/osworld2_adapter.py +786 -0
  83. cua_speedrun-0.3.0/scripts/osworld2_seed_modal.py +221 -0
  84. cua_speedrun-0.3.0/scripts/osworld_shared/osworld_setup.py +484 -0
  85. cua_speedrun-0.3.0/scripts/osworld_shared/osworld_verifier.py +367 -0
  86. cua_speedrun-0.3.0/scripts/osworld_task_patches/chrome__3299584d-8f11-4457-bf4c-ce98f7600250.json +17 -0
  87. cua_speedrun-0.3.0/scripts/osworld_task_patches/chrome__6766f2b8-8a72-417f-a9e5-56fcaa735837.json +17 -0
  88. cua_speedrun-0.3.0/scripts/osworld_task_patches/chrome__9656a811-9b5b-4ddf-99c7-5117bcef0626.json +17 -0
  89. cua_speedrun-0.3.0/scripts/osworld_task_patches/multi_apps__2373b66a-092d-44cb-bfd7-82e86e7a3b4d.json +17 -0
  90. cua_speedrun-0.3.0/scripts/osworld_task_patches/multi_apps__48d05431-6cd5-4e76-82eb-12b60d823f7d.json +16 -0
  91. cua_speedrun-0.3.0/scripts/osworld_task_patches/multi_apps__716a6079-22da-47f1-ba73-c9d58f986a38.json +17 -0
  92. cua_speedrun-0.3.0/scripts/osworld_task_patches/multi_apps__9f3bb592-209d-43bc-bb47-d77d9df56504.json +17 -0
  93. cua_speedrun-0.3.0/scripts/osworld_task_patches/multi_apps__a74b607e-6bb5-4ea8-8a7c-5d97c7bbcd2a.json +17 -0
  94. cua_speedrun-0.3.0/scripts/osworld_task_patches/os__37887e8c-da15-4192-923c-08fa390a176d.json +16 -0
  95. cua_speedrun-0.3.0/scripts/osworld_task_patches/os__4783cc41-c03c-4e1b-89b4-50658f642bd5.json +16 -0
  96. cua_speedrun-0.3.0/scripts/osworld_task_patches/os__4d117223-a354-47fb-8b45-62ab1390a95f.json +20 -0
  97. cua_speedrun-0.3.0/scripts/osworld_task_patches/os__5812b315-e7bd-4265-b51f-863c02174c28.json +17 -0
  98. cua_speedrun-0.3.0/scripts/osworld_task_patches/os__5c1075ca-bb34-46a3-a7a0-029bd7463e79.json +20 -0
  99. cua_speedrun-0.3.0/scripts/osworld_task_patches/os__5ced85fc-fa1a-4217-95fd-0fb530545ce2.json +16 -0
  100. cua_speedrun-0.3.0/scripts/osworld_task_patches/os__6f56bf42-85b8-4fbb-8e06-6c44960184ba.json +16 -0
  101. cua_speedrun-0.3.0/scripts/osworld_task_patches/os__a462a795-fdc7-4b23-b689-e8b6df786b78.json +10 -0
  102. cua_speedrun-0.3.0/scripts/osworld_task_patches/vs_code__982d12a5-beab-424f-8d38-d2a48429e511.json +20 -0
  103. cua_speedrun-0.3.0/scripts/prepare_osworld2_modal.py +74 -0
  104. cua_speedrun-0.3.0/scripts/prepare_osworld_qcow2.sh +468 -0
  105. cua_speedrun-0.3.0/scripts/prepare_osworld_qcow2_apptainer.sh +112 -0
  106. cua_speedrun-0.3.0/scripts/select_representative_tasks.py +709 -0
  107. cua_speedrun-0.3.0/src/cua_speedrun/__init__.py +6 -0
  108. cua_speedrun-0.3.0/src/cua_speedrun/algorithms/__init__.py +6 -0
  109. cua_speedrun-0.3.0/src/cua_speedrun/algorithms/per_task_v1.py +83 -0
  110. cua_speedrun-0.3.0/src/cua_speedrun/algorithms/shared_agent_no_preload_v1.py +3 -0
  111. cua_speedrun-0.3.0/src/cua_speedrun/algorithms/shared_agent_v2.py +435 -0
  112. cua_speedrun-0.3.0/src/cua_speedrun/benchmark_preparation.py +82 -0
  113. cua_speedrun-0.3.0/src/cua_speedrun/benchmark_sources.py +229 -0
  114. cua_speedrun-0.3.0/src/cua_speedrun/cli.py +321 -0
  115. cua_speedrun-0.3.0/src/cua_speedrun/client.py +118 -0
  116. cua_speedrun-0.3.0/src/cua_speedrun/commands/__init__.py +49 -0
  117. cua_speedrun-0.3.0/src/cua_speedrun/commands/benchmark.py +170 -0
  118. cua_speedrun-0.3.0/src/cua_speedrun/commands/custom_benchmarks.py +82 -0
  119. cua_speedrun-0.3.0/src/cua_speedrun/commands/dashboard.py +177 -0
  120. cua_speedrun-0.3.0/src/cua_speedrun/commands/dashboard_api.py +271 -0
  121. cua_speedrun-0.3.0/src/cua_speedrun/commands/dashboard_client.py +973 -0
  122. cua_speedrun-0.3.0/src/cua_speedrun/commands/dependencies.py +216 -0
  123. cua_speedrun-0.3.0/src/cua_speedrun/commands/diagnostics.py +46 -0
  124. cua_speedrun-0.3.0/src/cua_speedrun/commands/doctor.py +92 -0
  125. cua_speedrun-0.3.0/src/cua_speedrun/commands/doctor_dashboard.py +156 -0
  126. cua_speedrun-0.3.0/src/cua_speedrun/commands/doctor_local.py +251 -0
  127. cua_speedrun-0.3.0/src/cua_speedrun/commands/install.py +127 -0
  128. cua_speedrun-0.3.0/src/cua_speedrun/commands/install_assets.py +189 -0
  129. cua_speedrun-0.3.0/src/cua_speedrun/commands/local_evaluations.py +293 -0
  130. cua_speedrun-0.3.0/src/cua_speedrun/commands/paths.py +152 -0
  131. cua_speedrun-0.3.0/src/cua_speedrun/commands/setup.py +91 -0
  132. cua_speedrun-0.3.0/src/cua_speedrun/commands/status_tui.py +673 -0
  133. cua_speedrun-0.3.0/src/cua_speedrun/compute_runners/__init__.py +17 -0
  134. cua_speedrun-0.3.0/src/cua_speedrun/compute_runners/base.py +130 -0
  135. cua_speedrun-0.3.0/src/cua_speedrun/compute_runners/config.py +90 -0
  136. cua_speedrun-0.3.0/src/cua_speedrun/compute_runners/local.py +464 -0
  137. cua_speedrun-0.3.0/src/cua_speedrun/compute_runners/local_sandbox.py +544 -0
  138. cua_speedrun-0.3.0/src/cua_speedrun/compute_runners/slurm.py +1296 -0
  139. cua_speedrun-0.3.0/src/cua_speedrun/compute_runners/slurm_worker.py +379 -0
  140. cua_speedrun-0.3.0/src/cua_speedrun/compute_runners/templates/slurm/cpu-array.yaml +42 -0
  141. cua_speedrun-0.3.0/src/cua_speedrun/compute_runners/templates/slurm/default.yaml +46 -0
  142. cua_speedrun-0.3.0/src/cua_speedrun/config.py +24 -0
  143. cua_speedrun-0.3.0/src/cua_speedrun/environment_instance.py +124 -0
  144. cua_speedrun-0.3.0/src/cua_speedrun/envs/__init__.py +57 -0
  145. cua_speedrun-0.3.0/src/cua_speedrun/envs/_pyautogui_keyboard.py +321 -0
  146. cua_speedrun-0.3.0/src/cua_speedrun/envs/base.py +98 -0
  147. cua_speedrun-0.3.0/src/cua_speedrun/envs/cua_world_runtime.py +154 -0
  148. cua_speedrun-0.3.0/src/cua_speedrun/envs/gym_anything.py +1153 -0
  149. cua_speedrun-0.3.0/src/cua_speedrun/envs/keyboard.py +33 -0
  150. cua_speedrun-0.3.0/src/cua_speedrun/envs/modal_native.py +601 -0
  151. cua_speedrun-0.3.0/src/cua_speedrun/eval_algorithms.py +119 -0
  152. cua_speedrun-0.3.0/src/cua_speedrun/evaluation_runtime.py +230 -0
  153. cua_speedrun-0.3.0/src/cua_speedrun/evaluator_environment.py +94 -0
  154. cua_speedrun-0.3.0/src/cua_speedrun/events.py +192 -0
  155. cua_speedrun-0.3.0/src/cua_speedrun/execution_placements.py +167 -0
  156. cua_speedrun-0.3.0/src/cua_speedrun/executor.py +938 -0
  157. cua_speedrun-0.3.0/src/cua_speedrun/gateway.py +713 -0
  158. cua_speedrun-0.3.0/src/cua_speedrun/leaderboard.py +166 -0
  159. cua_speedrun-0.3.0/src/cua_speedrun/local_runtime.py +257 -0
  160. cua_speedrun-0.3.0/src/cua_speedrun/parallelism.py +219 -0
  161. cua_speedrun-0.3.0/src/cua_speedrun/remote/__init__.py +0 -0
  162. cua_speedrun-0.3.0/src/cua_speedrun/remote/agent_runtime.py +71 -0
  163. cua_speedrun-0.3.0/src/cua_speedrun/remote/batching.py +15 -0
  164. cua_speedrun-0.3.0/src/cua_speedrun/remote/cancel.py +21 -0
  165. cua_speedrun-0.3.0/src/cua_speedrun/remote/control.py +115 -0
  166. cua_speedrun-0.3.0/src/cua_speedrun/remote/env_plane.py +82 -0
  167. cua_speedrun-0.3.0/src/cua_speedrun/remote/modal_agent.py +589 -0
  168. cua_speedrun-0.3.0/src/cua_speedrun/remote/modal_env.py +549 -0
  169. cua_speedrun-0.3.0/src/cua_speedrun/remote/modal_native_env.py +221 -0
  170. cua_speedrun-0.3.0/src/cua_speedrun/remote/modal_native_env_plane.py +42 -0
  171. cua_speedrun-0.3.0/src/cua_speedrun/remote/network_policy.py +44 -0
  172. cua_speedrun-0.3.0/src/cua_speedrun/remote/osworld_modal_base.py +402 -0
  173. cua_speedrun-0.3.0/src/cua_speedrun/remote/plane_common.py +97 -0
  174. cua_speedrun-0.3.0/src/cua_speedrun/remote/run.py +1558 -0
  175. cua_speedrun-0.3.0/src/cua_speedrun/remote/snapshot_cache.py +97 -0
  176. cua_speedrun-0.3.0/src/cua_speedrun/resources.py +80 -0
  177. cua_speedrun-0.3.0/src/cua_speedrun/runlog.py +95 -0
  178. cua_speedrun-0.3.0/src/cua_speedrun/runplan.py +689 -0
  179. cua_speedrun-0.3.0/src/cua_speedrun/runtime_environment.py +46 -0
  180. cua_speedrun-0.3.0/src/cua_speedrun/scoring.py +145 -0
  181. cua_speedrun-0.3.0/src/cua_speedrun/service/__init__.py +6 -0
  182. cua_speedrun-0.3.0/src/cua_speedrun/service/admin.py +80 -0
  183. cua_speedrun-0.3.0/src/cua_speedrun/service/api.py +894 -0
  184. cua_speedrun-0.3.0/src/cua_speedrun/service/cancellation.py +222 -0
  185. cua_speedrun-0.3.0/src/cua_speedrun/service/catalog.py +148 -0
  186. cua_speedrun-0.3.0/src/cua_speedrun/service/comparison_web.py +108 -0
  187. cua_speedrun-0.3.0/src/cua_speedrun/service/db.py +377 -0
  188. cua_speedrun-0.3.0/src/cua_speedrun/service/enqueue.py +138 -0
  189. cua_speedrun-0.3.0/src/cua_speedrun/service/evaluations.py +940 -0
  190. cua_speedrun-0.3.0/src/cua_speedrun/service/frontier.py +546 -0
  191. cua_speedrun-0.3.0/src/cua_speedrun/service/insights.py +435 -0
  192. cua_speedrun-0.3.0/src/cua_speedrun/service/invites.py +51 -0
  193. cua_speedrun-0.3.0/src/cua_speedrun/service/plans.py +106 -0
  194. cua_speedrun-0.3.0/src/cua_speedrun/service/publishing.py +124 -0
  195. cua_speedrun-0.3.0/src/cua_speedrun/service/quota.py +65 -0
  196. cua_speedrun-0.3.0/src/cua_speedrun/service/run_export.py +117 -0
  197. cua_speedrun-0.3.0/src/cua_speedrun/service/seeds.py +166 -0
  198. cua_speedrun-0.3.0/src/cua_speedrun/service/static/app.js +681 -0
  199. cua_speedrun-0.3.0/src/cua_speedrun/service/static/frontier.css +583 -0
  200. cua_speedrun-0.3.0/src/cua_speedrun/service/static/instrument.css +488 -0
  201. cua_speedrun-0.3.0/src/cua_speedrun/service/static/leaderboard.js +1188 -0
  202. cua_speedrun-0.3.0/src/cua_speedrun/service/static/pareto-surface.js +218 -0
  203. cua_speedrun-0.3.0/src/cua_speedrun/service/static/results.css +181 -0
  204. cua_speedrun-0.3.0/src/cua_speedrun/service/store.py +30 -0
  205. cua_speedrun-0.3.0/src/cua_speedrun/service/task_cost.py +94 -0
  206. cua_speedrun-0.3.0/src/cua_speedrun/service/templates/_result_inspector.html +23 -0
  207. cua_speedrun-0.3.0/src/cua_speedrun/service/templates/card.html +21 -0
  208. cua_speedrun-0.3.0/src/cua_speedrun/service/templates/compare.html +140 -0
  209. cua_speedrun-0.3.0/src/cua_speedrun/service/templates/entry.html +17 -0
  210. cua_speedrun-0.3.0/src/cua_speedrun/service/templates/layout.html +83 -0
  211. cua_speedrun-0.3.0/src/cua_speedrun/service/templates/leaderboard.html +245 -0
  212. cua_speedrun-0.3.0/src/cua_speedrun/service/templates/me.html +88 -0
  213. cua_speedrun-0.3.0/src/cua_speedrun/service/templates/methodology.html +21 -0
  214. cua_speedrun-0.3.0/src/cua_speedrun/service/templates/run.html +128 -0
  215. cua_speedrun-0.3.0/src/cua_speedrun/service/templates/submit.html +232 -0
  216. cua_speedrun-0.3.0/src/cua_speedrun/service/templates/task.html +80 -0
  217. cua_speedrun-0.3.0/src/cua_speedrun/service/templates/tracks.html +165 -0
  218. cua_speedrun-0.3.0/src/cua_speedrun/service/templates/trajectory.html +52 -0
  219. cua_speedrun-0.3.0/src/cua_speedrun/service/templates_catalog.py +125 -0
  220. cua_speedrun-0.3.0/src/cua_speedrun/service/usersecrets.py +36 -0
  221. cua_speedrun-0.3.0/src/cua_speedrun/service/web.py +831 -0
  222. cua_speedrun-0.3.0/src/cua_speedrun/service/web_records.py +103 -0
  223. cua_speedrun-0.3.0/src/cua_speedrun/service/worker.py +809 -0
  224. cua_speedrun-0.3.0/src/cua_speedrun/specs.py +142 -0
  225. cua_speedrun-0.3.0/src/cua_speedrun/submission.py +42 -0
  226. cua_speedrun-0.3.0/src/cua_speedrun/task_jobs.py +60 -0
  227. cua_speedrun-0.3.0/third_party/gym-anything/LICENSE +21 -0
  228. cua_speedrun-0.3.0/third_party/gym-anything/benchmarks/cua_world/environments/preset_gnome_systemd/env.json +7 -0
  229. cua_speedrun-0.3.0/third_party/gym-anything/benchmarks/cua_world/environments/preset_gnome_systemd/tasks/terminal/task.json +9 -0
  230. cua_speedrun-0.3.0/third_party/gym-anything/benchmarks/cua_world/environments/preset_gnome_systemd/tasks/terminal/verifier.py +21 -0
  231. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/.gitignore +0 -0
  232. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/__init__.py +39 -0
  233. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/api.py +5 -0
  234. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/cli.py +1290 -0
  235. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/compatibility.py +250 -0
  236. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/config/__init__.py +51 -0
  237. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/config/loading.py +150 -0
  238. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/config/presets.py +55 -0
  239. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/config/validators.py +84 -0
  240. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/contracts.py +94 -0
  241. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/dashboards/__init__.py +1 -0
  242. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/dashboards/trajectory/__init__.py +16 -0
  243. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/dashboards/trajectory/app.py +355 -0
  244. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/dashboards/trajectory/run_store.py +1206 -0
  245. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/dashboards/trajectory/templates/index.html +805 -0
  246. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/doctor.py +648 -0
  247. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/env.py +1381 -0
  248. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/extras_cli.py +244 -0
  249. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/installers.py +311 -0
  250. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/integrations/__init__.py +13 -0
  251. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/integrations/harbor/__init__.py +39 -0
  252. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/integrations/harbor/agent.py +337 -0
  253. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/integrations/harbor/compile.py +298 -0
  254. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/integrations/harbor/container.py +357 -0
  255. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/integrations/harbor/environment.py +321 -0
  256. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/integrations/prime_rl/__init__.py +12 -0
  257. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/integrations/prime_rl/hub.py +251 -0
  258. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/integrations/prime_rl/verifiers.py +638 -0
  259. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/__init__.py +189 -0
  260. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/android-14.json +28 -0
  261. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/android-avd-34.json +27 -0
  262. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/android-avd-35.json +27 -0
  263. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/apptainer-xfce-gpu.json +76 -0
  264. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/apptainer_xfce_gpu/apptainer.def +143 -0
  265. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/macos.json +53 -0
  266. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/ubuntu-gnome-systemd.json +27 -0
  267. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/ubuntu-gnome-systemd_highres.json +27 -0
  268. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/ubuntu-gnome-systemd_highres_gimp.json +27 -0
  269. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/ubuntu-gnome.json +19 -0
  270. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/ubuntu_gnome_systemd/Dockerfile +82 -0
  271. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/ubuntu_gnome_systemd/tigervnc@.service +15 -0
  272. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/ubuntu_gnome_systemd/xstartup +11 -0
  273. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/ubuntu_gnome_systemd_highres/Dockerfile +155 -0
  274. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/ubuntu_gnome_systemd_highres/tigervnc@.service +15 -0
  275. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/ubuntu_gnome_systemd_highres/xstartup +11 -0
  276. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/ubuntu_gnome_systemd_highres_gimp/Dockerfile +152 -0
  277. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/ubuntu_gnome_systemd_highres_gimp/tigervnc@.service +15 -0
  278. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/ubuntu_gnome_systemd_highres_gimp/xstartup +11 -0
  279. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/windows-11.json +53 -0
  280. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/x11-lite.json +21 -0
  281. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/x11_lite/Dockerfile +14 -0
  282. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/x11_lite/hooks/post_start.sh +3 -0
  283. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/x11_lite/hooks/pre_start.sh +3 -0
  284. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/presets/x11_lite/start_app.sh +21 -0
  285. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/recording/__init__.py +9 -0
  286. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/registry.py +330 -0
  287. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/remote/__init__.py +6 -0
  288. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/remote/client.py +749 -0
  289. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/remote/dashboard_app.py +609 -0
  290. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/remote/dashboard_template.py +978 -0
  291. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/remote/master.py +1718 -0
  292. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/remote/monitoring/__init__.py +20 -0
  293. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/remote/monitoring/decorators.py +236 -0
  294. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/remote/monitoring/metrics.py +500 -0
  295. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/remote/monitoring/session.py +372 -0
  296. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/remote/monitoring/templates/dashboard.html +859 -0
  297. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/remote/worker.py +1451 -0
  298. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/remote/worker_reset_policy.py +68 -0
  299. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runners/__init__.py +31 -0
  300. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/__init__.py +1 -0
  301. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/post_reset.py +96 -0
  302. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/recording/__init__.py +4 -0
  303. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/recording/ffmpeg.py +107 -0
  304. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/recording/frames.py +56 -0
  305. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/__init__.py +25 -0
  306. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/apptainer_direct.py +1350 -0
  307. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/avd_apptainer.py +1894 -0
  308. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/avd_container.def +28 -0
  309. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/avd_native.py +83 -0
  310. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/avd_sdk_manager.py +636 -0
  311. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/avf.py +967 -0
  312. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/base.py +202 -0
  313. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/build_android_qcow2_apptainer.py +510 -0
  314. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/build_base_qcow2.py +222 -0
  315. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/build_base_qcow2_nodocker.py +737 -0
  316. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/build_windows_qcow2.py +359 -0
  317. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/build_windows_qcow2_apptainer.py +1017 -0
  318. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/docker.py +1223 -0
  319. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/linux_uinput_fast_inputd.py +593 -0
  320. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/local.py +95 -0
  321. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/modal_native.py +935 -0
  322. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/modal_native_assets/bootstrap.sh +39 -0
  323. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/modal_native_assets/fast_io_server.c +1106 -0
  324. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/modal_native_assets/ga-fast-io.service +18 -0
  325. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/modal_native_assets/ga-snap-transitions.service +14 -0
  326. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/modal_native_assets/ga-vnc.service +18 -0
  327. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/modal_native_assets/namespace_exec.sh +16 -0
  328. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/modal_native_assets/snap_mounts.sh +67 -0
  329. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/modal_native_assets/snap_transitions.sh +58 -0
  330. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/modal_native_assets/snap_wrapper.sh +28 -0
  331. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/modal_native_assets/systemd_init.sh +17 -0
  332. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/modal_native_assets/xstartup +11 -0
  333. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/modal_native_fast_io.py +529 -0
  334. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/modal_native_image.py +213 -0
  335. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/modal_runner.py +550 -0
  336. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/modal_shim.py +195 -0
  337. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/qemu_apptainer.py +4271 -0
  338. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/qemu_dbus_display.py +321 -0
  339. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/qemu_native.py +468 -0
  340. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/use_computer.py +375 -0
  341. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/vnc_utils.py +705 -0
  342. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/windows_pyautogui_client.py +349 -0
  343. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/windows_pyautogui_server.py +323 -0
  344. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/windows_setup/install_pyautogui_server.ps1 +90 -0
  345. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/runtime/runners/windows_setup/windows_pyautogui_server.py +323 -0
  346. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/security.py +79 -0
  347. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/specs.py +529 -0
  348. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/tui/__init__.py +0 -0
  349. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/tui/progress.py +277 -0
  350. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/tui/session.py +136 -0
  351. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/utils/__init__.py +0 -0
  352. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/utils/jsonl.py +23 -0
  353. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/utils/merge.py +38 -0
  354. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/utils/yaml.py +30 -0
  355. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/validators.py +5 -0
  356. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/vector.py +43 -0
  357. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/verification/__init__.py +30 -0
  358. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/verification/contracts.py +5 -0
  359. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/verification/imports.py +109 -0
  360. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/verification/pipeline.py +70 -0
  361. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/verification/reports.py +127 -0
  362. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/verification/runner.py +331 -0
  363. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/verification/specs.py +419 -0
  364. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/verification/status.py +187 -0
  365. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/verification/vlm_checklist.py +615 -0
  366. cua_speedrun-0.3.0/third_party/gym-anything/src/gym_anything/vlm.py +572 -0
@@ -0,0 +1,30 @@
1
+ .env
2
+ .DS_Store
3
+ __pycache__/
4
+ *.pyc
5
+ *.egg-info/
6
+ .venv/
7
+ runs/
8
+ dist/
9
+ .pytest_cache/
10
+ artifacts/
11
+ episode_*/
12
+ *.qcow2
13
+ *.qcow2.zip
14
+ benchmark-assets/osworld/
15
+
16
+ leaderboard/
17
+ .claude/
18
+ platform.db
19
+ platform.db-shm
20
+ platform.db-wal
21
+ store/
22
+
23
+ # Generated build and local development files.
24
+ _site/
25
+ build/
26
+ .ruff_cache/
27
+ /coverage.xml
28
+ /.coverage
29
+ /src/cua_speedrun/fast_io_client
30
+ /src/cua_speedrun/fast_io_client.sha256
@@ -0,0 +1,250 @@
1
+ Metadata-Version: 2.5
2
+ Name: cua-speedrun
3
+ Version: 0.3.0
4
+ Summary: A benchmark and leaderboard for the speed of computer-use agents
5
+ Requires-Python: >=3.10
6
+ Requires-Dist: dbus-next>=0.2.3
7
+ Requires-Dist: fastapi>=0.115
8
+ Requires-Dist: huggingface-hub>=0.35.0
9
+ Requires-Dist: itsdangerous>=2.2
10
+ Requires-Dist: jinja2>=3.1
11
+ Requires-Dist: jsonschema>=4.20
12
+ Requires-Dist: modal>=1.0
13
+ Requires-Dist: numpy>=1.26
14
+ Requires-Dist: paramiko>=3.4
15
+ Requires-Dist: pillow>=10.0
16
+ Requires-Dist: pycryptodome>=3.20
17
+ Requires-Dist: python-dotenv
18
+ Requires-Dist: python-multipart>=0.0.9
19
+ Requires-Dist: pyyaml>=6.0
20
+ Requires-Dist: requests>=2.31
21
+ Requires-Dist: rich>=13.0
22
+ Requires-Dist: sqlalchemy>=2.0
23
+ Requires-Dist: uv==0.10.2
24
+ Requires-Dist: uvicorn[standard]>=0.30
25
+ Provides-Extra: all
26
+ Requires-Dist: beautifulsoup4; extra == 'all'
27
+ Requires-Dist: borb<3; extra == 'all'
28
+ Requires-Dist: chardet; extra == 'all'
29
+ Requires-Dist: cssselect; extra == 'all'
30
+ Requires-Dist: easyocr; extra == 'all'
31
+ Requires-Dist: fastdtw; extra == 'all'
32
+ Requires-Dist: formulas; extra == 'all'
33
+ Requires-Dist: gdown; extra == 'all'
34
+ Requires-Dist: gymnasium~=0.28.1; extra == 'all'
35
+ Requires-Dist: imagehash; extra == 'all'
36
+ Requires-Dist: librosa; extra == 'all'
37
+ Requires-Dist: lxml; extra == 'all'
38
+ Requires-Dist: mutagen; extra == 'all'
39
+ Requires-Dist: numpy; extra == 'all'
40
+ Requires-Dist: odfpy; extra == 'all'
41
+ Requires-Dist: opencv-python-headless; extra == 'all'
42
+ Requires-Dist: openpyxl; extra == 'all'
43
+ Requires-Dist: pandas; extra == 'all'
44
+ Requires-Dist: paramiko; extra == 'all'
45
+ Requires-Dist: pdfplumber; extra == 'all'
46
+ Requires-Dist: pillow; extra == 'all'
47
+ Requires-Dist: playwright; extra == 'all'
48
+ Requires-Dist: pyacoustid; extra == 'all'
49
+ Requires-Dist: pydrive; extra == 'all'
50
+ Requires-Dist: pygame; extra == 'all'
51
+ Requires-Dist: pymupdf; extra == 'all'
52
+ Requires-Dist: pypdf; extra == 'all'
53
+ Requires-Dist: pypdf2; extra == 'all'
54
+ Requires-Dist: python-docx; extra == 'all'
55
+ Requires-Dist: python-dotenv; extra == 'all'
56
+ Requires-Dist: python-pptx; extra == 'all'
57
+ Requires-Dist: pytz; extra == 'all'
58
+ Requires-Dist: rapidfuzz; extra == 'all'
59
+ Requires-Dist: requests-toolbelt~=1.0.0; extra == 'all'
60
+ Requires-Dist: scikit-image; extra == 'all'
61
+ Requires-Dist: scipy; extra == 'all'
62
+ Requires-Dist: tldextract; extra == 'all'
63
+ Requires-Dist: xmltodict; extra == 'all'
64
+ Provides-Extra: dev
65
+ Requires-Dist: httpx<0.28,>=0.27; extra == 'dev'
66
+ Requires-Dist: pytest>=8.0; extra == 'dev'
67
+ Provides-Extra: gym
68
+ Requires-Dist: dbus-next>=0.2.3; extra == 'gym'
69
+ Requires-Dist: jsonschema>=4.20; extra == 'gym'
70
+ Requires-Dist: numpy>=1.26; extra == 'gym'
71
+ Requires-Dist: paramiko>=3.4; extra == 'gym'
72
+ Requires-Dist: pillow>=10.0; extra == 'gym'
73
+ Requires-Dist: pycryptodome>=3.20; extra == 'gym'
74
+ Requires-Dist: rich>=13.0; extra == 'gym'
75
+ Provides-Extra: modal
76
+ Requires-Dist: modal>=1.0; extra == 'modal'
77
+ Provides-Extra: osworld
78
+ Requires-Dist: beautifulsoup4; extra == 'osworld'
79
+ Requires-Dist: borb<3; extra == 'osworld'
80
+ Requires-Dist: chardet; extra == 'osworld'
81
+ Requires-Dist: cssselect; extra == 'osworld'
82
+ Requires-Dist: easyocr; extra == 'osworld'
83
+ Requires-Dist: fastdtw; extra == 'osworld'
84
+ Requires-Dist: formulas; extra == 'osworld'
85
+ Requires-Dist: gdown; extra == 'osworld'
86
+ Requires-Dist: gymnasium~=0.28.1; extra == 'osworld'
87
+ Requires-Dist: imagehash; extra == 'osworld'
88
+ Requires-Dist: librosa; extra == 'osworld'
89
+ Requires-Dist: lxml; extra == 'osworld'
90
+ Requires-Dist: mutagen; extra == 'osworld'
91
+ Requires-Dist: numpy; extra == 'osworld'
92
+ Requires-Dist: odfpy; extra == 'osworld'
93
+ Requires-Dist: opencv-python-headless; extra == 'osworld'
94
+ Requires-Dist: openpyxl; extra == 'osworld'
95
+ Requires-Dist: pandas; extra == 'osworld'
96
+ Requires-Dist: paramiko; extra == 'osworld'
97
+ Requires-Dist: pdfplumber; extra == 'osworld'
98
+ Requires-Dist: pillow; extra == 'osworld'
99
+ Requires-Dist: playwright; extra == 'osworld'
100
+ Requires-Dist: pyacoustid; extra == 'osworld'
101
+ Requires-Dist: pydrive; extra == 'osworld'
102
+ Requires-Dist: pygame; extra == 'osworld'
103
+ Requires-Dist: pymupdf; extra == 'osworld'
104
+ Requires-Dist: pypdf; extra == 'osworld'
105
+ Requires-Dist: pypdf2; extra == 'osworld'
106
+ Requires-Dist: python-docx; extra == 'osworld'
107
+ Requires-Dist: python-dotenv; extra == 'osworld'
108
+ Requires-Dist: python-pptx; extra == 'osworld'
109
+ Requires-Dist: pytz; extra == 'osworld'
110
+ Requires-Dist: rapidfuzz; extra == 'osworld'
111
+ Requires-Dist: requests-toolbelt~=1.0.0; extra == 'osworld'
112
+ Requires-Dist: scikit-image; extra == 'osworld'
113
+ Requires-Dist: scipy; extra == 'osworld'
114
+ Requires-Dist: tldextract; extra == 'osworld'
115
+ Requires-Dist: xmltodict; extra == 'osworld'
116
+ Provides-Extra: platform
117
+ Requires-Dist: fastapi>=0.115; extra == 'platform'
118
+ Requires-Dist: itsdangerous>=2.2; extra == 'platform'
119
+ Requires-Dist: jinja2>=3.1; extra == 'platform'
120
+ Requires-Dist: python-multipart>=0.0.9; extra == 'platform'
121
+ Requires-Dist: sqlalchemy>=2.0; extra == 'platform'
122
+ Requires-Dist: uv==0.10.2; extra == 'platform'
123
+ Requires-Dist: uvicorn[standard]>=0.30; extra == 'platform'
124
+ Description-Content-Type: text/markdown
125
+
126
+ # cua-speedrun
127
+
128
+ Compare computer-use agents by performance, time, and cost on real desktop tasks.
129
+
130
+ ## Quickstart
131
+
132
+ Install and configure your credentials:
133
+
134
+ ```bash
135
+ pip install cua-speedrun
136
+ cua-speedrun setup
137
+ cua-speedrun benchmark --dataset osworld-50 --agent qwen3vl
138
+ ```
139
+
140
+ Models and desktop images are prepared on first use and cached. Data lives in
141
+ `~/.local/share/cua-speedrun`; set `CUA_SPEEDRUN_HOME` to use another location.
142
+ Use `cua-speedrun doctor` to inspect your installation.
143
+
144
+ ## Run an evaluation
145
+
146
+ Evaluations run on Modal by default, using credentials from `setup`, your
147
+ Modal CLI profile, or environment variables. For an API agent:
148
+
149
+ ```bash
150
+ export ANTHROPIC_API_KEY="your-api-key"
151
+ cua-speedrun benchmark --dataset osworld-50 --agent claude
152
+ ```
153
+
154
+ The command follows progress until the evaluation finishes. To launch and
155
+ inspect evaluations in a browser, run `cua-speedrun dashboard`.
156
+
157
+ - Add `--parallel-evaluations 4` to run four agent replicas in parallel.
158
+ - Bundled GPU agents select their GPU automatically; override it with `--gpu L40S`.
159
+ - Add `--no-preload` to disable environment preloading.
160
+ - To use local Linux hardware, add `--compute local --environment local`.
161
+ Local desktops require KVM/QEMU.
162
+
163
+ Inspect results or download trajectories:
164
+
165
+ ```bash
166
+ cua-speedrun evaluations
167
+ cua-speedrun status RUN_ID
168
+ cua-speedrun export RUN_ID
169
+ ```
170
+
171
+ Use `cua-speedrun catalog` to list available agents and benchmarks, or
172
+ `cua-speedrun help benchmark` for more options.
173
+
174
+ ## Benchmarks
175
+
176
+ | Benchmark | Tasks |
177
+ | --- | ---: |
178
+ | `cua-world-26` | 26 |
179
+ | `osworld-50` | 50 |
180
+ | `osworld2-52` | 52 |
181
+ | `my-pc-bench` | 38 |
182
+ | `cua-world-offline` | 143 |
183
+ | `osworld-offline` | 295 |
184
+ | `osworld2-offline` | 63 |
185
+
186
+ The `offline` variants contain the full offline task sets; the smaller variants
187
+ are representative subsets. MyPCBench also requires a
188
+ `MYPCBENCH_JUDGE_API_KEY` for its evaluator; see its
189
+ [setup instructions](benchmarks/my-pc-bench/README.md).
190
+
191
+ ## Bring your own agent
192
+
193
+ Start from an implementation in [`agents/`](agents/). Each agent has two files:
194
+
195
+ - `init.py` prepares dependencies or starts a model server before task timing begins.
196
+ - `agent.py` receives the environment URL and task description, then interacts
197
+ through [`Computer`](src/cua_speedrun/client.py).
198
+
199
+ Submit the folder directly:
200
+
201
+ ```bash
202
+ cua-speedrun validate --agent ./my-agent
203
+ cua-speedrun benchmark --dataset osworld-50 --agent ./my-agent
204
+ ```
205
+
206
+ Additional packages can be installed by `init.py`; the submission uploads
207
+ `init.py` and `agent.py`. An optional `agent.json` declares `gpu` and
208
+ `required_environment_variables`. To contribute an agent, add its folder to
209
+ `agents/`; it is discovered automatically.
210
+
211
+ ## Bring your own benchmark
212
+
213
+ A benchmark is a folder with a `manifest.yaml`, task folders containing
214
+ `task.yaml`, and its environment setup and verifier. The manifest lists tasks:
215
+
216
+ ```yaml
217
+ name: my-benchmark
218
+ version: "1"
219
+ tasks: [tasks/my-task]
220
+ ```
221
+
222
+ Each `task.yaml` specifies `task_id`, `description`, and an `env` mapping:
223
+
224
+ ```yaml
225
+ task_id: my-task
226
+ description: The task for the agent to complete.
227
+ env:
228
+ kind: gym-anything
229
+ env_dir: ${BENCHMARK_DIR}/environment
230
+ task_id: my-task
231
+ ```
232
+
233
+ Keep the [Gym-Anything environment](https://github.com/cmu-l3/gym-anything)
234
+ and its task setup/verifier inside the benchmark folder. Then:
235
+
236
+ ```bash
237
+ cua-speedrun validate --dataset ./my-benchmark
238
+ cua-speedrun benchmark --dataset ./my-benchmark --agent ./my-agent
239
+ ```
240
+
241
+ The benchmark is copied into the installation. Increase its version when
242
+ changing a registered task set. To contribute it, add the folder under
243
+ `benchmarks/` and its name to `catalog/benchmarks.yaml`; packaging is automatic.
244
+
245
+ ## Repository structure
246
+
247
+ - [`agents/`](agents/) — agent implementations.
248
+ - [`benchmarks/`](benchmarks/) — task sets and benchmark definitions.
249
+ - [`src/cua_speedrun/`](src/cua_speedrun/) — execution, timing, scoring, and the dashboard.
250
+ - [`src/cua_speedrun/compute_runners/`](src/cua_speedrun/compute_runners/) — local and Slurm runners.
@@ -0,0 +1,125 @@
1
+ # cua-speedrun
2
+
3
+ Compare computer-use agents by performance, time, and cost on real desktop tasks.
4
+
5
+ ## Quickstart
6
+
7
+ Install and configure your credentials:
8
+
9
+ ```bash
10
+ pip install cua-speedrun
11
+ cua-speedrun setup
12
+ cua-speedrun benchmark --dataset osworld-50 --agent qwen3vl
13
+ ```
14
+
15
+ Models and desktop images are prepared on first use and cached. Data lives in
16
+ `~/.local/share/cua-speedrun`; set `CUA_SPEEDRUN_HOME` to use another location.
17
+ Use `cua-speedrun doctor` to inspect your installation.
18
+
19
+ ## Run an evaluation
20
+
21
+ Evaluations run on Modal by default, using credentials from `setup`, your
22
+ Modal CLI profile, or environment variables. For an API agent:
23
+
24
+ ```bash
25
+ export ANTHROPIC_API_KEY="your-api-key"
26
+ cua-speedrun benchmark --dataset osworld-50 --agent claude
27
+ ```
28
+
29
+ The command follows progress until the evaluation finishes. To launch and
30
+ inspect evaluations in a browser, run `cua-speedrun dashboard`.
31
+
32
+ - Add `--parallel-evaluations 4` to run four agent replicas in parallel.
33
+ - Bundled GPU agents select their GPU automatically; override it with `--gpu L40S`.
34
+ - Add `--no-preload` to disable environment preloading.
35
+ - To use local Linux hardware, add `--compute local --environment local`.
36
+ Local desktops require KVM/QEMU.
37
+
38
+ Inspect results or download trajectories:
39
+
40
+ ```bash
41
+ cua-speedrun evaluations
42
+ cua-speedrun status RUN_ID
43
+ cua-speedrun export RUN_ID
44
+ ```
45
+
46
+ Use `cua-speedrun catalog` to list available agents and benchmarks, or
47
+ `cua-speedrun help benchmark` for more options.
48
+
49
+ ## Benchmarks
50
+
51
+ | Benchmark | Tasks |
52
+ | --- | ---: |
53
+ | `cua-world-26` | 26 |
54
+ | `osworld-50` | 50 |
55
+ | `osworld2-52` | 52 |
56
+ | `my-pc-bench` | 38 |
57
+ | `cua-world-offline` | 143 |
58
+ | `osworld-offline` | 295 |
59
+ | `osworld2-offline` | 63 |
60
+
61
+ The `offline` variants contain the full offline task sets; the smaller variants
62
+ are representative subsets. MyPCBench also requires a
63
+ `MYPCBENCH_JUDGE_API_KEY` for its evaluator; see its
64
+ [setup instructions](benchmarks/my-pc-bench/README.md).
65
+
66
+ ## Bring your own agent
67
+
68
+ Start from an implementation in [`agents/`](agents/). Each agent has two files:
69
+
70
+ - `init.py` prepares dependencies or starts a model server before task timing begins.
71
+ - `agent.py` receives the environment URL and task description, then interacts
72
+ through [`Computer`](src/cua_speedrun/client.py).
73
+
74
+ Submit the folder directly:
75
+
76
+ ```bash
77
+ cua-speedrun validate --agent ./my-agent
78
+ cua-speedrun benchmark --dataset osworld-50 --agent ./my-agent
79
+ ```
80
+
81
+ Additional packages can be installed by `init.py`; the submission uploads
82
+ `init.py` and `agent.py`. An optional `agent.json` declares `gpu` and
83
+ `required_environment_variables`. To contribute an agent, add its folder to
84
+ `agents/`; it is discovered automatically.
85
+
86
+ ## Bring your own benchmark
87
+
88
+ A benchmark is a folder with a `manifest.yaml`, task folders containing
89
+ `task.yaml`, and its environment setup and verifier. The manifest lists tasks:
90
+
91
+ ```yaml
92
+ name: my-benchmark
93
+ version: "1"
94
+ tasks: [tasks/my-task]
95
+ ```
96
+
97
+ Each `task.yaml` specifies `task_id`, `description`, and an `env` mapping:
98
+
99
+ ```yaml
100
+ task_id: my-task
101
+ description: The task for the agent to complete.
102
+ env:
103
+ kind: gym-anything
104
+ env_dir: ${BENCHMARK_DIR}/environment
105
+ task_id: my-task
106
+ ```
107
+
108
+ Keep the [Gym-Anything environment](https://github.com/cmu-l3/gym-anything)
109
+ and its task setup/verifier inside the benchmark folder. Then:
110
+
111
+ ```bash
112
+ cua-speedrun validate --dataset ./my-benchmark
113
+ cua-speedrun benchmark --dataset ./my-benchmark --agent ./my-agent
114
+ ```
115
+
116
+ The benchmark is copied into the installation. Increase its version when
117
+ changing a registered task set. To contribute it, add the folder under
118
+ `benchmarks/` and its name to `catalog/benchmarks.yaml`; packaging is automatic.
119
+
120
+ ## Repository structure
121
+
122
+ - [`agents/`](agents/) — agent implementations.
123
+ - [`benchmarks/`](benchmarks/) — task sets and benchmark definitions.
124
+ - [`src/cua_speedrun/`](src/cua_speedrun/) — execution, timing, scoring, and the dashboard.
125
+ - [`src/cua_speedrun/compute_runners/`](src/cua_speedrun/compute_runners/) — local and Slurm runners.
@@ -0,0 +1,7 @@
1
+ {
2
+ "description": "Claude via Anthropic's native computer-use tool, with per-action screenshots, coordinate rescaling, bounded image history, and prompt caching.",
3
+ "required_environment_variables": [
4
+ "ANTHROPIC_API_KEY"
5
+ ],
6
+ "gpu": null
7
+ }