hud-python 0.4.71__tar.gz → 0.4.73__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.
- {hud_python-0.4.71 → hud_python-0.4.73}/PKG-INFO +2 -1
- {hud_python-0.4.71 → hud_python-0.4.73}/README.md +1 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/gemini_cua.py +1 -1
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/misc/response_agent.py +2 -2
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/tests/test_gemini.py +2 -2
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/__init__.py +6 -5
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/eval.py +2 -2
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/rft.py +119 -5
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/datasets/runner.py +3 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/computer/openai.py +2 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/utils/tests/test_version.py +1 -1
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/version.py +1 -1
- {hud_python-0.4.71 → hud_python-0.4.73}/pyproject.toml +1 -1
- {hud_python-0.4.71 → hud_python-0.4.73}/.gitignore +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/LICENSE +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/README.md +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/blank/README.md +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/blank/environment/README.md +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/blank/environment/pyproject.toml +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/blank/server/README.md +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/blank/server/pyproject.toml +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/browser/README.md +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/browser/browser-base/README.md +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/browser/environment/2048/README.md +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/browser/environment/2048/backend/pyproject.toml +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/browser/environment/README.md +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/browser/environment/pyproject.toml +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/browser/environment/todo/README.md +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/browser/environment/todo/backend/pyproject.toml +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/browser/pyproject.toml +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/browser/server/pyproject.toml +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/deepresearch/README.md +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/deepresearch/environment/pyproject.toml +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/deepresearch/pyproject.toml +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/deepresearch/server/pyproject.toml +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/jupyter/README.md +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/jupyter/server/pyproject.toml +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/online_mind2web/README.md +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/online_mind2web/pyproject.toml +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/online_mind2web/src/hud_controller/providers/README.md +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/remote_browser/README.md +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/remote_browser/pyproject.toml +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/remote_browser/src/hud_controller/providers/README.md +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/rubrics/README.md +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/rubrics/environment/pyproject.toml +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/rubrics/pyproject.toml +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/rubrics/server/pyproject.toml +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/text_2048/README.md +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/environments/text_2048/pyproject.toml +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/examples/README.md +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/__main__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/base.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/claude.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/gemini.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/grounded_openai.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/misc/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/misc/integration_test_agent.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/openai.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/openai_chat.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/operator.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/tests/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/tests/conftest.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/tests/test_base.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/tests/test_base_runtime.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/tests/test_claude.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/tests/test_client.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/tests/test_grounded_openai_agent.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/tests/test_openai.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/tests/test_operator.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/agents/utils.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/__main__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/analyze.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/build.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/clone.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/debug.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/dev.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/flows/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/flows/dev.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/flows/tasks.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/flows/tests/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/flows/tests/test_dev.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/get.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/init.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/list_func.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/pull.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/push.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/remove.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/rft_status.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/rl/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/rl/celebrate.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/rl/config.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/rl/display.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/rl/gpu.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/rl/gpu_utils.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/rl/local_runner.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/rl/presets.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/rl/remote_runner.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/rl/rl_api.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/rl/viewer.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/rl/vllm.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/rl/wait_utils.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_analyze.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_analyze_metadata.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_analyze_module.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_build.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_build_failure.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_build_module.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_cli_init.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_cli_main.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_cli_more_wrappers.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_cli_root.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_clone.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_convert.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_cursor.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_debug.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_dev.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_eval.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_init.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_list_func.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_main_module.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_mcp_server.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_pull.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_push.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_push_happy.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_push_wrapper.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_registry.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/tests/test_utils.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/config.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/cursor.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/docker.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/env_check.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/environment.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/git.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/interactive.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/local_runner.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/logging.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/metadata.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/package_runner.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/registry.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/remote_runner.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/runner.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/server.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/source_hash.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/tasks.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/tests/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/tests/test_config.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/tests/test_docker.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/tests/test_docker_hints.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/tests/test_env_check.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/tests/test_environment.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/tests/test_git.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/tests/test_interactive_module.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/tests/test_local_runner.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/tests/test_logging_utils.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/tests/test_metadata.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/tests/test_package_runner.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/tests/test_registry_utils.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/tests/test_remote_runner.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/tests/test_runner_modules.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/tests/test_source_hash.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/tests/test_tasks.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/cli/utils/version_check.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/clients/README.md +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/clients/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/clients/base.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/clients/fastmcp.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/clients/mcp_use.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/clients/tests/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/clients/tests/test_client_integration.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/clients/tests/test_fastmcp.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/clients/tests/test_mcp_use_retry.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/clients/tests/test_protocol.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/clients/utils/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/clients/utils/mcp_use_retry.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/clients/utils/retry.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/clients/utils/retry_transport.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/datasets/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/datasets/tests/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/datasets/tests/test_runner.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/datasets/tests/test_utils.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/datasets/utils.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/misc/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/misc/claude_plays_pokemon.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/native/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/native/comparator.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/native/tests/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/native/tests/test_comparator.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/native/tests/test_native_init.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/otel/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/otel/collector.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/otel/config.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/otel/context.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/otel/exporters.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/otel/instrumentation.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/otel/processors.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/otel/tests/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/otel/tests/test_instrumentation.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/otel/tests/test_processors.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/py.typed +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/rl/README.md +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/rl/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/rl/actor.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/rl/buffer.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/rl/chat_template.jinja +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/rl/config.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/rl/distributed.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/rl/learner.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/rl/tests/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/rl/tests/test_learner.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/rl/train.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/rl/types.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/rl/utils/start_vllm_server.sh +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/rl/utils.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/rl/vllm_adapter.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/samples/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/samples/browser.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/server/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/server/context.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/server/helper/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/server/low_level.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/server/router.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/server/server.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/server/tests/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/server/tests/test_add_tool.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/server/tests/test_context.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/server/tests/test_mcp_server_handlers.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/server/tests/test_mcp_server_integration.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/server/tests/test_mcp_server_more.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/server/tests/test_run_wrapper.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/server/tests/test_server_extra.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/server/tests/test_sigterm_runner.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/settings.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/shared/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/shared/exceptions.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/shared/hints.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/shared/requests.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/shared/tests/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/shared/tests/test_exceptions.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/shared/tests/test_hints.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/shared/tests/test_requests.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/telemetry/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/telemetry/async_context.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/telemetry/instrument.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/telemetry/job.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/telemetry/replay.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/telemetry/tests/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/telemetry/tests/test_async_context.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/telemetry/tests/test_instrument.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/telemetry/tests/test_job.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/telemetry/tests/test_replay.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/telemetry/tests/test_trace.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/telemetry/trace.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/telemetry/utils.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/apply_patch.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/base.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/bash.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/computer/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/computer/anthropic.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/computer/gemini.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/computer/hud.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/computer/qwen.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/computer/settings.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/edit.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/executors/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/executors/base.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/executors/pyautogui.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/executors/tests/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/executors/tests/test_base_executor.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/executors/tests/test_pyautogui_executor.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/executors/xdo.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/grounding/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/grounding/config.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/grounding/grounded_tool.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/grounding/grounder.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/grounding/tests/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/grounding/tests/test_grounded_tool.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/jupyter.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/playwright.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/response.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/shell.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/submit.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/tests/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/tests/test_apply_patch.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/tests/test_base.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/tests/test_bash.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/tests/test_bash_extended.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/tests/test_computer.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/tests/test_computer_actions.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/tests/test_edit.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/tests/test_init.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/tests/test_jupyter_tool.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/tests/test_playwright_tool.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/tests/test_response.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/tests/test_shell.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/tests/test_submit.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/tests/test_tools.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/tests/test_tools_init.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/tests/test_types.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/tests/test_utils.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/types.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/tools/utils.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/types.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/utils/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/utils/hud_console.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/utils/mcp.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/utils/pretty_errors.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/utils/strict_schema.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/utils/tasks.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/utils/telemetry.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/utils/tests/__init__.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/utils/tests/test_init.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/utils/tests/test_mcp.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/utils/tests/test_pretty_errors.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/utils/tests/test_tasks.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/utils/tests/test_telemetry.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/utils/tests/test_tool_shorthand.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/utils/tool_shorthand.py +0 -0
- {hud_python-0.4.71 → hud_python-0.4.73}/hud/utils/types.py +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.73
|
|
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
|
|
@@ -131,6 +131,7 @@ OSS RL environment + evals toolkit. Wrap software as environments, run benchmark
|
|
|
131
131
|
[](https://discord.gg/wkjtmHYYjm)
|
|
132
132
|
[](https://x.com/intent/user?screen_name=hud_evals)
|
|
133
133
|
[](https://shop.hud.ai)
|
|
134
|
+
[](https://scarf.sh)
|
|
134
135
|
|
|
135
136
|
|
|
136
137
|
### Are you an enterprise building agents?
|
|
@@ -14,6 +14,7 @@ OSS RL environment + evals toolkit. Wrap software as environments, run benchmark
|
|
|
14
14
|
[](https://discord.gg/wkjtmHYYjm)
|
|
15
15
|
[](https://x.com/intent/user?screen_name=hud_evals)
|
|
16
16
|
[](https://shop.hud.ai)
|
|
17
|
+
[](https://scarf.sh)
|
|
17
18
|
|
|
18
19
|
|
|
19
20
|
### Are you an enterprise building agents?
|
|
@@ -62,7 +62,7 @@ class GeminiCUAConfig(GeminiConfig):
|
|
|
62
62
|
model_config = ConfigDict(arbitrary_types_allowed=True)
|
|
63
63
|
|
|
64
64
|
model_name: str = "GeminiCUA"
|
|
65
|
-
checkpoint_name: str = "gemini-2.5-computer-use-preview
|
|
65
|
+
checkpoint_name: str = "gemini-2.5-computer-use-preview"
|
|
66
66
|
excluded_predefined_functions: list[str] = Field(default_factory=list)
|
|
67
67
|
|
|
68
68
|
|
|
@@ -37,14 +37,14 @@ class ResponseAgent:
|
|
|
37
37
|
|
|
38
38
|
def __init__(
|
|
39
39
|
self,
|
|
40
|
-
model: str = "
|
|
40
|
+
model: str = "gpt-4o",
|
|
41
41
|
system_prompt: str | None = None,
|
|
42
42
|
) -> None:
|
|
43
43
|
"""
|
|
44
44
|
Initialize the ResponseAgent.
|
|
45
45
|
|
|
46
46
|
Args:
|
|
47
|
-
model: The model to use via HUD inference gateway (default: "
|
|
47
|
+
model: The model to use via HUD inference gateway (default: "gpt-4o").
|
|
48
48
|
Supports any model available through inference.hud.ai.
|
|
49
49
|
system_prompt: Optional custom system prompt for determining responses.
|
|
50
50
|
"""
|
|
@@ -317,12 +317,12 @@ class TestGeminiCUAAgent:
|
|
|
317
317
|
agent = GeminiCUAAgent.create(
|
|
318
318
|
mcp_client=mock_mcp_client_gemini_computer,
|
|
319
319
|
model_client=mock_gemini_client,
|
|
320
|
-
checkpoint_name="gemini-2.5-computer-use-preview
|
|
320
|
+
checkpoint_name="gemini-2.5-computer-use-preview",
|
|
321
321
|
validate_api_key=False, # Skip validation in tests
|
|
322
322
|
)
|
|
323
323
|
|
|
324
324
|
assert agent.model_name == "GeminiCUA"
|
|
325
|
-
assert agent.config.checkpoint_name == "gemini-2.5-computer-use-preview
|
|
325
|
+
assert agent.config.checkpoint_name == "gemini-2.5-computer-use-preview"
|
|
326
326
|
assert agent.gemini_client == mock_gemini_client
|
|
327
327
|
|
|
328
328
|
@pytest.mark.asyncio
|
|
@@ -560,10 +560,11 @@ def rft_run(
|
|
|
560
560
|
...,
|
|
561
561
|
help="Path to tasks file (JSON/JSONL)",
|
|
562
562
|
),
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
"--
|
|
566
|
-
|
|
563
|
+
model_id: str | None = typer.Option(
|
|
564
|
+
None,
|
|
565
|
+
"--model-id",
|
|
566
|
+
"-m",
|
|
567
|
+
help="Model ID to train (skip interactive selection)",
|
|
567
568
|
),
|
|
568
569
|
reasoning_effort: str = typer.Option(
|
|
569
570
|
"medium",
|
|
@@ -586,10 +587,10 @@ def rft_run(
|
|
|
586
587
|
"""Launch an RFT training job."""
|
|
587
588
|
rft_command(
|
|
588
589
|
tasks_file=tasks_file,
|
|
589
|
-
provider=provider,
|
|
590
590
|
reasoning_effort=reasoning_effort,
|
|
591
591
|
verbose=verbose,
|
|
592
592
|
yes=yes,
|
|
593
|
+
model_id=model_id,
|
|
593
594
|
)
|
|
594
595
|
|
|
595
596
|
|
|
@@ -54,7 +54,7 @@ _AGENT_PRESETS: list[AgentPreset] = [
|
|
|
54
54
|
AgentPreset(
|
|
55
55
|
"Gemini CUA (Gemini Computer Use)",
|
|
56
56
|
AgentType.GEMINI_CUA,
|
|
57
|
-
"gemini-2.5-computer-use-preview
|
|
57
|
+
"gemini-2.5-computer-use-preview",
|
|
58
58
|
),
|
|
59
59
|
# HUD Gateway presets (models via HUD Inference API)
|
|
60
60
|
AgentPreset(
|
|
@@ -66,7 +66,7 @@ _AGENT_PRESETS: list[AgentPreset] = [
|
|
|
66
66
|
AgentPreset(
|
|
67
67
|
"GLM-4.5V (Z-AI)",
|
|
68
68
|
AgentType.OPENAI_COMPATIBLE,
|
|
69
|
-
"glm-4.5v",
|
|
69
|
+
"z-ai/glm-4.5v",
|
|
70
70
|
{"openai_compatible": {"base_url": settings.hud_gateway_url, "model_name": "GLM"}},
|
|
71
71
|
),
|
|
72
72
|
]
|
|
@@ -3,8 +3,10 @@ from __future__ import annotations
|
|
|
3
3
|
import logging
|
|
4
4
|
from typing import Any
|
|
5
5
|
|
|
6
|
+
import httpx
|
|
6
7
|
import typer
|
|
7
8
|
from rich.console import Console
|
|
9
|
+
from rich.table import Table
|
|
8
10
|
|
|
9
11
|
from hud.settings import settings
|
|
10
12
|
from hud.utils.hud_console import HUDConsole
|
|
@@ -39,12 +41,86 @@ def _patch_mcp_urls_to_staging(tasks: list[dict[str, Any]]) -> list[dict[str, An
|
|
|
39
41
|
return [patch_value(task) for task in tasks]
|
|
40
42
|
|
|
41
43
|
|
|
44
|
+
def _fetch_models() -> list[dict[str, Any]]:
|
|
45
|
+
"""Fetch trainable models from the HUD API for the user's team."""
|
|
46
|
+
url = f"{settings.hud_api_url}/models/"
|
|
47
|
+
headers = {
|
|
48
|
+
"Authorization": f"Bearer {settings.api_key}",
|
|
49
|
+
"x-api-key": settings.api_key or "",
|
|
50
|
+
}
|
|
51
|
+
params = {"team_only": "true", "limit": 200}
|
|
52
|
+
|
|
53
|
+
try:
|
|
54
|
+
with httpx.Client(timeout=30.0) as client:
|
|
55
|
+
resp = client.get(url, headers=headers, params=params)
|
|
56
|
+
resp.raise_for_status()
|
|
57
|
+
data = resp.json()
|
|
58
|
+
return data.get("models", [])
|
|
59
|
+
except httpx.HTTPStatusError as e:
|
|
60
|
+
hud_console.error(f"Failed to fetch models: {e.response.status_code}")
|
|
61
|
+
if e.response.status_code == 401:
|
|
62
|
+
hud_console.hint("Check that your HUD_API_KEY is valid")
|
|
63
|
+
raise typer.Exit(1) from e
|
|
64
|
+
except httpx.RequestError as e:
|
|
65
|
+
hud_console.error(f"Connection error while fetching models: {e}")
|
|
66
|
+
raise typer.Exit(1) from e
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def _select_model(models: list[dict[str, Any]]) -> dict[str, Any]:
|
|
70
|
+
"""Display models and let user select one for training."""
|
|
71
|
+
# Filter to only trainable models that are ready
|
|
72
|
+
trainable_models = [
|
|
73
|
+
m
|
|
74
|
+
for m in models
|
|
75
|
+
if m.get("is_trainable", False)
|
|
76
|
+
and m.get("status") == "ready"
|
|
77
|
+
and not m.get("public", False)
|
|
78
|
+
and m.get("model_name") is not None
|
|
79
|
+
]
|
|
80
|
+
|
|
81
|
+
if not trainable_models:
|
|
82
|
+
hud_console.error("No trainable models found in your team.")
|
|
83
|
+
hud_console.hint("Fork a trainable model at https://api.hud.so/models to start training.")
|
|
84
|
+
raise typer.Exit(1)
|
|
85
|
+
|
|
86
|
+
# Display models in a table
|
|
87
|
+
hud_console.section_title("Available Trainable Models")
|
|
88
|
+
table = Table(show_header=True, header_style="bold")
|
|
89
|
+
table.add_column("#", style="dim", width=4)
|
|
90
|
+
table.add_column("Name", style="bold")
|
|
91
|
+
table.add_column("Status")
|
|
92
|
+
table.add_column("Provider")
|
|
93
|
+
|
|
94
|
+
for i, model in enumerate(trainable_models, 1):
|
|
95
|
+
provider_name = (
|
|
96
|
+
model.get("provider", {}).get("name", "unknown") if model.get("provider") else "unknown"
|
|
97
|
+
)
|
|
98
|
+
table.add_row(
|
|
99
|
+
str(i),
|
|
100
|
+
model.get("name", "unnamed"),
|
|
101
|
+
model.get("status", "unknown"),
|
|
102
|
+
provider_name,
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
hud_console.console.print(table)
|
|
106
|
+
hud_console.print("")
|
|
107
|
+
|
|
108
|
+
# Build choices for selection
|
|
109
|
+
choices = [
|
|
110
|
+
{"name": f"{m.get('name', 'unnamed')} ({m.get('base_model', 'unknown')})", "value": m}
|
|
111
|
+
for m in trainable_models
|
|
112
|
+
]
|
|
113
|
+
|
|
114
|
+
selected: dict[str, Any] = hud_console.select("Select a model to train:", choices) # type: ignore[assignment]
|
|
115
|
+
return selected
|
|
116
|
+
|
|
117
|
+
|
|
42
118
|
def rft_command(
|
|
43
119
|
tasks_file: str,
|
|
44
|
-
provider: str = "openai",
|
|
45
120
|
reasoning_effort: str = "medium",
|
|
46
121
|
verbose: bool = False,
|
|
47
122
|
yes: bool = False,
|
|
123
|
+
model_id: str | None = None,
|
|
48
124
|
) -> None:
|
|
49
125
|
"""
|
|
50
126
|
Run Reinforcement Fine-Tuning (RFT) via the HUD RL service.
|
|
@@ -57,6 +133,47 @@ def rft_command(
|
|
|
57
133
|
hud_console.info("Run 'hud set HUD_API_KEY=...' or export it.")
|
|
58
134
|
raise typer.Exit(1)
|
|
59
135
|
|
|
136
|
+
# Model selection
|
|
137
|
+
selected_model_id: str
|
|
138
|
+
if model_id:
|
|
139
|
+
# Use provided model_id directly
|
|
140
|
+
selected_model_id = model_id
|
|
141
|
+
hud_console.info(f"Using provided model ID: {selected_model_id}")
|
|
142
|
+
else:
|
|
143
|
+
# Fetch and let user select a model
|
|
144
|
+
hud_console.section_title("Fetching available models")
|
|
145
|
+
hud_console.info("Loading models from your team...")
|
|
146
|
+
models = _fetch_models()
|
|
147
|
+
|
|
148
|
+
if yes:
|
|
149
|
+
# Auto-select first trainable model in non-interactive mode
|
|
150
|
+
trainable_models = [
|
|
151
|
+
m
|
|
152
|
+
for m in models
|
|
153
|
+
if m.get("is_trainable", False)
|
|
154
|
+
and m.get("status") == "ready"
|
|
155
|
+
and not m.get("public", False)
|
|
156
|
+
and m.get("model_name") is not None
|
|
157
|
+
]
|
|
158
|
+
if not trainable_models:
|
|
159
|
+
hud_console.error("No trainable models found in your team.")
|
|
160
|
+
hud_console.hint(
|
|
161
|
+
"Fork a trainable model at https://api.hud.so/models to start training."
|
|
162
|
+
)
|
|
163
|
+
raise typer.Exit(1)
|
|
164
|
+
selected_model = trainable_models[0]
|
|
165
|
+
hud_console.info(
|
|
166
|
+
f"Auto-selected first trainable model (--yes mode): "
|
|
167
|
+
f"{selected_model.get('name', 'unnamed')}"
|
|
168
|
+
)
|
|
169
|
+
else:
|
|
170
|
+
selected_model = _select_model(models)
|
|
171
|
+
|
|
172
|
+
selected_model_id = selected_model["id"]
|
|
173
|
+
hud_console.success(
|
|
174
|
+
f"Selected model: {selected_model.get('name', 'unnamed')} (ID: {selected_model_id})"
|
|
175
|
+
)
|
|
176
|
+
|
|
60
177
|
# Preflight check: Convert tasks to remote if needed
|
|
61
178
|
hud_console.section_title("Preparing tasks for remote training")
|
|
62
179
|
try:
|
|
@@ -153,8 +270,7 @@ def rft_command(
|
|
|
153
270
|
|
|
154
271
|
# Prepare payload
|
|
155
272
|
payload = {
|
|
156
|
-
"
|
|
157
|
-
"base_model": "o4-mini-2025-04-16",
|
|
273
|
+
"model_id": selected_model_id,
|
|
158
274
|
"dataset": {"tasks": tasks},
|
|
159
275
|
"config": {"parameters": {"reasoning_effort": reasoning_effort}},
|
|
160
276
|
}
|
|
@@ -162,8 +278,6 @@ def rft_command(
|
|
|
162
278
|
# Send request to service
|
|
163
279
|
hud_console.section_title("Submitting RFT job")
|
|
164
280
|
|
|
165
|
-
import httpx
|
|
166
|
-
|
|
167
281
|
base_url = settings.hud_rl_url
|
|
168
282
|
url = f"{base_url}/training/jobs"
|
|
169
283
|
|
|
@@ -29,6 +29,7 @@ async def run_single_task(
|
|
|
29
29
|
job_id: str | None = None,
|
|
30
30
|
task_id: str | None = None,
|
|
31
31
|
group_id: str | None = None,
|
|
32
|
+
trace_id: str | None = None,
|
|
32
33
|
trace_name: str | None = None,
|
|
33
34
|
metadata: dict[str, Any] | None = None,
|
|
34
35
|
) -> Trace:
|
|
@@ -46,6 +47,7 @@ async def run_single_task(
|
|
|
46
47
|
job_id: Job ID for telemetry grouping
|
|
47
48
|
task_id: Task ID for telemetry
|
|
48
49
|
group_id: Group ID for variance estimation runs
|
|
50
|
+
trace_id: Trace ID for telemetry (auto-generated if not provided)
|
|
49
51
|
trace_name: Name for the trace (defaults to task prompt)
|
|
50
52
|
metadata: Additional trace metadata
|
|
51
53
|
|
|
@@ -59,6 +61,7 @@ async def run_single_task(
|
|
|
59
61
|
job_id=job_id,
|
|
60
62
|
task_id=task_id,
|
|
61
63
|
group_id=group_id,
|
|
64
|
+
trace_id=trace_id,
|
|
62
65
|
attrs=metadata or {},
|
|
63
66
|
):
|
|
64
67
|
agent = agent_type.cls.create(**(agent_params or {}))
|
|
@@ -22,6 +22,8 @@ logger = logging.getLogger(__name__)
|
|
|
22
22
|
class Coordinate(BaseModel):
|
|
23
23
|
"""A coordinate point with x and y values."""
|
|
24
24
|
|
|
25
|
+
model_config = {"extra": "forbid"} # Ensures additionalProperties: false in JSON schema
|
|
26
|
+
|
|
25
27
|
x: int = Field(..., description="X coordinate")
|
|
26
28
|
y: int = Field(..., description="Y coordinate")
|
|
27
29
|
|
|
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.71 → hud_python-0.4.73}/environments/browser/environment/2048/backend/pyproject.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hud_python-0.4.71 → hud_python-0.4.73}/environments/browser/environment/todo/backend/pyproject.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hud_python-0.4.71 → hud_python-0.4.73}/environments/deepresearch/environment/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
|