hud-python 0.4.39__tar.gz → 0.4.41__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.

Potentially problematic release.


This version of hud-python might be problematic. Click here for more details.

Files changed (246) hide show
  1. {hud_python-0.4.39 → hud_python-0.4.41}/PKG-INFO +42 -22
  2. {hud_python-0.4.39 → hud_python-0.4.41}/README.md +41 -21
  3. {hud_python-0.4.39 → hud_python-0.4.41}/environments/blank/pyproject.toml +1 -1
  4. {hud_python-0.4.39 → hud_python-0.4.41}/environments/deepresearch/pyproject.toml +1 -1
  5. {hud_python-0.4.39 → hud_python-0.4.41}/hud/agents/__init__.py +0 -2
  6. {hud_python-0.4.39 → hud_python-0.4.41}/hud/agents/lite_llm.py +1 -1
  7. {hud_python-0.4.39 → hud_python-0.4.41}/hud/agents/openai_chat_generic.py +6 -4
  8. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/__init__.py +6 -0
  9. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/flows/tasks.py +5 -5
  10. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/init.py +3 -3
  11. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/rl/__init__.py +1 -2
  12. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/rl/remote_runner.py +4 -1
  13. {hud_python-0.4.39 → hud_python-0.4.41}/hud/utils/tests/test_version.py +1 -1
  14. {hud_python-0.4.39 → hud_python-0.4.41}/hud/version.py +1 -1
  15. {hud_python-0.4.39 → hud_python-0.4.41}/pyproject.toml +1 -1
  16. {hud_python-0.4.39 → hud_python-0.4.41}/.gitignore +0 -0
  17. {hud_python-0.4.39 → hud_python-0.4.41}/LICENSE +0 -0
  18. {hud_python-0.4.39 → hud_python-0.4.41}/environments/README.md +0 -0
  19. {hud_python-0.4.39 → hud_python-0.4.41}/environments/blank/README.md +0 -0
  20. {hud_python-0.4.39 → hud_python-0.4.41}/environments/blank/controller/README.md +0 -0
  21. {hud_python-0.4.39 → hud_python-0.4.41}/environments/blank/environment/README.md +0 -0
  22. {hud_python-0.4.39 → hud_python-0.4.41}/environments/browser/README.md +0 -0
  23. {hud_python-0.4.39 → hud_python-0.4.41}/environments/browser/environment/2048/README.md +0 -0
  24. {hud_python-0.4.39 → hud_python-0.4.41}/environments/browser/environment/2048/backend/pyproject.toml +0 -0
  25. {hud_python-0.4.39 → hud_python-0.4.41}/environments/browser/environment/README.md +0 -0
  26. {hud_python-0.4.39 → hud_python-0.4.41}/environments/browser/environment/todo/README.md +0 -0
  27. {hud_python-0.4.39 → hud_python-0.4.41}/environments/browser/environment/todo/backend/pyproject.toml +0 -0
  28. {hud_python-0.4.39 → hud_python-0.4.41}/environments/browser/pyproject.toml +0 -0
  29. {hud_python-0.4.39 → hud_python-0.4.41}/environments/remote_browser/README.md +0 -0
  30. {hud_python-0.4.39 → hud_python-0.4.41}/environments/remote_browser/pyproject.toml +0 -0
  31. {hud_python-0.4.39 → hud_python-0.4.41}/environments/remote_browser/src/hud_controller/providers/README.md +0 -0
  32. {hud_python-0.4.39 → hud_python-0.4.41}/environments/text_2048/README.md +0 -0
  33. {hud_python-0.4.39 → hud_python-0.4.41}/environments/text_2048/pyproject.toml +0 -0
  34. {hud_python-0.4.39 → hud_python-0.4.41}/examples/README.md +0 -0
  35. {hud_python-0.4.39 → hud_python-0.4.41}/hud/__init__.py +0 -0
  36. {hud_python-0.4.39 → hud_python-0.4.41}/hud/__main__.py +0 -0
  37. {hud_python-0.4.39 → hud_python-0.4.41}/hud/agents/base.py +0 -0
  38. {hud_python-0.4.39 → hud_python-0.4.41}/hud/agents/claude.py +0 -0
  39. {hud_python-0.4.39 → hud_python-0.4.41}/hud/agents/grounded_openai.py +0 -0
  40. {hud_python-0.4.39 → hud_python-0.4.41}/hud/agents/langchain.py +0 -0
  41. {hud_python-0.4.39 → hud_python-0.4.41}/hud/agents/misc/__init__.py +0 -0
  42. {hud_python-0.4.39 → hud_python-0.4.41}/hud/agents/misc/response_agent.py +0 -0
  43. {hud_python-0.4.39 → hud_python-0.4.41}/hud/agents/openai.py +0 -0
  44. {hud_python-0.4.39 → hud_python-0.4.41}/hud/agents/tests/__init__.py +0 -0
  45. {hud_python-0.4.39 → hud_python-0.4.41}/hud/agents/tests/test_base.py +0 -0
  46. {hud_python-0.4.39 → hud_python-0.4.41}/hud/agents/tests/test_claude.py +0 -0
  47. {hud_python-0.4.39 → hud_python-0.4.41}/hud/agents/tests/test_client.py +0 -0
  48. {hud_python-0.4.39 → hud_python-0.4.41}/hud/agents/tests/test_grounded_openai_agent.py +0 -0
  49. {hud_python-0.4.39 → hud_python-0.4.41}/hud/agents/tests/test_openai.py +0 -0
  50. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/__main__.py +0 -0
  51. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/analyze.py +0 -0
  52. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/build.py +0 -0
  53. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/clone.py +0 -0
  54. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/debug.py +0 -0
  55. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/dev.py +0 -0
  56. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/eval.py +0 -0
  57. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/flows/__init__.py +0 -0
  58. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/get.py +0 -0
  59. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/list_func.py +0 -0
  60. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/pull.py +0 -0
  61. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/push.py +0 -0
  62. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/remove.py +0 -0
  63. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/rl/celebrate.py +0 -0
  64. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/rl/config.py +0 -0
  65. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/rl/display.py +0 -0
  66. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/rl/gpu.py +0 -0
  67. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/rl/gpu_utils.py +0 -0
  68. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/rl/local_runner.py +0 -0
  69. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/rl/presets.py +0 -0
  70. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/rl/rl_api.py +0 -0
  71. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/rl/viewer.py +0 -0
  72. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/rl/vllm.py +0 -0
  73. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/rl/wait_utils.py +0 -0
  74. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/tests/__init__.py +0 -0
  75. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/tests/test_analyze.py +0 -0
  76. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/tests/test_analyze_metadata.py +0 -0
  77. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/tests/test_build.py +0 -0
  78. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/tests/test_cli_init.py +0 -0
  79. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/tests/test_cli_main.py +0 -0
  80. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/tests/test_clone.py +0 -0
  81. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/tests/test_cursor.py +0 -0
  82. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/tests/test_debug.py +0 -0
  83. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/tests/test_list_func.py +0 -0
  84. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/tests/test_main_module.py +0 -0
  85. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/tests/test_mcp_server.py +0 -0
  86. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/tests/test_pull.py +0 -0
  87. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/tests/test_push.py +0 -0
  88. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/tests/test_registry.py +0 -0
  89. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/tests/test_utils.py +0 -0
  90. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/utils/__init__.py +0 -0
  91. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/utils/config.py +0 -0
  92. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/utils/cursor.py +0 -0
  93. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/utils/docker.py +0 -0
  94. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/utils/env_check.py +0 -0
  95. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/utils/environment.py +0 -0
  96. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/utils/interactive.py +0 -0
  97. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/utils/local_runner.py +0 -0
  98. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/utils/logging.py +0 -0
  99. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/utils/metadata.py +0 -0
  100. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/utils/package_runner.py +0 -0
  101. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/utils/registry.py +0 -0
  102. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/utils/remote_runner.py +0 -0
  103. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/utils/runner.py +0 -0
  104. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/utils/server.py +0 -0
  105. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/utils/source_hash.py +0 -0
  106. {hud_python-0.4.39 → hud_python-0.4.41}/hud/cli/utils/tasks.py +0 -0
  107. {hud_python-0.4.39 → hud_python-0.4.41}/hud/clients/README.md +0 -0
  108. {hud_python-0.4.39 → hud_python-0.4.41}/hud/clients/__init__.py +0 -0
  109. {hud_python-0.4.39 → hud_python-0.4.41}/hud/clients/base.py +0 -0
  110. {hud_python-0.4.39 → hud_python-0.4.41}/hud/clients/fastmcp.py +0 -0
  111. {hud_python-0.4.39 → hud_python-0.4.41}/hud/clients/mcp_use.py +0 -0
  112. {hud_python-0.4.39 → hud_python-0.4.41}/hud/clients/tests/__init__.py +0 -0
  113. {hud_python-0.4.39 → hud_python-0.4.41}/hud/clients/tests/test_client_integration.py +0 -0
  114. {hud_python-0.4.39 → hud_python-0.4.41}/hud/clients/tests/test_fastmcp.py +0 -0
  115. {hud_python-0.4.39 → hud_python-0.4.41}/hud/clients/tests/test_mcp_use_retry.py +0 -0
  116. {hud_python-0.4.39 → hud_python-0.4.41}/hud/clients/tests/test_protocol.py +0 -0
  117. {hud_python-0.4.39 → hud_python-0.4.41}/hud/clients/utils/__init__.py +0 -0
  118. {hud_python-0.4.39 → hud_python-0.4.41}/hud/clients/utils/mcp_use_retry.py +0 -0
  119. {hud_python-0.4.39 → hud_python-0.4.41}/hud/clients/utils/retry.py +0 -0
  120. {hud_python-0.4.39 → hud_python-0.4.41}/hud/clients/utils/retry_transport.py +0 -0
  121. {hud_python-0.4.39 → hud_python-0.4.41}/hud/datasets/__init__.py +0 -0
  122. {hud_python-0.4.39 → hud_python-0.4.41}/hud/datasets/parallel.py +0 -0
  123. {hud_python-0.4.39 → hud_python-0.4.41}/hud/datasets/runner.py +0 -0
  124. {hud_python-0.4.39 → hud_python-0.4.41}/hud/datasets/utils.py +0 -0
  125. {hud_python-0.4.39 → hud_python-0.4.41}/hud/misc/__init__.py +0 -0
  126. {hud_python-0.4.39 → hud_python-0.4.41}/hud/misc/claude_plays_pokemon.py +0 -0
  127. {hud_python-0.4.39 → hud_python-0.4.41}/hud/native/__init__.py +0 -0
  128. {hud_python-0.4.39 → hud_python-0.4.41}/hud/native/comparator.py +0 -0
  129. {hud_python-0.4.39 → hud_python-0.4.41}/hud/native/tests/__init__.py +0 -0
  130. {hud_python-0.4.39 → hud_python-0.4.41}/hud/native/tests/test_comparator.py +0 -0
  131. {hud_python-0.4.39 → hud_python-0.4.41}/hud/native/tests/test_native_init.py +0 -0
  132. {hud_python-0.4.39 → hud_python-0.4.41}/hud/otel/__init__.py +0 -0
  133. {hud_python-0.4.39 → hud_python-0.4.41}/hud/otel/collector.py +0 -0
  134. {hud_python-0.4.39 → hud_python-0.4.41}/hud/otel/config.py +0 -0
  135. {hud_python-0.4.39 → hud_python-0.4.41}/hud/otel/context.py +0 -0
  136. {hud_python-0.4.39 → hud_python-0.4.41}/hud/otel/exporters.py +0 -0
  137. {hud_python-0.4.39 → hud_python-0.4.41}/hud/otel/instrumentation.py +0 -0
  138. {hud_python-0.4.39 → hud_python-0.4.41}/hud/otel/processors.py +0 -0
  139. {hud_python-0.4.39 → hud_python-0.4.41}/hud/otel/tests/__init__.py +0 -0
  140. {hud_python-0.4.39 → hud_python-0.4.41}/hud/otel/tests/test_processors.py +0 -0
  141. {hud_python-0.4.39 → hud_python-0.4.41}/hud/py.typed +0 -0
  142. {hud_python-0.4.39 → hud_python-0.4.41}/hud/rl/README.md +0 -0
  143. {hud_python-0.4.39 → hud_python-0.4.41}/hud/rl/__init__.py +0 -0
  144. {hud_python-0.4.39 → hud_python-0.4.41}/hud/rl/actor.py +0 -0
  145. {hud_python-0.4.39 → hud_python-0.4.41}/hud/rl/buffer.py +0 -0
  146. {hud_python-0.4.39 → hud_python-0.4.41}/hud/rl/chat_template.jinja +0 -0
  147. {hud_python-0.4.39 → hud_python-0.4.41}/hud/rl/config.py +0 -0
  148. {hud_python-0.4.39 → hud_python-0.4.41}/hud/rl/distributed.py +0 -0
  149. {hud_python-0.4.39 → hud_python-0.4.41}/hud/rl/learner.py +0 -0
  150. {hud_python-0.4.39 → hud_python-0.4.41}/hud/rl/tests/__init__.py +0 -0
  151. {hud_python-0.4.39 → hud_python-0.4.41}/hud/rl/tests/test_learner.py +0 -0
  152. {hud_python-0.4.39 → hud_python-0.4.41}/hud/rl/train.py +0 -0
  153. {hud_python-0.4.39 → hud_python-0.4.41}/hud/rl/types.py +0 -0
  154. {hud_python-0.4.39 → hud_python-0.4.41}/hud/rl/utils/start_vllm_server.sh +0 -0
  155. {hud_python-0.4.39 → hud_python-0.4.41}/hud/rl/utils.py +0 -0
  156. {hud_python-0.4.39 → hud_python-0.4.41}/hud/rl/vllm_adapter.py +0 -0
  157. {hud_python-0.4.39 → hud_python-0.4.41}/hud/samples/__init__.py +0 -0
  158. {hud_python-0.4.39 → hud_python-0.4.41}/hud/samples/browser.py +0 -0
  159. {hud_python-0.4.39 → hud_python-0.4.41}/hud/server/__init__.py +0 -0
  160. {hud_python-0.4.39 → hud_python-0.4.41}/hud/server/context.py +0 -0
  161. {hud_python-0.4.39 → hud_python-0.4.41}/hud/server/helper/__init__.py +0 -0
  162. {hud_python-0.4.39 → hud_python-0.4.41}/hud/server/low_level.py +0 -0
  163. {hud_python-0.4.39 → hud_python-0.4.41}/hud/server/server.py +0 -0
  164. {hud_python-0.4.39 → hud_python-0.4.41}/hud/server/tests/__init__.py +0 -0
  165. {hud_python-0.4.39 → hud_python-0.4.41}/hud/server/tests/test_add_tool.py +0 -0
  166. {hud_python-0.4.39 → hud_python-0.4.41}/hud/server/tests/test_context.py +0 -0
  167. {hud_python-0.4.39 → hud_python-0.4.41}/hud/server/tests/test_mcp_server_handlers.py +0 -0
  168. {hud_python-0.4.39 → hud_python-0.4.41}/hud/server/tests/test_mcp_server_integration.py +0 -0
  169. {hud_python-0.4.39 → hud_python-0.4.41}/hud/server/tests/test_mcp_server_more.py +0 -0
  170. {hud_python-0.4.39 → hud_python-0.4.41}/hud/server/tests/test_run_wrapper.py +0 -0
  171. {hud_python-0.4.39 → hud_python-0.4.41}/hud/server/tests/test_server_extra.py +0 -0
  172. {hud_python-0.4.39 → hud_python-0.4.41}/hud/server/tests/test_sigterm_runner.py +0 -0
  173. {hud_python-0.4.39 → hud_python-0.4.41}/hud/settings.py +0 -0
  174. {hud_python-0.4.39 → hud_python-0.4.41}/hud/shared/__init__.py +0 -0
  175. {hud_python-0.4.39 → hud_python-0.4.41}/hud/shared/exceptions.py +0 -0
  176. {hud_python-0.4.39 → hud_python-0.4.41}/hud/shared/hints.py +0 -0
  177. {hud_python-0.4.39 → hud_python-0.4.41}/hud/shared/requests.py +0 -0
  178. {hud_python-0.4.39 → hud_python-0.4.41}/hud/shared/tests/__init__.py +0 -0
  179. {hud_python-0.4.39 → hud_python-0.4.41}/hud/shared/tests/test_exceptions.py +0 -0
  180. {hud_python-0.4.39 → hud_python-0.4.41}/hud/shared/tests/test_requests.py +0 -0
  181. {hud_python-0.4.39 → hud_python-0.4.41}/hud/telemetry/__init__.py +0 -0
  182. {hud_python-0.4.39 → hud_python-0.4.41}/hud/telemetry/instrument.py +0 -0
  183. {hud_python-0.4.39 → hud_python-0.4.41}/hud/telemetry/job.py +0 -0
  184. {hud_python-0.4.39 → hud_python-0.4.41}/hud/telemetry/replay.py +0 -0
  185. {hud_python-0.4.39 → hud_python-0.4.41}/hud/telemetry/tests/__init__.py +0 -0
  186. {hud_python-0.4.39 → hud_python-0.4.41}/hud/telemetry/tests/test_replay.py +0 -0
  187. {hud_python-0.4.39 → hud_python-0.4.41}/hud/telemetry/tests/test_trace.py +0 -0
  188. {hud_python-0.4.39 → hud_python-0.4.41}/hud/telemetry/trace.py +0 -0
  189. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/__init__.py +0 -0
  190. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/base.py +0 -0
  191. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/bash.py +0 -0
  192. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/computer/__init__.py +0 -0
  193. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/computer/anthropic.py +0 -0
  194. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/computer/hud.py +0 -0
  195. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/computer/openai.py +0 -0
  196. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/computer/settings.py +0 -0
  197. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/edit.py +0 -0
  198. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/executors/__init__.py +0 -0
  199. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/executors/base.py +0 -0
  200. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/executors/pyautogui.py +0 -0
  201. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/executors/tests/__init__.py +0 -0
  202. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/executors/tests/test_base_executor.py +0 -0
  203. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/executors/tests/test_pyautogui_executor.py +0 -0
  204. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/executors/xdo.py +0 -0
  205. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/grounding/__init__.py +0 -0
  206. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/grounding/config.py +0 -0
  207. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/grounding/grounded_tool.py +0 -0
  208. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/grounding/grounder.py +0 -0
  209. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/grounding/tests/__init__.py +0 -0
  210. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/grounding/tests/test_grounded_tool.py +0 -0
  211. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/playwright.py +0 -0
  212. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/response.py +0 -0
  213. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/submit.py +0 -0
  214. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/tests/__init__.py +0 -0
  215. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/tests/test_base.py +0 -0
  216. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/tests/test_bash.py +0 -0
  217. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/tests/test_bash_extended.py +0 -0
  218. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/tests/test_computer.py +0 -0
  219. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/tests/test_computer_actions.py +0 -0
  220. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/tests/test_edit.py +0 -0
  221. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/tests/test_init.py +0 -0
  222. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/tests/test_playwright_tool.py +0 -0
  223. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/tests/test_response.py +0 -0
  224. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/tests/test_tools.py +0 -0
  225. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/tests/test_tools_init.py +0 -0
  226. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/tests/test_utils.py +0 -0
  227. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/types.py +0 -0
  228. {hud_python-0.4.39 → hud_python-0.4.41}/hud/tools/utils.py +0 -0
  229. {hud_python-0.4.39 → hud_python-0.4.41}/hud/types.py +0 -0
  230. {hud_python-0.4.39 → hud_python-0.4.41}/hud/utils/__init__.py +0 -0
  231. {hud_python-0.4.39 → hud_python-0.4.41}/hud/utils/agent_factories.py +0 -0
  232. {hud_python-0.4.39 → hud_python-0.4.41}/hud/utils/async_utils.py +0 -0
  233. {hud_python-0.4.39 → hud_python-0.4.41}/hud/utils/group_eval.py +0 -0
  234. {hud_python-0.4.39 → hud_python-0.4.41}/hud/utils/hud_console.py +0 -0
  235. {hud_python-0.4.39 → hud_python-0.4.41}/hud/utils/mcp.py +0 -0
  236. {hud_python-0.4.39 → hud_python-0.4.41}/hud/utils/pretty_errors.py +0 -0
  237. {hud_python-0.4.39 → hud_python-0.4.41}/hud/utils/progress.py +0 -0
  238. {hud_python-0.4.39 → hud_python-0.4.41}/hud/utils/tasks.py +0 -0
  239. {hud_python-0.4.39 → hud_python-0.4.41}/hud/utils/telemetry.py +0 -0
  240. {hud_python-0.4.39 → hud_python-0.4.41}/hud/utils/tests/__init__.py +0 -0
  241. {hud_python-0.4.39 → hud_python-0.4.41}/hud/utils/tests/test_async_utils.py +0 -0
  242. {hud_python-0.4.39 → hud_python-0.4.41}/hud/utils/tests/test_init.py +0 -0
  243. {hud_python-0.4.39 → hud_python-0.4.41}/hud/utils/tests/test_mcp.py +0 -0
  244. {hud_python-0.4.39 → hud_python-0.4.41}/hud/utils/tests/test_progress.py +0 -0
  245. {hud_python-0.4.39 → hud_python-0.4.41}/hud/utils/tests/test_telemetry.py +0 -0
  246. {hud_python-0.4.39 → hud_python-0.4.41}/hud/utils/tool_shorthand.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hud-python
