hud-python 0.4.26__tar.gz → 0.4.28__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 (202) hide show
  1. {hud_python-0.4.26 → hud_python-0.4.28}/PKG-INFO +2 -2
  2. {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/base.py +11 -6
  3. {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/misc/response_agent.py +1 -1
  4. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/computer/hud.py +4 -4
  5. {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/tests/test_version.py +1 -1
  6. {hud_python-0.4.26 → hud_python-0.4.28}/hud/version.py +1 -1
  7. {hud_python-0.4.26 → hud_python-0.4.28}/pyproject.toml +2 -2
  8. {hud_python-0.4.26 → hud_python-0.4.28}/.gitignore +0 -0
  9. {hud_python-0.4.26 → hud_python-0.4.28}/LICENSE +0 -0
  10. {hud_python-0.4.26 → hud_python-0.4.28}/README.md +0 -0
  11. {hud_python-0.4.26 → hud_python-0.4.28}/environments/README.md +0 -0
  12. {hud_python-0.4.26 → hud_python-0.4.28}/environments/browser/README.md +0 -0
  13. {hud_python-0.4.26 → hud_python-0.4.28}/environments/browser/apps/2048/README.md +0 -0
  14. {hud_python-0.4.26 → hud_python-0.4.28}/environments/browser/apps/2048/backend/pyproject.toml +0 -0
  15. {hud_python-0.4.26 → hud_python-0.4.28}/environments/browser/apps/README.md +0 -0
  16. {hud_python-0.4.26 → hud_python-0.4.28}/environments/browser/apps/todo/README.md +0 -0
  17. {hud_python-0.4.26 → hud_python-0.4.28}/environments/browser/apps/todo/backend/pyproject.toml +0 -0
  18. {hud_python-0.4.26 → hud_python-0.4.28}/environments/browser/pyproject.toml +0 -0
  19. {hud_python-0.4.26 → hud_python-0.4.28}/environments/remote_browser/README.md +0 -0
  20. {hud_python-0.4.26 → hud_python-0.4.28}/environments/remote_browser/pyproject.toml +0 -0
  21. {hud_python-0.4.26 → hud_python-0.4.28}/environments/remote_browser/src/hud_controller/providers/README.md +0 -0
  22. {hud_python-0.4.26 → hud_python-0.4.28}/environments/text_2048/README.md +0 -0
  23. {hud_python-0.4.26 → hud_python-0.4.28}/environments/text_2048/pyproject.toml +0 -0
  24. {hud_python-0.4.26 → hud_python-0.4.28}/examples/README.md +0 -0
  25. {hud_python-0.4.26 → hud_python-0.4.28}/hud/__init__.py +0 -0
  26. {hud_python-0.4.26 → hud_python-0.4.28}/hud/__main__.py +0 -0
  27. {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/__init__.py +0 -0
  28. {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/claude.py +0 -0
  29. {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/grounded_openai.py +0 -0
  30. {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/langchain.py +0 -0
  31. {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/misc/__init__.py +0 -0
  32. {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/openai.py +0 -0
  33. {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/openai_chat_generic.py +0 -0
  34. {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/tests/__init__.py +0 -0
  35. {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/tests/test_base.py +0 -0
  36. {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/tests/test_claude.py +0 -0
  37. {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/tests/test_client.py +0 -0
  38. {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/tests/test_grounded_openai_agent.py +0 -0
  39. {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/tests/test_openai.py +0 -0
  40. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/__init__.py +0 -0
  41. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/__main__.py +0 -0
  42. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/analyze.py +0 -0
  43. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/build.py +0 -0
  44. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/clone.py +0 -0
  45. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/debug.py +0 -0
  46. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/dev.py +0 -0
  47. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/eval.py +0 -0
  48. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/hf.py +0 -0
  49. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/init.py +0 -0
  50. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/list_func.py +0 -0
  51. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/pull.py +0 -0
  52. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/push.py +0 -0
  53. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/remove.py +0 -0
  54. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/rl/README.md +0 -0
  55. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/rl/__init__.py +0 -0
  56. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/rl/init.py +0 -0
  57. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/rl/pod.py +0 -0
  58. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/rl/ssh.py +0 -0
  59. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/rl/train.py +0 -0
  60. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/rl/utils.py +0 -0
  61. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/__init__.py +0 -0
  62. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_analyze.py +0 -0
  63. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_analyze_metadata.py +0 -0
  64. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_build.py +0 -0
  65. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_cli_init.py +0 -0
  66. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_cli_main.py +0 -0
  67. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_clone.py +0 -0
  68. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_cursor.py +0 -0
  69. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_debug.py +0 -0
  70. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_list_func.py +0 -0
  71. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_main_module.py +0 -0
  72. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_mcp_server.py +0 -0
  73. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_pull.py +0 -0
  74. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_push.py +0 -0
  75. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_registry.py +0 -0
  76. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_utils.py +0 -0
  77. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/__init__.py +0 -0
  78. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/cursor.py +0 -0
  79. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/docker.py +0 -0
  80. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/environment.py +0 -0
  81. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/interactive.py +0 -0
  82. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/logging.py +0 -0
  83. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/metadata.py +0 -0
  84. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/registry.py +0 -0
  85. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/remote_runner.py +0 -0
  86. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/runner.py +0 -0
  87. {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/server.py +0 -0
  88. {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/README.md +0 -0
  89. {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/__init__.py +0 -0
  90. {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/base.py +0 -0
  91. {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/fastmcp.py +0 -0
  92. {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/mcp_use.py +0 -0
  93. {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/tests/__init__.py +0 -0
  94. {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/tests/test_client_integration.py +0 -0
  95. {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/tests/test_fastmcp.py +0 -0
  96. {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/tests/test_mcp_use_retry.py +0 -0
  97. {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/tests/test_protocol.py +0 -0
  98. {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/utils/__init__.py +0 -0
  99. {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/utils/mcp_use_retry.py +0 -0
  100. {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/utils/retry.py +0 -0
  101. {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/utils/retry_transport.py +0 -0
  102. {hud_python-0.4.26 → hud_python-0.4.28}/hud/datasets/__init__.py +0 -0
  103. {hud_python-0.4.26 → hud_python-0.4.28}/hud/datasets/execution/__init__.py +0 -0
  104. {hud_python-0.4.26 → hud_python-0.4.28}/hud/datasets/execution/parallel.py +0 -0
  105. {hud_python-0.4.26 → hud_python-0.4.28}/hud/datasets/execution/runner.py +0 -0
  106. {hud_python-0.4.26 → hud_python-0.4.28}/hud/datasets/task.py +0 -0
  107. {hud_python-0.4.26 → hud_python-0.4.28}/hud/datasets/utils.py +0 -0
  108. {hud_python-0.4.26 → hud_python-0.4.28}/hud/misc/__init__.py +0 -0
  109. {hud_python-0.4.26 → hud_python-0.4.28}/hud/misc/claude_plays_pokemon.py +0 -0
  110. {hud_python-0.4.26 → hud_python-0.4.28}/hud/native/__init__.py +0 -0
  111. {hud_python-0.4.26 → hud_python-0.4.28}/hud/native/comparator.py +0 -0
  112. {hud_python-0.4.26 → hud_python-0.4.28}/hud/native/tests/__init__.py +0 -0
  113. {hud_python-0.4.26 → hud_python-0.4.28}/hud/native/tests/test_comparator.py +0 -0
  114. {hud_python-0.4.26 → hud_python-0.4.28}/hud/native/tests/test_native_init.py +0 -0
  115. {hud_python-0.4.26 → hud_python-0.4.28}/hud/otel/__init__.py +0 -0
  116. {hud_python-0.4.26 → hud_python-0.4.28}/hud/otel/collector.py +0 -0
  117. {hud_python-0.4.26 → hud_python-0.4.28}/hud/otel/config.py +0 -0
  118. {hud_python-0.4.26 → hud_python-0.4.28}/hud/otel/context.py +0 -0
  119. {hud_python-0.4.26 → hud_python-0.4.28}/hud/otel/exporters.py +0 -0
  120. {hud_python-0.4.26 → hud_python-0.4.28}/hud/otel/instrumentation.py +0 -0
  121. {hud_python-0.4.26 → hud_python-0.4.28}/hud/otel/processors.py +0 -0
  122. {hud_python-0.4.26 → hud_python-0.4.28}/hud/otel/tests/__init__.py +0 -0
  123. {hud_python-0.4.26 → hud_python-0.4.28}/hud/otel/tests/test_processors.py +0 -0
  124. {hud_python-0.4.26 → hud_python-0.4.28}/hud/py.typed +0 -0
  125. {hud_python-0.4.26 → hud_python-0.4.28}/hud/server/__init__.py +0 -0
  126. {hud_python-0.4.26 → hud_python-0.4.28}/hud/server/context.py +0 -0
  127. {hud_python-0.4.26 → hud_python-0.4.28}/hud/server/helper/__init__.py +0 -0
  128. {hud_python-0.4.26 → hud_python-0.4.28}/hud/server/low_level.py +0 -0
  129. {hud_python-0.4.26 → hud_python-0.4.28}/hud/server/server.py +0 -0
  130. {hud_python-0.4.26 → hud_python-0.4.28}/hud/server/tests/__init__.py +0 -0
  131. {hud_python-0.4.26 → hud_python-0.4.28}/hud/settings.py +0 -0
  132. {hud_python-0.4.26 → hud_python-0.4.28}/hud/shared/__init__.py +0 -0
  133. {hud_python-0.4.26 → hud_python-0.4.28}/hud/shared/exceptions.py +0 -0
  134. {hud_python-0.4.26 → hud_python-0.4.28}/hud/shared/hints.py +0 -0
  135. {hud_python-0.4.26 → hud_python-0.4.28}/hud/shared/requests.py +0 -0
  136. {hud_python-0.4.26 → hud_python-0.4.28}/hud/shared/tests/__init__.py +0 -0
  137. {hud_python-0.4.26 → hud_python-0.4.28}/hud/shared/tests/test_exceptions.py +0 -0
  138. {hud_python-0.4.26 → hud_python-0.4.28}/hud/shared/tests/test_requests.py +0 -0
  139. {hud_python-0.4.26 → hud_python-0.4.28}/hud/telemetry/__init__.py +0 -0
  140. {hud_python-0.4.26 → hud_python-0.4.28}/hud/telemetry/instrument.py +0 -0
  141. {hud_python-0.4.26 → hud_python-0.4.28}/hud/telemetry/job.py +0 -0
  142. {hud_python-0.4.26 → hud_python-0.4.28}/hud/telemetry/replay.py +0 -0
  143. {hud_python-0.4.26 → hud_python-0.4.28}/hud/telemetry/tests/__init__.py +0 -0
  144. {hud_python-0.4.26 → hud_python-0.4.28}/hud/telemetry/tests/test_replay.py +0 -0
  145. {hud_python-0.4.26 → hud_python-0.4.28}/hud/telemetry/tests/test_trace.py +0 -0
  146. {hud_python-0.4.26 → hud_python-0.4.28}/hud/telemetry/trace.py +0 -0
  147. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/__init__.py +0 -0
  148. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/base.py +0 -0
  149. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/bash.py +0 -0
  150. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/computer/__init__.py +0 -0
  151. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/computer/anthropic.py +0 -0
  152. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/computer/openai.py +0 -0
  153. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/computer/settings.py +0 -0
  154. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/edit.py +0 -0
  155. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/executors/__init__.py +0 -0
  156. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/executors/base.py +0 -0
  157. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/executors/pyautogui.py +0 -0
  158. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/executors/tests/__init__.py +0 -0
  159. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/executors/tests/test_base_executor.py +0 -0
  160. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/executors/tests/test_pyautogui_executor.py +0 -0
  161. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/executors/xdo.py +0 -0
  162. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/grounding/__init__.py +0 -0
  163. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/grounding/config.py +0 -0
  164. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/grounding/grounded_tool.py +0 -0
  165. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/grounding/grounder.py +0 -0
  166. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/grounding/tests/__init__.py +0 -0
  167. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/grounding/tests/test_grounded_tool.py +0 -0
  168. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/playwright.py +0 -0
  169. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/response.py +0 -0
  170. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/submit.py +0 -0
  171. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/__init__.py +0 -0
  172. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_base.py +0 -0
  173. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_bash.py +0 -0
  174. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_bash_extended.py +0 -0
  175. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_computer.py +0 -0
  176. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_computer_actions.py +0 -0
  177. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_edit.py +0 -0
  178. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_init.py +0 -0
  179. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_playwright_tool.py +0 -0
  180. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_response.py +0 -0
  181. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_tools.py +0 -0
  182. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_tools_init.py +0 -0
  183. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_utils.py +0 -0
  184. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/types.py +0 -0
  185. {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/utils.py +0 -0
  186. {hud_python-0.4.26 → hud_python-0.4.28}/hud/types.py +0 -0
  187. {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/__init__.py +0 -0
  188. {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/agent_factories.py +0 -0
  189. {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/async_utils.py +0 -0
  190. {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/hud_console.py +0 -0
  191. {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/mcp.py +0 -0
  192. {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/pretty_errors.py +0 -0
  193. {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/progress.py +0 -0
  194. {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/telemetry.py +0 -0
  195. {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/tests/__init__.py +0 -0
  196. {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/tests/test_async_utils.py +0 -0
  197. {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/tests/test_init.py +0 -0
  198. {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/tests/test_mcp.py +0 -0
  199. {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/tests/test_progress.py +0 -0
  200. {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/tests/test_telemetry.py +0 -0
  201. {hud_python-0.4.26 → hud_python-0.4.28}/rl/README.md +0 -0
  202. {hud_python-0.4.26 → hud_python-0.4.28}/rl/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hud-python
3
- Version: 0.4.26
3
+ Version: 0.4.28
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
@@ -41,7 +41,7 @@ Requires-Dist: hud-mcp-python-sdk>=3.13.2
41
41
  Requires-Dist: hud-mcp-use-python-sdk>=2.3.16
42
42
  Requires-Dist: opentelemetry-api>=1.34.1
43
43
  Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.34.1
44
- Requires-Dist: opentelemetry-instrumentation-mcp>=0.44.1
44
+ Requires-Dist: opentelemetry-instrumentation-mcp==0.47.0
45
45
  Requires-Dist: opentelemetry-sdk>=1.34.1
46
46
  Requires-Dist: pathspec>=0.12.1
47
47
  Requires-Dist: prompt-toolkit==3.0.51
@@ -556,7 +556,6 @@ class MCPAgent(ABC):
556
556
 
557
557
  all_tools = await self.mcp_client.list_tools()
558
558
 
559
-
560
559
  response_tools_by_server: dict[str, str] = {} # server_name -> tool_name
561
560
  for tool in all_tools:
562
561
  if "response" in tool.name or tool.name == "response":
@@ -579,7 +578,9 @@ class MCPAgent(ABC):
579
578
  for server_name in reversed(server_names):
580
579
  if server_name in response_tools_by_server:
581
580
  response_tool_name = response_tools_by_server[server_name]
582
- self.console.debug(f"Found response tool '{response_tool_name}' from server '{server_name}'")
581
+ self.console.debug(
582
+ f"Found response tool '{response_tool_name}' from server '{server_name}'"
583
+ )
583
584
  break
584
585
 
585
586
  # Fallback to any response tool
@@ -593,10 +594,12 @@ class MCPAgent(ABC):
593
594
  self.response_tool_name = response_tool_name
594
595
  self.lifecycle_tools.append(response_tool_name)
595
596
  elif response_tool_name:
596
- self.console.debug(f"Response tool '{response_tool_name}' already in lifecycle_tools")
597
+ self.console.debug(
598
+ f"Response tool '{response_tool_name}' already in lifecycle_tools"
599
+ )
597
600
  self.response_tool_name = response_tool_name
598
601
  else:
599
- self.console.debug(f"No response tools found or no mcp_config")
602
+ self.console.debug("No response tools found or no mcp_config")
600
603
 
601
604
  # Filter tools
602
605
  self._available_tools = []
@@ -610,7 +613,7 @@ class MCPAgent(ABC):
610
613
  for tool in all_tools:
611
614
  # Lifecycle tools (setup, evaluate, response) should always be included
612
615
  is_lifecycle = tool.name in self.lifecycle_tools
613
-
616
+
614
617
  # Check if tool should be included
615
618
  if not is_lifecycle:
616
619
  if self.allowed_tools and tool.name not in self.allowed_tools:
@@ -620,7 +623,9 @@ class MCPAgent(ABC):
620
623
  self.console.debug(f"Skipping tool '{tool.name}' - in disallowed_tools")
621
624
  continue
622
625
 
623
- self.console.debug(f"Adding tool '{tool.name}' to available tools (lifecycle={is_lifecycle})")
626
+ self.console.debug(
627
+ f"Adding tool '{tool.name}' to available tools (lifecycle={is_lifecycle})"
628
+ )
624
629
  self._available_tools.append(tool)
625
630
  self._tool_map[tool.name] = tool
626
631
 
@@ -34,7 +34,7 @@ class ResponseAgent:
34
34
 
35
35
  - STOP: If the agent indicates it has successfully completed a task, even if phrased as a question
36
36
  like "I have entered the right values into this form. Would you like me to do anything else?"
37
- or "Here is the website. Is there any other information you need?" or if the agent has
37
+ or "Here is the website. Is there any other information you need?" or if the agent has
38
38
  strongly determined it wants to stop the task.
39
39
 
40
40
  - CONTINUE: If the agent is asking for clarification before proceeding with a task
@@ -231,7 +231,7 @@ class HudComputerTool(BaseTool):
231
231
 
232
232
  async def __call__(
233
233
  self,
234
- action: str = Field(..., description="The action name (click, type, move, etc.)"),
234
+ action: str = Field(..., description="The action name (click, press, write, move, etc.)"),
235
235
  # Click parameters
236
236
  x: int | None = Field(None, description="X coordinate for click/move/scroll actions"),
237
237
  y: int | None = Field(None, description="Y coordinate for click/move/scroll actions"),
@@ -242,7 +242,7 @@ class HudComputerTool(BaseTool):
242
242
  None, description="Click pattern for multi-clicks (e.g., [100] for double-click)"
243
243
  ),
244
244
  # Key/Type parameters
245
- text: str | None = Field(None, description="Text for type/response actions"),
245
+ text: str | None = Field(None, description="Text for write/response actions"),
246
246
  keys: list[str] | None = Field(None, description="Keys for press/keydown/keyup actions"),
247
247
  enter_after: bool | None = Field(None, description="Whether to press Enter after typing"),
248
248
  # Scroll parameters
@@ -300,9 +300,9 @@ class HudComputerTool(BaseTool):
300
300
  raise ToolError("keys parameter is required for keyup")
301
301
  result = await self.executor.keyup(keys=keys)
302
302
 
303
- elif action == "type":
303
+ elif action == "write":
304
304
  if text is None:
305
- raise ToolError("text parameter is required for type")
305
+ raise ToolError("text parameter is required for write")
306
306
  result = await self.executor.write(text=text, enter_after=enter_after or False)
307
307
 
308
308
  elif action == "scroll":
@@ -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.26"
8
+ assert hud.__version__ == "0.4.28"
@@ -4,4 +4,4 @@ Version information for the HUD SDK.
4
4
 
5
5
  from __future__ import annotations
6
6
 
7
- __version__ = "0.4.26"
7
+ __version__ = "0.4.28"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "hud-python"
3
- version = "0.4.26"
3
+ version = "0.4.28"
4
4
  description = "SDK for the HUD platform."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11, <3.14"
@@ -27,7 +27,7 @@ dependencies = [
27
27
  "questionary==2.1.0",
28
28
  "prompt-toolkit==3.0.51",
29
29
  # Telemetry
30
- "opentelemetry-instrumentation-mcp>=0.44.1",
30
+ "opentelemetry-instrumentation-mcp==0.47.0",
31
31
  "opentelemetry-api>=1.34.1",
32
32
  "opentelemetry-sdk>=1.34.1",
33
33
  "opentelemetry-exporter-otlp-proto-http>=1.34.1",
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes