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.
- {hud_python-0.4.26 → hud_python-0.4.28}/PKG-INFO +2 -2
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/base.py +11 -6
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/misc/response_agent.py +1 -1
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/computer/hud.py +4 -4
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/tests/test_version.py +1 -1
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/version.py +1 -1
- {hud_python-0.4.26 → hud_python-0.4.28}/pyproject.toml +2 -2
- {hud_python-0.4.26 → hud_python-0.4.28}/.gitignore +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/LICENSE +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/README.md +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/environments/README.md +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/environments/browser/README.md +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/environments/browser/apps/2048/README.md +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/environments/browser/apps/2048/backend/pyproject.toml +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/environments/browser/apps/README.md +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/environments/browser/apps/todo/README.md +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/environments/browser/apps/todo/backend/pyproject.toml +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/environments/browser/pyproject.toml +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/environments/remote_browser/README.md +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/environments/remote_browser/pyproject.toml +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/environments/remote_browser/src/hud_controller/providers/README.md +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/environments/text_2048/README.md +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/environments/text_2048/pyproject.toml +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/examples/README.md +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/__main__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/claude.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/grounded_openai.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/langchain.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/misc/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/openai.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/openai_chat_generic.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/tests/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/tests/test_base.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/tests/test_claude.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/tests/test_client.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/tests/test_grounded_openai_agent.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/agents/tests/test_openai.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/__main__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/analyze.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/build.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/clone.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/debug.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/dev.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/eval.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/hf.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/init.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/list_func.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/pull.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/push.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/remove.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/rl/README.md +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/rl/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/rl/init.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/rl/pod.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/rl/ssh.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/rl/train.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/rl/utils.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_analyze.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_analyze_metadata.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_build.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_cli_init.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_cli_main.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_clone.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_cursor.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_debug.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_list_func.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_main_module.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_mcp_server.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_pull.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_push.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_registry.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/tests/test_utils.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/cursor.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/docker.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/environment.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/interactive.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/logging.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/metadata.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/registry.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/remote_runner.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/runner.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/cli/utils/server.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/README.md +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/base.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/fastmcp.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/mcp_use.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/tests/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/tests/test_client_integration.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/tests/test_fastmcp.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/tests/test_mcp_use_retry.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/tests/test_protocol.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/utils/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/utils/mcp_use_retry.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/utils/retry.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/clients/utils/retry_transport.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/datasets/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/datasets/execution/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/datasets/execution/parallel.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/datasets/execution/runner.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/datasets/task.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/datasets/utils.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/misc/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/misc/claude_plays_pokemon.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/native/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/native/comparator.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/native/tests/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/native/tests/test_comparator.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/native/tests/test_native_init.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/otel/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/otel/collector.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/otel/config.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/otel/context.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/otel/exporters.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/otel/instrumentation.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/otel/processors.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/otel/tests/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/otel/tests/test_processors.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/py.typed +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/server/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/server/context.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/server/helper/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/server/low_level.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/server/server.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/server/tests/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/settings.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/shared/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/shared/exceptions.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/shared/hints.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/shared/requests.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/shared/tests/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/shared/tests/test_exceptions.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/shared/tests/test_requests.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/telemetry/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/telemetry/instrument.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/telemetry/job.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/telemetry/replay.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/telemetry/tests/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/telemetry/tests/test_replay.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/telemetry/tests/test_trace.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/telemetry/trace.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/base.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/bash.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/computer/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/computer/anthropic.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/computer/openai.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/computer/settings.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/edit.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/executors/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/executors/base.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/executors/pyautogui.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/executors/tests/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/executors/tests/test_base_executor.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/executors/tests/test_pyautogui_executor.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/executors/xdo.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/grounding/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/grounding/config.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/grounding/grounded_tool.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/grounding/grounder.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/grounding/tests/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/grounding/tests/test_grounded_tool.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/playwright.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/response.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/submit.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_base.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_bash.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_bash_extended.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_computer.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_computer_actions.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_edit.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_init.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_playwright_tool.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_response.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_tools.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_tools_init.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/tests/test_utils.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/types.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/utils.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/types.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/agent_factories.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/async_utils.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/hud_console.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/mcp.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/pretty_errors.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/progress.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/telemetry.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/tests/__init__.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/tests/test_async_utils.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/tests/test_init.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/tests/test_mcp.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/tests/test_progress.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/hud/utils/tests/test_telemetry.py +0 -0
- {hud_python-0.4.26 → hud_python-0.4.28}/rl/README.md +0 -0
- {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.
|
|
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
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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,
|
|
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
|
|
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 == "
|
|
303
|
+
elif action == "write":
|
|
304
304
|
if text is None:
|
|
305
|
-
raise ToolError("text parameter is required for
|
|
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":
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "hud-python"
|
|
3
|
-
version = "0.4.
|
|
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
|
|
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
|
{hud_python-0.4.26 → hud_python-0.4.28}/environments/browser/apps/2048/backend/pyproject.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hud_python-0.4.26 → hud_python-0.4.28}/environments/browser/apps/todo/backend/pyproject.toml
RENAMED
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hud_python-0.4.26 → hud_python-0.4.28}/hud/tools/executors/tests/test_pyautogui_executor.py
RENAMED
|
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
|
|
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
|
|
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
|