3
- Version: 0.4.39
3
+ Version: 0.4.41
4
4
  Summary: SDK for the HUD platform.
5
5
  Project-URL: Homepage, https://github.com/hud-evals/hud-python
6
6
  Project-URL: Bug Tracker, https://github.com/hud-evals/hud-python/issues
@@ -159,10 +159,10 @@ OSS RL environment + evals toolkit. Wrap software as environments, run benchmark
159
159
 
160
160
  ## Highlights
161
161
 
162
+ - 🎓 **[One-click RL](https://hud.so/models)** – Run `hud rl` to get a trained model on any environment.
162
163
  - 🚀 **[MCP environment skeleton](https://docs.hud.so/core-concepts/mcp-protocol)** – any agent can call any environment.
163
164
  - ⚡️ **[Live telemetry](https://hud.so)** – inspect every tool call, observation, and reward in real time.
164
165
  - 🗂️ **[Public benchmarks](https://hud.so/leaderboards)** – OSWorld-Verified, SheetBench-50, and more.
165
- - 🌱 **[Reinforcement learning built-in](rl/)** – Verifiers gym pipelines for GRPO on any environment.
166
166
  - 🌐 **[Cloud browsers](environments/remote_browser/)** – AnchorBrowser, Steel, BrowserBase integrations for browser automation.
167
167
  - 🛠️ **[Hot-reload dev loop](environments/README.md#phase-5-hot-reload-development-with-cursor-agent)** – `hud dev` for iterating on environments without rebuilds.
168
168
 
@@ -171,27 +171,46 @@ OSS RL environment + evals toolkit. Wrap software as environments, run benchmark
171
171
  ## Installation
172
172
 
173
173
  ```bash
174
- # Core installation - MCP servers, telemetry, basic tools for environment design
174
+ # SDK - MCP servers, telemetry, evaluation
175
175
  pip install hud-python
176
176
 
177
- # Agent installation - Adds AI providers, datasets
178
- pip install "hud-python[agent]"
179
-
180
- # CLI utilities
177
+ # CLI - RL pipeline, environment design
181
178
  uv tool install hud-python
182
179
  # uv tool update-shell
183
-
184
- # From source (latest)
185
- git clone https://github.com/hud-evals/hud-python
186
- pip install -e "hud-python[dev]"
187
180
  ```
188
181
 
189
182
  > See [docs.hud.so](https://docs.hud.so), or add docs to any MCP client:
190
183
  > `claude mcp add --transport http docs-hud https://docs.hud.so/mcp`
191
184
 
192
- ## Quickstart
185
+ Before starting, get your HUD_API_KEY at [hud.so](https://hud.so).
186
+
187
+
188
+ ## Quickstart: Training
189
+
190
+ RL using GRPO a Qwen2.5-VL model on any hud dataset:
191
+
192
+ ```bash
193
+ hud get hud-evals/basic-2048 # from HF
194
+ hud rl basic-2048.json
195
+ ```
196
+
197
+ > See [agent training docs](https://docs.hud.so/train-agents/quickstart)
193
198
 
194
- For a tutorial that explains the agent and evaluation design, run ([see quickstart docs](https://docs.hud.so/quickstart)):
199
+ Or make your own environment and dataset:
200
+
201
+ ```bash
202
+ hud init my-env && cd my-env
203
+ hud dev --interactive
204
+ # When ready to run:
205
+ hud rl
206
+ ```
207
+
208
+ > See [environment design docs](https://docs.hud.so/build-environments)
209
+
210
+
211
+ ## Quickstart: Evals
212
+
213
+ For a tutorial that explains the agent and evaluation design, run:
195
214
 
196
215
  ```python
197
216
  uvx hud-python quickstart
@@ -254,28 +273,30 @@ This is a Qwen‑2.5‑VL‑3B agent training a policy on the 2048-basic browser
254
273
  Train with the new interactive `hud rl` flow:
255
274
 
256
275
  ```bash
257
- # Install CLI with RL extras
258
- uv tool install "hud-python[rl]"
276
+ # Install CLI
277
+ uv tool install hud-python
259
278
 
260
279
  # Option A: Run directly from a HuggingFace dataset
261
280
  hud rl hud-evals/basic-2048
262
281
 
263
282
  # Option B: Download first, modify, then train
264
283
  hud get hud-evals/basic-2048
265
- hud rl basic-2048.jsonl
284
+ hud rl basic-2048.json
266
285
 
267
286
  # Optional: baseline evaluation
268
- hud eval basic-2048.jsonl
287
+ hud eval basic-2048.json
269
288
  ```
270
289
 
271
290
  Supports multi‑turn RL for both:
272
291
  - Language‑only models (e.g., `Qwen/Qwen2.5-7B-Instruct`)
273
292
  - Vision‑Language models (e.g., `Qwen/Qwen2.5-VL-3B-Instruct`)
274
293
 
275
- By default, `hud rl` provisions a persistant server and trainer in the cloud, streams telemetry to `hud.so`, and lets you monitor/manage models at `hud.so/models`. Use `--local` to run entirely on your machines (typically 2+ GPUs: one for vLLM, the rest for training).
294
+ By default, `hud rl` provisions a persistent server and trainer in the cloud, streams telemetry to `hud.so`, and lets you monitor/manage models at `hud.so/models`. Use `--local` to run entirely on your machines (typically 2+ GPUs: one for vLLM, the rest for training).
276
295
 
277
296
  Any HUD MCP environment and evaluation works with our RL pipeline (including remote configurations). See the guided docs: `https://docs.hud.so/train-agents/quickstart`.
278
297
 
298
+ Pricing: Hosted vLLM and training GPU rates are listed in the [Training Quickstart → Pricing](https://docs.hud.so/train-agents/quickstart#pricing). Manage billing at the [HUD billing dashboard](https://hud.so/project/billing).
299
+
279
300
  ## Benchmarking Agents
280
301
 
281
302
  This is Claude Computer Use running on our proprietary financial analyst benchmark [SheetBench-50](https://huggingface.co/datasets/hud-evals/SheetBench-50):
@@ -323,7 +344,7 @@ from hud.tools import HudComputerTool
323
344
  mcp = MCPServer("My Environment")
324
345
 
325
346
  # Add hud tools (see all tools: https://docs.hud.so/reference/tools)
326
- mcp.add_tool(HudComputerTool())
347
+ mcp.tool(HudComputerTool())
327
348
 
328
349
  # Or custom tools (see https://docs.hud.so/build-environments/adapting-software)
329
350
  @mcp.tool("launch_app"):
@@ -494,11 +515,10 @@ graph LR
494
515
 
495
516
  ## Roadmap
496
517
 
497
- - Merging our forks in to the main `mcp`, `mcp_use`, `verifiers` repositories
518
+ - Merging our forks in to the main `mcp`, `mcp_use` repositories
498
519
  - Helpers for building new environments (see [current guide](environments/README.md))
499
520
  - Integrations with every major agent framework
500
521
  - Evaluation environment registry
501
- - Native RL training to hud environments (see [current RL support](rl/))
502
522
  - MCP opentelemetry standard
503
523
 
504
524
  ## Contributing
@@ -509,7 +529,7 @@ Key areas:
509
529
  - [Environment examples](environments/) - Add new MCP environments
510
530
  - [Agent implementations](hud/agents/) - Add support for new LLM providers
511
531
  - [Tool library](hud/tools/) - Extend the built-in tool collection
512
- - [RL training](rl/) - Improve reinforcement learning pipelines
532
+ - [RL training](hud/rl/) - Improve reinforcement learning pipelines
513
533
 
514
534
  Thanks to all our contributors!
515
535
 
@@ -22,10 +22,10 @@ OSS RL environment + evals toolkit. Wrap software as environments, run benchmark
22
22
 
23
23
  ## Highlights
24
24
 
25
+ - 🎓 **[One-click RL](https://hud.so/models)** – Run `hud rl` to get a trained model on any environment.
25
26
  - 🚀 **[MCP environment skeleton](https://docs.hud.so/core-concepts/mcp-protocol)** – any agent can call any environment.
26
27
  - ⚡️ **[Live telemetry](https://hud.so)** – inspect every tool call, observation, and reward in real time.
27
28
  - 🗂️ **[Public benchmarks](https://hud.so/leaderboards)** – OSWorld-Verified, SheetBench-50, and more.
28
- - 🌱 **[Reinforcement learning built-in](rl/)** – Verifiers gym pipelines for GRPO on any environment.
29
29
  - 🌐 **[Cloud browsers](environments/remote_browser/)** – AnchorBrowser, Steel, BrowserBase integrations for browser automation.
30
30
  - 🛠️ **[Hot-reload dev loop](environments/README.md#phase-5-hot-reload-development-with-cursor-agent)** – `hud dev` for iterating on environments without rebuilds.
31
31
 
@@ -34,27 +34,46 @@ OSS RL environment + evals toolkit. Wrap software as environments, run benchmark
34
34
  ## Installation
35
35
 
36
36
  ```bash
37
- # Core installation - MCP servers, telemetry, basic tools for environment design
37
+ # SDK - MCP servers, telemetry, evaluation
38
38
  pip install hud-python
39
39
 
40
- # Agent installation - Adds AI providers, datasets
41
- pip install "hud-python[agent]"
42
-
43
- # CLI utilities
40
+ # CLI - RL pipeline, environment design
44
41
  uv tool install hud-python
45
42
  # uv tool update-shell
46
-
47
- # From source (latest)
48
- git clone https://github.com/hud-evals/hud-python
49
- pip install -e "hud-python[dev]"
50
43
  ```
51
44
 
52
45
  > See [docs.hud.so](https://docs.hud.so), or add docs to any MCP client:
53
46
  > `claude mcp add --transport http docs-hud https://docs.hud.so/mcp`
54
47
 
55
- ## Quickstart
48
+ Before starting, get your HUD_API_KEY at [hud.so](https://hud.so).
49
+
50
+
51
+ ## Quickstart: Training
52
+
53
+ RL using GRPO a Qwen2.5-VL model on any hud dataset:
54
+
55
+ ```bash
56
+ hud get hud-evals/basic-2048 # from HF
57
+ hud rl basic-2048.json
58
+ ```
59
+
60
+ > See [agent training docs](https://docs.hud.so/train-agents/quickstart)
56
61
 
57
- For a tutorial that explains the agent and evaluation design, run ([see quickstart docs](https://docs.hud.so/quickstart)):
62
+ Or make your own environment and dataset:
63
+
64
+ ```bash
65
+ hud init my-env && cd my-env
66
+ hud dev --interactive
67
+ # When ready to run:
68
+ hud rl
69
+ ```
70
+
71
+ > See [environment design docs](https://docs.hud.so/build-environments)
72
+
73
+
74
+ ## Quickstart: Evals
75
+
76
+ For a tutorial that explains the agent and evaluation design, run:
58
77
 
59
78
  ```python
60
79
  uvx hud-python quickstart
@@ -117,28 +136,30 @@ This is a Qwen‑2.5‑VL‑3B agent training a policy on the 2048-basic browser
117
136
  Train with the new interactive `hud rl` flow:
118
137
 
119
138
  ```bash
120
- # Install CLI with RL extras
121
- uv tool install "hud-python[rl]"
139
+ # Install CLI
140
+ uv tool install hud-python
122
141
 
123
142
  # Option A: Run directly from a HuggingFace dataset
124
143
  hud rl hud-evals/basic-2048
125
144
 
126
145
  # Option B: Download first, modify, then train
127
146
  hud get hud-evals/basic-2048
128
- hud rl basic-2048.jsonl
147
+ hud rl basic-2048.json
129
148
 
130
149
  # Optional: baseline evaluation
131
- hud eval basic-2048.jsonl
150
+ hud eval basic-2048.json
132
151
  ```
133
152
 
134
153
  Supports multi‑turn RL for both:
135
154
  - Language‑only models (e.g., `Qwen/Qwen2.5-7B-Instruct`)
136
155
  - Vision‑Language models (e.g., `Qwen/Qwen2.5-VL-3B-Instruct`)
137
156
 
138
- By default, `hud rl` provisions a persistant server and trainer in the cloud, streams telemetry to `hud.so`, and lets you monitor/manage models at `hud.so/models`. Use `--local` to run entirely on your machines (typically 2+ GPUs: one for vLLM, the rest for training).
157
+ By default, `hud rl` provisions a persistent server and trainer in the cloud, streams telemetry to `hud.so`, and lets you monitor/manage models at `hud.so/models`. Use `--local` to run entirely on your machines (typically 2+ GPUs: one for vLLM, the rest for training).
139
158
 
140
159
  Any HUD MCP environment and evaluation works with our RL pipeline (including remote configurations). See the guided docs: `https://docs.hud.so/train-agents/quickstart`.
141
160
 
161
+ Pricing: Hosted vLLM and training GPU rates are listed in the [Training Quickstart → Pricing](https://docs.hud.so/train-agents/quickstart#pricing). Manage billing at the [HUD billing dashboard](https://hud.so/project/billing).
162
+
142
163
  ## Benchmarking Agents
143
164
 
144
165
  This is Claude Computer Use running on our proprietary financial analyst benchmark [SheetBench-50](https://huggingface.co/datasets/hud-evals/SheetBench-50):
@@ -186,7 +207,7 @@ from hud.tools import HudComputerTool
186
207
  mcp = MCPServer("My Environment")
187
208
 
188
209
  # Add hud tools (see all tools: https://docs.hud.so/reference/tools)
189
- mcp.add_tool(HudComputerTool())
210
+ mcp.tool(HudComputerTool())
190
211
 
191
212
  # Or custom tools (see https://docs.hud.so/build-environments/adapting-software)
192
213
  @mcp.tool("launch_app"):
@@ -357,11 +378,10 @@ graph LR
357
378
 
358
379
  ## Roadmap
359
380
 
360
- - Merging our forks in to the main `mcp`, `mcp_use`, `verifiers` repositories
381
+ - Merging our forks in to the main `mcp`, `mcp_use` repositories
361
382
  - Helpers for building new environments (see [current guide](environments/README.md))
362
383
  - Integrations with every major agent framework
363
384
  - Evaluation environment registry
364
- - Native RL training to hud environments (see [current RL support](rl/))
365
385
  - MCP opentelemetry standard
366
386
 
367
387
  ## Contributing
@@ -372,7 +392,7 @@ Key areas:
372
392
  - [Environment examples](environments/) - Add new MCP environments
373
393
  - [Agent implementations](hud/agents/) - Add support for new LLM providers
374
394
  - [Tool library](hud/tools/) - Extend the built-in tool collection
375
- - [RL training](rl/) - Improve reinforcement learning pipelines
395
+ - [RL training](hud/rl/) - Improve reinforcement learning pipelines
376
396
 
377
397
  Thanks to all our contributors!
378
398
 
@@ -3,7 +3,7 @@ name = "test_test"
3
3
  version = "0.1.0"
4
4
  description = "A minimal HUD environment"
5
5
  requires-python = ">=3.11"
6
- dependencies = [ "hud-python==0.4.39", "fastapi", "uvicorn[standard]", "httpx>=0.28.1",]
6
+ dependencies = [ "hud-python==0.4.41", "fastapi", "uvicorn[standard]", "httpx>=0.28.1",]
7
7
 
8
8
  [build-system]
9
9
  requires = [ "hatchling",]
@@ -3,7 +3,7 @@ name = "deepresearch"
3
3
  version = "0.1.0"
4
4
  description = "DeepResearch HUD environment with HTTP backend (EXA on server)"
5
5
  requires-python = ">=3.11"
6
- dependencies = [ "hud-python==0.4.39", "fastapi>=0.104.1", "uvicorn[standard]>=0.24.0", "httpx>=0.24.0",]
6
+ dependencies = [ "hud-python==0.4.41", "fastapi>=0.104.1", "uvicorn[standard]>=0.24.0", "httpx>=0.24.0",]
7
7
 
8
8
  [build-system]
9
9
  requires = [ "hatchling",]
@@ -2,14 +2,12 @@ from __future__ import annotations
2
2
 
3
3
  from .base import MCPAgent
4
4
  from .claude import ClaudeAgent
5
- from .lite_llm import LiteAgent
6
5
  from .openai import OperatorAgent
7
6
  from .openai_chat_generic import GenericOpenAIChatAgent
8
7
 
9
8
  __all__ = [
10
9
  "ClaudeAgent",
11
10
  "GenericOpenAIChatAgent",
12
- "LiteAgent",
13
11
  "MCPAgent",
14
12
  "OperatorAgent",
15
13
  ]
@@ -63,7 +63,7 @@ class LiteAgent(GenericOpenAIChatAgent):
63
63
  messages: list[Any],
64
64
  tools: list[dict] | None,
65
65
  extra: dict[str, Any],
66
- ):
66
+ ) -> Any:
67
67
  return await litellm.acompletion(
68
68
  model=self.model_name,
69
69
  messages=messages,
@@ -177,16 +177,16 @@ class GenericOpenAIChatAgent(MCPAgent):
177
177
  messages: list[Any],
178
178
  tools: list[dict] | None,
179
179
  extra: dict[str, Any],
180
- ):
180
+ ) -> Any:
181
181
  if self.oai is None:
182
182
  raise ValueError("openai_client is required for GenericOpenAIChatAgent")
183
183
  # default transport = OpenAI SDK
184
184
  return await self.oai.chat.completions.create(
185
185
  model=self.model_name,
186
186
  messages=messages,
187
- tools=tools, # already ChatCompletionToolParam-shaped
187
+ tools=tools, # type: ignore ready ChatCompletionToolParam-shaped
188
188
  **extra,
189
- )
189
+ ) # type: ignore
190
190
 
191
191
  @instrument(
192
192
  span_type="agent",
@@ -204,7 +204,9 @@ class GenericOpenAIChatAgent(MCPAgent):
204
204
 
205
205
  try:
206
206
  response = await self._invoke_chat_completion(
207
- messages=messages, tools=tools, extra=extra
207
+ messages=messages,
208
+ tools=tools, # type: ignore
209
+ extra=extra,
208
210
  )
209
211
  except Exception as e:
210
212
  error_content = f"Error getting response {e}"
@@ -1178,6 +1178,11 @@ def rl(
1178
1178
  "--vllm-gpu",
1179
1179
  help="Specific GPU for vLLM server",
1180
1180
  ),
1181
+ skip_vllm_startup: bool = typer.Option(
1182
+ False,
1183
+ "--skip-vllm-startup",
1184
+ help="Skip the vLLM server startup",
1185
+ ),
1181
1186
  ) -> None:
1182
1187
  """🎯 Run GRPO reinforcement learning training on tasks."""
1183
1188
  # Import from the rl module
@@ -1195,6 +1200,7 @@ def rl(
1195
1200
  ddp_gpus=ddp_gpus,
1196
1201
  vllm_gpu=vllm_gpu,
1197
1202
  yes=yes,
1203
+ skip_vllm_startup=skip_vllm_startup,
1198
1204
  )
1199
1205
 
1200
1206
 
@@ -212,14 +212,14 @@ def convert_tasks_to_remote(tasks_file: str) -> str:
212
212
  # Check if tasks already have remote URLs
213
213
  already_remote = _validate_tasks(tasks)
214
214
 
215
+ # If tasks already reference a remote MCP URL, do not require a local environment
216
+ # or attempt any image updates. Use the dataset as-is.
217
+ if already_remote:
218
+ return str(tasks_path)
219
+
215
220
  # Extract existing images from tasks
216
221
  existing_images = _extract_existing_images(tasks)
217
222
 
218
- # Load tasks (supports .json and .jsonl)
219
- if already_remote and not existing_images:
220
- # Tasks are remote but have no image references - just return as-is
221
- return str(tasks_path)
222
-
223
223
  # Locate environment
224
224
  env_dir = find_environment_dir(tasks_path)
225
225
  if not env_dir:
@@ -85,9 +85,9 @@ def _prompt_for_preset() -> str:
85
85
  """Ask the user to choose a preset when not provided."""
86
86
  try:
87
87
  choices = [
88
- {"name": "blank", "message": "blank │ minimal template"},
89
- {"name": "deep-research", "message": "deep-research │ remote browser preset"},
90
- {"name": "browser", "message": "browser │ local browser preset"},
88
+ {"name": "blank", "message": "blank"},
89
+ {"name": "deep-research", "message": "deep-research"},
90
+ {"name": "browser", "message": "browser"},
91
91
  ]
92
92
  display_choices = [c["message"] for c in choices]
93
93
  selected = questionary.select(
@@ -78,10 +78,9 @@ def rl_command(
78
78
  "-y",
79
79
  help="Auto-accept all prompts and use defaults (lazy mode)",
80
80
  ),
81
- # Internal flag
82
81
  skip_vllm_startup: bool = typer.Option(
83
82
  False,
84
- hidden=True,
83
+ "--skip-vllm-startup",
85
84
  help="Skip local vLLM server startup (for internal use)",
86
85
  ),
87
86
  ) -> None:
@@ -13,6 +13,7 @@ from pathlib import Path
13
13
  from rich.console import Console
14
14
 
15
15
  from hud.cli.rl.celebrate import show_confetti_async
16
+ from hud.cli.rl.gpu_utils import adjust_config_for_ddp
16
17
  from hud.cli.rl.viewer import show_json_interactive
17
18
  from hud.cli.rl.wait_utils import wait_for_enter_cancel_or_change
18
19
  from hud.utils.hud_console import hud_console
@@ -347,6 +348,8 @@ def run_remote_training(
347
348
  yes=yes,
348
349
  )
349
350
 
351
+ config = adjust_config_for_ddp(config, int(num_gpus))
352
+
350
353
  # Use a short label for tasks (avoid full absolute paths)
351
354
  try:
352
355
  if tasks_file and Path(tasks_file).exists():
@@ -357,7 +360,7 @@ def run_remote_training(
357
360
  except Exception:
358
361
  tasks_label = str(tasks_file)
359
362
 
360
- config.job_name = f"RL {model_name} on {tasks_label}"
363
+ config.job_name = f"RL {tasks_label} | {model_name}"
361
364
 
362
365
  # Save config so user can review/edit externally
363
366
  temp_config_path = Path(f".rl_config_temp_{model_name}.json")
@@ -5,4 +5,4 @@ def test_import():
5
5
  """Test that the package can be imported."""
6
6
  import hud
7
7
 
8
- assert hud.__version__ == "0.4.39"
8
+ assert hud.__version__ == "0.4.41"
@@ -4,4 +4,4 @@ Version information for the HUD SDK.
4
4
 
5
5
  from __future__ import annotations
6
6
 
7
- __version__ = "0.4.39"
7
+ __version__ = "0.4.41"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "hud-python"
3
- version = "0.4.39"
3
+ version = "0.4.41"
4
4
  description = "SDK for the HUD platform."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11, <3.13"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes