hud-python 0.4.55__tar.gz → 0.4.56__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.55 → hud_python-0.4.56}/PKG-INFO +1 -1
- hud_python-0.4.56/environments/rubrics/README.md +182 -0
- hud_python-0.4.56/environments/rubrics/environment/pyproject.toml +18 -0
- hud_python-0.4.56/environments/rubrics/pyproject.toml +19 -0
- hud_python-0.4.56/environments/rubrics/server/pyproject.toml +19 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/__init__.py +1 -1
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/init.py +3 -1
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/tests/test_version.py +1 -1
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/version.py +1 -1
- {hud_python-0.4.55 → hud_python-0.4.56}/pyproject.toml +1 -1
- {hud_python-0.4.55 → hud_python-0.4.56}/.gitignore +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/LICENSE +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/README.md +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/README.md +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/blank/README.md +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/blank/environment/README.md +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/blank/environment/pyproject.toml +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/blank/server/README.md +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/blank/server/pyproject.toml +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/browser/README.md +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/browser/environment/2048/README.md +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/browser/environment/2048/backend/pyproject.toml +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/browser/environment/README.md +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/browser/environment/pyproject.toml +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/browser/environment/todo/README.md +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/browser/environment/todo/backend/pyproject.toml +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/browser/pyproject.toml +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/browser/server/pyproject.toml +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/deepresearch/README.md +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/deepresearch/environment/pyproject.toml +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/deepresearch/pyproject.toml +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/deepresearch/server/pyproject.toml +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/remote_browser/README.md +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/remote_browser/pyproject.toml +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/remote_browser/src/hud_controller/providers/README.md +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/text_2048/README.md +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/environments/text_2048/pyproject.toml +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/examples/README.md +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/__main__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/agents/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/agents/base.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/agents/claude.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/agents/grounded_openai.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/agents/langchain.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/agents/lite_llm.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/agents/misc/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/agents/misc/integration_test_agent.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/agents/misc/response_agent.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/agents/openai.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/agents/openai_chat_generic.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/agents/tests/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/agents/tests/test_base.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/agents/tests/test_base_runtime.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/agents/tests/test_claude.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/agents/tests/test_client.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/agents/tests/test_grounded_openai_agent.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/agents/tests/test_openai.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/agents/utils.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/__main__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/analyze.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/build.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/clone.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/debug.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/dev.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/eval.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/flows/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/flows/dev.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/flows/tasks.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/get.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/list_func.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/pull.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/push.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/remove.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/rl/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/rl/celebrate.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/rl/config.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/rl/display.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/rl/gpu.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/rl/gpu_utils.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/rl/local_runner.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/rl/presets.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/rl/remote_runner.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/rl/rl_api.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/rl/viewer.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/rl/vllm.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/rl/wait_utils.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_analyze.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_analyze_metadata.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_analyze_module.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_build.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_build_failure.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_build_module.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_cli_init.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_cli_main.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_cli_more_wrappers.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_cli_root.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_clone.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_cursor.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_debug.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_eval.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_list_func.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_main_module.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_mcp_server.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_pull.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_push.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_push_happy.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_push_wrapper.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_registry.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/tests/test_utils.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/config.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/cursor.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/docker.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/env_check.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/environment.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/interactive.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/local_runner.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/logging.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/metadata.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/package_runner.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/registry.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/remote_runner.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/runner.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/server.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/source_hash.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/tasks.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/tests/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/tests/test_config.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/tests/test_docker.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/tests/test_docker_hints.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/tests/test_env_check.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/tests/test_environment.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/tests/test_interactive_module.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/tests/test_local_runner.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/tests/test_logging_utils.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/tests/test_metadata.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/tests/test_package_runner.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/tests/test_registry_utils.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/tests/test_remote_runner.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/tests/test_runner_modules.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/tests/test_source_hash.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/tests/test_tasks.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/cli/utils/version_check.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/clients/README.md +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/clients/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/clients/base.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/clients/fastmcp.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/clients/mcp_use.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/clients/tests/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/clients/tests/test_client_integration.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/clients/tests/test_fastmcp.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/clients/tests/test_mcp_use_retry.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/clients/tests/test_protocol.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/clients/utils/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/clients/utils/mcp_use_retry.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/clients/utils/retry.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/clients/utils/retry_transport.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/datasets/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/datasets/parallel.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/datasets/runner.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/datasets/tests/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/datasets/tests/test_runner.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/datasets/tests/test_utils.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/datasets/utils.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/misc/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/misc/claude_plays_pokemon.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/native/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/native/comparator.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/native/tests/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/native/tests/test_comparator.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/native/tests/test_native_init.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/otel/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/otel/collector.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/otel/config.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/otel/context.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/otel/exporters.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/otel/instrumentation.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/otel/processors.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/otel/tests/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/otel/tests/test_instrumentation.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/otel/tests/test_processors.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/py.typed +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/rl/README.md +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/rl/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/rl/actor.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/rl/buffer.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/rl/chat_template.jinja +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/rl/config.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/rl/distributed.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/rl/learner.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/rl/tests/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/rl/tests/test_learner.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/rl/train.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/rl/types.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/rl/utils/start_vllm_server.sh +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/rl/utils.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/rl/vllm_adapter.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/samples/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/samples/browser.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/server/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/server/context.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/server/helper/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/server/low_level.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/server/router.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/server/server.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/server/tests/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/server/tests/test_add_tool.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/server/tests/test_context.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/server/tests/test_mcp_server_handlers.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/server/tests/test_mcp_server_integration.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/server/tests/test_mcp_server_more.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/server/tests/test_run_wrapper.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/server/tests/test_server_extra.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/server/tests/test_sigterm_runner.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/settings.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/shared/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/shared/exceptions.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/shared/hints.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/shared/requests.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/shared/tests/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/shared/tests/test_exceptions.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/shared/tests/test_hints.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/shared/tests/test_requests.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/telemetry/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/telemetry/async_context.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/telemetry/instrument.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/telemetry/job.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/telemetry/replay.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/telemetry/tests/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/telemetry/tests/test_async_context.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/telemetry/tests/test_instrument.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/telemetry/tests/test_job.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/telemetry/tests/test_replay.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/telemetry/tests/test_trace.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/telemetry/trace.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/base.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/bash.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/computer/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/computer/anthropic.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/computer/hud.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/computer/openai.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/computer/qwen.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/computer/settings.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/edit.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/executors/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/executors/base.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/executors/pyautogui.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/executors/tests/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/executors/tests/test_base_executor.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/executors/tests/test_pyautogui_executor.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/executors/xdo.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/grounding/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/grounding/config.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/grounding/grounded_tool.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/grounding/grounder.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/grounding/tests/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/grounding/tests/test_grounded_tool.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/playwright.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/response.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/submit.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/tests/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/tests/test_base.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/tests/test_bash.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/tests/test_bash_extended.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/tests/test_computer.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/tests/test_computer_actions.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/tests/test_edit.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/tests/test_init.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/tests/test_playwright_tool.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/tests/test_response.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/tests/test_submit.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/tests/test_tools.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/tests/test_tools_init.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/tests/test_types.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/tests/test_utils.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/types.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/tools/utils.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/types.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/agent_factories.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/async_utils.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/group_eval.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/hud_console.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/mcp.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/pretty_errors.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/progress.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/task_tracking.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/tasks.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/telemetry.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/tests/__init__.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/tests/test_agent_factories.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/tests/test_async_utils.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/tests/test_init.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/tests/test_mcp.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/tests/test_pretty_errors.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/tests/test_progress.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/tests/test_tasks.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/tests/test_telemetry.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/tests/test_tool_shorthand.py +0 -0
- {hud_python-0.4.55 → hud_python-0.4.56}/hud/utils/tool_shorthand.py +0 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# Rubrics Environment
|
|
2
|
+
|
|
3
|
+
Web research environment powered by Exa API for searching and fetching content, with rubric-based evaluation for structured grading.
|
|
4
|
+
See [docs](https://docs.hud.so/build-environments) for the complete environment design workflow.
|
|
5
|
+
|
|
6
|
+
## Architecture
|
|
7
|
+
|
|
8
|
+
**`environment/`** - Manages Exa API integration and state
|
|
9
|
+
- Holds the Exa API key server-side
|
|
10
|
+
- Exposes HTTP endpoints `/search`, `/fetch`, `/answer`, `/evaluate` for research workflows
|
|
11
|
+
- Implements exponential backoff for rate limiting
|
|
12
|
+
|
|
13
|
+
**`server/`** - Wraps data in MCP tools
|
|
14
|
+
- Provides `search()`, `fetch()`, `answer()`, `evaluate()` tools for agents
|
|
15
|
+
- Agents and tasks interact only with these tools
|
|
16
|
+
|
|
17
|
+
**Why separate?** Edit tools for the agent or tasks without restarting the environment backend.
|
|
18
|
+
|
|
19
|
+
## Tools
|
|
20
|
+
|
|
21
|
+
- **`search(query: str)`** - Search the web using Exa API, returns list of results with titles and URLs
|
|
22
|
+
- **`fetch(url: str)`** - Fetch full content from a URL, returns summary, highlights, and text
|
|
23
|
+
- **`answer(final_answer: str)`** - Submit the final research answer
|
|
24
|
+
- **`evaluate(rubric: list[dict])`** - Evaluate submitted answer using a structured rubric with weighted requirements
|
|
25
|
+
|
|
26
|
+
### Rubric-Based Evaluation
|
|
27
|
+
|
|
28
|
+
The `evaluate` tool uses The LLM Data Company's [rubric](https://github.com/The-LLM-Data-Company/rubric/) package to grade answers against structured criteria with autograders.
|
|
29
|
+
|
|
30
|
+
## Setup
|
|
31
|
+
|
|
32
|
+
### Requirements
|
|
33
|
+
- Exa API key (get one at [exa.ai](https://exa.ai))
|
|
34
|
+
|
|
35
|
+
### Environment Variables
|
|
36
|
+
```bash
|
|
37
|
+
export EXA_API_KEY="your_exa_api_key_here"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Development
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Terminal 1 - Environment backend
|
|
44
|
+
cd environment
|
|
45
|
+
export EXA_API_KEY="your_key"
|
|
46
|
+
uv run uvicorn server:app --reload
|
|
47
|
+
|
|
48
|
+
# Terminal 2 - MCP server
|
|
49
|
+
cd server
|
|
50
|
+
uv run hud dev
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
The environment includes exponential backoff for rate limiting, so API calls will automatically retry on 429 errors.
|
|
54
|
+
|
|
55
|
+
In general, we recommend starting work on the environment backend first, then developing the MCP server to expose the right things to the agent.
|
|
56
|
+
|
|
57
|
+
For complex environments that require many dependencies, we recommend running `hud dev` in the environment root:
|
|
58
|
+
```bash
|
|
59
|
+
cd ..
|
|
60
|
+
export EXA_API_KEY="your_key"
|
|
61
|
+
hud dev
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Tasks & Evaluation
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Build first in the global folder with the Dockerfile (creates rubrics:0.1.0)
|
|
68
|
+
hud build
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Your `tasks.json` uses `docker run` to launch the environment:
|
|
72
|
+
|
|
73
|
+
```json
|
|
74
|
+
{
|
|
75
|
+
"prompt": "Research and answer: What is the capital of France?",
|
|
76
|
+
"mcp_config": {
|
|
77
|
+
"local": {
|
|
78
|
+
"command": "docker",
|
|
79
|
+
"args": ["run", "--rm", "-i", "-e", "EXA_API_KEY", "rubrics:latest"]
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"evaluate_tool": {
|
|
83
|
+
"name": "evaluate",
|
|
84
|
+
"arguments": {
|
|
85
|
+
"rubric": [
|
|
86
|
+
{
|
|
87
|
+
"requirement": "Correctly identifies Paris as the capital of France",
|
|
88
|
+
"weight": 5
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"requirement": "Provides additional context about Paris (population, history, or geography)",
|
|
92
|
+
"weight": 10
|
|
93
|
+
}
|
|
94
|
+
]
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**Note:** The `-e EXA_API_KEY` flag passes your local API key to the container.
|
|
101
|
+
|
|
102
|
+
**Commands:**
|
|
103
|
+
```bash
|
|
104
|
+
# Build first
|
|
105
|
+
hud build
|
|
106
|
+
|
|
107
|
+
# Test task locally
|
|
108
|
+
export EXA_API_KEY="your_key"
|
|
109
|
+
hud eval tasks.json
|
|
110
|
+
|
|
111
|
+
# Push environment for remote running
|
|
112
|
+
hud push
|
|
113
|
+
|
|
114
|
+
# Production RL training
|
|
115
|
+
hud rl tasks.json # Auto-converts docker→remote, builds & pushes if needed
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Publishing Your Environment
|
|
119
|
+
|
|
120
|
+
Once your environment is ready, you can share it with the community:
|
|
121
|
+
|
|
122
|
+
### 1. Push to Registry
|
|
123
|
+
```bash
|
|
124
|
+
# Build and push your environment (requires docker hub login and hud api key)
|
|
125
|
+
hud build
|
|
126
|
+
hud push
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### 2. Create a Dataset
|
|
130
|
+
|
|
131
|
+
Create a dataset on HuggingFace with your tasks:
|
|
132
|
+
|
|
133
|
+
**Option A: Upload manually**
|
|
134
|
+
1. Upload your `tasks.json` to HuggingFace
|
|
135
|
+
2. Make sure it's **public** to appear on leaderboards
|
|
136
|
+
|
|
137
|
+
**Option B: Use the SDK**
|
|
138
|
+
```python
|
|
139
|
+
from hud.datasets import save_tasks
|
|
140
|
+
import json
|
|
141
|
+
|
|
142
|
+
# Load your tasks
|
|
143
|
+
with open("tasks.json") as f:
|
|
144
|
+
tasks = json.load(f)
|
|
145
|
+
|
|
146
|
+
# Push to HuggingFace
|
|
147
|
+
save_tasks(tasks, repo_id="your-org/your-dataset")
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### 3. Run and Track Performance
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
# Run Claude on your benchmark
|
|
154
|
+
hud eval "your-org/your-dataset" --agent claude
|
|
155
|
+
|
|
156
|
+
# View results at:
|
|
157
|
+
# hud.so/leaderboards/your-org/your-dataset
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**Note**: Only public HuggingFace datasets appear as leaderboards!
|
|
161
|
+
|
|
162
|
+
📚 Learn more: [Creating Benchmarks](https://docs.hud.so/evaluate-agents/create-benchmarks) | [Leaderboards](https://docs.hud.so/evaluate-agents/leaderboards)
|
|
163
|
+
|
|
164
|
+
## Example Research Workflow
|
|
165
|
+
|
|
166
|
+
```python
|
|
167
|
+
# Agent searches for information
|
|
168
|
+
results = search("latest AI developments 2024")
|
|
169
|
+
|
|
170
|
+
# Agent fetches detailed content from top result
|
|
171
|
+
content = fetch(results[0]["url"])
|
|
172
|
+
|
|
173
|
+
# Agent submits final answer
|
|
174
|
+
answer("Based on research, AI developments in 2024 include...")
|
|
175
|
+
|
|
176
|
+
# Evaluate answer using rubric
|
|
177
|
+
result = evaluate(rubric=[
|
|
178
|
+
{"requirement": "Mentions at least 3 specific AI developments", "weight": 15},
|
|
179
|
+
{"requirement": "Includes dates or timeframes for developments", "weight": 5},
|
|
180
|
+
])
|
|
181
|
+
# Returns: {"reward": float, "info": {"report": [...]}, "done": True}
|
|
182
|
+
```
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "rubrics-environment"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
description = "Backend service for Rubrics environment"
|
|
5
|
+
requires-python = ">=3.11"
|
|
6
|
+
dependencies = [
|
|
7
|
+
"fastapi>=0.104.1",
|
|
8
|
+
"uvicorn[standard]>=0.24.0",
|
|
9
|
+
"httpx>=0.24.0",
|
|
10
|
+
"rubric>=1.1.7",
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
[build-system]
|
|
14
|
+
requires = ["hatchling"]
|
|
15
|
+
build-backend = "hatchling.build"
|
|
16
|
+
|
|
17
|
+
[tool.hatch.build.targets.wheel]
|
|
18
|
+
packages = ["environment"]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "rubrics"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
description = "Rubrics HUD environment with HTTP backend (EXA on server)"
|
|
5
|
+
requires-python = ">=3.11"
|
|
6
|
+
dependencies = [ "hud-python==0.4.42", "fastapi>=0.104.1", "uvicorn[standard]>=0.24.0", "httpx>=0.24.0",]
|
|
7
|
+
|
|
8
|
+
[build-system]
|
|
9
|
+
requires = [ "hatchling",]
|
|
10
|
+
build-backend = "hatchling.build"
|
|
11
|
+
|
|
12
|
+
[tool.hud]
|
|
13
|
+
image = "rubrics:dev"
|
|
14
|
+
|
|
15
|
+
[tool.hatch.metadata]
|
|
16
|
+
allow-direct-references = true
|
|
17
|
+
|
|
18
|
+
[tool.hatch.build.targets.wheel]
|
|
19
|
+
packages = [ "controller", "environment",]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "rubrics-mcp"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
description = "MCP server for Rubrics environment"
|
|
5
|
+
requires-python = ">=3.11"
|
|
6
|
+
dependencies = [
|
|
7
|
+
"hud-python>=0.4.54",
|
|
8
|
+
"httpx>=0.24.0",
|
|
9
|
+
]
|
|
10
|
+
|
|
11
|
+
[build-system]
|
|
12
|
+
requires = ["hatchling"]
|
|
13
|
+
build-backend = "hatchling.build"
|
|
14
|
+
|
|
15
|
+
[tool.hatch.metadata]
|
|
16
|
+
allow-direct-references = true
|
|
17
|
+
|
|
18
|
+
[tool.hatch.build.targets.wheel]
|
|
19
|
+
packages = ["mcp"]
|
|
@@ -746,7 +746,7 @@ def init(
|
|
|
746
746
|
None,
|
|
747
747
|
"--preset",
|
|
748
748
|
"-p",
|
|
749
|
-
help="Preset to use: blank, deep-research, browser. If omitted, you'll choose interactively.", # noqa: E501
|
|
749
|
+
help="Preset to use: blank, deep-research, browser, rubrics. If omitted, you'll choose interactively.", # noqa: E501
|
|
750
750
|
),
|
|
751
751
|
directory: str = typer.Option(".", "--dir", "-d", help="Target directory"),
|
|
752
752
|
force: bool = typer.Option(False, "--force", "-f", help="Overwrite existing files"),
|
|
@@ -23,6 +23,7 @@ PRESET_MAP: dict[str, str | None] = {
|
|
|
23
23
|
"blank": "blank",
|
|
24
24
|
"deep-research": "deepresearch",
|
|
25
25
|
"browser": "browser",
|
|
26
|
+
"rubrics": "rubrics",
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
SKIP_DIR_NAMES = {"node_modules", "__pycache__", "dist", "build", ".next", ".git"}
|
|
@@ -91,6 +92,7 @@ def _prompt_for_preset() -> str:
|
|
|
91
92
|
{"name": "blank", "message": "blank"},
|
|
92
93
|
{"name": "deep-research", "message": "deep-research"},
|
|
93
94
|
{"name": "browser", "message": "browser"},
|
|
95
|
+
{"name": "rubrics", "message": "rubrics"},
|
|
94
96
|
]
|
|
95
97
|
display_choices = [c["message"] for c in choices]
|
|
96
98
|
selected = questionary.select(
|
|
@@ -194,7 +196,7 @@ def create_environment(
|
|
|
194
196
|
if preset_normalized not in PRESET_MAP:
|
|
195
197
|
hud_console.warning(
|
|
196
198
|
f"Unknown preset '{preset_normalized}', defaulting to 'blank' "
|
|
197
|
-
"(available: blank, deep-research, browser)"
|
|
199
|
+
"(available: blank, deep-research, browser, rubrics)"
|
|
198
200
|
)
|
|
199
201
|
preset_normalized = "blank"
|
|
200
202
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.55 → hud_python-0.4.56}/environments/browser/environment/2048/backend/pyproject.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hud_python-0.4.55 → hud_python-0.4.56}/environments/browser/environment/todo/backend/pyproject.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hud_python-0.4.55 → hud_python-0.4.56}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|